Kiss me Judas by Will Christopher Baer |
|
Clown Girl by Monica Drake |
|
About a Boy by Nick Hornby |
|
Java EE 5 Architekturen by Adam Bien |
Monday, October 29, 2007
Reading List
Sunday, October 28, 2007
Listen to the developers
In this presentation Dan North (pioneer of BDD) makes an interesting observation:
How do you know when Domain Driven Design succeeded? |
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.
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
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).
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 end
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
According 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!
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?
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:
|