Craig Nicholson

My blog has moved to http://craign.net/.

News

My blog has moved to http://craign.net/.


AfrigatorI shmaak SA Blogs, sorted with Amatomu.comSign the petition for Xbox LIVE in South Africa. Locations of visitors to this page

Communities

Development Blogs

Development Tools

General Tools

Personal

New primary blog - CraigN.NET

It seems that a lot of people didn't see a previous post about my new blog over at CraigN.NET.

Please ensure that you update your feed reader with the new feed http://feeds.feedburner.com/craignnet/.

Posted: Jan 03 2008, 07:34 PM by Craig Nicholson | with no comments
Filed under:
Silverlight 1.1 UserControl C# template code does not follow best practices

Why does the Microsoft Visual Studio team not follow the best practices internally? When creating a Silverlight 1.1 UserControl under Visual Studio 2008 Beta 2 it generates the following code by default.

    System.IO.Stream s = this.GetType().Assembly.GetManifestResourceStream("Project1.UserControl1.xaml");
    this.InitializeFromXaml(new System.IO.StreamReader(s).ReadToEnd());

Most developers would realise that this is not good code. Why do I say this, well firstly the code is creating two objects, a System.IO.UnmanagedMemoryStream and a System.IO.StreamReader, that implement IDisposable and are not disposing the objects immediately after use. Yeah sure the finalizer will take care of any unmanaged resources at the end of the day but why not just release the resources in a predictable and up front manner. I have recommended that Microsoft use the following instead.

    using (System.IO.Stream s = this.GetType().Assembly.GetManifestResourceStream("Project1.UserControl1.xaml"))
    {
        using (System.IO.StreamReader sr = new System.IO.StreamReader(s))
        {
            this.InitializeFromXaml(sr.ReadToEnd());
        }
    }

If you feel strongly about best practices, please take a moment and vote for this on the feedback site here.

Cross-posted from CraigN.NET.

Telkom in the dwang for claims

image It looks like Telkom is in a bit of a pickle over its recent "Do Broadband" advertising. A post on MyBroadband details the complaint from a consumer that says its false advertising.

Mr Moorad lodged a consumer complaint against Telkom’s “do” broadband campaign, arguing that the advertisements claims of being suitable for ‘movies, gaming and music’ is misleading.

According to the ASA website, the complainant submitted that the advertising states that one can “do” music, movies and on-line gaming, but only affords the user 1GB. “This is misleading as a DVD-quality movie is at least 4GB and online gaming needs at least 20 GB monthly to play daily.”

While I agree that the "do movies" claim is a little bit of a stretch as I doubt Telkom would promote torrents and illegal movie sharing. They must surely be referring to paid movie downloads, I can't think why a consumer would want to pay for a highly compressed movies that are sub-DVD quality, can you?

I however don't agree that to "do on-line gaming" you need at least 20GB monthly of bandwidth. Is Mr Moorad downloading the games before he plays them or maybe he is playing Battlefield 2. As an Xbox 360 gamer I regularly play on Xbox LIVE and its common to work on about 150MB per hour for serious online gaming including voice chatting. So 20GB equates to about 136 hours of online gaming per month which I believe is more than excessive. So the 1GB is quite capable of at least 6 hours of serious online gaming; or perhaps a whole month of online Sudoku.

In its submissions to ICASA, Telkom clearly stated that "Telkom's ADSL service was never intended for bandwidth-hungry applications, such as gaming or online trading."

This I find highly amusing to read. Telkom has clearly been caught out in its statements. Its time for the left hand to start talking to the right hand, and oh, while they figure that out, can they sort out the service delivery issues etcetera etcetera...

Cross-posted from CraigN.NET.

New blog - CraigN.NET

A little while back I decided I needed my own space to blog about development, gaming, life and everything that goes along with it. Up until now I've been maintaining two blogs, a primary development one and a gaming one. So here it is, my new blog Craig.NET, make sure you add it to your feed reader and update your blogroll.

Oh and if anyone knows a graphic designer that knows how to make magic with WordPress, let me know.

Cross posted from http://xboxbloggers.net/CraigN/.

Building data interfaces for .NET

SA Developer .NET Just a quick reminder for the free SA Developer .NET event tomorrow, the 8th September 2007, on building .NET data interfaces. The talk will be held in the Microsoft auditorium in Bryanston and presented by André van Rensburg.

There are tons of resources available on how to access data from a .net application. How is it that this is still really difficult to get right? The myriad of options and requirements often makes it difficult to map the two extremes effectively – to choose the right option for a given requirement. I will discuss some practical approaches to accessing data with ADO.net that focus on fast and effective ways to get up and running without sacrificing flexibility and maintainability. I will include discussions on DAL-BLL generators, data object verses data sets, usage scenarios, presentation integration, and if time permits, how to 'Linq' it all together.

If you haven't done so already, please RSVP and let us know you are coming on the forum here.

Cross-posted from http://craign.net/.

MadLove wins Xbox Soundtracks competition for South Africa

Xbox SoundtracksIn a previous post I originally announced that two South African bands were in the top rated tracks list in the Xbox Soundtracks competition run by Microsoft and Universal Music. Today it was announced in a press release that the local Johannesburg based band MadLove had been crowned as the South Africa winner for the Xbox Soundtracks competition.

MadLove’s Angel’s Fall track for Tomb Raider was ranked as the best track by visitors to the contest site. For the past month thousands of musicians and gamers alike from across Europe have been creating new music tracks inspired by the latest high-definition games on the Xbox 360. From the colourful fantasy of Viva Piñata to the gritty battles of Halo 3, DJs, bands and composers have created tracks cut to a wide range of latest Xbox 360 titles. Gaming and music fans alike then logged on to view and rate the entries, with MadLove emerging as the winner.

“We’re ecstatic!!!!! It’s the greatest news we’ve ever received. We pray that this result opens doors for us to get our music out to the world, said Shahir Chundra, lead singer of MadLove. “Thank you so much XBOX and especially everyone around the world who voted for us!!!”

Jozi based MadLove has high aspirations both locally and internationally.  Made aware of the Soundtracks initiative through a press article, MadLove was immediately inspired to get involved. “Once we had watched all of the trailers it was clear that Tomb Raider was the only choice for Angel’s Fall”, said Shahir.

In recognition, MadLove will get to visit a local Universal Music studio in Johannesburg to record their tune with the help of top producers and engineers. In addition to this, they will also get an Xbox 360 console and a T9 Samsung mp3 player.

Congratulations to all that submitted entries as I believe you are all winners. MadLove's winning entry is available online here.

 

Cross posted from http://xboxbloggers.net/CraigN/.

The death of Home Theatre PCs in South Africa

I was saddened to open my feed reader this morning. A local developer and Windows Media Center enthusiast, Colin Savage, who was the man behind the ZaEpg service has been legally forced to cease and desist by the South African television monopoly known as MultiChoice.

Yes everyone that is running a HTPC (Home Theatre PC) like Windows Media Center will soon have no more DStv Electronic Program Guide (EPG). It would be great if MultiChoice actually offered their guide information electronically other than over-the-air - I'm sure the 1400 odd users would be more than willing to pay a nominal fee for access to this information - however MultiChoice seem so narrow-minded in this regard. Its not like they are not using a DStv decoder already, they just don't want to use the decoder for anything more than a channel changer.

A while back I blogged about MultiChoice's attitude toward IPTV and after a little chat with their head of strategy at MultiChoice, Jonathan Newman, I understand that MultiChoice believes their product the MultiChoice PVR decoder is more important to them than the people paying to be subscribers to their bouquet.

Personally I can't wait for the Telkom Media IPTV solution to roll-out next year August on the Microsoft Mediaroom platform with the Xbox 360 as a capable IPTV set-top box.

What are your feelings on this? Can we let a monopoly squash the HTPC market in South Africa?

Microsoft XNA Game Studio 2.0 announced

Yesterday at the XNA Gamerfest 2007 Microsoft announced XNA Game Studio 2.0, an upgrade for the current XNA Game Studio Express 1.0 Refresh, which will now integrate into all Visual Studio SKUs not just the C# Express edition.

For those that don't know, XNA Game Studio Express is a free product from Microsoft that plugs into Visual Studio 2005 C# Express Edition and enables developers to build games for both the Windows and Xbox 360 platforms. This is all made possible with the XNA Framework 1.0 which is a derivative of the .NET Compact Framework adding DirectX capabilities.

According to the product announcement, XNA Game Studio 2.0 will feature user interface improvements, new project templates and improvements to the content processing. Personally I believe the best improvement will be the ability to use Visual Studio Professional and have my standard IDE plug-ins available again.

Changes to the XNA Framework include new networking APIs with support for Xbox LIVE, graphic rendering improvements and nested components. Unfortunately there seems to be no comment on when the new version is going to ship and whether it will remain a free product.

Is anyone in the local (South African) industry working with XNA for either hobbyist or commercial game development?

 

Technorati tags: ,

Cross posted from http://xboxbloggers.net/CraigN/.

Posted: Aug 14 2007, 09:39 AM by Craig Nicholson | with 3 comment(s)
Filed under: ,
SQL Server 2008 July CTP out now

Microsoft is definitely on a roll with releasing CTPs and betas lately. The latest drop of SQL Server 2008 is now available for download and I'm extremely happy to see that there is now new data types for representing date and time separately with support for time zone information. How extensive the time zone support will be remains to be seen.

Another addition to the July CTP is table valued parameters. In theory you will be able to now be able to have stored procedures that accept multiple rows of data as a parameter. So think how easy it will be now to save an order and the order details to a database with one stored procedure call. Less round-trip in my opinion means decreased lock durations.

For the last couple of years my day job has had me working with spatial data from location based services through to vehicle tracking, optimization and fleet management. We've tended to stay clear of the big names in GIS databases and have favoured open source and in-house implementations. Its great to see that Katamai (aka SQL Server 2008) will feature spatial support out of the box. I hope its included in the July CTP.

You can check out the new features here and download the goodness from here.

Source: SQL Server 2008 July CTP

 

Technorati tags:
My first Visual Studio 2008 Beta 2 bug

I haven't even had Visual Studio 2008 Beta 2 for more than a day and I've found a compiler bug already. My Compact Framework 2.0 project compiled just fine under Visual Studio 2005 against the .NET Compact Framework 2.0 (build 2.0.6129.0) and it even worked using Visual Studio 2008 Beta 1 against the .NET Compact Framework 3.5 Beta 1 (build 3.5.7066.0). So I was quite surprised when I got the following compilation error against the .NET Compact Framework 3.5 Beta 2 (build 3.5.7121.0):

error CS0656 "Missing compiler required member 'System.Runtime.CompilerServices.UnsafeValueTypeAttribute..ctor'"

As there was no code reference with the numerous instances of the error it took me a few minutes to go through my code and find the likely unsafe code. After a few test cases I isolated it to a structure which defines a fixed size array for a P/Invoke call to a Windows CE API function.

    public unsafe struct UnsafeStruct
    {
        public fixed int Bar[2];
    }

I've logged the bug on Microsoft Connect and would appreciate if others can validate the issue and vote by rating it so that the product team does something to fix it.

 

Mass Effect nominated Best of E3 2007

image Microsoft Game Studios is certainly doing well when it comes to producing great games for the Xbox 360 and Games For Windows platforms. Mass Effect is the upcoming Xbox 360 exclusive RPG title due for release in November this year by Microsoft Game Studios and Bioware and it has been nominated Best of E3 2007 in the Best in Show, Best Console and Best RPG title categories.

Visit the official “Mass Effect” website (http://www.masseffect.bioware.com/) to download the recently released extended E3 Director’s Cut video, as well as catch up on the latest information on the game’s evil villain, Saren.

 

Cross posted from http://xboxbloggers.net/CraigN/.

New behind the scenes Fable 2 video released

image Lionhead Studios celebrated their 10th anniversary and released a new episode in the behind the scenes tour of the Fable 2. The video highlights the innovative one-button combat system and introduces the team behind the highly-anticipated sequel to the best-selling Xbox exclusive Fable.

“This is a very exciting time for us,” said Peter Molyneux, managing director of Lionhead Studios “Ten years in this industry is no small feat. We have a great team that is committed to pushing the limits of what we can do with today’s technology; ten years and counting.”

The new episode is posted on the Lionhead website (http://www.lionhead.com/) as well as on Xbox LIVE Marketplace.

Cross posted from http://xboxbloggers.net/CraigN/.

Silverlight 1.0 RC1, 1.1 Alpha Refresh, et al

It looks like Microsoft has been busy lately as not only do we have a new beta of Visual Studio 2008, but we now have a Silverlight 1.0 Release Candidate 1 sporting stability improvements not to mention almost 2000 bug fixes. In addition they have dropped a Silverlight 1.1 Alpha Refresh that includes the same core improvements featured in Silverlight 1.0 RC1. There are some breaking changes which are listed here but nothing that looks too serious.

In addition you might want to grab the July ASP.NET Futures CTP release as well as the August Expression Blend Preview. I've copied the links for easy reference.

Here's the runtime itself:

Some tools for building Silverlight applications:

 

Nickelback to tour end of the year

Its been a few months since I blogged about the Nickelback tour to South Africa. The organizer, Kusasa, never did get around to a press release and the concert wasn't rescheduled for early in 2007 as was claimed last year.

So I finally got on the phone to the organizers them and apparently the band is going to be gracing fans with their presence either at the end of November or the first week of December 2007. A year after their planned tour dates is an awfully long time to keep fans waiting.

 

Technorati tags: ,
AJAX Control Toolkit now Orcas friendly

So if you are like me and you are really excited about the recent release of Visual Studio 2008 Beta 2 (the product formerly known by the code-name Orcas) with a Go-Live license and you have been actively using ASP.NET AJAX with the awesome AJAX Control Toolkit, then you will be excited to know that the team has updated build 10618 to include support for VS2008 Beta 2. The major changes include improved designer support which I'm sure will appeal to all. Its all in the blog post here.

So go download it from the release page and put it to the test.

More Posts Next page »