Monday, December 19, 2011

There is a fair amount of talk around the dangerous legislation (aka. SOPA) that is currently in the United States of America congress. The legislation would give the Department of Justice unprecedented power to “blacklist” websites without a trial and give Hollywood copyright holders a new way to shut down a website’s financial services for alleged copyright infrngement. Basically, is an Internet censorship legislation in the hands of the US, which as we all know, is terribly dangerous and potentially catastrophic for all digital professionals.

So, what can I do about it? I can spread the message and tell my friends and colleagues about it. What about you? Here are some ideas on how you can help out. Google, Aol, Facebook and others are already backing up the anti-SOPA movement. Remember, censorship is just another tool for big companies and powerful people to dictate what is allowed and what is not, and generally, that which is allowed is what pays enough ! We don;t want to pay for being able to be creative, innovative and continue the efforts to make technology available to everyone !

Sunday, December 18, 2011

I was on a vacation trip in Paris last week. I did a lot of museums, walking, sight-seeing, food (lots of cheese) and really good wines.

Among the things I saw, was another giant 30-foot-tall Nokia Lumia 800 Windows Phone along the Marche du Noel in Champs-Élysées.

This wasn’t only a giant ad, it was a functioning interactive screen emulating the actual phone and broadcasting Christmas activities every day, including Santa listening kid’s present wishes. The stand also had several real Nokia devices for people to test and play with.

After seeing the giant 4D projections in London, it was a nice surprise to see something similar in Paris. It seems to me that Nokia and Microsoft are doing a good job creating awareness. The Lumia 800 is definitely the sleekest Windows Phone out there, and I’m sure there are more to come.

The Windows Ecosystem just keeps getting better and better. This apps works incredible well with the updated Xbox Dashboard which gets the console user interface inline with the Metro Style, which is already implemented in Windows Phone and will be the way to go for Windows 8 applications.

The Windows Phone application allows you to control your Xbox with your phone.

After downloading and installing the application on your phone, you synchronize it with your Xbox console and then you will be able to use it to navigate your content with your phone.

The configuration process is easy and quick. You need to enable the companion app on your Xbox first, and then run the app on your phone. The console will detect the app and will configure all the settings. Once that is done, you are ready to go.

The app has two basic modes: Content and Remote. The ”Content Mode” displays links and lists of your favourite content so you can get to it just with a couple of taps on your phone. This includes games, videos, and apps. The “Remote Mode” displays an Xbox remote like interface that you can use to navigate your Xbox interface as you will do with a traditional remote.

It works really well. The Windows Phone app is responsive, easy to use and quick and the synchronization between the two platforms is neat. The user interface looks cohesive between the two platforms. This is good because it makes it easier for users to learn how to use it. When Windows 8 is released and the Windows Marketplace is in place for native apps, the ecosystem will become complete.

Go ahead and check it out. It might become quite handy and keeps you from having to by yet another remote, which is a nice thing

Thursday, December 15, 2011

To get up to speed and start developing Surface 2.0 applications you need to get the SDK, runtime and development tools.

First, you need to have Visual Studio 2010 installed. You can get on your way with the express version, or any other higher license.

After that, you need to download and install the Surface 2.0 SDK on your machine. Once installed, you will need to reboot your machine.

After restarting, install the Surface 2.0 runtime. This will install the required assemblies that are normally available in actual Surface units, but that you will need to install for development on your normal machine. You don;t need to reboot after this step.

That’s it ! Go ahead and run visual studio. Choose to create a new project, select the Surface templates on the left tree-view, select Surface 2.0 and then the type of application that you desire.

Just for a quick test, add a text greeting and an image and run the project. This will confirm that everything is working and that you are ready to start building the next generation of multi-touch, multi-user Surface 2.0 applications !

Microsoft is about to start manufacturing and releasing to the market the highly expected Surface 2.0 Samsung SUR40 units. The new hardware is sleek and will provide a more engaging experience than its predecessor. The price is still steep for most mortal consumers, but cheaper than its previous version. It will be around $7,600.

A couple of years ago I was able to be part of the development team in several Surface 1.0 projects. They involved really cool interactions between the table, external screens, mobile phones and the use of web services, blue tooth and wireless networks. The work was intended to explore the next generation Surface user interfaces and potential applications.

Back then, the Surface 1.0 table was arguably the most advance multi-touch and multi-user experience out there. Although I have seen really cool experiments with TuIO and out of home experiences, Surface multi-touch contact point and gestures detection was far advanced.

With recent advancements in touch surfaces and underlying technologies, devices like tablets, slates and smartphones have taken the experience far ahead.

Surface 2.0 provides a promising platform for developing multi-touch, multi-user graphic intensive applications. The good news is that the new software development platform is far more aligned with the current state of the Microsoft ecosystem. Surface 2.0 development is based on the .NET Framework 4.0 and uses WPF 4.0 and XAML/C#. It also runs on top of the Windows 7 native touch runtime.

Now is a good time to take out some rust and dust from the Surface arena, and refresh SDK, development tools and development references. Here are some useful bits:

You will need Visual Studio 2010 (Express version should work) and Expression Blend if you have it, which is the best user interface development tool in the market, no matter what other platforms say. Believe me, I have worked with iOS, Catalyst and Android UI development tools and Blend is far ahead, easier to use and more powerful.

Surface 2.0 is seen with interest by the industry and the progress made from the previous version will make it a very attractive development platform. Remember that if you are already a WPF or Silverlight development, you are virtually a Surface developer too !

Tuesday, December 13, 2011

The concept of “making things” is wide, complex (or extremely simple depending on the point of view) and can be applied to almost anything on any industry. As a developer, I’m used to make things. As a hobbyist musician and former actor and writer, I’m used to make things….just in a slightly (or not) different way.

However, this is one of the first time that I have been given company resources and office time (real office day hours) to simply “make something” that doesn’t involve any client work and have actual fun with technology.

When the idea was proposed I though it was brilliant. Instead of all the politic and organizational complexity of organizing and assigning R&D time, coordinating projects and measuring results, the company decided to go with a simple two day event where every body could do whatever they want, as long as it involved making something, having fun and of course, presenting the results to the whole office (you won’t believe how competitive people can get, especially tech people). You can read more about the whole thing at Russell Davies blog post.

An ACER Iconia tablet with the Windows 8 Developer Preview on it !

As soon as the idea was proposed, I immediately knew I wanted to make something with the new technologies I have been keeping an eye on: Windows 8 and Windows Phone 7. I also wanted to combine those two platforms and new technology goodies with a real practical and useful data source that could eventually feed any app on any platform.

When?

R/GA Make Day took place from Monday end of day to Wednesday. My worked hours count went to about 20 for the whole event. Basically two days to make things happen, prepare the demo for the whole office (with last minute fix-on-the-spot story).

How?

With passion and dedication. All of us learned new tools, new techniques, new guidelines, new frameworks and in general new technologies and platforms in a few days and put together a working integrated solution.

For Make Day our team consisted of:

Danny Lee - in charge of the Windows Phone and a last minute Silverlight 4.0 out of browser app.

Above, screenshots from the Windows Phone Locator App !

Silverlight 4 Locator App – The News and Activity Feed !

Sebastien Jouhans - responsible for the cool face recognition open source app integrated with Arduino and including Text to Voice goodies. Seb also published his take on the project on his blog.

Myself, in charge of putting together the data base using MS SQL 2008, implementing a small .NET 4.0 modular framework with C# and exposing the whole system’s RESTFul services implemented using WCF. I was also the handy Sys Admin hosting all the backend goodness.

The most exciting part was the Windows 8 Metro Style tablet application, which I had been following for a while, but only had less than a day to put together ! All Metro Style, using XAML and C#.

What?

To put it as a simple idea, we wanted to build a platform for face recognition check in, so users can easily find colleagues across offices. Whenever a colleague gets in to the office, the app at the door performs the face recognition process and when the person is recognized it opens the doors and checks in the person at that office communicating with the services. As soon as someone is checked in, the Silverlight app running inside the office shows the person’s information and checking message.

Then the Windows Phone app and the Windows 8 apps can display the colleagues and different locations information, facilitating finding colleagues across offices. In our case, this is particularly useful since we have two different offices in London and we need to go back and forth for meetings and such, so knowing where a colleague is at any given time is quite useful.

Results?

Unfortunately we didn’t won the first price, but came second. Some simple and practical ideas may be more attractive than complete platform ecosystems ;) But we received good comments and feedback from all the colleagues and that is good coming from such talented people.

Notes about the core

Finally the RESTFul services allowed me to put together some practical concepts together. I used N-tier module approach, with a central Infrastructure project referenced by all layers, facilitating infrastructure code sharing. I also used the Entity Framework as data model layer since I have mostly worked with LinqToSQL. Then I used WCF to create a SOAP service and on top of it I exposed the REST XML services. This is a really cool recipe, since it allows the backend to eventually integrate with other SOAP based backend services that might required encryption, authentication and other more complex service integration, but at the same time allowed me to expose simple HTTP REST services in XML format. The underplaying code is the same, so is easy to maintain and can easily be enhanced to expose JSON format services.

Another interesting fact is that we managed to integrate open source with closed source applications to achieve a better solution. This is something rarely done and I have seen very few practical examples in my career. People tend to use only one platform and is inclined to be in favour or against one or the other, but we just demonstrated how two different technology philosophies can be combined to created a better, feature rich outcome.

I think that the event was a complete success. It was impressive how some teams came out with awesome finished applications and ideas and how everybody took their two days quite seriously. I believe it really helped to raise the bar and get everyone closer as a team. Hopefully we will some some ideas and projects come to life in the near future.

Until the next Make Day…and if you like the idea, propose it at your company. I guaranty you will at least have some fun learning new cool stuff !

Lots of nice, sweet and delicious snacks from the .NET world recently.

Windows Phone 7 adoption and marketplace continues to grow, specially in Europe thanks to the release of the latest Nokia Windows Phone handset. Windows 8 development is keeping many in the Windows ecosystem working hard after office hours building cool stuff with the new WinRT framework.
On other news, Microsoft just released Silverlight 5, the latest version of the technology that started as a browser plugin and a subset of WPF, but that has become almost a platform by itself, powering not only the browsers but also the mobile platform and rumours about Silverlight also powering the Xbox Live platform soon !
Regarding tools, there are several previews out there. Starting with Windows 8 Developer preview, you can get the corresponding Visual Studio 2011 and Blend developer previews. However, if you are still hesitating, there are a couple of really cool previews on Win 7 + .NET. Visual Studio 2011 Dev preview is also available for our stable win 7 platform and has a lot of new goodness for everybody. Along with that, check out the Team Foundation Service Preview, which brings you the power of TFS running on the Azure cloud.
All this is part of a huge effort from Microsoft’s part to align and integrate all the different services, platforms and technologies around the Windows ecosystem. Microsoft has tried many times and arguably failed, but for all people looking beyond the brand and stigma, this time it seems that Microsoft is doing the right moves at a steady pace from several different fronts. Consumer success story is what they are targeting in the most ambitious renovation of any of the big tech companies of our times.
This is the Windows Ecosystem and its BIG !
What are you waiting to get on-board?

Monday, December 5, 2011

Along the same lines of my latests posts, today I found out that Microsoft is about to revamp the XBox Live platform to a point where the XBox 360 console will challenge Cable Boxes.

According to this article published by the New York Times, Microsoft will start working on the system to allow users to watch television through the console. On top of that, users will be able to enjoy an enhanced experience through the Kinect, powering users to perform search and browsing to gestures and speech commands.

Users will still need to cover the fees that Cable providers will for sure continue to impose on channels and films watched through the console and also cover the Microsoft Xbox Live membership which at the end might be even less that what you would pay for your cable box, but with the increasing prices of TV packages and the poor service that most of them give to consumers, I'll bet that it might be still a really competitive and satisfactory service.

Microsoft has already made great improvements to the XBox ecosystem including gaming, user libraries, computer interaction and Windows Media Center enhanced experience. It has come from a long road and although it had some bumps along the way, the console and the platform have been doing great in the past months.

Its a truly exciting time for the Windows platform, and honestly Microsoft seems to be putting together all the ecosystem pieces in a way that was not possible before. Although they might not be the first integrating and providing a functional and cohesive ecosystem, they seem to be willing to go beyond what the competitors (Amazon, Apple and Google) are doing on other fronts.

Its a challenge but most of all, a huge opportunity for the technology industry !

Sunday, December 4, 2011

Wanted to share my progress regarding Windows 8 and the Metro Style Application development. After installing the Windows 8 Developer preview on a virtual machine I have been playing around with the new WinRT Framework,
Although I have experience developing WPF, Silverlight and Surface applications, I always find interesting and fun to start from scratch with new technologies and frameworks and see how you can progress from the very basic start to more complex ideas and projects.
That being said, I have been coding Metro Style Apps during the weekend following the starter and sample articles published by Microsoft and the Developer Division.
Here is a video of my take of Hello World !

Recently I was able to finally install Windows 8 Developer preview in an old laptop and an Acer tablet to see how it feels and responds. I must say I really like the new touch interface, the cleanness and simplicity and all the new opportunities that will bring to .NET developers like myself.
Anyway, today I wanted to install the OS including the dev tools as a virtual machine on my Alienware M15x laptop (which by the way is now a conspiracy theory )and I run into some issues before I was able to make it work.

Once I manage to install the VMWare Workstation 8 and setup the Virtual Machine for my Windows 8 64-bit installation, I was getting the following error when powering on the VM:

There are several posts out there to help you perform the installation step by step. You can take a look here and here.

Basically, I needed to remove and setup the Windows 8 VM specifying that I was going to setup the OS later, to avoid the Product Key and unattended installation error.

Then, once the VM setup is completed, VMWare Workstation will try to power on the VM, but since there’s no OS installed it will fail. At that point you need to mount the ISO image to install Windows 8.

I have been working on a project requiring localizations for several languages. Content localization was implemented using a third party vendor and content submission and fetching is done through web services.
However, we also needed to localize several HTML templates generated by the system upon request. Since the templates text and layout is pretty much fixed, we decided to go with ASP.NET resource files.
Now the basic concept is that you create a default resource file containing all your localized resources and then you create copies of the default resource file for the required cultures and locales. You can create resource files for general languages or specific country locales.
Most of the languages were created without issues. Later I needed to add a new resource file for a new locale, but when after adding the required resource file, I was getting the following error:Compiler Error Message: CS0101: The namespace 'Resources' already contains a definition for ‘Templates’
This was really annoying because I was sure the resource file name was unique and the file was not duplicated. Refreshing the page sometime gave me variations of the same error, but nothing helpful.
Looking around online for answers, I found almost everybody saying that the problem was for sure that two entries in the same resource folder had the key of ‘Templates’. However, after checking several times, and deleting and re-adding the file, I got the same error message.
Suddenly I realised the true cause of the problem: the culture info suffix I was using for the new resource file was not recognized by ASP.NET and therefor the file was being seen as a duplicate. When you add a new resource file, I was using the same ‘Template’ naming convention, followed by the culture info (in this case en-HK) and the ‘.resx’ extension. The correct culture info was actually ‘zh-HK’. Once I changed the problematic culture info, the error was gone and the app was working as expected.
Hope it helps if you get into the same annoying situation with ASP.NET resource files !