Friday, January 29, 2010

Being a Generalist

Thats me!

I dream in abstracts and concepts and avoid anything with substance.

Some people like using their time getting better at what they already know. I seldomly have more than one book on a subject and have a hard time focussing on a single issue long enough to get any real experience with it. As soon as I have basic knowledge of a subject I tend to move on. This doesn't mean that I don't have a lot of books or isn't constantly on the lookout for new input. Au contraire.

If we take databases as an example. My interest stops at tables and what you can do with ANSI SQL. What features each database implementation has is not really important to me. I can look that up if I need it later.

The disadvantage of this approach is that I'm dependend on my team to complete anything. Luckily I like working together with people.

The advantage is that the knowledge I gather isn't easily outdated and it can therefore accumulate over time. In other words I don't have to start from scratch every other year by learning new technologies.

Thursday, January 28, 2010

To Cloud or not to Cloud, thats not even a real question

I have read a few posts about Cloud computing on the net. Some of them show great fear of this new thing where a computer is not just a computer and a program is not just a program. How do you back up data and how do you keep it away from others?

To me cloud computing is about abstracting away from hardware instances and thereby allowing easier scalling and distribution of computing. Cloud computing is to instance computing as functional programming is to imperative programming or SOA is to system integration. Instead of defining how you want it you must define what the needs of the application are. This could turn out to be a lot more productive than what we have been used to.

I don't nescesarily think that if you go the Cloud way you have to place all of your data somewhere out of control. It might very well be that parts of your application needs to scale well and you can put that part on a Cloud that supports this. Other parts of you application that has other requirements might have to be put elsewhere, maybe even on the cloud on your own network.

Having few dependencies has been a goal in software development for a long time, and now its moving to the hardware platform. This is a good thing as application requirements will hopefuly be much more transparent in the future.

Tuesday, January 19, 2010

There is no such thing as perfect

You might think you are the exeption to this. You aren't! :)

So, what am I saying: that perfectionists are wasting their time getting everything perfect...  Yes, in my opinion they are for sure mising out on a lot of creativity, and they won't achieve their goal anyway.

As I see it the result of what you do can be illustrated as the following graph.




It illustrates the time it takes to reach perfection. Actually it show that you will never reach perfection. Productivity is the angle on the curve. In the beginning you are going very fast towards the goal. As you acomplish things your focus will change from fundamental structural task into details.

The strive for perfection is often a sign of lack of experience.

Tuesday, January 12, 2010

Password nightmare

If you are employed in any modern company there will be plenty of applications you need access to.

At the moment I have to remember 7 passwords for different systems just to be able to do my daily work. On top of that I have to access systems on several client's networks and I must admit that I can't keep up any more. All systems have different algoritms for what passwords they accept and they all have different timeschedules for when I have to change the passwords.

All the systems are created and configured with the best intensions but the sum of the systems is a security disaster. There is no system more secure than its weakest link, and I'm sad to say, thats me.

Every time its possible I tend to breach security policies by having passwords I can remember or writting the passwords down somewhere else.

Monday, January 04, 2010

Size does matter!

Its true. Maybe I should be more precise and say that code size matters.

Which is more readable of the following?



or


They both show the same code sample I nicked from the internet, and they both display the same number of lines.
The first one is the recomended style for C#. The second is more like Suns recommendations for Java.

The first sample uses a lot of lines for syntax. This means that you actually can't see the whole method without scrolling the window down. This is one of the reasons I prefer the second approach. The blank lines just bloats the code and makes it harder to view the code as a whole. Although I generally think formatting of code is of little importance to a project, there is no reason to have extra lines that contain no extra information.