# Wednesday, 24 October 2007

At Vertica it has been a tradition to, approximately once a year, go on a company outing. This trip is used as team building, but also to discuss issues related to our work. We talk about the past year as well as the directions for the coming year. Though the CEO do go through the past years financial results, results is not limited to finances.

We also take the opportunity to catch up on all the things that has happened the past year. A company is (or at least should be) going through a constant evolution. During your everyday work there might be a tendency to forget some of all the achievements being attained. Though everyone does their best to remember to appreciate ones colleagues, when they have outdone themselves once again, an extra opportunity to look at each other and say “Damn, we are good!” is always welcome.

This year we also had presentations from sales as well as a Project Manager. As a consultant it is always interesting to hear what is going on in the sales department. Sales people and consultants can have a strained relationship, but a lot of it also has to do with being prejudged. As is always the case with prejudices, conversation and information are the best way to overcome them. Changes are that you might even learn something from it.

As I believe is the case for pretty much all other (IT) companies, we are also continuously working on improving our process model at Vertica. Therefore we also had a Project Manager do a presentation on the latest development with this work.

Obviously we also had time for some more social related activities such as an Edinburgh city tour, a ghost walk, and a 4x4 Jeep safari in the highlands. We even went to a typical Scottish night out with dancers, back pipe players, and of course the mandatory haggis. Interestingly enough, apparently it is only tourists that do the typical Scottish night out. At least all the Scottish people were somewhere else. Nonetheless we had a good time :o)

The whole trip was thoroughly documented by camera, and if interested you can see some of the photos in the Scotland 2007 photo gallery.

Wednesday, 24 October 2007 16:15:39 (GMT Daylight Time, UTC+01:00)  #    Disclaimer  |   |  Trackback
# Thursday, 18 October 2007

A few of weeks ago I got back from my summer vacation. For the first time ever I have been in South America - and it was certainly not the last time. With backpacks my girlfriend and I travelled around Ecuador for three weeks.

The diversity of the country is simply amazing, and that goes for pretty much everything: people, culture, climate, and nature. Truely a fantastic place. And we didn’t even do the Galapagos Islands. Not because we didn’t want to, but because it would have added another week to the trip as well as set us back another couple of grand per person. At some point you have to stop – and it’s also a great reason to come back :o)

The main stops during the trip were Quito, Napo Wildlife Center in the Amazon jungle, Rio Bamba, Baños, Cuenca, and Montañita. From Rio Bamba we did the famous Devils Nose train ride. Unfortunately due to an accident a few months earlier, there was no riding on the roof as is normally the standard practice. None the less it was a spectacular ride down the Andes.

Traveling with two digital cameras and a girlfriend very fond of photography, we ended up with 500+ photos. Digital cameras sure is a great thing, but it certainly also generates some hours in front of the computer sorting everything when you get back. It’s a nice way to relive the holiday though.

So far all I have managed is to have a small Ecuador photo gallery uploaded that you can check out if interested.


Thursday, 18 October 2007 22:04:14 (GMT Daylight Time, UTC+01:00)  #    Disclaimer  |   |  Trackback
# Wednesday, 10 October 2007

Highly recommended by two of my favorite bloggers, Joel Spolsky and Erik Sink it was with a great deal of expectation, I started out reading this book. The book is subtitled “Over 20 Years of High-Tech Marketing Disasters”, and what can be more entertaining than reading about other people’s mistakes?

Not much, I would soon discover! In an extremely funny and lively style, the author Merrill R. Chapman, takes the reader through twelve chapters, each introduced by a nice cartoon drawing and describing a not so successful part of our proud industry’s history.

At the same time as I was rolling my eyes because of the mistakes made by managers of some of the biggest software companies in the world, I also found myself laughing out loud because of the hilariously funny descriptions of the obvious stupidity. Chapman having worked or consulted for several of the companies mentioned, enabling him spice everything up with personal anecdotes of both situations and people, just adds to the entertainment.

Several of the stories are from about the time, when I was first entering the industry. I remember many of the companies mentioned and also using their products. Companies and products that either completely or almost completely have disappeared from the public eye today.

Today the story very often is that the evil company from Redmond has used its monopoly to crush everyone else. But reading this book makes it clear how a lot of the companies went through a huge effort in order to practically obliterate themselves, and more or less serving the monopoly to Microsoft.

Why is it that today Apple has to make its living from selling iPods and not computers? And where exactly did Borland, Netscape, Novell, and WordPerfect go? Once shining stars of the software industry? These are just some of the companies that qualified for the book about stupidity. And don’t worry – obviously Microsoft also made it.

Being a marketing specialist Chapman does not just point fingers and make fun. Two further chapters titled “On Avoiding Stupidity” and “Stupid Analysis” give insight on both the main causes of failure in the software industry, as well as how the disasters in the first twelve chapters could have been avoided. Two interesting chapters, offering both detailed and easy understandable analysis, which I am sure a lot of (former) CEOs would have liked to read.

Though the title of this book may indicate that it is for the people in marketing and sales, the target group is far broader than that. It is a good read for everyone interested in the computer industry – and especially the history. As always the history is a very good way to explain why things are as they are today.

If you are interested the book has its own website where you can read more reviews. You can also read Joel Spolsky’s foreword to the first edition in his blog.

About seven years ago when everybody was having a great time riding the dot com wave, I was working as a developer at a company that truly lived up to the expectations of IT companies of that time. In the development team we had a saying that we used over and over again. It described those times, just as it describes the stories in this book:

“It’s funny ‘cause it's true!”.

Wednesday, 10 October 2007 19:07:14 (GMT Daylight Time, UTC+01:00)  #    Disclaimer  |   |  Trackback
# Wednesday, 03 October 2007

As mentioned some time ago in my post Training – Expense or Investment I had been setting up some In-house Commerce Server training for the eCommerce Team with former Commerce Server Product Manager Max Akbar.

Max was at the office for three days, and though expectations were extremely high, he even managed to top them. Not being a Commerce Server developed, I only sat in on the BizTalk integration part, where we got a good discussion about the Commerce Server BizTalk Adapters. As these behave quite differently from practically all other adapters, there were a lot to talk about.

The whole team where equally excited about the training, and both Søren and Brian have already posted blog entries with their experiences of the three days.

In order not for everything to be only technical, we all went out for dinner one night, as you can see from the picture below. Not only the eCommerce Team and Max, but everyone at Vertica were invited – even the Sales Director and the CEO :o)

Following this success we will definitely try to arrange more in-house training. The whole team together with a highly qualified trainer for several days is extremely valuable, both from a technical as well as a social perspective.

Currently we have started looking for someone to provide BizTalk R2 training with specific focus on the new EDI features. I already know of QuickLearn providing Deep Dive BizTalk courses, and all, but the newest member of the BPI team, have already attended their course. However, I would like some training with even more focus on the EDI features, than QuickLearn has expressed, they were able to provide. So if you happen to know someone you are more than welcome to leave a comment or send me a mail.

Wednesday, 03 October 2007 20:50:08 (GMT Daylight Time, UTC+01:00)  #    Disclaimer  |   |  Trackback

For some time I have been wondering what assemblies exactly are included when a MSI package is exported in BizTalk. When moving assemblies for one environment to another I had noticed, that I didn’t always get the latest version of the assembly included in the package.

For BizTalk to function properly the assemblies must be deployed to the Global Assembly Cache (GAC). This copy of the assembly is the one actually being used during execution, but apparently it wasn’t the one being included in the MSI package. However, In the BizTalk Administration Console for an application’s resources there are both a Source Location as well as a Destination Location pointing to a copy of the assemblies as well. Thus my first thought was that perhaps, it was one of these that were included in the MSI package.

To test this I tried to delete first one of them, and then the other. Either way I was still able to generate the MSI package, which meant that it were neither of these that were being used.

Increasingly puzzled I ended up turning to the good old newsgroups for some help. It took BizTalk MVP Tomas Restrepo less than 1½ hour to point me to an explanation, and apparently I was not the only one a bit puzzled by this. The explanation was another blog post by Richard Seroter titled Preventing Stale Artifacts in BizTalk Application Packages.

In here he explains what is actually going on when assemblies are deployed and how the MSI packages are generated. Interestingly and, at least to me, also quite surprising as first are, that the assemblies are added to a CAB file and stored in a table in the BizTalkMgmtDb database. For the full explanation I encourage you to read the post.

One obvious advantage of storing this information in the database is of course that you can be sure that in a multi-server environment regardless of which server you use to generate your MSI package will always be exactly the same. However, whether this is the only reason for the implementation I do not know.

Wednesday, 03 October 2007 19:23:22 (GMT Daylight Time, UTC+01:00)  #    Disclaimer  |   |  Trackback
# Tuesday, 02 October 2007

About one and a half year ago Vertica moved to a new office. In the very beginning the office was a single room of about 12m² in an apartment shared with another company. Being five people with laptops, as well as a couple of workstations playing the role of servers, in a room of that size was a rather cozy and intimate experience (as well as hot and at times probably also smelly). Luckily we soon took over the entire apartment giving us a lot more breathing space.

As more people joined the team and the company grew, space got more and more cramped, and eventually it was time to move to a new location. The new location was two newly renovated floors in a building right in the center of Aarhus. The main part of the two floors was open office space allowing rather custom seating.

Already before moving into an office spread between two floors, we were very conscious that though people would be divided physically the company should not be divided mentally. One of the things to ensure this was that every now and then we would change the seating. It should never become our floor vs. their floor or something like that. Also, though developers are part of a team, all team members should not necessarily sit right next to each other.

There is a little bit of fixed seating though, as the Sales Director and CEO both have “real” offices with a door that close. They simply talk too much (on the phone most of the time), so we need a way to screen them from the rest of us.

Now you may already have guessed from the title of this post, that the title of this blog was not the most future-proof choice - once again it has been time to shake things up a bit. This time we have decided to have all developers on one floor (the second) and Project Managers, the Sales Director and the CEO on the other (the third). This way we hope to have an even greater synergy between developers. A nice side effect from this, at least from a developer perspective, is that since the Project Managers also often are rather busy on the phone, this is also no longer disturbing.

I do not intend, however, to change the name of the blog, nor do I intend to hand it over to some other Hansen working of living on a third floor, so for now Hansen on Third is written by Hansen on Second.

Tuesday, 02 October 2007 21:04:49 (GMT Daylight Time, UTC+01:00)  #    Disclaimer  |   |  Trackback
# Wednesday, 15 August 2007

Approaching a new fiscal year at Vertica also makes it budget time. With help from my two colleagues, Søren and Troels, I have been in charge of the budget for training. This includes everything from conferences and in-house training to books and certifications. Though certainly not the most interesting part of my work it is nonetheless important.

I am not going to go into figures, but Vertica is spending, what I would consider a reasonable high amount of resources on training. However, we still very careful considering what event and conferences to attend, and in this post I would like to elaborate a little bit on how I see training, and what we do at Vertica.

Training should be looked at as an investment and not an expense. For most this might sound obvious, but my experience is, that this is certainly not the case everywhere. Almost every candidate we interview at Vertica asks about training (which is of course a fully legitimate and relevant question), some are telling that they are not even used to their company supplying books for them. I will come back to Tech Ed later but I heard something interesting last year: I cannot remember the exact numbers, but even though Tech Ed EMEA was held in Barcelona, and Spain is considerable larger that Denmark, there were more than twice as many Danes attending as Spaniards. I guess not everyone sees the investment vs. expenses relation the same way.

Not all Training is an Investment

There is a huge amount of possibilities when it comes to training, and careful planning and evaluation is important. Some of these possibilities are extremely valuable, whereas others certainly would be considered an expense more than an investment.

I remember when I was almost fresh out of school, working in my very first job at Rambøll Informatik. Obviously I was quite inexperienced and got very happy when I was signed up for my very first "real life" course. It was a Microsoft Official Curriculum (MOC) based course held by one of the top Microsoft training centers in Denmark. I don’t remember the name of the course, but it covered several of the technologies I was working with at the moment, including MS DTC. I admit that MS DTC might not be the easiest Microsoft technology to understand, however the trainer had obviously never worked with it, and was not able to answer even the simplest questions if is was not on his slides. My own experience with MS DTC was limited, but still surpassed that of the teacher. Quite a downer for a young kid eager to learn.

During my time at Rambøll I experienced this once more at a SQL Server 7.0 course, and ever since I have had a real hard time with these MOC courses – especially when combined with a professional trainer not doing much other than training. Thus we have also never had people from Vertica attend these MOC courses at training centers.

So what do we do at Vertica?

When we select events to attend at Vertica we look at a series of things. The following is more or less a prioritized list of the aspects taken into consideration:

  1. What are the topic/topics, and how deep does it seem to be?
    This is quite obvious. It is relevant to us or not, and does it have sufficient technical depth?

  2. Who is the presenter?
    Preferably a well-known industry specialist or maybe someone from the appropriate product team in Redmond. I am not going into too much detail about presenters or art of presenting in this post. Some presenters though are better than others and have the ability to make even the dullest topic interesting.

  3. Who is the organizer?
    Is this arranged by Microsoft or some third party? If it is a third party, who is it and what is their track record for arranging training?

  4. 4. What is the cost?
    At some point we do have to look at the cost, as we do not have unlimited funds. This includes entry fee, travel, hotel costs etc. Also being in IT Services we have to take into account that every time a consultant spends a week at a conference, he/she also does not invoice a single hour. Though training is an investment is would be naive to disregard this.

There are other things to consider, but these are the top 4 questions we ask whenever we get invited to or look at any training.

In-House Training

As Vertica is growing in size it starts to make more sense to arrange training in-house. Up until know we have very limited experience with arranging this, pretty much limited to a 2½ day training session on the Covast EDI Accelerator for BizTalk and a couple of late afternoon beers with Patrick Tisseghem from U2U discussing Microsoft Office SharePoint Server. Both very good experiences.

As I mentioned in an earlier post I have been setting up in-house Commerce Server training with Max Akbar. Max used to be Commerce Server Product Manager and is now the owner of Commerce Server Training. He will come to the office for three days of training for everyone in our Commerce Server Team, in the beginning of September. We all have great expectations for this, and I am sure we will not be disappointed. I am pretty sure my experience with the teacher at the MS DTC course will not repeat itself :o)

I also believe that in the future we will try to do more in-house training, as long as we can get the right people to do the training. This way we can train the whole team at once.

The Vertica Training Schedule

As I started of saying we have been working out a budget for training prior to the new fiscal year starting. Although some events have been named not all funds are earmarked yet. Events and possibilities will show up during the year, but so far the schedule looks pretty much like this:

  • Tech Ed Developers, Barcelona
    I attended Tech Ed for the first time last year together with Søren. It was also the first time someone from Vertica went there, and it was a very good experience – technically as well as social. The sessions, speakers and the event as a whole were excellent and we are sending someone again this year.
    With an Early Bird registration fee of €1.945 + VAT it is also not the cheapest way to get training. Add travel, hotel cost etc. and it gets quite expensive. Maybe Microsoft should start seeing Tech Ed as an investment as well, and not as revenue :o) It is all worth it though.

  • Microsoft SOA & Business Process Conference 2007, Redmond
    Held on Microsoft Campus and arranged by the BizTalk Server Team, this is the BizTalk conference to attend. Vertica was represented for the first time last year, and that brought several ideas already implemented and running in production for customers. It is four action packed days for only $199!!

  • JAOO, Aarhus
    It will be the first time anybody from Vertica attends the JAOO conference. I have heard so much good about this conference and it is held right in our backyard in Aarhus, so it is a bit strange that we have never gone before. Originally a Java event (the biggest in Scandinavia) and that might also explain why we have been a bit awaiting in attending. The focus has changed and now covers a broad range of topics in professional software development, incl. project management. 

  • Designing SOA Solutions with Microsoft Technologies, Copenhagen
    Two day course almost in our backyard. If is held by QuickLearn, who from the BizTalk Deep Dive course which all BizTalk developers at Vertica have attended, as well as the BizTalk 2006 R2 course. Qualified and knowledgeable trainers are what we have seen and I expect that to be the case here as well.

These events leave room in the budget for other events not yet scheduled. I.e. with the Visual Studio 2008, Windows Server 2008 and SQL Server 2008 release early next year, I wonder if we will see a PDC late 2008(?). Note also that no single person is attending all these conferences – that would be a lucky guy :o)

Instead we try to share the knowledge with colleagues when somebody is returning back to the office. However, I have to admit that this is something we could get better at, and we are continously working on that.

One of the new things we are starting is that whenever someone attends a course or conference he or she should afterwards do an internal presentation for everyone else at our bi-weekly Beer and Learn sessions. Every other Friday we stop working early and take turns presentation a topic for everyone else.

Wrapping up

There are a lot of other topics to cover when it comes to training, and I might come back to that in a later post. This could include non-technical training, personal incentive for training and certification etc. However, this was some thoughts about how we see training at Vertica, and what we do to make sure we stay ahead of the pack.

There is certainly a lot of ways to look at training, both from an employee and from an employer’s perspective. But regardless it should be looked at as the investment it is, when addressed in a serious and well-planned way. I am certainly not saying that what we do at Vertica is the only right way, and as with everything else is it important to strive at continuously getting better.

Wednesday, 15 August 2007 19:07:20 (GMT Daylight Time, UTC+01:00)  #    Disclaimer  |   |  Trackback
# Sunday, 15 July 2007

 Microsoft BizTalk Server 2006 introduced the concept of applications to group artifacts used in a BizTalk Server solution in a logical way. This was done to make deployment, management as well as troubleshooting easier and quicker.

Applications are managed through the BizTalk Administration Console, and I think the concept has been of great help in my daily work with BizTalk. One thing, however, has annoyed me very much: Applications in the Tree View in the Administration Console are not sorted alphabetically, but instead they are listed in the same order as they have been created.  BizTalk Administration Console with Unsorted Applications

As BizTalk installations grow and more and more applications are created it takes more time to find the application you are looking for, especially if the application names are somewhat similar. At Vertica we have BizTalk installations with 25+ applications, and eventually we decided to do something about it.

My first thought was that there would be a stored procedure somewhere that was used to select the application names for the Console. If I could find this I could just add an order by clause to the select statement, and hopefully the issue would be solved. To find this procedure I fired up SQL Server Profiler. Unfortunately I came to the conclusion with my colleague Troels, that is was some dynamically created select statement that was used, and this idea was of no use.

One thing we noticed though, was that all applications were entered in the bts_application table in the BizTalkMgmtDb database. This table has two indexed; a clustered on the primary key nID, and a unique index on nvcName. As the clustered index also determines how the data is stored physically and since the nvcName column hold the names shown in the Administration Console, we figured that if we just switched the clustered index from the nID column to the nvcName the problem might be solved. 

This operation was quickly performed in the SQL Server Management Studio, and after a quick restart of the Administration Console the applications now appeared in alphabetically order. Since this table only holds one row for each application, it is hard to imagine that someone would ever get more than 100 rows (and that I would think is also very high), thus there should be no considerable performance issues with changing the clustered index.

Clustered Index On nID
Before Change: Clustered Index On nID
Clustered Index On nvcName
After Change: Clustered Index On nvcName

Please note that you should never change procedures or tables of a Microsoft server product in a production environment as you will no longer be eligible for support. But this trick might help you maintain the overview of you BizTalk development installation. In the meantime we can hope the next service pack will sort the applications.

BizTalk Administration Console with Sorted Applications

Sunday, 15 July 2007 16:52:17 (GMT Daylight Time, UTC+01:00)  #    Disclaimer  |   |  Trackback
# Thursday, 12 July 2007

All though I'm fortunate enough to feel as the title says about my job most of the time, this post is filed under Personal and thus not about my job. Instead it is a way of making that Orange Feeling last a bit longer, as I a couple of days ago came home after almost a week at the Roskilde Festival. I love live music and attend several festivals as well as isolated concerts every year.

This was my 13th Roskilde Festival and even though it was also the rainiest ever (with approx. 100 mm of rain during the week), already after a few days it is only the good experiences that are remembered. I know no better way of “recharging my batteries” than with good music and good friends, thus I thought I would post a couple of my pictures from the festival:

Although several of the bigger acts were rather disappointing there were countless excellent concerts, my favorites being:

Oh, and one it missing. I’ll through in a handful of kudos if you can guess which (hint: the post title :o)

Thursday, 12 July 2007 12:30:09 (GMT Daylight Time, UTC+01:00)  #    Disclaimer  |   |  Trackback
# Monday, 18 June 2007

One of the characteristics of other people that I find the most inspiring is passion. This goes regardless of whether or not they work in the IT industry. Being surrounded by passionate people is both infectious and giving.

I know a lot of passionate people, both in the IT industry as well as outside, and I always love talking with them. Passion tends to breed ideas, and these two combined can make everybody’s day.

Whether there is more passionate people in the IT industry compared to other industries I don’t want to judge. But there is no doubt that there are a lot of extremely passionate people working in the IT industry. People that feel very strongly both about the technology as well as their solutions. There is a reason why the Windows/Linux or the PC/Mac discussions often are called religious discussions.

How is passion expressed then? How can you tell someone with a sincere passion for a specific area, from someone not as passionate? Well, let me start of by saying that I don’t think there are many people working in the IT industry without being somewhat passionate about technology. Not only are a several yearlong education required, you are also required to continuously improve and build on your skills, at the same rate as the technology changes – which is fast! If you don’t feel some kind of passion for technology I believe you will change industry pretty soon.

But still some people come off as being more passionate that others. You can see the spark in their eyes and hear the enthusiasm in their voice as they talk about the solutions they have built. Vertica is a growing company and we continuously interview new potential consultants. Even though a job interview can be a bit of an awkward situation, where two parties should try to learn as much about each other as possible in a rather limited time (and making sure that the candidate knows his/her stuff), telling how passionate a candidate is often quite easy. And as an employer passionate people are what you are looking for. Skills can be thought, but passion cant.

Thinking about it passion is also the predominant reason for my new blog (as I guess is the case for more or less all blogs). I am not claiming that I can out-smart everybody on the Internet, but that is also really not the idea. However, I do love what I’m doing, I do think I’m quite good at it – and I do try to improve every day.

Currently I am trying to arrange some Microsoft Commerce Server training for our eCommerce Team. I’m hoping to have Max Akbar, a former Product Manager at the Commerce Server team, come and do it. I’m not a Commerce Server expect and I have never neither met or written with Max before, but one single line in his email signature already told me a lot about him – including that I would like to meet him: “From cradle to grave in pursuit of knowledge!”. Who wouldn’t want to hire him as a trainer? :o)

I should add that I think passion outside your work is just as important as at work. The ability to become excited is per definition good, and I don’t care if it LINQ or flowers that do it for you.

This also takes me back to the title. It is actually a quote from a friend trying to comfort me as I was complaining about my favorite football club loosing once again. That is approximately one year ago, and AGF relegated that year. Football fans are among the most passionate race there is, without ever thinking about logic, common sense or any other rational argument. This year even more people have come to the stadium and yesterday the promotion back to the best league was a reality :o)

So basically: it you have it you should show it!

Monday, 18 June 2007 20:36:36 (GMT Daylight Time, UTC+01:00)  #    Disclaimer  |   |  Trackback