Log in

The Internet was founded on the concept of a distributed network. If someone blew up servers in one place, the network would still function and data could still get where it needs to go. Now all websites are on specific servers, so you can easily take down a single website through virtual or physical means.

However, if we take a cue from BitTorrent, which is the next generation of distributed storage, and implement that idea across ALL network resources, the web would be invincible.

The problem with netbooks is that they have it backwards. Instead of being a dumb terminal that relies completely on a remote server for its storage and computing power, each netbook could be a node in a distributed version of the web. If each user had a cache of bits and pieces of websites they visit, pictures they peruse, videos they view, etc., they could connect with their fellow users and combine their collected fragments into a complete file. Thus the content providers would be relieved of their storage and bandwidth burden and could maintain a much smaller infrastructure to coordinate the transfers (trackers) and distribute the official versions and updates (seeders).

BitTorrent transfers alone saturate almost half of all Internet traffic. Why? Because it's the fastest way to download something! If all web traffic was distributed like that, your neighbors could be sharing the websites you visit in one or two hops! You could stream music in parallel. Slashdotting anything would be impossible because the barrage of requests wouldn't even make it out of your office building!

A distributed web would not only give the users faster connections and the providers an ease in hardware, it would make it easier for smaller organizations to have bigger followings without the monetary barriers of maintaining scalable server infrastructure. Eventually the entire Internet will be one giant cloud of independent users and nodes in a frenzy of information sharing. First step: down with netbooks!

Venetian Snares

Venetian Snares
Gets under your skin
And controls your limbs.
You can't stop dancing on a whim.

In fact it's rather grim:
It comes so easy to him —
This lone wizard's melodies
Are crafted to bend bodies —

With fast-paced beats
And strings in seven,
Your death through dancing
Seems a mandate from heaven.
I've been wanting this in a programming language for a long time: an if...else...finally block. Basically the rule is this: you have a normal if...else block, but you can put a "finally" condition anywhere you want after the first "if". Any "finally" block appearing (there can be more than one) is executed iff one of the conditional branches above it was followed, within the scope of the followed branch. Execution then continues down the chain. This is a useful shortcut when you have very similar code that is executed when a few conditions are met, but not all of them.

Here's a simple example:

if (a) {
	option = a.getOption();
elseif (b) {
	option = b.getOption();
else {
	option = null;

could be written as:

if (a) {
	option = a.getOption();
elseif (b) {
	option = b.getOption();
finally {
else {
	option = null;

This would come in handy so often that I almost want to modify some open-source compiler to recognize these constructs. I've come across better examples but I can't think of them right now. Try coming up with some of your own.

After much debugging and research, it turns out that you cannot actually count bounces (soft or hard) using the SMTP log, like this script, or this guy. The reason is that the SMTP responses are not recorded in a linear sequence. Direct your attention to the following snippet of an SMTP log (names and addresses changed of course):

SMTP log snippetCollapse )

As you can see on lines 15-17, an email is being requested to be sent to "address10033@mail2.yoursite.com". To deduce which mailing this is and the ID of which contact it was sent to, we look at the previous "MAIL" command which encodes that information in the FROM address (line 15: the mailing ID is "4", the contact ID is "10147"). Then, if there is a bounce (such as on line 28), we look at the last "MAIL" command to determine which contact bounced which mailing.

Unfortunately, since the SMTP server log is not a correct linear progression, the last "MAIL" command is on line 23, which is giving us the mailing and contact IDs for the INCORRECT contact (this is the info for the contact related to the address on either line 27 or 25 - there is no way to tell). The correct "MAIL" command (with the correct mailing and contact IDs gleaned from the FROM address) is actually on line 15. Also notice that the bounce error messages on lines 31 and 33 do not follow the same sequence as they were sent on lines 25 and 27. Thus there is no way of knowing which "MAIL" command matches up with any error message indicating a bounce.

Therefore, there is no foolproof way to match an error message indicating a bounce to a certain mailing and contact ID reliably. It can work occasionally, but we wouldn't want to erroneously count bounces for an address that didn't actually bounce.

The most we can do is to ignore the possibly erroneous last "MAIL" command's mailing and contact IDs, and instead match the email address mentioned in the bounce error message to an address in the contacts database table. This will allow us to at least indicate if a certain address is bouncing, even if we don't know which mailing it came from. Then, a workaround would be to increment the bounce count for ALL sent mailings that include that bounced address in their send-to list, even though it may have very well bounced for one mailing but not the others.

However, most SMTP servers do not even include the email address in the bounce error message. More often than not they will give an extremely short message, like "552+5.2.2+Mailbox+full", assuming that if you wanted to know WHICH email's mailbox was full you could simply look at the previous "RCPT" command in the log. As the snippet above demonstrates, that assumption is false, so actually there is no reliable way to count bounces from the SMTP log.

This leaves us with no choice but to rely mainly on Delivery Reciept Notifications (DSNs): the emails sent to the sender's inbox indicating a bounce. Many email providers have discontinued sending these DSNs and force you to observe the errors in the SMTP log as your only notification of a bounce, however as just demonstrated this is usually impossible. We can try to use the info from the few bounce error messages that actually mention the problem email address, but besides that we are stuck with the DSNs.

I am very interested in the solution these ISPs implemented when they decided not to send out DSNs anymore and forced everyone to use the SMTP log, especially since a lot of whitelists will make sure that you do this before they will whitelist your mailing list servers.

Apathy of Attraction

I was walking to the library downtown today and some hippyish bum guy was yelling "DUDES! DUDES! The girls want it right now! They are sweet and eager for your love! Wake up dudes! They are ready!" Funny, yes, but he speaks the truth. Everywhere I go lately girls are desperately seeking some kind of man figure in their lives, but are coming up empty handed. I feel sorry for them. I wish I could help, but there's something about San Francisco that is dissolving any desire I have for them. It's actually really creepy and makes me think the human race (this section of it, anyway) is slowly adopting some kind of automatic, subconscious population control.

I see it everywhere: girls are basically throwing themselves at guys but the guys aren't catching. It happened to me just the other day. This really cute girl was hitting on me pretty ruggedly after a show, she asked for my number and gave me hers, but I have no desire to call her. There was nothing wrong with her; she was exactly my type: cute, funny, and short, but I just feel nothing. New Years eve I got propositioned by at least three different people to start 2009 with a "bang" (two of which were pretty cute), but I rejected all of them. I am completely apathetic towards everyone - which is weird because I used to get crushes on every cute girl I saw and even if I didn't ask them out I would think about asking, or at least give a good old staredown or something.

I don't know if it's just because I'm getting older and maybe my libido is slowing down, but I think it more has something to do with this concrete cage we live in - something in the water or advertising or alien conspiracy or who knows what. It seems like more and more people I know are just giving up. And I've overheard enough conversations to know that the girls are really frustrated by it. No one is willing to step up and be a man. Maybe it's just the hipster aesthetic or something, or maybe the human race is doomed (or probably both). What do you think?

jScrollPane Pain

So I've been using the jScrollPane plugin for jQuery on one of the Smithsonian websites I've been working on. It's a great plugin, but one of the main problems with it is that it doesn't handle anchor links well (or at all, really). Here is a fix. Just paste this code into a script tag in your document and everything will work automagically (as long as your scrollpane divs are of class "scrollPane" and you are using jScrollPane > 1.2 and jQuery > 1.2):

<script type="text/javascript">
		var targetElementSelectorString = $(this).attr('href');
		var anchorName = targetElementSelectorString.substr(1); //strip the hash

		if (anchorName.length > 0) {
			var anchorSelector = "a[name='" + anchorName + "']";
			var anchor = $(anchorSelector).eq(0);
			if (anchor.length > 0) {
				var pane = anchor.parents(".scrollPane").eq(0);
				if (pane.length > 0) {
					//var pos = $anchor.offset().top - $pane.offset().top;
					return false;
		return true; //just follow the link if it's not to a scrollpane

Pinhole Dreams and Wavy Vision

I just made a pinhole lens for my Nikon DSLR. It took about ten minutes and zero dollars and now I can take macro shots without a $600 lens! I'm really excited to start making timelapse videos with it because I love the quality of light it has and I want to see it in motion.


More pinhole photosCollapse )

I also was experimenting with long exposures of waves in the daytime. I didn't have the pinhole lens at the time so for these I covered the lens with my sunglasses to get the longest exposure possible. I think next time I need to bring a tripod though.

Blurred Ocean

More ocean photosCollapse )

Pope of Yes

Come see the Pope's last show of the year at our favorite low-ceilinged dive the HEMLOCK TAVERN. Sharing the mic will be Half_handed Cloud (Asthmatic Kitty Records) and Fertile Crescent (2/3 of the band Flying) on tour from Massachusettes. They made that music video with the Plankton and Fly Larvae for Deerhoof and they also make rad music.

http://www. myspace. com/fertcres

Half-Handed Cloud is a dude that rocks his own vision with the help of many excellent and worldly musicians (Yoni Wolf, Nedelle Torrisi, Sufjan Stevens). Come and hear his cornicoupia of melody.

http://www. myspace. com/handycloud

And the Pope of Yes will blow your ears off and make you a believer in yourself. Our good friend odbol will be supplying a visual light spectacle.

This highly satisfying music show will be taking place on November the 26th at 9 pm. Regardless of the flier painto the show will cost 6 dollars.
Yippy Ki yay!


The Truth is Revealed!

Senora Obscura: it's funny how the conventional wisdom is that guys are hornier
phreakhead: yeah that's just a rumor started by women to suppress the male population
Senora Obscura: that's true... lots of sex is rough on guys cuz it makes them sleepy
Senora Obscura: it steals all your productive time
phreakhead: that's the conspiracy
phreakhead: girls are trying to weaken guys through repeatedly fucking them
Senora Obscura: oh no, you're onto us

Buying Cars without Getting to Drive

Dear Senators and Congressperson,

Please do not bailout the American car companies like GM, Chrysler, and Ford. They are failing at their businesses for quite natural and capitalistic reasons: they make bad cars. It's not because of the economy, it's because they have been to slow and reluctant to adopt better gas mileage and gas-free cars like Toyota and Honda have been doing for years.

They should not be rewarded with free tax dollars because they cannot please their customers. If GM had released the EV-1, an actual ELECTRIC CAR that all of its drivers LOVED, back in 2000 instead of DESTROYING them, perhaps they'd have better luck with their business. Since they favored the oil companies more than their customers, they deserve to go bankrupt. GM, Chrysler, and Ford must either re-organize, in order to serve their customers (and shareholders) better, or liquidate so that their productive assets can be better used by other firms to better meet consumer desires. That's the principle of capitalism and a free market.

Giving tax money to companies that are failing is the worst kind of socialism. Please do not extend the bailout to car companies.

Tell your representatives to say no to corporate bailouts!


Latest Month

August 2009


RSS Atom
Powered by LiveJournal.com
Designed by Tiffany Chow