Boo gotchas for beginners

Unlike what I mentioned in my previous post, I ended up trying Boo first. I will delve on the reason in another post. The objective of this post is to document the problems I had getting used to Boo syntax. None of the problems were big, just some missing punctuations :) And I did not face any issues with the significant space.

Empty array vs. Empty list

An empty list is

[]

and an empty map is

{}

And empty array is

(,)

as it would cause ambiguity with a function / closure.

Continue reading

The great runtime shootout

It is becoming more and more obvious that there are just two runtimes left to execute code, the Java Virtual Machine (JVM) and the Common Language Infrastructure (CLI). So, I decided to see how they stack up. Looks like both environments have something for everyone.

Here is a list of programming languages available on these runtimes.

JVM vs CLI

  1. Can run on CLI using IKVM.NET
  2. Can run on JVM using Mainsoft solution
  3. Not yet usable
  4. Can run on CLR, but is behind the JVM implementation

The main reason for the research was to identify a new language I should pick-up. I looked at Python and Ruby, but both have some sore thumbs that I just can’t stand. I really liked Boo and Groovy; they are similar to C#/Java in syntax and incorporate the good things from Python. Although I like Boo’s syntax and approach more than Groovy, Groovy has a more mature implementation and ecosystem. I will try to use Groovy for some hobby project and get a feel to things.

Ultimate backup tool?

Well, I don’t need to beat the dead horse about why one needs to backup data. But with the explosion of digital assets, it is all the more important.

What are my digital assets?

The largest, of course, are photographs. Apart from these, I have a fair smattering of music, code, documents and others.

How do I back them up?

Currently, photos are backed up on DVD and in the cloud (picasaweb). Picasa acts as incremental backup and DVDs are full backups. A copy in Hyderabad acts as offsite backup.

Other things lie around on 2 USB drives and dropbox, plus my disk drives in my PC and laptop.

What other option have I tried?

I have tried a few backup tools, Windows 7 backup utility, some more apps on Ubuntu, and found everything lacking in one way or other. I haven’t tried the Apple Time Machine or Windows Home Server. But, from what I have read, they might be answering most of my needs listed below, expect being cross platform. I have not spent much time trying online backup solutions because of the reasons mentioned earlier.

Problems I face?

Synchronizing data is my biggest problem. Although, dropbox is great, I can’t use it to backup my photos or music. In addition, I am afraid to plunge head long to an online storage system, since downloading all of them in India will be a real pain, not to mention, expensive.

What will an ideal backup tool look like for me?

In a sentence, “Drop box on a (USB) stick”. Continue reading

Rock SOLID software construction

SOLID - Software Developement is not a game of Janga

Software Developement is not a game of Janga

I spent last two weeks deep diving into code written by our contractors and writing some test against the same. This was a pleasant break from my regular duties of an architect. As an architect I am always trying to ensure the code follows pragmatic design principle and I really dig SOLID and TDD.

<aside>

S.O.L.I.D. (a.k.a. S.O.L.D.I.)

The charm of Uncle Bob is, he can give a concrete shape to abstract ideas. I have been following the principles laid out by SOLID for some time, but he makes them fit together and remove ambiguity.

So, what is SOLID principle?
Continue reading