somewhere to talk about random ideas and projects like everyone else

stuff

#update

Swipe Gesture 2 08 February 2013

I’ve actually had this post fermenting in my blog’s draft folder since at least September, but I never actually got around to finishing the post. And now that Google’s enabling the new swipe-to-go-back by default on the dev channel versions of Chrome OS, it finally feels like the right time to post. As in, I feel like posting things right when they’re soon to be absolutely useless (Which, you might recall, was the case with my Google Wave client, which started selling on the App Store the day Google announced that Wave would be phased out and eventually shut down).

So, a few months ago, I finished my update to the Swipe Gesture extension, which featured a rather significant redesign. It supported multiple gesture directions and a fancy animated element to indicate the direction of the gesture.



Surplus 4 29 October 2011

Recently Surplus stopped working. Well, it hasn’t been working for a lot of people for a long time already, but that’s besides the point. It stopped working entirely. Surplus has always been a rather fragile creature. It operates like a kid on a high speed scooter attempting to carry a house of cards between two strangers. That house of cards is part of a delicate system of frames inside frames inside frames inside frames that move between frames. Surplus is this fairly atrocious mess of frames.

Framing things works out fine until you discover that whatever you’re framing is trying to break out. Meet the X-Frame-Options header, the source Surplus’s recent predicament. It has well meaning motives: to prevent Google from suffering from evil attacks like Clickjacking, XSRF and other nasty things. Incidentally, security-wise, Surplus would probably belong closer to something of that nature than a legitimate application. It doesn’t use an API because applications generally wouldn’t find it useful.

Recently, all Google properties started including that X-Frame-Options header, and now can’t be embedded in frames. It wasn’t an absolutely unprecedented move, because just a few weeks earlier Google Video had started sending out the header (which led to an update which moved from a Google Video host frame). But now it was across all Google Sites, and there was no short term hack that could be done.

The solution was to take a random Google page which didn’t send out the header and mimic all the postMessage messages that are sent from the Google Plus notifications frame. Consequently, the entire frame signaling and attachment system had to be rewritten, and that system was so deeply tied into everything else that Surplus 4 ended up being almost an entire rewrite (the inner frame actions, the options page and the notifications parser did not change).

https://chrome.google.com/webstore/detail/pfphgaimeghgekhncbkfblhdhfaiaipf


Cloud Save 1.3 10 May 2011

So, I finally updated my most popular browser extension: Cloud Save. This adoption has always sort of puzzled me, as it was originally simply a 30 minute hack on drag2up. So I’m trying to be careful not to introduce any huge changes in fear of alienating that magical use case that everyone else seems to have stumbled upon.

Nevertheless, 1.3 introduces lots of useful features. First and foremost is the introduction of a progress bar. I really can’t imagine using it without the progress bar or some other indicator - like how it was in the last version (yet how people still found it useful absolutely bewilders me). The progress dialog is awesome and probably the most significant feature, and after that was just a few backend changes which enabled this.

Published retroactively on 10/22/11


μwave updates 03 June 2010

Microwave June 2 Search

Over a few days, things can change fairly quickly. There have been several speed improvements, a new Forum-Style blip rendering option which arranges blip linearly by the time edited with each containing a formatted quote of the parent to establish context. Attachments are now fully supported, including thumbnails and download links. The operations engine was totally rewritten which uses asynchronous XMLHttpRequest, a new callback based system and support for a batch operations (which means fewer requests and faster responses). A wavelet header containing a list of all participants in the entire wave has been added, as well as an Add Participant button. A specialized, extremely fast gadget viewer was added, which allows for blazingly fast rendering of two popular gadgets (and more will come), it works by bypassing the entire gadget infrastructure and loading trusted code directly inline with the DOM. There is a “New Wave” button which allows people to create new waves directly from the client. The OAuth backend was authenticated with google, for more secure login transactions. Blips have a new context menu which allows for features such as Delete Blip, Edit Blip and Change Title. A full changelog can be found here.

Try it out.


μwave lightweight mobile wave client 29 May 2010

Microwave Search-View May 29

I like bragging when I do something nobody else has done before. And μwave is the first true third-party wave client which is compatible with Google Wave. It’s free to use at http://micro-wave.appspot.com/ and works great on mobile devices. It supports searching for waves, opening them and writing replies.

Currently it doesn’t know read/unread state of the waves from the search panel and doesn’t know read/unread blips, but as of time of writing, its a limitation and flaw in the current version of the Google Wave Data API (introduced just ten days ago at Google I/O). Expect this to be resolved in the near future with upcoming versions of the API and this application.

The source code for the server component is open-source and can be found on github (though it’s slightly outdated, but the important stuff is there). It’s fairly simple (It’s based on the original example code so I’m going to have the same MIT license), but one of the few python scripts which can do authentication with google and pass commands to the data api. It relies on the Python OAuth Library.

The Blip renderer component of this is licensed under the MIT license and can be found on the old microwave repo. The only part left is the interface, which is going to be the usual GPLv3.

For a little bit of history, this isn’t exactly a new project. The google code project has existed since January 9th, 2010. The purpose was to create a mobile-friendly version of Wave Reader. But that goes even deeper, I can trace it back to the original Static-Bot dated to October 18, 2009. Then, the Google Wave embed API allowed people to view waves only if someone had a Google Wave account and was logged in at the time. This was quite problematic as Wave was still a limited preview which not many people had and probably hampered adoption.

Another separate but eventually convergent issue which led to the microwave project was “Desktop Wave Reader + GWave Client/Server Protocol“ post which I made on October 29th of 2009.

During late October of last year, I reverse-engineered some of the features of the Google Wave client. Up until then, the only published specs were the federation protocols, which dealt with how multiple wave servers would use a common protocol to allow multiple users without a central authority and for the gadget and robot apis. Notably missing was a client/server api, for a user of specifically the google wave client, which did not yet support federation (and to date, preview still does not), and to browse/view the waves in one’s inbox without needing to switch to an entirely new provider. The first component was the ability to read waves. After that was accomplished, I tried to reverse engineer a more complex aspect of the protocol, which was the ability to search waves. I eventually realized that that component, search was part of a larger puzzle, which was the real-time BrowserChannel wire protocol which virtually all of wave was based. I made some progress, but near the end, I gave up in frustration. Luckily, someone else became interested in the same thing, and Silicon Dragon basically got search working.

This happened now in early December. I started on a project called Wave Reader, which merged the ideas of static-bot with the desktop wave reader and a new functional blip rendering engine. At that time, the Google Wave client was still horrendously slow, taking several minutes at times to load large waves.

On January, I began a project to merge Wave Reader and the wire protocol (search). I thought an awesome name would be microwave (or μwave) and started the code repo on January 9th. I worked on it a bit, so that it was mostly complete, with search and loading all working, with one missing component: login. Eventually, I got bored and the project lay abandoned for a few months.

This gets us to basically 4 days ago, when I started working on a renaissance of the μwave project, based on the recently released Google Wave Data API. The first component was creating a new blip renderer specifically designed for parsing the new (much cleaner) json format which is part of the robots api. Then I created a client around that and created a python backend for having it work on app engine.

The Future is always awesome to prophesize about. In the coming weeks or days, google will probably update the data api to allow for information like So, while http://micro-wave.appspot.com will likely remain free and maintained for the forseeable future, I do plan on making a paid iPhone/iPad app. The iPhone app may have some extra features like offline/caching support.


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.

http://wikify.antimatter15.com/



VectorEditor Updates lines, rotation, more 10 August 2009

During the last two days I worked a bit on my cross platform, Raphael based vector graphics editor. It now supports Firefox, Opera, Chrome, probably Safari and magically, something called IE. Yes, it works on that nasty terror. Really, the project started with just the idea of being able to support IE. Sure it has a few neat features (multiple select mainly), but the fundamental idea is to support IE and to do so in a stable manner. It’s actually running quite well in IE, though only the latest version has been tested.

Among the updates is a new delete tool that is far more flexible and powerful. It is now not just a button but an entire tool. So while you can still click on it to delete your current selection, you can also use the tool to click on shapes or drag and delete whole groups (not sure what that thing is called). It even has a nice red tint to signify deleting. There is also event listening, vX support (it only uses events and position), and selecting fill, stroke, stroke opacity, fill opacity, and stroke width.

It also integrates well into the Ajax Animator in an almost drop-in replacement type. Maybe eventually something to choose between VectorEditor and Onlypaths. The really only bug features there are multiple select and drag and line editing.

Lines are now done almost perfectly. Dragging them works perfectly and it shows two little boxes on the ends that fan be dragged to edit. This vastly simplifies the old issues with lines and stick figures. Stick figures that inherently satisfy me a lot because that was the highes level of animation I ever did.

It’s probably a bad thing that the developer od an animation application never did anything more complex than stick figures, and probably makes it seem strange for me to even start it. But anyone with more knowledge of animation would not be so naiive as to attempt this.

http://jsvectoreditor.googlecode.com/svn/trunk/index.html


New Site! 14 July 2009

You may notice that the site is now using my actual domain! and that it’s also like twice as fast and 20 times more reliable! Also, the URLs are now insanely awesome rather than the ?p=314159 or something random like that. That’s because I have a new host and this is a new site with WordPress 2.8.1 and stuff. One thing I momentarily have forgotten is Ads (don’t you love them?). So they’ll be back soon. I also have a new theme, based on the SimpleX and Carrington Blog themes. I went back hundred or so posts and added catagories and tags to them for ease of navigation. I created new pages for Wikify, vXJS, ShinyTouch and MirrorTouch and I have a few new posts. So I’d like to see your feedback on the new site.



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 http://wikify.antimatter15.com

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



Refresh your cache 07 August 2008

I reverted Ext 2.2 to Ext 2.1, so refresh your cache.


Ext 2.2 07 August 2008

I did some updating yesterday, and along with it was the supposedly fully compatible Ext 2.2 update. And it wasn’t. It completely broke onlypaths :( I’m reverting now.



Ajax Animator 0.20.01 Soon 05 August 2008

I’m going to release 0.20.01 soon, which will get IE to load properly, and fix some general bugs.


Ajax Animator 0.21 Early Fork 04 August 2008

Okay, I’ve started working on Ajax Animator 0.21, right now, its just a different version with one bug fix. btw, its the one where you can’t reopen the About dialog after it’s been opened and closed (with the little X, not the “close” button)

BTW, it’s at http://antimatter15.110mb.com/ajaxanimator/testing/build/

EDIT Okay, I fixed another bug where the tip of the day won’t open again after closed like the about window one. I also made it so you can minimize the tips window.

I also fixed the bug reported by Kermeros where Undo works improperly after File->New


0.21 Bugfixes 04 August 2008

I fixed this bug where if you drew a square, went to a blank frame, moved it, and then went to a blank frame (do nothing), and go back to a tween (between first and last frame), the tween engine would crash, and the animation would be destroyed. Fixed by wrapping SVGRenderer’s remove function in a try..catch loop.

I also split diff_core into diff_attr which allows you to diff only a single attribute at a time. I also added a diff_list function which would make it easier to implement an export format to a tweening engine like that of JavaFX and Silverlight.

On that note, I added fake support for JavaFX. so you now see the toolbar icon, and I added the script for javafx though there’s nothing in it.


Ajax Animator 0.20 Beta RC1 Released 03 August 2008

I’m pleased to release the latest version of the Ajax Animator, 0.2. This version has been a complete rewrite of the application down to it’s core, not a single like of code copied from the old (0.14.7) release. It also happens to be the most advanced and complete release to date, with full multi-layer support, a greatly expanded toolbox, complete undo history, a shared clip-art library, a completely redesigned UI, and much more.

Lets start from when you open the app. The application speed has greatly improved, the 0.14.7 release takes ~9.5 seconds to load, 0.2 takes a mere 4.5 seconds, more than half the time. On the top toolbar, the buttons are relocated and restylized. Over at the file button, you see everything has new gorgeous icons intuitively organizing the New, Open, and Save options, where you can use the powerful new JSON based file format. Below that, you see a new Publish menu, where you can export to several formats like Adobe Flash, Processing (language), Microsoft Silverlight (XAML), and Animated GIFs.

Skipping over to the View meu, you see that there are 17 different UI themes to choose from. An unprescedented degree of customizability. And over at the Help menu, there is more useful content. A working FAQ, helpful Tip Of the Day, About page, and a list of keyboard shortcuts.

Of course the most important and powerful change in this version is the inclusion of the OnlyPaths editor. A new, powerful Vector graphics editor. The new editor allows you to draw not only the standard rectangles, ellipses, and lines, but also Text, Polygons, Freeform Paths, Images and more. You can now Rotate, Resize, and move shapes around.

The Timeline has also been reworked. The new archetecture allows the deletion of layers, expansion of tweens, and more. The Tweening engine is vastly superior, with much fewer bugs than the old one, though the new one certainly does much more and gets much more room to screw up.

A new Animations tab allows you to view and improve on public animations them. A new Properties panel allows you to adjust the canvas size and animation framerate along with the text content and image URL.

Its available here, at http://antimatter15.110mb.com/ajaxanimator/build/


Ajax Animator 0.2 Beta *almost* RC1 02 August 2008

Okay, sorta a weird name for a release right? Beta and Release Canidate? Well, its Web 2.0/Ajax so really, anything can happen. I sure hope this doesn’t spark an onsalought of Stable Beta RC1 Pre-Alpha Unstable Full releases.

But… yeah. Tonight I added two very important features stemming from Properties.

the first is properties itself (duh). It allows you to change canvas Width, Height, and the animation framerate. Stemming from this, is the new feature in the Ajax Animator Format (ALEON, AXON, AXION, AJSON, AXFF, AFF or whatever you want to call it), you guessed it: Width/Height. Oh crap. I just remembered that it doesn’t support framerate yet. CRAP! oh. hmm. i’ll just post it anyway and continue from here when I get that feature done.


Today's Updates II 26 May 2008

As I mentioned earlier, more would happen today. I’ve just made an update. I updated the Update system to also compile (it doesn’t compress anything yet, it really doesn’t need to) CSS files. This should speed up the application a bit, and should also make it easier when updating some smaller things. As with that, it will also starting from build 83, create release archives of the CSS files. The compiler mechanism has changed a bit too, but that’s not really important.

The most visible additions, is the embedded Color Dialog. If you look at the title, you’ll find a Steve Jobs reference. Right below the huge drawing tools list (what? is it like 2 times that of the old version?) there is a Line Width slider (this is indirectly inspired by OnlyPath’s Mondrian-style color picker). it also embeds the Color Field plugin, so if you press the little button on the side, a little color palette shows up. Ideally, this will enhance user’s efficiency and be less confusing than the old one.

I don’t know if I can make a “Today’s Updates III” :P

[EDIT] BTW, the page is located at

http://antimatter15.110mb.com/animator/Animator2/build/ajaxanimator.htm


New Features coming in Ajax Animator 0.15 (aka 1.5, read to find out why) 02 December 2007

Okay, so one day i felt crazy and changed everything by 1 decimal place because i don’t want this to seem misleadingly good. I mean, if it hits a 1.0 release, then some people would think it’s almost as good as Flash 1 (futuresplash animator) which it it isn’t even near yet.

So it should be 1.5 but now it’s 0.15 :D

Read more to find out the whole list, a summary of it would be axml2, UI polishing, save space, nicer code (but still hideous), css, users, tweening, finish partially completed ideas etc.

What’s done so far

  • Redesigned Register UI
  • Save Lots of code
  • New Save/Open file format (around 5x faster, and 10 times smaller)
  • Relocating stuff
  • interactive tutorials
  • Backwards Compat Mode
  • for the first time it’s gonna be a legitimate GPLv2 project (I’m gonna include the gpl.txt file for once)
  • replaced wz_tooltips with native ext.js ones
  • Change save file to computer architecture
  • change organization of Save/Open buttons in file menu (submenus)
  • optimized stuff
  • fixed bugs
  • No more save/open window (now, single-purpose dialog alerts, much better)
  • Progress bars
  • User friendly upload error message (yay!)
  • relocate css
  • delete lot’s of stuff from user-management
  • REAL SUPPORT FOR LINES/ELLIPSES, lines didn’t work for tweening, ellipses didn’t work for tweening or flash, and ALL suffered from a programming error causing line-widths to be messed up.
  • FastMode …and more to come

Progress Report 22 October 2007

I’ve not been releasing anything for a while, for several reasons:

1. I’m converting everything to the Ext UI (from textareas, tables, etc. to Ext grids, form fields) 2. I’m completely rewriting the timeline. including a host of new features much for speed. (several TIMES faster) mainly becuase it generates only 300 frames per layer by default, instead of 500, but automatically adds new frames DYNAMICALLY when more is needed. But the rewrite is sorta unstable 3. Tons of UI upgrades. A short list of changes from the top of my head are, a new login stystem (lot’s of fading effects) My Animations; list, faster animation loading. The user animation browser is completely changed-with stuff like Rating animations and comments coming. 4. Sorta goes in UI upgrades, is a new loading splash screen. It has a progress bar, showing status. And CSS is dynamically added, and loads from either the local server, or google code’s subversion (faster). 5. Cross Domain Ajax. The current ajax implementation only allows you to generate flash animations if you are on a php server with all the libraries/files installed. And sometimes you go to it from a proxy or google code beta or something. If that happens, you will not have any access to creating flash animations. So, soon it will curcumvent this restriction, by using a script tag hack, to load the animations from the server. Though the current ajax implementation will still be used for larger animations. And i might revive animation compression for this purpose. 6. Upgrading to Ext 2.0, this is not really happening NOW, but is being actively thought of. It’s not really a “painless” upgrade, with lot’s of stuff to modify/rewrite. 7. Everything has two options. One is to load from subversion, or the local server. It’s better if you load it from subversion, if you are mirroring it, or if your server is slow. And in many cases it’s really fast, and automatically gzip encodes the stuff. Great isnt it? so it has an option of loading all* (okay, most…) images and CSS from google code.

8. And even more stuff……