"Excellence through total Moderation" - Cleobulus

Thursday, January 24, 2008

Real men don't click!

Launchy app link: (Windows)

Quicksilver app link: (Mac OS X)

... or so they say!

This post has to do with making your everyday life on a computer easier and more productive. And I am not talking hard stuff for the technologically savvy, but something that even my grandmother can find useful.

Have you ever found yourself sitting in front of a Windows desktop getting frustrated because it is full of application shortcuts and documents and links and blah blah blah ... ?
Well since you need them all, is there a way to get rid of this whole mess, but still be able to access them quickly and effortlessly on demand?

Fear not, because Launchy is here!

For any Mac user the word "Quicksilver" should ring some joyous bells.
The Windows equivalent is the Launchy application that is a nice simple yet functional keystroke launcher. What that means is that you can just press Alt - Space (although you can change that to any combination that makes you happy) and then a little window will pop up.
Then the magic happens:
Just start typing the name of what you want to open - that can be pretty much anything - from applications like Firefox or Word, to Web links in your browsers history, to documents - and Launchy will find your item.

I can tell you that once I got introduced to it, I can't work with out it! It's fast and right in your hands, so you never have to leave the keyboard.

Give it a go and let me know if you like it!

P.S. Its highly customizable and you can add all kinds of plugins and skins to it!
Oh and Quicksilver for Mac is better, but what can you do, that's what happens when you get a Mac ... ;-)

Wednesday, January 23, 2008

Getting Introduced To Patterns

I was recently introduced to Design Patterns by a colleague of mine, as a very useful and efficient way of identifying problem trends and their solutions in the Object Oriented world.

Java code has never looked the same since ... !

Object Oriented Programming (OOP) had always given me the feeling of a “neat and clean” way of organising software in nice little boxes enclosing Data and their handling Methods, always abstracting commonalities into higher levels, keeping everything tidy and structured.

What I had never thought, given all that OOP existing inter and intra object architecture, is that beyond the class and object principles, there exist well understood higher trends and ways of designing and manipulating objects to solve a specific set of problems.

Hints about their existence had been thrown at me from time to time. It’s one of those things where you see a problem and you are thinking “I am sure I have dealt with something similar before ... if only I could remember what I had done”. Chances are that unless you have done something a bunch of times, you won’t remember much about it after a while, unless it was a painful experience ...

And this is where these patterns come into play. They don’t tell you what the solution is, but they navigate you in finding the right approach. They are a handy set of recipes containing information abstracted from common sets of problems found everywhere in OOP development.

Being a musician I have realised that for someone to be creative they first need to develop a certain set of tricks that can help them identify and deal with the routine, boring stuff efficiently so that they can focus as much energy as possible on the novel where true creation is found.

Likewise, we software developers can benefit from acquiring this pattern vocabulary. It boosts productivity and it helps communications with others, where just mentioning a pattern as part of a solution saves a lot of the time that in the past I have spent explaining my approach with details that are now common knowledge amongst the ones familiar with patterns.

Friday, January 18, 2008

A Welcome Note

Hello! If you managed to here all by yourself, chances are that I wrote something that caught your attention. Good!

This blog is named "Perpertual Duality" as a tribute to our world's dyadic nature where everything is double-sided. 

Good - Bad, Black - White, Correct - Wrong, 0 - 1.

All seems to have been evolved from this simple yet so significant bipolar system, where just like acrobats we try to find our path and balance through constant fluctuation between two opposites.

The ancient Greek philosopher Cleobulus (Greek Κλεόβουλος) captured this eternal effort for equilibrium with "Pan Metron Ariston" (Greek "Πάν Μέτρον Άριστον"), the translation seen at the top.

It has been a common stereotype to think that computers and technology have nothing to do with nature and the real world, but more with theory and mathematics. 

Yet I believe it to be a misconception. Computer Science is the ultimate expression of man's desire to understand this two-sided, binary nature of things; the logic behind it all using the two simplest and most fundamental structures: of true and false.

I am a Computer Scientist and working as a Software Engineer at Zuhlke Engineering in London.

This blog is a little journal with various software engineering stories and anecdotes from experiences and situations that I have come across as a Software Engineer in this strive to find solutions to ... dyadic problems :-). 

Hope you find it interesting, helpful and, who knows, may be even ... inspiring?