Universal App of Things – The Server Side

October 14, 2014

Those who know me know that I love gadgets, and more than that, I love writing code for gadgets. I have used Internet of Things before it was called like that (IoT). My biggest gadget is my home. I have a home automation system based on EIB/KNX technology. The nice thing about this technology is that there is no central processing unit. Many home automation systems are based on a central PLC that controls the house. In EIB/KNX, each device is connected to a bus. The device is actually a tiny computer that has its own physical and logical bus...

Windows 10 Kernel Changes

As you probably know, you can download and play with the first bits of Windows 10. While there are many things to discover in the User Interface of the Windows Shell and WinRT applications, I like to dig and find Kernel changes. To do that I use several tools from Sysinternals and Debugging tools for Windows (which are part of Windows SDK now). I installed Windows 10 x64 bit on Hyper-V:   I have also created a Windows Azure Windows 10 Server Machine:     Using Sysinternals WinObj I have found that there are new two...

OzCode Release 1.0 is here

June 30, 2014

After a vast investment and hard work, we are more than proud to release OzCode Version 1.0. OzCode is an innovative debugging Visual Studio extension. Once you start debugging with OzCode you will not want to go back and debug without it. Like any other productivity tool, OzCode saves you time and effort. OzCode provides a debugging toolbox. The debugging process is a cognitive task that requires you to be patient, have a good knowledge of the system, have a deep understanding of the software being debugged and of course know the debugger abilities and capabilities. As many other...

Microsoft is (finally) heading the right direction

April 4, 2014

It is now almost the end of Build2014 conference, and as opposed to previous years, this year the message is clear, one Microsoft, one (universal) way to target phone and Windows 8.1 modern applications, and in the future XBox One apps. Microsoft is way more open compared to previous years. Roslyn is open sourced – the project was published live, on stage, the .NET BCL code is on the web, just search for it using Bing. Build 2014 is about devices & cloud. Nothing about Windows 9 or Windows Server. Many new announcements about new features of Microsoft Azure,...
no comments

Long time no write…

April 2, 2014

It's been a busy period, the busiest since we established CodeValue. A week ago, my son asked me, "daddy, when will you come home not for doing more work?" Finally, I have a good answer! I am at Newark airport heading to San Francisco to Microsoft Build Conference and on Friday, my family will join me for a family vacation in Hawaii. In the last few months, I have been doing software architecture for two complex and large applications. Besides that, I delivered couple of architecture lectures and last week I gave an Advanced C++ 11/14 course. ...
no comments

Introduction to C++ 11 Series – Part 10, Ranged-Based for-Loops

April 9, 2013

Yes, this is post #10 in the C++ 11 series. The last post was long and complicated. In this post, I would like to write about something simpler - Ranged base loops. Ranged Based Loops, are like the C# foreach loop. The idea is to simplify iteration syntax on containers that have a beginning, an ending, and a forward iterator. Suppose we have this vector: vector<int> v; for (int i = 1; i <= 10; ++i)        v.push_back(i);   To iterate through the vector elements, use: for (auto i: v)       ...

Introduction to C++ 11 Series – Part 9, R-Value, L-Value, Move Semantics and Perfect Forwarding

April 3, 2013

Take a deep breath; this is a long post about one of the most important and most complex features of C++ 11. One of the most performance-boost features of C++ 11 is the new move semantics addition to the language. This feature is based on a new reference – an R-Value reference. In this post, I am going to explain what R-Value (and L-Value) is, why we need it, and how we can use it to enable move constructor & move assignment operator. We will also see the std::move function and talk about perfect forwarding and the std::forward...

Introduction to C++ 11 Series – Part 8, Lambda Expression or Functions

April 1, 2013

One of the most important features of C++ 11 is the addition of Lambda, an inline function mechanism (and a closure). Motivation The first motivation is to make this a valid C++ code: (){}(); There are many reasons to use lambda and functional programing; for example, STL algorithms use function or functor objects. STL <functional> provides a set of functors such as plus, minus, less, equal_to, etc. Most of these functors are binary functions, i.e. they take two parameters. To use a predefined binary functor in an STL algorithm, you need to...

Introduction to C++ 11 Series – Part 7, decltype, auto (again) and Trailing Return Types

March 28, 2013

There is a joke, were a guy asks his friend, “Do you know what this is?” Doing some sort of wave shape movement with his hand. When his friend answers, “I don’t know”, the guy replies, “I don’t know either, but here comes another one like this!” decltype is, like the joke says, “another one like this”. It provides a way to use the type of an expression in any place that a type can be used: Declare a variable where the type of a given expression defines its type. Declare...

Introduction to C++ 11 Series – Part 6, auto – an old keyword with new meaning

March 27, 2013

Originally, auto declares a variable in the automatic storage, which is also the default behavior. This is still the behavior of the C language. In C++ 11, auto declares a variable, whose type is deduced from the initialization expression. If you are familiar with the C# var keyword, auto is almost the same. The main difference is that modifiers such as const, &, *, **, &&, static, and volatile can be added to the auto to enhance type declaration. auto is a productivity feature, it lets you write code faster. auto is also an abstraction enhancer; you...