Monthly Archives: June 2007

Code Challenge

If you read the same blogs as me or if you watch the same nerd TV show as me, you might have an inkling about what code the following message utilizes. If you are as clever as me, you should be able to crack this code fairly straightforwardly, and tell me what the message is.

63460 67786 67678 48886 58467 86089 31826 38665 83676 00888
46763 84888 88638 66589 48689 66863 62698 43658 96082 48635
46089 41698 38236 96284 62914 84878 68493 86846 51856 08883
38665 69836 36085 16983 84386 38684 65600 88634 60678 96908
83846 38398 46386 16983 36786 98569 06286 60088 86289 86866
56008 89189 98687 86384 06563 86084 89606 98367 60656 98362
63840 16908 65609 98489 63838 49915 69366 48436 58606 98388
46369 84896 38384 99165 86896 96586 63460 67786 67678 48886
67838 98986 67678 58399 1

[tags]Code,Ciphers,Numb3rs[/tags]

Your Taxpayer Funded Robotics Software Available for Download

NASA has released their CLARAty framework for robotics to the public for download.
JPL Robotics: News

CLARAty is an integrated framework for reusable robotic software. It defines interfaces for common robotic functionality and integrates multiple implementations of any given functionality. Examples of such capabilities include pose estimation, navigation, locomotion and planning. In addition to supporting multiple algorithms, it provides adaptations to multiple robotic platforms. CLARAty development was primarily funded by the Mars Technology Program and it serves as the integration environment for the program’s rover technology developments.

Vinyl Data

Show a kid a 3.5″ floppy disk today, and he might look at you in quizzically. Show him a 5.25″ floppy, and he’ll think you showed him some kind of ancient talisman. But in the days before floppies, programs were typically distributed as audio on cassettes. (My recollection of programs on my Atari was that they used 600 bps.) But what I don’t remember (and hadn’t seen before) was that people actually distributed programs as audio tracks on old vinyl LPs (themselves a relic from the past). Check out the link below for more info (and you might find out who Clive Sinclair was…):

Kempa.com: Vinyl Data

ICFP Programming Contest 2007

It’s about a month until the ICFP programming contest begins, and I’ve found out that I’m scheduled to return from Vegas the day of the beginning. I think I’m gonna give it a try this year if I can get my crap together. I don’t suffer from any illusion that I’ll do particularly well, but I find that the experience of working on last year’s puzzle, even after the contest was sufficiently intellectually challenging and stimulating that I think it’ll be fun. To any of the excellent programmers I’ve worked with over the year: consider this an invitation. If you’d like to participate with me, drop me an email and we shall see what we can do.

ICFP Programming Contest 2007

A Couple of Capsule Movie Reviews

This weekend was a double-movie weekend. On Friday night, I went out to see the new Fantastic Four, Rise of the Silver Surfer movie with some of my peeps from work, and late Saturday I succumbed to the influence of the females in my house, and went to catch the new Nancy Drew film.

The good news: my expectations were suitably low, so the movies weren’t actually physically painful.

That sounds like a pretty mediocre recommendation, but let’s face it: the first Fantastic Four movie was dreadful. Really dreadful. Painful to watch. While it would be a stretch to call the second one “good”, it’s got at least some good bits and a climax which is sort of cool. But since negative criticism is more fun to write:

  • Dear God. Jessica Alba is a beautiful girl. She does not need to be painted, bronzed, and wear a wig. Her skin tone varies from “somewhat reasonable” to “oompa loompa”. Her opening scene just made me blink and ask “how much botox did they shoot into her face?” Yaz asked “what did they have the makeup gun set to? Whore?”
  • A word I never want to hear in any non Star Trek movie: “tachyon”.
  • Spiderman 3 jumped the shark with the Tobey McGuire dance sequence. F4 came dangerously, dangerously close.
  • A wedding. No action film should ever have a wedding. A wedding between characters of a TV show is the kiss of death, and it’s again quite dangerous in this one.
  • Why did they bring back Von Doom? He’s pointless. Again, better than Spiderman 3, where EVERY villain was pointless, but still.

Still, it was better. No great, but I didn’t leave feeling rooked out of $10. Maybe just $2.50.

Nancy Drew: a completely different movie, but again, I entered with low expectations. Some negatives:

  • Nancy adopts an annoying sidekick named Corky. We get it: he’s the fat dorky younger brother type who is trying to act cool. How stereotypical is that?
  • Nancy performs an emergency trachiotomy. Nuff said.
  • The bad guy tries to get her with a bomb. A bomb which beeps. Which has a convenient counter on the front indicating how much time is left. Just sitting on the drivers seat when she goes back to the car. Sigh.
  • Nancy’s dad is working hard to make ends meet. So… they take a job in L.A. And somehow manage to rent a vast run down mansion. In Hollywood. Because that’s all they could afford. Ahem.

Still, it had secret passages, a mystery, boxes with secret panels. My wife didn’t like it, but since my expectations were so low, I didn’t actually mind it all that much. If you are a fourteen year old girl, maybe you’ll find it worth matinee money.

One bright note: Nancy’s costuming was really well done. A strangely eclectic voyage through preppy chic.

Upcoming preview that I saw: Transformers. I’ll probably see it on opening weekend.

Just what the heck is Ratatouille, anyway?

With the release of our movie just a couple of weeks away, you might be asking yourself “what is Ratatouille, anyway?” It’s not a very common dish anymore, I’d never had it before. But never fear! Here’s a recipe from Cooking for Engineers. I’m not a huge eggplant fan myself, but this sounds pretty good to me.

You guys are gonna all go see it, right?

[tags]Cooking,Ratatouille,Pixar[/tags]

Cuckoo Hashing, Theory and Practice

In an effort to try to continue to claim that I know something about computer science, I’ve been trying to find some good blogs in computer science and mathematics, and see what people who don’t spend all their time making pixels turn the right color do. The My Biased Coin blog has an interesting introduction to cuckoo hashing, which until this morning, was a term I had never heard before. It seems like a very good idea, with good (and somewhat surprising) theoretical bounds on performance.

My Biased Coin: Cuckoo Hashing, Theory and Practice : Part 1

[tags]Hashing,Algorithm[/tags]

QOTD: Was teaching kids BASIC as a first programming language really fatal?

Dijkstra once famously claimed (well, perhaps not anymore, since fewer and fewer learn BASIC):

It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.

The question that I asked myself last night: “Was Dijkstra right?”

I must admit, I’m one of those guys who learned BASIC as a kid, and then later went on to study computer science, get a couple of degrees, and proceed to make a pretty decent living writing what I hope are good programs. Am I just “practically impossible”? The exception that proves the rule? Or was something else at work here.

I’ll submit that Dijkstra was wrong (although I’m going to provide nothing more than simple gesticulation to back this idea up). It is certainly true that the vast majority of people who picked up BASIC as a first language never progressed beyond being anything but the most dreadful programmers. I suspect, however, that is true about almost any skill. I never became good at roller skating. I don’t possess anything but the most rudimentary skills at drawing. My ability to play the piano is limited to halting walks up and down the keyboard in tuneless exercises.

Peter Norvig has an essay about learning to program which I think hints at the fallacy in Dijkstra’s famous claim. It takes a long time to learn to program, and you have to start somewhere. You learn to program by doing, and for a short generation of programmers, the most accessible entry point was through the BASIC interpreter that came on their Apple II, their Atari or their Commodore 64. A kid with no understanding of programming could noodle around, flailing miserably, writing silly and bad programs, and most importantly figure out that he liked doing it. He could begin to read other people’s programs, and improve. He could even ultimately graduate beyond the world of BASIC, and move on to different ideas.

Dijkstra was in some sense right, but missed the forest for the trees. To get kids to learn programming, you have to get them programming. I pity the poor kid who tries to learn C or uses Visual C# as a first language. Today, languages like Python or even Perl and PHP would take the place of BASIC, and by virtue of their more powerful datatypes and structuring, generally are better choices for the beginning programmer. Yes, we see lots of really bad code written in all these languages. But from the din of mediocre achievement (itself not totally without value) a few scattered diamonds will form.

What’s your take? Was BASIC your first language? Did you turn out to be an okay programmer?

[tags]Programming,Dijkstra,BASIC[/tags]

Addendum: Interesting notes on the acquisition of expertise.

WiFi enabled digital cameras/cards: a good idea?

I was reading the article linked below about why WiFi enabled cameras or cards aren’t a good idea.

» Wi-Fi-enabled digital cameras: Five reasons why you couldn’t care less | IP Telephony, VoIP, Broadband | ZDNet.com

I think the author misses the mark on this. His reasons are:

  1. You already have a camera phone. Well, yes. And chances are your $400 camera phone takes really, really bad pictures. I know mine does. Not quite as pathetic as the old MPX220 that I had, but still worse than a $75 digital camera. A lot worse. That is, of course, why I actually have both a camera phone and a digital camera.
  2. Why buy a WiFi enabled digital camera when you already have a digicam? Well, golly, why buy upgrades to any gadget that you have? The question itself is one of economics: do you gain enough features to merit the upgrade given the cost. WiFi is becoming a very, very cheap upgrade (the Nikon P3 and P4, whose sole difference is the presence of WiFi in the P3, sell for exactly the same price on Amazon). The 2GB card that Eye-Fi is proposing will sell for about double what a normal 2GB card would sell for now. Is it worth it? It very well might be for me, but more on that below…
  3. Why look around for a WiFi hotspot to payfor when you have a cell phone plan already? Because I don’t pay for WiFi hotspots of course. And because cell phone data plans are expensive. And slower than WiFi. And my data isn’t on my cell phone, it’s in my camera. And cell phones aren’t optimized to doing large, bulk data transfers.
  4. If you are really out photographing stuff, there is no urgency to upload your photos. During my trip to Paris a couple of years back, I took about 1200 photos. The problem was, I only had space for about 1000 on the memory cards I had with me. I found an Internet cafe that would burn them onto CD for me, but if I had access to a wireless access point, they could have been transferred while I was sipping a cafe au lait.
  5. Many Wifi hotspots are indoors, and who wants to take pictures of themselves indoors? Uh, duh. There is this thing, it is called memory. Photos are captured onto it, and transferred at a later date.

Okay, well, that was a long diatribe. What would cause me to buy such a camera?

  1. Relatively small price premium. While I think that Wifi enabled cameras are a good idea, they aren’t really the killer app, so don’t price them as if they are.
  2. Unattended image transfer. I want to click a button, putting my camera in some kind of bulk download mode, and have it upload pictures either to my home server (integration with gallery would be cool) or post to a photo sharing site (flickr would be a must).
  3. Ability to use open wifi networks, and efficiently scan for them.

With this kind of feature set, you could take your camera with you on vacation, without a laptop, and snap pictures more or less continuously, with the assurance that in the evening, at either a paid hotspot or a free open one, you could backup all your photos and provide live updates to your friends about where you are and what you are doing. I think that’s pretty cool.

[tags]Photography, WiFi[/tags]