-
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.
-
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?
-
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. -
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.