Posts from *scottstuff*...

Broken-ish iPhone

Well, that’s a whole lot of fun. I pulled my iPhone out of my pocket today and discovered that it’d been rebooting silently in my pocket for at least an hour. It just kept cycling through a boot cycle every 30 seconds or so, showing an Apple logo then turning off, then showing the logo again, then turning off. I plugged it into my laptop and it booted up just fine, but it immediately asked me if I wanted to power the iPhone off. It seems to work as long as it stays plugged in, but it’ll start rebooting again as soon as I unplug it.

Digging around a bit, I think the lock button on the top of the phone is broken. While it’s plugged in, it’s almost impossible to get it to work, and I end up getting the ‘Do you want to power off’ screen more often then a locked iPhone. Trying to get back to the home screen from inside of apps by pressing the big round button doesn’t always work; I end up with a screen shot instead, which is a sign that the lock button is being pressed.

Wonderful, what I really wanted to do today was to run to the Apple store and try to get a non-existent replacement phone.

Update: An Apple store 20 minutes away had a Genius Bar opening in 30 minutes, so I signed up for it online and jumped in the car. It took them about 3 minutes to decide that I needed a new phone, so they grabbed out out of the back and sent me on my way. Total time to repair, including travel time: about 50 minutes. Not too shabby.

Tags: iphone, broken

Kindle Review

So, after thinking about it a bit, I went out and ordered an Amazon Kindle ebook reader. It arrived last Tuesday, just in time for me to take it with me on Wednesday’s flight to California. The Kindle let me leave 5 lbs of books at home and cut a couple inches off the thickness of my laptop bag, which was a pretty substantial improvement over the previous week’s flight.

Over the past 5 days, I’ve read 3 complete novels on it–Thirteen, All Tomorrow’s Parties, and Slaughterhouse 5. All three were purchased from Amazon and downloaded to the Kindle over the air; I’ve also stuffed the Kindle with a few free ebooks from tor.com; their moble editions convert perfectly for the Kindle via Amazon’s free email converter. After reading 900-ish pages on the Kindle, I’m about 95% happy:

All in all, I’m happy with the Kindle. It’s Good Enough. As things stand, I’m probably going to switch to buying most of my books in Kindle-compatible formats going forward, partly because they’re more portable, and partly because I’m getting tired of the sheer size and physicality of regular books. I’ve ripped all of my CDs and most of my DVDs and I haven’t looked back. It’s just easier to have them in electronic form, and I’m happy to have the space back that all of the disks took up. I used to have 2 or 3 shelves full of disks, but I still have an entire room full of books. I’d be just as happy if I could get most of them in a DRM-free ebook form, but even DRM-encumbered Kindle files are still an improvement for most of my reading.

Tags: kindle, books

Flying during WWDC

I should have planned this better. I’m going to be one a plane to NYC (and therefore completely out of touch) during the WWDC keynote. That means that I’ll have to wait hours to learn about all of the exciting new iProducts that Steve is trying to sell me.

The scary thing is that I’m not sure if I’m joking or not.

Tags: apple, joking, notjoking

Should I buy a Kindle?

I’ve been tempted to buy most of the e-ink ebook readers for months, and now I’m faced with spending around 16 hours on airplanes in the next two weeks, and I’d love to travel without 5 lbs of books. From what I can see, Amazon’s Kindle is probably the best fit for my needs. Does anyone have any recommendations one way or the other?

Tags: ebook, kindle

Changing projects at work; travel afoot

The last few months have been kind of quiet here for two simple reasons:

  1. I’ve been completely swamped with launching something new at work. That’s finally done.
  2. Every spare non-work minute has been spent in my back yard, working on The Project That Won’t Die. I’m re-terracing the lawn, putting in a big planter/retaining wall thing with a couple sets of steps, putting in a new paver patio, and then re-planting the whole lawn. The end is finally in sight there, too.

Basically, I’ve been alternating between not having anything interesting to say and having lots of things to say that I couldn’t really talk about.

Hopefully that’ll be changing soon. I’m changing projects at work; I was the lead for the Google download servers (need a new copy of Earth, Toolbar, Sketchup, Gears, etc?), and I’m going to be taking over a new service soon. The new job’s going to involve a lot of travel; I’m going to be in either NYC or Mountain View at least once per month for the rest of the year, and will probably be visiting at least 2 other offices for one of my side projects. Considering that I’ve only flown 4 or 5 times for Google in the 2.5 years I’ve been here, this’ll be a big change in pace. The job’s starting quickly–I first heard about this yesterday, and I’m already booked to fly to New York next Monday. I’ve never actually been there before, so it should be entertaining. I’ll be stuck in the office for most of the time, but I’ll have a couple free hours per day to wander around and see the sights. I’ll try to hit a couple of the tourist high points this time, and then branch out on future trips.

Tags: work, google, travel

Safari 3.1 and font support

So, one of the features that’s been in the WebKit tree for a while but finally showed up in Safari today is downloadable font support. You can use CSS to apply a specific font to an element and Safari will download the font from a URL provided.

That’s really cool, but the odds of an exploitable buffer overflow somewhere in the font rendering pipeline has to be almost 100%. I mean, almost every graphics format has had multiple exploitable bugs on every platform, and I can’t see how a complete OpenType renderer can be any less complex than JPEG. Even worse, this is a new attack vector, against a part of the system that wasn’t part of the security perimeter before. Is there a way to turn this off?

Tags: safari, security, fonts

FiOS system requirements

The Verizon FiOS installers have been circling the neighborhood lately, tearing up sidewalks, digging holes in lawns, and (finally) pulling fiber down the telephone poles in the direction of the nearest CO. According to their call center, they’ll probably be able to upgrade me from 3/768 DSL to 15/15 fiber sometime around the middle of next month. I’ve been waiting for years for them to finally make it to my place, so I’ll probably have to have a party or something :-).

Just for the fun of it, I was reading Verizon’s business FiOS system requirements page. Here’s a snippet:

SpeedRecommended CPU speedRecommended FSB speedRecommended free disk space
5/2 Mbps600 MHz100 MHz128 MB
5/5 Mbps733 MHz133 MHz200 MB
50/10 Mbps2 GHz330 MHz500 MB

So, not only do I need a faster CPU to enjoy a faster connection, I also need additional free disk space? Huh. Who knew?

Tags: verizon, fios

iPhone Time

I really thing I should get some credit for this: I managed to wait until March 2008 to buy myself an iPhone. I didn’t rush out and wait in line on the day they shipped. I didn’t buy myself one when the price fell. I even bought my wife one first, in December for our anniversary. Admittedly, I was in a car on the way to the nearest Apple store when Steve first announced the iPhone last January, before he bothered to mention that it wouldn’t ship for 6 months, but it’d be totally unfair to count that against me.

More seriously, it took me quite a while to convince myself that it was time to retire my trusty Nokia E61. The E61 served me well for almost 2 years, but it was time to swap. In theory the two phones are fairly similar–fairly large screens, WiFi, EDGE (the E61 does 3G in Europe, which doesn’t help me much here), and Safari-ish browsers. In reality, they’re a wonderful demonstration of why feature checklists are worthless. Here are the things that I care about most:

  1. The iPhone is hands-down better for reading and writing email via Gmail. The native IMAP client is good enough, and the iPhone version of the Gmail web interface is vastly better then the version that we feed to the E61, even though they’re running very similar WebKit-based browsers. The E61’s keyboard is better, but the HTML edit box in Gmail’s mobile web interface is so bad that it cancels out the keyboard advantage.
  2. The browser is better. It’s faster, it doesn’t crash on every third Amazon page that I try to load, and the touchscreen scrolling is better than the joystick on the E61.
  3. It’s actually usable as a music and video player. In theory, the E61 can play movies and music, but (1) there’s no easy way to copy content onto it (unlike the N-series phones, it doesn’t come with an iTunes plugin), (2) out-of-the-box it only supports wacko video codecs, and (3) the UI’s bad.
  4. It’s easier to charge. My E61 has never charged right; swapping batteries and chargers never made a big difference. The iPhone, on the other hand, uses a semi-standard connector and charges via USB. It’s easy to find iPod cables and USB jacks, but finding a spare Nokia charging cable is tough, at least around here.
  5. I’m never, ever going to have to see Nokia’s stupid “which network connection do you want to use?” dialog box again. For some reason, Nokia decided that asking the user before letting apps use the network every single time was a good move. It’s smart enough to know which networks are available, and which ones I’ve configured it to use, but it’ll still show me a list with one or two choices every time. Bleh.
  6. The on-screen phone keypad includes letters. It’s a stupid thing, but the E61 doesn’t give you an easy way to dial vanity phone numbers, because there’s no way to tell which numbers map to which letters. I mean, can you tell me off the top of your head which numbers you need to press to dial ‘1-800-884-SOIL’?

The E61 wins a few points, though:

  1. It comes with a SIP client that’s actually be useful at home for me.
  2. It’s open, and you can install useful software.
  3. The Nokia podcast client does a great job of copying new episodes of Escape Pod for me on the fly.
  4. It’s louder. That makes it harder to miss calls.

SMS is kind of a push between the two; the E61’s ringer is louder and it has a better keyboard, but it takes way too many button presses to do anything.

So, for now I’m using the iPhone. Yeah, I could have waited for the 3G iPhone or Android, whenever they appear, and I may swap for one (or both?) of them when they’re available. From everything that I’ve seen, Android’s programming model will be vastly better than the iPhone SDK, at least for the weird types of things that I care about, but it’s not shipping yet.

Tags: iphone, nokia, nokiae61, shiny

Whistler

Soo Valley

Soo Valley, near Whistler, B.C.

I spent Thursday and Friday in Whistler along with a few hundred co-workers, enjoying the Seattle version of Google’s annual ski trip. I took the opportunity to go snowmobiling for the first time, and took my camera along.

whistler-42 whistler-41 whistler-81 whistler-73

I need to find another excuse to go play in the snow with my camera; that was too much fun.

Tags: google, whistler, travel, snow

Birds in Ice

One of my favorite places to take pictures is on Fir Island, in Skagit County, Washington. It’s a farming community in the Skagit River delta, and it’s home to around 1 million migratory birds every winter, including Snow Geese and Swans. Ever see a cloud of geese turn the sky white?

It’d been weeks since I’ve been able to spend time hiking around with my camera, so I drove up Monday morning before dawn to see what I could find.

Dawn on Fir Island

Dawn on Fir Island

There were geese and swans flying by all morning, but I never got a really great shot of any of them from up close. There were thousands of them visible in the distance, though.

Morning flight

Morning flight

It’s been really cold lately, and there was ice everywhere, including the sea shore. There was a weird layer of office over everything; I assume that it was left behind by the falling tide. The plants looked like they’d been wrapped in cellophane.

Plants in Ice

Plants in Ice

Finally, on the way out, I spotted this Heron hiding in a drainage ditch a few feet from the road. He was my third or fourth heron of the day.

Cold Heron

Cold Heron

I can’t help thinking that a bit of fill-flash would have helped there, but he was close enough that it probably would have startled him.

Tags: photography, foxisland, birds

ICC Color Profile Database Available Now

As any experienced digital photographer can tell you, the trick to getting repeatable color out of a lab is to get a good ICC color profile for the lab’s printer and using it for every print that you make. I’ve been a big fan of Dry Creek Photo’s printer profiling service for years; they work with labs to build quality profiles and then publish them for free on their website, along with some documentation on how to use them.

Unfortunately, actually using the profiles is a pain for most users. The process looks roughly like this:

  1. Using a color-profiled monitor, get things looking the way that you want on the screen. Save.
  2. Resize the image to the correct resolution for the print size and resolution that are required for your lab. Different labs want 300, 320, or 400 DPI.
  3. Convert the image to the color profile for that lab that you’re using. Possibly re-adjust colors slightly.
  4. Pad the image out to a specific number of pixels to keep the lab’s printer from trying to re-scale your image. The exact settings depend on the printer and paper size. There’s a big chart on Dry Creek Photo’s website.

That’s not a big deal if you’re printing one or two pictures for framing, but it’s a huge pain when you have dozens or hundreds of pictures to process. Photoshop actions can help, but it seems like something is always going wrong.

When Adobe released their Lightroom SDK, I had high hopes that it’d make it easier to automate most of this. Unfortunately, Adobe didn’t expose their profile conversion engine to the SDK in the first SDK release, so it’s not really possible to build pre-profiled images directly out of Lightroom without using some external tool to do the profile conversion. A few weeks ago, Timothy Armes released LR/Mogrify, which uses ImageMagick’s mogrify command-line tool for profile conversion. It’s a cool tool, but it replaces a 5-6 step process in Photoshop with a dozen text boxes that you need to fill in to get good results. It shows promise, but it’s not quite the tool that I’m looking for.

What I really want is a Lightroom export plugin that asks you three simple questions:

  1. Where are you going to print this?
  2. Which paper are you going to use?
  3. What size do you want?

Then it does all of the hard work on its own. It’d fetch the correct profiles from Dry Creek, install them, figure out which resolution to use, handle image rotation, do some amount of pre-print sharpening, and then spit out a JPEG for you. Yeah, you could do a bit better with Photoshop and spending some time dealing with soft-proofing and sharpening, but I’m not willing to do that for 50 4x6 prints.

I’ve spent a bit of time this week building the first part of the tool–a machine-readable profile database. I’ve extracted a list of 765 current ICC profiles from Dry Creek Photo’s website, discarded the profiles that haven’t been updated in years, and produced an XML file that looks sort of like this:

<lab>
  <name>Costco #747name>
  <address>24008 Snohomish-Woodinville Rd. SE, Woodinville, WA 98072address>
  <phone>425-806-7708phone>
  <printer>Noritsu 3411printer>
  <paper>Fuji Crystal Archivepaper>
  <resolution>320resolution>
  <notes>Note: This lab has multiple printers. Request your profiled prints be run on Noritsu 34?Pro-B.notes>
  <profile>
    <name>Glossy paper profilename>
    <date>January 17, 2008date>
    <url>http://www.drycreekphoto.com/icc/Profiles/IccFiles/Washington/Costco-WA-Woodinville-Gls.iccurl>
  profile>
  <profile>
    <name>Lustre paper profilename>
    <date>January 17, 2008date>
    <url>http://www.drycreekphoto.com/icc/Profiles/IccFiles/Washington/Costco-WA-Woodinville-Lus.iccurl>
  profile>
  <size>4x6insize>
  <size>5x7insize>
  <size>8x10insize>
  <size>8x12insize>
  <size>12x12insize>
  <size>12x18insize>
lab>
<lab>
  ...

The and blocks are semi-manual additions; the import script sets resolution automatically when it sees a printer type that only has one resolution setting, but Noritsu 3XXX printers can run at either 320 or 300. I’ve filled in the one or two labs that I use most frequently, and I’ll to add others as time permits. The bit is fully manual, and I’m not really sure that it’s worth the effort to populate.

Right now, the XML file lists 380 labs. Entertainingly, that’s 379 Costcos plus Adorama. It looks like Dry Creek has dropped almost everyone else. If there’s a second source of non-Costco profiles, I’d love to know about it.

So, anyway, I have this XML available at http://profiles.sigkill.org/profiles.xml. It’s mostly automatically generated, and I can rebuild it in under 5 minutes. I’ll keep it up to date if people are interested in the data, if not it’ll die off eventually. If you have a tool that wants to use it, then send me mail and let me know that it’s useful. If you have any changes that you’d like to see, or anything that I should add, let me know and I’ll see what I can do.

Tags: profiles, photography

Sunset

I’m really not looking forward to going home from my vacation.

hawaii-1363.jpg

Sunset from Waikiki

Olympus 790SW in Hawaii

I bought my wife an Olympus 790SW point-and-shoot camera before we left for Hawaii on vacation, and I’m growing increasingly fond of the little thing. It doesn’t really compare to my Canon 5D’s image quality, but it’s so small and handy that it’s easier to carry. Even better, it seems to be indestructible–it’s submersible and can be dropped up to 4.5 feet without breaking anything.

In other words, it’s the perfect beach camera for families with small kids. Plus, you can take it snorkeling, just in case one of these pops up:

Sea Turtle

Sea turtle

or some of these:

Reef fish

Reef fish

There are more pictures on Flickr if you’re interested.

It also takes semi-decent video. I wouldn’t confuse it with a HD camcorder, but I wouldn’t take the camcorder in the water, either. Here’s my son’s first time snorkeling:

It’s around $260 on Amazon, if you’re interested.

Tags: photography, vacation, family, review

Hawaii

So, I’m in Hawaii this week for vacation with the family. It’s been a while since I’ve had a real vacation that didn’t involve cross-country drives or tight deadlines. I’ll write more eventually, but for now, have a few pictures:

hawaii-148.jpg

Lighthouse at Dawn

hawaii-301.jpg

Obligatory palm tree

hawaii-638-Edit.jpg

Sunset Beach surfing

Tags: hawaii, vacation

Lightroom 1.3 and SDK are out

It looks like Lightroom 1.3 is out. More excitingly, the Lightroom Export SDK is now available. I guess it’s time to learn Lua.

I might wait until after next week’s vacation to pick up Lua, though. I have a beach calling my name.

Tags: lightroom, lua

SATA staggered-spinup

Interesting trivia: staggered drive spin-up is an optional part of the SATA II spec. Unlike most SCSI drives, though, it’s not controlled through a jumper. Instead, it uses one pin on the SATA power connector. If pin 11 is floating, then the drive is supposed to wait to start spinning.

Apparently the 650W power supply in my new server only provides enough current to spin up 10 drives at once, because adding an 11th drive makes it turn off on its own immediately. Sigh. I wonder if anyone makes delayed-spin SATA power dongles?

Tags: sata, power, server

Gigabyte GC-RAMDISK / i-RAM Review(-ish)

I mentioned that I bought a Gigabyte GC-RAMDISK (a.k.a. i-RAM) to go in my new home file server, largely to see if using it as a solid-state log device would improve ZFS performance.

Unfortunately, I’ve been completely and totally unable to get the card to do anything at all. I’m not sure if I have a defective card or if Gigabyte’s SATA implementation is just really buggy. When I plugged it into the motherboard’s ICH9R SATA ports, the BIOS didn’t even show it on the boot-up scan and Solaris reported it as failing to initialize correctly. When I plugged it into the Supermicro AOC-SAT2-MV8 8-port SATA card, the BIOS could see it but Solaris gave a similar error. Connecting it to the motherboard’s Marvell eSATA ports made the Marvell hang at bootup and made Solaris really unhappy, spewing drive failure messages all over the console.

I can’t find a single review that suggests that anyone has got this to work with a recent motherboard. Digging through the Linux kernel mailing list suggests that it has a really spotty SATA implementation. Apparently they developed it using a couple Windows drivers as a comparison, instead of actually paying attention to the SATA spec.

So, it’s going back to Amazon today. It was a nice idea, but it just doesn’t appear to work. I don’t know if it’s broken or just poorly designed, but either way it’s not useful to me.

Tags: broken, gigabyte, gc, ramdisk, i, ram, zfs, ssd

Notes from installing OpenSolaris snv_74

I now have Solaris up and running and reasonably stable-looking, after only 12 hours of work. A number of things turned out to be bigger issues than I’d anticipated, largely because it’s been years since I last used Solaris and, frankly, Solaris’s disk partitioning and formatting tools suck.

              -------Sequential Output-------- ---Sequential Input-- --Random--
              -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---
Machine    GB M/sec %CPU M/sec %CPU M/sec %CPU M/sec %CPU M/sec %CPU  /sec %CPU
zfs        10 105.0 55.3 163.3 27.3 121.0 30.4 119.2 88.4 287.1 36.2   169  1.8
zfs+c      10 112.9 59.7 181.5 30.3 127.8 29.1 118.1 86.0 424.9 52.2   198  2.1
Tags: opensolaris, server, zfs, gs, ramdisk

A new server (part 1)

A few days ago, I mentioned that my home NAS box had failed, and that I was considering replacing it with a PC server running OpenSolaris and ZFS. I’ve read a pile of ZFS docs, and it looks like the best option available to me today, so I decided to order some suitable hardware.

At that point, pretty much everything broke down. I have a hard enough time keeping track of which hardware works with Linux this week, and OpenSolaris is completely new to me. Sun’s list of officially-supported hardware is pretty sparse, and digging through their mailing list archives gets frustrating quickly. From what I can tell, it boils down to:

I was looking for a motherboard with 8 SATA ports, and was hoping that the Intel D975XBX2 (“Bad Axe 2”) would work, but 4 of its 8 SATA ports belong to a Marvell PCI-E SATA chip that doesn’t appear to be supported. I went through every single 8-port motherboard in Newegg’s (the ‘WS’ is important–the P5K is a different board). It only has 6 on-board SATA ports, but it includes a PCI-X slot. That’ll let me use the Supermicro AOC-SAT2-MV8, which is far and away the cheapest 8-port SATA card on the market. That’ll give me a total of 14 SATA ports, which should be enough for a whatever I want to throw at it. The Marvell PCI-X chip at the heart of the Supermicro card is the same one used in Sun’s Sun Fire x4500 48-drive server, so it’s safe to assume that Sun has put a lot of effort into the driver.

Most of the test of the system is fairly generic–a cheap nVidia 7200GS video card (the cheapest PCI-E card that NewEgg carries), a nice case and power supply, RAM, and a boatload of drives.

The one odd component that I’ve added is a Gigabyte GC-RAMDISK with 1 GB of RAM. The GC-RAMDISK is a battery-backed SATA ramdisk; it looks like a hard drive to the system and can survive up to 18 hours without power. I’ve had my eye on this thing for years, and it looks like it’ll be a perfect external log device for GFS. I had to ask to see how ZFS will behave if the device fails, and it looks like manual intervention may be required after an 18+ hour power outage, but it should be pretty minimal. I’m planning on posting some benchmarks here once I’ve had a chance to try it out.

Assuming that I’m able to get this whole mess to work at all, I should have lots to write about here over the next week or so. I’m going to start by explaining why I want to use Solaris instead of Linux or *BSD, and why I’m building something instead of buying a pre-build NAS box.

Tags: home, server, opensolaris, zfs, raid

Why not Linux (new server part 2)

So, as part of my new home server series, I want to explain why I’m using OpenSolaris instead of Linux.

I’ve used Linux since 0.97.1, in August of 1992. I’ve had at least one Linux box at home continuously since 1993 or so. I’ve had a few small chunks of my code added to the kernel over the years. I’ve built several install disks and one embedded appliance distro from scratch, starting with a kernel and busybox and going on up from there. I’ve written X drivers, camera drivers, and drivers for embedded devices on the motherboard. I’ve managed Great Heaping Big Gobs of Hardware at various jobs. Basically, I know Linux well, and I’ve used it for almost half of my life.

That in itself might mean that it’s time for a change–professionally, I’ve been very tightly focused on Linux, and diversity is a good thing. But that’s not why I’m using Solaris this week. I’m using it because I’m fed up with losing data to weird RAID issues with Linux, and I believe that OpenSolaris with ZFS will be substantially more reliable long-term. Things I’m specifically fed up with:

In short: everything works great when things are perfect, but building a reliable multi-drive storage system requires careful component and kernel compatibility work, and then you have to stay right on top of things if you want everything to keep working. When things stop working, they usually fail badly. That’s almost the complete antithesis of what I want for home: plug it in, and it just keeps working. I don’t want small failures to cascade through the system. Little failures should isolated, identified, and automatically repaired whenever possible. OpenSolaris and ZFS seems to provide that, while Linux with md and ext3 does not.

That’s why I’m planning on using ZFS. My logic for building a server vs. buying another little NAS box is simple: none of the little NAS boxes on the market use ZFS right now, and none of the cheap ones have room for more then 5 drives. I’m planning on using a double-parity system (RAID 6 or ZFS’s raidz2, where the system can cope with a 2-drive failure) plus a spare drive, and that’d only leave me with 2 data disks. The only way that I can get enough data with only 2 disks would be to use 1TB drives, and they’re too pricy right now.

So, I’m willing to spend the time to build a somewhat complex server because I believe (hope?) that it’ll save me time in the future, and it’ll let me avoid ever having to do the reconstruct-from-the-source dance again. I don’t think I lost anything critical last weekend, and I’m reasonably confident that I’ll be able to get things limping along well enough to recover data anyway, but I’ve now done this 3 times in the past 4 years, and I’ve had it.

Coming up soon: backups, OpenSolaris hardware compatibility, and GC-RAMDISK performance benchamarks. Stay tuned :-).

Tags: linux, solaris, opensolaris, zfs, raid, storage
next page »