Saturday, November 29, 2008

memcached: a distributed memory object caching system

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."

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


Discover a clean alternative to bloated enterprise Java stacks. Play! focuses on developers productivity and targets RESTfull Architectures. Read the overview.

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

Explaining REST

Dare Obasanjo aka Carnage4Life - Explaining REST to Damien Katz

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."

AWSAppEngine
Azure

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."

Aller Sans

Gmail voice and video chat

Gmail voice and video chat: 


"Chat more ways than ever from within Gmail
Look and sound your best with high quality audio and video
Get started easily -- all you need is a webcam" 

and this plugin

Tuesday, November 25, 2008

John Resig - Browser Page Load Performance

John Resig - Browser Page Load Performance

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.

Here's a look at the current breakdown:

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.

Elsevier: Johnson: Gui Bloopers

Elsevier: Johnson: Gui Bloopers


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."

Monday, November 17, 2008

It's al in the beard

Why Microsoft can Blow-Off with C#?


Note to PM: 2 languages no beard. hmmm 

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

Perspective views are described by so-called projective transforms, which Canvas2D does not support. However, it does support arbitrary clipping masks as well as affine transforms of both entire and partial images. These can be used to do a fake projective transform: you cut up your textured surface into a bunch of smaller patches (which are almost-affine) and render each with a normal affine transform. Of course you need to place the patches just right, so as to cover any possible gaps. As long as the divisions are small enough, this looks convincingly 3D.

Drag the blue handles or change the settings to the right.

Tuesday, November 11, 2008

Tiny HTTP Proxy in Python

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."