I’m going to soon upload the first update to the Ajax Animator in over a year. It is basically VectorEditor integration, and is not an actual update, but a fork of the project.
Ideally VectorEditor (as a far simpler and smaller project), is more stable and the Recovery systems which are quite prominent in the v0.20.x. So the recovery mechanisms are not implemented.
Feature wise, the version has very few new features. It has a few new features like fill opacity and line opacity, and showing multiple layers. But apart from that, there is almost nothing.
It is *not* format compatible with r13 (v0.20.x) of the format, so importing from those will not work.
Posted in Ajax Animator.
Tagged with sad, year.
By admin
– August 14, 2009
IM STILL WAITING TO GET MY ACCOUNT BUT I JUST GOT AN INVITE AND IM SOOO HAPPY!!!!!!!!!!! SEE? LOOK I’M USING CAPS LOCK TO EXPRESS MY HAPPYNESS! IT’S REALLY REALLY REALLY AWESOME EVEN THOUGH I HAVENT ACTUALLY TRIED IT OUT YET! BUT ITS SOOOO COOL! AND LETS BE HONEST, AT LEAST THIS POST ISNT IN COMIC SANS MS.
EDIT: i got my wave account. It’s cool, but there’s nobody to talk to.
Posted in Google Wave.
Tagged with elitist, google, google wave, googlewave.
By admin
– August 13, 2009
So I don’t actually have wave yet, but for all 2 of you (likely less) who have used pygowave, an open source third party implementation of the wave protocol. So there was how I developed it, I read through the APIs and tested on pygowave. So what does VectorEditor do that svg-edit and… erm… svg-edit don’t do?
First, VectorEditor for wave is really really real time. Waaay more real time than svg-edit (not really). But VectorEdit (VectorWave might be a nice name.. I’m going to try using that name from now on in this post) transmits the data such as even while the shape is still being drawn, rotated, or moved (rotation needs work). Another nice feature is that the transitions are animated so things are even more seamless.
Another important feature is shape locking. So when someone selects a shape, it gets locked and can’t be edited by anyone else. If anyone tries, an alert box appears saying “Shape shape:5sdfwef98dfe3ssdf is locked by user antimatter15@pygowave.p2k-network.org”. svg-edit (the latter) doesn’t support moving things after they’re created so it doesn’t really matter then, and I’m quite certain the former doesn’t do any type of locking.
And lets not forget the likely most important, yet totally untested feature that seperates VectorEditor from the rest: IE support, which is inherent since it uses Raphael for rendering, but it may not be necessary since google may be making some shim-type system of hacking svg awesomeness onto IE and making the whole VectorEditor project useless.
So if you want to try it out, go to pygowave, sign up, create a wave and add the
Posted in Ajax Animator, Google Wave, VectorEditor.
Tagged with google, google wave, ie, internet exploder, microsoft, pygowave, SVG, svg-edit, vectoreditor, wave.
By admin
– August 12, 2009
Edit: This post is mostly crap. I figured out how to solve my problems while writing this. But I’m posting it anyway because I feel obligated to spam the internet with my outdated thoughts
One of the main features of Google Wave is the ability to do live concurrent realtime editing. Sadly, this functionality isn’t easy or as far as I know even possible on Google Wave.
Most of the time it doesn’t matter. The only time it would matter is if you are using live concurrent text editing within the gadget. Of course, that’s what I tried doing and that’s why i’m writing this blog post.
So I still haven’t gotten my Google Wave Invite yet (hope soon!) so I’m experimenting with the pygowave project, which is a third party open source implementation of the Wave Protocol. The interface is missing something that is quite important to wave: multi-user text editing. So I decided to try implementing it as a Wave Gadget.
I really did understimate it’s complexity. While implementing isn’t usually too hard, the structure of the Wave Gadget API makes it more difficult than it could/should be. What the wave gadget API does is it has a real time updating key-value table. It’s quite flexible and useable most of the time, but for real time editing, not quite as useful as when something is changed.
For instance, if 2 people are editing the same thing, then whoever submits the data last is the one which wrote the data and the first person’s edits are ignored. Very rarely do 2 people *need* to edit the exact same thing. But when they do, it’s not easy to merge the things. A more chat-like system could work.
But while implementing that chat-type system on top of Wave is possible, it feels very inefficent, partly due to everything being cached at all states (to support Playback) and worry about something akin to garbage collection to delete things after everyone has patched their running copy.
Posted in Google Wave.
Tagged with flaws, google, realtime, vector, vectoreditor, wave.
By admin
– August 12, 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
Posted in VectorEditor.
Tagged with chrome, drag, drawing, firefox, graphics, internet explorer, jsvectoreditor, lines, microsoft, opera, raphael, rotation, update, vector.
By admin
– August 10, 2009
With the acquisition of The Pirate Bay, may people are now reexamining the flaws and central points of weaknesses in the BitTorrent protocol. While BitTorrent is functionally distributed, the applications don’t discriminate and require all torrents to be tracked by tracker xyz, people all end up using the same tracker. Because when something is popular, people get the delusion that it’s just better and use that for their torrents and just contribute to the delusion. What happens is that people end up all using a few select trackers and this totally non-ideal community formed issue is what causes these practical central points of weakness.
It’s not just with trackers, but with many open protocols like XMPP and what Google Wave will become. Even though people can use any server and the functionality is equivalent, most people will end up using Google Talk or Google Wave as their server because everyone else is.
So I was just thinking, how would a Distributed torrent search system work? Well, I think it’s fairly obvious to use some DHT to store the tracker files (which are pretty small usually). People could have a local copy of the entirety of the torrent list, and things could be updated though some decentralized push (XMPP-like?) system.
Well, for it to work, you need a sort of cache of torrent metadata within each user. One idea to protect people from from what is actually stored on their computers, is by using some hash or alternate vocabulary so that each peer’s cache is searchable yet not decodable by the person who’s machine contains the data.I think it would be ideal to seperate the networks which provide for search and those which give the actual torrent metadata, linked possibly by the info_hash value.
Posted in Uncategorized.
By admin
– August 7, 2009
The idea of a Web Browser as the OS is nothing new, and most people know it. As for current things, they’re basically very restricted normal operating systems. Google wouldn’t do something like that without tons of innovation and killer features.
I’ve been watching some google techtalks in the past few days, and I think it was interesting how the one on Wuala (a distributed filesystem) was started with the google guy saying “this talk is being recorded so please refrain from mentioning any google sensitive information in your questions”. While it may be referring to the Google File System, I don’t think it’s too similar to Wuala. So I think the idea of cloud storage distributed among peers is an attractive idea since what would you actually use the hard disk which most netbooks do have, and keeping all your data locally doesn’t really contribute to the whole idea to cloud computing.
Posted in Chrome Extensions, Cloud Save.
Tagged with google.
By admin
– August 4, 2009
So even though the algorithms that transform the calibration box aren’t working accurately yet, TUIO support has been made, so you can use apps like TUIO Mouse to control your computer and other touch demo things.
Posted in ShinyTouch, Touchscreens.
Tagged with calibration, elitist, mouse, ShinyTouch, tuio.
By admin
– August 1, 2009
This is the app running, notice that it’s not yet been calibrated yet.
Here is the auto-calibration process, it alternates between black and white
This is part of Auto-Calibration.
This is some stuff from the command line:
This is just hovering over the screen, notice it’s not touching, and the algorithm can distinctly recognize the lack of a touch because the reflection is seperated from the finger by a significant gap. (Compare the top red bar).
This is a actual touch, you can see that the red bar is far larger, and it’s very distinctly a touch event.
There’s a draw tool and, here is a primitive drawing of a smiley. The dots come from an issue with PIL/OpenCV or something that makes the image all chopped up and sends the point to an arbitary point on the screen.
This is the magical sensor the whole thing is powered by: An unmodified Playstation 3 Eye on a tissue box with a pink Office Depot eraser on the back (because the camera is made tilted and the script can’t handle those tilts very well)
It’s not too insanely slow either. This is 31 frames per second coming from a pure python app, all from a scripting language. It is nowhere as fast as the normal fast native apps.
Posted in ShinyTouch, Touchscreens.
Tagged with app, calibration, elitist, images, nuigroup, paranoia, python, screenshot, webcam.
By admin
– August 1, 2009
Well, I wanted a demonoid account for no apparent reason. So I wanted to search for private trackers, and found this app called Tracker Checker 2 It’s great and all, but it doesn’t work well on linux. Or at least for me, I run it and it pops up a window for a few milliseconds and then closes. There’s nothing in the tray but the process looks like it’s still running. So I looked at the trackers.xml file and thought it would be easy to create another one.
So I quickly hacked together a python script that parsed the xml file and checked for trackers. For some reason, Demonoid said it was open while it was actually closed, so I made a little extension to the format.
I’m actually probably not gonna use this, but I’ve made this private tracker registration checker app in python. It uses a trackers.xml file that is compatable with the Tracker Checker 2 app. It supports a slight extension to the protocol by being able to check if a certain phrase is not in a page. It’s multithreaded and uses expat for xml parsing and urllib2 to download the pages.
I think it would be pretty cool to integrate it with XMPP and port it to Google App Engine, and send out alerts to people when trackers are open.
It has no UI, it’s just a little command line app that could be used as a cron job and integrated with XMPP.
Download here
Posted in Uncategorized.
Tagged with appengine, GAE, private tracker, python, torrents, xmpp.
By admin
– July 31, 2009