Monday, October 29, 2007

Reading List

I have to do military service for the next 3 weeks. This is going to be senseless and boring, boring, boring ... My plan to keep my mental sanity is to read as much as possible. This is the list of books I am going to tackle:
07D5D147-F220-4F3D-8F6B-4EB2399AB59D.jpg Kiss me Judas
by Will Christopher Baer
6E2A08C7-A570-4B50-A837-6BB67D976DA3.jpg Clown Girl
by Monica Drake
About a Boy
by Nick Hornby
0B0929A6-0678-4CE1-B7A5-9D6864B1BA64.jpg Java EE 5 Architekturen
by Adam Bien
I am curious how far I will get ...

Sunday, October 28, 2007

Listen to the developers

Astro_svhr.jpg In this presentation Dan North (pioneer of BDD) makes an interesting observation:
How do you know when Domain Driven Design succeeded?

When you listen to a conversation between two developers, and you can't tell if they are discussing the code or the business problem.

A year ago I would not have thought this as a particular accurate observation. At this time I was working in a project, where we had quite a good Ubiquitous Language.
But now I have experience in working in a project, where the developers (including me) often cannot connect their current implementation-steps to the underlying business-reasons. In this project the "implementation-language" is very far away from any business-language. So the above statement seems to bring the value and goal of Domain Driven Design very much to the point.

Is Programming healthy?

Funny picture. Seen in this presentation.
008 tan_lines.png

Monday, October 15, 2007

Introducing ADD

After TDD, BDD and DDD I am promoting a new style of development: Assumption Driven Development (ADD)

Here is an example how I practice this style in my current project:


BTW: The code was already there, I only added the comments ...


And to be honest, ADD is only the first stage of my plan to revolutionize software development from the ground up. My real goal is to bring awe, humility and worship back into our daily developer lives. The ultimate stage in my ingenious master-plan is PDD: Prayer Driven Development!

Tuesday, October 9, 2007

Language Wars


This is funny!

Don't miss the comments...

Code Generation vs. Code Synthesis

In one of the latest DNR-Interviews Venkat Subramanium makes an interesting statement:

I think code-generation is so 20th century! What you want is code-synthesis.

With code-synthesis a method is actually generated in memory on the fly, it is never created on the disk for you to mess with.

With code generation, the minute you generate the code, its like an itch in the back. You want to modify it, you want to scratch it a little bit and then it turns into a sore after a while.

-Venkat Subramanium, DNR 277 [36min 30s]


I think the distinction between code-generation and code-synthesis is very fluent. The C# compiler is basically just a code-generator (it generates IL-code). ASP.Net is also a code generator that generates IL from ASPX-pages (and code-behind).

image In the case of ASP.Net I personally would also talk about code-synthesis, because the generation process is almost completely hidden from the developer and also happens (almost) at run-time and not at compile-time.

This is in contrast to classical code-generation that is promoted by MDA or tools like CodeSmith and MyGeneration ...

Traditional static languages lend themselves to code-generation. Code-synthesis on the fly is a rather complicated endeavor (who does really understand how ASP.Net works under the hood?).

Modern dynamic languages like Ruby or Groovy are much better qualified for code-synthesis. Since they are interpreted, there is a much more powerful runtime to begin with. Furthermore they offer powerful metaprogramming capabilities. This makes dynamic runtime-behavior much more feasible, which in turn is the base for creating DSLs or code-synthesis.

Just to exemplify the consequences of the differences between code-generation and code-synthesis:

Look at the following ActiveRecord model:

 class Firm < ActiveRecord::Base
   has_many   :clients
   has_one    :account
   belongs_to :conglomorate

And now think about all the lines code that get generated, if you want to realize the same model with a strongly typed DataSet...

Monday, October 8, 2007

Motivation and Productivity

imageAccording to this story in 20min, 87% of all employees feel that they are not performing at their best in their current job.

Currently I am one of them!

I think I am stating the obvious, when I say that performance is highly coupled to motivation.

Comparing my current to my last job, I can totally confirm the listed points that are key-enablers for motivation:

  • Acknowledgment
  • Transparent information policy
  • Superiors that live their engagement and can carry it over to their employees (Peter, you are the Archetype in my book [being bold, since you refuse to read blogs] )

In my opinion another point is as important if not more important:

  • The personal impression to be able to make a difference

Salary is not a enabler for motivation, even though it can be a preventer.

Since I am currently looking for a new job, my big challenge is to find a way to ensure the above points. Because I remember that it feels good to perform at my best!

Sunday, October 7, 2007

Oops, I did it again!

image I just ordered a MacBook Pro!

After using a black MacBook for several months now, I decided to try and switch completely (bye bye ThinkPad).

Probably this is just a desperate attempt to be as cool as the real gang members (1, 2, 3, 4 ...)

So why do I need a MacBook Pro when I already have a MacBook? The Answer is Screen! For my work-laptop I do need more screen real estate than the 13'' of the MacBook offers. Also the non-glossy and LED backlit (its bright, real bright...) is a plus.

Does it mean I abandon Windows? No, I will run Windows in a Virtual Machine (either VMware Fusion or Parallels). I played around with Visual Studio 2008 in Parallels, and I did not experience any problems. There are some benchmarks here, that confirm this impression.

Saturday, October 6, 2007

Switching Blogging to Mac?

B9DBCF7C-16C2-4397-AC37-C9CDB5DE22AB.jpg This is my first post with Mars Edit from my MacBook.

I am not that exited about the mac-options I have found for blogging...
I have looked at Mars Edit, at ecto and TextMate but none of them has convinced me ... None of them is near as comfortable as Windows Live Writer (which is free by the way!)

Wednesday, October 3, 2007

Great ORM Quote


From the SQLAlchemy Home Page:

SQL databases behave less and less like object collections the more size and performance start to matter; object collections behave less and less like tables and rows the more abstraction starts to matter.

Related Posts Plugin for WordPress, Blogger...