I was at PDC in Redmond last week and the cool swag was an LG E900 Windows Phone 7 phone. I dropped in my SIM Card and have been using it as my primary phone for the last couple of days. What follows are my initial impressions.
The Good
The hardware is really responsive. This may be because I'm comparing it to a year+ old myTouch running Android 1.6, but the phone seems really, really fast.
There are actually games available (Yay XNA, I guess).
The design of the home screen is really nice.
The Bad
When the phone runs low on power, it just shuts off. No warning, one minute you're playing Bejeweled, the next you're staring at a black screen. Trying to turn it on again, results in an LG logo followed by a black screen. I would have thought that the: "Your phone is about to run out of power. You should plug it in now." warnings would be standard by now.
The mail client. Other people like it, but I don't. To be fair, that's because GMail has ruined me for all other mail clients forever. The reality is that if it showed me conversations instead of messages and had an archive button instead of a delete button I'd probably love it.
The device is a little awkward to hold. The search/back keys occupy the entire bottom bezel and I find myself accidentally pressing them while typing with disastrous results (... as disastrous as interrupting any Facebook interaction can be, that is). The power/lock switch is on the top of the phone making it difficult to lock/unlock the phone one handed.
Bing Maps < Google Maps.
The Ugly
The browser. It's some hybrid of IE7 and IE, but I gues you can't just jam WebKit on there if you're on Microsoft team.
The name: I've got a Windows 7 Phone 7 phone. Come on!1
Verdict
I need to update my myTouch and get something fast and sexy that runs Froyo ;)
More seriously, since checking my email on the subway into work and using Google Maps to find my way around the city are why I have a phone, it's probably not going to be displacing my Android in the immediate future (I'll still play Bejeweled on it though).
Quick, which seven is the one that's not supposed to be there? It's easy to pick on names, but it's always good to remember that nobody could say Wii with a straight face for months, but Nintendo ignored them all while sitting atop the largest pile of money every assembled in all of human history.
Two years ago I posted that I had moved my blog from Blogger to some django based thing. Recently, I've moved to a different, even more custom, system. In the intervening time, I've written precisely fourteen and one-half blog posts. You may be thinking to yourself: "Surely, that means you spend more time working on your blog's software than actually, y'know, blogging". You would be right, it just turns out that I happen to like it that way.
The new engine is based around the idea of having all of the blog posts stored as reStructuredText documents and then generating all of the indexes/feeds/etc. as a build step producing a bunch of static HTML. This has a couple of neat effects:
The entire state of my blog can be stored in version control.
I can do all of my editing using my favourite text editor.
I can do silly things like running OptiPNG over every single image as a build step.
It has the highest YSlow score of anything I have ever worked on.
It has a development server (for realz).
Those might sound like the sort of the features that only a programmer could love, well it just so happens that I an one. Sure, this probably only works because (including the post about changing tools) I've only got something like fifteen and two-thirds blog posts, but it all makes more sense if you think of the blog posts I write as cleverly disguised unit tests for whatever blog software I'm working on at the time ;)
Pasting $('input[type="password"]').val() the console of a page with saved passwords has always amused me and the bookmarklet makes this easier to do on pages that don't have jQuery.
I sometimes actually want to see the password I'm typing, either because it's fiendishly complicated or for some reason I've messed up a bunch and want to verify my typing.
I wanted to play with SASS and CSS linear gradients. So I put together a tiny website and needed something to put up there on it.
This is a bookmarklet, hence the javascript: protocol. In order for the browser to not navigate to a new page, bookmarklets need to return undefined, hence the anonymous function.
document.querySelector and friends are very cool and they let you find elements jQuery style without needing to try and pull in jQuery to run your three lines of actual code.
Unfortunately, document.querySelectorAll doesn't return a real Array so you can't use Array.forEach and are stuck using JavaScript's built in for. Sad sauce!