Impressions of TiVo Series3 HD

At the beginning of the year, we got a new TiVo: the beautiful 300-hour Series3 HD. We’ve been TiVo owners for a while now, since we got our 80-hour Series2 about a year ago. TiVo has completely changed how we watch TV, and for better or worse, we’re watching a lot more these days.

We don’t have an HDTV, so we’re not really using the HD features of the Series3 (yet). We mainly got it because:

  • It’s beautiful
  • It has dual tuners using CableCard so we could get rid of our digital cable tuner, which we hate, and still get digital channels
  • It has a very high recording capacity
  • It has a display on the front showing the shows it’s recording
  • We like new toys

Our initial impressions are: The Series3 is awesome.

Since we’re not really using HD, the recording capacity has been great — it’s picked up so much more that we used to get on our 80-hour Series2. Since it has dual tuners, there are rarely conflicts. It tunes much faster than the Charter cable box, so channel surfing is much better as well.

We had a bit of trouble getting the two CableCards the Series3 needs from Charter. The person we spoke to (in person) at the Charter office in Reno had vaguely even heard of CableCard. She couldn’t figure out why we needed them, or how they work. She did determine that they do not carry them at the office, and would have to have a technician come out and install them, for a $99 fee. We argued on that point, that it’s just a card that has to be plugged in, and a phone call made, and there’s no reason I couldn’t do it myself. She finally conceded and waived the $99 fee, but said that a technician would still have to come out. Oh well.
Some observations about the Series3:

  • When we initially connected it without any CableCards and did a channel scan, it found many channels we are not supposed to get. The most interesting part, was that it seemed to find several channels that are used for OnDemand from Charter–they would show full movies “sometimes” throughout the day.
  • Since having a Series3 means you don’t need a cable box, and cable boxes usually have clocks on them, the Series3 has a clock on the front, using its OLED display. It is, however, WAY too small, and not bright enough. We can barely read it from the couch, which is pretty close. This should be easy to fix in software, so please have an option for clock size, TiVo!
  • The power connector comes out WAY too easily. I’ve accidentally unplugged the Series3 5-6 times now, while connecting and re-arranging things. The tiniest tug, and the power is out.

Overall, we love you TiVo!

On 1U cases, PCI risers, and LSI MegaRAID

I’ve been working with one Proven Scaling customer that has had some interesting issues recently, involving InnoDB corruption, resulting in messages similar to these:

InnoDB: Page checksum 3156980109, prior-to-4.0.14-form checksum 577557610
InnoDB: stored checksum 741279449, prior-to-4.0.14-form stored checksum 577557610
InnoDB: Page lsn 0 2323869442, low 4 bytes of lsn at page end 2323869442
InnoDB: Page number (if stored to page already) 195716,
InnoDB: space id (if created with >= MySQL-4.1.1 and stored already) 0
InnoDB: Page may be an index page where index id is 0 2831
InnoDB: (index PRIMARY of table db/table)
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 195716.

The problem was encountered when testing hardware for a move from software RAID to hardware RAID using LSI MegaRAID SCSI 320-2 cards. The servers are 1U machines with Tyan motherboards, and a PCI riser card which the MegaRAID plugged into.

They were receiving the same messages on several different machines, ruling out a single bad piece of hardware. After spending weeks trying to figure out what the problem could be, testing different configurations and isolating variables, it was tracked down to the PCI riser cards. Searching for “lsi pci riser” shows quite a few people having similar issues.

It turns out that LSI “does not support” using their cards with PCI risers, at all. Maybe they should reword things a bit—if their cards don’t work with PCI risers.

The scariest part of the whole exercise, though, is that the corruption was occurring completely silently: data comes in, is written to disk, but gets corrupted in flight. Since the OS wrote certain data it is now caching the correct copy of the data, but the disks contain something different. The only way the corruption is discovered is when the page is read back quite a bit later, after having been flushed from cache.

You’d think that somewhere along the line, the OS or the RAID card would catch the corruption?

Linksys NSLU2, Unslugged

I bought a Linksys NSLU2 on Amazon, affectionately known as a “slug”. It’s a tiny little device, barely bigger than my hand, which is intended to be used as a network storage device, with the addition of a couple of USB 2.0 hard drives. Of course, I rarely use such gadgets for what they’re intended.

The reality is that it’s a tiny little box, which without modification1 has:

  • 266 Mhz X-Scale (ARM) IXP425 processor, underclocked to 133 Mhz
  • 32MB of RAM
  • 8MB of on-board flash
  • 2 USB 2.0 ports
  • 1 100Mbit Ethernet port

Most of Linksys’s consumer electronics run Linux, and the NSLU2 is no exception. In practice, that means that the Linux hacker community has adopted the NSLU2 and created many Linux distributions for it. You can easily add a USB keyfob, such as my 512MB SanDisk Cruzer Micro (link actually to a 1GB version), which gives you plenty of space for additional software. I’m currently using Unslung, as it is based on the original firmware from Linksys, and promises to be the least risky. Once I’m comfortable with the box, I will probably change to a pure Linux, minus the Linksys junk that I don’t need.

Last night, I got the box up and running on the Unslung firmware, got a whole bunch of software installed on it, and even got OWFS compiled on it (not including the FUSE filesystem stuff). Man, I forgot how slow things compile at 133Mhz with 32MB of RAM.

I plan to make a few hardware hacks on my slug to at least up the speed to 266Mhz and make it turn itself on when power is applied.2 I have some plans for using mine for running a weather station and webcam, which will (hopefully) make it to the top of a mountain around here. For the short term, though, it will go in our backyard for testing purposes (and well within range of our wireless network without special antennas).

1 With a few hardware hacks, you can add three additional USB ports, a serial port, and increase the clock speed to 266Mhz. Pretty awesome box. Did I mention it uses only 500mA with no disks attached?

2 I will never figure out why companies choose to make their products have stupid defaults like this. You might remember my post about “The Big Green Button“: my previous cable modem had the same stupid problem. Small consumer electronics that are largely designed to be “on” all the time should turn “on” by default, if they even have a power button at all. Sigh.

Leaving Yahoo!; storage, consulting

As many of you know already, I’ve decided to leave Yahoo!. Today was my last day. I’ve had a great time at Yahoo! and worked with a bunch of brilliant people. I will miss you all!

   

Where am I headed? That’s actually a complicated question. I’ll be working part time at Pivot3, a mature startup that’s doing great things in the storage industry. Contact me if you’re interesting in cutting storage costs, getting some amazing management tools, and some awesome performance. I would love to tell you more! MySQL will absolutely rock on this platform.

Yes, I said part time. I have a startup of my own, Proven Scaling, providing advanced MySQL consulting and training services. Looking to get more performance, scalability, or reliability out of MySQL? Need help with replication? Designing a database solution that really scales? Need help interviewing a candidate for a MySQL position? We can help.

How to make amazing panoramas

I’ve had a few questions from various people, and overall my panoramas have been quite popular… so I thought I would write up a few tips, and a kind of short instruction guide. To start with, the hardware and software:

Software — Download autostitch (for Windows), or one of the other software packages including autostitch’s algorithm, such as Calico (for Mac OS X).

Camera — You don’t need anything incredibly fancy, but you do need something that can produce clean, sharp pictures. All of my older panoramas were taken with a 3.2MP Canon PowerShot S230, and my newer ones with a 6.3MP Nikon D100.

Tripod — In order to take good panoramas, you will probably want a tripod. It isn’t completely necessary, but it helps. Keep in mind you will be taking up to 20+ pictures, and you want them to line up as well as possible. A cheap tripod with a built-in level will be fine.

No tripod? — If you want to take a good panorama without a tripod, it’s possible. Hold the camera very steady, and try to move it as little as possible. When you turn to take each shot, turn the camera (as a tripod would) instead of turning your whole body (which swings the camera). This is especially true if you have foreground in your picture which you want to come out nicely.

Settings — For best results, you should consider setting your camera to full manual mode. Manual focus will ensure that you don’t accidentally re-focus between shots. Manual aperture and shutter speed will ensure that each shot is exposed the same as the others, so that there’s less blending work to do for the stitcher.

Orientation — Decide how much vertical space you want; you can shoot either portrait or landscape. I find that portrait shots are best, and give you the most options later. You can always crop out parts you don’t like, but it’s hard to add them in later.

Next, the method for getting the shot:

  1. Find a good view; something with a wide field of view, with nothing significant in the foreground to block the view.
  2. Decide what you want your shot to look like. If you’re on a mountain top, for instance, decide how many degrees to shoot, where to frame interesting objects in the overall panorama, etc.
  3. Decide whether to shoot portrait or landscape.
  4. Set up your tripod. Ensure that it’s level.
  5. Attach the camera and determine how you will move the camera through the entire range you need for the panorama. Look through the lens (or at the display) to be sure that the shot is framed how you want it. Check the camera’s level with the horizon using the built-in marks in the eyepiece.
  6. Take a few test shots, and adjust your exposure and focus. Make sure your test shots include both light and dark areas in your shot.
  7. Frame the first shot. I usually shoot left to right, but it’s up to you.
  8. Take a shot, move the camera a few degrees, but be sure that each consecutive shot overlaps the previous one by a fair bit. I usually aim for about 50% overlap. This gives the stitcher plenty to work with. Continue through all the shots until you reach the opposite side.
  9. Quickly scan through the shots you took, and make sure they all came out alright.
  10. You’re done shooting!

When you get back to a PC, download the contents of the camera, load it into your autostitch, and stitch away. It will normally take up to a few hours to stitch a single shot, but the results are worth it. If you intend to print your panorama (and who doesn’t!) be sure to set the size to 100% and the JPEG quality to 100% before stitching.

When you’re ready to print it, use ezprints “classic site, ideal for professional photographers” to print the panorama. They allow printing of unlimited-length panoramas at 6-inches and 12-inches tall.