Cost of communications

Interesting article in the Economist on the cost of telecommunications.

I have been looking closely at the cost of owning a landline phone. When I say landline what it really is is a box attached to the cable system into which my phone is plugged in. I get unlimited local and long distance, I am not sure what the international rates are but I use a separate provider for that.

I use this landline to make and get international phone calls from family, as well as announcements from town hall (a nice service but mostly non-relevant to me), and the occasional call asking for my opinions (I have lots, just ask me), or money for this or that cause (I have already given thank you).

For everything else I use my cell phone. Which makes me wonder if I should drop the landline altogether. Currently it costs me $30 but I get $15 off my broadband connection because I get both service. That $15 rebate would go if I dropped my landline, so it could be argued that it costs me $15 only. It could also be argued that I am paying the going rate for my broadband and the $15 is a penalty for dropping them. Either way, I would only save $180/year if I dropped the landline.


Leopard TimeMachine

I have been trying out Leopard’s TimeMachine to see how well it worked as a backup solution. I should point out that I am not using it as my backup, that is already being taken care of.

I like that it is so simple to set up, just plug in an external drive and everything is done automatically for you. You can also select which drives to backup. File recovery is very simple, just select the finder window in which the document was and active TimeMachine.

Backups are done once an hour, once a day and once a week.

I don’t really care for the moving star field, a little too “star trek” for me, and a little distracting. I would also prefer to have finer grained control over the backup frequency, and I am happy to see that someone has taken care of that with TimeMachineScheduler. Finally I don’t really like the way TimeMachine prompts you every time you plug in an external drive that has not been checked before, though I suspect that is hard to get around, after all the idea is to make sure you make backups, right?

Hibernate vs. iBatis

I am currently working on a new project. This project is being done in Java and needs to access an RDBMS.

I started off using Hibernate, which has a fairly steep learning curve, and about 40% of the way through I decided to switch to iBatis.

First the reason why I switched. I found that while Hibernate could do simple things well, complicated things were much harder for some reason. I think this is mostly due to the lack of good examples in the documentation. The documentation presents lots of information on the various XML constructs, but does not do a good job of putting them in context with good examples. Building the XML file became an exercise in frustration trying to get things to work.

Still I was able to draw some interesting comparisons between the two.

Hibernate is a very abstracted layer, effectively shielding you completely from the underlying RDBMS. It generated all the SQL for you, both when you need to instantiate objects and when you need to run a query (it uses it own HQL to shield you from the native SQL supported by the RDBMS). It manages all the relations between objects, automatic updates, etc… All this abstraction comes at a price of course.

iBatis on the other hand is much closer to the metal. You have to write your own SQL (so are free to use as much or as little of the underlying RDBMS features), and it provides fairly minimal support for handling relations between tables. And you have to do a fair amount of extra work to isolate your application from ‘knowing’ that it is dealing with an RDBMS.

I can’t say that one is better than the other, they are both good at what they do, and they each provide a different set of features. My take on it at this point would be to recommend using iBatis unless you need the extra features provided by Hibernate.

Definitions, explanations & contexts

Recently a friend was asking me lots of questions about definitions, along with explanations & contexts about funding, stock options and funding about startups.

I answered his questions but also sent him two links to videos on the GigaOM show that would give him fuller answers than I could given him.

First link is to an interview they did with Jeff Clavier, and the other is to a segment on term definitions that Joyce Kim did.

The art of innovation, a talk by Guy Kawasaki

I had a lot of fun listening to this talk entitled “The Art of Innovation” by Guy Kawasaki.

Lots of great advice for entrepreneurs, well presented and funny. Here is the write up from the page:

Guy Kawasaki has a long history working in technology, both in established companies and as an entrepreneur. He worked for Apple at the time of the development of the Macintosh and later returned as an Apple Fellow. In this keynote speech, he gives what he believes are the important stages towards successful innovation. He presents the steps in both a humorous and intelligent way, showing what companies must do to be successful.

He presents a number of examples for each of the steps, using both his own experience at Apple as well as by presenting innovative products and how they were developed. His common sense thoughts are both entertaining and useful.

ps – I very rarely listen to podcasts twice but this one got “two listens”.

Pair Programming vs. Code Reviews

Artima has an interesting thread on pair programming vs. code reviews.

I am great supporter of code reviews and have always pushed for them. I think it is a very good way to learn from others, whether you are reviewing code or having your code reviewed.

On the other hand the idea of pair programming makes me cringe.

ECMAScript map

John Resig has put together a nice map showing the relationships of everything in the world of ECMAScript.

Sidenote – I always think of ACMEScript when I see ECMAScript, maybe I watched too many Wile E. Coyote cartoons when I was young.