Weekend Vienna (Austria)

Last weekend I went to Vienna together with 2 friends from Belgium. Vienna is really a nice and clean city. Public transportation is pretty good and we used it all the time. Read the rest of this entry »

Trip to Berlin 2 (Germany)

I’m back from a second business trip to Berlin. The weather was not good. It was cold and raining, but I managed to go see some things anyway. Some picture can be seen below. Read the rest of this entry »

Development status…

Due to some extended business trips and the fact that I will have my yearly holiday in August (finally ;) ), my development on NuonSoft products has been temporarily suspended until September. In September or October, I hope to finalize the new build of Wallpaper Cycler.

Trip to Berlin (Germany)

Last week I went to Berlin on a business trip, arrived on Thursday and left on Sunday. I basically only had Saturday to go see the city. So on Saturday I woke up, had breakfast (I was missing some American style breakfast with eggs, bacon …) and prepared to go out. I was expecting it to be a normal, quiet day doing some sightseeing. Nothing could be further from the truth however … Read the rest of this entry »

Kulendayz 2008 {Microsoft Community Osijek - Croatia}

On 21st of June I went to the Kulendayz 2008 which is the first regional community conference organized by the Microsoft Community Osijek together with Microsoft Croatia with support from INETA and Hupro. Since I’m living in Croatia at the moment and the Kulendayz location was only 30 minutes from my place, it was pretty easy for me to get there.

In the morning I went to a scrum presentation and to a session about advanced debugging of ASP.NET applications using windbg.
In the afternoon I went to a unified communications presentation, explaining the Office Communications Server.

The last presentation I went to was about concurrent/parallel programming in C#. This was one of the most interesting presentations for me (by Bernard Katic). It explained how to optimize code for running on multicore processors, which is becoming more and more important with the release of Quad-Core processors and Octo-Core and even 80-core processors in the pipeline. The session was focussed on the Parallel FX Library and Parallel LINQ. The Parallel FX Library allows you to easily “parallelize” certain parts of your application like for loops. Parallel LINQ allows you to do the same with your LINQ queries. There is an interesting article on MSDN called “Optimize Managed Code For Multi-Core Machines” that expains the Parallel FX Library with clear and simple examples.

It was interesting to find out that I was not the only belgian on the conference. Arlindo Alves from Microsoft Belgium was also there giving a presentation on Microsoft Hyper-V.

Osijek Zoo

Below are some pictures of the zoo in Osijek (Croatia). Read the rest of this entry »

Trip to Plitvice (Croatia)

I went to the Plitvice National Park in Croatia with some friends. It’s a pretty big park with lots and lots of beautiful waterfalls. You can find more information on their website. At the moment it’s not the high-season, so there were not too many people visiting the park at this time, so we could take some pretty nice pictures of which you can see some below. Read the rest of this entry »

Microsoft MVP Letter of Recognition

I just received my generic “to whom it may concern” letter of recognition from Microsoft concerning my MVP 2008 award. I have attached it after the jump. Read the rest of this entry »

Wallpaper Cycler 3.6 Beta 1

Today I’m pleased to announce that Beta 1 of NuonSoft Wallpaper Cycler 3.6 is currently in the hands of our beta testers.

This beta version contains the following changes. Read the rest of this entry »

Wallpaper Cycler: Bug Fixes and New Features

The following new features have been implemented in Wallpaper Cycler:

  • New functionality added to the image preview window, the window that appears when you press the spacebar when an image is selected in the main window of Wallpaper Cycler:
    • The preview window now allows you to use the left and right keys to move through the images in that category or search folder.
    • A small (optional) help text is displayed in the preview window.
    • Information of the image being previewed can optionally be shown on the preview.
  • The tray menu now contains a “Tools > Find Non-Existing Wallpapers…” item.
  • When a new update has been downloaded, WPC will now ask you if you want to run it immediately.
  • The “Check for updates” feature will now calculate a checksum of the downloaded file to see if it was downloaded correctly.
  • Text objects in layouts can now be linked to a wallpaper object in your layout. This allows you to use the %wallpapername% and other commands to display information about the wallpaper being shown in the linked wallpaper object.

I also made the following bug fixes for Wallpaper Cycler:

  • The tree on the left of the main window was recreated every time you changed/added/deleted a category resulting in quite anoying visual flickering. This has been fixed now and the tree almost never flickers anymore.
  • When running the trial version, when starting a new WCL file and then exiting Wallpaper Cycler, no question was asked whether to save the file or not.
  • Increased the contrast a little bit of the Wallpaper Cycler Vista gadget.
  • The Wallpaper Cycler Vista gadget didn’t display correctly when Vista was running in high DPI mode.

Auto Type Determination in C++0x

The C++0x standard defines a feature called auto type determination. It is similar to the var keyword in C#. It allows you to let the compiler figure out the type of a variable. For example:

auto something = 123;

The compiler will automatically figure out that something is of type int. The above is a very simple example and in this case the developer can easily figure it out. However, with template types and template meta programming techniques it can become difficult for the developer to figure out what the type exactly is.
Consider the following loop:

for (vector<string>::const_reverse_iterator criter = vec.rbegin(); criter != vec.rend(); ++criter) {...}

With the auto feature this could be rewritten as follows:

for (auto criter = vec.rbegin(); criter != vec.rend(); ++criter) {...}

which is much easier to type.

This auto feature is also useful for variables that store a function pointer or lambda expressions because the compiler will figure out the exact type for us. Lambda expressions will be briefly described in another blog post.

Windows XP Service Pack 3 (SP3) Released

The Windows XP Service Pack 3 was released a week ago, however it had a compatibility issue with Microsoft Dynamic RMS. Because of this, the service pack was brought offline again.

Now Microsoft has fixed the issue and SP3 is again available for download. The Dynamic RMS issue is solved with a hotfix. The recommended way of installing SP3 is by using Windows Update, which will download only what you need, saving bandwidth. That way it’s typically around 70 MB.

If you need to install SP3 on multiple machines, you can download an installation package which is around 316 MB. If you are running Microsoft Dynamic RMS, it is recommended to first install the Dynamic RMS hotfix from here.  SP3 can be downloaded from here.

SP3 contains more than 1000 hotfixes and patches. Some new features are also included but which according to Microsoft “do not significantly change customers’ experience with the operating system”.

Trip to Seattle 2008

In my previous blog entry I posted some pictures related to the MVP Summit. The event was 4 days but I stayed a few days longer in Seattle together with my brother. In this post I’ll post some pictures of those days. Read the rest of this entry »

Microsoft MVP Global Summit 2008 Pictures

I finally found some time to post a few pictures of the Microsoft MVP Global Summit 2008 in Seattle. The summit was great. There were 1753 MVPs from all over the world attending the summit. The sessions given by Microsoft product groups were very interesting. I went to all the Visual C++ sessions and it was great to hear the direction in which they are going with the product. One thing they made perfectly clear is that MFC is not dead :) They are putting interesting new things in upcoming versions of MFC which allow you to create modern user interfaces for your MFC applications. One such thing is the ribon bar which is part of the MFC Feature Pack for Visual Studio 2008. Below you can see some pictures taken during the summit. Read the rest of this entry »

Blog back online

During my trip to the Microsoft MVP Global Summit my blog was hacked and I had to take it offline because it was trying to infect users with a virus. It took my quite some time to restore everything :(

Personally I just cannot understand why people hack blogs or any other site for that matter :x Anyway, everything should be working again now…

Wallpaper Cycler: Bug Fixes and New Features

The following new features have been implemented in Wallpaper Cycler:

  • New option to disable word wrapping for notes in calender notes objects.
  • Some Open/Save dialogs now have the true Vista layout when running on Windows Vista.

I also made the following bug fixes for Wallpaper Cycler:

  • WPC crashed when loading BMP files that where compressed with for example RLE8 compression.
  • By default WPC will no longer make a sound when cycling or when CPU Load is too high to cycle. Of course this can be enabled again in File > Document Properties.
  • The screensaver will now wait until the transition effect is finished before starting the timer for the next image.
  • The “Circles Out” screensaver transition effect didn’t always completely covered the screen depending on your resolution.
  • Wallpaper Cycler didn’t always start automatically when logging in to Windows and autostart was enabled.
  • Cycle-at-times would not check exactly at the new minute when resuming from standy or hibernation.
  • Fixed some problems with the cycle-at-time feature especially in combination with hibernation.
  • You could press the “Delete” key on your keyboard to delete the “My Layouts” category which would crash WPC.

Microsoft MVP VC++ 2008 Award

Yesterday April 1st (not an april fools ;) ), I got an email from Microsoft saying that I got the Microsoft MVP Visual C++ Award for 2008. MVP stands for Most Valuable Professional.

 See my MVP profile.

On the same topic, I’m also looking forward to the Microsoft Global MVP Summit in Seattle. This is a 4 day gathering of MVPs from all over the world and starts on 14th of April. It will be a great time to get to know some fellow MVPs. :)

Latest ScrnSave.Lib depends on ChangeWindowMessageFilter

I was trying to port a screensaver from Visual Studio 2005 to Visual Studio 2008.

After loading the project in VS2008, compilation went without any problems. However, when I tried to test the screensaver on a Windows XP box I got the error message that the function ChangeWindowMessageFilter could not be found in user32.dll. The first thing I did was to open the MSDN and search for this ChangeWindowMessageFilter function. According to the documentation ChangeWindowMessageFilter is only available on Windows Vista. I obviously didn’t use that function myself otherwise I would have known about it in the first place ;) So I checked the libraries that I was linking to. The most obvious candidate would be the ScrnSave.lib library. I searched for it and it was linking to the version that was installed by Visual Studio 2008 in C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib. To make sure I did a “dumpbin /symbols ScrnSave.Lib” on it and it was indeed using the ChangeWindowMessageFilter function.

It is pretty strange that this ScrnSave.Lib is dependent on a Vista API call. This just annoys developers that try to create a screensaver that still works on Windows XP. It should be pretty easy for the developers of ScrnSave.Lib to dynamically load the user32.dll and see if ChangeWindowMessageFilter is available.

Anyway, the easiest and quickest workaround that I’m using right now is to use the ScrnSave.Lib from the Visual Studio 2005 installation. After recompiling my screensaver with this older library it works again on Windows XP.

Wallpaper Cycler: Bug Fixes and New Features

A new iteration of the Wallpaper Cycler development has started.

The following new features have been implemented in Wallpaper Cycler:

  • When a layout doesn’t contain a wallpaper object with the “Which Wallpaper” property set to “Auto” a warning will be shown. This is done because in that case certain aspects of WPC will not work as expected. Double clicking a wallpaper in the main window for example will actually NOT show that wallpaper on your desktop because that’s the “Auto” wallpaper.
  • A new option in Tools > Program Settings > Global > Startup called “Delay load last WCL at startup”. This allows you to specify a delay in seconds before Wallpaper Cycler will reload the last WCL file at startup.
  • You can now make a printout of your calendar notes.
  • %wallpaperfullname% can be used in text objects on layouts to display the full pathname + extension of a wallpaper and not only the filename part like %wallpapername% does.

I also made the following bug fixes for Wallpaper Cycler:

  • When using “Random from fixed category” for a wallpaper object in a layout, WPC will now recursively select a wallpaper from the selected fixed category.
  • Some configurations of wallpaper objects in layouts didn’t take disabled tags into account.
  • The “Quick Disable” feature now properly checks all wallpapers currently on the desktop to determine if it needs to cycle when disabling a category or tag.
  • WPC would crash with truncated BMP files. Most photo editing programs are also unable to load those, however, now WPC loads them without a problem, at least when they are not too damaged.
  • The Vista gadget didn’t install on Vista 64 bit in the correct folder.
  • You were unable to specify “-1″ for the “Days After Current Day” in layouts > Calendar Notes Object > Edit Calendar Notes > General

The .NET Language Integrated Query (LINQ) Framework

LINQ (Language Integrated Query) is a recent powerful addition to the .NET framework and allows you to query your data sources in an elegant and simple way. In this post I’ll give a very brief introduction to LINQ and how it makes your code much more readable. Read the rest of this entry »