Optimism that only a programmer can appreciate

“A programmer is a person who passes as an exacting expert on the basis of being able to turn out, after innumerable punching, an infinite series of incomprehensive answers calculated with micrometric precisions from vague assumptions based on debatable figures taken from inconclusive documents and carried out on instruments of problematical accuracy by persons of dubious reliability and questionable mentality for the avowed purpose of annoying and confounding a hopelessly defenseless department that was unfortunate enough to ask for the information in the first place.”

— IEEE Grid news magazine

Citizen Spies

Thanks to Google Maps, we know that North Korean leader Kim Jong-il has an awesome swimming pool, complete with a bitchin’ water slide:



(click to see it on Google Maps)

But Google Maps also shows us the cost of excess.



(click to see it on Google Maps)

This is a very small sampling of the mass graves resulting from the 1995-1998 famines (the “Arduous March”) that killed around two million people.

This hellish tour of North Korean is curated by Curtis Melvin, a PhD candidate who, along with a few fellow investigators, has spent the last two years annotating the maps of North Korea in Google Earth. He was recently profiled in a fascinating Wall Street Journal article.

Go to Curtis Melvin’s site to download the incredible kmz file which will open up in Google Earth if you have it installed.

Corn muffin coefficient

From a recent Quotation of the Day Mailing List email comes this gem from a collection of letters written in response to the US Department of Agriculture‘s redesign of the Food Pyramid:

“The cleansing properties of urine are not even addressed in the food pyramid. This must be corrected. We cannot allow small minds and prejudice to bury this useful health information from our brothers and sisters in light.

“Write back IMMEDIATELY and tell me where to report with my diagrams. I am including corn muffins prominently in my calculations. That alone should tell you that I know what I am doing!”

– Mark Martin, Foodician, from his submission to the U.S. Department of Agriculture on the redesign of the “food pyramid”.

Here’s a snapshot of the original letter from the collection of letters the USDA received:

I think it’s an artist’s prank. He claims he received a response from the USDA but it was just a generic form letter. Nevertheless, the prominence of corn muffins in his calculations is hard to ignore.

CTRL-ALT-DNA

You’re sitting at your computer, writing your next awesome computer program. You think, “I want to run my new program. But the computer I have is too slow and too boring to run it on.”

You glance over at the petri dish in your biology lab. “What if I could deploy my program as DNA, and the outcome of my program gets expressed as proteins and genes in a real cell?”

Sounds kind of crazy. But Microsoft is researching this.



An Escherichia coli predator-prey system implemented with a synthetic biology programming language developed by Microsoft researchers.

In their paper Towards programming languages for genetic engineering of living cells, Microsoft UK researchers Michael Pedersen and Andrew Phillips have developed a programming language that translates logical concepts into models of biological reactions in simulators. Reactions that have favorable results have the potential to be synthesized into DNA for insertion into real cells, achieving some level of cyborgian awesomeness that we can only just begin to imagine. (Insert obligatory Blue Screen of Death joke here).

More info here. And be sure to check out the full paper here.

Dress for the Aporkcalypse

I was hypnotized by the recent rebranding of “swine flu” as “hamthrax”, which unfortunately compelled to me design a t-shirt for sale on CafePress:

How long until the band‘s lawyers come after me?

Until then, buy a shirt!. Or a hat. 🙂

WTFractal?!?

XSLT is a language for transforming XML. I came to hate XSLT long ago, at the tail end of a fading honeymoon period in which I dwelt in the empty promises of XML.

Somebody came up with a way to plot the Mandelbrot Set using only an XML file combined with a particularly evil XSLT file. This is a disturbing, evil way to go about drawing fractals. Please don’t do this.

It really works. Click here to try it. Your browser will thank you for the pointless exercise.

(previously, and previously)

Game Day at Luna City Arcade

The multi-talented programmer, vintage arcade enthusiast, artist, and iPhone game developer Peter Hirschberg created a one-of-a-kind private vintage arcade collection that he periodically opens to the public. His Luna City Arcade is an acclaimed collection of still-functioning vintage arcade games from the 1970s and 1980s that he keeps and maintains in a 2400 square foot building next to his house.


Luna City Arcade. Image by Peter Hirschberg.

This past Saturday, Iris and I hopped in the car and drove up to Luna City Arcade. We met up with the McCubbins and enjoyed a day of beeping and chippy nostalgia.


(youtube link)

Peter and his wife were gracious hosts and we had a great time. Check out Peter’s newest iPhone game, Vector Tanks, a throwback to the days of Battlezone, and Adventure Revisited, his clone of the classic Atari game Adventure for Windows and Mac. And take a look at his software portfolio for an interesting collection of simulators, emulators, and novelties that he’s created.

RuleDaddy

Bob Parsons, the entrepreneur who started the highly successful GoDaddy domain registration companies, published a list of his 16 rules for “success in business and life in general” way back in 2006. I only recently discovered the list, and many of his rules really ring true to me, especially #3, #7, #9, and #16:

1. Get and stay out of your comfort zone. I believe that not much happens of any significance when we’re in our comfort zone. I hear people say, “But I’m concerned about security.” My response to that is simple: “Security is for cadavers.”

2. Never give up. Almost nothing works the first time it’s attempted. Just because what you’re doing does not seem to be working, doesn’t mean it won’t work. It just means that it might not work the way you’re doing it. If it was easy, everyone would be doing it, and you wouldn’t have an opportunity.

3. When you’re ready to quit, you’re closer than you think. There’s an old Chinese saying that I just love, and I believe it is so true. It goes like this: “The temptation to quit will be greatest just before you are about to succeed.”

4. With regard to whatever worries you, not only accept the worst thing that could happen, but make it a point to quantify what the worst thing could be. Very seldom will the worst consequence be anywhere near as bad as a cloud of “undefined consequences.” My father would tell me early on, when I was struggling and losing my shirt trying to get Parsons Technology going, “Well, Robert, if it doesn’t work, they can’t eat you.”

5. Focus on what you want to have happen. Remember that old saying, “As you think, so shall you be.”

6. Take things a day at a time. No matter how difficult your situation is, you can get through it if you don’t look too far into the future, and focus on the present moment. You can get through anything one day at a time.

7. Always be moving forward. Never stop investing. Never stop improving. Never stop doing something new. The moment you stop improving your organization, it starts to die. Make it your goal to be better each and every day, in some small way. Remember the Japanese concept of Kaizen. Small daily improvements eventually result in huge advantages.

8. Be quick to decide. Remember what General George S. Patton said: “A good plan violently executed today is far and away better than a perfect plan tomorrow.”

9. Measure everything of significance. I swear this is true. Anything that is measured and watched, improves.

10. Anything that is not managed will deteriorate. If you want to uncover problems you don’t know about, take a few moments and look closely at the areas you haven’t examined for a while. I guarantee you problems will be there.

11. Pay attention to your competitors, but pay more attention to what you’re doing. When you look at your competitors, remember that everything looks perfect at a distance. Even the planet Earth, if you get far enough into space, looks like a peaceful place.

12. Never let anybody push you around. In our society, with our laws and even playing field, you have just as much right to what you’re doing as anyone else, provided that what you’re doing is legal.

13. Never expect life to be fair. Life isn’t fair. You make your own breaks. You’ll be doing good if the only meaning fair has to you, is something that you pay when you get on a bus (i.e., fare).

14. Solve your own problems. You’ll find that by coming up with your own solutions, you’ll develop a competitive edge. Masura Ibuka, the co-founder of SONY, said it best: “You never succeed in technology, business, or anything by following the others.” There’s also an old Asian saying that I remind myself of frequently. It goes like this: “A wise man keeps his own counsel.”

15. Don’t take yourself too seriously. Lighten up. Often, at least half of what we accomplish is due to luck. None of us are in control as much as we like to think we are.

16. There’s always a reason to smile. Find it. After all, you’re really lucky just to be alive. Life is short. More and more, I agree with my little brother. He always reminds me: “We’re not here for a long time; we’re here for a good time.”

Is it working for him?



Perhaps. 🙂

I’m very guilty of violating rule #3 (“When you’re ready to quit, you’re closer than you think”). I find it very odd how quickly I’ll neglect some project when it is very close to completion and/or success. Must be some kind of weird self-destructive streak. Or fear of FAIL.

I like Bob Parsons’ list because it is practical and not as “touchy-feely” as many of the other self-improvement lists out there. Maybe it will help me get rid of my boarding pass to the FAIL BOAT.

Swappify

TGAW’s series of posts of “Season Compares” inspired me to code up another creation, the Swapper, to add to my ever-expanding collection of web toys of questionable value.



Example swappification. Click to open if it isn’t animating for you.

Its purpose is to let you specify two images. The Swapper will load your two images and display the first one for you. When you move your mouse cursor over the first image, the second image will appear. When you move your mouse cursor away from the second image, the first image will appear. This gives you a way to quickly flip between two images to compare them. Give it a try! There are some sample images there to get you started.

Programmer’s lament

“Since I’ve violated the Golden Rule of Helping Friends with their PC Problems and attempted to help a friend with his PC problem, expectedly wiping out his hard drive in vain, I had many opportunities to explain the Programmer Paradox: how can a programmer fail to make a computer do as he wishes? While the difficulty of debugging a program without the source proved hard to explain to laymen, I think I’ve found a metaphor that does a good job. A programmer is to the blue screen of death what Mikhail Kalashnikov is to a loaded AK-47: just as helpless a victim as any other mortal, except for having a profound understanding of the mechanisms of his execution.”

Yossi Kreinin