Kinect for Windows announced

It was bound to happen. Soon after Xbox launched the revolutionary Kinect sensor/controller for the Xbox 360 platform developers and hackers alike quickly found ways of getting it to work on the PC platform. Now a year after launch, Microsoft has announced a Kinect for Windows commercial program to be launched in early 2012.

I think the corporate boardroom could become a more interactive experience. Just think what product like Microsoft Lync and PowerPoint could do with a Kinect sensor.

The official press release follows:

Johannesburg, South Africa – 31 October 2011 – One year ago this week, Xbox 360 set out to change the way we interact with games and entertainment with the launch of Kinect for Xbox 360. Controller-free games and entertainment – once the stuff of science fiction – had become a reality through the magic of Kinect.  Sales immediately soared with more than 10 million Kinect sensors sold, setting the Guinness World Record as the fastest-selling consumer electronics device in 60 days along the way.

Kinect opened up Xbox to a broad set of new audiences bringing new categories of entertainment to the platform.  Leading brands such as Disney, Sesame Street and National Geographic were inspired by the simplicity and intuitiveness of Kinect’s gesture control technologies, developing immersive, fun experiences for everyone.   

People were inspired. Six months ago, a diverse group of hobbyists and academics from around the world embraced the possibilities of Kinect. In a wave of creativity, they downloaded the Microsoft Kinect for Windows SDK and began developing creative applications and innovative uses in healthcare, education, art and so much more.  Microsoft has recognized this phenomenon as “The Kinect Effect.”

Marking the 4th of November anniversary of Kinect, (South Africa launched Kinect on 10 November 2010), Xbox 360 today announced that the Kinect for Windows commercial program will be launched early next year. The commercial program will give businesses the tools to develop applications that not only could improve their own operations, but potentially revolutionize entire industries. To date, more than 200 businesses worldwide—including Toyota, Houghton Mifflin Harcourt and Razorfish— have joined a Kinect for Windows pilot program to begin exploring the possibilities of Kinect. While no one knows what the future holds, if the past year is any indication, it’s going to be inspiring.

How to fix the FTP service in Windows

Recently I found something rather irritating with regards to Windows Server 2003 and 2008. I noticed that FTP connections didn’t work properly when the FTP client is behind a firewall that is really restrictive. Now typically this wouldn’t be an issue for most people but I like to keep my corporate firewalls secure with specific outgoing connection rules. As a result all FTP client connections normally use passive (PASV) mode hence not requiring the server to connect back to the client and avoiding all the associated NAT (network address translation) headaches.

Anyway, recently I found a problem connecting as an FTP client to some of our customer servers as well as the new SA Developer .NET server. Using my favourite Windows FTP client, FileZilla, I was noticing the connections stall on the LIST command as follows:

 Failure to retrieve the directory listing

Its been puzzling me for a while so I started digging around and found that if the Windows Firewall was enabled on the server then connections would fail even though the firewall specifically had a rule defined to allow connections to the FTP service on TCP port 21. After some further hunting I found a really useful post that solved my problems. Open up a Command Prompt (as an Administrator of course) and type in the following:

netsh advfirewall set global StatefulFtp enable

All of a sudden all of my FTP transfer issues were gone. Its definitely a much better alternative to disabling the Windows Firewall on a server.

Shorewall restart on PPP link change

I’ve found great joy running a Shorewall firewall on a Linux box but I came across the problem that when the PPP interface for an ADSL, WiMAX or VPN link goes up or down, Shorewall needs to be restarted to take the new IP address assignments into account. To this solve this problem I’ve written a few scripts to make it all work nicely for South African users.

Firstly put the following two scripts in the /usr/bin directory (or any directory of your choice):

/usr/bin/shorewall-flag-restart.sh (chmod u+x):

#!/bin/bash
set –e
set –u
RESTART_NEEDED=/var/lib/shorewall/shorewall-restartneeded
set -o noclobber
if [ ! -r $RESTART_NEEDED ]; then
    date > $RESTART_NEEDED 2>&1
fi

/usr/bin/shorewall-check-restart.sh (chmod u+x):

#!/bin/bash

set -e
set -u

RESTART_NEEDED=/var/lib/shorewall/shorewall-restartneeded
RESTARTING=/var/lib/shorewall/shorewall-restarting
RESTARTED=/var/lib/shorewall/shorewall-restarted

# The restart needed flag is put in place by the ip up/down scripts.  If
# it doesn’t exist or is older than the shorewall restart flag file, we
# don’t need to do anything.
if [ ! -r $RESTART_NEEDED ]; then
    exit 0
fi
if [ -r $RESTARTING ]; then
    exit 0
fi
if [ $RESTARTED -nt $RESTART_NEEDED ]; then
    rm -f $RESTART_NEEDED
    exit 0
fi

# Make a mutex – should exit the script if this file already exists,
# due to the combination of the set -e and noclobber options.
set -o noclobber
echo "$$: `date`" >$RESTARTING

## We only remove the $RESTART_NEEDED if the restart succeeds.
#if /sbin/shorewall restart >/dev/null 2>&1; then
#    rm -f $RESTARTING
#    rm -f $RESTART_NEEDED
#else
#    rm -f $RESTARTING
#fi

# Remove the $RESTART_NEEDED and replace if failure.
rm -f $RESTART_NEEDED
if /sbin/shorewall restart >/dev/null 2>&1; then
    rm -f $RESTARTING
else
    rm -f $RESTARTING
    if [ ! -r $RESTARTING ]; then
        echo "$$: `date`" >$RESTART_NEEDED
    fi
fi

Then symbolic link the shorewall-flag-restart.sh script in the /etc/ppp/ip-up.d/ and /etc/ppp-ip-down.d/ directories so that the firewall gets restarted when a PPP interface goes up or down:

ln -s /usr/bin/shorewall-flag-restart.sh /etc/ppp/ip-up.d/shorewall-flag-restart
ln -s /usr/bin/shorewall-flag-restart.sh /etc/ppp/ip-down.d/shorewall-flag-restart

Then schedule cron to check for the restart flag every minute:

/etc/cron.d/shorewall-restart:

MAILTO=root
*/1 * * * * root  [ -x /usr/bin/shorewall-check-restart.sh ] && /usr/bin/shorewall-check-restart.sh >/dev/null

These scripts were developed and tested on a Debian system. If anyone has any improvements or recommendations I’d appreciate to hear from you.

SQL Server 2008 and .NET Framework 2.0 SP2 dependency explained

Recently a local SA Developer .NET community member reported an issue installing SQL Server 2008 Express as it required the as yet unreleased .NET Framework 2.0 SP2.

Well yes, SQL Server 2008 does rely on the .NET Framework 2.0 SP2. According to MSDN SQL Server 2008 requires .NET Framework 3.5 SP1 which is included in all editions except for the Express editions which require the following:

SQL Server Setup will not install the following required components for SQL Server Express and SQL Server Express with Advanced Services. You must install these components manually before you run SQL Server Setup:

  • SQL Server Express — ..NET Framework 2.0 SP2 and Windows installer 4.5. On Windows Vista, use .NET Framework 3.5 SP1.
  • SQL Server Express with Advanced Services — .NET Framework 3.5 SP1, Windows Installer 4.5, and Windows PowerShell 1.0.

A little more digging and I found Somasegar’s post about the FX 3.5 SP1 beta and subsequently a comment from Larry Sullivan, Group Manager:

First we absolutely realized that there are a number of customers still on .Net Framework 1.1 and we will look into the possibility of servicing it again.  I can tell you that the servicing requests on 1.1 are very low and the volume of servicing requests is a big part of what plays into the timing and need for an SP.  Which of course leads into your questions of why we are updating the 2.0 bits again which comes down to the fact that to provide a service pack of .Net Framework 3.5 it was necessary to provide fixes in the lower level core parts of the .Net Framework.  Given that we needed to update a number of binaries to deliver the 3.5 SP1 we made the decision to go ahead and allow an additional set of fixes into the 2.0 and 3.0 layers.   This is a byproduct of the fact that the current set of .Net Framework versions are much like a layer cake with .Net Framework 2.0 at the bottom, then .Net Framework 3.0 and finally the .Net Framework 3.5 layered on top.  Each of the upper layers has dependencies into lower layers, but not vice versa.  In other words 3.5 can depend on 3.0 and/or 2.0, but 2.0 has no dependencies on 3.0 or 3.5.  As you can see this means that some fixes or features in the 3.5 can require updates in their dependant layer to function properly.  Also, with the introduction of 3.5 we now allow for the SPs of the .Net Framework to install on both machines with predecessor version or no version at all.  This allows customers to not have to deploy two items, the RTM version and its SP, but only the SP.

So that explains it. Personally I’d like to see a list of changes for each service pack and for each service pack to have a standalone installer, but it seems Microsoft chose to bundle it to possibly hide the deployment issues away from the end user. If you look at the .NET Framework 3.5 Architecture of the .NET Framework you’ll see the following note:

Windows Vista does not support the standalone installation of the .NET Framework version 2.0 SP2 or version 3.0 SP2. Windows 2000 does not support the .NET Framework version 3.5 SP 1, nor the standalone installation of the .NET Framework version 3.0 SP 2.

At the end of the day Microsoft hasn’t concealed the FX 2.0 SP2 release, they just didn’t advertise it clearly. I’d appreciate it if they were a little more clear in their release notes.

Visual Studio 2008 Service Pack 1 released

image If you are a developer using Visual Studio 2008 and have tried to install SQL Server 2008 on top of it, you might have noticed that it doesn’t want to install. According to KB956139 Visual Studio 2008 Service Pack 1 is a required if you intend to use certain features like the the SQL Server Management Studio.

The good news is that Visual Studio 2008 Service Pack 1 has been released to MSDN. It weighs in at a hefty 831MB so hopefully it will have lots of cool stuff and performance improvements not to mention support for the .NET Framework 3.5 Service Pack 1 release that has already shipped as part of SQL Server 2008.

SQL Server 2008 ships

Microsoft SQL Server 2008 The other day during the Tech-Ed South Africa 2008 closing keynote it was announced that SQL Server 2008, formerly code-named Katmai, had gone gold and would release onto MSDN the same day. This is awesome news and the team has worked hard on this release.

The most important new features in my opinion are:

  • Spatial support in the form of the new GEOMETRY and GEOGRAPHIC data types with support for the Open Geospatial Consortium (OGC) standards.
  • New support for storing date and times, namely the DATE, TIME, DATETIME2 and DATETIMEOFFSET data types.
  • Sparse columns that reduce the overhead of NULL data on the disk.
  • Page compression to reduce the I/O costs of storing and retrieving data at the slight cost of processor performance.
  • Filtered indexes to provide optimised query plans for commonly used and under-performing queries.
  • Change Data Capture (CDC) to record changes in data across tables, seamlessly.
  • Intellisense in the SQL query editor when working against SQL Server 2008. Hopefully support for older versions is added soon.

image

You can see all the new features over here and the download is currently available on MSDN and TechNet.

Over the next few weeks I’ll be testing the new features and I’ll post my findings as I go. I’m eagerly waiting for Map Server for Windows to add support for SQL Server 2008 as I’m sure it will kick the collective butt of PostgreSQL and PostGIS.

Submit to Community Credit 1.0 plug-in released

Submit to Community Credit I happened to stumble upon the new Windows Live Writer SDK post and the example of announcing the post on Twitter and I realised I finally had a simple and effective way of publishing my blog posts to Community Credit.

I’d previously looked at the Community Server plug-in with the intention of rewriting it and integrating it into the SA Developer .NET community site but in the end I simply ran out of time and the effort required to go through the Community Server SDK documentation far exceeded the desire to get it integrated. However I stumbled upon Keyvan Neyyeri’s post about his Community Credit Service Library 1.0.

So after looking at the Twitter Notify sample from the Windows Live Writer SDK I quickly mashed together the Submit to Community Credit plug-in. The great thing about it is that it works with all blogging engines that Windows Live Writer supports. I’ve tested it with Community Server 2008 and WordPress 2.6 but it shouldn’t make any difference as it requires no server-side support.

You can download the binaries from here. I intend to build a simple installer and release the source code in the coming weeks. I look forward to user feedback and feature requests.

Windows Home Server Power Pack 1 released

Windows Home Server After months of beta testing, the Power Pack 1 update to Microsoft Windows Home Server has been released. This is awesome as it fixes the data corruption bug and finally introduces support for Windows Vista x64. You can download the update (build 1800) from here.

I’ve personally been very interested in Windows Home Server ever since I saw bits of it at the MVP Summit early in the year. What I find really cool about it is the ability to easily do centralised backups for up to 10 PCs. The server only stores one copy of each unique file thus making backups of multiple Windows machines running similar software configurations a pleasure when it comes to the disk space required. Add to that its a headless server by design and provides centralised folder shares and media sharing.

I’ll soon be posting my own how to guide on building and installing your own Windows Home Server. In the meantime, here is the write-up on Power Pack 1 from the Windows Home Server Team:

The team is pleased to announce that Windows Home Server Power Pack 1 has been released to manufacturing (RTM) and is now available on the Microsoft Download Center!

The English version is available now and German, Spanish and French versions will be available on the Download Center soon. Windows Home Server customers who don’t download it on their own will receive Power Pack 1 via Windows Update in August, and the new Chinese and Japanese versions will RTM in August, too.

As many know, Power Pack 1 provides a range of new enhancements, including support for home computers running Windows Vista x64 editions, backup of home server Shared Folders, improvements to remote access, more efficient power consumption and improved performance. And, of course, it delivers a fix for the data corruption bug. Documentation for Power Pack 1 (Build #1800, to those who have been part of the beta testing) is available here.

Our OEM partners will be updating their systems with Power Pack 1 and HP will release a software update for the HP MediaSmart Server, delivering enhanced media streaming capabilities from PacketVideo, server-side anti-virus from McAfee and compatibility with 64-bit home PCs.

Windows Home Server can now be purchased in 50 countries worldwide. And a growing ecosystem of third-party software developers have released or announced approximately 60 Add-in programs extending Windows Home Server’s capabilities. The Windows Home Server SDK has been updated for Power Pack 1, too, including new support for the client PC side, i.e. notifications to/from home computers.

We continue to hear fantastic feedback from our customers about how Home Server is helping them protect their digital media, share it with friends and family, and access it from outside of the home. Thank you to our beta testers and partners for helping us ship Power Pack 1, and to the Home Server community as a whole for its ongoing support and enthusiasm.

What’s New in Silverlight 2 beta 2

Microsoft SilverlightThe Silverlight SDK blog has an overview of what new features to expect from the Silverlight 2 beta 2 release coming this week.

Highlights for me include:

  • DataGrid improvements: Autosize, Reorder, Sort, Performance increase, and more
  • Improved Templating Model: Visual State Manager
  • Including controls in the runtime instead of having them packaged in app package
  • Limited keyboard support in FullScreen mode (arrow, tab, enter, home, end, pageup/pagedown, space) – This opens up Silverlight 2 for gaming.
  • Cross Domain support in Sockets
  • Cross Domain security enhancements
  • BrowserHttpWebRequest and WebClient callable from BackGround Threads
  • Duplex communications (“push” from Server to Silverlight client)
  • Significantly improved SOAP interop
  • ADO.NET Data Services support
  • Changes in application model for multilingual apps (one xap per supported locale)
  • CurrentCulture and CurrentUICulture Isolation

This looks like its going to be an awesome new beta.

[tags]Silverlight,Silverlight 2,news[/tags]

Silverlight 2 beta 2 releasing this week

Microsoft SilverlightSome cool news coming out of Tech-Ed North America 2008 today from Bill Gates himself. Firstly Silverlight 2 beta 2 will be available this week including a commercial Go Live license and updated developer tools such as Microsoft Expression Blend 2.5 June 2008 Preview and Microsoft Silverlight Tools for Visual Studio 2008 beta 2.

This is great news for all Silverlight developers out there. From what I’ve read online this new release is going to break some compatibility with beta 1 but increase compatibility with Silverlight 1 and add a whole bunch of new and improved features as well as improved controls.

In addition we’ll see Internet Explorer 8 beta 2 out in August.

[tags]Silverlight,Silverlight 2,news,Tech-Ed 2008[/tags]