Ponify OverviewUnfortunately, whilst the herd is growing exponentially, there are still a few stragglers on the internet.

These stragglers will insist upon using archaic words like "everyone," and refuse to update their vocabularies. Combined with the internet's intrinsic lack of grammar, this can become quite irritating.

But fear not, for at last there is a solution! Ponify is a tool for converting everypony on the internet into a brony. With it you can enhance your internet experience, and say goodbye to all of that outdated language.

Ponify is a browser extension which uses intelligent adaptive case technologies to replace non-pony related words with ones that are pony-related. For example, words like "Everyone" will be replaced with "Everypony".

Ponify includes an extensive list of over 60 words by default. It is fully configurable and allows you to add and remove words from the list, as well as specify precisely which websites you want to be Ponified and which ones you don't.


Ponify Introductory VideoHere is a short introductory video to Ponify. It demos some of Ponify's many features and shows you how to use Ponify with Firefox and Chrome/Chromium. For instructions on how to use and configure Ponify with Opera and Safari, there is a second video available here: Link




Download Links
Firefox:Download Link
Chrome:Download Link
Opera:Download Link
General Userscript:Download Link


Screenshots


AvailabilityPonify is available for several major web browsers. There are browser extensions for Firefox and Google Chrome/Chromium. There is also a userscript available which can be used with many different browsers. Detailed installation instructions can be found below.


FeaturesPonify has a range of features designed to make your ponified experience as smooth as possible, and as customisable as possible. You can specify which words are ponified and how they are ponified, you can also specify which websites will be ponified and which ones won't. Below is a list of just some of the features available.

  • Customisable Word List
  • Customisable Website List
  • Blacklist or Whitelist Websites
  • Highlight Words that are Ponified
  • Custom Highlighting colours
  • Display tooltips with ponified words
  • Intelligent Adaptive Case replacements


Installation for FirefoxFirefox users can use the Ponify Firefox Add-on which is available here: Download Link


Chrome/ChromiumUsers of Google Chrome or Chromium can get the Ponify Chrome Extension from here: Download Link


OperaFor Opera users it's a little more complicated. I currently don't have plans to make a dedicated add-on for Opera, however if you still want to use Ponify then there is a userscript which can be installed by following these instructions. If you would rather watch a step-by-step tutorial, then you can watch the second Ponify introductory video (Link) and skip to the part where I demonstrate how to install it with Opera.

1) Download the user script from here: Download Link

2) Once you have downloaded the script, save it in a folder of your choice. The best bet is to put it somewhere where you won't accidentally delete it. If you have installed userscripts with Opera in the past, then you can simply put the script in the same folder as your other scripts and need not follow the rest of these steps.

3) The next step is to tell Opera where to find the script. To do this, open Opera and click on the main menu button, move down to settings and then click on preferences. Once the preferences window has appeared, click on the "Advanced" tab and then select "content" in the left pane. Once you have done this, click the "JavaScript Options" button on the right. This should open up another window. At the bottom of this window there should be a button which says "choose." Click it and then select the folder where you placed the script in step 2. Once you have done this, you can select "ok" on all open windows and Ponify should be installed.

For advanced information on how to configure the user script, please look at the "advanced documentation" section below. Note: It is not necessary to make any changes to the script, it should work as it is. However if you want to add or remove words from the list of replacements, or enable features such as highlighting, then configuration is necessary.


Installation for SafariThere is also no dedicated browser extension available for safari, and safari doesn't support userscripts natively. However, there is an extension for safari called NinjaKit. It's similar to Greasemonkey for Firefox, and allows you to use userscripts. You can download NinjaKit here: http://d.hatena.ne.jp/os0x/20100612/1276330696

Once you have downloaded and installed it, installing Ponify is a simple as clicking the following Link, and choosing "Install" when prompted. Download Link


Advanced DocumentationIf you have no prior experience with computer languages, then this section might be quite difficult to follow. It is recommended that you only use the userscript if there is no Add-on available for your browser. Should you be willing to tackle the task of configuring the user script then the following mini-tutorial should cover all of the basics. If you would rather watch a step-by-step video guide then I have also provided a brief tutorial in the second Ponify introductory video which can be viewed here: Link.

The user script defines several variables which determine the operation of Ponify. There are two arrays which contain a list of words and websites respectively. The former determines which words are ponified and the later determines which websites are ponified. In the case of the latter, there is also a variable which specifies how the list should be interpreted, whether it is a "blacklist" or a "whitelist." There is also a variable for both the highlighting mode and whether or not pseudo threading is enabled.

The first step is to open the user script in your favourite text editor. If you are using windows then I would recommend Notepad++. If you do not wish to download new software then Wordpad should be sufficient.

Firstly we will deal with the structure of the arrays for replacement words and websites, once you know the basics, the rest should fall into place. If you scroll down the file then you will say a large list of words and replacements which look something like and extended version of the following:
Ponify.replace = [
 ["someone", "somepony"],
 ["hand", "hoof"]
];
Adding a new word is as simple as duplicating one of the other replacements and changing the words. For example, say I wanted to add the word "human" to the list, I would end up with the following:
Ponify.replace = [
 ["human", "pony"],
 ["someone", "somepony"],
 ["hand", "hoof"]
];
Every entry in the array MUST be followed by a comma (,) except for the last one. Removing a word is as simple as deleting it. The order in which the words are listed has no effect on the operation of Ponify.

The website list is very similar in structure, but may be confusing at first sight since it is empty. By default, all websites are Ponified, but you may decide that there are some places that you don't want to be ponified such as Google Docs or another website where ponification might be distracting. Before adding websites to the list, you should first decide how you want the list to behave. There are two options, either every website that you put in the list WILL be ponified (whitelist), or every website that you put in the list WILL NOT be ponified (blacklist). If there are only a few websites which you want to be ponified, and all others to be ignored, then you should go for a white list. However, most people will probably want a blacklist.

You can set the type of list by modifying the variable "wlist_type" and changing it to either 1 or 0. "0" is a blacklist and "1" is a whitelist. eg.
Ponify.wlist_type = 1;
After having selected the list type, you can now add websites to the list. Here is an example of the structure of the array, you can follow the same basics steps and rules that were specified in the replacement section above.
Ponify.websites = [
 ["docs.google.com"],
 ["youtube.com"],
 ["www2.someotherdomain.org/somepage.htm"]
];
The next step is to configure highlighting and tooltips. Highlighting and tooltips are all managed by one variable. There are four Highlighting modes: 0: No Highlighting, 1: Highlighting and Tooltips, 2: Tooltips Only, 3: Highlighting only. The second part of the highlighting variable contains the colour which text will be highlighted in. Here are a few examples and descriptions of what effect they would have.
Ponify.highlight = [1, "#777777'];
The above would enable both highlighting and tooltips and highlight all ponified text with a grey colour.
Ponify.highlight = [3, "#FF0000'];
The above would have only highlighting enabled and would highlight any ponified text in red.

The final variable left to configure is that which specifies whether pseudo threading is enabled. With most modern computers, this should not be necessary, however if you are experiencing a noticeable change in performance when using ponify then enabling this may help to solve the problem. Essentially, what it does is break up the task of ponifying a website into small chunks which are then processed one at a time. This prevents Ponify from locking up the browser if it is taking a long time to finish ponifying a page. Set the variable to either 1 or 0 respectively to enable or disable pseudo threading.
Ponify.pseudo_threading = 0;
This concludes the advanced documentation, if you have made it this far, then congratulations! If you have any suggestions, questions or comments, then please, do not hesitate to email me. You can find my email address on the contact page. If you make any changes to Ponify which significantly improve its performance or level of functionality, please consider emailing me your changed version so that I can continue to make Ponify even better for everypony!
First Post Hello, and welcome to my new blog. My name is Ben, and since you probably aren't interested in my life story, I'll skip over it and get to the part where I tell you what this blog is all about, and why it exists.

I created this blog to serve as a hub for various programming projects that I am working on. Along with my projects, I also intend to post about things that I find useful and/or interesting. In summary, you can expect news, reviews, projects and programs, along with tips, tricks and sarcasm, all posted at regular intervals for your reading pleasure.
Home