• Review: Ooma

    A few weeks ago, I wrote about the promise of Ooma. I received the Ooma box soon after I wrote that and tested it. While the installation wasn't hard, my first night I played with it, I ended up packing it up and almost writing it off. My biggest problem with how I hooked up the Ooma box was that I put it in front of my router as was recommend; that created a double NAT such that I had one internal network running inside of another internal network. For most people, this might not be a problem, but double NAT sometimes causes problems with VPN connections, iChat video sessions, and connecting back to my internal network using software such as EyeTV's iPhone application.

    So after the first failed attempt, I decided to give it another try the next day. This time, I just plugged the box into my switch. I have no idea if the Airport base stations support QOS, but my initial tests showed that downloading files didn't affect voice quality. After my initial tests, I decided to call forward our home phone to the Ooma number, re-route some wires to have our cordless phones connected to the Ooma and I was off and running. The first time my wife tried to use the phone, she said that there was music on the line; I think my son had pressed one of the buttons and called voicemail. After I assured my wife it was fine, she made a call or two. While I was bathing my son, I heard my wife making a call and saying "can you hear me?" and basically apologizing because "her husband was doing something with the phone".

    After my son went to bed, I immediately disconnected the box, unforwarded the phone, packed up the system and prepared to return it. My wife said there was an echo on the line and she said there was a delay; both common issues with VOIP systems. So, my Ooma experiment was a complete failure.

    Pros

    • Lots of features.
    • Low cost.

    Cons

    • Poor voice quality.
    • Yearly cost for basic service has gone up due to changes in terms of service.
    • Unsure of viability of company.
    • Company ethics may be questionable; initially the company used "peer-to-peer" telephone which used your phone line for other people's phone calls to save on termination costs. They have since stopped that practice.

    Summary

    Ooma and other VOIP systems have great promise and while I'd like to think that I'm willing to experiment with technology, messing with telephone service is bordering on crazy for me. Others that have used VOIP services and are pleased with them may like Ooma. For me, going from a landline to a VOIP system for my home phone just isn't going to happen now. I'll keep trying to get a cheaper phone service, but now isn't the time to pull the plug on the old reliable phone company.

  • Confusing user interface

    I've always been puzzled by dialogs that have OK, Cancel, and Apply buttons. This has been pretty typical on Windows and relatively uncommon in decent Mac applications. If a preferences window has these 3 buttons, what do they mean? If I click some buttons, hit Apply, and then Cancel, do the changes take effect? If I click some settings, and click OK, but don't click Apply, do the changes get applied?

    I would have thought that by Windows 7, this would have been resolved, but apparently not.

    iChat2.png

    I collect software and have seen lots of programs. I recently saw this in a Mac program.

    Screen shot 2009-11-10 at 10.13.36 AM.png

    Why this is in a Mac program, I have no idea.

    After looking into this a bit, a friend pointed out that Xcode also has an Apply button. Furthermore, the Xcode Preferences is a window and windows don't normally have OK and Cancel buttons. So it looks like Apple needs to look at its developer tools.

    XcodePreferences.png

  • The magic geek box

    My boss loves Velcro and has Velcro straps around every wire and has taken things to the extreme by creating a Velcro board that he sticks all his cables to and sticks it in his briefcase. While this looked a bit geeky, he always has the cable he needs. While I liked this idea, I thought that a closed case would be the better way to go so that the stuff wouldn't fall out when the board is pulled out.

    I picked up a small "ArtBin" box at Dick Blick art supply then used Gorilla Glue to glue the non-fuzzy side (I can never remember if that is the hook or loop side) Velcro (OK, maybe it wasn't Velcro brand) to the inside of the sides of the box. So now I can put all my cables and supplies in the box and have it neatly organized. I may look like a complete geek pulling out this box, but on my last 6 trips, I think I've used almost everything in the box. Here's what I have:

    This box is getting a little heavy, but it has been so handy to have all the pieces right at my fingertips. Some of my colleagues have looked at me funny when I've pulled out the box, but I know that they're jealous!

  • The end of unsized integers

    In recent versions of the Mac OS SDK, Apple has largely moved away from datatypes such as int and long as they have different meanings in 64 bit OSes. In a project I'm working on, this bit me twice recently. The first is that a UINT (the code was ported from Windows) was incorrectly typed to be a byte or a dword (2 bytes) when it should have been 4 bytes. If the type was a UINT32 (UInt32 in Mac speak), setting the correct type would have been easy and not confusing. Likewise, there was another case where a variable was typed as unsigned long long which was 8 bytes on a 32 bit OS, but 16 bytes on a 64 bit OS (if I'm off on the values, please forgive me). If it was specified as UInt64, that is completely unambiguous and a bug would not have occurred.

    So, this day forward, I'm going to do my absolute best to only use sized integers, like SInt32, UInt32, etc. where the exact size is specified. This will be much more important using both 32 bit and 64 bit versions of Mac OS X. Granted, for many developers, it still doesn't matter, but I've dealt a lot of USB communications and structures, so the size of the integers makes a huge difference.