-
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.
-
The right tool for the right job
It should be pretty obvious that you should use the right tool for the right job. Unfortunately it seems that when I do some home projects, I don't always have that luxury. Yesterday, however, was an exception. last week I bought a "fiberglass running kit" from Harbor Freight (I love some of the stuff you can get from the store, but I'm pretty careful about what I get as the quality of some of their products isn't great). I needed to run a new phone line to my entertainment center so that I could try out Oooma.
I've run a lot of wire down this particular wall and struggled with many of the runs. A flexible fish tape is a bit cumbersome and not the ideal tool; that's all I had before, so I used it. Yesterday, I put together 3 pieces of the rod together, pushed it down the wall, went downstairs and was able to easily grab the end of the rod. I attached a Cat 5E cable to it and then was able to pull it up the wall. It was, by far, the easiest pull I've done. Why I didn't get something like this before is probably because I was too cheap, so I spent lots of time doing the work.
Lesson of the day, don't be too cheap with tools.
On the topic of the right tool for the right job, I was spoiled doing contract work where everyone I dealt with was pretty tech savvy. When we needed a tool to track issues for our projects, we found something and installed it. I've used TestTrack, Mantis, and Redmine as bug tracking/project management tools. While none is perfect, they are a huge help. Now that I'm no longer doing contract work, I'm finding that the tool of choice is Microsoft Excel. While Excel is a fine tool for some things, I'm not a fan of it (I haven't liked it since college when I spent far too much time using it to try to get results). I see Excel used for tasks that databases, bug databases, and project management applications were designed to handle. These systems are multi-user and allow people with access the ability to get up to the minute status on a project; Excel, of course, is static, and you can't get status of a project when you need it. You rely on one person updating it and sending it out via email or posting it on a Web site (the latter is actually much better than the former).
This is not to say that there isn't a place for Excel in business applications, but it is not the be all, end all tool (so far I haven't found one).
-
Too good to be true?
Recently I've seen a number of reviews for Ooma phone service and how you pay a one time fee and get free phone calling (in the US) forever (or until the company goes out of business). I've been looking at our $53 per month AT&T landline bill and keep wondering what we're getting for it. I've said for a long time that I wasn't going to go VOIP because of poor call quality and potentially unreliable 911 service. Well, with more and more people going VOIP, the 911 issue has pretty much gone away. Public safety answering points know how to deal with VOIP. The only question with 911 is if broadband goes out and/or power goes out. A UPS handles the power issue. As for voice quality, the reviews for Ooma have been largely good.
I went ahead and ordering the Ooma Telo from Costco,.com but quickly cancelled my order. I've done a bit of reading and if you get the older model, the Oooma core, you won't be charged the $12 recovery fee each year after the first year. Also, it's unclear to me what features got pulled out of the core and put into their premier ($99/year going to $120/year at the end of the year) service. Their premier features look intriguing and $120/year is a whole lot less than the $600+/year that I pay now, so who knows if I'll go for that. Our phone needs are pretty basic, so the pay once and never pay again service may work for us.
I went back to Costco.com and ordered the older Ooma and we'll see what happens. Since I'm getting it from Costco, if I don't like it, it goes back. It doesn't appear to be part of the 90 day return policy, so I can take advantage of Costco's generous return policy.
Am I going to be able to recover my money in less than 6 months and give up a landline? I'm not sure, but it is definitely worth a try. Since I have call forwarding on my phone, I can just forward the calls to the Ooma number and give it a test drive. If it works, I'll port my home number to Ooma. If it doesn't, I turn off call forwarding and return the Ooma. (Based on my history with landline phone companies, AT&T will jack up the price in the near future leaving me with few options; I switched from MCI when the rate kept going up and up and up.
Anyone used Ooma? Does it work as well as it is advertised?
-
Protecting my dishwasher from theft
Included in my new dishwasher is the standard product registration card from LG Electronics. I usually don't fill out the registration cards as they don't affect warranty service. I did briefly look at the card and laughed when I saw it. It said:
Registration can serve as verification of your ownership in the event of product theft or loss.I know that this is a standard registration card for all products, but it was funny.
I've decided to provide step by step instructions for stealing my dishwasher because the product registration will help me prove that I own it.
- Break into house.
- Get past attack dog.
- Find kitchen.
- Take off cabinet toe kick. Hint there is one nail hidden in it.
- Unscrew dishwasher toe kick.
- Shut off water to dishwasher (the connection is under the sink; however, the cabinet under the sink has a child lock so you have to find the magnet).
- Disconnect drain hose while you're under the sink.
- Unscrew electrical cover.
- Put on leather gloves and unscrew connections (or go out back and turn off the circuit breaker). Be careful!
- Find a tool to lower the leveling feet.
- Lower dishwasher.
- Pull dishwasher out (you have to feed the drain and supply hoses while you're doing this).
- If you didn't shut off the circuit breaker (it's labeled in the box), be very, very careful with the water that comes out of the hoses so that it doesn't come in contact with the live wires.
- Drag dishwasher out front door (it easily fits out the front).
- Shove it in your truck without my neighbors calling the police.
That's all there is to stealing my dishwasher, so if you're up for the challenge, be my guest as I have LG to back me up when I need to prove to the police that it's mine.