March 30, 2006

Yes, I'm a geek

I had the realization that in a purely functional language, doubly linked lists are impossible. Furthermore I quickly realized cycles in all data structures are impossible.

A strange feeling of vertigo came over me as I realized the scenery had changed when I wasn't looking. Had the very ground I'd been standing on disappeared? Would I fall into the void for lack of these important features? But then I looked down and saw I was still on solid ground. The ground had changed to be sure, but it was there and I felt relieved. And oddly exhilarated.


March 28, 2006

Huge Sounds Effects Library Sound Effects, Production Music, Royalty Free Music

Tons of neato sound effects and samples for any mood or occasion: Happy, Sad, Angry, Sexy, or sometimes you need to hear a bunch of fast and slow wet pops. These might come in handy someday.

I'm sooooo in love with this site, there is so much stuff there. I've only just started to look at all these cartoon sound effects.

This listing of Industry - Factory sounds is amazing. Just close your eyes and imagine what's happening, what the machines look like, what's being made.


March 27, 2006

The Value of Repetition.. Again

Coding Horror: The Value of Repetition.. Again

The value of repetition is one of those things I had forgotten. Thanks Jeff for repeating what I thought I already knew.


March 24, 2006

My New Favorite Blogger

Steve Yegge of Stevey's Blog Rants is my new favorite blogger. Why? Because, like Joel Spolsky, his writing is fantastic. He's funny, engaging, insightful and, unlike Joel, he is a real hard-core coder, he doesn't fake deep knowledge of software engineering.

But more than that, the guy really understands computers, really understands languages. He sees that the world of computers that we have around us is a fluke. All the decisions, all the architecture, all the languages, the tools, the databases, the protocols, the hardware, they are all the way they are because we zigged instead zagged. We are where we are because once we found something, anything, that worked sufficiently, we collectively moved on to the next pressing problem, and we haven't revisited the old decisions. Instead we keep applying band-aids to our old concepts, trying ever so hard to keep pushing the old decisions forward, never seeing that they are running out of steam. Steve writes in his Moore's Law Is Crap post:

Is our industry ever going to get out of this amazing backwater of a gridlock, this evolutionary dead-end we're in, where we programmers act like army ants, churning out loops and SOAP calls and UML diagrams as if we're weaving cloth with the very fabric of the computational universe?

And so many of us think things are the way they are because that's the way they must be. We never realize how much of our tools and our outlook on the types of problems we can solve are deeply affected by the decisions made along ago. If we'd have zagged instead of zigged, certain problems would be much easier and others, much harder. And that's not to say that's we should have zagged, but we need to acknowledge it. We need to realize that we can build and learn to use radically better tools, tools that are well known and commonplace in a parallel universe, but look completely foreign in ours. And it's just because we zigged, that's all.

Of course, it's not as easy as just creating a new technology, new tools. You have to understand the people that will use them, you must understand what it is they know and how you can use their existing knowledge to make the transition to new concepts, technology, idioms, whatever, easier. You pick metaphors that people will understand. You use terminology and idioms that people already know, are already used to, and try to bridge the cognitive gap of what they need to learn and make it as painless as possible. If you've ever created something as fundamental as a programming language, you'll understand the awesome power you hold, and how easy it is to make something completely incomprehensible and unusable for people who aren't you.

Anyway, I like to read Steve's blog. You should read it too.


March 23, 2006

The Bug's Eye View

I was listening to Cold Krush Cuts and the monologue on the tracks Harmonic and Mod You really moved me:

People who fly have a different view of the world than those who spend their lives on the ground. A very wise man once wrote a poem while he was flying, and he called this poem "The God's Eye View," and he said that this view was entirely different than the view he always had on the ground, which he called "The Bug's Eye View."

Out there, somewhere, in the air we fly through, exists an old Persian legend much like this poem about a bug who spent his entire life in the world's most beautifully designed Persian rug. All the bug ever saw in his lifetime were his problems. They stood up all around him. He couldn't see over the top of them, and he had to fight his way through these tufts of wool in the rug to find the crumbs that people had spilled on the rug. And the tragedy of the story of the bug in the rug was this: that he lived and he died in the world's most beautifully designed rug, but he never once knew that he spent his life inside something which had a pattern. Even if he, this bug, had even once gotten above the rug so that he could have seen all of it, he would have discovered something - that the very things he called his problems were a part of the pattern.

Have you ever felt like that bug in the rug? That you are so surrounded by your problems that you can't see any pattern to the world in which you live? Have you heard anybody say lately that the world is a total mess? That, my friends, is the Bug's Eye View, and seeing only a little of the world, we might be inclined to think that this is true.
Text found on Everything2


March 22, 2006

It's a Wonderful Internet

What would it be like if the Internet was never born?

It's a Wonderful Internet



March 18, 2006

Speech Accent Archive

Native and non-native speakers of English read the same paragraph and are carefully transcribed. The archive is used by people who wish to compare and analyze the accents of different English speakers.

Speech Accent Archive


March 17, 2006

Snakes On A Plane

I just came across this music contest where the winner gets their song used in the upcoming movie, Snakes on a Plane. Snakes on a Plane? Now, I don't know about you, but when I hear the words "Snakes on a Plane", my pupils dilate and my breathing gets shallow: Does Snakes on a Plane actually mean deadly snakes loose on an airplane? Oh man, that would be sooooo awesome!!!! Not since Gymkata have I been this intrigued by a movie title.


Wait, wait. I've been disappointed in the past. The title is probably a cryptic metaphor meant to expand the mind as the story unfolds and reveals its true meaning. Booorrrring. Sort of like Million Dollar Baby, a Clockwork Orange and Octopussy, the actual movie has little relation to the title; it's all just highbrow art. Snakes on a Plane is no doubt a similarly boring fare, steeped in subtle illuminations of the human condition. I'll pass thank you.

But then I read the synopsis:

Snakes on a Plane stars Samuel L. Jackson as an FBI agent who is escorting an eye witness on a flight from Hawaii to Los Angeles when a crimelord sets in motion the release of hundreds of deadly snakes on the commercial airplane in order to eliminate the witness before he can testify against him. The FBI agent must protect his witness while banding together with the pilot, frightened crew and passengers in a desperate attempt to survive.

Whoa!!! Ok, now I'm totally pumped. There is no way this movie can't be awesome. And it gets better, the trailer starts off with Sam Jackson saying:

Enough is enough. [cocks gun] I've had it with these snakes.

OH SHIT!!!!!

I bet the movie has some treehugger character who's all like "These snakes are endangered and should be protected. We must treat them with respect, like we would want to be treated" just before a snake hiding in his tweed jacket bites him in the face and he dies a painful convulsive death. Stupid treehugger, he'll never learn.

I also bet there is a scene where it looks like they finally outwitted the snakes, and things get calm. In the calm, the old lady is sleeping quietly in a chair. Too quietly. Someone nudges the lady, it's time to get up. She doesn't wake, doesn't move. Another nudge. She slumps over sideways, the camera zooms in on the face. Her mouth opens, its looks like she's going to say something. But no, instead a snake slithers out. AAAIIEEE!!! Somehow the snake crawled into her mouth while sleeping! (I hear this happens a lot when camping)

I predict this movie is going to be the next Star Wars, the next Godfather, the next Matrix. It will weave itself into the fabric of our culture. Like Jaws did for beach go-ers, people will be afraid to fly. Airlines will need to get certified snake handlers as flight attendants, just to assuage the fears of a snake attack breaking out at 30,000 feet. The SkyMall will have a whole section for snake-proof travel gear. Your seat bottom now doubles as a snake-resistant floatation shield. The Crocodile Hunter will become the spokeman for a major airline:
"G-day! See this deadly snake I'm dangling inches from my genitals? It's the Inland Taipan, the most deadly snake in the world, one bite will cause a painful death as you slowly bleed from your eyeballs. She's a real beaute!

Unlike other airlines, Delta airlines has a 20 point snake inspection before each flight, making the threat of Taipan bites during your flight a thing of the past. Does your airline check for snakes? Fly Delta and don't get bitten! Crikey!"

This movie cannot come soon enough. Snakes on a Plane, thank you for giving me a reason to live.


Zen is Boring

People hate their ordinary lives. We want something better. This, our day to day life of drudgery and work, is boring, dull and ordinary, we think. But someday, someday... There's an episode of The Monkees* where Mike Nesmith says that when he was in high school he used to walk out on the school's empty stage with a guitar in his hands thinking "Someday, someday." Then he said that now (now being 1967, at the height of the Monkees fame) he walks out on stage in front of thousands of fans and thinks "Someday, someday." That's the way life is. It's never going to be perfect. Whatever "someday" you imagine, it will ever come. Never. No matter what it is. No matter how well you build your fantasy or how carefully you follow all the steps necessary to achieve it. Even if it comes true exactly the way you planned, you'll end up just like Mike Nesmith. Someday, someday... I guarantee you.

Your life will change. That's for sure. But it won't get any better and it won't get any worse. How can you compare now to the past? What do you know about the past? You don't have a clue! You have no idea at all what yesterday was really like, let alone last week or ten years ago. The future? Forget about it...

People long for big thrills. Peak experiences. Some people come to Zen expecting that Enlightenment will be the Ultimate Peak Experience. The Mother of All Peak Experiences. But real enlightenment is the most ordinary of the ordinary. Once I had an amazing vision. I saw myself transported through time and space. Millions, no, billions, trillions, Godzillions of years passed. Not figuratively, but literally. Whizzed by. I found myself at the very rim of time and space, a vast giant being composed of the living minds and bodies of every thing that ever was. It was an incredibly moving experience. Exhilarating. I was high for weeks. Finally I told Nishijima Sensei about it . He said it was nonsense. Just my imagination. I can't tell you how that made me feel. Imagination? This was as real an experience as any I've ever had. I just about cried. Later on that day I was eating a tangerine. I noticed how incredibly lovely a thing it was. So delicate. So amazingly orange. So very tasty. So I told Nishijima about that. That experience, he said, was enlightenment.

Zen is Boring!

The real point of this article is not that life should be boring, but rather the everyday experience of life is really all you have. If you have the right mindset, it's all you'll ever need.


March 14, 2006

Who Can Name the Bigger Number?

Who Can Name the Bigger Number?

Long interesting read about big numbers, computability and the limitations of the human mind.


March 11, 2006

David Byrne Loves Powerpoint

Did you know David Byrne loves Powerpoint? Here is one of the slides he made while deep in the creative process, I believe it's one of his early works. The man is truly a genius.


(Note: might not have been created by the actual David Byrne)


Dabble DB

Dabble DB

Dabble DB is a web based database development system targeting non-programmers. They're not sharing much in the way of technical details yet, but it looks interesting. Here's a glowing review of it at TechCrunch.


March 4, 2006

Tour De Babel

This is my whirlwind languages tour - the one I was going to write for the Amazon Developers Journal this month, but couldn't find a way to do it that was... presentable.

For one thing, I lapse occasionally into coarseness and profanity here, so it wasn't appropriate for an official-ish Amazon publication. Instead, I'm stuffing it into my blog, which nobody reads. Except for you. Yep, just you. Hiya.


My whirlwind tour will cover C, C++, Lisp, Java, Perl, (all languages we use at Amazon), Ruby (which I just plain like), and Python, which is in there because -- well, no sense getting ahead of ourselves, now.

Tour De Babel

There's a lot to agree and disagree with here. A quite entertaining look at various mainstream languages.

On C++:

We have 50 million lines of C++ code. No, it's more than that now. I don't know what it is anymore. It was 50 million last Christmas, nine months ago, and was expanding at 8 million lines a quarter. The expansion rate was increasing as well. Ouch.

Stuff takes forever to do around here. An Amazon engineer once described our code base as "a huge mountain of poop, the biggest mountain you've ever seen, and your job is to crawl into the very center of it, every time you need to fix something."

On Perl:

There are "better" languages than Perl - hell, there are lots of them, if you define "better" as "not being insane". Lisp, Smalltalk, Python, gosh, I could probably name 20 or 30 languages that are "better" than Perl, inasmuch as they don't look like that Sperm Whale that exploded in the streets of Taiwan over the summer. Whale guts everywhere, covering cars, motorcycles, pedestrians. That's Perl. It's charming, really.

But Perl has many, many things going for it that, until recently, no other language had, and they compensated for its exo-intestinal qualities. You can make all sorts of useful things out of exploded whale, including perfume. It's quite useful. And so is Perl.


March 3, 2006

Why should I care what color the bike shed is?

“What is it about this bike shed?” Some of you have asked me.

It is a long story, or rather it is an old story, but it is quite short actually. C. Northcote Parkinson wrote a book in the early 1960s, called “Parkinson's Law”, which contains a lot of insight into the dynamics of management.

[snip a bit of commentary on the book]

In the specific example involving the bike shed, the other vital component is an atomic power-plant, I guess that illustrates the age of the book.

Parkinson shows how you can go into the board of directors and get approval for building a multi-million or even billion dollar atomic power plant, but if you want to build a bike shed you will be tangled up in endless discussions.

Parkinson explains that this is because an atomic plant is so vast, so expensive and so complicated that people cannot grasp it, and rather than try, they fall back on the assumption that somebody else checked all the details before it got this far. Richard P. Feynmann gives a couple of interesting, and very much to the point, examples relating to Los Alamos in his books.

A bike shed on the other hand. Anyone can build one of those over a weekend, and still have time to watch the game on TV. So no matter how well prepared, no matter how reasonable you are with your proposal, somebody will seize the chance to show that he is doing his job, that he is paying attention, that he is here.

In Denmark we call it “setting your fingerprint”. It is about personal pride and prestige, it is about being able to point somewhere and say “There! I did that.” It is a strong trait in politicians, but present in most people given the chance. Just think about footsteps in wet cement.

--Poul-Henning Kamp on freebsd-hackers, October 2, 1999

I nabbed this from the BSD FAQ. I can't stop thinking about how well this reflects what I've seen in the past and how I'm suprised I didn't understand this principle before, considering I'm as guilty as anyone.


A Wanted Man

Suddenly, I'm a very popular boy amongst the software giants. I've always had regular contact from various recruiters, mostly it's clueless headhunters spamming me with vague job descriptions and I just ignore them.

But very recently, I'm getting lots of calls from "clued-in" recruiters who have a brain and conduct themselves professionally and have jobs that are actually good matches for me. In the past few weeks I've had Apple, Microsoft, Google and just yesterday Oracle contact me for positions. With the exception of Apple (who really needs to go back to recruiting 101: Don't Mislead the Candidates), they all already had my resume and had specific positions in mind for me. Hotdiggity, I'm the cool popular kid! (Yahoo, where are you? You're missing Damienfest '06)

While it’s great to be wanted and popular, I'm just not looking for a job. I'm very focused on Couch and unless you are interested in helping me build it, I'm not interested in working for you. Well, actually, that's not completely true, at some level I am interested in these jobs, and that's kind of the problem: All this is turning into is just distractions.

So in each case, I've politely told the recruiter I'm focused only on building Couch, and if they want to talk to me about Couch they are welcome. But otherwise, I'm just not interested at this time. Now I have to give Google credit, when I told them this, they immediately asked for more information about Couch, maybe they're interested. I really don’t know that much about what Google is really like, but from this encounter I get the impression at least they aren't just staffing-up to build the things that that complete (or protect) their world domination, they are actually interested in getting creative people and letting them build cool things. But I digress.

Whether or not any of this turns into anything besides distractions, I can't say. But I am wondering though, why the very sudden attention from the big boys? Now it's not like I think I don't deserve it (any company would be lucky to have me building software for them), but why are they all of a sudden so hot on me? It’s probably just coincidence, but its odd how 3 tech giants contacted me out of the blue within a week.

So while I'm trying not to think about it too much and just focus on Couch, so far it has been a big distraction. I need to get back into my groove where every day is just about me writing software.


March 2, 2006

Practical Language Comparison

Practical Language Comparison - Non-Trivial Problems Implemented In Various Languages

I haven't looked at this yet, but it looks damn interesting.