Windows 7: Apart from the stupid name, it’s looking very good

windows7 logoWith a demo of forthcoming features and the release of a pre-beta build of Windows 7 to folk lucky enough to attend this year’s Professional Developer Conference (PDC), the internet is awash with reviews. One point of interest is that the internal Windows version number for Windows 7 is still version 6.1 (yes, you did read that right, they really have called v6.1 of Windows, Windows 7. You can read a great article on just how insane the Windows 7 name choice is here).

The version number aside, Windows 7 looks good, and the reviews seem positive. Aspects of Vista that improved upon XP (such as Areo) appear to have been enhanced further. In addition, many of the things that Microsoft got wrong with Vista (such as the truly crap UAC) have been reworked and should be a whole lot better with Windows 7.

Here are some reviews worth reading (IMO of course; feel free to disagree 😉 )

Hands-On with a Windows 7 Notebook

Neowin: Introducing Windows 7

ActiveWin: Windows 7 pre-beta review

Gizmodo: Windows 7 Walkthrough, Boot Video and Impressions

C# 4.0 is to introduce the static type “dynamic” (and other things)

At Microsoft’s Professional Developer Conference (PDC) yesterday, Anders Hejlsberg unveiled plans for C# version 4.

One of the key changes is the introduction of a new type called “dynamic”. By declaring a variable of type dynamic, the compiler makes no attempt to resolve any of its members at compile time, instead performing late-binding checks at run time. This feature enables C# to use the DLR, and to use DLR-based Python and Ruby libraries.

Another key change, is the inclusion of named and optional parameters. Default values can now be specified for a method’s parameters, and parameters can be specified in any order in a call by using the parameter := value convention to name the parameters. This, combined with dynamic types, suddenly makes COM invocation a lot simpler. For example, the current mess of “ref missing” parameters will just go away.

There are various other additions, such as covariance and contravariance for generics (which I do not yet fully understand). You can read more details of the changes by downloading the document “New features in C# 4.0

If you are eager to try out an early CTP of VS2010, with .NET 4  and C# 4, you can download the 7.5Gb virtual PC image from here.

Just how difficult can Microsoft make the giving away of a freebie?

Prior to the start of ReMix this year, Microsoft made a big thing of how attendees would get a year’s Microsoft Expression Professional Subscription free (normal price £670). So just how difficult do you think Microsoft can make giving away that freebie? This difficult:

  • Just before the event, they announce that we won’t actually get anything at the event, instead we’ll have to fill out a form and it’ll be posted to us.
  • Day 1 of the event and I ask about the form. “That’ll be available tomorrow sir”. Lucky I’m attending both days then…
  • Day 2 of the event: AM. On arrival, I’m presented with a flimsy piece of paper that I have to fill out with my details. I head upstairs, grab a coffee, find a seat and fill out the form. I then head back down to hand it in. “Oh no sir; the forms cannot be handed in until this afternoon”.
  • Day 2 of the event PM. Head back down after lunch and hand in my now somewhat scrumpled form. How long will it take to send the subscription through? “Up to 28 days sir”. Well clearly Microsoft are just covering themselves. A data entry clerk will be able to process the forms in a few days and I should have the software within a week…
  • One week later: nothing.
  • Two weeks later: nothing.
  • One month later: Wednesday : I get an email with instructions on how to access my subscription online. So I guess I don’t get any DVDs then. I dutifully visit the website, enter the details and get told the details are invalid. I try a few more times. Still invalid.
  • I wait until after lunch, and it still doesn’t work. So I track down a customer help number, phone up and explain the problem. The polite lady on the other end – Annette Schulz – taps away on her system, sounds a little puzzled, but assures me it ought to be sorted that afternoon and that she’ll email me when it is.
  • The next day I hear nothing.
  • Friday: I receive an email from Annette apologising as apparently my subscription hasn’t been put on the system still and so it won’t be fixed until the next week.
  • Monday: nothing. I take a look on the ReMix “back network”. Other folk have complained that their subscriptions haven’t arrived yet or that they too have experienced the same glitch as me. So a week of our year’s subscription has expired and we haven’t been able to use it yet. Perhaps tomorrow…

The classic phrase “cannot organise a piss up in a brewery” comes to mind here. Given the millions of licences and subscriptions Microsoft process, just how difficult can this be? Those Adobe Flash and Flex tools sure do look tempting at this point!

UPDATE: Well it took a further week, but Microsoft did finally manage to fix my subscription (along with those  of many others that attended ReMix, who also had the same problem). Of course that wasn’t the end of the saga. The download links on the Expression site do not work with Firefox. They also do not work with IE tab on Firefox. They also do not work with IE, until you have installed a download application. Oh dear. Oh well, I guess that if one is to mess something up, one might as well make a thorough job of it…

Release version of Silverlight 2 is due tomorrow

According to a Microsoft press statement, Silverlight 2 is due for release on Tuesday 14th (ie tomorrow). This coincidently is the same day that Apple are due to announce a couple of cosmetic changes to the Apple laptop range, which will have the fanboys wetting themselves with excitement as usual, whilst the rest of the world wonders what the excuse for no Apple Netbook will be this time.

There won’t be any excuses of course as Jobs is rapidly turning Apple into the Microsoft of a decade ago, where the fans lap up any old overpriced and outdated crap thrown to them and the rest of the world despairs over the lack of basic functionality – such as interoperability with non-Apple products – and the right to release software without having to ask permission of one’s overlords. By contrast, Silverlight shows just how far Microsoft has come since those dark days of a decade ago. Silverlight is not just Cross-platform with cross-browser support, Microsoft are working to provide an Eclipse plugin for Silverlight development and the control set (components in Adobe Flash speak) will be released as source code under the Microsoft Public License.

No doubt Jobs announcing that the MacBooks are to get SATA drives to hysterical whoops from the brainwashed will grab the headlines tomorrow, but the rapid march of Silverlight will be tomorrow’s real technology story.

Clueless Judge rules against UK patent office and leaves the UK wide open to a software patent invasion

Here in Britain, we have largely escaped the insanity of software patents that afflicts the USA. We used to have a clear and unambiguous law that software-only inventions could not be patented. Those laws are – through design – open to interpretation by judges. Judges are undoubtedly clever people when it comes to understanding the law, but in the case of Lord Neuberger of Abbotsbury and his cohorts Lord Justic Jacob and Lord Justice Maurice Kay, grasping simple technology concepts appears way too complex for them.

Nokia applied for a patent for a piece of software which makes other software run faster on a computer. The European Patent Office – which is also staffed by technological incompetents – duly awarded the patent, even though they should not have done so under EU patent law (not least do to prior art considerations). Thankfully our UK patent office applies the rules far better and threw the application out. So Nokia took the case to court. The appeal court has now ruled that a piece of software that makes a computer perform better is not just a software invention because “…it has the knock-on effect of the computer working better as a matter of practical reality.” So apparently “better” is now a technical term and any piece of software that makes a computer work better is patentable. In other words, any piece of software could be patented under this rule.

Software patents benefit no one but giant companies that can throw money at bamboozling patent offices into accepting their patent applications. It is far too costly in most situations for SMEs or individuals to apply for such patents. Europe – and especially Britain – has long fought to prevent US-style software patents becoming a reality here. Sadly all that effort may have been undone through the actions of one idiot judge. This is a good day for giant corporations; it is though a very bad day for SMEs and consumers. Hopefully the UK patent office will not give up and will take this to the House of Lords, who might finally see sense and throw the case out. I won’t hold my breath though…

Have you tried out stackoverflow yet?

A few week’s back, I caught a twitter by Scott Hanselman on a new free developer-specific question and answer forum called stackoverflow. Curiosity got the better of me and I first took a look, then asked a couple of questions, before getting wholeheartedly sucked into answering as many as I could, whilst watching my reputation figure climb. Reputation is the site’s secret weapon that gets you hooked and keeps you. Basically the more good quality questions you ask, and answers you provide, the more reputation you get. The more reputation you get, the more moderator rights you earn.

So if you have a programming related question – on any topic – or wish to share your knowledge and help out others by answering their questions – then head over to stackoverflow and try it out.

New blog on transaction memory launched on MSDN blogs

Anyone who has had to write multithreaded code will know that one of the big problems with having multiple threads is ensuring that two threads do not modify the same data at the same time, or that one doesn’t read data that is being modified by another. The standard way of dealing with this of course is to use locks. Locks bring problems of their own though, with deadlocks and race conditions being common – difficult to debug and fix – problems.

One proposed solution is transaction memory, which employs the concept of atomic blocks of code that work in a similar way to transactions in databases. In other words, a snapshot of the data state is taken, then a series of memory reads and writes are processed and logged. Finally a lock is taken by the sytem, the data checked and – if no changes outside of the thread occurred – the logged changes are applied. Then the lock is released. If changes did occur, the whole lot is aborted.

Transaction memory has been around for a while, but purely as a research/ academic concept. Today though, Microsoft launched a new transaction memory blog run by the folks in Microsoft’s Developer Division’s Parallel Computing Platform product group. They plan to add an experimental transaction memory model to .NET. Whetehr this will ever go into production is still unknown, but it should be a great blog to watch for further developments in this area.