My Article “Advanced C++ Tips and Tools” on Amazon

My article “Advanced C++ Tips and Tools” is live on the tech.book(store) website of Amazon.

C++ allows you to write clean, safe and fast code, and writing it is even easier than ever thanks to new features in C++11. This article highlights a couple of tips…

You can read the full article here.

Share

Next BeCPP UG Meeting Planned For June 12th, 2013

The next meeting of the Belgian C++ Users Group is planned for Wednesday June 12th, 2013 at 18:00 at Nikon Metrology HQ.

Nikon Metrology ( http://nikonmetrology.com/ ) is sponsoring this event by providing the location, drinks and catering.

There will be two international speakers:

  • Joel Falcou is an assistant professor at the University Paris-Sud and researcher at the Laboratoire de Recherche d’Informatique in Orsay, France. His work focuses on investigating high-level programming models for parallel architectures (present and future) and providing efficient implementation of such models using high-performance language features. He’s an active member of the Boost community and CEO of MetaScale, a French start-up valorizing his research. He is also a member of the ISO C++ Standards Committee.
  • Jens Weller is a self-employed C++ specialist, working with C++ for over 14 years. He is organizing the C++ conference “Meeting C++” in Düsseldorf, and also runs http://meetingcpp.com. Jens has some vast C++ experience gathered as a freelancer in the IT Industry.

The agenda is as follows:

  • 18:00: Sandwiches.
  • 18:30: Session 1: Qt5 – Multimedia Overview (Jens Weller) The talk will give a short introduction into Qt5, and focus on its Multimedia Framework, showing how to write an MP3 Player or a video recorder in Qt5.
  • 19:30: Break
  • 19:45: Session 2: Boost.Proto (Joel Falcou) C++ Embedded Domain Specific Languages Made Easy.
  • 20:45: Guided tour of Nikon Metrology followed by a drink.

Read the official announcement.

Register for this free event.

Share

Community Day 2013

The Belgian community is organizing the 7th edition of Community Day! Community Day 2013 will take place on June 20th 2013 in Utopolis Mechelen.

14 user groups will outperform themselves to bring you their view on Microsoft products in more than 25 sessions. 2013 is not a release year for Microsoft so far, so that gives us, the community, the opportunity to do deep-dive sessions in interesting topics. The biggest goal of this edition is bringing you high-quality sessions. And we’re pretty sure we have achieved that. Why don’t you take a look yourself at our agenda? Oh and don’t forget to take a look at our sponsor page, because it’s thanks to them we can organize this great event!

Convinced you need to be part of the experience again? Want to register? Great! Registration opens in the second week of May so come back soon to reserve your seat. Remember that last year, the event was sold out very fast, so make sure you’re on time!

The Microsoft Community Day 2013 is powered by:

  • AZUG
  • Belgian C++ user group
  • BIWUG
  • CLUG
  • Pro-Exchange
  • SCUG
  • SQLUG
  • ACCB.net/VBIB
  • Visug
  • WinSec
  • WinTalks
  • DotNetHub
  • MADN
  • TechNine

We hope to see you on June 20th!

Share

Join the Belgian Windows 8 apps race

And win prices :)

Share

Microsoft MVP VC++ 2013 Award

I got the confirmation email from Microsoft that my MVP (Most Valuable Professional) award for Visual C++ is extended for 2013 :)
I’m already looking forward to the next Summit :)

Congratulations! We are pleased to present you with the 2013 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate your outstanding contributions in Visual C++ technical communities during the past year.

See my MVP profile.

Share

Visual Studio 2012 Update 2 Now Available

Microsoft has released Update 2 for Visual Studio 2012 (VS2012.2). You can get it here.

Just as with VS2012.1 (which is installed as part of VS2012.2 for those of you who don’t already have VS2012.1 installed), this release contains important fixes as well as a wealth of new functionality, addressing feedback we’ve received from the community and aligning with key software development trends in the market. The new functionality primarily spans (though is not limited to) five areas of investment: agile planning, quality enablement, Windows Store development, line-of-business development, and the general developer experience.

Check out Somasegar’s blog post for more details on this update.

Share

Meeting C++ 2013 Announcement

After last years great success, there will be a Meeting C++ 2013 with 2 days full of C++ in Germany this Fall. Meeting C++ 2013 will be again at the 2nd weekend of November (8/9.11.2013). This time the conference will take place at the Lindner Congresshotel in Düsseldorf. For this year there will be 25 talks and up to 2 keynotes for the 250 attendees at the conference!

Like last year, this event is organized independently, covering most its costs over the ticket price. There will be 3 tracks about C++ this year, with the 3rd track being a theme track about C++ and UI. Talks about Qt5, XAML, wxWidgets, GTK, Apps and QML could take place in this theme track. The other two tracks will offer general C++ talks like last year. Meeting C++ 2013 is looking again for sponsors, with sponsors from last year already being contacted.

The call for papers for Meeting C++ 2013 has started and will end on May 15th. The process will be a bit different then last years. Talks will be collected, and then anonymously rated by a Program Committee consisting out of community members, organizers and sponsors. All ratings will be combined and used to do the final placement in the schedule. Speakers will have the opportunity to publish an entry about their talk at our blog this year! Tickets will be available soon, starting with the early bird ticket sale. This year there will be 250 tickets available for the conference, early bird tickets will cost €399, normal tickets €499. Early bird tickets will be sold till the end of June, after the schedule is available for one month, or till the 100 available tickets are sold out.

Share

Superhackathon in Belgium

banner_superhackathon_180x150Microsoft is organizing a Superhackathon in Belgium on 27th of March. Starting at 9AM for the Day part, and continuing until midnight for the Night part. This is a hackathon organized simultaneously in Brussels, Genk, Mons, and Kortijk.

Code, build, eat, drink & win.

Experts will be on site to help you with the last phase of building your first Windows 8 or Windows Phone 8 application. The event will be streaming live everywhere to the world.

There will be experts (many!), breakfast, pizza, coffee (lots!) and Red Bull. You can win prizes and rewards such as tickets to TechEd, Asus Vivo Tab, Lumia Phone and more.

Read more and register.

Share

Boost.Asio C++ Network Programming


I recently finished reading “Boost.Asio C++ Network Programming” written by John Torjo and published by Packt Publishing. Information given by the publisher:

Overview:

  • Augment your C++ network programming using Boost.Asio
  • Discover how Boost.Asio handles synchronous and asynchronous programming models
  • Practical examples of client/server applications
  • Learn how to deal with threading when writing network applications
  • Harness the power of Boost with plenty of examples that you can build upon

What you will learn from this book:

  • How to easily reference Boost.Asio programming
  • Synchronous versus asynchronous using Boost.Asio
  • How threading affects programming using Boost.Asio
  • Create your own echo client and server
  • More examples of client/server applications, both synchronous and asynchronous
  • Implement your own asynchronous operations
  • Co-routines: asynchronous operations with a synchronous feel
  • Use Boost.Asio for SSL Networking
  • Debug Boost.Asio
  • Use Boost.Asio for more than just networking

I love the Boost libraries, and I’m interested in network programming, so I decided to read this book. The book has a hands-on approach with a couple of sample programs. What I like is that these sample programs have been structured in such a way so they can be reused for your own projects. They are like skeleton examples, and all source code can be downloaded from the book’s website.

The book does not cover any real networking theory. For example don’t expect an in-depth discussion of how the TCP, UDP, or ICMP protocols work; that’s not the goal of this book. The goal is to show, with practical examples, how to use the Boost.Asio networking library.

While reading chapter 1, my initial reaction to the contents was rather negative. Chapter 1 is a bit convoluted, not so easy to understand, and even has a couple of errors in it. However, subsequent chapters are structured more logically and are understandable, though sometimes a discussion accompanying a piece of code can be a bit brief.

As an introduction to the library, Chapter 3 shows a basic Echo client/server example which is quite good. There is a synchronous and asynchronous TCP implementation of the client and server, and also a synchronous UDP implementation of the client and server. Subsequent chapters implement more useful client/server applications.

The book is not your one-stop destination for everything related to the Boost.Asio library, but it’s a great introduction to get you started with the library, to get to know the terminology used in the library, to learn about the difference between synchronous and asynchronous programming, to learn how to use multi-threading using the Boost threading library, and to get nice skeleton applications that you can reuse in your own projects. Several skeleton applications are provided such as synchronous and asynchronous versions, and single-threaded and multi-threaded versions.

Share

The C++ REST SDK (“Casablanca”)

The C++ REST SDK (codename “Casablanca”) has officially been released as an open source project on CodePlex (http://casablanca.codeplex.com). It includes tools to quickly write modern, asynchronous C++ code that connects with REST services.

It makes it much more easy to write application in C++ that use networking. Here is a simple example that uploads a file to an HTTP Server:

#include <http_client.h>
#include <filestream.h>
#include <uri.h>
#include <thread>

#pragma comment(lib, "casablanca110")

using namespace concurrency::streams;
using namespace web::http::client;
using namespace web::http;
 
int main()
{
  // Open stream to file.
  file_stream<unsigned char>::open_istream(L"ReadMe.txt").then([](basic_istream<unsigned char> fileStream)
  {
    // Make HTTP request with the file stream as the body.
	http_client client(U("http://www.myhttpserver.com"));
    client.request(methods::PUT, L"myfile", fileStream).then([fileStream](http_response response)
    {
      fileStream.close();
      // Perform actions here to inspect the HTTP response...
      if (response.status_code() == status_codes::OK)
      {
      }
    });
  });
  std::this_thread::sleep_for(std::chrono::seconds(10));
  return 0;
}

The library also makes it easy to create and consume JSON formatted strings from C++.
Checkout this blog post for a little bit more details.

Share

Next Belgian C++ Users Group Meeting (February 4, 2013)

The next meeting of the Belgian C++ Users Group is planned for Monday February 4th 2013 at 18:30 at Materialise HQ.

Note: The deadline for registrations is January 18!

The agenda is as follows:

  • Session 1: Effective WinRT with C++ (Francisco Almeida)
    This will be a brief overview of implementation of Windows Store apps using C++, along with its most useful libraries, new language features and, of course, common pitfalls and traps one may encounter.
    We will go over the multithreaded design of WinRT, and how modern C++ allows us to effectively cope with it, including exception handling. We will, of course, refresh some general knowledge of Windows Store app development, in the perspective of its implementation while using C++.
  • Break
  • Session 2: Threading in C++11 (Lieven de Cock)
    Threading has been a challenging and non portable job for many years, and it is one of our basic tools for the future. Though several libraries came to aid (POCO / boost / …), now it’s finally part of the language, C++11 is bringing us threading support. In this crash course we will dive into basic uses of std::thread, std::mutex, std::condition_variable, std::atomic, … Life is easier and more portable now, but did we get all we wanted ? And as always, C++ is powerful, providing constructs mere mortals should better not touch, unless you are that 1% of the user base, but most of us are not.
    We will see simple code examples explaining the std::thread basics. So lock your mutex, wait for your condition variable and atomically spin up that thread, C++11 threading is here for you. Thou shall async till eternity, or untill the future has delivered its promise.
  • Guided tour of the Materialise facilities.
  • Drink

Materialise ( http://materialise.be/ ) is sponsoring this event by providing the location, drinks and catering

Materialise_logo

The event is free for everyone, but you need to register for it.

Share

Using C++ Standard Library File I/O in Windows Store apps

By default, the following simple piece of standard C++ code will not work in Windows Store apps.

wofstream out(L"c:\\temp\\Data.txt");
out << L"Foo" << endl;

The reason is that Windows Store apps run with low privileges, meaning that there are restrictions on which files and folders you are allowed to access.
This is a problem for debugging, because often you want to quickly dump some data to a file and inspect the result.

Luckily, there is a way to make the above code work. The only thing you have to do is to grant “ALL APPLICATION PACKAGES” read/write access to the folder you want. :)

Share

TechDays 2013


TechDays 2013 is planned for 5-7 March 2013 in the Kinepolis in Antwerp.
The agenda planning is still in full swing but the first speakers and sessions have already been announced.

There will be two pre-conferences on March 5th:

  • Modern application lifecycle management with Visual Studio 2012 (Brian Keller and other speakers to be announced)
  • SharePoint 2013 Platform and App development (Dan Holme, Lieven Iliano and TBA)

Content on March 6th and 7th: focus is on developing Windows 8, Windows Azure and Windows Phone apps, of course supported by sessions on EF, tools, ASP.NET, identity and more.

There will also be a corner with MEET members and MVPs who can help you with any questions or problems you might have.

You get an early bird discount of 15% if you order tickets before January 1st 2013.

More information on the official TechDays site.

Share

Game “Live Mosaic” Released


Live Mosaic, the first Windows 8 game by NuonSoft, has been released and is available on the Windows Store.
The game was made by Francisco Almeida and Marc Gregoire.
Get it from the store.

Share

New NAS

Here is a picture of my new NAS setup, before assembly :)
I really like the web-based interface of the Synology DiskStation, it’s very powerful and intuitive.

Share

Visual Studio 2012 Update 1 Now Available


The first update for Visual Studio 2012 has been released.
This update delivers bug fixes, but also new functionality. The new functionality in this first update primarily spans four areas: Windows development, SharePoint development, agile teams, and continuous quality.

We can now target Windows XP again with C++ code, and there have been a couple of C++ unit testing enhancements. For Windows Store applications, the update includes support for both mixed-mode managed/native debugging and for native ARM dump debugging.

Get more details about the update.
Download the update.

Share

Team Foundation Service

Microsoft has removed the Beta label from their online Team Foundation Service.
You can get a free plan which you can use for up to 5 users and which can host an unlimited number of projects. Team Foundation Service provides version control, work item tracking, agile planning tools, feedback management, and more.

TFS is thoroughly integrated into Visual Studio.
I’ve personally used the service for over a month (started with the beta) and love it so far :)

Learn more about it here.

Share

CyberLink PowerDVD 12

A while ago I assembled myself a new PC in which I included a Blu-ray burner, so obviously I wanted to use the PC to play Blu-ray movies. The first thing I did was trying to find a freeware player that could play Blu-ray movies. I tried a couple, including VLC, but all of them had problems playing around 50% of my Blu-rays because they didn’t support the format on those discs. Next, I decided to look at commercial solutions and tried CyberLink PowerDVD 12. Installation on my Windows 8 Pro went without any problem. I tried all my Blu-rays and PowerDVD 12 happily played all of them without any issues. Image and sound quality for all Blu-ray discs I tested was great out-of-the-box. I played around with the settings and found a TrueTheater Surround audio option. After enabling it, audio sounded even better.
PowerDVD 12 supports a lot of different formats. Below is a list of the formats supported by PowerDVD 12 Ultra:

  • Movies: BD-R 1.1/BD-RE 2.1, BD-R 2.0/BD-RE 3.0, BDROM 2.2, BD-J, BDROM Profile 1.1 (Bonus View), BDROM Profile 2.0 (BD-Live), BDROM Profile 5.0 (BD 3D), AVCREC, AVCHD, DVD-Video, DVD-VR, DVD+VR, VCPS, VCD, SVCD, CD
  • Videos: 264, 26L, 3G2, 3GP, 3GP2, 3GPP, ASF, AVC, AVI, BSF, DAT, DIV, DIVX, DVR-MS, FLV, H264, JSV, JVT, M1V, M2P, M2T, M2TS, M2V, M4V, MK3D, MKV, MOD, MOV, MP4, MP4V, MPE, MPEG, MPG, MPV, MTS, MVC, QT, TIVO, TOD, TP, TPD, TRP, TS, TTS, VC1, VOB, VRO, WM, WMV, WTV**
  • Photos: BMP, JPEG, JPG, PNG, TIF, TIFF, MPO, JPS, ARW, CR2, CRW, DCR, DNG, ERF, KDC, MEF, MRW, NEF, ORF, PEF, RAF, RAW, RW2, SR2, SRF, X3F
  • Music: AAC, AC3, ADTS, AOB, DTS, FLAC, M4A, MID, MKA, MP2, MP3, MPA, OGG, RMI, WAV, WMA

PowerDVD 12 supports Blu-ray 3D, 4K video playback, and HDMI 1.4, and has optimization support for 3rd gen Intel Core processors, and GPU’s from both AMD and NVIDIA. Media can be enhanced in the following ways:

  • TrueTheater HD – Upscale SD video to HD quality
  • TrueTheater 3D – Watch 2D movies, videos and photo in 3D
  • TrueTheater Motion – Up-converts the frame-rate for smoother video playback
  • TrueTheater Lighting – Delivers superb colors and improves image detail
  • TrueTheater Stabilizer – Minimize the shakiness of your videos
  • TrueTheater Denoise – Removes blocky or pixilated effects
  • TrueTheater Stretch – non-linear stretches your 4:3 video to 16:9ratio

CyberLink also has an App called “PowerDVD Remote” which allows you to control PowerDVD from your smartphone or tablet. It supports full navigation and playback for Blu-rays and DVD’s. It can also wirelessly play and save videos and photos from your smart device to your PC; turn you smart device into a wireless keyboard and mouse pad for your PC, and it supports multi-touch control to remotely rotate and zoom-in photos. Unfortunately, the App is currently only available on the Apple App Store and on the Android App Market. Since I have a Windows Phone, I was unable to test this functionality. I think the App is a great addition to PowerDVD, so I really hope they release a version for the Windows Phone.

Visit the PowerDVD website.

Share

Windows App Day on November 23rd

Microsoft is organizing a Windows App Day on November 23rd, officially described as follows:

Don’t miss the first Windows App Day, packed with national and international speakers to talk about App Development, User Experience and Design. Our speakers are all actively working on apps and ready to share learnings and best practices.

Your App Day kicks off with a joint keynote with Belgian app cases, by Belgian companies, on Windows Apps.

After the keynote we split into two tracks: one focused on UX, designers and web experts; a second one for developers. You are free to switch tracks during the day to compose the schedule of your taste. Find detailed info on the sessions and our speakers on our Windows App Day page!

Scoop: On the Windows App Day, Microsoft will be announcing a contest around Windows 8 where they’ll have devices as prizes for developing apps, so start thinking about possible Apps that you could develop for the contest. Details about the contest will be made public at a later date.

When: Friday 23 November 2012, 9AM to 6PM
Where: ALM Meeting Point
Filip Williotstraat 9
2600 Antwerp (Berchem)

Share

Visual C++ November CTP, now with more C++11

As promised, Microsoft is releasing out-of-band updates for Visual C++. A preview of the first such update has now been released as the November 2012 Compiler CTP. This is a Customer Technology Preview and does not come with a ‘Go Live’ license, but it allows you to start experimenting and testing new features, and to provide feedback.

This November 2012 CTP contains a lot of new C++11 features:

  • Variadic templates
  • Uniform initialization and initializer_lists
  • Delegating constructors
  • Raw string literals
  • Explicit conversion operators
  • Default template arguments for function templates

More details, including installation instructions and how to give feedback can be found here.

Download the November 2012 CTP and start playing with these new C++11 features.

Share