Monday, October 19, 2009

Performance Comparison of Major Web Browsers

I just finished reading this article about performance comparison of major web browser by Jacob Gube and wondered if everything was said. Unsurprisingly, Internet Explorer is presented as the worst and slowest browser. By the way, I often consider that people tend to appreciate criticizing when talking about Microsoft products in general.

But in the case were the tests complete ? It talked about speed, CPU, and read access time. But nothing about memory consumption. I jumped on the gun, took a look at my dozen tabs opened on Firefox and opened them as well under Internet Explorer 8 (IE8) and Chrome.

As you can see, Firefox momory consumption is bundled inside a single process while IE8 and Chrome creates several processes with different memory consumption.














But after summing all results, I was astonished to see that Internet Explorer 8 is the best browser concerning memory consumption. The fancy Excel graphic below perfectly illustrate that fact.

There is no doubt that IE 8 requires less memory than Chrome or Firefox.

For the sake of fairness, here are the types of websites I used for the test. All of them are common sites I use on a day-to-day basis:
  • iGoogle
  • Two bugtrackers: Mantis and Jira
  • Two tabs concerned games on Kongregate.com
  • A PHPMyAdmin and a MediaWiki pages
  • A page on my online game (MMOG): Star Wars Combine
  • A web page from the MySQL site, one from an online banking, one from a newspaper with forums, and that blog on sixrevisions.com
In my next post, I will maybe make performance and statistics reports about the number of crashes of each browser. ;)

Monday, August 31, 2009

Upgrading MS BI to SQL 2008: Do not underestimate the Power of the Dark Side

For our BI setup running under Microsoft BI 2005, we have an environment that comes straights from scholar manual. We have a development environment (DEV), composed of 4 servers: two are SQL 2005 database servers (staging database and a data warehouse ), one server is a SharePoint 2007 server hosting also the SharePoint database (SQL 2005) and a Visual Studio server. Similarly, we have a testing environment (TEST) composed of 3 servers: a staging database, a data warehouse, and a SharePoint server hosting the SharePoint database as well. Both the DEV and the TEST environments are virtualized. Then we have our production environment (PROD) composed of 4 physical servers: a staging server, a data warehouse, a SharePoint server, and a SharePoint database server. The only difference being that in production, we have separated the SharePoint front layer from the database layer for performance reasons.

Developers develop in the DEV environment and technical approvals are done there. Testers test in the TEST environment, which is also used for the functional approvals. Production data run in the production environment. So far so good and nothing new. I just described an out-of-the-manual architectural setup. All databases are up-to-date SQL 2005 and the SharePoint version is 2007.

We had planned to upgrade this environment to Microsoft SQL 2008 and thought it was quite well planned. We had waited for SQL 2008 SP1 to be released. We had waited for our sub-contractor to accumulate some upgrade experience and finally decided to migrate progressively. During last July, we migrated our DEV environment. Everything went smoothly. Some of us then went on vacations. The migration of our TEST environment was planned for mid-August and took place as expected. All functional tests we had prepared were passed without any problem. As this point, and as all lights were green, I decided to authorize the migration of the PROD environment.

And guess what ? Everything went fine with only one unexplained manual reboot. We later even noticed a small but noticeable performance gain with SQL 2008.

On the next days, I got an alarming phone call from the IT operations department. They reported that since the SQL upgrade all production servers kept rebooting every 2 to 12 hours without apparent reasons.

We then immediately started our investigations but quickly discovered that there was no logged Windows event or error message. A closeup monitoring of SQL did not give us any clue. A couple of days were necessary to find out that the reboots were caused by the monitoring systems because the servers were freezing for more than 10 minutes. Still, we had no idea why they were freezing. It only happened on the physical PROD servers, not on the virtual DEV or TEST servers.

The main difference between virtual and physical machines concerns the underlying drivers. After a couple of days, we upgraded several drivers on one of the blade servers: HBA StorPot card, Ilo2 card firmware, blade power management control and various other minor drivers. It worked and fixed the problem.

Conclusion of the story ? You cannot foresee everything and even if you work by the book, shit may happen. The good news is that we only lost 3 days with a very limited impact on end-users.

Wednesday, August 5, 2009

Picturing SharePoint Lists

For one of my recent SharePoint projects, I have been asked to create lists where an image could be included to illustrate the content of each list entry. As each entry will have a picture attached to it, the picture upload process had to be quite straightforward and user-friendly.

I had first pointed my thoughts toward a picture library but soon discovered that it did not correspond totally to my needs. After some more googling, I found the Enhanced picture custome type on CodePlex. Here then comes the necessary complete instructions to install and parametize this nice add-on.

1/ As prerequisite, you need to install ASP.NET AJAX on your SharePoint (MOSS 2007 or WSS 3.0). This operation is made extremely easy thanks to the detailed instructions on Mike Ammerlaan's blog post regarding Installing ASP.NET AJAX on SharePoint. Ultimately, it all comes down to downloading an EXE file, running it, then copying/pasting XML from the blog post into the web.config file of your SharePoint and finishing with an iisreset command.

2/ Once AJAX has been installed, download the Enhanced picture custome type WSP file and install it using the following commands:
stsadm -o addsolution -filename .wsp
stsadm -o deploysolution -name .wsp -allowgacdeployment -url http://sitename -immediate -force

(The -force attribute is necessary if some elements are already installed on your SharePoint.)

3/ Go to your site settings and then under site collection features, activate the ImageEnhancer feature.

4/ Go to your custom list, and add another field of the newly available type Enhanced Image.

5/ On your site, create a picture library. It will be used to store the pictures but you do not need to manage it or create any specific fields for it.

6/ Go back to your list and under the general settings, click on Enhanced Image Picture Library. Select the picture library you created before and click ok.

7/ That's it, you're ready to upload picture inside your custom list with maximal effects and minimal efforts.

Tuesday, June 23, 2009

How to include SharePoint Document Version in your File ?

Since I started using SharePoint (MOSS & WSS), I wondered how I could include the version number provider by a SharePoint document library into the document itself, to ensure some cohesion help people to easily identify the latest version, particularly in the case of printed documents.

I discovered the following easy tip, which works for SharePoint 2007 and Office 2007.

  • In your documents list, go to Settings then Information management policy settings.

  • Under Specify a policy, select Define a policy and click OK.

  • In the labels section, enable labels and in the format field, enter something like: Version: {Version}.

  • Click ok.

Now go back to any of the documents of that library. Open it and edit it then go to insert, quick parts, document property and select Labels. Save your document, close it, then reopen it (in read only) and voilĂ , the SharePoint version will be included. For example, it will look like: Version: 1.4.

Note that it only works for Office 2007 documents (docx format for example) and MOSS.

Saturday, June 20, 2009

Ten ways to sink an IT project

During the recent Project Management Institute (PMI) congress from last May, Andre Chrome made an interesting show about ten ways to sink your project. And of course it applies perfectly to any IT project and I modified them sightly for this purpose.

  1. Be vague: Do not define any detailed scope that would force you to implement what you promised.

  2. Begin the execution ASAP. Why make a planning when you already know lots of changes will happen.

  3. Focus solely on your team. Clients will only interfere with your work.

  4. Forgot about code documentation and instead prefer mutual trust with your client.

  5. Go beyond your client expectations. As clients expect always more and fancy features, you will sign new contracts that will compensate for your losses and bugs.

  6. Risk management ? By definition, risk is uncertain. Why bother planning for risk.

  7. Quality is only important at the end of the project. The client will only look at the GUI anyway.

  8. Avoid bureaucracy. Paperwork is a waste of (your) time.

  9. Make sure your team works overtime. As IT project are overdue anyway, put pressure on your team from the start.

  10. Throw away paper documents when the project is over. Paper files takes place in your office and none ever read them.


Here is the video of this presentation:

Thursday, June 4, 2009

Server Fault: StackOverflow for Servers Issues

Jeff Atwood and Joel Spolsky have released the public beta of Server Fault. Based on their StackOverflow platform, it contains all existing features that made you love (or hate) StackOverflow.

While StackOverflow is oriented toward programmers, Server Fault aims to bring solutions to System, servers, and network administrators. Let's hope it will work as well. I cannot wait to see my first question answered.

Thursday, April 30, 2009

Office 2007 Service Pack 2

After yesterday successful installation of the Windows SharePoint Services 3.0 Service Pack 2 I decided today to install the Office 2007 Service Pack 2 (SP2). Note that I have a fully patched Office 2007 in my computer with almost all Office applications, including Visio and SharePoint Designer.

I downloaded that small service pack of 290MB and immediately started the installation. It was again quite straightforward with only a click to accept the Microsoft conditions. My principal occupation during the installation was to wait for over 20 minutes for the patch to install and then accept for my computer to reboot. Everything worked exactly as foreseen.

One of the best improvements of Office 2007 SP2 is probably the support for PDF (probably the most universal file format) and ODF (the openOffice suite file format). These two file formats are now directly integrated into the Office 2007 suite. As I wanted to test this new functionality, I opened a 4.3MB-large complex Word document full of pictures, diagrams, styles, and internal links and saved it as PDF from Word. The result was a 5MB-large very nice PDF document where all links were working. The pictures quality remained high. I then tested my old PDF converter method which is PDF995. It took much longer to convert the 150+ pages, did not contain links, and ended up with a file size of 9MB. A colleague of mine tested the same conversion using PDFCreator But after 25 minutes of wait, he finally killed the process. The Microsoft solution is therefore not too bad in this case.

Wednesday, April 29, 2009

Windows SharePoint Services 3.0 Service Pack 2

Today I installed the Windows SharePoint Services 3.0 Service Pack 2 (SP2) on my department Intranet prototype. It is configured as a Farm with a SQL 2005 database but everything is hosted on the same virtual Windows 2003 R2 server. Installation instructions for this WSS 3.0 Service Pack 2 (SP2)and documentation are quite smooth and clear.

In short, it all comes to downloading the file, then double-clicking on the exe to run it and then the usual Start, "click", Accept, "click", Next, "click", Next ... wait (Upgrading SharePoint Products and technologies through the Configuration Wizard) ..., Finish, "click", then open your Intranet, wait again, and see the result.

It worked. Simple and efficient.

Friday, March 27, 2009

Exporting Files from SharePoint Content Database

Murphy's Law can apply anywhere anytime and my recent re-installation of SharePoint is certainly no exception to the rules.

Soon after I finished recreating our SharePoint intranet, I stared sharing it with my immediate colleagues. While I was not really expecting some "Oh!" and "Aaah!" cheerful comments, I was still hoping for some kind of "Cool, it's back, thanks for the tool.".

But no, even that was expecting too much. The very first comment I received was an assassin comment like: "And I suppose you managed to retrieve all files stored in the previous SharePoint database ?". That comment triggered a machine-gun like stare from me to my colleague. No, I did not manage so far to retrieve these files and yes I had tried already. SQL Management Studio did not really help me by the way.

I had been cornered and really had to find a solution this time. So I returned to the web, googling frantically, trying various unsuccessful solutions until finally my patience and stubbornness got rewarded. I found found a great article from Keith Richie describing how to export the site content from a SharePoint Database for recovery purpose.

His article include a small source code and instruction to compile and run the program. It worked almost like a charm from the first run. Yet, as some of the recovered files were quite large, I had to boost the buffer size (as I worked locally this was not a problem) and even tweak the SQL query to work on a per directory basis to limit the execution run time. Happily this time SQL Server Management Studio was of great help to test and fine-tune the queries. Within 30 minutes from the moment I read Keith's post I had recovered all files I needed.

Today all files are imported in the new SharePoint and I preciously kept the program source and instruction ... just in case one day I need to recover files from another SharePoint database.

Wednesday, March 25, 2009

The Revenge of SharePoint

Remember my SharePoint article from 2 months ago ? Well, believe it or not, but I have crashed my SharePoint site beyond my repair skills capabilities. It happened after a domain migration and was due to some dark account permission problem on the SQL 2005 database.

After having wasted a few hours on the problem, I decided to re-install it from scratch on a new and better set up virtual machine. After all, it was only a prototype without too much production data in it.

The first thing I did was using my previous SharePoint installation article as guideline and i will say it was definitively worth writing it and I got my payback for it. While I was at it, I also wanted to bring in a couple of improvement to my initial setup.

As SQL Server 2005 was installed on the C:\ drive, I needed to move the SharePoint databases to the D:\ drive which was designed to contain the data. I proceeded as follow after having installed Sharepoint Services:

In order to move a Microsoft SQL Server 2005 SharePoint database, I needed to:
- Stop the IIS SharePoint site.
- Stop all Windows SharePoint Services: Administration, Timer & Tracing.
- Backup the SharePoint content and configuration database.
- Detach these databases using SQL Server Management Studio.
- Move the database files (.ldf & .mdf) to the new location.
- Attach these files back to SQL Server 2005 still using the SQL Server Management Studio.
- Restart the SQL server.
- Restart all SharePoint services.
- Restart the iis SharePoint site.
And it worked like a charm.

I decided to add some better web parts to the portal and as such downloaded and installed What's New, Chart, AutoComplete, and Copy Paste web parts from the SmartTools suite on CodePlex. The What's New web part is probably the best of them. All these parts are ridiculously easy to install and deploy.

I also wanted to change my security strategy and to really use two Web Applications: one for the Central Administration on some exotoc port and the SharePoint content sites on port 80. As I had already recreated my content sites under the Central Administration, I needed to move them all to a different application in order to better manage their security. Therefore I had to first move the Central Administration from port 80 to another port (see my article for instructions), then create a new web application on port 80, export all created sites and re-import them into the newly created Web Application on port 80. The export/import operation was made simple thanks to the stsadm command line tool. Afterwards I simply had to uninstall and re-install the CodePlex SmartTools to have them active under the new Web Application.

And that's it, my SharePoint site is now back and ready to be used.

Friday, March 13, 2009

Friday, February 13, 2009

Sync Story

Since over a decade I have been using Microsoft Outlook. I started with Outlook Express then used Outlook 2000, XP, 2003, and currently 2007. With time, I have learned to master the product and to truly enjoy it. As a result, I used it for both professional and private emails, contacts, and calendar. A few years ago, I even started synchronizing my contacts and calendar events with my previous Nokia mobile phone. I liked very much having a calendar with me without having to carry a paper version on top of all accessories that a modern man must carry: wallet, keys (home and car), mobile, sun glasses, pens ... this without even talking about the laptop. But what I appreciated the most was being notified by my mobile about my appointments. Even when away from my computer, I was sure not to forget anything (as long as I had encoded it).

Then I changed of job and got a new laptop with that so wonderful application named Lotus Notes along with a BlackBerry already synchronized with it. My opinion about Lotus did not change since last year. I still do not like it and rarely miss an opinion to criticize it for many good (and bad let's remain honest) reasons: not user-friendly, slow to answer, not compatible with most Web2.0 portals like Facebook, LinkedIn or Naymz and I could continue my list of rants. In parallel of using Notes for business mails, contacts, and calendar, I kept using my Outlook for personal emails, contacts, and events. However, while the separation of mails is good for productivity reasons, and while I could take care of contacts by synchronizing my BlackBerry with my Outlook using the BlackBerry Desktop Manager application. Since years, I am indeed using a contact sub-folder of Outlook to organize and backup my mobile contacts.

So there I was, sitting between two seats for the calendar part and not really happy about it. Then one day I woke up deciding to fix the inconvenience of having private events in Outlook and business events in Lotus and on my Blackberry. I was looking for a simple and free solution but obviously the words simple and Lotus do not exist in the same sentence, and it gets worse when talking about software. Useless to say that I could never manage to connect directly my Outlook to the Domino server and always ended with some error message.

Ultimately I found out that Google Calendar proposes a tool to synchronize your Outlook Calendar with your Google Calendar. Google also proposes another tool to synchronize your BlackBerry calendar with your Google Calendar.

By transitivity and because 1+1=2, I have my solution: my outlook is synchronized with Google, which synchronizes with my BlackBerry, which in turn synchronizes with Lotus. Yes, it works. Yes, it is easy to install and no, there is nothing complex to configure. I'm happy as I have all my events on my BlackBerry and in Outlook and I still do not plan to use the Google Calendar interface itself.

So what's next ?
I seriously consider definitively dropping Lotus now as I can download emails from the Domino server using POP.

Monday, January 26, 2009

Kongregate: Casual Meta-Game ?

Since a few weeks now, I play some casual games and other flash games on Kongregate. Kongregate is a portal promoting new games and helping developers to develop better games by getting more feedback and to earn more money because it remains the main reason for work.

By playing Kongregate's games, it is possible to earn points, badges, and level up. Earned badges and total scores appear on the players' profiles; often motivating them to play earn more badges by playing more games.

This game-around-the-games mechanism - or Meta-game - is quite interesting as players are motivated to play more to games they like; until they earn all badges for example. It also pushes players to discover and play new games.

This mechanism is also enforced thanks to the existence of Kongai, an online battle-oriented card game. Kongai relies on similar (but less complex) concepts than older classical card games like Magic The Gathering or Decipher' Star Wars Customizable Cards Game. Cards can be of course purchased but also and preferably earned through playing any game hosted on Kongregate. This is called challenges). More cards can be earned by playing Kongai itself. As for any collectible cards game, these come with several editions and you can view them through an online card album.


This concept of Meta-games or games around games is quite thrilling. Once you start caring for your score, the race is up and you will quickly try to reach just another level. As Kongregate proposes thousands of games, you will always find some that you like or care enough to earn one more badge. The online card game attached around is also a good idea even if in this particular case the Kongai game itself could probably be a bit more sophisticated.

Now I wonder if a meta-game concept could be used with massively multiplayers online role-playing games (MMORPG) ?

Saturday, January 17, 2009

Google is the Heir of Sun Tzu

A few days ago I posted a pretty long article about my experience with setting up a SharePoint intranet. Less than twenty-four hours later, I received a LinkedIn invitation from someone working for the same company as I do but located at the other side of the world. That person kindly introduced himself to me, wrote a couple of nice words about my SharePoint article, and asked to be connected to each other. My first reflex was to immediately accept his network invitation - after all we are colleagues - and to thank him for his kind word.

I then started wondering how he had found my SharePoint blog article. My article was not the first one to be written about SharePoint. It is surely not the most detailed or the most complete article about that topic. Additionally my blog is not (yet ?) one of the most read and famous blogs of the world wide web. So how could he find me through that article so quickly ? Not even a day had passed since I had posted it on BlogSpot.

I then remembered that a few hours before getting the LinkedIn invitation, I had received my usual Google Alert digest. For those ignorant of Google Alerts mechanism, Google Alerts are email updates of the latest relevant Google results (web, news, etc.) based on your choice of query or topic. In other words, you enter a keyword or two and Google will bring you the search results right into your mail and when something new it added on the Internet concerning that keyword then a it will appear in your next Google Alert. And on that day, my Google Alert digest tuned for my company name contained my SharePoint article. Needless to say that from there it became as clear as 1 + 1 = 2. All people using Google Alerts with the same keyword had received the link to my blog. This was the right explanation. It could not be otherwise and a few hours later I even received the written confirmation. It was a good guess.

So what is the true meaning of this story ?
Google knows it all. It knows everything available online about you, about your company, about your competitors. It knows what has changed or what is new, and it knows it before you do. As such, Google sets itself in straight line with Sun Tzu so famous principle:
Know thy self, know thy enemy. A thousand battles, a thousand victories.

Wednesday, January 14, 2009

Installing SharePoint Services 3.0 in a Snap

Whenever you have to implement an Intranet project, there is always a time when someone asks something like "Could you come with a very cheap solution for an small Intranet proof-of-concept in the coming days ?"

So last week I decided to create a small Intranet prototype with limited features for a limited audience and using Windows SharePoint Services 3.0. Why WSS ? Simply because we started implementing SharePoint Server 2007 (MOSS 2007) for another project and as such I tried to remain coherent in my implementation choices.

I started with a virtual machine running Windows Server 2003 R2 and checked it was fully patched before going further. I then installed the .Net Framework 3.0 on it.

The second step was to enable the Internet Information Services (IIS) role on that server. Once enabled I needed to check if ASP.NET 2.0 was indeed used by IIS. For that, go to IIS manager -> Websites -> Properties and check that ASP.NET 2.0 is used. If an older version is used then under command prompt type:

%windir%\Microsoft.NET\Framework\[version]\aspnet_regiis.exe" -i

then

regsvr32 %windir%\Microsoft.NET\Framework\[version]\aspnet_isapi.dll

Don not forget to replace [version] by your ASP.NET version. In my cas, it was v2.0.50727.

The next step is about installing Windows SharePoint Services and I strongly advice to read beforehand this Microsoft document about how to create the right accounts. Even if you think that Microsoft recommendations are way too complex, the minimum is to use a different account to install WSS and SQL. Use an administrator or generic installer account but do not use your own domain account to perform the installation on the server.

Once you have created the (right) accounts (including your installer account), you can download WSS. Simply follow the instruction and use the same installer account to configure your database.

Once done, under command prompt, type stsadm. If that command is unknown then add this file to the PATH environment variable: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN.

I then decided to immediately Install most of the SharePoint Fantastic 40 Applications Templates, starting with the ApplicationTemplateCore.wsp. The installation is quite simple still using command prompt:

stsadm -o addsolution -filename [path to file]\ApplicationTemplateCore.wsp

stsadm -o deploysolution -name ApplicationTemplateCore.wsp -allowgacdeployment -immediate

stsadm -o copyappbincontent


The complete installation instructions for the templates installation are available from Microsoft. In short, you only need to pull the solution file, template_name.wsp, from the extracted distribution. To add the solution file to the solution store, type the following commands:

stsadm -o addsolution -filename [file_path]\.wsp

stsadm -o deploysolution -name template_name.wsp -allowgacdeployment -immediate


To check the deployment status, browse to the WSS Central Administration site. Click the Operations tab, and then click Solution management under global configuration.
Once all solutions are marked as "Globally Deployed", run iisreset from the command line.

I then realized that IIS had a default website running on port 80 and the WSS Centra Administration site was running on some exotic port. As I did not need the default IIS site, i decided to disable it (from the IIS Manager console) and to switch the WSS site to the port 80. Happily I found an excellent article on TechNet explaining how to change the Central Administration Web site port number (Windows SharePoint Services).

At this point, I had a small SharePoint site up and running and started creating some sites in order to test the templates and get familiar with the permissions and other settings of SharePoint. I was slowly getting to where I wanted to be.

The next step involved the upgrade of the standard SharePoint search engine to Search Server 2008 Express and this TechNet article about Search Server 2008 installation was of great help.

I got a small frustration when noticing that SharePoint and Search Server did not support PDF documents. After googling a bit, I found a solution for the missing PDF icon display and even a simple way to have Search Server crawling through and indexing PDF documents. The solution involves installing Adobe Reader 8.x or 9.x on your SharePoint server. While the above article was written for Adobe Reader 8, it worked just fine with Adobe Reader 9. While testing the search server, I noticed that no Adobe PDF documents were returned in the search results but i could quickly fix it thanks to a KB article. (Microsoft KB 927675)

As I felt confident now that everything worked as expected, I even spent some time to add a company theme which is a simple operation perfectly described this article about custom site theme for SharePoint 2007. Well to be honest, I merely threw out the foundation of the theme and still have to update the CSS file.

Finally I even cared about online presence using MSN accounts. Once you fill in the SIP address of your user account personal settings with your MSN or Windows Live email address then you have a cheap way to see if some of your colleagues are online, providing your company does not block all MSN traffics. The trick here is to have a recent Windows Live messenger client on your PC (and not an old v4.x like I still had) and to add your colleagues on your contact list.

For those wishing to consult their WSS / MOSS log files through the Central Administration, there is a cool Log Viewer project on CodePlex allowing so. Simply download the WPS file and install it like any other solution using your installer account. Then do not forget to perform an iisreset to be able to see the link in your Operations tab under Logging and Reporting.

And that's it.
Within 3 to 4 days you have (at least I have now) a very cheap and decent Intranet perfectly suited for small department or projects management. By cheap I mean it only costs one Windows 2003 R2 license and a few days of work. For that price you get an Intranet platform with simple workflows, pre-defined themes and templates, some simple document management features including approvals and versioning, a decent search engine crawling Office documents and PDFs, and even a simple online presence add-on. On top of that, you got familiar with the basics of that monster which is SharePoint. Those days were quite well spent if you ask me.

Thursday, January 8, 2009

Never Release Software Before a Leave

This is one of the first rule I learned and of course i learned it the hard way: Never ever release any piece of code into production before going to bed, vacations, leaving your computer or even before Christmas.

Even without taking Murphy's Law into consideration, it is only best practice to remain available immediately after any change to your IT production environment. And of course you only deploy changes after having carefully developing them in a dedicated environment and testing them in yet another environment (classic 3-tier environment).

This rule, we - at SW Combine - learned it the hard way several times, releasing some new game features right before going to bed only to find a crashed server only a few hours later when waking up. naturally we decided not to let that happen anymore and to never ever release anything before leaving.

However we had underestimated the dark side of temptation. Despite all our good resolutions and even also some pretty decent precautions, we released a very important game upgrade immediately before going to bed and while having the main developer also leaving for Japan for two weeks only hours later. And guess when it all happened ? Around midnight on the 23 of December 2008 when everyone was more thinking to partying, eating, and drinking than coding and when availability was a scarce resource.

So what was the result ? Well we got a crashed server. We got instabilities on our MySQL database leading to further random crashes and we got over 270 reported bugs during the following two weeks.

And do we regret it ?
Not a single minute. The release of this important patch has federated the team into a joined effort like we too rarely had before. All available developers put their hands into the mud (1). During the last fifteen days, we fixed over 170 of these bugs and released a patch every 2 or 3 days (5 patches in total) to solve the immediate problems. Aside of the new features fixes, a lot of minor improvements were released by the rest of the team contributing to the global effort and improvement of the game. Ultimately the entire team feels stronger and more motivated after these two weeks. We did the opposite of what every software development manual would say and yet we have no regret. This is probably one of those exceptions which confirms the rule.

I would not want to end this post without thanking those who worked hard and long on this upgrade: kudos and thanks go to Sin, Khan, BK for the main effort but also Mach, Mikel, Aurius, Git, Jeb, Syn, Jen and those I forgot. You helped, it counted, we progressed.

(1) I know some who will surely try to kill me for implicating that their code could be compared to mud. ;)

Friday, January 2, 2009

Microsoft Zune Dies on New Year

Many Microsoft Zune music players went out of use during the New Year's night. It has been observed that these MP3 players were programmed to work for 365 days in 2008 instead of 366 as 2008 is a leap year. 2008 was a day too long for Zune. Complaints have been flooding on every Zune user's forums.

According to Microsoft, a bug linked to the date system is the root cause. The internal clock driver did not take into account the 2008 leap year and based itself on a normal 365-day long year. Still according to Microsoft, these start-up problems only concern the 30 Go Zune version launched during 2006.

Similar errors are more frequently observed during year changes. The most famous date-related software bug was of course the Y2K Bug which generated a lot of fear for very few damages.

Microsoft pointed that the Zune problem should disappear by itself. In order to fix the problem, Zune users have simply to completely discharge their Zune players before charging it again; a simple cold start for new year in fact.