Author Archive

Good Night John Boy

Tuesday, June 10th, 2008– by Claude

A few months ago, I purchase licenses for fourteen Mac applications bundled together by the folks at macheist. The bundle costs $49.95 and 25% of the proceeds are donated to a charity of your choosing (sort of — I was able to choose from a list of ten charities). Out of the fourteen, there were only four apps that I was genuinely interested in: Snapz Pro, Pixelmator, Vector Designer and CSS Edit; however, those four alone would cost well over the $50 I spent on the bundle. I downloaded the other ten apps and even played with a few (Tiki Magic Mini Golf could be downright addictive had I not spent my early twenties physically dependent on EA PGA Tour). One of the apps that I didn’t play with immediately but knew that I’d eventually use is iStopMotion. It’s a tool that makes it easy to create stop-motion films (soon, I will be the Martin Scorsese of Playdough-based claymation) and to animate shots of time-lapse photography. My proof of concept was a sunset Sunday night, taken from the third floor of my house. I put my camera on a tripod, pointed it at the John Hancock Tower, attached the camera to my MacBook, selected a 15 second interval and left the room. A couple of hours later I had a 47 second sunset movie.

Someday, when I have a backyard, I’ll shoot fluffy flowers blooming and maples losing their leaves and ponds freezing and thawing. But until then, I’ll cut my teeth on urban scenes. Up next, a little diddy I call “Watching the pothole grow”.

Book Review: Programming Collective Intelligence

Wednesday, May 14th, 2008– by Claude

I recently finished Programming Collective Intelligence by Toby Segaran. This was one of the most interesting technical books I’ve read in years. Like almost every O’Reilly book I’ve read, it packs lots of information into each page, it’s thoughtfully organized and very well edited (I’m dismayed by the steadily increasing occurrence of typos in most of the tech books that I read. Unlike some other publishers, O’Reilly is still willing to run the spellchecker before sending a manuscript to the presses).

This book explains, via examples written in Python, the various algorithms and methods used to glean useful information out of massive amounts of aggregate user data. These algorithms are at the heart of services we use every day, services like Google, Amazon and Netflix. Python is a great choice for the examples in the book because it’s very readable; those not familiar with Python will be able to treat in just like pseudo-code while others, who may wish to jump right into the code, will be able to start playing with examples immediately.

User contribution is about more than getting users to write reviews or rank products. It’s about sifting through any data that is created as a result of user actions and finding interesting shapes and patterns in that data. Movie fans building their Netflix queues are not deliberately contributing to the Netflix suggestion engine; the PMs and engineers at Netflix, however, saw that, intentionally or not, their users were providing them with a mass of data that could be mined to create a system that learns and influences user behaviors. Application that are designed to learn from their users are applications that are well-positioned to deliver delightful experiences back to those users. They are also applications that grow smarter and more effective as time passes and as the user base grows.

The book covers a wide array of topics, including recommendation engines, ranking algorithms, filtering (including a great explanation of one of the most effective spam filters in use today), grouping, clustering, evolutionary algorithms and independent feature search.

Any given chapter in this book could be the foundation of a doctoral dissertation; because of this I felt, at times, that I was only getting a superficial introduction to some of the topics. However, in exploring the wide breadth of machine learning topics that Toby Segaran has included in this book, he delivers a comprehensive overview of the state of the art of data mining and analysis today. I recommend this book to anyone who likes to look at how engines like google and amazon digest and refine the massive amounts of data that goes through their pipes every day.

As a side note, I also acquired a particularly tasty nugget of cocktail party trivia (as if anyone actually has cocktail parties anymore): PageRank gets its name not from the items that it ranks (web pages) but rather from it’s author (Larry Page). Who knew?

Coffee and the Subtle Art of Self-Deception

Monday, February 25th, 2008– by Claude

I had a calculus professor who liked to point out that our brains are smarter than we are. A classic example he used was our inability to write software that can recognize complex patterns because of our inability to understand how we, ourselves, recognize patterns. My brain can recognize a pattern and tell me what it is but it won’t tell me how it knows. Really smart people have been trying for years to create a machine that can distinguish a cat from a dog–something most two-year olds can do. But we don’t know how we do it so we can’t tell a computer how to do it.
As clever as our brains may be, we get to outsmart them at times as well.
For example, let’s talk about caffeine. But before that, let’s have a disclaimer:
I am not a chemist. But my mom is. And so’s my dad.
Caffeine
Doesn’t that make you thirsty? How does this magic little molecule work? It’s a bit of an impersonator. You see, there’s a neurotransmitter called adenosine. Adenosine. Adenosine. Does saying that make you sleepy? It makes me start to yawn. And there’s a good reason for that: According to wikipedia, adenosine “play[s] a role in promoting sleep and suppressing arousal, with levels increasing with each hour an organism [a human, in this case] is awake”. Your brain has receptors for this sleep inducing devil and as long as those receptors are thirsty, adenosine will get produced in your brain. Adenosine looks like this:
Adenosine
Does that look like a caffeine molecule to you? Not to me. But my adenosine receptors can’t tell the difference; caffeine comes in, blocks the adenosine receptors and my brain stops producing adenosine. With no adenosine to tell me that I’m sleepy, I feel alert and chipper and jolly and friendly and all I want to do is write code.
To summarize, here’s the sequence of events: I wake up. My adenosine receptors are empty and tingling because they’re not satisfied with 5 hours of sleep. They start screaming for adenosine and one of the many glands in my skull starts pumping it out. The flood of adenosine makes me feel very sleepy (and grumpy) and so I (not to be confused with my brain) start to holler for coffee. [I actually don't holler; that would make me extremely unpleasant to live with. In reality, I suffer silently and do what it takes to get out of the house and to the coffee shop as quickly as possible]. I drink as much hot coffee as I can without scalding the back of my throat and the caffeine leaps into action, overwhelming the adenosine receptors with attention. The “Let’s make Claude Sleepy” gland thinks it’s done it’s job and stops producing evil adenosine. And, voila! My coffee has tricked my brain into thinking that I’m really not sleepy.
In our next installment we’ll look at this important molecule that’s essential to almost all brain activity:
Glucose
But right now, I need to get some coffee; my brain thinks I’m sleepy.
– claude

The XO and I

Sunday, January 27th, 2008– by Claude

As a member of the iLab, I’m always excited about new technologies. That’s why I didn’t have to spend much time deciding to participate in the OLPC give-one-get-one, a program that provides computers to underprivileged children. This thing just has too much going for it…
* it’s a great cause (although that’s surprisingly debatable; news aggregators have no shortage of debates on the merits of this project)
* it’s built for abuse, making it a perfect first computer for a small child (one of which I happen to have)
* it’s been designed from the ground up by really smart people* it’s built using GPL’d open source software.
The machine runs a Fedora Core 7 base with a Python-based Sugar GUI and the Matchbox Window Manager. It’s significantly smaller than a 17-inch MacBook Pro:
XO MacBook Pro Comparisn
The familiar desktop metaphor has not been adopted for the XO’s UI; there are no folders, no trash or recycle bin, not even a filesystem browser. Given that the target end-user is a child in a developing nation, the desktop metaphor would have been a questionable choice. Instead, the XO/Sugar/Matchbox stack provides an activity-centric environment: a journal activity tracks and displays all other activities that have been run as well as what files or artifacts resulted from running those activities. Each entry can be annotated with tags and a description. Consistently using the journal to re-launch past activities, which picks up where the user had previously stopped, creates a feeling of continuity and serves as a great starting point for each session.The machine comes pre-installed with a surprisingly rich set of application, all of which are nicely described and showcased here. What’s more, the open nature of the XO laptop makes it a perfect platform for customization and DIY projects, such as those shown here.Below is a very brief demo of the Turtle Art activity, which allows the child to “program” a turtle to draw on the screen. Programming, in this case, involves dragging and dropping program parts (loops, commands, attributes) in what feels like a hybrid of logo and scratch.