linked list

Recursive Food

From Everything2:

A CS professor once explained recursion as follows

A child couldn’t sleep, so her mother told her a story about a little frog,
who couldn’t sleep, so the frog’s mother told her a story about a little bear,
who couldn’t sleep, so the bear’s mother told her a story about a little weasel…
who fell asleep.
…and the little bear fell asleep;
…and the little frog fell asleep;
…and the child fell asleep.

It goes on to explain fractals as:

A mathematical figure that is self-similar; that is, as you zoom into it, you will see the same pattern repeated over and over again.

I should point out to all my non-geeky readers that recursions and fractals are an important part of computer science culture. We used to sign up for programming competitions in high school / undergrad as Recursive Nightmare(where a guy has a dream in a dream in a dream in a dream… stack overflow, head explodes!), and I’ve seen text books where the index contains jokes like “Recursion……. see recursion”.

Obviously, such intriguing contexts have to be applied outside computer science, and what better place to try this out than the wonderful world of food? Here’s presenting the wild world of recursive food!

We first start with an extreme version of the Terducken. The Terducken is an extreme Thanksgiving dish, “consisting of a partially de-boned turkey stuffed with a de-boned duck, which itself is stuffed with a small de-boned chicken”. Anne Petch, of Heal Farm in Kings Nympton, UK took this a few steps further, making a mind-boggling twelve bird variant of this; “turkey on the outside, goose, chicken, pheasant, three ducks, poussin, guinea fowl, partridge, pigeon squab and quail.”

The next bite of awesomeness comes from the awesome folks at Evil Mad Scientist, who created Fractal cookies:

Our final bit of awesomeness is… The Fractal Pizza!:

The fractal pizza is made by first making a bunch of small, itty bitty sized pizzas. These are then used as the topping for a larger set of pizzas. These pizzas are then used as the topping for the final big pizza, the recursive monster pictured above.

So, what fractal food can you think up?

| |

Web 2.0 and the relational database

Yes, this is yet another rant about how people incorrectly dismiss state-of-art databases. (Famous people have done it, why shouldn’t I?) It’s amazing how much the Web 2.0 crowd abhors relational databases. Some people have declared real SQL-based databases dead, while some have proclaimed them to be as not cool any more. Amazon’s SimpleDB, Google’s BigTable and Apache’s CouchDB are trendy, bloggable ideas that to be honest, are ideal for very specific, specialized scenarios. Most of the other use cases, and that comprises 95 out of a 100 web startups can do just fine with a memcached + Postgres setup, but there seems to be a constant attitude of “nooooo if we don’t write our code like google they will never buy us…!” that just doesn’t seem to go away, spreading like a malignant cancer throughout the web development community. The constant argument is “scaling to thousands of machines”, and “machines are cheap”. What about the argument “I just spent an entire day implementing the equivalent of a join and group by using my glorified key-value-pair library”? And what about the mantra “smaller code that does more”?

Jon Holland (who shares his name with the father of genetic algorithms) performs a simple analysis which points out a probable cause: People are just too stupid to properly use declarative query languages, and hence would rather roll their own reinvention of the data management wheel, congratulating themselves on having solved the “scaling” problem because their code is ten times simpler. It’s also a hundred times less useful, but that fact is quickly shoved under the rug.

It’s not that all Web-related / Open Source code is terrible. If you look at Drupal code, you’ll notice the amount of sane coding that goes on inside the system. JOINs used where needed, caching / throttling assumed as part of core, and the schema allows for flexibility to do fun stuff. (Not to say I don’t have a bone to pick with Drupal core devs; the whole “views” and “workflow” ideas are soon going to snowball into the reinvention of Postgres’s ADTs; all written in PHP running on top of a database layer abstracted Postgres setup.)

If Drupal can do this, why can’t everyone else? Dear Web 2.0, I have a humble request. Pick up the Cow book if you have access to a library, or attend a database course in your school. I don’t care if you use an RDBMS after that, but at least you’ll reinvent the whole thing in a proper way.

experimental success

One Doctor’s Personal Experiment — a story of a Oncologist who beat cancer with her own experimental treatment:

For a scientist, there’s no high quite like having your experiment work. That’s why I’m helping to write a case study about what I’ve gone through to share my success with other doctors. I hope my fight against cancer will inch us closer to a cure.

Somehow, being a computer scientist is a lot easier. Worst case scenario, your computer will crash and you will lose your data. It may take a long time to recover, but there will always be an Undo Button.

On a side note, the aforementioned story is hosted at, which just redesigned their site. It’s one of the cleanest but still classy-looking mainstream news websites out there, in my opinion. Good job, guys!


stephen colbert owns Facebook!

Stephen T Colbert, the host of the Colbert Report and the guy who’s making Man of the Year a true story just rocked Facebook. The social network has this feature where you create a group, and ask other people to join it. The group can be about an agenda, a common peeve, of even a friend’s mother.

Growth is usually viral, people usually learn about a group by reading about it in their newsfeed. The last 10 days have seen one of the fastest growing groups in Facebook history, attracting some press coverage. The 1 million strong for Colbert group is the craziest internet phenomenon I’ve seen in a while.

As the group neared its 1 million mark, I thought it would be a good idea to monitor the growth of the group over the next few hours. With some scripting jiggery-pokery, I was able to record the size of the group every 30 seconds, from 6:30pm yesterday, to 8:30am today morning, which is when I woke up and killed the script.

So here it is, the data, visualized. Presenting to you, the growth of “1,000,000 strong for Colbert”:

Notice how the growth unsurprisingly curves off as people go to bed at 1am EST (or 11am PST), and begins growing again at 6am.

To provide a complete picture, I also threw in the overall growth data over the days:


startup idea #4984

Here’s an idea I thought of a while ago. You have the storm botnet, which is apparently now capable of being the world’s most powerful supercomputer:

The Storm botnet, or Storm worm botnet, is a massive network of computers linked by the Storm worm Trojan horse in a botnet, a group of “zombie” computers controlled remotely. It is estimated to run on as many as 1,000,000 to 50,000,000 infected and compromised computer systems as of September 2007. Its formation began around January, 2007, when the Storm worm at one point accounted for 8% of all infections on all Microsoft Windows computers.

The botnet reportedly is powerful enough as of September 2007 to force entire countries off of the Internet, and is estimated to be able to potentially execute more instructions per second than some of the world’s top supercomputers.

Obviously, having a large supercomputer is big business these days. So what you do is have a legal version of this. Let’s say you sell computers at 70% of their real price. The only catch is that people will have to run this special software as part of the system. The special software is basically a remote compute client similar to Folding@Home or Google Compute.

Once you have sold enough computers, you essentially have a large army of computers at your beck and call, for 30% the price of what you would have to invest in otherwise. Of course, obviously someone else owns the machines, but while they are doing lightweight tasks such as checking email and chatting, you are folding proteins, running simulations and cracking ciphers.

Now here’s the best part of the deal: the most expensive part of a grid is not the hardware, but the electricity that it uses. And guess who’s paying this electricity! The customer, not you!.

So there you have it. A cheap, one-time cost for an everlasting free CPU grid. Awesome ainnit?

note: This idea is under this license.


this is how you do it

George Holtz — Age 17. Hacks iPhone to unlock hardware. Trades in unlocked phone to for 3 more phones and a sports car. Begins college at RIT, where he will be consulting part time with cell phone companies.

Something tells me this kid is going to be one of the more popular nerds in school.


Microsoft commercializes Surface Computing

All this stuff has been around for a while, but MS is taking the bold step to commercialize it. The new product is called Microsoft Surface. Pretty slick:

The videos on the MS Surface homepage are also worth watching, though do have an overzealously awesome attitude.

Note though that none of this is new technology — it’s just that a mainstream software company has decided to convert established ideas into a mainstream product. Here’s a set of videos of other surface computing projects:

The BumpTop Project at UToronto does file management using a surface.

TouchLight by MSR

MultiTouch Displays by Jeff Han, and his spin-off Perceptive Pixel

Frustrated Total Internal Reflection — the technology that powers most of these interfaces

Reactable from Universitat Pompeu Fabra. MS totally stole their “shapes” idea.

And last, but definitely not least, is my entry to this game :)

Last winter I took a class with Prof. Michael Rodemer called “Interactivity and Behaviour”. I tried to build a tabletop that reacts to where you touch it, changing lights and modifying the music that it plays. The video is a little lame, but it was fun to build the damn thing!

Privacy issues with Google Street View

Google Street View is a pretty nice implementation of street level maps (originally implemented by A9, which is dead now, sadly). However, check this awesome view of Lombard Street in San Francisco. Notice something? The license plate numbers of the person are clearly visible! It seems that unlike the normal Satellite View which attempts to clean up as many people as possible, the Street View just gives up and shows whatever you see.

Image Hosted by
Click to zoom in on the number plate

Anuj claims public photographs are public record, so no one should care, but I don’t know… I would have a problem with every single person on the internet knowing that my red Chevy Cobalt numbered 5NEX174 was criss-crossing down the crooked street with someone in the passenger seat on a nice summer day.

Update: More “interesting pictures”:

* Man coming out of strip clubAnother man
* Guy checking out woman
* Reflection of the camera car


Flickr mobs

An interesting story has panned out at Flickr, which involves the stealing of a independent artist’s image by an agency, a flickr comment posted by the artist calling fans to send letters to the agency, the censoring of that comment by Flickr, culminating in the world calling Yahoo! Flickr the biggest known evil dictator censorship company since the prehistoric times. Here’s my view, sent as a letter to the artist:

Dear Rebekka,

Here’s something you wrote at the end of your letter:

So i encourage everyone that has been displaying similar landscape photos on flickr to look at their site and see if they see something suspicious.
It would also be pretty cool if as many people as possible would send them angry letters, (address them to ) but that’s just if you feel like it;)”

The first line is ok. The second line, you are actively calling for a mob to do wrong things. And if you look at and, this is exactly what they are doing. In other words, that last line of yours has spurted a mob of angry people to send death threats to a company. Thousands of blog articles now are talking about how Flickr is a censoring company, how Yahoo sucks. Competitors with similar sounding names are voicing attacks to market their own product. And the funny thing is that most of these articles and opinions are either baseless or are completely false. And they were instigated by you. Using flickr.

Sending death threats to a company is wrong, even if they are caught stealing. The right way is to report them to the police.

However, this is not what your fans did. Furthermore, they did it based on your call for arms. And this sentence of yours was hosted at Flickr. In turn, this means that Flickr supports that sentence, that they are all in favor of harassing and sending angry letters.

While I can see that you are a talented photographer, and that it was very wrong to steal, you seem to have (knowingly or unknowingly) used your fame to fire a mob war. Note that you have used Flickr as your platform, and that they are just as responsible for letting you do this as you are.

Which is wrong — Flickr is a photo sharing site. It is not a union for photographers or a place to launch mob wars. All they did was stand by their own convictions of being a photo hosting site, and not your personal podium for war mongering.

Prior to this, I have NEVER heard of any censorship or willful harm done by Flickr to anybody. You seem to be an odd case, and I think it is in some part, if not all, due to your inciting messages which were taken too seriously by the internet.

I think it would be advisable to think about your actions in conjunction with Flickr’s actions, and then form an opinion on the service.

Also, I think you owe the crowds you have infuriated a message, telling them what you think of flickr, since they are right now burning down a beautiful community.


Note: I am an infrequent flickr user, and have been a user of their services since Ludicorp’s Game Never Ending times. I have very I am in no way associated or sympathize with any of the parties involved, and only care for the reduction of mob mentality on the internet. Hope you understand me and have read all of my email.