Archive for April, 2009

Published by Fabian on 30 Apr 2009

Me blogging @work

I do blog quite often on our company blog, and sometimes feel sad that my regular visitors won’t see that. But I found a solution. Besides the occasional cross-blog spamming here, I have added my last 5 posts from the company blog to the left sidebar.
So if you like my writing and are interested in Agile Software Development or Java Development then you better subscribe to that feed.

Published by Fabian on 21 Apr 2009

Blogging live from JAX

I am currently standing at out booth in the Rheingoldhalle in Mainz, where the JAX 2009 is taking place. Quite an amazing amount of high quality talks, and good talks and networking inbetween the session. codecentric is silver sponsor, we are having three nice sessions for you to attend and are also blogging live from here, and advertising meet the experts.

I already had a great talk from Angelika Langer which caused some worries about concurrency in my mind, and a talk about jBPM which looks really like a BPM solution one can include in an existing Java Architecture. I especially liked that you can JUnit test it.

Tonight we will have dinner at the famous Waldgeist Hofheim, where you can get a 2.5 kg Schnitzel! Hmmm tasty :-)

Update
Mirko just put up a new blog posting on our company blog including a nice picture showing us at our booth. I shamelessly copy it :-)

Published by Fabian on 20 Apr 2009

More Performance for a symfony Site

symfony project development at the moment focuses on finding and eliminating more performance issues, as this was high on the whish list. The symfony blog has two postings about recent enhancements.

While being at it i noticed a common 5ms and highly disc bound delay that is included in every call.

It is sfProjectConfiguration#getAllPluginPaths() which returns an array of all plugins and their respective location on the file system. Its basically a sfFinder call that scans a few directories. But that costs. And it is done on every call. But usually the plugins do not change while a site is live, do they?

Here my inofficial enhancement of this. You can easily use this. Just put it into your config/ProjectConfiguration.class.php and you are done:

  public function getAllPluginPaths(){
    $cacheFile = sfConfig::get('sf_cache_dir').'/all_plugin_paths.cache';
    if (is_readable($cacheFile))
    {
      return unserialize(file_get_contents($cacheFile));
    }
 
    $allPluginpaths = parent::getAllPluginPaths();
    file_put_contents($cacheFile, serialize($allPluginpaths));
    return $allPluginpaths;
  }

Published by Fabian on 17 Apr 2009

Keep it simple!

I had troubles choosing the title for this post. Isn’t “Keep it simple” common sense?

No its not. I had once to deal with a customer that had some good business analysts working with me. However they had troubles understanding software development. Its not that they were not right but one of them made a quote which we talk at work a lot about it:

A simple solution is never a good solution

The rationale is the following: Because the business problem is so complex, the solution must be complex to cover all the nuances of the problem.

It often led to spaghetti code when developing with them. It was hard to convince them that a simple well thought smart solution would cover much better most of the use cases and is extendable to cover everything that is needed.
basically I said the main problem was that we were unable to find a simplified description of the business issue to tackle.

The reason why I post this is that I read today an interview with Paul Buchheit on crazyengineers.com. Paul created Google offerings like Google Mail and Adsense, something we for sure consider as big stuff with many complex use cases. However he also says:

CE: What are your tips to software engineers on building highly scalable software?

Mr. Buchheit:  Keep it simple. A lot of times people think that hard problems demand complex solutions, but we’ve found that the opposite is often the case, because complex things quickly become unmanageable and incomprehensible. If the system is simple, then it’s generally easier to understand and easier to scale.

Perhaps it helps to convince people that simple is better when we are able to tell success stories of products that are developed with the KISS paradigm.

Oh wait, perhaps the problem isn’t really KISS, but that “simple” implies for some people that the solution is not thought through well enough?

In fact it often takes a lot of time to develop a simple solution. Simple in terms of lines of code, code complexity, configuration, parameters etc. But not simple in terms of thought spend on developing the solution.

Perhaps this blog title should be called “Keep it smart!”

What do you think?

Published by Fabian on 09 Apr 2009

It is headhunting time

Economical crisis? I cannot see it. At least once a day, I get called, mailed or spammed by headhunters, HR consultants or recruiters.

Shall I consider myself as rare resource?

Shall I ask my boss for a pay rise? ;-) [I know that you are reading, Andreas]

Well I am not interested. codecentric is a great place to work at. Everybody here is skilled and friendly, and our management is very visionary. “Meet the Experts” is a very good example of that. A great idea and the drive to make it happen. Perhaps you want to meet us and the experts on 26th of June?
Because this event is also intended for our customers, which are small to medium sized companies around here in Germany, the website and most of the event will be in German.