Three great links to two artists (Aaron Koblin and Daniel Alfonso Massey) and one project of thousands.
I Hardly Know Her (witty!) is a Flickr viewer. It approaches the problem I'm asked about often: How do I make a photography album online if I'm a professional photographer? Well, I got mines, now it's time to make yours. I'm working on the details.
Sounds and Emotions is a pretty good radio show put on weekly by Nico Bogaerts in Brussels. Their tag line is "Experimental music for experimental people". Unfortunately, their distribution format is 180 degrees from "experimental". It's quite conservative and restrictive, limiting their distribution using format obsfucation. Since I like their show so much, I have composed a script to use mplayer to save a copy of the streaming mp3 to disk. I'll be uploading them weekly to a drop, as I listen to them. The script is also present in the drop, if you are so inclined to rock the steez yourself.

Misspelling Generator is amazing...in concept. In the long line of cool conceptual concepts that have unintended consequences, Erik Borra and Linda Hilflings's Firefox plugin claims to intercept searches to Google and generate a set of misspelled terms based on your proper terms. Cool concept, but a bit of an implementation fail from all ends. In the 10 times I used it, every time I used more than one term it would crash firefox because the script took too long. After these 10 uses, the public wifi network I was on mysteriously began reporting that all my search terms were blocked because it was suspected that I was a robot trying to abuse Google.
In summary, this software is a failure because it literally fails to evaluate (or halt, I'm not sure which), then it submits a false positive to it's far-end. Like ABSML, its a good idea with a bad execution.Miss Heather has been very nice with our little dialog. But wait! There's more shitfones being documented. This one is pretty amazing, though the Queens shitfone wins, literally.
Wow! How many words did I just use up there? Too many. But they all have meanings. BOSH is the latest-greatest method of using a stateless protocol, like HTTP to keep a connection open to a stateful protocol, like XMPP. Jack Moffitt has written the most useful information on the web on this subject. But even with a complete description of how to pull off this "hack" there's always something that can sneak up on me. Here's my architecture right now.
Client (strophe) --> Nginx (rr balancer)--> ejabberd cluster (mod_http_bind)Simple enough, and pretty much documented by Mr Moffitt. BUT WAIT! After deploying this to staging, user testing produced some very strange results. About 1 in 5 connectionswould be one way. I'd see you log in but you couldn't see my words. Bizarre, and usually the result of an inconsistant state. After a day of reading, drawing and poking around I discovered what I believe to be the source. The Mnesia database table for http_bind. I forgot to configure the database table to be shared across all nodes in the cluster. So I believe that each node had their own database for http_bind connections, which would explain the inconsistant yet unpredictable state.
Exactly what I thought, ABSML attacks the hard problems...poorly. I'm sure it's possible to run custom markup without errors, but that success is based on one's tenacity. The source code is a zip file of the web application at Turbulance. The parser is a bunch of PHP using regexs and string matching (re-inventing the wheel, perhaps?) and the user interface is a web page. Here's what I propose:
Excellent idea, poor execution. The death knell of so many grant funded art projects. ABSML will generate cliche text using XML.
At the moment, a real ABSML implementation is impossible, as there's no DTD nor even a list of supported tags in plan english. Only a retro looking form on their web site and a little AJAX glue to print your creation on your own webpage. There is also a black box around their parser, which is only available in the form of a "web service".I will attempt to be the bass master tonight.
Fish are fun!
I got into an barroom argument about god, athesim and the pope last night. I began to argue on the side of athesim from a naturalistic world view. Funny part is I know nothing about what the word athesim actually means aside from what my friends who identify as an athesit tell me. We argued, we agreed and he arrived at this statement: "what scientist can describe beauty? And dont say beauty is molucules because that's missing the point." I was a bit taken aback but then I was tounge tied. I had no quick phrase to turn, no way to make him eat his words. So perhaps I'm truly a scientist? Perhaps not since we were under the influence of 10 year old liquid vegitables. Good part is this morning I thought of the phrase.
Beauty is a sudden stillness
Wouldn't these things be cool? I think so. Perhaps I'll make them.
google.com. 6919 IN MX 10 smtp1.google.com. google.com. 6919 IN MX 10 smtp2.google.com. google.com. 6919 IN MX 10 smtp3.google.com. google.com. 6919 IN MX 10 smtp4.google.com.Four MX records for google. But IIRC, I can type http://google.com into my browser and I will not reach an email server, will I? Of course not. So what's going on? Check it:
google.com. 240 IN A 209.85.171.100 google.com. 240 IN A 74.125.45.100 google.com. 240 IN A 74.125.67.100Okay, so google has three A records for their top level. Cool, that makes sense. But diffing that against the query for www.google.com returns different results. Let's open up that browser again, this time reading HTTP headers.
HTTP/1.1 301 Moved Permanently Location: http://www.google.com/ Content-Type: text/html; charset=UTF-8 Date: Wed, 28 Jan 2009 22:41:49 GMT Expires: Fri, 27 Feb 2009 22:41:49 GMT Cache-Control: public, max-age=2592000 Server: gws Content-Length: 219Booya! Google's running a little cluster of HTTP redirect servers at the top level and forcing everyone to land on www.google.com, which is aliased to the larger cluster and load balanced with a CNAME. Whew, that was exhausting.
www.google.com. 434882 IN CNAME www.l.google.com. www.l.google.com. 213 IN A 64.233.169.104 www.l.google.com. 213 IN A 64.233.169.147 www.l.google.com. 213 IN A 64.233.169.99 www.l.google.com. 213 IN A 64.233.169.103Google has a single alias with a very long TTL, followed by four A records with a 5 minute TTL. Coincidently, 5 minutes is the length first mentioned in RFC 1794. My assumptions about this method is that systems can fall offline and an external notification services can act based on that failure either by putting a new host online in the window of the TTL or updating the DNS record with a fresh IP address. A hot standby would be excellent for this. Yahoo!
www.yahoo.com. 162 IN CNAME www.yahoo-ht3.akadns.net. www.yahoo-ht3.akadns.net. 11 IN A 69.147.76.15Yahoo is much more aggressive than Google with their TTLs. They also use an alias but in this case its TTL is 5 minutes and points to a domain that looks like it could be in a cluster of similarily named hosts. The following A record is even shorter than the alias, 60 seconds. I can imagine that they get good distribution from their cluster of real IP addresses with a maximum outage window of 60 seconds. There's also a margin of error in the alias, as it can be misconfigured and updated within 5 minutes. This feels a bit over engineered to me but I can imagine two wheels, one 5 times as big as the other spinning in unison. The big wheel makes one rotation for every 5 of the little one. But in this case the little wheel is swapped out each time it rotates. There can be more than 5 little wheels available to be coupled to the big one. The big wheel is rarely swapped out. Amazon
www.amazon.com. 12 IN A 72.21.207.65Amazon is the simplest and most aggressive of them all. A single A record with a TTL of 60 seconds. Quick, efficient. Not too nice to the root servers but whatevs, Amazon is in the high bandwidth business and they know that bandwidth is only getting larger, so who cares about a few hundred bytes flowing around every minute? On the backend, Amazon probably has the most elaborate system. Their DNS server should be testing for the availability of each IP that's "on deck" in a stack of IPs, first in first out. If that IP proves that it's ready, the DNS server updates the A record for the next record, repeat this pattern every 60 seconds. If an IP is not ready, skip it and move to the next one. Then there must be some way of flagging an IP as "wasted" and removing it from the stack. In conclusion, I'm going to use the Google method. It gives the most "for free" by distributing load among a group of IPs that have decent uptime. An outage will cause at most 5 minutes of unavailability.
I like soft realtime communications. I like distributed object databases too. I'm also interested in couches. Really.
Also, I haven't touched more than one desktop computer in over a year. When I sit down in front of a computer, I feel uncomfortable if it's a desktop because that feels wierd. What do we use desktops for now? I can see six laptops from where I'm sitting RIGHT NOW! Also, also. I'm going to implement campcaster as a front end to XMMS2 this weekend.Did something new this weekend. It's...very...prototype. Be nice.
Where My Digits At? Twilio provides an excellent REST interface to telephony. It's really amazing what they have done.My previous post wrote in words what I can now show in pictures.
I noticed that Google talk does an interesting type of DNS load balancing. It goes like this:
I really love Apple laptops. They are pretty, functional, unique and have lots of cool hardware hidden in subtle ways. The software, on the otherhand is...not so much. What's someone to do with a brand new mac to turn it back into your computer, not Steve's computer.
Well, short of putting Linux on it, which is tempting but then a bunch of the hardware gonna be a pain to figure out I'm just gonna remove all the crap I don't care about. There are two little programs other's wrote to facilitate this task. AppZapper is a bit retarded because the author believes that it's worth crippling the utility until his users drop a tip in his jar. It's a nice convenience but not worth $12. Shit, I can get a gig of online storage for less than that. Grand total, > 5 gigs of space for applications I don't want. screenshots
I have logstalgia running on the laptop. It's chugging along. Stay tuned for more pictures and simulations. It's a great art piece for the wall.
Restaurant week was good to me this year. Ate at Fishtail, the month old spot with the David Burke lable. It's all sustainable seafood with a gourmet flair. $35 pre fixe menu. Three items for 1st and 2nd and four deserts. I began with warm oysters, followed by the calamari "mac and cheese". Both were excellent, though the only "mac and cheese" I could figure out was that the sauce had some cheddar in it. Otherwise it was calamari, pasta and an excellent cheese sauce. The desert was a pineapple tart. It was perfect. We also had a 2005 Cru Beaujolais Cote de Brouilly, T has a photo of the label. The wine list was extroidanary. Two pages of Boardeaux in all the cru's. They ranged from $90 to $4000 a bottle.
When everything was said and done, I felt great. Elated really. Good dining can definitely transform.Ejabberd is the winningest of all wins. Oh man is this awesome. After much toil and fighting in unfamiliar waters, I have emerged victorious. I have a cluster of Jabber nodes. It doesn't matter which one I connect to, they are all the same. A hive mind if I've ever heard of one.
well, since I've spent enough time doing web design for today, I have to admit that CSS is awesome. I'm able to take some badges from other web sites and place them on mine with almost complete control over how they look. Right now it's just last.fm music and links from del.icio.us, which is a lot of what I record during the married day. Oh yeah, and all the templates are in HAML. That's cool too. Woo hoo, married on weekdays, single on weekends!
People don't take much pride in them, and therefore take their content offline. I too am guilty of this. Currently I'm looking for the acts_as_textile plugin for Ruby On Rails. I can't find it.
Blown fuse == laptop with dead battery shut down. Did not come back up. Strike one for the laptop as server idea.
I have an honorary degree in software engineering from the university of the Internet. I propose to a different friend on facebook every monday. I'm single on weekends, which is when I hack on things like web programming, sound synthesis and databases. I hack on drop.io when I'm married.