xssinterface and Google Gears
I mentioned the cross domain library, xssinterface, created by Malte Ubl on Ajaxian the other day.
His library abstracts on top of postMessage() and browser hacks to give you cross domain work. No sooner than I say “It would be nice if the library used cross domain workers if Gears is installed.” than Melde comments “Thanks for the hint to google gears. It is now implemented in trunk :)”. How about that for service!
Below is his first version that uses cross domain workerpools and the database to keep a message queue going. Very nice!
var wp = google.gears.workerPool; wp.allowCrossOrigin(); wp.onmessage = function(a, b, message) { var origin = new String(message.origin); var parts = origin.split("/"); var domain = parts[2]; parts = domain.split(":"); // remove port domain = parts[0]; var recipient = domain; var channelId = message.text; var db = google.gears.factory.create('beta.database'); db.open('database-xssinterface'); db.execute('create table if not exists XSSMessageQueue' + ' (id INTEGER PRIMARY KEY AUTOINCREMENT, recipient_domain TEXT, channel_id TEXT, message TEXT, insert_time INTEGER)'); // delete (and thus ignore) old messages var maxAge = new Date().getTime() - 2000; db.execute('delete from XSSMessageQueue where insert_time < ?',[maxAge]); // find new messages for me var rs = db.execute('select id, message from XSSMessageQueue where recipient_domain = ? and channel_id = ?', [recipient, channelId]); // there is a new message for the recipient if (rs.isValidRow()) { var id = rs.field(0); var text = rs.field(1); db.execute("DELETE from XSSMessageQueue where id=?", [id]); // unqueue message wp.sendMessage(text, message.sender) } rs.close(); }
Donald Knuth is a god. Someone recently told me that he was at an event where everyone in the room were well known heavy hitters, and when Donald came in the room they all quietened down.
The Art of Computer Programming is an amazing tomb, and thus he gets the award:
Donald Ervin Knuth is a renowned computer scientist and Professor Emeritus of the Art of Computer Programming[2] at Stanford University.
Author of the seminal multi-volume work The Art of Computer Programming (”TAOCP”), Knuth has been called the “father” of the analysis of algorithms, contributing to the development of, and systematizing formal mathematical techniques for, the rigorous analysis of the computational complexity of algorithms, and in the process popularizing asymptotic notation.
In addition to fundamental contributions in several branches of theoretical computer science, Knuth is also the creator of the TeX computer typesetting system, the related METAFONT font definition language and rendering system, and the Computer Modern family of typefaces.
A prolific writer and scholar, Knuth is also creator of the WEB/CWEB computer programming systems designed to encourage and facilitate literate programming, as well as designer of the MMIX instruction set architecture.
What about the other awards?
- Community Waiting for an Update
- Biggest Hack for a Language Runtime
- Most Original Name for a New Language
- Most Format Restrictive Language
- Best Comeback for a Programming Language
- Most Overloaded Product Name
Got some ideas for awards you would give?
In general I think the new Firefox 3 Mac interface “Proto” is nicer. I keep seeing new versions come along, but they are all wonky for me, and I think it is due to my 1Password icon. The favicon.ico is always in the wrong place (as above).
I do think that that the buttons and elements are too big and roundy. I prefer the simpler Safari layout, and it doesn’t use as much room before the URL bar itself. It seems that people like to go crazy over these interface changes “waaaaah I liked it how it was!” but I am glad that they are playing with things…. and with Aza, I hope we see more ;)
Lisa Awards: Community Waiting for an Update
Man, what a wait. 10 years and counting? The community has started to take hold and have updated Perl 5 a lot recently, which most people outside of the core community never see as they wait for the Big One. When Perl 6 and Parrot really hit primetime, I wonder what will happen?
What about the other awards?
- Lifetime Achievement
- Community Waiting for an Update
- Biggest Hack for a Language Runtime
- Most Original Name for a New Language
- Most Format Restrictive Language
- Best Comeback for a Programming Language
- Most Overloaded Product Name
Got some ideas for awards you would give?