I love FedEx–they somehow managed to deliver my new Nokia E61 today instead of Monday, so I have the whole weekend to play with it.
A few first impressions:
- It’s much more solid then it appears on the website. It has a metal case, and everything about it feels well-made.
- The screen is wonderful. It’s big, bright, and easy to read. While doesn’t have as many pixels as some of the other models in Nokia’s latest lineup, I have nothing to complain about. The text fonts for the browser and office apps are small enough that it’ll fit a lot of text on the screen.
- It seems to work fine with Asterisk. I was able to make and receive a few VoIP phone calls over WiFi without any problems.
- The built-in web browser works well enough. I was able to check gmail and look up a few directions without a problem. Strangely, the only site that hasn’t worked for me is http://www.google.com. I think Google’s trying to feed the phone a WAP page or something, while the phone is expecting HTML. It shouldn’t be hard to fix.
- Google Maps for Mobile phones works great. That’s half of the reason that I wanted a new phone :-).
- The audio quality is better then my old T616.
- The keyboard is good. I’m not used to the layout yet, and it’s weird having to hit a shift key to get numbers, but it’s better then Graffiti.
- I’ve had some weird problems when copying large files using the USB cable. For some reason, the transfer locks up from time to time. Unplugging the cable solves the problem without rebooting either end, but it’s annoying. I should probably find a USB-to-SD adapter; it’ll be faster.
I’ll post more later, once I’ve had a chance to really break it in.
Long-time readers here know that I’m prone to getting all excited about getting a new cell phone, and then never quite pulling the trigger to buy one. My current phone is a Sony-Ericsson T616 from early 2004. I came close to buying the Treo 650 and waited for most of a year for the Nokia N91 to ship in the US. Then, when the Nokia E70 was announced, I stopped waiting for the N91 and started waiting for the E70.
The E70 just started shipping in Europe. It looks like a nice phone. The problem with the European E70 (and the N91 that’s finally shipping in the US) is that it doesn’t support GSM at 850 MHz, so it’s mostly useless on Cingular’s network. And it’s increasing looking like Cingular is the only US GSM provider with a decent data network. So, unless a US-specific 850 MHz version of the E70 starts shipping, it just isn’t going to work for me.
Right now, I’m carrying too many gadgets around–I have my phone, an iPod, a Palm TX, and (unfortunately) a 2-way Pager for work. I’d really like to roll the Palm and the phone into a single device, but I can’t cope with PalmOS 5 anymore. Similarly, I can’t cope with mobile versions of Windows–I tried it for a month with the Motorola MPX200, and it just didn’t work for me.
Finally, I’ve come to the conclusion, again, that I can’t cope with non-keyboard input methods. I don’t like T9, Graffiti, or any of the alternate input methods that I’ve tried on the Palm. If I’m going to enter text into a pocket-sized device, then it’s going to have to have a keyboard. I’ve found that the pain of writing with the Palm keeps me from using it, and that makes it mostly useless. And that leads to me missing appointments and forgetting tasks, and I can’t cope with either.
So, basically, I want a phone with a QWERTY keyboard that doesn’t run Windows or PalmOS, and works with 850 MHz GSM. I believe there are two phones on the market that fit that description–the Nokia 9300 and the Nokia E61. I’ve played with the 9300 before, and it’s just too slow for me–loading web pages crawls while it’s slow little CPU renders pages.
The E61, on the other hand, has almost the same features as the E70 that I wanted, except it’s Blackberry-shaped and doesn’t have a camera. It does have everything else, though, including 802.11 and a native SIP client that supposedly people have been able to get working with Asterisk. Someone at work just bought one off of eBay and is really happy with it.
So, after over 2 years, I finally ordered a new phone. My E61 should be here on Monday. I’m still trying to sort out Cingular’s data plan options, but I should have that dealt with by the end of the day today, and then I’ll be set. I’ll be able to drop the Palm and T616 out of my life, and probably be able to get by with a few songs on the E61 most of the time–it’ll hold a 2 GB flash card, and there’s a sync plugin for iTunes, so it’ll work with almost everything but iTMS songs. I’ll still be stuck with the pager, but that’s a whole other story for an other day.
It’s official–my Xbox 360 is in UPS’s hands now, due to arrive sometime tomorrow. I’ve wanted one for months, but I wasn’t willing to pay $400 for one, even if they had been easily available. Fortunately (and amazingly), I won a contest at work, and was able to get an Xbox 360 without having to pay for it. Almost as amazing, Xbox 360s are now in stock at Amazon (via Toys-r-Us).
So, most likely the console itself will arrive on Thursday, and Oblivion will arrive on Friday. I’ve been drooling over Oblivion since it was first announced, and certain co-workers haven’t been doing a good job of discouraging me. So, if I go another month without writing anything here, you’ll all know why.
I’m looking forward to both conferences. I’ve never been to Gnomedex before, but I’ve been kicking myself for missing the past two years, and decided months ago that I wouldn’t miss this year’s conference. Besides, I owe Chris for buying me dinner last summer, so the least I can do is attend his conference.
OSCON is another conference that I’ve never quite managed to attend. I drove down for ”FOSCON” last year, when the Portland Ruby Group had most of the OSCON Ruby speakers give their talks for free. I had a really good time, but I couldn’t afford to take the week off and attend the real OSCON conference. Fortunately, Google is going to have a big presence there, so I get to spend a week at the conference in exchange for spending a bit of time pretending to be a recruiter. Feel free to ask me about working for Google :-).
I have one question for readers who have been to OSCON before–it is worth staying in the official conference hotel, the Doubletree in Lloyd Center? Unfortunately, the Doubletree isn’t actually all that close to the conference center, and I’d hate to spend a lot of time commuting back and forth between the hotel and the convention center. For FOSCON last year, I stayed at the Jupiter Hotel which was really cool. I’ve also stayed at the Red Lion a block or so from the convention center. The Jupiter and Red Lion are both closer to the conference, and the Jupiter is just cooler. The big thing about conferences is that the conference sessions themselves aren’t really all that important–everything interesting really happens in the hallways and afterhours during BoFs. So, does anything actually happen at the Hotel during OSCON, or is everything at the convention center?
The N80 is a nifty little phone, with 802.11g, bluetooth, a 3 MP camera, and a 352x416 display, all bundled into a relatively compact package. It’s reasonably well-known that the N80 has some SIP abilities, but from reading the online manual, it looks like SIP on the N80 is really intended for UMTS video calling, not end-user VoIP calling.
It looks like the Nokia E-series phones are going to ship in Europe within the next couple weeks. It’s not clear when they’ll ship in the US, but it won’t be this month. Probably May or June.
I’m still planning on picking up either a N80 or an E70 as soon as they’re available in the US. It looks like they’ll be able to take 2 GB flash cards, and that pushes my earlier favorite, the N91, out of the competition. The N91’s 4 GB hard drive made it really attractive in a world of 512MB flash cards, but its lower-resolution screen and months of delays make it a lot less attractive then the newer N80 and E70 designs. Frankly, I just wish that one of them would ship–my T616 is getting really long in the tooth, and I’m getting fed up with the Palm T|X that I’ve been using for months.
We’ve been talking about releasing a new stable version of Typo since October, with no real success. Frankly, I’ve only spent a few hours per month on Typo since I started working for Google in late November, and that’s not enough to get a major release out. Fortunately, most of the weirdness in my personal schedule seems to be over, now that I’m done commuting back and forth between Seattle and Silicon Valley once or twice per month. I still don’t have as much free time as I used to (Google keeps me busy), but I’m not spending every minute preparing to travel and dealing with the consequences of life on the road.
So, now that I’m back on a normal schedule, it’s time to get serious about releasing a stable version of the current Typo trunk. I’d like to release Typo 4.0.0 before April 1st. Frankly, 95% of the features that we want for Typo 4.0 are already in the tree, so mostly we just need bug fixing and testing. There are a few features that need some finishing work, and one feature that still needs to be implemented, but late March should be workable, if people can pitch in and help a bit.
As I see it, here are the areas that we really need to work on:
- Trackbacks (they’re still utterly broken)
- Podcasting (cleanup and testing)
- Threaded comment support (optional)
- Migration cleanups
- Merge one or two theme contest themes.
- Bugs, bugs, bugs
I should probably explain the “threaded comments” bit–months and months ago, I wrote some threaded comment code for Typo. Tobi didn’t want it in Typo, so he (correctly) refused to merge it. I’m still using my threaded comment code here, maintaining it in parallel with the Typo trunk. The problem is that there’s no easy way to merge the old threaded comment code with Piers’s big STI patchset, so I’m stuck running an older version of Typo here. I can’t upgrade without either losing all of the threading information that I’ve accumulated or spending some time adding minimal threaded comment support to Typo. I’ve discussed my Big Plan for comments in Typo, but I don’t think I’ll have time to implement everything in the next month; instead I want to concentrate on getting something released, and then we’ll spend some more time enhancing comments for Typo 4.1.
There’s one big thing that I need from people if we’re going to be able to make this schedule: help getting back on top of all of the bugs in Typo’s Trac. We were trying to keep the number of open tickets below 50 for most of last year, but now we’re up to 165, and that’s too many for me to easily manage. So, I need to start applying patches and closing them. If there’s a patch that’s ready to apply, or a simple ticket that doesn’t need more then 5 minutes worth of work, can you please leave a comment here? Thanks.
Finally, to answer the inevitable question: where is Typo 3.0, you ask? Months ago, we decided to skip version 3.0, to avoid confusion with Typo3. So we’re going from Typo 2.x to Typo 4.x. That’s it.
I guess it’s officially spring cleaning time; after 6 years of open access, I finally turned on encryption for my home wireless network. For years, I had my wireless network on a different subnet then my wired network, and then used my Linux router/firewall to protect the two from each other. When I first set up the network, my access point was limited to 40-bit WEP. Since 40-bit WEP is effectively the same as an open network, I never bothered turning encryption on at all. I’ve swapped access points every few years since then, but I never had a pressing need for better security–everything that I use my laptop for uses either SSH or SSL, and the firewall between the two networks wasn’t really a problem for me.
Over the past year, though, a few new problems have cropped up. The biggest problem with a split network is that no Rendezvous/Bonjour-based services can cross between networks, and that’s become increasingly painful–I couldn’t print from my wireless network or access any shared iTunes songs. Also, my wife is now using my old PowerBook, and she didn’t really appreciate the technical reasons why sometimes things didn’t work right when the laptop wasn’t plugged into an Ethernet cable.
So, tonight I finally bit the bullet and redid things. I’m now using two access points on different channels, both sharing the same SSID and WAP pre-shared key. I can wander around the house transparently roaming between APs, so I finally have 100% coverage in my house. Both APs are Linksys WRT-54G series devices (one -54G, and one -54GL) running DD-WRT, which seems simple enough for what I need. I’m really just using the two boxes as simple access points; I don’t need (or want) them to route anything, but I *do* want working SSH and syslog.
I’m still recovering from The Big Drive, so I’ll have to finish the last bit of work (decommissioning the old wireless subnet and firewall and re-routing my office Ethernet cables) tomorrow. I’ll also have a few Typo roadmap updates ready soon.
Update: In order to work with my old PowerBook (handed down to my wife), I had to drop from WPA2 TKIP+AES to WPA2 TKIP. Apparently older Airport hardware can’t handle WPA2 AES. Other then that, everything seems to be working perfectly.
My stint with Google in California is finally complete, and I’m working my way back home. Of course, I’m not exactly doing it in the most direct manner possible–instead of flying back, we’re doing the Big Family Road Trip.
My wife’s sister lives in San Diego, so my wife and kids drove down last week to see her. They stopped for the night in Mountain View, and then we all drove down to San Diego together for the long weekend. We took the kids to the San Diego Wild Animal Park, and then I drove back to Mountain View for my last week. It’s a fun drive, all 470 miles worth, through LA’s rush hour. It took me 9:45 to get home.
Then, after a few days’ work, I took Friday off this week and drove down to San Diego for a couple days on the beach with everyone. We took the kids to see Capistrano, and then took off yesterday morning for home. We stopped in Sacramento last night; according to Google, we have around 760 miles to go.
The FCC was polite enough to post the users manual for Nokia’s upcoming E70 phone on their web site, and it makes for fascinating reading. The manual doesn’t go into a lot of details about features, but there are a few fun tidbits hiding in there. First, the phone clearly supports SIP-based VoIP services. There’s a SIP configuration section in the setup menus. The manual explicitly states that the phone will attempt to make 911 calls via the cellular network whenever possible; I’m not sure what this implies about other calls–is there a way to explicitly choose which network is used for each call, or is it implicit somehow?
Surprisingly, the N80’s manual also lists a section for configuring SIP settings, but I didn’t see any details in the manual on actually making SIP calls.
Page 67 has another surprise: the phone includes an RSS reader of some sort. The manual explains how to subscribe to blog feeds.
There are a few more E70 documents on the FCC’s website, including internal and external pictures.
My current phone contract has expired, and I’m just waiting for the right phone to come along. I’ve been tempted to order a 6682 and be done with it, but the N80, N91, and E70 are all approved by the FCC now, and I’d be much happier with any of them then I’d be with the 6682, so I’m willing to wait another month or two. A couple shopping sites online claim that the N80 will ship at the end of February, but I don’t know how believable they are. No matter how you slice it, though, the US models of these three phones are getting closer, and Nokia is clearly making an effort to promote them in the US market.
Mind you, I doubt that T-Mobile or Cingular will actually be shipping any of these phones any time in the next month or two (or three, or four).
I just committed my time-limited Rails cache to the Typo trunk. This is an outgrowth of my improved action cache, and fixes most of the caching problems identified in the Rails caching presentation that I gave a few months back.
I haven’t benchmarked it yet, and I’m sure that it’ll need a bit of tuning, but it solves so many architectural issues for Typo that I went ahead and committed it anyway.
It’s currently implemented as a Rails plugin; I’ll probably bundle it up as a stand-alone plugin once I’m happy with the way it works with Typo.
I’m currently somewhere over Oregon, flying from the bay area back to Seattle. This is the 6th flight that I’ve been on in the last 3 months, and the very first time that I’ve even bothered pulling my laptop out of its bag. Since the flight between SEA and SJC is only in the air for 90 minutes or so, I haven’t really seen the point–I’d rather spend the time reading, listening to my iPod, or sleeping.
In fact, the fact that it’s such a short flight factored into my shopping when I picked up a new PowerBook a couple months ago. If I’d really expected to use my computer on the plane, I probably would have picked up a 15” PowerBook, but I figured that I could cope with a few computer-free hours per month and bought the 17” model instead. I’m really happy with my choice, all things considered–the screen on the new 17 is amazing–it’s basically a 20” LCD shrunk down to 17”. My old 15” PowerBook was really most useful when it was sitting on a desk plugged into a real monitor, while I’ve never even bothered to plug my 17” into anything, even when I’ve had a spare monitor or two sitting right next to the laptop.
So, when I bought the laptop, I figured that the extra screen real estate was worth an extra couple pounds and a general inability to use the laptop while traveling. Frankly, the 15” was never very comfortable to use on planes anyway, so I doubted that I’d miss anything. If I’d really wanted to work on planes, I’d have picked up a 12” PowerBook and found a way to cope with their limitations.
Anyway, here I am, sitting on a dinky little Alaska Air MD-80 with my laptop out, and somehow, even though MD-80s are generally cramped even without an oversized laptop, somehow there’s actually more then enough room here to work. It fills up my entire tray, and it helps that my seat is reclined a bit and there’s no one in front of me (or next to me–no one in their right mind flies at 6:30 on a Saturday morning), but it’s actually pretty comfortable. I could probably get 3 or 4 hours worth of work done this way, if my plane wasn’t landing in 30 minutes.
Now back to the one remaining bug in my new Typo caching code…
I’m finally getting back into Typo hacking after too long away. I tried to apply a few patches last weekend, but I was traveling and my network access was too spotty. So, I spent my time adding a bit of new functionality. Since then, I’ve been debating whether to commit it to Typo or not. I decided I’d write about it here and see which way the comments go.
The code in question is a time-limited cache for Rails. I’d like to be able to say “cache this page, but only for three hours. After three hours, re-render the page.” This sort of thing comes up in Typo all the time. The most obvious example is the sidebar–some of the sidebar components display information with a short lifetime, and it’d be dumb to keep pages in the cache for weeks when they include sidebar data that’s only good for hours. This isn’t really a problem on busy sites, because the current cache sweeper usually resorts to sweeping the entire cache every time a new article is posted, but it’s a pain on slower sites.
There are certainly other ways to fix the sidebar problem (AJAX sidebars are the obvious example), but the same basic pattern comes up all over Typo. A few examples:
Users keep requesting the ability to create articles with a publication date in the future. The article won’t appear on the site until after the publication date. This is common CMS feature, and apparently other blog engines have it as well, but it really doesn’t mesh with Typo’s current cache, because there’s no way to say “sweep the cache at 7:30 today” short of adding a cron job for every article that’s posted this way.
We have a bunch of aggregation classes that suck data off of other sites, like Flickr, Upcoming.org, and so on. These usually end up as sidebars, but we need to cache the back-end data somewhere. An expiring fragment cache would work perfectly for this.
On really busy sites, we could use something like this to avoid rebuilding comment pages on every comment–we could drop the sweep-on-new-comment code and swap for expire-after-5-minutes. If you’re getting more then 1 comment every 5 minutes, this would be a win. If you’re getting a comment every few seconds (think Slashdot or Curt Hibb’s “hammer my comments” post), this would be a major win.
To accomplish this, I added two new features. First, I added a set of “meta-fragment cache” methods, building on Rails’ existing fragment cache. The fragment cache stores (key, value) pairs, while the meta-fragment code stores (key, value, metadata_hash) triples. This is simply implemented as two fragment cache entries, one for the data and one for the serialized metadata hash.
When all is said and done, you’re left with a controller that looks something like this:
class ArticleController < ApplicationController caches_action_with_params :read def read response.lifetime = 3600 # 1 hour ... end end
read action will now be cached with a 1 hour lifespan. After an hour, the cached version will expire. If
response.lifetime isn’t set, then the page won’t expire on its own, and it’ll need to be swept as usual.
So here’s the big question–should this go into Typo? I can see good arguments on each side.
- It solves a lot of cache-with-parameter problems that we’ve had.
- Switching to some variant of the action cache means that switching between production and development mode doesn’t leave cache problem. This is a major cause of bug reports from new users.
- It’ll let us implement future posting easily.
- It’ll make it easy for sidebars to stay current.
- It’ll let us move the aggregation backends behind the sidebars to a more reasonable architecture. For example, we’ll be able to use the
Flickrclass for the Flickr sidebar instead of (mis-)parsing their RSS feed.
- It’ll make us less dependent on web server configuration and weird rewrite rules.
- It’s slower then the page cache. I haven’t benchmarked my new code yet, but the last time I checked, on my box I could handle almost 2400 page cache requests per second, while the action cache was good for *10* hits per second. That exposed a couple major Typo performance bugs; I suspect that retesting with the new code would give us 100-200 hits/second, which is pretty busy for a blog. Still, this may be an issue for shared hosting providers.
- The action cache serves cached pages via Rails, while the page cache serves the same pages directly from the webserver without invoking Rails at all. Because of this, I suspect that a lot of sites will want to increase the number of FastCGI Typo processes that they run. With the page cache, running with one FCGI process was usually okay; with the action cache, it might be better to use a second process.
Those are the only two major problems that I see. Basically, if we switch to using the action cache (in any form), we’re going to be harder on big hosting companies like TextDrive and Planet Argon, and they’ve been very supportive of Typo in the past.
Does anyone feel strongly about this one way or another?
One of the really amazing things about Silicon Valley is that there are so many amazing computer-related things happening here. Today’s example: Donald Knuth speaking at Café Scientifique. Knuth is The Professor of the Art of Computer Programming at Stanford; he’s basically a living legend. As much as anything, he’s famous for his 7-volume The Art of Computer Programming series. The first book was published in 1967 or so and was rapidly followed by volumes 2 and 3. He’s still working on volume 4.
Today’s talk was really more of a question-and-answer session then a prepared lecture. I was too busy taking pictures to write down all of the questions, but people mostly concentrated on “what is the biggest accomplishment of…” and “will … ever happen” questions. A couple of the more interesting ones:
- “What do you think the 10 biggest accomplishments of the software industry are?” (He listed Emacs, Google, and Mathematica as things he likes, but didn’t have any real opinion on the top-10 list.)
- “Do you think the singularity will happen?” (No. Er, probably not any time soon, and not like that.)
I just finished uploading the pictures to Flickr, which amazingly didn’t have any Knuth pictures tagged. It was almost too dark for photography; I had to pull out my 85/1.8 and shoot with it wide open at my camera’s highest ISO setting in order to have a chance of getting any decent shots. I shot all RAW files this time and used the opportunity to experiment with Adobe’s new Lightroom application; I’ll write up my experiences with Lightroom tomorrow, but I’m fairly positive about it, even though it’s missing a lot of important features.
I did a bit more shooting today. I’m going to spend more time processing today’s shots then normal, because I shot mostly panoramas. Here’s the first one, of San Francisco and the Golden Gate Bridge from one of the overlooks on the Marin Highlands road.
This one started life as 11 JPEGs; the full version on Flickr is 9902x2615. I’ll probably order a big print of this, if I can find someplace decent that’ll print 30+ inch panoramas for a reasonable price. Leave a comment if you have any suggestions.