somewhere to talk about random ideas and projects like everyone else


Project Wikify edit any website and share changes



Project Wikify Updated 28 December 2009

In 2008 (That long ago, I know!), I started something called Project Wikify. Basically, it was a bookmarklet which let people edit stuff on web pages and save it onto a server. A lot of people may be aware of the simple thing where pasting javascript:document.designMode=”on”; into the URL bar makes the internet explode into awesomeness such as replacing every other word in this blog with the name of a certain genitalia. Of course, the absolutely huge issue with this is that you really can’t share your awesome creation.

So here comes Wikify to fix that, the age-old problem of sharing your vandalized sites has been finally resolved…. a year ago. And since then, nobody really has ever cared.

So, I looked back at it last week, and realized how painfully crappy the website for it was. To fix it, I decided to test out iWeb, yes, a totally non-leet WYSIWYG editor. But yes, that’s how crappy my web-design skills are, so the result is quite an improvement. Anyway, I used the Blank-Page template, so at least you can spare your eyes from yet another generic theme (cough this blog cough).

While designing the site, I tried out Wikify and discovered that it didn’t work on Wikipedia articles and the News button didn’t work. So I quickly got those features working, so now i’m writing this blog post about my tiny edits and the new site.

Wikify Format 2.0 20 December 2008

2.0 isn’t an actual version number, but i’ve added the new one.

it’s basically

Parent ID (or _body) > Element tag name : Parent Index > format type = patch/innerhtml data



the formats are p, d, and o, or Patch, HTML, and Legacy, respectively. Patch uses diff-match-patch, unidiff style data. Patch is the same, and Legacy is an intermediate format of sorts, which is easily converted to from the old formats, but still follows the general pattern of location>type=data. The only difference between Legacy and HTML is that legacy uses a different location scheme.

The pluses of this new system, is that it’s more accurate, and your edits are more resistant to page changes. The data is more human readable, the system is more reliable, and stores less data on the server. The cons, are that there is a 20kb overhead in wikify core, and saving may take some more time.

Crashing IE 20 December 2008

Well, I was trying to iron out a IE bug for project wikify. Interestingly, that bug I encountered, crashes every IE since 5.5 (not sure if it crashes 5.0 yet, browsershots are still loading)

really, this just is just another IE issue….

Wikify Diff Engine 18 December 2008

So i built a pretty crappy tree-diff system for Wikify. It completely ignores the creation of new nodes, or the deletion of the nodes, but it works most of the time. It’s tree based, so the data is fine-grained to the level of however small the nodes are made to be. But many pages with huge paragraphs or such, have huge nodes, and editing a single word would mean saving a huge amount of data.

So Wikify will now use both the tree-based diff (which is great for HTML/XML docs, as they are trees) and divide the changes into text and do text diff for that. Right now, the only thing sutable is the google-diff-match-patch project, which is absolutely amazing, except for how huge it is. But I figure its okay, because I’m already including the (relative) bloatness of jQuery… (especially compared to vX)

Project Wikify Prototype 5 Released 18 September 2008

I just released Project Wikify prototype 5 revision 9. The highlights are support for ‘Channels” which let you have your own private “fork” of the internet. Also, Full IE support, and a completely redesigned website. On the backend, there’s a new communication protocol. Saving is only done through POST, no more JSONP/GET stuff. Loading is done differently too.

Again, you can get it from

As with all the major updates before, the database was trashed in the process.

Project Wikify Success 09 September 2008

Project Wikify is working out really well. My blog is getting vandalized a lot, and I actually find it really funny.

So, thanks spammers! You’ve just made my day (seriously). And posting this probably constitutes a change in the template, and will screw up Project Wikify.

For all of you who don’t have either Project Wikify, RWK, or the Project Wikify GreaseMonkey Userscript, follow the nex link to view the vandalized page (it’s the RWK version, not the full Wikify one, so you can’t edit it on that.).

[View my super-vandalized blog]


[Edit] Amazingly, it turns out Wordpress assigns IDs to posts, so it actually works (cool)! which is far better than I expected. So, it really shows how this project is working out way better than I imagined. and I’m sure someone is gonna edit this.

[Edit v0.2 Pre Alpha Beta Prototype 3 revision 1 Stable (Development) Testing Build 44 ASCII codename: copying the ajax animator’s insanely long version names] For all of you who haven’t tried this magical program yet, try so here at wikify dot antimatter15 dot com

[Edit Again]

Okay, I was wrong, it did screw up the template :( Wikify is messed up now :(

Wikifying the Internet 29 August 2008

What if you could edit a copy of any site in the entire web, and have it persist? Well, I’m working on a bookmarklet that basically does the classic (javascript:(function(){document.designMode=”on”})()) but with persistance. It’s going to store all changes to the web page on a centralized patch server (app engine?) and anyone who clicks on the bookmarklet will be instantly be able to see previous edits and make their own.

So, what could it be used for? Well, you could use it to fix small typos on the internet, Update far-outdated pages/info, and let’s not forget, vandalize the home page of your arch nemisis. But as a wiki, everything can be reverted/etc. The design for the system is very nice, as it only stores the content modified by users, one way of averting legal action against me (i’ll also be sure to add disclaimers too :)).

Of course the vandalism part will probably be what happens, as with most Wikis (besides the mother-of-all Wikis). it’s still an interesting concept anyway. Maybe it’ll make people happier, when every time they view their (usually empty) adsense page and always find it saying $100,000.00 for their day’s earnings? And it’s not forced on anyone, and if it becomes open-source (it’s easily implementable anyway), the bookmarklets could be customized on custom servers, creating an endless amount of forks of the internet.

I only have a non-working prototype so far, i’m going to embark on a rewrite soon. And thanks to the App Engine team for raising the limit to the number of apps-per-dev.

As you know, I’m sorta taking a break from the Ajax Animator. It’s sometimes nicer to work on some smaller projects now and then.