GOTO Aarhus 2012 – Tuesday

October 2nd, 2012

The morning keynote by Scott Hanselman was about the true power of JavaScript. He argued that JavaScript in the browser is a full operating system running as a virtual machine within the browser – so we should treat it so. Don’t use Java Applets, Flash, Flex or Silverlight as it just another (slow) abstraction upon an already powerfull engine – the browser. It was a great talk leading up to the pre-release of TypeScript.

I followed a couple of sessions the continuous delivery by Sam Newman, Michael T. Nygard (author of Release It) and Jez Humble (author of Continuous Delivery).
Continuous Integration is a prerequisite of Continuous Delivery, but many still don’t use apply Continuous Integration to their solution, with daily incremental check-ins, automated build and unit tests.

To simplify Continuous Delivery, everything must be automated. To ease the task of automation, things must be simplified. To simplify, start by decomposing the system into manageable pieces, so each can be deployed separately. How?
Decompose the system into disconnected services makes it easier to deploy a subset of the system. This limits the impact of a deployment. It even makes it possible to mitigate the risk further by making small incremental changes by only deploying one subsystem at the time.

These services have to be structured as application silos and share nothing, not even the database schema.

By automating and decomposing your system into disconnected application silo services you too can do Continuous Delivery.
After the conference the GOTO Aarhus guys had joint up with the local community and user groups to hos open sessions. I attended the ANUG (Aarhus .NET User Group) session with Anders Hejlsberg. He presented the brand new TypeScript – a superset of JavaScript that compiles into plain JavaScript and runs in any browser (similar concept as CoffeeScript). It has great tooling support in Visual Studio with intelliSense and static verification.

I’m looking forward to the last day of the conference tomorrow.

GOTO Aarhus 2012 – Monday

October 1st, 2012

The day started with a keynote from @Falkvinge from the Pirate Party. I wasn’t expecting much from this keynote, but I was pleasantly surprised. First of all, I assumed that I knew quite a bit about the Pirate Party – I was wrong! Facts: the Pirate Party is present in 150 countries and has 2 European Union parliament members. These guys are serious and not just a protest party wanting to legalize sharing copyrighted material. They are fighting the problems with limiting access to knowledge and ideas. They are emphasizing that exclusive right like patents, copyright and subsidizing are counterproductive. That’s so true! @Falkvinge disrupted my brain – that’s great, because that is why I’m here!

Next up was great presentation of graph databases by Jim Webber – fast speaking provocative British architect from Neo4J. He (re)spiked my interest in ‘other’ databases and stressed that each type of database like relational, object, key-value stores, document,  graph etc. databases each fit their problem domain. So you shouldn’t just pick RavenDB because it is the new hot think in .Net sphere (or because Ayende aka Oren Eini says so). I will definitely take a look Net4J with the .Net client library Neo4jClient . Another great point from Jim Webber was; ACID does scale (though many claims otherwise), but he stressed it was distributed ACID with 2PC that doesn’t scale.

From then on I attended a couple of unfortunate sessions (not worth mentioning). Now it is time for the conference party where the beer is sponsored by Atlassian.

GOTO Aarhus 2012 Schedule

September 27th, 2012

Soon I’ll be joining a bunch of great people from the Danish developer community and abroad at this year GOTO Conference in Aarhus next week.

I’ve been looking at the conference schedule trying to create my schedule… the line-up of international fame speakers are impressive, but I’ll go for the odd sessions to expand my horizon. During breaks I’ll discuss and share ideas with my fellow attendees – I might even skip sessions for interesting discussions in the hallways.

Here is my tentative schedule:

See you at GOTO Aarhus 2012?

August 28th, 2012

Are you going to GOTO Aarhus 2012 conference October 1-3 in Aarhus, Denmark?

The conference is covers diverse software development topics like big data, augmented data, agile perspectives, JavaScript, UX, continuous delivery, mobile, cloud, languages, NoSQL, scale … so this is not a vendor specific conference where the newest technology is presented.

I prefer conferences where I get inspired… a conference where all the participants; speakers and fellow participants plant seeds in my head for new ideas and alternative approaches to solving problems.

That’s why I’m going to the GOTO Aarhus conference.

Blog post from 10000 meters in the Air

June 21st, 2012

While writing and posting this post I’m currently flying from Copenhagen, Denmark to London, United Kingdom over the North Sea with Norwegian airlines using the free online Wi-Fi connection onboard. The Internet connection is slow, but that’s expected as the traffic is routed through satellites and the fact that I share the connection with the 250 or so other passengers; all trying to access Facebook :-)

A ping request to Google.com show that a roundtrip takes around 800 ms with some fluctuations into the 1200 ms

Pinging google.com [173.194.70.113] with 32 bytes of data:
Reply from 173.194.70.113: bytes=32 time=681ms TTL=43
Reply from 173.194.70.113: bytes=32 time=869ms TTL=43
Reply from 173.194.70.113: bytes=32 time=705ms TTL=43
Reply from 173.194.70.113: bytes=32 time=750ms TTL=43

An Internet connection speed test reveals my upload was around 400 Kbit/s download and 15 Kbit/s upload.

A trace route didn’t disclose much information; therefore not included in this blog post.

The Internet connection is very unreliable making it impossible to work, but IM and light sites are browsable. Internet on a flight is a welcome initiative making it more pleasant to fly.

I just hope the competitors will do the same and the quality of the connection will improve.

Community Day Copenhagen 2012 – Solr Presentation

May 11th, 2012

I enjoyed the Community Day immensely and I am looking forward to next year.

Download the presentation together with the C# client, jQuery web client and Solr configuration files.

Download Solr separately from Apache Foundation.

Outsourcing requires Talent

February 29th, 2012

I’ll be discussing specifically in the context of knowledge workers who “think for a living” such as software developers, lawyers, business analysts and the likes. I will use software developers as an example, but it applies to other knowledge workers too.

You might have success outsourcing if you find talent, but you will fail without!

Businesses neglect the importance of finding skilled and talented software developers when outsourcing, which will almost certainly lead to problems or failure in the long run.

It doesn’t matter if it is a project or IT services being outsourced – the people in the other end have to have skills and preferably talent.

Obtaining a degree or completing a certification does not proof that a person has skills. Just as managers never will employ a developer based on resume only, neither should outsourced developers. The business should setup quality parameters in the outsourcing contract or interview the developers themselves – but that is rarely feasible.

There are other essential parameters that should not be neglected like creativity, motivation and talent nurturing. All the regular personal management things needed, also applies for outsourcing.

Offshoring to low-cost countries just complicates things even further… as you have to consider the language barrier, culture differences and time zones also.

When to Outsource?

February 28th, 2012

I’ll be discussing specifically in the context of knowledge workers who “think for a living” such as software developers, lawyers, business analysts and the likes. I will use software developers as an example, but it applies to other knowledge workers too.

Outsourcing software development can be a good thing for the business, especially if the area is not within the business’s main area of expertise or requiring too few developers to gather enough brain trust to keep the level of expertise.

If software development is not within the business area of expertise then the area will often be neglected leading to low morale and lack of commitment. It is not seen as an important part of the business, but necessary evil. The developers will not have the best tools possible or access to new knowledge like inspiration at conferences. This is a downwards spiral of developer skills and will lead to failure eventually.

If the business only has a small number of developers with similar skillset, then the ability to share knowledge is impaired. Developers that have no one or less than a handful of coworkers to share knowledge with, will almost never be very skilled. Knowledge workers require peers to stay knowledgeable.

If both scenarios above are combined, then the problems become very evident and will never lead to success.

In either case outsourcing makes sense and will in most cases provide business value.

Offshoring

Outsourcing to low-cost countries aka offshoring complicates things even further and should not be considered before thorough scrutiny of your business.  Does the business employ the required competency, are the procedures in place and is the organization mature enough?
Due to the magnitude required by preliminary analysis, offshoring only makes economic sense for larger scale operations and is not viable for smaller businesses.

Memory Management in .Net

December 23rd, 2011

I’ve written about Garbage Collection in the .Net Framework in version 2.0 and 3.0 a couple of years ago, but now Red Gate has created a simple and easy to understand funny comic “Memory Management in .Net”

Memory Management in .Net comic

Download the full one-page comic.

The .Net Framework 4.0 provides the new default behavior of background garbage collection.

An unfortunate travel story

November 21st, 2011

The last two and a half weeks have been interesting for me – Interesting in the “what doesn’t kill you makes you stronger” kind of way. Here is my challenging story…

I was on a leisure trip to Rome, Italy to see the sights. A beautiful city with many cites like the Vatican, the Colosseum and the Spanish Steps. I was supposed to flight directly to Manila, Philippines from Rome to assist a customer. The customer was finalizing my travel plans while I was in Rome. Unfortunately I lost my mobile phone in Rome which made it rather difficult to coordinate the travel plans, but after 3 or 4 different travel itineraries the flight was booked from Rome to Italy via Seoul, Korea.

I arrived in Manila through Seoul only to find out the hotel was not confirmed. To make things worse, they were fully booked and so were all the other hotels in the Makati area in Metro Manila. After an hours searching I managed to find a hotel room for the night, but I had to find another hotel for the next day.

Apparently available rooms where in short supply in Makati area as I had to change hotel the next five days. I could not book a consecutive reservation at the same hotel. I slept in rooms ranging from extravagant 150 m2 suites to 15 m2 crummy hotel room with ants in my bed. It was tiring, but the weekend retreat to lovely Philippine island of Bohol the following weekend made me see everything in a brighter light.

Friday I had to catch the flight to Bohol, so I took a taxi to the airport. Unfortunately the taxi was barely able to carry its own weight up the Skyway ramp and half way it gave up and broke down. I was now stuck in the middle of Manila with no other available taxi in sight and I was now late and might not make the flight to the lovely island of Bohol. I tried to persuade a tricycle to drive me to the airport, but they were not allowed to enter the airport area – then I tried to hire a Jeepney, but the driver was overly greedy and my attempt to barging failed. Luckily a taxi appeared from nowhere and I was on my way to the airport.

I arrived 25 minutes after the check-in was closed and 5 minutes before departure. I was immediately redirected to the supervisor, who luckily let me check-in – I rushed through the security check and directly onto the waiting flight.

It was a great weekend retreat to Bohol, where I say the Tarsier, Chocolate Hills and snorkeled at the coral reef where I saw clown fish and a turtle.

Back in Manila and an additional week work it was Friday and time to travel back home to Copenhagen, Denmark. Due to the confusion of the travel itineraries I apparently was supposed to travel home the day before, Thursday and not Friday. I was too late, as it was already Friday. So I had to find another flight from Manila to Copenhagen the same day… With some help from the very helpful Filipino Lee, I managed to get a flight Friday night with Thai Airways through Bangkok, Thailand.

It was a long trip home as Thai Airways does not have inflight entertainment systems in any of their aircrafts – I thought it was standard in this day and age.

I’m now home – still without a mobile phone. Fortunately I can already look back at this unfortunate trip a laugh. I enjoyed the trip both to Rome and the Philippines even though there where so many things working against me.