Thursday, March 4, 2010

New Build Tool: fabricate.py

I stumbled onto a new build tool today: fabricate. I can't believe how cool it is, and that nobody has thought of it before (OK, actually, one person did, but still!). You give it a command, and it runs the command with strace and looks for all the files the command reads and produces and uses those as the command's dependencies and outputs, respectively. The next time you run the command with fabricate, if the outputs don't exist or the dependencies have changed it re-runs the command, otherwise, it doesn't. In other words, it does all the work that you normally would try and do with make, automatically.

Another cool thing about this is that it will work with anything. You don't have to write builders for it like you would for scons (another tool I looked at for a bit). I spent some time trying to get scons to run modelsim compiles and simulations for me, and it was way too hard to make it work. I just tried fabricate with a small modelsim job and it worked perfectly. I'm excited to play with fabricate some more.

Tuesday, March 2, 2010

Our New Home Phone: Ooma

Since my family and I just moved to a new state for this new job, we took the opportunity to look at different options for home phone. Some friends had switched to ooma and liked it, and after a little research, we decided to go with ooma too, specifically the ooma telo.

We got it at best buy on sale for about $225, and that's all you pay. Apparently we'll eventually have to start paying about $11 a year for some sort of telecom tax. Other than that, nothing. You might be able to find the telo for cheaper on ebay or something too, I didn't look into that too much.

I connect my cable modem directly to the telo, and then the telo to my router, and then my computers to my router. You plug your normal land-line phone into telo too, and then it works like it always has. With everything going through the telo, it does QOS to make sure your voice traffic always has enough bandwidth, and it can do port forwarding so web and ssh requests still get to my linux machine. It supposedly does the right thing with 911 if you register your address with them (if I remember the setup process right). Setting it up wasn't too tricky (and would have been easier without the port forwarding and my comcast connection coincidently going down right in the middle of it all).

You get voicemail for free and the telo box gives you a convenient answering machine interface to it. It has a speaker and you can hear when someone calls and leaves a message. You can pick up the phone while they are leaving their message and start talking with them. You can play, rewind, save message and all that answering machine stuff by using the big buttons on the telo box. A red light flashes when you have a new message waiting. My wife likes that (and I'll admit, I really like it too). There is also a web interface to voicemail where you can listen to the messages as sound files, and you can have it send you a text message and/or an email whenever someone leaves a voicemail (not transcribed or anything, but google voice can do that if you really want).

You also get caller id that displays phone numbers only. If you want names you can pay ooma for their premium service. Our home phone has a phone book and if you save a number in there it knows how to display the name we saved, so we numbers only is fine for us.

Voice quality seems fine. Occasionally we've had some minor little weirdness where it seems like it was slow to notice that you picked up the phone, and once (only once) I unplugged the telo and plugged it back in to fix where it didn't notice we had hung up. It plays a little chime when you pick up the phone that's a little obnoxious, but other than that it's been fine and you hardly notice that it's VOIP.

I like that it's standalone hardware and not software based like MagicJack (which is windoze only, another sticking point for me). It is more expensive, and won't give you a big immediate savings. After 6 months of not paying $40 a month for regular phone service though, it's paid for.