Ockham’s Razor

Entia non sunt multiplicanda praeter necessitatem

Recently Choon Keat introduced me to David Heinemeier Hansson’s latest thoughts in developing software. His thoughts stem from his interests in HTTP resources and that of a CRUD-constrained approach in application development. Of course, it’s Rails, but there’s nothing stopping us from applying the same principles in Java or any other platforms.

So what is the CRUD-constrained approach in application development? In essence it is that in all that you design, it needs to be constrained as a CRUD operation on a an object (Create, Retrieve, Update, Delete). That sounds pretty limiting — only CRUD? What about all those fancy business logic that is the heart of the application? Nope. Everything must be in a CRUD. If you have some logic (verbs) that doesn’t belong to a CRUD then you need to have a new object, and operations on it needs to be … you got it, CRUD. Radical.

I was quite thunderstruck when Choon Keat first explained this to me because I saw the similiarity between this and what I have always believed in. Simplicity, modularity and maintainability. It’s easy enough to understand why this is simple. Modular? The design is object-oriented (can it be not object-oriented?) and operations on the object are ONLY CRUD. What else can it be but modular? Maintainable? Since everything is expected to be CRUD, it is VERY easily to maintain the code.

But does it work? I don’t know actually. But it is a very compelling philosophy that twists things around. To me it’s like being analog all your life and suddenly this newfangled thing called digital comes along. It’s all 1’s or 0’s. You’ll feel uncomfortable as hell — what?? only 1 and 0? How limiting! But there’s a LOT of 1s and 0s.

Gotta try this.

Advertisements

Ockham’s Razor

Entia non sunt multiplicanda praeter necessitatem

Recently Choon Keat introduced me to David Heinemeier Hansson’s latest thoughts in developing software. His thoughts stem from his interests in HTTP resources and that of a CRUD-constrained approach in application development. Of course, it’s Rails, but there’s nothing stopping us from applying the same principles in Java or any other platforms.

So what is the CRUD-constrained approach in application development? In essence it is that in all that you design, it needs to be constrained as a CRUD operation on a an object (Create, Retrieve, Update, Delete). That sounds pretty limiting — only CRUD? What about all those fancy business logic that is the heart of the application? Nope. Everything must be in a CRUD. If you have some logic (verbs) that doesn’t belong to a CRUD then you need to have a new object, and operations on it needs to be … you got it, CRUD. Radical.

I was quite thunderstruck when Choon Keat first explained this to me because I saw the similiarity between this and what I have always believed in. Simplicity, modularity and maintainability. It’s easy enough to understand why this is simple. Modular? The design is object-oriented (can it be not object-oriented?) and operations on the object are ONLY CRUD. What else can it be but modular? Maintainable? Since everything is expected to be CRUD, it is VERY easily to maintain the code.

But does it work? I don’t know actually. But it is a very compelling philosophy that twists things around. To me it’s like being analog all your life and suddenly this newfangled thing called digital comes along. It’s all 1’s or 0’s. You’ll feel uncomfortable as hell — what?? only 1 and 0? How limiting! But there’s a LOT of 1s and 0s.

Gotta try this.

Italy wins World Cup!

Italy has won! It was a good game, not as I expected it to be. Both sides played well and well into extra time, but Italy was flawless with their penalties, too good for France. It was unfortunate that Zidane had to go off — it all seems pretty senseless to me why he did it. I suppose this will be analyzed to the death in the next few days and perhaps he will speak more on this in days to come but for now it’s great puzzle why he head-butted Materazzi the way he did.

I was supporting France all the way but Italy deserved this win for their professional way of handling the game. And to top it off with their domestic league problems. What an interesting World Cup it has been!

Another month before the Premiership starts again. Time to rest for football I suppose. Lots of catching up to do for other stuff.

Web people

There’s this person, let’s call him J. I don’t really know him, but I have read his blog, met some of his friends and so on. He seems a bright guy, just out of the university, did an exchange stint in a prestigious US university. Very much into technology marketing and entrepreneurship. Haven’t got a job yet, no real working experience but I suppose expected to land one soon or startup the next big thing. Probably talks well. One of those guys who you expect to meet, talking about startup business plans, elevator pitches, venture capitalists and grand visions of the new new thing. Someone you might imagine from the good old dot-com days. Probably saw the burst but was unaffected or unscarred as he was still in school. Talks really a lot about Web 2.0 and blogs about it with enthusiasm and flourish.

There’s this other person, let’s call him M. I knew him briefly when I was giving a talk on open source licensing during IX 2003. He’s slightly older than J (not that much). Never went to university. Learnt technologies by using it and doing it. Came out to work really young, about 14 years old I think. Talks very well, sells well enough. Went through the dot-com bust with his eyes open – not unscathed (no-one was) but unbowed. He went ahead to start his software/hardware own company. Talks passionately about Free and Open Source software but doesn’t blog too much about it.

They’re both below 30 years old, much younger than I am, one has achieved a lot already, the other dreams of achieving a lot very soon.

The next Internet boom is coming. You can see the flashing lights now on Web 2.0, progeny of the much-maligned Web Services. Buzzwords like SOA and AJAX have invaded the technical space while social networks and mapping mashups are on the rise like the portals, e-commerce sites and search engines of old. Will it reach the heights of its predecessor’s madness and spending fervour? I would say no, but you might never know.

So who will survive, Mr. J or Mr. M?

Brazil and England lost

The two teams I was rooting for lost! What a disaster! I spent the past 6 hours watching my two teams crash and burn into oblivion! But they probably deserved to lose … Brazil was terrible! Zidane was brilliant to watch and Henry was as nimble as ever, but alas the much celebrated brilliance of Brazil strike force was never evident. If anything France deserved to win. When I was in France last week, I had this short exchange with a waiter during dinner, while France played Togo. With our limited conversational possibilities it was all that we can do but to exchange a few words on football. The waiter was openly scornful of the Le Bleus’ chances — that there was talent but no teamwork. I agreed with him at that point in time, but I wonder what he thinks of it now.

England was lethargic and clumsy much of the first half woke up only when they lost Rooney. I suppose that was pretty ironic — that he was so iconic and central to their gameplan but they only got better when he was booted out. But again they were terrible at taking penalties. Poor Lampard! So accurate and deadly during the Premiership but so luckless during the World Cup! It’s so pitiful to see them all so dejected, their heads down and tears flowing freely while the Portugese team danced away.

Which team to support next? It’ll be Germany I suppose though I might jinx it if I say so :(

Singapore Ruby Brigade

There’s a new group in town and it’s called the Singapore Ruby Brigade! Join the march, hop on the train! If you’re a Ruby or a Rails fan, or if you’re just curious about what’s going on about Ruby in Singapore, check us out! We’re still very much fledging group but with growing interest!