November 2009 - Posts
Sitting most of the time near to Sasha Goldshtein leave no room for a another good post related to the PDC lectures content. Beside the keynotes most of the lectures that I attend are the FT – Future technology. The main message of the conference is that we are at the beginning stage of evolving from SOA based applications to Cloud based. Be it a global or private Cloud. Combine the server side features of the Cloud such as Hosting, Storage, SQL Server on the Cloud, Virtualization and Management with the new abilities of Silverlight and ASP.NET 4.0, you can see were Microsoft is heading. The ability to run C++ code, use T-SQL as well as hosting PHP and Java on the Cloud means that Microsoft provides the foundation to easily porting applications to the Cloud. As opposed to previous PDC events that used to provide a taste about the technology that will come in three years, this PDC deals with current and next year technology. In one hand it’s a pity, but in the other hand we can start to develop our next applications using the new tools.
Beside the content you can see that in this PDC Microsoft decided not to waste money on less important stuff such as food and the traditional party. Instead I am writing this post on a new multi-touch based Acer laptop that was given to each of the attendees. Those who know me, knows that I have two laptops, think about the security check at the airport – I need to use three trays now!
39,000 feet, no Internet, no phones, on the way to PDC 09. I am sitting in the plain with Sela COO, which also happens to be my brother (Nepotism!). This is the first time in this week that we can relax and enjoy the flight, yes it is sound strange but I hope that it will be a looooong flight. This is not my first PDC, actually this is the third time that I attend the conference. However the numbers of attendees from Sela rise exponentially. In 2005 there were two of us (Noam King and myself), last year we were 7 (Joined us Noam Sheffer, Adar Wessely, Sasha Goldshtein, Ariel Ben Horesh, Tomer Shamam) and this year we are 17. (Too long list…). Left at home many other Sela experts that easily could join us (Some of them didn't think about the PDC 9 months ago, Some wanted to attend Mix 10), So there is a good potential for next PDC. This year we also have a booth. Erez (Sela COO), Ishai (VP) and Dudu (CEO) will show to the world the strength of Sela and the Israeli high-tech industry. The PDC event is a milestone for us. It concludes the work that we did in the last year for Microsoft DPE, and it is hopefully a starting point for more projects. Last year, right after the PDC four of us flew to Redmond to start the Windows 7 Training Kit For Developers and WPF labs projects. This year Ishai and Dudu visited Redmond before the PDC. I wonder if the projects that they bring today will be also revealed in a year from now.
A short shopping list of what we achieved between the two PDCs:
- We are the major vendor in CWL
- We have prepared with Redmond DPE the Windows 7 Metro materials
- We have helped with developing the WPF Metro labs
- We have delivered Metro courses (Windows 7, WPF, Silverlight, and Azure) around the world: USA, Israel, Hungary, Australia, New-Zealand, India, Sweden, Turkey, and Portugal.
- We have developed a demo application called XP2Win7 that demonstrates the new features of Windows Vista and Windows 7
- We have prepared the Windows 7 developer launch event
- We are recording a video streaming based course on the new features of Windows 7.
- We are developing a demo game that shows how to share most of the code between WPF and Silverlight.
- We have done some other interesting projects that are still under NDA with Microsoft.
- Sasha and I have joined Yochay and Lourance from Redmond DPE and publish the "Introducing to Windows 7 for Developer" book. (Go and buy it!)
- We are developing the next WCF 4.0 MOC for Microsoft learning.
One of the nice things about the work that we have done for Microsoft is that many experts had the chance to participate. For example XP2Win7 started with Josh, Sasha Goldshtein, Dima and me, Noam Sheffer, Kosta, Tomer Shamam and Ariel Ben Horesh had joined in the middle and the last milestone was mainly developed by Bnaya , Ram Dayan, and Guy Rozen.
It is very nice and fun to have so many people from Sela. Usually we don't get to see each other very often beside mail and Messenger (@3 AM and weekends – geeks!). We all have demanding projects (and clients).
Beside education and fun we also have two main goals from the conference:
- To be ready to the coming SDP and to bring the knowledge right from the source. This is especially important this year because of the fact that there is no Tech-Ed.
- To be technology up-to-date. As a consultant and education company we must be one step ahead of the industry. It is a shame that we are the only consultant and training company in Israel that think that even in these hard times it is important to invest in the most important resource of the company (Human Resource).
Do remember that people that couldn't make it to the PDC can still hear about the new technology In the SDP. Those who are in the PDC, come to our booth, you have the chance to draw a 25.5” HP TouchSmart all-in-one computer!
Unlike my old Jasjar that I have upgraded several times using baked ROM from XDA, this time I decided not to loose HTC warranty and to do it the right way. For that I had to have the Windows Mobile 6.5 ROM. Trying to download it from HTC support web site I have found that my device is not built for the US (although I have bought it in the US). I have called the USA HTC support. I provided my serial number and got the origin of my device. It is a Philippine device, the ROM will be there in few days. I waited about a week until Noam Sheffer told me that they have released the ROM for this region. I have downloaded the ROM. To make sure that I will have the Eyron Hebrew support, I have asked them for a WM 6.5 version. They were kind to send me a link to download the Hebrew support file, however they have told me that they don’t know if it will work on the Touch Pro II. Since I am using the Exchange server of Sela to sync my device, the only backup that I needed was to the favorite, pictures, music, video, SMS and such (PIM). The easiest way to have this backup is to install (Thank Noam) the new MyPhone support. After doing all the synchronization and also using another backup application I started the ROM upgrade.
Upgrading the Rom is a process that can turn your device to a brick. According to HTC you have to close any application that runs in your desktop computer. They (and you) don’t want the computer to hang, sleep, re-boot or BSOD while you do the upgrade. My suggestion is to do the upgrade using a laptop or a machine with UPS (which can hold at least 10 minutes).
From this steps I stopped taking screen shots and used my camera instead (for a good reason).
The device started the installation:
There was something like pause or reset in the middle, but everything was O.K:
After the last reboot, a Windows Mobile 6.5 setup program has started.
After a while a Wizard asked me to setup the device and a tutorial explained how to use the keyboard.
I have also set the Exchange server account and got all my contact, calendar and mail. I have not got the favorite contacts and I have to set them manually again. To get the videos, picture, music and text messages (SMS) I have connected to MyPhone. This time I did not need to install the MyPhone software since it comes with the Windows Mobile 6.5. However it has installed an update before it started the synchronization.
I have checked the device including the TouchFlow Music tab. It works well. I used to have a problem before with the Music Tab showing “No Music Found”. I have suspected that it is a bug of the Eyron Hebrew Support.
Once I have connected the device to the desktop I have installed the Eyron Hebrew. The installation went very well. But guess what, the Music Tab bug still exists, installing the Hebrew support makes it unusable!
Beside the bug, the Hebrew support is very good. Not everything has been localized but for me it is fine since I use the Hebrew enabled with the English user interface.
So, what is my first impression of Windows Mobile 6.5? It looks good, almost Identical to WM 6.1. There are several good changes in the usability of the device. Many controls are bigger and easier to handle with the fingers. Bear in mined that HTC hides most of the original Microsoft User Interface with the TouchFlow 3D. One can notice the changes in the program (choosing the start) and in the settings tab.
I think that I’m correct when I say that the Asus Eee PC T91MT is the smallest and cheapest multi-touch enabled computer.


I haven’t got the chance to check it (Probably I will very soon) but to pay about $100-$200 more than equivalent netbook and be able to play with multi-touch and demonstrate the Windows 7 touch capabilities, this is a good deal. The drawbacks: it’s pity that the hard disk is small (32 GB) and also they could have better screen resolution (1024 X 600) and also a better CPU. In a second thought small screen resolution can give better experience with the multi-touch interface because the graphics accelerator and the CPU need to do less work when they need to draw the result image. $532 for a netbook is quiet expensive! $532 for a Windows 7 multi-touch machine is very cheap!
Anyone that missed the Windows Platform Developers user group meeting and the lecture about kernel changes in Windows NT 6.1 (I know at least about someone that asked me about a video recording of the event) don’t worry. In the coming SDP event, Dima and I will have a lecture about the internal of Windows 7 & Server 2008 R2 and about the new changes and enhancements of the system. This is the agenda:
29/12/2009 (11:00-12:15)
Server Side (SSD101)
Come and explore the engine of Windows NT 6.1. In this lecture you'll see the major changes in the kernel of NT 6.1. Windows Server 2008 R2 and Windows 7 systems are modern multi-purpose operating systems that need to run on many hardware platforms, starting with very weak computers such as Atom based netbooks to very powerful servers such as HP Superdom machine with 256 cores and 1TB of Ram. In this lecture you'll see the architecture of Windows and how the changes in the Windows kernel support the new demanding needs. Among the topics:
- Windows NT 6.1 Architecture
- NT Kernel changes
- Scalability Changes
- Power Consumption Improvement
- NUMA Support
- User Mode Scheduler
Thanks for all of you that despite the traffic jams, made it and came to the first meeting. And thanks again for your feedbacks, all of them were excellent!
Here are the links for the resources that we talked about:
My lecture about Windows 6.1 Kernel changes can be downloaded from here.
We are waiting to your comments and suggestions for the forthcoming meetings. Please spread the news about the new group!
Come and join Pavel and me to the first meeting of the Windows Platform Developers user group. If the Windows platform is interesting you (and it probably does, otherwise you won’t be reading this post) you have to come. This is the chance to influence the spirit of the group. Pavel and I wanted to have a group for people like us. Those who develop for Windows with any needed tool, not just .NET or C++ but both and even more. The first meeting will be about Windows NT 6.1, this is the shortest way to say Windows 7 & Windows Server 2008 R2. Why did we decide to have this subject? we had three good reasons: First Windows 7 has just shipped to the public. Second we were deeply involved with the work behind delivering the message to the developer audience and third it is fun and interesting. In the spirit of the new group we will start by diving into kernel changes of the new operating system and we will see how we can leverage those enhancement in our code. The second part will be the fun part when we will show the new feature using lots of demos!
This is the place to thank Guy Burstein and Yifat Haramati, without them we could not have this new user group!
So be there or be…
17:30 Microsoft Ra’anana, Dekel room
I own a Dual CPU Pentium III computer. This machine is 10 years old. I used to take it to companies back in the beginning of the millennium to teach about multi CPU programming. I have also developed and tested device drivers on it. around 2004 I began to use it as a gateway to my home automation system. It runs Windows XP with all my home automation related applications and code that I have developed. The machine became very noisy, I have replaced all the fans and put some oil but still the decibel level is too high. Lately the computer starts to generate blue screens every 3-4 hours. Usually when one of my computer goes to the BSOD haven, I am analyzing (-v) it and solve the software or hardware problem. This time I have decided to move on and replace it. As any other project I have started with the requirements.
The computer serves as a server for other applications that are connected to the home automation system. It exposes a web service that when it is called, it convert the SOAP based request to the lower level homeautomation bus command. I am using an NT service based application called Falcon to communicate with the (KNX) Instabus, the bus of the electrical automation system. Falcon exposes COM interfaces and I am using .NET Interop to use them. The computer also has a Media Center application that is hosted in IIS and let controlling the system from the various Media Center computers that I have at home as well as from any browser. Controlling the home automation from mobile devices is based on specific mobile WinForm client that consumes the web service. Since the computer is connected to the Instabus bus, I am using it to manage the home automation devices as well as using the Windows scheduler to operate the home. For example every morning the shutters are raised. Every midnight all the shutters in the house are closed. The system turn on and off the garden lights, and the system uses the Windows scheduler to turn the boiler on and off.
These were my requirements from the new computer:
- It must have an RS232 connector. This is the way I am connecting the computer to the instabus. I didn’t want to invest and buy a USB or IP connector since the current connector is good enough and does the job.
- It has to be quiet. I had enough noise!
- It has to be a solid hardware that will last at least for 10 years.
- It should run Windows 7 32 bit. I wanted to start with the most up-to-date operating system. I didn’t know if I will be able to run the Instabus software and drivers on Windows 7, but I had a clue that it will installed and run on Vista 32 bit.
- It should be energy efficient. The computer works 24/7/365 and most of the day does nothing.
Looking at the requirements I have decided to search for an Atom based industrial machine. There are so many kinds of such machine as you can see in this web site: http://www.ipc2u.com/catalog/E/
After looking at the catalog I have come to conclusion that the NISE-100 machine is my best choice: http://www.nexcom.com/ProductModel.aspx?id=54e1e6c1-7aa4-4c9b-808a-5e56dc338b4c

The main feature of the machine
On-board Intel® Atom™ N270 Processor, 1.6GHz Hyper-Threaded Intel® 945GSE chipsets Single 10/100/1000 Mbps LAN ports 2x USB2.0/DVI-I/Keyboard & Mouse Interface 1x RS232/422/485 and 2x RS232 On-board DC to DC Power Designed to Support +12V DC Power Input There are drivers for Windows Vista Seen that there are driver for Windows Vista I realized that I will be able to install Windows 7. If you look at other embedded serves, most of them does not support officially Windows Vista.
Apparently EIM is the representative of Nexcom in Israel and I bought the machine from them. I upgraded the memory to 2GB RAM.
Installing Windows 7
Since the computer has no DVD drive I have created an installation USB of the x86 version of Windows 7. Installing this machine was no different than any other computer. All the device drivers but sound (Which has no connector anyway) have been installed during the regular installation process.
The NISE 100 is very impressive computer. It even support Windows Aero.
Installing the KNX software:
Installing the ETS software was just like installing it on Windows XP. So far everything was good. I have tried to get to the instabus devices and succeeded. The new computer turn the room light on! Installing Falcon and the development tool was a different story. The installer didn’t want me to install the tool on Windows 7, no matter what compatibility feature of Windows 7 I tried.
I had to use a bigger gun, so I ask the MSIEXEC to force install the package using: MSIEXEC /qb /i FalconDeveloper.msi and it worked!
Moving the Applications from Windows XP to Windows 7
Now I was ready to move the applications from the old Dual Pentium III machine to the new Atom based machine. This step also included moving from IIS 5 to IIS 7.5 and from the Windows XP task scheduler to the Windows 7 Task scheduler.
To move the IIS applications I had to first install IIS on the new machine. This is very easy steps using the “Programs nd Features” control panel applet and choosing the “Turn Windows feature on or of”
I had to play a little bit with the configuration of IIS, to crate the virtual directories, open the firewall port, etc. After a while I was able to surf to the home automation application and manage the home automation system from other computers at my home. The next step was top change the setting of the URL on the media-center computer at my home.
The last step was to move the tasks from the Windows XP scheduler to the Windows 7 scheduler. I had about 30 tasks, not all of them were active. Some of the tasks are for the winter (Turn on the under-floor heater in the bathroom for example). Some of the tasks are for vacations, I turn lights on and off and raise shutter so thefts will think that there are people at home. Anyway I didn’t want to enter all those tasks manually. Looking for a solution I have found that the SCHTASKS command can be used to query the old task from the XP machine into XML file:
schtasks /query /S homealonxp /XML
The XML is not a well formed XML since it has many roots, one for each task. I wrote short C# code that split the XML to many valid XML and also create a batch file to import these task to the new Windows 7 task scheduler. Each command in the batch looks something like this:
schtasks /create /RU alon /RP Password /tn HomeAutomation\Open_East_Shutter_Yarden_Room /xml Open_East_Shutter_Yarden_Room.xml
The C# code:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
StreamWriter batch = new StreamWriter(@"c:\users\alon\desktop\ImportedTasks\Batch.bat");
StringBuilder sb = new StringBuilder();
using (StreamReader fs = File.OpenText(@"C:\Users\alon\Desktop\xptasks.xml"))
{
string line = fs.ReadLine();
string processorLine = "";
while (!fs.EndOfStream)
{
if (!String.IsNullOrEmpty(line))
{
if (line.StartsWith("<?"))
{
processorLine = line;
}
else
{
sb.AppendLine(line);
}
if (line.StartsWith("</Task>"))
{
string text = sb.ToString();
string fileName = text.Substring(6, text.IndexOf(" -->") - 6).Replace(' ', '_');
text = "<?xml version=\"1.0\"?>" + Environment.NewLine + text;
using (StreamWriter sw = new StreamWriter(@"c:\users\alon\desktop\ImportedTasks\" + fileName+".xml"))
{
sw.WriteLine(text);
}
batch.WriteLine(@"schtasks /create /RU alon /RP Password /tn HomeAutomation\" + fileName + @" /xml " + fileName + ".xml");
sb.Length = 0;
}
}
line = fs.ReadLine();
}
batch.Close();
string data = fs.ReadToEnd();
}
}
}
}
That it, The new computer works, the room is quiet. The old Dual Pentium III can now RIP and joined my old computers museum.
We are going to the PDC. And when I say we, I mean 17 experts and 3 managers from Sela. This year we are going to be in all sessions and meet many key professionals from Microsoft and other companies. We will also have a booth. Why do I tell you that? Not just to tell you that it is fun to work at Sela (It is, but it is also very demanding) and that we are investing in our people, but to announce that we are going to talk about all current and new technologies that will be revealed in the PDC in a special conference named SDP – Sela Developer Practice. Save the dates 27-30 December.
The conference is split to two parts, the first part is built from short sessions while the last two days are more like a workshop.
We have two keynote session lecturers from Microsoft, Yochay Kiryaty and Guy Burstein. Yochay has left Microsoft Israel more than a year ago and joined to the Microsoft Redmond DPE. Yochay had worked very hard to bring Windows 7 to the developer community. He worked very close to the developer teams at Redmond and he will talk and demonstrate all the new technologies such as Silverlight 4, WPF 4, .NET 4 and beyond. Guy Burstein works very hard to bring the most up to date knowledge to the developer community in Israel. He had founded the MSDN Pulse, a newsletter in Hebrew that cover the important news from Microsoft as well as publish original technological articles. Guy is pushing the blog community and the offline User Groups meeting. Despite the fact that Guy needs to manage a lot of things he continues to develop and use the new tools from Microsoft. In his keynote session Guy will present the exciting new capabilities of Visual Studio 2010.
Dima and I will have a lecture that deep dive into the kernel changes in Windows 7 & Server 2008 R2. We will talk about 256 core supports, 64bit support with NUMA, the new UMS and more. Noam King & Pini Dayan will talk about the new Version of ASP.NET MVC. Another lecture for the web developer audience will be given by Kosta and Adar. They will talk about the improvements in ASP.NET 4.0. Alex and Ido will talk about Silverlight. Alex will talk about the new features in Silverlight and Ido will show you how to communicate from Silverlight client to your server side application. Shai Raiten has several lectures about the new VSTS and how you can leverage the new abilities. Ariel and I will talk about Software Architecture in the modern era. We will give some good advices as well as show good patterns and practices. Another architecture lecture will be given in English. Josh and Bram will show how to scale up and out heavy computational applications using tools, technologies and good architecture. I will join Shlomo in a session about programming languages, We will present the new features and talk about the future directions. Among many things we will talk about C# 4.0, C++ Ox and beyond. Sasha Goldshtein and Eran Stiller will bring their expertise in developing WF Services and show how to have a Workflow based business logic exported as a WCF service in the .NET 4.0 era. Gil Fink and Bnaya Eshet have a session about the next version of Entity Framework. They will present the new abilities of EF 4.0. Manu and Bernie will take you to a journey in the new exciting features of WCF 4.0. Discovery, Routing, Filtering are just few of the things that they will talk about. Erez Harai will show you the power of Sharepoint 2010. He will talk about the new programming feature and tools that make this platform so flexible and powerful. We also thought about the near future. We will have two lectures about new stuff that are going to be revealed in the PDC. We gave our MVPs a mission to build those sessions.
If you search Google for SDP, you will find that SDP is the Session Description Protocol the internet standard for describing multimedia communication sessions. We are going to have a SDP – Sela developer Practice, a communication sessions that will deliver all new and great technology from the PDC.
As the co-author of the “Introducing Windows® 7 for Developers” book I wrote the two chapters about the new Windows Ribbon Framework. The first Ribbon chapter deals with the Ribbon markup language and the second chapter deals with the code behind. To let the reader the ability to understand and play with the markup language before reading the code behind chapter, I have created an open source project named RibbonExpolorer. The Ribbon team from Microsoft has also created such a tool named PreviewRibbon that they have just released.

Both tools are good and both gives you the ability to play with the markup language. The main difference is that the RibbonExplorer is built in C++ using ATL while the PreviewRibbon is built in WinForm using .NET and COM interop. RibbonExplorer also gives you the ability to change property values on the fly. So if you are a .NET developer that want to have a WinForm based application for Windows 7 and you want to have a Ribbon you can use the PreviewRibbon sources as a good example for interoperating . Another great wrapper for .NET and WinForm can be found in Arik Poznanski blog series about the Windows 7 Ribbon.
And again for full explanations of the Ribbon Markup Language and the Code behind, read the two chapters in the book.
