Thursday, February 21, 2008

Maintenance - The final change?


At the speed things are changing, in 10 years the job description for Java programmer is going to be "maintenance."

-- Pragmatic Dave, InfoQ

Luckily my copy of 'Design Patterns In Ruby' arrived today ;-)

Wednesday, February 20, 2008

Can you spot the difference?



The above is how I spent my military service for the last years. The lower is how I am spending my military service this year.

Installing PostgreSQL on OS X using Fink

For a current project I am playing around with PostgreSQL.

Sidenote: I am very positively suprised about the documentation of PostgreSQL...

I chose to install PostgreSQL on my MacBook using Fink (I try to use Fink whenever possible, because I believe serious package management pays off in the long term).

However the installation did not run through as smoothly as possible...

Here are the necessary steps:

Step 0: Install Fink
Go to the Fink project and follow their installation instructions.

Step 1: Install PostgreSQL
Just type
sudo fink install postgresql82
into a terminal.

This takes a while and a lot of gibberish appears on your terminal...
In my case there was a warning at the end, telling something about not installing plpgsql. Since I am not planning to use PL/pgSQL, I just ignored that...

Step 2: Initialize the Database
According to the fink package description, this step should not be necessary. But in my case the installation process did not initialize the database, so I had to do it manually.

sudo -u postgres initdb -D /sw/var/postgresql-8.2/data/
into a terminal.

Step 3: Start the dbms
sudo start
into a terminal.

This uses a script provided by fink. You could also start the dbms with the native command (i.e. pg_ctl, just look at the script...)

Step 4: Create a database
This is optional, you can do this also with pgAdmin (see below). But it is a good check, if the previous step worked.

sudo -u postgres createdb testdb
into a terminal.

Step 5: Get pgAdmin and connect
PgAdmin is a client application to access postgres databases. You can get it here.

After starting pgAdmin you have to add the server (File->Add Server...):
Picture 2.png
To begin with connect as the user 'postgres' (which was created during the fink installation process), which has full administration privileges. Leave the password blank.

This should be it...

BTW: Fink installs the PostgreSQL documentation here:

OS X: Removing iDisk from Sidebar

I am using my MacBook for some time now and I don't have a .Mac-subscribtion.

It always bothered me that there is this iDisk-Icon in the Finder-Sidebar even though it is completely meaningless when you don't have a .Mac-subscription. But I never cared enough to invest some time until today.

It turns out that the solution is really straightforward (well it's Apple isn't it?): Just open Finder-preferences:

Picture 1.png

Monday, February 18, 2008

Do your contribution...

Imagine a project where people are changing every two weeks (not figuratively speaking)...
What would you expect of the productivity and quality?

Well, I am on my first week of the mentioned project. On my first day I have already seen a whole patchwork of involved programming languages: Java, C++, Python, awk, bash, SQL ...

Did I mention, that the inherent complexity of the project is quite trivial?

Hmm... I am thinking about doing my contribution in Ruby ;-)

Sunday, February 17, 2008

Next Testing Generation - are you?


Things have changed radically these past years, and the only thing I can see changing in the future is that submitting code without tests will be seen in as bad a light as submitting code that doesn't compile.

-- Cédric Beust, InfoQ

I am eagerly awaiting the arrival of my copy of 'Next Generation Java Testing: TestNG and Advanced Concepts '.

Saturday, February 16, 2008

Job Conclusion

After starting a new job two weeks ago, I try to draw a conclusion of the insights I think I gained during the last year.
The following may sound patronising, but it is not intended that way. It is just an attempt of self-reflection, and I am aware, that I could hardly practice what I preach ...

  • Never do anything without a specification.
  • Defining SMART objectives is most important.
  • Don't be afraid of the 3Cs: Command-Control-Correct! This constant iteration is constructive and imperative to be productive! This has nothing to do with repression or dictatorship. [Actually having a manager that has done some additional military service can be beneficial here ;-)] As a developer it is very important that you know that your work is relevant and somebody cares!
  • Some kind of conceptual modal/ubiquitous language of the business problem is very important. It has to be documented somehow and become common knowledge of all involved team members (including stake holders).
  • Watch out for the danger of retrofitting the conceptual model after an existing implementation ... Tell don't Ask has meaning on all levels...
  • My understanding of production-ready quality has been utterly overhauled.
  • If you are working in a team, Sharpening the Saw and Filling Gopher Holes cannot be a One Man Show.
  • Bringing Testing into a big existing project is very difficult.
  • Producing more code is not necessarily a sign of progress.

  • Technology:
  • Design for testability IS important.
  • My dislike for code-generation has increased.
  • A layered architecture is just a millstone around your neck if it is not intended for decoupling different concerns.
  • Working with bitemporal data increases complexity by an order of magnitude.
  • Do not underestimate data migrations!

  • Personal:
  • I want to sharpen my saw.
  • I want to work smart, not hard. I want to make a difference. I want to be able to identify with what I am delivering.
  • Salary is not the most important aspect of a job. - This is no longer an empty phrase for me.
  • Working in a good team is bliss - you only can really value that if you have seen both ends of the scale.
  • It is very hard to work in an environment, where the majority of people does not share your mindset concerning important work related topics.
  • My trust into the sentence "This should not be a problem." has asymptotically reached zero.
  • The sentence "I fix it when I see it!" from a member of my management triggers the immediate urge to run to the nearest exit.
  • I want to read Death March.
  • Cool, but ...

    Impressing, but I don't think I would really use it ...
    Preview, QuickLook and Spotlight on the other hand are improvements I really appreciate ...

    Friday, February 15, 2008

    I'm certified now

    I have passed the SCJP Test today.

    I am not too proud of this feat. But I had to learn a bit more than I initially expected ... luckily I also learned some useful things on the way.

    My main critique of this test is, that it does not respect the modern programming environment enough. A lot of the questions focus on intricate language or syntax details (every second question is something like "Does this compile?"). I just don't think this knowledge is that important anymore today in the area of modern IDEs (background compiling, realtime analysis, error highlighting ...).
    Don't get me wrong: I don't claim that tools can make understanding the concepts obsolete, but spotting errors on the language level is just not important any more.

    Friday, February 8, 2008

    Staying alive?

    Here is a cool post...

    Sunday, February 3, 2008

    Becoming Agile


    Agile development isn't a thing you do, it's an attitude, it's a set of personal values.

    -- Kent Beck, InfoQ

    Related Posts Plugin for WordPress, Blogger...