« | » Main « | »

Google Maps Street View

Thursday 31 May 2007

I've been having fun playing around with Google Maps Street View. Max described it as "Nat's World on steroids".

Only a few cities are covered right now, but one of them is New York, so I could tour around and see things like The Dakota (classic apartment building where John Lennon was shot), the World Trade Center site, the Apple Store (Max's request), and my childhood home.

Oddly, almost all of the streets in Manhattan are covered, but not all. In fact, one of the streets I wanted to see is not: Jumel Terrace, home to the Morris-Jumel Mansion, the oldest house in Manhattan, and Washington's headquarters for two months during the Revolutionary War.

Other stuff about Street View:

XSSed page rank list

Tuesday 29 May 2007

The security announcement site XSSed has an archive of identified XSS vunerabilities, ordered by the traffic the page receives: TOP Pagerank List. The listings include an iframe demonstrating the vulnerability. Very slick. It's sobering to see how many high-profile sites have problems like this.

A Digital Remake

Monday 28 May 2007

A Digital Remake is a master's thesis about using Python and NodeBox to create illuminated capitals (I think — it's in Italian). It's a gorgeous document. One interesting twist: throughout the thesis, letters are circled in blue, and connected with long tendrils to other letters, sometimes across pages. I don't know what it means, and I don't know what tools he used to produce the PDF, but it's an intriguing little twist.

Škoda cake

Sunday 27 May 2007

I make birthday cakes for my boys' birthdays, and I once made a race car cake that I thought was pretty good. But it's got nothing on the full-size cake version of the Škoda Fabia that was made for a commercial:

Skeptics have said "it was made for a commercial, it's a fake," but it's pretty clear they really built this cake, complete with internal details like an engine and a seat. It's a very impressive acheivement. There's a five-minute baking-of documentary, of course.

I wonder what they did with it when the shoot was finished?

For higher-quality but harder-to-link video, go to the Škoda Fabia site, and use their Flash navigation to watch the commercial and the behind-the-scenes footage.

Getting started with Python

Wednesday 23 May 2007

I was at the Boston Python Meetup tonight. It was, as always, an interesting mix of old hands and new people looking into Python as a language (and/or way of life). One question tonight was, "How should I get started with Python?"

The usual answer to this question covers book and sites that teach the language. There are plenty of them, go find one that resonates with you. Beyond learning the details of the language, though, here's my advice:

The best way to get started is to find a problem that really interests you. Maybe it's a tool that would be really helpful at work. Maybe it's in a field in which you are an expert. Maybe it's revisiting your high school science fair project. Whatever it is, it should be something you are excited about. Learning a new language can be difficult, so having a real drive for the problem at hand is good for getting you through the thorny parts.

I've found toy example and other people's simple projects to be not that great for learning from, they run out of steam really quickly. I need a real problem at hand to solve.

If a project of your own isn't on the tip of your fingertips, you can try joining an existing project. This can be a good way to get a supportive community who can help you. Here, my advice is to start small and humble. Find a project that interests you, and find out what help they need. Don't try to take on too much.

Some people barge into a project announcing great ideas and grand plans, but it's awfully hard to deliver on those promises. They also may not have a sense of the culture and history of the group. You may have big ambitions, but keep them to yourself at first. Ask what you can do, choose something small to accomplish, and get it done. Then you can find a bigger thing to do.

The great thing about getting started with a language like Python is there is a very strong community. The same goes for Ruby and Perl. These are languages created by open-source amateurs for use by open-source amateurs. Everyone involved is there because they want to be. Other languages (C++, Java, etc) have their proponents, and lots of enthusiastic followers, but they also have their share of people who fell into it, or were required to use it, or believed the marketing of some company that had a vested interest in it.

So pick a community, pick a project, and get started. Python is very welcoming.


Monday 21 May 2007

Chaoscope is a visualization toy. It draws beautiful pictures of strange attractors, which are a bizarre fractal-like mathematical construct from the field of chaos theory. Whatever, they look really nice:

A jellyfish-like thingy I made with Chaoscope

The interface is really well done, letting you randomly find interesting attractors, but then drag them in three dimensions and fiddle with their parameters. You can get a good intuitive sense of the chaos in chaos theory by making small changes in the parameters, and seeing sometimes small changes in the output, and sometimes huge changes. There are a number of nice options for the rendering phase too.

This is definitely going in my list of mesmerizing desktop toys...

Elegant web typography

Monday 21 May 2007

Jeff Croft has a good presentation about Elegant Web Typography. It nicely bridges the design and technical worlds. I like that he emphasizes the typographer's traditional goals:

This art exists to honor the content it sets—to enhance legibility and embody the character of the words within.

Typography is not "picking a cool font."

Origami mask for sale

Wednesday 16 May 2007

This origami mask is amazing. It's true origami, one sheet of paper folded with no cuts. But the result is mesmerizing: a sculpture of a face, reminiscent of an ancient Greek statue. And Joel Cooper's technique is unusual: it looks as if he folded the paper into a complex two-dimensional pleating, and then folded that into a face.

Even more intriguing: the mask (and another similar one) are for sale on eBay...

Python SSL support in Windows and opening MSI files

Wednesday 16 May 2007

If you install ActivePython, you will not have SSL support installed. The socket module from the standard library will not have the ssl() function defined, because the _ssl.pyd dynamic library is missing, at least for Python 2.4. Maybe they've included it in the Python 2.5 kits.

One solution is to install the Python distribution from python.org, but I didn't want to do that because I like the other extras that ActivePython gives me. The other solution is to find the _ssl.pyd file from the Python distribution that matches your version of Python:

  • Download the .msi from the python.org download area. If the exact version you need isn't listed, find a close one and edit the URL: there are older versions that aren't advertised on the main page.
  • Download lessmsi, a handy tool for opening up .msi files as if they were simple zip files.
  • Find the file _ssl.pyd in the .msi file and place it into your Python\DLLs directory.

You now have SSL support!

Cygwin path pickiness

Tuesday 15 May 2007

I use cygwin to get Unix utilities on Windows. It works remarkably well, allowing me to run Gnu makefiles from a Windows command prompt, and so on. Except when it doesn't work.

After using a makefile successfully for a week or so, I started getting this:

$ make tar
tar -cvf dot.tar --exclude-from=notar.txt .
make: tar: Command not found
make: *** [tar] Error 127

This was both really aggravating and really familiar. I know I had this exact problem at one point with my last laptop. I tried searching Google, but ended up with a lot of frustrating dead-ends: many people asking similar questions, most of which went unanswered, and a few with chicken-waving answers. They just smelled like shots in the dark. One suggested re-installing cygwin, which I tried, but it didn't help.

Then, waking up this morning, I remembered what the problem was last time: an empty entry in my PATH environment variable. It was one of those times when I wasn't even trying to remember something, and it popped into my head, this little detail of an admin problem from a year ago. Not just something vague like, "maybe it's the path?" but the specific answer of "it's an empty entry on the path." And when it struck me, I knew it was right.

My PATH looked something like this (though much longer):

$ set path
Path=.;C:\WINDOWS\system32;C:\Program Files\QuickTime\QTSystem\;;c:\cygwin\bin

That double-semicolon is an empty entry in the path, and cygwin doesn't like it. Because tar is in c:\cygwin\bin, and that directory is in the path after the empty entry, tar is not found. Fixing PATH to not have the empty entry fixes the problem.

Experimenting further, it seems that other kinds of improprieties in the path also get cygwin's knickers in a twist. For example, enclosing an entry in double quotes, although allowed in Windows, also stops the path search. Having a non-existent directory is fine, though. Go figure.

So, in short: cygwin's programs can't find programs to execute if they are on the path after weird entries. You can either fix the weird entries, or move the cygwin directory up the path before the weirdness.

High power job

Monday 14 May 2007

I love this short clip about high-power line maintenance: High Power Job. It's lovingly and beautifully done, and involves some seriously unusual working conditions. This guy works on high-voltage power lines, simply crawling along them wearing a special suit. Since he climbs onto them from a helicopter, there's no danger of conducting the electricity. Yow! Also, the last line is quite good...

Scoble on autism

Thursday 10 May 2007

A week ago, Robert Scoble posted about autism, with his impressions of how it has affected Zoho CEO's Sridhar Vembu attitude towards his business:

...when you face something like this in your personal life that life at work seems pretty easy, even when facing challenges that the rest of us would think are pretty scary.

I know where Vembu is coming from. I'm not a CEO of a 600-person company competing with Google and Microsoft, but I know that having a challenging home situation can put work problems into a different perspective. When you have a full-grown 17-year-old who can be unpredictably aggressive, the potential crap you can get from a bunch of business-casual guys around a conference room table just doesn't seem like as big a deal.

The comments on Scoble's post are an interesting read in and of themselves. In case you haven't delved into the autism community lately, it is a complex place. Like any large group of people facing a difficult challenge, there are sub-communities and factions with opposing points of view. Believe it or not, here are some divisions in the community:

  • Not everyone agrees on why autism diagnoses are on the rise.
  • Not everyone agrees on what causes autism.
  • Not everyone thinks autism should be cured.
  • Not everyone thinks autism is bad.

To an outsider (such as Scoble), some of these points seem obvious (who would choose for their child to be autistic?), but the difficulty of autism is being faced by different people in different ways. In some cases, it is being faced by one family in different ways at different times depending on the day's particular challenges. I know our family does.

If you read Scoble's comments, you will see that these disagreements can become quite heated, as you would expect. If people can debate to the death about Ruby vs. Python, you can imagine what energy they will put into the problems of their disabled children. Some lingo to get you started: curebie and neurodiversity.

Personally, I don't have much stomach for these intense debates. I've got enough to do with my aggressive son without also dealing with aggressive parents. We are all coping as best we can with autism, I wish them all well.

Making history

Thursday 3 May 2007

This is a week of big changes at Tabblo, as we move from offices in Cambridge to the HP facility in Marlborough. It is a time of great dislocation while we figure out new commutes, new environments, new co-workers.

As it happens, coming up next week is the Lotus 25th Anniversary party, and with it, some historical photos of the early days at Lotus. I wasn't at Lotus when these photos were taken, but I later worked with a number of the people pictured, so they bring back memories of my time at Lotus.

The HP building we're moving into is the old Digital facility known as MRO1. As it happens, my last week of working for Digital, I had a cubicle in this building about 100 feet from where Tabblo now sits. So walking around this building brought back memories of people and project I worked on at Digital. Looking up some specfic names, I found this Powerpoint about the history of VMS. Again, I didn't work on these projects, and wasn't at Digital for much of the timeline, but I recognize people in the group shots.

All of this has made me feel a bit like I've come unstuck in time, as I re-connect with a number of points in my career. And it has made me realize that the pictures I take this week will become part of Tabblo's history, are by definition already part of its history. Here are a few shots from our last day in Cambridge:

Tabblo: End of 02139

So consider this tabblo as an early entry in the Tabblo 25th Anniversary museum.

« | » Main « | »