/Images/MainImage/Marcus Hammarberg.jpg finns inte.

Inlägg September 2009

2009-09-28 13:47

Add coolness to your presentations

Yeah – I know that I already has written about an online PowerPoint, but this tool actually replaces the need for that and PowerPoint altogether.

I often found myself hacking away on a presentation just to find that I is sooo boring at the end. A lot of slides with a lot of bullet points on. I know that you can make it nicer and cooler in PowerPoint but I don’t know how.

Here is the tool that helps with that – Prezi. It’s more like making presentable mind maps but it works really great. Even I can make things that looks … well, not bad any way.

It could also be one of the coolest GUI’s I ever worked with.

Here is my first try, summing up some stuff that David Andersson wrote on the flip chart during the Kanban class last week.


Postad av Marcus Hammarberg

Kommentarer (0)   Kategorier:  Tools



2009-09-28 08:45

Kanban – a great agile tool

During the last week I took a course in Kanban (Jedi level mind you well) a Crisp in Stockholm. Giving the course was David Andersson, more or less the father of Kanban for software business as I understand.

If you don’t know anything about Kanban (as I didn’t) then this article by Henrik Kniberg is a great introduction. Also keep your eyes open on Info-Q for a complete book on the subject with some great case studies.

I think that the course was really good and gave me some deeper understanding in Lean-thinking. There are some simple but powerful tools in there; visualization (put it up on the wall!), give room for the value-adding things in your process and minimize waste, root-cause analysis etc.

Kanban itself is not really that hard to grasp (thank God!) but it’s like any game; the rules are simple but mastering it takes a lifetime.

I also felt a need to pick up the Lean thinking that is underlying the thoughts of both Scrum and Kanban.

Also I am not that worried if it’s called Scrum, Kanban, XP or Lean anymore. It’s just more tools in my agile toolbox. I’ll use them when needed. The trick is to know when…. That is being smart.

I am sure that I will get back to Kanban several times in here.


Postad av Marcus Hammarberg

Kommentarer (0)   Kategorier:  Agile    Life of a consultant



2009-09-22 21:10

Synchronization for consultants – how I got it to work

OK – this has been quite a journey and I am not completely satisfied with the solution yet – but I works. During the journey I have also deleted all my contacts and calendar items on my phone about five times… Brrr – equally scary each time.

The problem is as follows; as a consultant I am working for customers that have their own Exchange Server (or similar). When I start there I am given an account for example marcus.hammarberg@anycustomer.se. So my coworkers at AnyCustomer will start sending me emails and making appointments in my AnyCustomer-calendar.

Also I work for Avega – that of course supplies me with an email address and accompanying calendar.

Finally I have a private Gmail account for private stuff.

So I have three synchronization problems; mail, contacts and calendar items.  Here is how I am synching them right now. I hope that a better solution will present itself later.

Contacts

I have all my contacts in Google Contact. Then I synchronize them with Mac Address Book and with my phone using Google Mobile Sync

Mail

The excellent Apple Mail can handle several inboxes, from several Exchange servers, if you use IMAP Exchange. I do that and get all my mail into one tool. Since the top level inbox in Apple Mail shows all inboxes I works like a charm.

Calendar

This is where it gets done to business, because you need to synchronize calendar items in both directions. So I first decided where my “master” will be; Google Calendar is “in the cloud” and hence is a very good candidate.

I also found a tool that synchronize (watch closely now) Outlook to Google Calendar. So I configure my Outlook for each customer (and Avega) and then install the synchronization tool and of we go.

Yeah that means that I still need an Outlook for each exchange account (Avega and AnyCustomer in my example) in order to get the synchronization to work. In reality that is not a biggie since my customers supplies me with Outlook. But it would have been much nicer with a Exchange to Google sync…

Mobile

OK – the final step is to synchronize the mobile (a HTC Touch Dual) with the Google Stuff… This is described here but seems to have some things left before it’s working like a charm…

Might not go mobile yet…

Epilogue

If Avega or AnyCustomer decides to upgrade to Exchange 2007, then Snow Leopard have built in support to synchronize email, calendar and contacts. Which will make me go through this again and have my Mac Book Pro as master…


Postad av Marcus Hammarberg

Kommentarer (0)   Kategorier:  Tools    Life of a consultant



2009-09-21 14:37

Visit of Ivar Jacobson

Last Thursday the day had finally arrived. From a not very well planned post after an article it has been quite a journey to finally get a visit from one of the IT-gigants – Ivar Jacobsson.

I have made a short recap of what he said here (in Swedish), but the main thing for me was just to see and hear a man with that amount of experience, with all the enthusiasm still intact.

Also I like the ideas on the computer industry being a fashion industry that chases trend after trend. Ivar has started to look away from the different processes and instead focus on the practices that is used and can be combined into great support for the organization.

I really laughed hard at one of his statements: “We really has gone crazy with the documentation” (my translation). This said from the father of RUP that so many people has misused into documentation-mecca…

It was really a honor to meet Ivar in real life and hear him talking about things that he obvious love to talk about.


Postad av Marcus Hammarberg

Kommentarer (0)   Kategorier:  Agile    Life of a consultant



2009-09-17 10:22

Reference work #3 – TDD by example

I have noticed that I’ve been reading some reference literature in the IT-department lately. I don’t know why but it’s a great way to get to know some of the giants that frequently is mentioned in current hot developer topics.

So after Patterns of Enterprise Application Architecture and Clean Code the time had come to Test-driven development: by example (my good –Google Books is almost scary).

This is was by far the funniest IT-book I ever read. I burst out laughing from time to other and found myself giggling through the whole thing. For example read this paragraph about the time when Kent Beck was young.

The book itself is centered around two example that take you through a variety of disciplines in TDD. And then mr Beck talks about patterns in TDD; design patterns, testing patterns and refactoring pattern.

Overall I felt that the book was more about the mindset that you should have towards and with TDD, than to “teach” the steps. Although the steps were thought along the way.

I almost read the whole thing from start to finnish in on go. Thank you mr Beck for a great experience and a great book.

Oh yeah – now I have Domain-driven design: tackling complexity in the heart of software on the table next to my bed. I am longing to read that one to. Reference work #4…


Postad av Marcus Hammarberg

Kommentarer (0)   Kategorier:  Agile    TDD    Life of a consultant



2009-09-14 14:07

Pair programming benefits and arguments

As I wrote earlier I attended my first ever Alt.Net un-conference this weekend. It was very rewarding and great to meet fellow developers under such informal circumstances. The open spaces was the most rewarding part I think.

One of the open spaces I took part in were about Pair Programming. It soon evolved to a session about how to convince developers / management and other that it’s a good idea.

Here is a short recap of some of the good thoughts that emerged from that session.

Good ideas

  • Switch the keyboard often. I.e. one developer writes the test and one the implementation or use some kind of a pomodoro clock for ten mintues.
  • Switch partners often – once a day for example

Argument for the benefits of Pair Programming

  • It’s fun! No more agrument should really be needed than this. You need fun at work or else you should work somewhere else.
  • This is a list of benefits here and then some studies that shows an increase in quality etc.
  • It may be slower to the first checking but faster to production
  • A higher quality to immediate quality checking by the partner
  • More people is familiar around the code-base
  • Higher degree of concentration and fewer interruptions, both internal and external.
  • Here is a paper that states that you do loose tempo (15 % in their studies) but you gain in quality

Yeah – that pretty much sums up what we talked about. And finally, if they still are uncertain, try it for a sprint and see. And change what isn’t working.


Postad av Marcus Hammarberg

Kommentarer (0)   Kategorier:  Agile    Life of a consultant



2009-09-09 09:16

AutoMapping with FluentNHibernate

I ran across this post by Ayende and it pretty much sums up where I want to reach with my persistence ignorance efforts:

“After that, you are done. Just create an entity in the proper place, hit the /database/create and have a lot of fun.”

I of course like the fun-part of the quote the most. :) But seriously – that what I want to reach – to configure my conventions. And then simply code the model as I want it and let the framework (NHibernate in this case) figure out how to store it.

Well, as it seems, the Fluent NHibernate framework has been updated since the Ayende post. So I’ve read, and read, and read and discovered some shortcuts. By the way – here is an article on how to make the transition from the “old” convention-style into the new.

I have put together an updated sample for what Ayende did in that post above. I also added a feature to be able to automatically set cascades for OneToMany- and ManyToMany-relationships.

Here you’ll find the most important parts of the code.

[UPDATED]
Here is the complete sample.

 

Did I mention that I LOVE Fluent NHibernate? Well I do!


Postad av Marcus Hammarberg

Kommentarer (0)   Kategorier:  .NET    DDD    NHibernate



2009-09-08 15:35

Pastie – your online clipboard

Here is a great tool for sharing code without having to send mail or chat-messages – pastie.org

Just go to the site, paste your code, optionally chose a language and you’ll get a URL to the code.


Postad av Marcus Hammarberg

Kommentarer (0)   Kategorier:  Tools    Life of a consultant



2009-09-08 15:33

Fluent NHibnerate CheckReference throws Expected ‘X’ but got ‘XProxy’

I have been playing around quite a lot with Fluent NHibernate lately and ran into this problem a couple of times.

What happens is that when you set up a mapping test with PersistenceSpecification<T> that tests a reference (with CheckReference for example), an exception is throw like this:

System.ApplicationException: Expected ‘Marcusoft.Product' but
got 'ProductProxy…' for Property 'Product'

This has to do with that NHibernate creates a proxy-class and doing Equality-test on that class. I have picked up a base class that “fix” this problem from the Hibernating Rhinos (my god! what a name…)

You can read about it here or read my code here.


Postad av Marcus Hammarberg

Kommentarer (0)   Kategorier:  .NET    NHibernate



2009-09-04 09:42

Dos-script to delete all Visual Studio Intermediate files

I have a USB-stick which acts as my backup. As I program a lot compilation and unit testing produces a lot of trash (.pdb, Test Results, obj-files etc). I don’t want or need a backup of those.

Today I found a short script that removes those file. Since I have folders named “bin” I want to keep I tweaked it a bit into this:

FOR /F "tokens=*" %%G IN ('DIR /B /AD /S Debug') DO RMDIR /S /Q "%%G"
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S _Resharper*') DO RMDIR /S /Q "%%G"
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S TestResults') DO RMDIR /S /Q "%%G"
FOR /F "tokens=*" %%G IN ('dir /b /A /S *.vsmdi') DO RMDIR /S /Q "%%G"

I don’t know if you are like me and don’t know the first things of DOS. Well this script deletes the following:

  • All Debug-folders (both obj/Debug and bin/Debug)
  • All folders that Resharper generates for you
  • All TestResults folder (they can be massive!!)
  • All the crazy vsmdi-files that hold testlist for you


Postad av Marcus Hammarberg

Kommentarer (1)   Kategorier:  Tools    Life of a consultant



2009-09-03 15:14

Test NHibnernate mappings with Fluent NHibnernate

After a couple of days in the Fluent-world I am taking to it as a fish to water.

One of the features that I am tried out and really think will be helpful is the ability to test your mappings. Especially nice is that you in your tests can switch to a in-memory database (with SQLite) so that your test run faster, and without having to setup a database.

I found a good introduction to NHibernate and Fluent NHibernate by the Hibernating Rhino Gabriel Schenker that also introduces mapping testing. Read it here (part 1, 2 and 3).

Love this quote by the way: “if you continue to implement your own data access code you are stealing (money) from your customer


Postad av Marcus Hammarberg

Kommentarer (0)   Kategorier:  Tools    .NET    NHibernate

  RSS Feed

Marcus Hammarberg

I am a consultant with Avega working with Microsoft, .NET, system design and agile system development. When i am not working most of my time is taken up by the Salvation Army and playing my instrument, the euphonium. I am married to Elin since july 2006 and we are living in the middle of Stockholm.. In january 2008 our son Albert was born and have taken a prominent place in our hearts and lives.


Kontakt