This blog's going to go quiet for a few weeks, Ken and I are off on our first European trip in some two years. Headed to Austria, Slovakia, Poland, and Czech. The centerpiece of the trip is a friend's wedding, but lots of other tourism in Vienna, Bratislava, Krakow, Wroclaw, and Prague. You can see my planning notes in this custom Google map; obviously not hitting everything!
  2009-09-24 01:39 Z
I've made another mini-webapp for tourists: FlickrNear. Like my previous WikiHere hack it uses the Geolocation API and other web services to show you something about where you are standing right now. FlickrNear shows interesting photos that were taken near your current location. Some examples: San Francisco, rural Texas, Chinon, Lagos, Easter Island, Ely, Nevada.

The app should work on any geo-location web browser. I've customized it for the iPhone (bookmark it to home screen!), including using small image sizes to cope with AT&T's offensive $1/megabyte data charges. If you want to explore from your desk try the map mode; click on the map to open a view at that spot. (Should work in Firefox and Chrome, dunno about IE, etc.)

FlickrNear is more subtle than WikiHere because of the need to rank photos. My ideal result page has three photos of different things of tourist interest: for San Francisco that'd be the Golden Gate Bridge, Alcatraz, and Fisherman's Wharf. Not very interesting for SF, but should be handy when you're in the middle of nowhere.

Unfortunately I haven't gotten to the result quality I want yet. Flickr's geosearch is very powerful, but coming from the outside I don't get much control. I need to make the range of the search dynamic and get more diversity by using photo owners and tags. It'd also be nice to filter out the trendy garbage that can be Interesting to Flickr (like garish HDR). Still, release early and often, and since I'm about to take a long trip I wanted to put this online. Tell me what you think!

  2009-09-23 01:30 Z
I've found a new way of writing web applications and couldn't be happier. HTML pages are all static, nothing generated server side. Everything dynamic is done via Javascript in the browser. I know I'm a few years late to the AJAX party, but I really like how it works so I thought I'd share some thoughts.

The new app is a nerdy game thing: graphs of Warhammer PvP history. There's a server backend scraping web pages and creating a historical database. The main user page is a graph rendered entirely in the client, using AJAX to load the data from my server and the Protovis Javascript library for the rendering. In the old days I would have generated HTML and an image in my server. Now, like my WikiHere demo, the server isn't doing anything complex.

The main advantage to this approach is development speed. I can fine-tune the presentation just by editing the HTML and Javascript. I don't even need a web server to test. My dev code is my live code; no translating back into JSP or whatever nonsense I used to do. That's a particular advantage for big software projects, the UI team can do real work and not just mockups.

There's other advantages too. Testing the server is a lot easier; all its doing is returning JSON blobs. The server is easy to scale since it's doing so little; in my case I started down this path because Google App Engine doesn't really have a good way to do server-side graphs. Caching is easier; generic JSON business objects instead of some over-customized generated HTML. And the JSON API the server implements can be used for other presentations.

The only major drawback I've found with this project is supporting Internet Explorer. Every other web browser in the world implements Canvas and SVG, letting Javascript beautifully render pixel and vector art. But not Microsoft. The medium-term solution may be be excanvas and svgweb, emulation libraries for adding the features that Microsoft was too lazy (or evil) to implement.

So now I have a new way to build webapps. The server becomes a simple business logic API server. Javascript code does all the presentation work. It's a fun way to code.

  2009-09-19 15:14 Z
Ken's Windows hard drive died and it took us two days to recover from a full backup we'd made with Norton's horrible software. So I went looking for better recovery software. And I may have found it in ReBit, either as $25 software or $140 with a 500 GB backup drive.

MacOS' Time Machine sets the standard for consumer backup software. ReBit isn't quite as impressive but it's pretty good. It's a simple install-and-forget backup solution. No configuring backup schedules, no managing disk space. Just plug in a big USB drive, click a couple of buttons to install, and forget about it. The rest of this blog post is pretty technical, but a key selling feature of ReBit is you don't need to know any of this technical crap. Just trust the frog and you can get your files back.

A word on Windows backup. You have three choices: remote file backup, local file backup, or local disk image backup. I like JungleDisk for remote backup but it's not suitable for recovering a failed 500 gigabyte system disk. Local file backups are also not very useful for disaster recovery; you'll have to reinstall Windows from CD. Recent versions of Windows have a cool Volume Snapshot Service that lets you make consistent copies of a full disk image, but the built-in tool seems to not support making shadow copies to an external disk. (Ie: useless in the event of a disk failure.)

ReBit seems to work by using the VSS every 24 hours to make a recovery point. In addition it is continuously doing incremental backups while you work; every time the mouse goes idle it'll start backing up changed files. In practice it works quite well, although I find the chattering hard drive a bit annoying.

Backup is easy, what really matters is the restore process. Restoring individual files is really simple. The backups just look like another drive in Explorer, you can open or copy off the files you need. You can also get to older versions of individual files, but it's a bit awkward and there seems to be no facility for getting back an entire folder at once from some old version. So not ideal, but good enough for typical file restores. And very, very easy. I haven't tested a full system recovery; don't really want to chance wiping my drive. The restore disc booted just fine on my system into a simple Linux GUI that presumably knows how to a system restore.

ReBit's not perfect. The CD I bought from Amazon didn't support Vista/64, so I had to contact support to download a more recent version. The software has some activation-based DRM that locks the software to one machine. I'm ok with that, but they damn well never require activation to recover data from the backup. There's a few minor UI bugs here and there. But ReBit's email support has been good and the important stuff, the backup and restore system, seems to be working just great.

  2009-09-03 23:52 Z