iPhone Review

I haven’t had a cell phone worth writing about for two years. My venerable Sony i610 is now history, enter iPhone 2.0. Joel just did his review of the Nokia n71 so I hope there is room for one more geeks perspective on the iPhone.

My last Apple device, a 40GB iPod, was not worth the price of admission. The hard disk failed before I got my moneys worth. With a phone, you just need it to remain reliable for the length of the contract. That’s a minimum requirement. We will see how this device holds up long term.

Size & Feel

It’s larger than my last phone but much thinner. Walking around with the device in my pocket feels more comfortable than the Sony. In my hand it feels too slippery. It could really use some texture around the edges to help the user keep hold of it. I’ll be getting some sort of slip cover to help with this.

It does get a bit warm if you start using the networking or push the CPU.


It’s no computer keyboard but it works well. I’m writing this entire post on the phone. Since it’s slower than a full sized keyboard it may be helping to keep the word count down. I’ve never had a cell phone/PDA with a full keyboard so I can’t compare it to that experience.

The auto correction works well. You can mostly trust it to do the right thing even if you fat finger stuff.


It rocks. I’ve given the phone to a few people to do simple tasks like take a photo. So far I haven’t had to show them how to do anything.

Battery Life

I was really worried about this because of the reviews I had read. I have used the device now in two very different ‘modes’ with very different battery life results.

First I went to a 4 day conference in Orlando.  This involved traveling for most of the day, using airport and hotel WiFi, G3 data when there was no wifi, push e-mail etc. At the conference I got about 5 hours of screen on time each day before the battery went out. It’s clear that the biggest battery sync is video. You can just watch the bar go down over as little as half an hour. On my 2 1/2 hour flight to Orlando I switched back over to audio to save the battery. If this sounds like your typical usage then you might want to consider another device. If I was going to use the device like this ever single day I would want to double the battery life.

If I use the iPhone like I used my old phone I can go 4 days between charges! The WiFi is left on but does not auto connect. I only use the phone to make a few calls and texts. Most of that time I was in an area with no G3 coverage so that may have helped. 4 days is better than my old phone so I’m pretty happy about that.

Overall I think this works out well for me. The device is powerful and I can use it in when I’m on the road to stay connected. When I’m near a computer (which is most of the time) I can set it to have long battery life. Its a nice trade off, a super powerful device in your pocket when you need it.


When an app launches the browser you can’t return to that app from the browser. This is now a common task, send the user off to the Internet. Some mechanism needs to be added to return directly to the app that launched the browser. Twitterific is a great exception to this. The embedded apps need to learn from this.

The contacts interface sucks. I should be able to get to search from anywhere in the contacts list. As it is I have to scroll to the top of the list. In fact. Plus they have a bug where typing shows way down in contacts. The new 2.1 firmware totally fixed this issue. I would still prefer if the search view was the default view for contacts. I rarely scrolled through the contacts on my old phone.

If your using the Phone app and the phone rings, how do you answer it? There needs to be a button that indicates the current or incoming call.


This is really a mixed bag. Getting the UI right on the phone requires thought. I haven’t found the a todo app yet that I like, I may have to write one. A good note taker app would be nice too. The built in one is trying to be a little too much like paper.

The real kicker is the Remote app. This lets you manipulate iTunes over WiFi in your house! So if your in the garage all you need is some cheap speakers and an Airport Express and you are in business. Finally a good way to get online radio in the house.


It’s not as bad as some have said! Not for the serious 24-7 business user, ideal for more casual users. The 2.1 firmware fixed many issues. Go get one.

Python Project

I want to do a project in Python. It could be something from scratch or maybe a contribution to an existing project.

  • It could be something to do with media
  • It could be a todo list web application I’ve been thinking about doing, perhaps on Google’s App Engine
  • It could be something that runs on embedded systems.
  • It could be something to do with model airplanes in some way

I just don’t know exactly what I should do. I have programmers block.

Suggestions welcome…

YUI CSS Kicks Ass

I was looking for a color picker widget over at Yahoos YUI site. I have been there before mostly to watch the videos on Javascript. Douglas Crockford is obviously the man when it comes to Javascript.

Anyway, I saw a link for a video on YUI’s CSS component and I was just a little bit interested. I though it was probably just another CSS reset. There was some vague promise of Grids and I couldn’t imagine how they could make that easy so I still didn’t think it looked promising.

Wow was I wrong. If you haven’t seen this then you need to go check it out. Nate Koechley and crew have done a seminal piece of CSS work here. Here are the highlights:

  • They provide a reset for all styles and fonts in all major browsers, including IE6. You are leveraging all the cross browser testing done by Yahoo
  • Everything (fonts, boxes etc) is sized with em’s or percentages of em’s so the entire page will scale gracefully for 508C
  • The Grids can be nested. You can do 2, 3 or 4 columns in a variety of width ratios (e.g. 2 columns: 1/4, 3/4 )
  • Its really simple to use

At work we have struggled with CSS. We don’t have a full time web designer to work for us. So the devs do all the html & css. I’m fairly handy with this sort of thing but have no where near enough time to produce the level of product that you can get with YUI. Other devs have even less patience for this sort of thing. For us this make a whole lot of sense.

We are really sensitive to the semantic markup of the page and the use of em’s for 508C support. We want it to be nice to use not just live up to the letter of some spec. I started using em’s when we first did the style sheet but I was about to give up because it was getting so difficult to use. Now its going to be easy to provide the kind of experience and cross browser compatibility that I have wanted all along.

Just go to Yahoo’s home page and increase the font size. Look at how smoothly that works and realize how hard that is to set up. Now realize you can do that to your site and still get work done faster than before. Your developers can pick this up in an hour or two and start building better stuff.

Setting Wing Incidences

Here is the Gieco Caveman style How-To on setting wing incidences. This is step #22 in the Carden manual for the 35% 260. This step gets about 1/4 of a page. Its not complicated or hard but it is something you have to plan out.

I’m going to assume that were starting with the wing tube socket installed (step #21) and the wings are done with the leading and trailing edge stock installed and sanded to shape.

First we are going to do all of the drilling that we can on a drill press. Drill 4 of the square mount pads and all 4 of the rectangular mounting brackets dead center with a hole sized to the diameter of the bolt your going to use. Carden suggests using 8-32, I’m using 4mm. With the remaining 4 square pads drill a hole for the blind nut, again dead center.

IMG_0864 (by gareth.ky)IMG_0866 (by gareth.ky)IMG_0871 (by gareth.ky)

On two of those pads add an additional hole clear of the blind nut. This is the setup pin hole. The setup pin will keep the wings level when the anti-rotation bolts are removed. This is handy while you look around for your socket driver at the field. Its just an affordance for setup & tear-down and not a load bearing part.

IMG_0874 (by gareth.ky)

Next find the root cap stock with the pre-drilled socket tube holes in it. Mark the center line of the plank and then transfer the locations of the mounting pads to the center line. Use one of the pads and a square to mark the locations of the pads. Cut these out inside the lines. Sand until the pads are a snug fit.

IMG_0876 (by gareth.ky)

Install the blind nuts in the wing pads. Place the pads into the root cap holes you just cut. The setup pin hole should be pointing towards the tail. Tack glue the pads with some CA. I just did the 4 corners. I’m using polyurethane glue to install the root cap so it will make a good bond later on. Cut the root cap stock in half to make two root caps.

IMG_0877 (by gareth.ky)

For each wing we need to glue in the wing root cap. To do you have to cut away some of the foam so that the pads are recessed into the wing root. To do this I just fir the root cap over the socket tube and line it up with the center of the airfoil using the center line I drew earlier. Once its aligned I press the pads into the foam so it leaves a mark. Using a Dremel router I cut a deep pocket behind the blind nut so that no glue could enter the back of the nut. Then I set the router to cut the depth of recess needed for the pad and cut out the shape of the square mount pads. Test fit again and it should be good to go. Sand down the tube socket so that its flush with the root cap or even slightly inset.

IMG_0879 (by gareth.ky)IMG_0881 (by gareth.ky)IMG_0882 (by gareth.ky)

Now to get a good fit between the wing root and the fuse sides. I think I saw this on FG somewhere else and it didn’t look like it could hurt. Flip the fuse on its side, put the wing tube through the fuse and mount one of the wings on top. I use polyurethane glue to attach the root cap. Make sure to get adequate glue around the ply mounting pads. Glue is going to come through the seams where the mounting pads are so put some parchment paper between the fuse and the wing to keep it from sticking. The glue takes 2 hours to set up so this step takes a while. You may want to label the wings left & right at this time because its hard to tell which is which after the root cap is on.

IMG_0888 (by gareth.ky) IMG_0894IMG_0893 (by gareth.ky)

Resist the urge to trim the root caps, all that extra material is going to come in handy. So now its time to set the incidences. Use a good digital level and an incidence tool. Make sure your table is flat and level. Mount both wings on the fuse with the fuse flat on the table and upside down. Make sure that you got the right wing on the right side of the aircraft and that its underside is facing up. Use the incidence tool to find 0.0 incidence. Use a block of scrap balsa and some push pins to secure the wing in this position. Make sure at least one of the pins goes through the 3/8 square stock in the fuse sides. The soft balsa on the fuse sides is too flimsy to hold the wing and keep it from slipping. Take you hands off everything and verify the level still reads 0. Set both wings this way. The blocks will allow us to move the wing and find 0 incidence again consistently.

IMG_0897 (by gareth.ky)IMG_0902 (by gareth.ky)

Now we have to find the locations of those blind nuts so we can bore a hole in the fuse side to match up with it. I have seen various methods suggested using tape or sharpened screws. This way is easier and, IMHO, more accurate. Use a pin to probe for the hole from inside the fuse. Don’t worry, the pin cant go through the ply block in the wing root so it can’t make big holes in the exterior of the fuse sides. Just the tip goes through the balsa, not the whole thing. The holes on the inside get covered up later. Once you strike pay dirt poke more holes all around to find the extent of the blind nut hole. This will help you see the center when you pull the wings off.

IMG_0899 (by gareth.ky)IMG_0915 (by gareth.ky)

Pull the wings off and you should see spots on the fuse sides peppered with holes. Open up the center of each area with a pin or small drill bit. Make a sand paper drill from 220 grit paper and drill the holes but twirling it. Open up the hole until its the size of the perforated area. Slide the wings back on and check that all the blind nuts are accessible. You should also make holes for the setup pins at this time.

IMG_0916 (by gareth.ky) IMG_0903 (by gareth.ky)IMG_0917 (by gareth.ky) IMG_0908 (by gareth.ky)

Now we glue the 4 remaining mounting pads to the inside of the fuse. The is the *critical* step. Once they are glued in the incidence of the wing is set and you cant change it. I do one wing at a time so I can have the incidence meter to make sure the wing is at 0. Use 30 minute epoxy, not poly glue, for this step. The poly glue could expand and seize the bolt. Put the epoxy on the back of the pads and screw them in place. Do not tighten the bolts down, just snug them. Check once again that the wing reads 0, it might shift when the bolts go in but I didn’t have this problem. Then just walk away. Wait till the epoxy has cured before moving anything.

IMG_0920 (by gareth.ky)IMG_0927 (by gareth.ky)

Now its time to mount the setup pin. Make the pin about 3 inches long and use poly glue to install it in the wing. You only need it to stick out about 3/8″. If you leave it a little bit longer you can sand it down so its flush with the mount pad inside the fuse when the wing is installed. You may want to harden up the balsa around the setup pin opening with some thin CA. You’ll have to drill a hole in the mounting pad in the fuse side to match up with the pin. I strongly suggest doing this on a drill press. I tried it with a hand drill but the wood tends to ‘climb’ up the drill and mess things up. The drill press took more time but the result was much cleaner.

IMG_0930 (by gareth.ky)IMG_0931 (by gareth.ky)

Last step, add the balsa spacer and the retention bands. This is pretty easy, just glue the parts in place. You’ll probably have to sand and shape the two forward bands to fit. Again I used 30 min epoxy so it didn’t get into the bolts.

This is the after shot, both wings still read 0.0 degrees. There is not slop or wobble at all. The bolts fit but are very snug and its a bit of a challenge to get them engaged properly. I’m going to put a few flight on the airplane and see if things sort of shake/wear into position. I don’t want to mess up a good things with sand paper just yet.

IMG_0936 (by gareth.ky)