• The wait begins (for my iPad 2)

    Like many tech geeks, I plan on getting an iPad 2. It isn't necessary for me to get one, but the increased speed, slightly reduced size, and smart cover just make it too cool not to get. I really don't have time to stand in long lines to get one (I did stand in a few hour line for my iPhone 4), so I figured I'd try to get one today.

    I called a few local stores and of course, got nothing. When I was talking to my wife and I mentioned that there were 18 combinations, she suggested I just order it online to get what I wanted. That makes a lot of sense and I should have done it yesterday to get in line with the 2-3 week wait. Since I waited a day, I'm now at 3-4 weeks. Wow, that seems like an eternity in tech years!

    I'm going to call Wal-Mart on Monday and see if they got anything in, but I'm not holding my breath. I've also been told that the Apple Store gets shipments everyday so I might try there later in the week. If I happen to score one early, then I can simply cancel my order. Why didn't I order first thing Friday morning and then cancel my order if I managed to get one? I did this with the iPhone 4, so what was I thinking? Maybe I was just overly optimistic about getting one.

  • Paying for High School Sports

    In today's local paper, there was an article about how over 800 local teachers were receiving pink slips and could potentially be let go if the school district can't figure out how to find extra money to pay for them. Several months ago, there was some uproar about students paying for extra curricular activities including sports. Apparently there is a California state law that guarantees all students a free education and this includes sports.

    So, we as taxpayers can't ask athletes to pay for anything including uniforms, insurance, transportation fees, etc. To me, this doesn't seem like it is in the spirit of the law; the state is trying to provide students a base education to succeed. Instead of cutting teachers and classes, wouldn't it make sense to completely cut sports and let athletes find a way to pay for them?

    I understand that sports are the main focus of some high school students, but shouldn't academics be key? The law is supposed to give equal access to all students regardless of ability to pay. I'd like to see the law amended to exclude non-essentials activities and get athletes to pay their own way; I suspect that most students can afford them, just maybe don't want to afford them. How many of them have cell phones (monthly fees add up)? How many waste money on Starbucks? How many have iPods?

    Let's get our priorities right and put education first and get rid of this misuse of education funding.

  • Choosing a software contractor

    When companies look to hire a developer to write software, in particular iOS (iPhone and iPad), they expect to hire an expert. However these days everyone and his dog claims to be able write iPhone and iPad software. While this may be true, it is nearly impossible to know if you're getting a good product. Apps may have great visual design, but in some cases it is just a pretty face. So how do you pick a developer that is going to produce a quality product that is stable, maintainable, and works well. Many projects get passed from developer to developer, so having good quality code to begin with, the app will have a higher change that it can continue without being completely rewritten.

    I've written software as a contractor for many years and like to think that I know what I'm doing, so here are some tips and questions to ask that may help companies hire a quality developer.

    • Does the developer rely heavily on open source? Open source itself isn't inherently a problem, but should be used sparingly for specific purposes and should be easily removed at a later time if need be. Building an entire application on an open source framework makes things needlessly complicated and fragile.
    • How long has the developer been writing Objective-C software (Mac or iOS)? Experience says a lot about how easily the code can be maintained in the future.
    • What do the applications that the developer has developed look like? Take a look at the App Store and see how complicated the apps are and how well they work?
    • Ask for references. Ask why the developer is no longer doing work for the references. There are a number of ways to say "we got fired", so be on the lookout for those. If the app is no longer being developed, the company ran out of money, or the developer no longer has time are probably the best reasons; anything else might be suspect.
    • Does the developer use source control? This is a pretty basic requirement. If a developer doesn't use source control for his/her own projects, that would worry me. There are many sites that offer free or cheap source control, so there is no excuse for avoiding it.
    • Does the developer use code analysis tools such as CLANG? It's built into Xcode and there is no excuse for avoiding it.
    • Does the developer allow warnings when building the project? Compiler warnings should be avoided at all costs.
    • Can the developer provide code samples for review? In particular, an app that can be built using the Apple Developer Tools. This is important as some developers have a huge list of tasks to get a project built. A project should be delivered such that you can unzip the archive and build the project. I've seen projects delivered that have a list of steps to build including checking out code from open source repositories. This is extremely problematic and error prone as the repositories could change by the time the app is delivered.
    • Ask the developer what is the right way to determine if a feature is available on a particular device. Today I saw code that checked the OS version to determine if Retina display graphics should be used. This is completely wrong because for example, iOS 4 runs on devices that don't have Retina displays. (Also the code that checked the OS version didn't properly check the version.) Apple has identified ways to determine if a particular function should be used or a feature is available.

    These questions are probably hard for non-developers to ask and know if the answers are legit, so it might be worth spending a few bucks to find an expert, such as me, that can spare a few hours to evaluate a developer, but doesn't have time to actually do the project.

  • Review: Homax Caulking Tool

    A few weeks ago, my father mentioned that he got one of the best tools for his tool box, a Homax Caulking Tool for smoothing a caulk joint. When I was at Wal-Mart, I picked up one of these tools (as part of a Homax kit) and put it away for the next time I did caulking. Caulking is one of those things that I hate as I always make a mess.

    After finishing a drywall repair due to a plumbing leak, I had to put some tile back and caulking the top of the tile. (While some people grout the top, the rest of our downstairs has the top caulked.) Luckily the 6 year old tube of caulk outside was still good, so I applied the caulk, used the finishing tool and must say it was the easiest and cleanest way to caulk a joint. There is very little to say about this simple tool, except if you ever have to do caulking, this tool is a must have. As a standalone tool, it is less than $3 at the store and will save you a lot of headaches.

    Pros

    • Easy to use.
    • Makes a very clean caulk bead.

    Cons

    None

    Summary

    Just get this tool as at some point during home ownership you'll have to do some caulking; you won't regret it.