Skip to main content

Posts

Added some ads..

I've just added some ads to this blog as well as my homepage . This is more out of curiosity than it is for making money, but maybe it'll be enough to pay for the domain ;) I'll keep them for a few weeks, and then take them away if there are any complaints. Please give me a tweet or a comment if you think they have a detrimental effect on the content.

AgileCoachCamp: Germany

In a few weeks I'm driving down to the AgileCoachCamp: Germany ( #accde11 ). It's taking place in a place called Johannesberg, near Frankfurt am Main, from 17th till 19th of June. I'm not sure what to expect, but I'm sure there'll be a lot of eye openers on how to help agile adoption. My personal pain-point is how to avoid agile saturation , meaning where an organization comes to the point where they have "enough agile", or too many non-movable obstacles are in the way of further change. I'm really looking forward to finally interact in-person with other people on the German agile scene, as well as some from other countries. It's been a while since my last agile gathering/conference (apart from the Bonn XP meetups ), so this will be a blast!

Git-SVN at GearConf 2011

It's that time of the year again! Well, actually last year GearConf took place in October , and this year it's June 9-10th. Well, anyhow. Again I've gathered up some premium octane Git-SVN knowledge , a bit like the stuff I did at the RuhrJUG in Essen , but this time I have to fit it into a slot smaller than one hour. At least I hope to fit in the interaction with Jenkins and GitHub this time, and do a bit less of the git-svn basics. So, if you live around the Ruhr  area, in  NRW , or otherwise nearby, get your GearConf ticket  now!

Agile Game Development: Magicka

Update 2011.05.09:  Arrowhead posted a reply to this post . This post is a tribute to a company which, judging by the looks of it, is kicking ass, agile style. "This sprint is really going down the drain" from the first scene of Magicka in adventure mode. What's this about The company is called Arrowhead Game Studios , and they've made a game called Magicka . Now, I'm not going to write so much about the game itself, but it's awesome. I used to play a lot of computer games growing up, all the way through my studies. Since then, it's been pretty sporadic. Until I tried out Magicka. I've been playing it for over 50 hours, which is pretty good value-for-money, considering it cost 10€ (plus DLC's, which are a point I'll come back to later). How successful is it? In the first 17 days it was for sale, it sold over 200.000 copies . At times it topped the stats for most-selling game on Steam , at one point selling 30.000 copies in 24 hour...

Agile Lean Europe: Some thoughts

Just jotting down some thoughts.. A couple of weeks ago, I drove up to Düsseldorf to attend the Scrumtisch Rhein/Ruhr meeting, because the topic was this new Agile/Lean Europe (ALE) Network . Olaf Lewitz facilitated the discussion ( credits to CodeCentric for the free beverages/food). I first heard about this network in this discussion in the Norwegian agile forum , initiated by  Sergey Dmitriev  and followed up on by Johannes Brodwall . Olaf and Deborah Preuss were both involved in the Agile Coach Camp in Norway earlier this year, and I suspect that they already discussed some of these things there. This makes for a firm connection between the German and Norwegian agile scene, and I hope to be able to support this bridge somehow. Now, why does this European interconnection matter anyway?  I'll give you three reasons why it matters to me personally: 1) It's no fun doing it alone Agile is deeply nested with social drive. While it's perfectly fine to dr...

The Dreaded Service Locator Pattern

Torbjørn Marø recently blogged about Dependency Injection, due to  Mark Seeman visiting the Norwegian .Net User Group in Bergen. This triggered my thinking about the dreaded Service Locator. I have worked with several teams that favored a home-made ServiceLocator class, a static component referencing a set of  services , typically chunks of functionality that are singletons that interact with something external like database, filesystem, or web-service. My beef with the Service Locator is that you can put it in, and use it from anywhere: It can be used to grab services in a controller/action component, inside a service, in a domain object, inside a for-loop, anywhere. This sounds pretty powerful, but ends up bringing in a lot of maintenance problems. Now, in spite of my troublesome experiences with it, I keep finding myself being pretty lousy at explaining the disadvantages of a ServiceLocator to my peers. I therefore hunted through Seeman's blog for some better expl...

Git+SVN at the Java User Group in Essen (ruhrjug)

Update: There's now a Xing signup for the event:  https://www.xing.com/events/living-with-git-and-subversion-parallel-710010 I will be heading up to Essen next month to present Git+SVN at the ruhrjug event . The arrangers ( Infaktum ) are also behind GearConf , where I presented on the same topic last year . The event takes place on 14th of April, and starts at 18:00 in the Glaspavillon Campus Essen: View Larger Map If you want to know the tricks of living with Git and Subversion in parallel , be there! I'll be showing off all the steps, from getting started with git-svn, through the obligatory Git-Subversion mirror, to the final-migration-away-from-SVN. Hopefully there'll be time for showing off stuff I didn't get to at GearConf, as well as some good discussion. Oh, by the way, if you've got any reference cases where you are also using git-svn, I would love to hear about it. I recently noticed that Gnu Cash  are using it, and it would make me happy to ...

The Dream of a Bi-directional Git-SVN mirror

This post is part of  a series on Git and Subversion . To see all the related posts, screencasts and other resources, please  click here .  I just got an email asking me how one can set up a bi-directional Git-SVN mirror. It ended up being quite a long answer, so I'll post it here for the benefit of other Git-SVN readers with the same idea. As you may know, I'm a proponent of my own Git-SVN setup . I remember trying to go down the path of a bi-directional repository, but always ran into problems. Here is how it could work: However nice this would be to have, it can be very hard to achieve in practice: Git-svn requires working in a non-bare repository, so pushing to it is by default refused. You can work around this by doing this in the target sync repo: git config receive.denyCurrentBranch ignore You also have to automatically perform a git reset --hard in the syncing repo after each push (by some git hook?), because the work-dir is c...

A small Subversion guide for Git users

A recurring problem for us Git users is that we tend to forget the good old Subversion tricks. We want to do some patch on some old code in a Subversion repo, and suddenly we've got no idea how to work around. Here's a quick guide: > git pull > svn update > git add new_file svn add new_file > git add changed_file N/A: SVN automatically adds all modifications to the index. If you don't want to commit it, don't change it. > git commit; git push (you always have to do these together): > svn commit > git revert [SHA] > svn merge -c -[R] . > git branch branch_name > svn copy url_to_project/trunk url_to_project/branches/branch_name > git tag tag_name > svn copy url_to_project/trunk url_to_project/tags/tag_name > git checkout branch_name > svn switch url_to_project/branches/branch_name/ > git merge branch  svn merge -r[start]:[end] url_to_project/branches/branch_name . (Note that you have to keep track ...

XP-Meetups

Kent Beck wrote a small chapter about Communities  in his book Extreme Programming Explained: Embrace Change (2nd ed) : Participate in communities, local and global. Look for communities that encourage you to be your best self. If you can't find such a community, start one yourself. If you are wrestling with difficult questions, you are not alone. As a community we can accomplish more than we ever could in isolation. When I lived in Oslo, I was a member of the local XP-meetup group. It was awesome. In the beginning, I was still a CS student, and I felt privileged I could attend these meetings. These experienced people were dropping serious knowledge about how to work and develop software in practice. It was so refreshing compared to the artificial subjects at university, and it just made more sense . At the same time, the speakers were so humble, you could ask them anything, and they would try to identify with you, draw parallells based on experience, tell stories.. Over the...

Sonatype and Hudson/Jenkins: An Analysis

I'm dare say I'm a seasoned Hudson user (admin) and proponent. For over five years I've been introducing different kinds of CI at whichever place I worked at. When Hudson entered my radar, this work became a lot easier. I'm also a heavy Maven user, and Nexus did for Maven repositories what Hudson did for CI. The Plot Over recent weeks, the community around Hudson has been shaken by a fork: The main developers ( Koshuke and crew) have renamed Hudson to Jenkins , while Oracle have kept on developing Hudson in partnership with Sonatype . Here's a simple illustration of what happened: These are my pure external speculations about what has happened recently in the forking process, with regards to Sonatype's involvement in particular. So who is running this show? I noticed that Sonatype (usually personified by Jason) have gotten their fingers pretty deeply into the Hudson infrastructure already: Like  this tweet  noted, it appears they are controlling ...

Google Guava r08 is released

A few days ago, Google Guava r08 was released . "This project contains several of Google's core libraries that we rely on in our Java-based projects: collections, caching, primitives support, concurrency libraries, common annotations, basic string processing, I/O, etc." I had a little look through the API changes to find some neat new details, and put together a couple of JUnit tests that show them by example here . That whole GitHub project is a Guava showcase, so if you can think of some more examples that should be in there, please fork ! Especially the IO, Net,  and Concurrency bits could need some examples. I've also taken my old blogposts about Google Guava and ported them to tfnico.com/presentations/guava . After noting this, the Guava guys honored the effort by linking the page from the Guava homepage , which gave me quite the traffic bump! Luckily, my pages are all hosted on Google servers, so it's their own bandwidth bill ;)

Eclipse Color Themes

I think it's a shame how StackOverflow is jammed with old Q&A about how to do custom color themes for Eclipse. Thanks to  Felix  and his buddy Roger Dudler , there is now a far better way: Eclipse Color Theme plugin  and  www.eclipsecolorthemes.org . (Picture from  http://www.rogerdudler.com/?p=509 )

Certified Scrum Master?

I think the dust has begun to settle around the certification debate . It seems to be that we've ended up at a kind of " Yes, CSM certification is silly, but it's a necessary evil. " attitude. I don't like this. Judging by the membership-ID on my ScrumAlliance profile page, I reckon I was one of the first few thousands to take the certification. I openly blogged about it at the time, I dare say with a hint of skepticism, and since then I've never really flaunted it (well, maybe now I am). I just saw a nice analogy for the CSM, paraphrasing Jon Kern : To filter out potential employees by checking their certification, is like seeking out race-car drivers by checking if they have a driver's license. I don't want to support this unwarranted prestige of being a CSM any more, so I've taken the notion of CSM out of my résumé , and I recommend everyone else to do the same. If I'm hiring, and you flag your CSM title, I'll rank it as brag...

Made a Google Guava page

Just a quick post to announce my new Google Guava page. My Guava blog post has gotten a relatively large amount of traffic, but the list of resources have gone a bit stale. In order to make the resources a bit more "time-agnostic", I've cleaned it up a little, and made it into it's own page: http://www.tfnico.com/presentations/google-guava