memcached: a distributed memory object caching system: "memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load."
Saturday, November 29, 2008
Friday, November 28, 2008
Play! -> Another Java Web application framework
Play! -> Another Java Web application framework: "Play! is a full stack Java Web application framework including a simple stateless MVC model, objects persistence with Hibernate, a Groovy based template engine and everything you need to create a modern Web application ..."
Play!
The Play! frame work makes it easier to build Web applications with Java
NINJAM - Novel Intervallic Network Jamming Architecture for Music - Main
NINJAM - Novel Intervallic Network Jamming Architecture for Music - Main:
"NINJAM is a program to allow people to make real music together via the Internet.
Every participant can hear every other participant. Each user can also tweak their personal mix to his or her liking. NINJAM is cross-platform, with clients available for Mac OS X and Windows.
NINJAM uses compressed audio which allows it to work with any instrument or combination of instruments. You can sing, play a real piano, play a real saxophone, play a real guitar with whatever effects and guitar amplifier you want, anything. If your computer can record it, then you can jam with it (as opposed to MIDI-only systems that automatically preclude any kind of natural audio collaboration1).
Since the inherent latency of the Internet prevents true realtime synchronization of the jam2, and playing with latency is weird (and often uncomfortable), NINJAM provides a solution by making latency (and the weirdness) much longer.
Latency in NINJAM is measured in measures, and that's what makes it interesting.
The NINJAM client records and streams synchronized intervals of music between participants. Just as the interval finishes recording, it begins playing on everyone else's client. So when you play through an interval, you're playing along with the previous interval of everybody else, and they're playing along with your previous interval. If this sounds pretty bizarre, it sort of is, until you get used to it, then it becomes pretty natural. In many ways, it can be more forgiving than a normal jam, because mistakes propagate differently.
Part tool, part toy, NINJAM is designed with an emphasis on musical experimentation and expression.Some pretty good stuff (and some dreck)
NINJAM AutoSong Archive
Wednesday, November 26, 2008
Cloud Options - Amazon, Google, & Microsoft : Simpable
Cloud Options - Amazon, Google, & Microsoft : Simpable: "I have been researching various cloud offerings on and off for the last couple of months. I have primarily focused on offerings from Amazon, Google, and Microsoft.
Here is an overview and some quick opinions of what each service offers."



Official Gmail Blog: Syncing your Google Calendar
Official Gmail Blog: Syncing your Google Calendar: "We on the Google Calendar team work hard to play well with others, so you can synchronize your calendars with a number of mobile devices and desktop applications. This way, you can choose whichever calendars you want to use and keep all of them up to date. Most of these options have been around for a while, and we're happy to announce that Google Calendar now supports the CalDAV protocol -- an evolving, open standard for calendar synchronization."
15 Beautiful High-Quality Free Fonts | Fonts | Smashing Magazine
15 Beautiful High-Quality Free Fonts | Fonts | Smashing Magazine: "Every now and again we take a look around, select “fresh” high-quality free fonts and present them to you in a brief overview. The choice is enormous, so the time you need to find them is usually the time you should be investing in your current projects. We search for them and we find them, so you don’t have to."
Gmail voice and video chat
Look and sound your best with high quality audio and video
Get started easily -- all you need is a webcam"
Tuesday, November 25, 2008
YSlow for Firebug
YSlow for Firebug: "YSlow analyzes web pages and tells you why they're slow based on the rules for high performance web sites. YSlow is a Firefox add-on integrated with the popular Firebug web development tool."
UA Profiler
UA Profiler is a tool that you can run in your browser to determine the status of a number of network-performance-specific features that tie heavily to browser page load performance.
Sunday, November 23, 2008
Friday, November 21, 2008
Everything is Terrible: The First Zillion is Always the Hardest
Everything is Terrible: The First Zillion is Always the Hardest: "In these tough economic times, it's important to remember how people used to lose all their money in the good old days: pointless internet companies."
ongoing � HTML5 Pain
Thus, I was delighted, on following a link from Sam’s post, to see HTML: The Markup Language by Mike Smith, which is an editor’s draft, i.e. essentially a strawman conversation-starter; it’s a nice straightforward specification of the proposed HTML5 language. I quote: “It provides the details necessary for producers of HTML content to create conformant documents. By design, it does not define related APIs nor attempt to specify how consumers of HTML content are meant to process documents.” I really like it when language specifications don’t try to pretend that they can constrain what a programmer can do with them.
UserVoice � Customer Feedback 2.0
UserVoice � Customer Feedback 2.0: "On other projects we were left frustrated and overwhelmed when trying to grasp what our users really wanted. Unorganized inboxes and clogged ticket systems ruled the day. Forums were awash with duplication, user support was impossible to determine, and valuable ideas were lost in the shuffle.
UserVoice adds structure to feedback and reduces the overhead of an honest dialog with our users — It creates a market around good ideas so we get more quality than quantity."
Tuesday, November 18, 2008
Monday, November 17, 2008
reglib vs jquery Demonstration
demonstration of reglib's robustness in event handling in comparison to jquery which relies on "on DOM ready" functionality and relies on tree traversal and event attachment especially after DOM manipulation has occurred.
"Let me first of all stress that I'm not trying to bust on JQuery here. JQuery does something that needs to be done, and it does it just about as well as can be done given the tool-set browsers have collectively placed at our disposal.
With that said, I'm going to go ahead and pimp the reglib way of doing things, by which I mean declarative, over the load-traverse-modify methodology, which JQuery makes so easy."
http://blogs.sun.com/greimer/entry/reglib_versus_jquery
Saturday, November 15, 2008
Gotye Hearts A Mess film clip
Gotye film clip "Animator and film clip director extraordinaire Brendan Cook has emerged from his studio with this amazing film clip for Gotye’s Hearts A Mess"
Friday, November 14, 2008
A Look at Sun.COM's New Event Delegation Library - Gregory Reimer's Weblog
A Look at Sun.COM's New Event Delegation Library - Gregory Reimer's Weblog: "We're on the brink of releasing a new JavaScript mini-library to sun.com, which we call the reg library. It provides an object named, naturally enough, reg. It stands for register. With it, you can register behaviors, like this:
reg.click('ul.foo > li > a.bar', myFunction);
Once that bit of code runs, regardless of whether the entire DOM has finished loading into the browser, click events on elements matching ul.foo > li > a.bar will be handled by myFunction, which is passed a reference to the active element and the event object. This happens without any DOM traversal, and without any events ever being attached to any elements. Even if the entire contents of document.body are subsequently overwritten by innerHTML, all those new element nodes implicitly inherit the correct behavior. No re-walking of the new DOM subtree ever occurs. No re-attachment of events ever occurs."
Projective texturing using Canvas and JavaScript
Projective texturing using Canvas and JavaScript

Thursday, November 13, 2008
Wednesday, November 12, 2008
documentation - swfobject - Google Code - Embedding Adobe Flash Player content using SWFObject 2
documentation - swfobject - Google Code - Embedding Adobe Flash Player content using SWFObject 2:
What is SWFObject?
- Offers two optimized Flash Player embed methods; a markup based approach and a method that relies on JavaScript
- Offers a JavaScript API that aims to provide a complete tool set for embedding SWF files and retrieving Flash Player related information [http://code.google.com/p/swfobject/wiki/api ]
- Utilizes only one small JavaScript file (9.5Kb / GZIPed: 3.8Kb)
- Is the successor of SWFObject 1.5 [ http://blog.deconcept.com/swfobject/ ] and UFO [ http://www.bobbyvandersluis.com/ufo/ ]
- Will eventually replace the Adobe Flash Player Detection Kit [ http://www.adobe.com/products/flashplayer/download/detection_kit/ ]
- Intends to unify all existing Flash Player embed methods and provide a new standard for embedding Adobe Flash Player content
- Is an open source project by Geoff Stearns, Michael Williams, and Bobby van der Sluis, and is formerly known as SWFFix [http://code.google.com/p/swffix/ ]
Tuesday, November 11, 2008
Tiny HTTP Proxy in Python
I wrote a tiny HTTP proxy in Python in September, 2001. It was for Python 2.1 on BeOS R5 originally, and has been working well ever since in every version of Python on almost every platform, including Mac OS X and Windows 2000/XP. I posted it to python-list on 17 June, 2003. It had been available publicly as http://mail.python.org/pipermail/python-list/2003-June/168957.html.
Now the page is gone and not found; you cannot get the code conveniently. So I write this page as its home.
Sunday, November 09, 2008
Red |
Red |
Google Groups: "Red takes the Ruby you write and turns it into JavaScript for your browser.
The all-new Red is a Ruby-to-JavaScript transliterator backed by a custom ruby.js library designed to let your code run in the browser exactly the way Ruby would run on your machine. The JavaScript output is optimized to contain only the fraction of the ruby.js source library needed to run your code."

