18 Feb, 2012
MVP of the Year
I received an amazing email from the Microsoft Community Program Manager stating the following:
“Congratulations on being awarded MVP of the Year based on your contributions in 2011!”
It goes without saying that it’s a great honor to receive this title 🙂
This year, there are 29 MVP’s awarded with the MVP of the Year title, out of around 4000 MVP’s.
I would like to congratulate all MVP’s receiving the title.
On the 1st of March there will be an honorary dinner in Bellevue/Seattle sponsored by S. Somasegar, Senior Vice President of the Developer Division at Microsoft together with other executives and community leads in the division. I’m really looking forward to this dinner.
11 Feb, 2012
C++ AMP Visual C++ 11
A while ago, I’ve posted the following posts on this blog:
Those articles were written using the Visual C++ 11 Developer Preview.
Starting with Visual C++ 11 Beta, there will be a few small changes to the C++ AMP specification compared to the C++ AMP in the Visual C++ 11 Developer Preview. Tamer Afify from the C++ AMP team explains it as follows in his blog post:
“In the Visual Studio 11 Developer Preview, C++ AMP had a grid class that was basically an extent, plus an index object representing an origin. In the Beta we have removed grid from the programming model and instead you simply use an extent. Also the tiled_grid class was removed and a tiled_extent class is introduced with the same functionality that tiled_grid provided.”
Every API that returned or accepted a grid or tiled_grid now returns or accepts an extent or tiled_extent. Most C++ AMP code can be modified with a simple find and replace operation. The find and replace operation is a bit more complicated if you have set the origin parameter of your grid to something other than the default zero index object. Check Tamer Afify blog post for more details.
Once the Visual C++ 11 Beta has been released, I will write an update for my above presentation slides and my Mandelbrot implementation.
5 Feb, 2012
C++11 GoingNative
GoingNative 2012 was a 48 hour, globally live-streamed technical event for those who push the boundaries of general purpose computing by exploiting the true capabilities of the underlying machine: C++ developers. Distinguished speakers included the creator of C++, Bjarne Stroustrup, C++ Standards Committee Chair, Herb Sutter, C++ template and big compute master, Andrei Alexandrescu, STL master Stephan T. Lavavej, LLVM/Clang developer Chandler Carruth, distributed and parallel computing expert Hans Boehm, and C++ library design expert and ISO committee member Andrew Sutton.
“C++11 feels like a new language” says C++ creator Bjarne Stroustrup, who presented the keynote at the event.
You can watch the entire GoingNative 2012 streaming video from here.
Below is a list of all individual sessions. Downloads of each individual session will come online in the coming days. These sessions are a must-see for C++ developers.
Day 1 – C++11 Today (Feb 2, 2012)
Day 2 – C++11 Today and Tomorrow (Feb 3, 2012)
3 Feb, 2012
C++ AMP Visual C++ 11
As promised, Microsoft has released an open specification of C++ AMP: Accelerated Massive Parallelism 🙂
This allows other compiler vendors to implement support for C++ AMP on any platform.
Read the official announcement.
Download the specification.
23 Jan, 2012
C++ AMP Visual C++ 11
Here are the slides of my presentation on C++ AMP that I gave to software engineers at my company.

One of the demos in the presentation is a Mandelbrot renderer.
This blog post describes this C++ AMP Mandelbrot renderer in more details.
23 Jan, 2012
Accelerated Massive Parallelism C++ AMP Mandelbrot Visual C++ 11
It is time to start taking advantage of the computing power of GPUs…
A while ago I wrote an article about how to use the Microsoft Parallel Patterns Library (PPL) to render the Mandelbrot fractal using multiple CPU cores. That article can be found here.
This new article will make the Mandelbrot renderer multiple times faster by using a new Microsoft technology called C++ AMP: Accelerated Massive Parallelism, introduced in the Visual C++ 11 Preview.
Read the rest of this entry »
23 Jan, 2012
CPPUG User Group Visual C++ 2010
The Belgian C++ User Group is organizing a dinner on Monday 13th of February at 19:00, somewhere in the Brussels area, but the place depends on the number of people coming.
Already joining us:
- Tarek Madkour from Microsoft, Principal Program Manager Lead in the Visual C++ team
- Jim Hogg from Microsoft, his main focus is C++ compiler optimizations
If you ever wanted to speak directly with the Microsoft Visual C++ development team, now is your chance.
If you know any C++ people that would be interested in this, please tell them about it.
Since I need to make reservations somewhere, please let me know (marc.gregoire@nuonsoft.com) before 31st of January if you are joining us for dinner.
If you have any questions, don’t hesitate to ask me.
PS: this is not a sponsored dinner, so everyone should pay for themselves, but that shouldn’t be a problem I hope.
20 Jan, 2012
MEET
I’m honored to have become a Microsoft Extended Experts Team Member (MEET).
The official page gives the following description of the MEET program:
Do you have a complex problem, but not the knowledge to solve it? Then you can get in contact with a community of Belgian experts.
All MEET members are selected for their knowledge and skills in their field. And they are also excellent communicators. All share knowledge through their personal blogs and they are also frequent speakers at Microsoft events or their respective user group.
MEET gets the explicit support of Microsoft Belgium and Luxembourg.
8 Jan, 2012
chocolate moelleux
Here is a picture of a home made chocolate moelleux, made by my mom. It’s my favorite dessert 🙂
If you like chocolate, you should definitely try a chocolate moelleux!
5 Jan, 2012
desktop icons
The following code will toggle the visibility of the desktop icons, and will update the checkmark in the menu when you right click the desktop.
HWND GetDesktopHWND()
{
HWND hProgman = FindWindow(_T("Progman"), 0);
if (hProgman)
return FindWindowEx(hProgman, 0, _T("SHELLDLL_DefView"), 0);
return NULL;
}
void ToggleDesktopIcons()
{
HWND hWndDesktop = GetDesktopHWND();
if (hWndDesktop)
SendMessage(hWndDesktop, WM_COMMAND, 0x7402, 0);
}
31 Dec, 2011
new year
2012
Happy New Year
Sretna Nova Godina
Gelukkig Nieuwjaar
Bonne Année
🙂
23 Dec, 2011
CPPUG MSDN Belux User Group
I’m going to try to get a C++ User Group going in Belgium, and got support from the Microsoft Developer Network (MSDN) Belux Team 🙂
Here is the official call for action:
Are you passionate about C++ and interested in finding like-minded people? Feel like coming together, setting an informal User Group in 2012? We’d like to support you in that and have a call to action for you.
Marc Gregoire, C++ MVP and author of the book Professional C++, 2nd Edition is one of the folks passionate about the technology and interested in starting up a more active C++ community in Belgium. Are you interested? Join Marc and the MSDN Belux Team for an informal discussion at the Microsoft office in Zaventem on Tuesday January 10th 2012 at 6:30 PM.
Contact Marc through email, leave a note on the MSDN Belux Team blog or reach out to Katrien De Graeve from MSDN Belux via her Twitter and we’ll see you in January.
If you are looking for some of the other Microsoft technology communities there is the full listing here: http://msdn.microsoft.com/nl-be/cc196311.
23 Dec, 2011
If you want to know which events Microsoft Belgium is organizing, take a look at www.msdn-events.be. There you’ll find a list of Live Meetings, Offline Events, Community Events, …
19 Dec, 2011
C++0x C++11 Visual C++ 2010 Visual Studio 2010
A couple of months ago, I gave a presentation about C++11/C++0x features supported in Visual C++ 2010 for software engineers at my company. You can now download the slides.
16 Nov, 2011
TechDays
The Microsoft TechDays 2012 event will be held on 14, 15 and 16 february 2012.
It’s the 10th anniversary edition and will happen in a new location (Kinepolis Imagibraine – Braine l’Alleud).
.
20 Oct, 2011
icons
In a previous post I mentioned that I would add a user-friendly context-sensitive ribbon to Wallpaper Cycler.
I’m working on that right now, and found a very interesting icon pack that contains lots of icons that I can use for my ribbon bar. It’s called the Ribbon & Toolbar Stock Icons from Axialis. Their description:
- Pixel perfect, ready-to-use royalty-free icons
- 48×48, 32×32, 24×24, 16×16
- RGB with alpha channel, RGB
- 96 PPI compatible with WPF, Silverlight, MFC, VB…
- Normal, Hot, Disabled states
- PNG, ICO, BMP file formats
- Many derivatives & overlays
- Lifetime Commercial/No-Attribution License
The set contains 1108 unique icons for €39.
And even better, you get 30% discount if you order before November 20 by following this link.
17 Oct, 2011
WIC Windows Imaging Component
The Windows Imaging Component (WIC) is a flexible and robust API for working with images on Windows. The API is extensible. Third-party vendors can create new image codecs (readers and writers) to make new image formats available to all applications that use the WIC API. Here is a brief description from the MSDN:
The Windows Imaging Component (WIC) provides an extensible framework for working with images and image metadata. WIC makes it possible for independent software vendors (ISVs) and independent hardware vendors (IHVs) to develop their own image codecs and get the same platform support as standard image formats (for example, TIFF, JPEG, PNG, GIF, BMP, and HDPhoto). A single, consistent set of interfaces is used for all image processing, regardless of image format, so any application using the WIC gets automatic support for new image formats as soon as the codec is installed. The extensible metadata framework makes it possible for applications to read and write their own proprietary metadata directly to image files, so the metadata never gets lost or separated from the image.
The MSDN states the primary features of WIC as follows:
- Enables application developers to perform image processing operations on any image format through a single, consistent set of common interfaces, without requiring prior knowledge of specific image formats.
- Provides an extensible “plug and play” architecture for image codecs, pixel formats, and metadata, with automatic run-time discovery of new formats.
- Supports reading and writing of arbitrary metadata in image files, with the ability to preserve unrecognized metadata during editing.
- Preserves high bit depth image data, up to 32 bits per channel, throughout the image processing pipeline.
- Provides built-in support for most popular image formats, pixel formats, and metadata schemas.
WIC comes with the following standard built-in codecs:
- BMP (Windows Bitmap Format), BMP Specification v5.
- GIF (Graphics Interchange Format 89a), GIF Specification 89a/89m
- ICO (Icon Format)
- JPEG (Joint Photographic Experts Group), JFIF Specification 1.02
- PNG (Portable Network Graphics), PNG Specification 1.2
- TIFF (Tagged Image File Format), TIFF Specification 6.0
- Windows Media Photo, HD Photo Specification 1.0
All codecs can both load and save the specific image format, except the ICO codec which can only load icon files and not save them.
Reading all this, it looks like WIC is pretty powerful, and the best part is that it’s easy to use as I will demonstrate in this article. Read the rest of this entry »
11 Oct, 2011
C++0x C++11 ISO/IEC 14882:2011(E)
The ISO International Organization for Standardization has now officialy published the C++11 standard 🙂
Here is part of the press release:
C++, one of the most popular programming languages used in everything from Web browsers to 3D video games, has been fully updated and published as, ISO/IEC 14882:2011, Information technology – Programming languages – C++.
ISO/IEC 14882:2011 defines the programming language and specifies requirements for implementation. Also known as C++11, this is the first major revision of the standard since 1998. Its new features extend C++’s traditional strengths of flexibility and efficiency – for example, lambda functions, move semantics, and variadic templates further enable developers to use powerful expressiveness and strong abstraction to write efficient, high-performance code with full access to the hardware available when needed. Even more, the new C++11 has the convenience and ease of use of other modern languages – from features like auto type deduction and explicit virtual override control, to standard smart pointers that mean never writing delete again.
You can read the complete press release here.
10 Oct, 2011
book C++0x C++11 Professional C++ Wiley Wrox
My book “Professional C++, Second Edition”, published by Wiley/Wrox, is now featured in a dedicated post on the Microsoft Visual C++ Team Blog 🙂
Read the VC++ Team Blog post here.
4 Oct, 2011
Wallpaper Cycler WCL WPC
Now that my book is finished, I finally have some time again to work on my development projects, and I re-started development on Wallpaper Cycler.
There are a couple of major issues that I have identified with the current released version of Wallpaper Cycler. Because of those issues, my first idea was to start designing a new version of Wallpaper Cycler from scratch. After thinking a bit about that, I changed my mind. It will be too much work. Instead, I will rewrite parts of the current version of Wallpaper Cycler from scratch to make it more robust.
Right now, I can think of the following major issues. Each item contains a solution that I’m thinking of implementing to fix the issue.
- The image loading code is not as robust as I would like it to be. It’s error prone, and crashes on certain files. To resolve this issue, I will throw away all current image loading code and rewrite it all. The result should be more robust, more resilient to corrupt image files, and more flexible. It will also support new image formats, but I don’t know yet exactly which formats. If you have image files that cause Wallpaper Cycler to crash, you can always send them to me.
- The current WCL file format often gives problems. These problems are especially noticable with big wallpaper lists (> 10.000 wallpapers). Because of the issues with the file format, Wallpaper Cycler sometimes corrupts the WCL. To resolve this issue, I will throw away all WCL saving and loading code and replace it with a completely new file format. Just as with the image loading rewrite, the result will be more robust, more flexible, and hopefully more performant.
- Too complex/confusing UI. Wallpaper Cycler has a lot of features. Unfortunately, the result is that the user interface is not always easy to use. Some people simply get lost in the user interface. To start resolving this issue, I’m thinking of replacing the toolbars with a modern, context-sensitive, ribbon bar. I’m also thinking of including an option to choose between a Basic UI and an Advanced UI. In the Basic UI, certain less used option are not shown or burried deeper away, as to prevent them from cluttering up the UI.
- The layout editor is often cause of frustration. The current layout editor has a number of usability issues. I don’t have any concrete solutions yet, but I need to find some solutions to try to make it much more user friendly, at least for basic layouts.