Sunday, November 30, 2008

Music Snippets

Twittered some mp3s recently. Graduating them here, to the main blog.

minimal tech/garage-y

Last one's kind of unusual - I made it on a plane, with iDrum. iDrum is an iPhone app with a kickass UI but terrible playback options. The other three were created entirely with cheap Korg hardware.

One of the great things Korg always does is assume that even their toys should be usable in serious contexts. iDrum assumes you just want to play with the interface and will never actually try to create a complete track on your iPhone. But if you're trapped on an airplane you may do exactly that.

The result is that playing back an actual tune in iDrum is kind of ridiculous. You have three options. Your track consists of only 16 individual patterns, played in series, once. Or, your track consists of only 16 individual patterns, and the series of 16 patterns is played more than once. Or, you get it to play back the patterns manually, using the iDrum interface in real time. That's what I did for this mp3.

It's a shit option, because the iDrum interface is designed for beat editing, not realtime playback, but it kind of works. You still have to play back a maximum of 16 patterns, in series, but you can get it to repeat individual patterns any number of times, and you can hop around the series, if your fingers are nimble and your memory is good.

iDrum's a great little instrument but this drawback makes me hesitate to recommend it. The developers also offer a desktop version, which appears to have a less creative UI, and a ringtone sync app, which allows you to use your beats as ringtones. It's possible that this means it's an MP3 exporter, in which case you have something you can work with in Ableton Live. I'm going to give it a shot.

A further note about hardware. I used to have a small hardware studio setup: Korg M1, Korg Prophecy, Nord Lead, Akai MPC-2000, power filter, mixer, and an Alesis Wedge for reverb and delay. Around 2002-ish I sold it all and switched to Reason. After a couple of years I decided to get some hardware back in the mix again, and picked up a Korg M1R and M3R (rackmount versions of the M1) on eBay. The machines in the picture are a Korg ER-1 and a microKorg.

The ER-1's a small but powerful drum machine. I've gotten it working with Archaeopteryx, although only in a proof-of-concept form so far. Archaeopteryx is optimized for drums, so I haven't set it loose on the microKorg yet, but it's only a matter of time.

Friday, November 28, 2008

What Zombie Movies Are About

There's more than one way to explain zombie movies. Apply post-modern literary theory to zombies and you can end up with all kinds of crazy shit. Stephen King wrote that zombies represent the fear of cannibalism. The explanation at the current height of intellectual fashion equates zombies with homeless people.

It originated as an implication in the 2002 British zombie movie 28 Days Later, drawn with shots of shopping carts. Later, the South Park episode Night Of The Living Homeless made the comparison explicit. They replaced the zombies' dispirited moaning for "brains" with moaning for "change." The analogy also extended to the absent-minded, vacant, shuffling walk that zombies and (some of) the homeless share.

But there's something sick about demonizing the most unfortunate people in modern society, and I don't think that's really where 28 Days Later was going. I think 28 Days Later compared zombies to the homeless as the if part of an if-then argument about fascism in the United Kingdom. As an American with British parents, I've seen British communication fail this way many times. The way that the British say "if" is pretty easy to miss.

Another problem: saying that "zombies equal homeless people" gives us a simple, pat explanation. Simple, pat explanations are useless when you want to understand a mythological monster. Mythological monsters have more than one dimension. It's their multi-dimensional nature that makes them valuable for stories. Consider vampires. True Blood can tell stories about sexual identity with vampires, Twilight can tell a story about teenage romance with vampires, and Let The Right One In can tell a story about isolation, co-dependent relationships, and disease with vampires.

There's not much of the homeless in the zombies from George Romero's unsettling, brilliant Night Of The Living Dead, which every zombie movie since 1968 owes a debt to. The zombies in Dawn Of The Dead, Romero's 1978 sequel, are nothing like the homeless at all. They wear nice clothes and spend every moment of their un-lives wandering around a mall looking at brand-new stuff. They look just like shoppers.

28 Days Later and Night Of The Living Homeless tell stories about homelessness with zombies, while Dawn Of The Dead uses zombies to tell a story about the emptiness of consumerism as a cultural value. This story remains relevant today, especially now, when we're discovering the emptiness of consumerism as an engine of the economy. The low-budget horror-comedy Re-Animator, which blends Ghostbusters with Moby Dick, uses zombies to tell an incredible story (by H.P. Lovecraft) about obsession, and the dangerous border territory shared by madness and genius.

Simon Pegg - who starred in and wrote Shaun Of The Dead, a hilarious zombies spoof - says zombies represent the fear of death itself:

As monsters from the id, zombies win out over vampires and werewolves when it comes to the title of Most Potent Metaphorical Monster. Where their pointy-toothed cousins are all about sex and bestial savagery, the zombie trumps all by personifying our deepest fear: death. Zombies are our destiny writ large. Slow and steady in their approach, weak, clumsy, often absurd, the zombie relentlessly closes in, unstoppable, intractable.

However (and herein lies the sublime artfulness of the slow zombie), their ineptitude actually makes them avoidable, at least for a while. If you're careful, if you keep your wits about you, you can stave them off, even outstrip them - much as we strive to outstrip death. Drink less, cut out red meat, exercise, practice safe sex; these are our shotguns, our cricket bats, our farmhouses, our shopping malls. However, none of these things fully insulates us from the creeping dread that something so witless, so elemental may yet catch us unawares - the drunk driver, the cancer sleeping in the double helix, the legless ghoul dragging itself through the darkness towards our ankles.

That's the best explanation I've ever read for the terrible disturbing power of Night Of The Living Dead. The movie packs an extraordinary punch. Roger Ebert reviewed it when it was in theaters, and got very upset that kids had been allowed to see it:

The kids in the audience were stunned. There was almost complete silence. The movie had stopped being delightfully scary about halfway through, and had become unexpectedly terrifying. There was a little girl across the aisle from me, maybe nine years old, who was sitting very still in her seat and crying.

I think Pegg is right that Night Of The Living Dead uses zombies to tell an amazing story about human mortality. But I don't think that's what zombies are about. This might be glib, but it's also guaranteed to be true: zombie movies are about zombies. That's the only thing they're guaranteed to have in common, however, because zombie movies can use zombies to tell different stories about different subjects.

Sometimes the only thing you can say with accuracy is that many generalizations are false.

Consider what Pegg says about vampires and werewolves - vampires are all about sex and werewolves are all about bestial savagery. It's not true. There's nothing sexual at all about the vampires in 30 Days Of Night, and the game Werewolf uses the werewolf mythology to play with suspicion, paranoia, distrust, and logic. Bestial savagery has nothing to do with it.

As another example, and to vent, I recently accused somebody of being a "werewolf," in the sense of that game, and based my main argument around a critical comment which that person had made. Some people responded that they felt the critical comment was unintentional. This drove me crazy. I wished I had not even wasted my time communicating with anybody that simple-minded in the first place.

Everybody knows that the werewolf doesn't find out that they're a werewolf until halfway through the movie. Unintentional violence appears in nearly every werewolf story. If my argument is that X act was a werewolf-y act, and the counter-argument is that X act was unintentional, that makes no difference at all. It is no counter-argument. It only serves to illustrate that some people didn't get the metaphor. You might as well say, "I like turtles."

The most common werewolf story is a story about bestial savagery, maybe, but the werewolf mythology has additional dimensions. It makes a great context in which to tell a story about unpleasant people who do unpleasant things and think of themselves as being much nicer than they really are. Imagine a man with children to feed and a sick wife who will die without his help. Everything hangs on him. And then he finds out he's a werewolf. He's been killing people every full moon for six or seven years when he finds out. It's the 1600s - he's a settler in an American colony, far enough from other people to be isolated from the deaths of strangers, especially at the distances a wolf can run in a night, but close enough to find fresh meat every time the craving hits him.

This is a religious man. He believes in God. He prays every day. The insanity and hostile politics of evangelical Christians have made religion seem a shameful thing in America, but this is no bigot - he seeks with all his heart to serve God and to do good in the world.

What does he do now?

Does he give himself up to his church, or the witch-hunting law enforcement of his day, and die at their hands with a clean conscience? Does he keep his freedom, even though he knows it means he will go on killing strangers? In the 1600s, in America's colonies, life was hard, and women and children were often dependent on men in a way that is hard to even imagine today. If he dies, his wife and children die. If he doesn't, he'll be killing innocents for years to come. Whichever decision he makes, somebody innocent dies. It's a story about a werewolf that has nothing to do with bestial savagery, and everything to do with responsibility, regret, guilt, denial, and the fact that looking yourself in the mirror can require that you make the right decisions in difficult circumstances.

Like Bobby Fischer said, sometimes there are no good moves, but there is always a best move.

I recently wrote a screenplay for a zombie movie. It's not about human mortality and it's not about homelessness. In fact, I had the male and female leads both hug a homeless guy to hammer that point home. My zombie script began as an idea for a cyberpunk presentation of The Crucible by Arthur Miller. It became a response to Clay Shirky's Here Comes Everybody, a brilliant book that downplays the dark side of its argument. My zombie script is about YouTube. It's about ostracism, grief, how technology changes society, the tension between chaos and order, and, more than anything else, it's about zombies killing people, and bad-ass survivors shooting a lot of fucking zombies with a lot of fucking guns.

Update: Alan Francis tells me shopping carts aren't associated with the homeless at all in the UK - UK homeless don't have shopping carts, just plastic bags. So the 28 Days Later homelessness thing appears to be an American interpretation of imagery which in the UK means something different.

Thursday, November 27, 2008

Web Drama Ping-Pong

Given my failed attempt to convince the Ruby community to rise up and lunch Chad Fowler like the werewolf he is - excuse me, lynch Chad Fowler etc. - this is obviously a pot calling a kettle black, or more accurately a pot calling a pair of kettles black, but check out the fighting.

Remember Matz is nice so we are nice? Let's call the whole thing off. Maybe Matz being nice works because Matz is Japanese and manners matter in Japan. Here in America we're going to have to find our own alternative method. Something that fits our own cultural traditions.

I propose the Ruby Thunderdome.

Two men enter, one man leaves. He who breaks the law goes back to the house of pain. The first rule of Fight Club is - wait. Never mind.

The first rule of Fight Club is actually a classic paradox. I think it was first put forward by Xeno: "this sentence is false." If the first rule of Fight Club is that you can't talk about Fight Club, how can you ever tell anybody what the rules are?

Anyway, I've got an explanation for the swearing and the name-calling. As I like to mention, I've just written a screenplay on zombies. Stephen King wrote a kind of epic overview of all horror literature since the dawn of time called Danse Macabre, and in it he argued that zombies represent a fear of cannibalism. I'm not going to get into a review of theories about what zombies are - the tangent is too interesting - but if there's one thing that people in an online community have in common with cannibals, it's that we all know people are an acquired taste.

Wocka wocka wocka.

And in the spirit of that comment, I don't actually have a point, but I'm not even sure any of it really matters anyway, so here's Fozzie Bear. Take it away, Fozzie.

If Americans were cannibals, Thanksgiving would be a really awkward holiday.

Wednesday, November 26, 2008

MIDIator Now Has A Built-In Synth

Adam Murray made a driver for Ben Bleything's midiator which gives Ruby access to a built-in, very simple DLS softsynth on OS X.

I wrote a demo file for this softsynth. It was easy; I copied a midiator example and changed one line of code.

Here it is in action.

Friday, November 21, 2008

TDD And Experiments: I Was Wrong

I haven't been able to find where I said it, but I posted here a while back that I think there's an exception to TDD/BDD, which is when you're hacking experimentally and you don't really know where you're going with it.

I found out this was wrong. Right now I'm coding something maybe a little unusual, which I haven't written before and for which there isn't that much similar code out there. I did my usual mostly-bad habit of half TDD, half informal in-IRB TDD. (Where you know the result you want to see, but instead of putting it in a test harness, you just hit the up arrow a lot.)

Side note: don't expect good writing today. I've decimated my brain with inconsistent sleep and diet. It'll be out of commission for a while.

Anyway. The result of not really knowing exactly what I needed to build until it was built: tons of specs to throw away. And that, I think, is the real relationship of TDD to experimental code. You still write the tests. You just throw a lot of them away. In this instance I built a lot of stuff, to some extent with TDD, that either represented a dead-end, or ended up getting moved into different objects and/or files. So that means you throw away a bunch of specs and you rewrite a few. But you write them, in either case.

The reason I'm confident in this is I took the attitude that you don't need specs for experimental code and ended up with a ton of functioning, untested code in Archaeopteryx. When I realized some of the code was no longer experimental, I had to ask myself: does "experimental code" even mean anything?

No code is ever final. You can always add new features or refactor somewhere. So the idea of "experimental code" is kind of a trick. All code is somewhat experimental, especially if you're still in the process of writing it. If you don't put it in a test harness, it's still an experiment. Using TDD just upgrades the experiment to something that uses the scientific method.

Tuesday, November 18, 2008

Let's Be Bad Guys

Slides from Pat Maddox's presentation at Voices That Matter:

You'll notice Zed and I are agents of Imperial evil. Remember though: evil rocks.

(OK that one wasn't in Pat's presentation that I know of.)

Stating The Obvious

It's not a weekly Presidential address on YouTube. It's a vlog. One word, you're done.

Saturday, November 15, 2008

Friday, November 14, 2008

Until They Put It On GitHub



Update: Xavier Shay corrected me. I actually implemented select here, not collect. I also left out execute(statement).

vi In IRB: Screencasting FAIL

I attempted to screencast how I use vi and TextMate from within IRB. I also ranted about how I think the failure of this technique to have already become incredibly popular means everybody but me is an idiot. Unfortunately I also totally failed to realize that if you turn the volume down on your Mac, Snapz Pro X will not observe those changes. The result: babbling and ranting which is practically inaudible, underneath a song which sounds OK played over and over again at a low volume, which is what I experienced, but not so much so at a high volume, which is what Snapz Pro X recorded.

Snapz Pro X is cheap and effective and I'm usually happy with it, but this volume fail makes me think they should have called it Snapz Amateur X.

Anyway, my advice is turn the volume off completely and just enjoy the demo. Or watch with volume on, point, and laugh.

Promiscuity: I Loves To Fork

This is a very handy library.

A high-level interface to the CMU Link Grammar.

This binding wraps the link-grammar shared library provided by the AbiWord project for their grammar-checker, with a few additional patches.

But I forked it anyway.

Here's why, from the INSTALL file:

Giles forked this project because the original project required you to run patch and provided a copy-paste patch command that didn't work on his box. It seemed completely fucking insane to distribute a file known to need patching, so he forked the library and put it on the githubs. If you're a C wizard, look at updating the link-grammar version. The distribution included here isn't really link-grammar 4.3.5; it's a fork of link-grammar 4.3.5, with some minor changes. Giles is not actually clever enough to tell you what those changes are, although he applied them by hand and can help you if you have install questions.

I actually think this was a good idea. It's so much easier to just fix something than it is to persuade other people to fix it. Plus, the library wasn't on GitHub, which made me assume it wasn't maintained at all. Just in case, though, I'm e-mailing the authors.

Thursday, November 13, 2008

Future Fashion: Illuminated Balls

We live in the future. The hot fashion accessory today is a blue LED stuck in your ear.

But it's not all futuristic. A lot of people prefer a primitive, tribal look, with piercings and tattoos.

Of course the two fashions can merge.

The next step is obvious. What's the other big new trend in fashion, that didn't exist in the past? What's the other distinctly 21st-century fashion trend? Cosmetic surgery.

The next step in fashion is the glow-in-the-dark scrotum. And let me tell you, I am not one to fight the future. The minute the procedure becomes available, I will be first in line.

However, I definitely don't want blue to be the color.

Update: Turns out great minds think alike.

Government Will Change Completely And Forever

The Web changes so much that government must change to adapt.

The historical analysis.

The tech demo.

The military argument.

The political argument.

The research.

Wednesday, November 12, 2008

How To Make Time Machine Call You Daddy

Time Machine won't let you delete its backups, even as sudo, unless you do this:

sudo fsaclctl -p /Volumes/ -d

Correction: This just makes the motherfucker call you uncle, not daddy. It still gives Operation not permitted errors all over the place. Doing rm -rf * after fixing the ACL this way frees up gigs but still doesn't return control of your computer to you. It's official - Apple is the new Microsoft.

Screenwriting: Insane Secrecy

One thing which is kind of crazy about Hollywood: if you write a script, your script will probably never be read. But a few scripts become "hot," which means everybody wants to make the movie or be in the movie, which means the script sells for a crazy-high price damn near instantly.

Unfortunately if that happened to me right now, for various tax reasons, I wouldn't be able to take the money. And you really need to be able to turn on a dime.

So, the chance that this could happen is very low, but just in case, I'm not showing my screenplay to anybody. It's kind of ridiculous. I just wrote some scenes I thought were pretty awesome, and I'm only ten or twenty pages away from finished, but when I do finish, I'm not going to show this to anyone till 2009. I'm just going to back it up with Time Machine and start on a new one.

It's really kind of silly.

Some Men Just Want To Watch The World Burn

On October 13th, when the U.S. Treasury Department announced the team of "seasoned financial veterans" that will be handling the $700 billion bailout of Wall Street, one name jumped out: Reuben Jeffery III, who was initially tapped to serve as chief investment officer for the massive new program.


What's most striking about Jeffery's résumé, however, is an item omitted when his new job was announced: He served as executive director of Paul Bremer's infamous Coalition Provisional Authority in Baghdad, during the early days of the Iraq War. Part of his job was to hire civilian staff, which made him an integral part of the partisan machine that filled the Green Zone with Young Republicans, investment bankers and Dick Cheney interns. Qualifications weren't a big issue back then, because the staff's main function was to hand over stacks of taxpayer money to private contractors, who were the ones actually running the occupation. It was this nonstop cash conveyor belt that earned the Green Zone a reputation, in the words of one CPA official, as "a free-fraud zone."


In Iraq, the contractors were tasked with reconstructing the country from the mess made by U.S. missiles. After years of corruption born of no-bid contracts and paltry oversight, many Iraqis are still waiting for the lights to come back on. Today, a new team of contractors is lining up to reconstruct the U.S. economy — reconstruct it from the mess made by the very banks, brokers and law firms that are now applying for contracts. And it's not at all clear that America can survive their assistance.

The New Trough, Naomi Klein, Rolling Stone

Monday, November 10, 2008

The Libertarian Argument Against The Bailout

If assurances of a tax-funded bailout lead banks to make riskier loans than they otherwise would, then the banks are being made freer to take risks with the money of unconsenting taxpayers. When conservatives advocate this kind of deregulation they are wrapping redistribution and privilege in the language of economic freedom.

Part of an excellent article explaining why corporations are enemies of libertarian free-market policy.

How To Be Fucking Awesome

The research over and over again points to just one thing: 10,000 hours of practice.

take the case of Bill Gates. Gladwell cites a body of research finding that the “magic number for true expertise” is 10,000 hours of practice. “Practice isn’t the thing you do once you’re good,” Gladwell writes. “It’s the thing you do that makes you good.” Gladwell shows how Gates accumulated his 10,000 hours while in middle and high school in Seattle thanks to a series of nine incredibly fortunate opportunities—ranging from the fact that his private school had a computer club with access to (and money for) a sophisticated computer, to his childhood home’s proximity to the University of Washington, where he had access to an even more sophisticated computer. “By the time Gates dropped out of Harvard after his sophomore year to try his hand at his own computer software company,” Gladwell writes, “he’d been programming practically nonstop for seven consecutive years. He was way past 10,000 hours.” Yes, Gates is obviously brilliant, Gladwell concludes, but without the lucky breaks he had as a kid, he never could have had the opportunity to fulfill the true potential of that brilliance.

NY Mag piece on Malcolm Gladwell - read it.

Say for the sake of argument that 10,000 hours of practice really is the only thing that matters.

That means you can become fucking awesome at anything.

There's got to be more to it than that, but 10,000 hours of practice is a damn good way to start.

Another good place to start:

Update: I should probably point out, 10,000 hours of deliberate practice is very different from 10,000 hours of generic exposure.

Sunday, November 9, 2008

What Archaeopteryx Is Not For

Friday, November 7, 2008

Post-Modernist Analysis Of Horror Movie Character

(Previously: post-modernism and zombies.)

Secret Decoder Ring: Internet Speakeasy


Prohibition encouraged speakeasies, where people who violated a meaningless, frivolous law together enjoyed a semi-public semi-privacy. Internet users harrassed by inappropriate laws will either change those laws, if they can, or retreat to virtual speakeasies, if they cannot.


Certain types of people would say building a virtual speakeasy verges on conspiracy to commit various kinds of crimes - after all, why would honest people need shelter against surveillance? But you only have to look at either the Nixon or Bush administrations to see evidence of the Republican party illegally spying on its political opponents. Unless we can assume that this never happens, despite factual evidence that it does happen, or that the Republican party is somehow entitled to extralegal powers over its competitors in the political space, the right to privacy remains a crucial part of the First Amendment's protections of political speech and the right to free assembly. Likewise, when the government classifies strong cryptography as a munition, that's correct, but that's why Americans have the right to strong cryptography - our right to strong cryptography is protected as a subset of our Second Amendment right to keep and bear arms.


The DMCA requires that copyright holders identify copyrighted works for takedown. One way to comply with the letter but not the spirit of this law would be to make copyrighted materials easy to find but difficult to identify. You could build an application which hid copyrighted works in plain sight. Consider a URL composed of 5 distinct SHA1 hashes:

This URL would be difficult to guess. A Web spider which found it through a brute force search would be time-consuming to build, expensive to run, and trivial to block.

It's possible to make longer URLs composed of larger numbers of unique hashes, especially if you take the time to build your own simple client app. Next, you map the hashes as keys in a hash. If you have an up-to-date secret decoder ring which identifies what these hashes represent - letters of the alphabet, for example - you can use it to locate files easily. If you don't, you can never find them, so you can never order their takedown.

Distributing the secret decoder ring becomes the challenge. A company could conduct background checks, and then distribute and update the secret decoder ring to individuals who pass the background checks, for a fee. The same technology could be used to create thousands of secret decoder ring web sites - a given individual might fail the background check for one speakeasy while passing it with flying colors for another speakeasy.

On the other hand, it might be better to build a Web 2.0 social networking application - leverage both the multiplicity and singularity of identity online. Instead of background checks, you would have private networks, and you could recommend your friends to your private network. If enough people recommend somebody to a private network, that person is granted access for the given time period, and they get the current secret decoder rings. This is almost simple enough to operate as a Facebook app.


If you're an RIAA lawyer, calm down, it's just provoactive writing - I don't actually have time to build this.

Web 2.0 Increases Freedom, Not Threatens It

An otherwise excellent article on President-Elect Barack Obama's use of the Web makes a serious mistake.


"Barack Obama built the biggest network of supporters we've seen, using the Internet to do it," Joe Trippi, an Internet political and business consultant who pioneered the use of the Internet in politics managing Howard Dean campaign in 2004, and who managed John Edwards' campaign in this election, told InformationWeek. "I don't think there's any doubt that communication through YouTube and other social networks put him over the top."

Obama used a combination of television, the Internet, and social media to recruit volunteers and supporters, and cement relationships with them. He asked supporters to supply their cell phone numbers, and sent out regular text-message blasts, even announcing his selection for vice president over text message. Using a custom social networking site, created with the help of a Facebook co-founder, Obama supporters were able to log in and find lists of people they could call, or whose doors they could knock on, to try to persuade others to vote for their candidate.


And it's only the beginning, said Trippi. That kind of networking will likely transform the White House. Trippi anticipates Obama will create a similar social networking for his legislative initiatives and recruit supporters to lobby Congress to get his policies enacted into law.

The result will be further increase of presidential power and the erosion of congressional authority. "Congress will be put between a rock and a hard place, if millions of citizens sign up to help the president pass his agenda," Trippi said. "If the president says, 'Here are the members of Congress who stand in the way of us passing health care reform,' I would not want to be one of those people. You'll have 10 or 15 million networked Americans barging in on the members of Congress telling them to get in line with the program and pass the health care reform bill. That will be a power that no American president has had before. Congress' power will be taken over by the American people."

This absurd statement fails to observe one of the fundamental rules of technology: the minute somebody figures out what you're doing, they copy it. What happens when 100 politicians have similar systems in place? It won't destroy congressional authority - if anything, it'll make the Congress more powerful. The hidden danger has nothing to do with that. To spot the hidden danger, you have to ask yourself, what will this change?

The person who said this - Joe Trippi, veteran of two failed Democratic Presidental campaigns - assumed that Obama would forever remain the only guy with a social networking site. Because, you know, social networking sites are so hard to build. Like Howard Dean before him, commentators underestimate how much Americans made Barack Obama who he is, because they needed him. All that money didn't just drop out of the sky - it came because Americans really wanted the Republicans out. In a sense the person who did the most work to raise money for Barack Obama was Karl Rove.

However, if there are going to be more politicians with social networking sites, who will they be? There are more social networking sites with good technology and no users than there are social networking sites with bad technology and tons of users. Myspace is a fluke. It's not enough to supply the system; you also have to motivate people to be there.

Seth Godin's new book Tribes argues that leadership on the Web is a matter of two things: supplying the system and motivating people to be there. Joe Trippi should read it. It also explains that nobody ever really creates a social network - these groups of people are out there already. They just need a place to come together and people to lead them there.

If you understand the Internet better than Joe Trippi - in other words, if you're reading this blog - you already know how this works. Tribes on the Internet organize around incredibly specific interests. So we've already got a powerful political social network for people who want the Republicans out of the White House. That's not a very specific interest. What about people who want to press war crimes charges against George Bush? That's a smaller category, and any politician who takes that group of people up as their constituency has my vote, and more importantly, my campaign contributions. And that is the hidden danger here. If you're a Representative from northern New Mexico who takes up the cause of solar energy, and you make it your cause, your social network will have users from outside northern New Mexico, and a lot of your campaign contributions will come from out of state.

The hidden danger is that geographical location is an old, outmoded, irrelevant way of mapping voters to representatives, and Web 2.0 could force our government to find a way to update this antiquated convention. Updating antiquated conventions is actually quite traumatic for governments. However, Obama's election is overwhelmingly positive, and another example of this trend is positive as well.

It's not impossible - it's inevitable. These comics come from the web site of Sean Tevis, who needed $26,000 to run for Kansas State Representative. He raised that money in 37 hours. Although he lost his election - in an extremely close race, he lost by 425 votes out of 10,103 - he raised more than $109,000 from more than 5,700 donors.

I haven't been able to find any documentation on how many of those donors came from outside Kansas, but I have reason to believe it's a non-zero number.

This will happen again. A lot. And while it will transform our political landscape, the nature of the transformation will not involve putting more power in the hands of the President. That's what the Republicans were after, and they will not get away with it. The nature of social networking software guarantees more democracy in our future, not less.

Thursday, November 6, 2008

Archaeopteryx Isn't Just For Fun

In my GoRuCo presentation on Archaeopteryx, I said I would slap anybody who said it was just for fun. One person who said "dance beats seem easy" seems to have taken that threat literally. I should clarify that "you will get slapped" is secret code language for "a nerd will write about you on the Internet."

I know I said just the other day that I was dropping this issue, but I made a joke, and people took it way too seriously. My acting teacher has two Emmys; a superstar DJ knows about Archaeopteryx; but I'm somehow so worked up about a guy who wrote a good book but organized a pair of bad conferences in a row that I'm going to beat him up? Because the guy with the bad conferences is more important to my mood than the superstar DJ or the extremely qualified teacher?

Some people believed this. They took it so seriously, I'm not only banned from RubyConf, I can't talk about it on my blog, either. I wrote a blog post where I made fun of them for taking it seriously - I wrote that I had hired ninjas to slice off my antagonist's buttcheeks - and the same people who were freaking out over my original rant took that seriously too. They actually made me take it down. This is just like 9/11 and the paranoid Republican madness it enabled. If I can't hire ninjas to slice off somebody's buttcheeks, the terrorists have won.

The truth is, the terrorists haven't won. I wanted to get out of going to RubyConf anyway. RailsConf was boring, and if you were there you know I'm not kidding about that. The most interesting thing that happened at RailsConf was the e-mail conversation I had with the pro DJ about Archaeopteryx. That happened on the morning of the first day.

I've spoken at ten confs this year, fifteen if you count user groups. I can skip one. I'm disappointed about Scotland On Rails, where Chad isn't even one of the organizers, but the Scotland On Rails guys were a lot more fair and diplomatic than the RubyConf guys, and Scotland On Rails was going to be at the same time as WMC, the dance music conference. Now I'm going to WMC instead.

Anyway, not content with making enemies in the world of Ruby, I pissed off some people in the world of computer music too. Last month, I attacked the music programming language ChucK, after somebody suggested in private e-mail that it was like Archaeopteryx. From my rant:

ChucK is for smart but lazy people who coast on their intelligence and don't care if they never make a difference in the world. Fuck ChucK. I hate ChucK. I want to bury every one of those motherChucKers under the sea.

The difference between Archaeopteryx and ChucK is the difference between loving music vs. fantasizing about it while jerking off.

Obviously, I have a temper.

However, I've since added a very useful ChucK script by Tom Lieber to Archaeopteryx. I still want to differentiate the projects, but without the harshness. From the Archaeopteryx readme:

Archaeopteryx differs from projects like ChucK, Supercollider, PD, Max/MSP and OSC in a fundamental way. Archaeopteryx favors simplicity over power, and ubiquitous protocols over any other kind. Archaeopteryx does not want programmatic control over sound or audio. Archaeopteryx exists because music software should have a scriptable command-line interface. Archaeopteryx aspires to be an MPC-2000 with a shell prompt. You use Archaeopteryx as a Ruby front-end to music software such as Propellerhead Reason and Ableton Live.

To understand this abrupt transition from combative to fair, or at least more fair, check out the research on achieving excellence in any field.

when amateur singers take a singing lesson, they experience it as fun, a release of tension. But for professional singers, it's the opposite: They increase their concentration and focus on improving their performance during the lesson.

With ChucK you get lots of fun options, none of which are powerful enough to use for real; with Arx you get one thing that works perfectly to generate beats. Less features, less snazzy, less to play with - but more you can work with. That's the difference between Archaeopteryx and ChucK in a nutshell. And you see the same dynamic in a lot of different contexts.

For instance, I'm in an acting class that I waited maybe six months to a year to get into. It's a great class but it's a class for beginners. Some of the other people in the class went through that same wait; some of them just happened to wander in at the right time and have no intention of working as actors. For some of us, the class is an experience of mental focus; for others, it's a chance to let their hair down. This is what sucks about being a beginner.

My teacher's excellent, the curriculum is innovative and effective, and some of the graduates are famous. I'm staying in this class. At the same time, however, I miss a class I was taking before, and I'm intending to take that class again, as well as this class, because the atmosphere is just more real. I want real.

The idea that I'm not just doing this for fun surprises people. I'm sure there are people who think my goal of professional success in music with Archaeopteryx is as insane as my goal of success in acting or my idea that I can do both these things and achieve success as a programmer. These people are just cowards. You have to remember, fear is the mind-killer, which means every coward is also an idiot. Plenty of people have done unusual things of this nature. The research on success in any field says it's a matter of deliberate daily practice.

Deliberate daily practice means spending hours on some particular aspect of what you're interested in, working on getting that one particular aspect better. An example would be writing practice code only for the sake of improving your use of functional idioms, or practicing monologues only for the sake of improving the rhythm of your voice, or spinning practice DJ sets only for the sake of improving the way you use the EQ. These are all things I've done.

If you're going to work on music for its own sake, and you're going to work on programming for its own sake, you might as well combine them. Write a program which makes its own rhythms, and kill two birds with one stone. This changes the way you think about rhythms when you return to making them in a more conventional way. Recently I've been playing with music apps on the iPhone, and I'm seeing an interesting change.

With Archaeopteryx, you build probability matrices, and the probabilities you assign to particular elements of your drum rhythm operate as statements of relative importance. For example, if you say the kick drum lands on the first beat 100% of the time, but the hi-hat only sounds on the 7th beat 20% of the time, you're saying the kick on the 1 is essential, while the hi-hat on the 7 is optional. The drum beats I've been building on the iPhone have gravitated to this idea of differentiating between the essential and the optional.

I used to build my rhythms almost entirely in layers. A hi-hat that played all 16th notes would play all 16th notes or not sound at all. I would be much more likely to introduce a new hi-hat with its own new rhythm than to vary the existing hi-hat's rhythm. The past few days, it's been about varying essential elements only during major changes, and varying optional elements all over the place, whenever I feel like it. Everything's more fluid. I've had the hi-hats playing all kinds of different subpatterns. Because the kick's essential, I varied the kick less, and when I varied it, it signified major transitions. This is partly because I'm thinking more in terms of relative statements of importance now, and it's also because the code I wrote for Archaeopteryx generates and varies subpatterns, so I've decided to follow my AI's good example.

Archaeopteryx might not make me a superstar DJ in 2009, but that's a shallow understanding of its purpose. It's already made me a better musician and programmer than I was before. It's not about some ridiculous musical equivalent of the fast-buck IPO bullshit that passes for long-term planning in our industry. When I'm 50, and I'm making money making music, and people are assuming I only do programming for fun, I'm going to look back on Archaeopteryx as one of the reasons why. If you do a thousand things that each make you a little bit better, you end up pretty damn good.

Wednesday, November 5, 2008

Airplane Speeches Are Ridiculous

I sat through an unusually bad one the other day. Luckily I recorded it.

plane.mp3 (693k)

Tactic For Tact, Which Failed

Following a blog drama fiasco, somebody gave me the advice that I should "always talk to people as if they were dying." This definitely would have steered me clear of that particular fiasco, but when I tried it, it failed badly. The conversation went like this:

Giles's Aging Father: "Would you like some tea?"

Giles: "Dammit, you asshole, why didn't you go to the doctor? I told you to go to the doctor!"

Giles's Aging Father: "What?"

Giles: "I'm going to miss you!"

Then I started crying.

Giles's Aging Father: "What's going on?"

Giles: "I'll try to be strong."

Giles's Aging Father: "Are you going through puberty again?"

Tuesday, November 4, 2008

SocialBeat Screencast

SocialBeat is a Ruby library by Xavier Shay which enables live-coding and MIDI control for OpenGL. Xavier followed up my slightly demented screencast with a more coherent one.

Giles Bowkett: Double Bacon Doucheburger

A lot of people reacted much more dramatically to my recent criticism of Chad Fowler than I had expected. I was banned from RubyConf and my Scotland On Rails keynote got demoted to "we'll consider a proposal if you send one in." I wrote a blog post parodying the politicized way some people responded and found that some of those same people read that very post and immediately politicized it.

I first thought these people must be insane. One angry critic read a blog post about hiring ninjas to sneak up on Chad in the night and slice off his buttcheeks, and treated that as a serious issue which demanded reaction. But finally after several days, the truth emerged: these people got outraged because I was kicking a man when he was down. Chad's in the midst of a serious family difficulty involving an older relative. I picked a terrible time.

I wish some of my critics would have laid off the furious yelling and just told me, you don't know it, but you're kicking a man when he's down. I would have pulled my post instantly. As it is I feel like a complete douche and the damage is already done.

Anybody who agreed with me or disagreed, let's just be considerate adults and let the matter drop for a while.

Monday, November 3, 2008

Barack Obama For The Win

People are still worked up about Ruby politics but seriously, there's more important things going on.

Tomorrow I'm volunteering to get out the vote in New Mexico. It's probably overkill, as 538 is predicting a landslide, but then again Real Clear Politics isn't.

Vote for Barack Obama tomorrow. Victory isn't guaranteed until you actually win.

Sunday, November 2, 2008

An Apology, But No Retraction

An Apology

I need to apologize to the Ruby community for freaking some people out the other day. I wrote a detailed rant about Chad Fowler and in my conclusion wrote that the Ruby community needed to rise up against Chad Fowler, murder him twice, dismember his corpse, set the remains on fire, and desecrate the ashes with urine.

I reiterate the specifics to highlight their lurid intensity and their absurdity. For instance, it's pretty obvious that murdering somebody once is enough to get the job done. You don't really get bonus points. I also said that desecrating Chad's ashes would make him "extra dead". In reality there's no such thing as extra dead. Even in the world of The Princess Bride there was only mostly dead, and dead.

Also, if you read the charges I level against Chad, they do make him look sneaky, but they don't make him look dangerous. So they don't really make him a werewolf. If anything, they make him a were-Scrappy-Doo.

Going back to the paragraph that upset so many people, there's an enormous contrast in tone between that final paragraph and the overall rant. I took the final paragraph out at the request of somebody it bothered - he sounded very genuinely upset - but I'm kind of regretting that since I'm not sure I can recall it word-for-word, and that would be very useful when seeking to contrast tone. Long story short, I would say the major difference was that most of the post was specific and coherent, and the final paragraph was demented and violent.

The missing link here is that ever since I discovered Stephen King this summer, I've been reading horror novels, watching horror movies, and writing a zombie apocalypse screenplay. I'm becoming proud of this screenplay. The biggest point of pride, for me, is that I'm going to have a huge fight scene between a group of zombies and a group of hippos.

I think this tells you a lot about the movie I have in mind. I'm kind of targeting the same blend of lurid absurdity that made Re-Animator both hilarious and terrifying. There's a strange area where horror and comedy meet; the luridness of horror can become the cartoonishness of particular types of comedy. You could probably remake a few Bugs Bunny cartoons as horror movies, and vice versa. Indeed the Bugs Bunny cartoons include a whole series of slasher pics starring an incompetent killer.

As an aside, this is one reason it's really good, in my opinion, to have more than one interest going on in your life. My day Friday consisted of six hundred thousand gajillion e-mails and tweets about Chad Fowler and one in-real-life conversation with a very lovely actress who was very skeptical about the idea of zombies vs. hippos. You don't have to be a genius to figure out which part of my day was the interesting part of my day. She actually asked me, "Where are you going to get the budget for the hippos?" Any day where you face that question is a good day.

I spent all Saturday moving and I've got more moving to do today. The idea of returning to more e-mails about Chad Fowler this evening or tomorrow just makes me want to give the Ruby community the middle finger, grab my balls with my other hand, and tell you all to get a life. However, this is unfair, for a couple reasons. First because there are plenty of people in the Ruby community who didn't contact me about my rant and don't appear to care. They should be the ones telling me to get a life. Indeed, some of them are.

Second, I got caught up in the drama of it all and fought back instead of pointing out the humor. I can't blame them for taking it seriously when I did the same thing, especially when I'm the guy who wrote it. Third, as the guy who wrote it, I have to take responsibility for the frenzy it induced, and in a deranged, backwards way, it's actually kind of flattering. It means that in terms of affecting people emotionally, my writing succeeded very well.

In terms of getting my idea across, however, this paragraph was 100% fail. Worse, it was fail of the that-guy-seems-psycho flavor, which isn't a tasty flavor.

I'm happy to stand by pretty much everything else I wrote. However, most people didn't pay much attention to anything else I wrote. One person ranted that even without the final paragraph it was "disgraceful" and hinted that my company should fire me, but I disagree with him on both counts. The bad news is my company only seems to disagree with him on one count; the good news is that it's the count that counts. My boss posted on the company blog that he thought I was "batshit crazy," but last time I checked I still had a job. You win some, you lose some.

So, I'm sorry, everybody, for using such provocative language and getting so many people so upset. I was aiming for a blend of horror and comedy, but only achieved the horror. I should have realized that the gossip/drama element would make people serious. I'll be a little less reckless with these experiments in future.

But No Retraction

I'm not as sorry as my critics would want, however, because I really don't think you guys have any justification for making such a huge deal out of this. I'm sorry I upset you, but it wasn't just my words; it was also your interpretation. When I say I have to take responsibility, I say that because I believe everybody should take responsibility for the things they do. Writing it was a thing I did; interpreting was a thing that other people did. A lot of the responsibility lies with me, but not all of it. The downside with open source is that if your job and your hobby are the same thing, it might turn you into a boring, overly serious wanker who can't tell the difference between writing lurid prose and starting a civil war. I apologize, but honestly, some of you really do need to get a life.

I also need to remember, as a first-generation American, that the name "Giles Bowkett" is not in and of itself enough of a tip-off to warn readers that English irony and double-meaning lay ahead. The assumption that you should take everything that anybody says with a grain of salt, and check it for concealed humor, is just not part of our culture in the United States. A few different people got the joke, but the only person who got the joke and doesn't have an axe to grind against Chad was Peter Cooper, who comes from the UK. It's not a coincidence. The nice thing about the English is they know how to read. (Except for PragDave, apparently.)

I'm not planning to take any of it back, either. Chad sent me a private e-mail; I deleted it unread and responded in public. I thought my point in the original rant was obvious, but I was wrong, so I'll have to rephrase it here: I don't trust Chad Fowler. I won't discuss this with him in private because I don't want anything to do with him, and because I want his moves to happen in public where other people can see them.

I originally titled my post "I Vote We Lynch Chad." I changed the title because people got so upset; however, the title has a virtue. Implicit in the idea of my vote is the idea that you get a vote too. I'm just going on record - Chad is a leader in the Ruby community, but I am not one of the people he leads. He's likeable enough, usually, and I admire his India book, but I mistrust him, and I have several reasons. I documented some of those reasons in my post. If the idea of Chad being a werewolf to be lynched bothers you, think of something harmless. Think of Canada.

Canadians are polite and nonviolent. They eat circular bacon and drink good beer. So - Chad's a Canadian Prime Minister facing a possible vote of no confidence, and I'm one of the people voting "no confidence."

That's all.

Seriously, Get Over It Already

Saturday, November 1, 2008

More Ruby Music At RubyConf

I'm doing a talk at RubyConf with Ben Bleything and Yossef Mendelssohn, but what if three guys talking about Ruby and music isn't enough?

Would you settle for five? You can get an extra fix of Rubyists making music at both Laurent Sansonetti's talk and Greg Borenstein's.

Greg is talking about using Ruby with Arduino. Arduino's hardware for physical computing. Here's where music comes in:

Laurent is talking about MacRuby. Rumor has it that the first OS X application to feature embedded MacRuby scripting is Elysium, and Laurent will demo that.

Brain Implants

This is kind of a sick thing to do to a monkey, but at the same time, the technology is cool.