More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  Synaptic MisfiringsProfileFriendsBlogMore Tools Explore the Spaces community

Synaptic Misfirings

May 11

Seminal moments in gaming... GTA not included

There's no doubt that GTA IV in its execution and scope deserves the 10's that EDGE et al have been giving it. I'm hugely impressed by the city simulation, and somewhat less impressed by the highly derivative story. So far GTA IV has not delivered one of those shiver down the spine moments that accompanied my personal seminal moments in gaming. GTA IV is for me a small increment over the state of the art. It is without a doubt a extremely well crafted experience and yet there are things that pull it back all the time. The frequently puerile humour I guess is included to appease the < 18 year old members of its fan base. I can understand why R* do this, they do it for economic reasons, apparently most GTA players don't play for the story (I guess we'll have to see if that follows for IV) and yet GTA IV has a OK story (not BioShock level writing but better than most) one that apparently wants to be taken seriously. Which is a shame because with every narrative step forward it then precedes to take two back with endless titty or dick jokes.

Hopefully one day R* or more likely Bethesda etc will really acknowledge that a substantial and increasing percentage of their audience are growing up and really want more from their virtual worlds. The 18 cert on GTA is there because the content is adult, but sadly most of what constitutes 'adult' for GTA is 'porn shop' humour rather than adult in the sense of really really exploring ideas or having anything more than cheap-shot social commentary jokes. So I'll be burning through GTA IV's story to clear the decks for "Metal Gear Solid 4: Guns of the Patriots" in June, at least that title by all accounts has some real depth to it.

May 07

Wonderful, and free, topological modelling package...

I have a passion for left of field 3D packages and tools and was very happy to be introduced to TopMod in the latest issue of '3D World' magazine. This is well worth checking out, you really can make some beautiful and intricate images very easily. Much like Blender, TopMod is a classic example of how Open Source occasionally turns up real gems. I just wish the content creation software genre was better represented in the Open Source movement. Still do check out TopMod...

TopMod07

May 04

Turning loops into values using Aggregate in C# 3.0

I'm probably horribly late to the party with this but I figured I'd share it anyway. It's one of those things that with hindsight falls into the "Doh. Obviously!" category: System.Linq.Enumerable.Aggregate use is not just limited to numeric style operations.

There are various ways of mapping a method over an array in either C# 2.0 or C# 3.0, for example:

   string[] data = { "Softimage|XSI", "Blender", "Luxology modo" };
   StringBuilder builder = new StringBuilder();
   foreach (string s in data)
      builder.Append("(").Append(s).Append(")");

   Console.WriteLine(builder.ToString());

or using the static ForEach method on Array:

   string[] data = { "Softimage|XSI", "Blender", "Luxology modo" };
   StringBuilder builder = new StringBuilder();
   Array.ForEach(data, s => builder.Append("(").Append(s).Append(")"));
   Console.WriteLine(builder.ToString());

However, nicer still if you can use C# 3.0 is System.Linq.Enumerable.Aggregate:

   string[] data = { "Softimage|XSI", "Blender", "Luxology modo" };
   Console.WriteLine(data.Aggregate(new StringBuilder(), (b, s) => b.Append("(").Append(s).Append(")")).ToString());

Not only does Aggregate being a extension method benefit from the whole "extension method pattern matching" mechanism which allows you to swap in different implementations (or specializations <smile>) depending on what names spaces you have open, but (and this is the really cool bit) it allows you to treat the whole loop operation as a value. It may not be immediately obvious if you haven't done much Linq before but the return type of Aggregate as used above is StringBuilder! This is how we can pipeline it right into a call to Console.WriteLine. Note also that Array.ForEach is limited to SysArrays whereas Linq.Enumerable.Aggregate by definition works with the more primitive IEnumerable<T> - in other words it will work just a nicely with Lists or anything else that reduces to a IEnumerable<T>. Of course the other nice advantage to using Aggregate is the lazy (pull) evaluation when walking the collection.

Aside: I've deliberately avoided talking about using the classic "for(int i = 0; i < data.Length; i++)" iteration method because I didn't want the main point to be lost behind the implementation dependent fact that the jitter can translate a classic-for into very efficient native code, safely omitting the bounds checking. This is about abstraction above the micro optimization level...

April 26

The reluctant Grand Theft Auto IV player...

I have always maintained that Video Games have the potential to be more than just entertainment, the good ones transcend the medium (much like those sublime 16 bit AV demos back on the Atari ST and Amiga...). Video Games as a valid art form? Absolutely. They are true left brain / right brain creations. So I've always made a point of getting those games that score over 80% almost regardless of genre (OK with the exception of sports titles) because I want to experience for myself just how the developer has managed to push the medium. Now I find myself in a tricky situation with GTA IV. I don't dig the whole anti-society thing. I don't dig the car jacking and murder for money thing. I've never bought a GTA title... until now, because damn it, GTA IV is getting stunning reviews from folks who's opinion I trust. Let's be clear about this, I'm not anti violence in video games, I'm a huge first person shooter fan - but even within that genre I prefer a good degree of 'reality separation' preferring the Halo's and Unreal's to the Call of Duty's. Increasingly I get uncomfortable about being given the ability to 'shoot up' the real world - it's the same in movies for me, I just don't go to 'gun p0rn' movies like Rambo etc (although it's probably unfair to compare GTA IV to the utter crap that by all accounts the latest Rambo movie was). By all accounts GTA IV does have an actual plot and does have very good characterization. It'll be interesting to see if the game does differentiate between players who want to create the minimum of havoc vs. those who just want to drive over every pedestrian in sight (because really, if the later is your idea of a Good Time you'll probably be just as well served by Carmageddon... now there's a game for Rambo fans...)

April 19

Stroustrup's excellent "Evolving a language in and for the real world: C++ 1991-2006" paper.

Over the past week I made a real effort to really read 'cover to cover' (so to speak) Bjarne Stroustrup's "Evolving a language in and for the real world: C++ 1991-2006" paper. I'd skimmed it before but never really read it in the way it deserves until now. I'm so glad I did - because it's contributed greatly to my decision to spend a > 0% of home coding time on C++ rather than just exclusively coding C# 3.0 stuff at home. It's very hard to criticise anything in such a paper given the kudos of the author - that said, I do wish he would refrain from being quite so derogatory towards Microsoft and C# / .NET in particular. Then again, it's his paper so I guess he's allowed the odd back stab now and then - and to be honest the occasions when he does flash the blade left me smiling rather than angry.

Stroustrup says something in this paper which is an echo of something I've always held close to my heart and encourage other developers to aspire to, namely developers should Own the call stack. That's not to mean that you have to comprehend the full details of the problem domain at each level of the call stack but you should be able to deal with the syntax and semantics the solution-implementation is presented in. For .NET developers this means you need to know in addition to your favourite managed language some C++ and some native assembler. He goes on to point out just where C++ fits in the tool chain of languages such as Java and C#, namely "My compiler compiled your runtime" - you ignore that at your peril.

Putting aside owning the call stack for a moment, the real thing that caught me in this paper was the multi paradigm stuff. I've written before here about my increasing concern that not everything is a object and it's often a mistake to try and express things in OO terms, well Stroustrup points out again and again that OO is just one of the programming paradigms that C++ supports, he goes further to say that OO is not the reason for C++'s being, nor is it the most important programming paradigm the language supports. I'm predicting that this year I'll be having my code reviewed by someone who protests that my implementation is "Not OO enough!" - to which my answer will be: "Oh really? Let's talk about that..."

If like me you've spent some time in "Managed Code Happy Land" I'd totally recommend reading the paper, carefully, fully and giving yourself time to think about what Stroustrup has to say. I'm not u-turning here, since my day job is programming on Window's I'll likely still recommend C# for most things, but, and it's a big but I think I might be using C++/CLI a lot more than I used to. I used to joke to a mate of mine that I'd never go to a job that required me to spend >= 50% of my time doing C++, this paper (amongst other things I've recently read) means I'd probably want to revisit that statement to something >= 75% of my time.

April 15

Bjarne Stroustrup in MSDN Magazine and the use of Hungarian notation

There's a great, but all together too short, interview with Bjarne Stroustrup in the April 2008 issue of MSDN Magazine. Lots of good stuff in there - including a book recommendation I plan to follow up - but one of the things that stood out was Bjarne's comments on the use of Hungarian notation:

   "And no, don't use Hungarian. Hungarian is an awful idea. The source code should reflect the meaning of the program, not simulate a type system. If you really, really feel the need for Hungarian, you are probably using a language that is unsuitable for your application."

I'll admit that when I first started programming professionally, some 15 years ago now, I was a strong advocate and user of Hungarian. These days I limit myself to a few scope notations ("m_" for a instance members and "s_" for static members) and I don't use any type prefix notations including combinations-of or variations-on 'p' prefixes to denote pointers. I don't distinguish between native and managed languages - my position is that Hungarian has no place in either. If you're relying on the presence of Hungarian to alert developers that they've switched from .cs to .cpp files then you've got a bigger problem on your hands. It's my impression that folks who do continue to advocate heavy use of type notations do so because they pretty much live in fear of the code they work on. They neither trust the existing code, or (and this is the damning bit) the new code they add. To be honest I've seen zero indication that Hungarian contributes to a lower defect count, indeed the only thing Hungarian succeeds in lowering is the abstraction level (which is not what we want to strive to do in our code) furthermore it acts as a barrier to refactoring. Of course we're also assuming here that developer has used Hungarian correctly and consistently, which is seldom the case. I'd much rather developers put the effort into choosing decent variables names that are closer to the problem domain than slavishly writing comp.sci type prefixes. Decent variables names reduce (but obviously not eliminate) the need for commenting and make you think about the actual problem more - where as slavishly following some anachronistic type notation convention too frequently seems to accompany a school of programming typified by fear, uncertainty and doubt. Just my 2p worth... :)

April 13

Not everything is an object.

First off I'm very aware that I'm about 15 years late with this insight but I still find it amazing just how many developers of the Object Orientated school are so hostile to the idea that functions still remain a equally valid and often preferable means of constructing software rather than their sacred objects. More and more I see code with classes that exist for no other reason than to act as namespaces to what amount to little more than static member functions. Fair enough languages like C# pretty much force one to express things this way, but that's a syntactic deficiency - what concerns me more is that a lot of developers seem to view functions (in the classical sense) as something lower down the programming evolutionary ladder than classes and objects. For some time I've been looking around for mainstream examples I could site to support the counter argument that objects and functions are two different and complimentary tools - and of course a prime example was right under my nose, to whit: STL. Here's a classic interview with Alex Stepanov that puts into words the first class status of functions (frequently in conjunction with and complimentary to, objects) in software construction:

   http://www.sgi.com/tech/stl/drdobbs-interview.html

Over the past 18 months or so I've personally 're-discovered' functions and have found it a liberating experience, I no longer feel the OO guilt of "I should be striving for member functions at all times" as a overriding rule when designing and writing software.

April 11

Tom buys new C++ book. Cats and Dogs live together.

Where the rubber hits the road (certainly for Windows 7 and one imagines '8) there'll still need to be occasional sorties into the C++ Dark Dungeons (to say nothing of eeking out value for existing legacy code). So, mostly as a reaction to the the Visual C++ 2008 Feature Pack and because I firmly believe it behoves every managed developer to "own the entire call stack" I find myself ordering a copy of Pete Becker's "The C++ Standard Library Extensions: A Tutorial And Reference". Who'd have thunk it :)
 
 
The_Cpp_Standard_Library_Extensions
April 10

Considering upgrading to a DELL Precision M2300

My trusty DELL Latitude D620 is without a shadow of a doubt the best computer I have ever owned. Ever. The only thing wrong with it is the graphics option, even with the latest drivers the integrated Intel GMA950 chipset just about has what it takes to support Aero and can sort of do some bits of OpenGL. The GMA950 will struggle through with Softimage XSI (but only barely), but try running a OpenGL heavy application like Luxology's Modo at it and it just falls over. So I'm really looking for something with the same form factor but with certified OpenGL support. Enter the DELL Precision M2300. The Precision M2300 is really a Latitude D630 tricked out with nVidia Quadro graphics. In other words... perfect.
 
precn_m2300_overview1

Why is Microsoft *still* using C style casting?

Why is it that the latest MFC drop still uses C style casting in its implementation? The compiler support libraries (the bits that contain such things as gcroot<>) that ship along side MFC use 'modern' (for a given value of) casting like static_cast etc. How is it the MFC guys get away with it?
April 07

Visual C++ 2008 Feature Pack released

The Visual C++ 2008 Feature Pack is well worth installing if you're still having to slum it in C++ on Windows. The 'official' MS repackaging of (most of) TR1 is nice to have at hand and the new MFC additons do produce a huge amount of visual Bang! per buck. Definately worth checking out:
 
 
I wish MS would produce a real MFC alternative for WPF, I mean a proper MVC document/view framework for 100% managed solutions. It kind of sucks that the only way of getting this kind of robust rich client application superstructure is still via C++. There's no good reason for this state of affairs.
April 06

Initial impressions of 'Dark Sector' on PlayStation 3. Extremely impressive!

Having traded in all my Xbox 360 games along with the wretched console itself I now find myself with a whole bunch of GAME points to burn through and last Friday picked up a copy of Digital Extreme's new 'Dark Sector' game on PlayStation 3. I recall the early preview coverage in EDGE of this game before the '360 and Playstation 3 where even released, back then 'Dark Sector' was a set in space survival horror game. Some years later and it appears to have returned to Earth, Eastern Europe to be precise, having mutated into a chimeric 'Gears of War' meets 'Resident Evil' mash up. To cut to the chase, it is immense fun to play. Yeah, it's pretty shallow in terms of plot, somewhat formulaic granted, but it does deliver on the entertainment front. I have to mention the games graphics engine too which for once isn't the Unreal 3 engine but a custom in-house engine developed by Digital Extreme's themselves, said engine produces some of the nicest visuals I've seen on the PlayStation 3 to date. I honestly think in visual terms it deserves to be ranked up there alongside Drake's Fortune and Ratchet and Crank: Tools of Destruction. Whilst playing it last night I was thinking "I remember when visuals like this where reserved for the cut scenes and here I am running and gunning interactively inside them... wow." There's also a Softimage XSI connection too by way of Pendulum Studio's work on the cinematics for the game.

darkSector

Digital-Tutors 'Introduction to XSI 6'

Over the past week I've been working my way through Digital-Tutors excellent 'Introduction to XSI 6' training and can totally recommend it to anyone who wants to rapidly get up to speed with Softimage's XSI Foundation 6. The title is project based and by the end you'll pretty much be able to reproduce the cover image - and in so doing will have been gently introduced to a good deal of XSI at a basic level. The content is first class, the movies are crystal clear and the presenter is very good at keeping you motivated. 3D modelling and animation are complex topics and I'm very aware that nothing good comes without a lot of practice and basic studies. So I've set myself the goal of trying to complete at least one simple 3D life study a week for the next month or so.

Introduction to XSI 6

March 30

Lambda and Closures make it into C++ 0x. Developers rejoice... 4 years from now.

Herb Sutter brings exciting news about lambda functions and closures finally making into the C++ standard. Very cool. I'm currently using the old ++ war horse at work since we need to party with our legacy code at the MFC rather than .NET or COM level. I'll own up and confess that I am enjoying the experience, but really what I'm enjoying is the challenge of trying to succeed despite having to use C++. Granted the problem is such that C# (or any purely managed language) just isn't appropriate so that choice of C++ is in fact not a choice.
 
Still it's cool to see lambdas etc make it into the core C++ language without recourse to Boost. Of course one wonders just how relevant this will really be to Visual Studio based developers. I mean when is this stuff actually going to be delivered in VC++? 2010? 2012? That's a period of time long enough to include the shipping of the next major rev. of the Windows client OS after Vista and for .NET 4.0 to make it out the door. I guessing the vast majority of the audience for C++ 0x is really those folks not developing on the Windows platform...
March 29

Software XSI works under Vista using only a GMA950

As ever, it pays to take those Windows Updates and make damn sure you keep your drivers current. I've been unable to do any real 3D computer graphics under Vista due to a combination of lack of 3rd party ISV support for the platform and having a laptop which only has the Intel GMA950 Integrated Graphics chipset. However this week, after a tip off from my man Lee, I installed DELL's official packaging of the latest Intel drivers for the Latitude D620 and... Bingo! Softimage XSI is now running very nicely under Vista, complete with minor details like hidden line / surface removal working (just a little bit important if you're trying to do anything). OK the T&L is 100% software driven since the GMA950 is not a GPU - but for modelling / animation purposes on a dual core laptop is perfectly acceptable. Happily this comes at a time when .NET 3.5 is out the door and I don't have to sink all my free time in grokking the latest technology stack - atleast until PDC later this year. All of which means I can get back doing some 3D modeling and animation.
 
If you ever want to mess around with a pro. 3D graphics package without dropping > £1000 on say Maya or Max then I totally recommend XSI Foundation. For the money nothing comes close, not only does it come with Mental Ray, but the integration of M.A. is second to none. It also has really sweet sub-D modeling - my main reason for loving it (although I really need to investigate the animation side more!)
March 28

Channel 9 does it again! :-) Erik Meijer and Bertrand Meyer video interview!

This one falls neatly into the Stop Whatever You're Doing And Watch Now category. Eric Meijer, my favorite language uber geek over at Microsoft, interviews Bertrand Meyer.
 
 
Legendary stuff!
March 24

Joe's excellent 'Code reviewing concurrency-oriented software' article.

Joe Duffy has just put up a really good piece on code reviewing concurrent software:
 
 
I'm really looking forward to more articles like this. I'm hoping the 2nd edition of the .NET Framework Design Guidelines which will include coverage LINQ and functional / declarative programming, will also include guidance for the Parallel Extensions for .NET (but maybe that's have to wait for the 3rd ed.) How cool would it be if MS gave away copies of the 2nd ed. of the FDG at this years PDC? The timing seems about right ;-)
March 21

Getting back to some digital sculpting

In a classic case of 'everything old is new' not only am I spending the majority of my working day in unmanaged C++ land at the moment (and, shock-horror, enjoying it) I've also spent the last couple of weeks doing a little concept sketching. This week I've been pottering around with ZBrush 3.1. By happy chance it's a 4 day bank holiday here in England so I've got some real space to get back into ZBrush and play with some of the new stuff in v3. In the fullness of time I may post a few sculpts here. I think come pay day it may be time to upgrade my ancient PhotoShop licence too.
March 13

PC gaming is dead. Again.

Let's face it, Games for Windows, the PC version of XBox Live sucks most mightely. In the light of alternatives like Valve's Steam and Steam Works it's hard to see the value in Microsoft's gaming community orientated APIs (I'm excluding the core DirectX 3D technology here, which to be fair is a solid bit of engineering). Of course it's not just Microsoft's fault. PC gaming is screwed by not having a common hardware platform that folks can use to ensure that when they get games like Crisis home it will actually work. Also dire is the fact that piracy on the PC is huge, Unreal Tournament 3 and Crisis both sold really badly - although strangely a lot of folks where downloading patches for them. You do the math. So it comes as no surprise to see Epic effectively begin ditching the PC:
 
 
I don't know what percentage of total PC OEM sales are hardware related but one imagines that nVidia and AMD-ATI are not very happy about this. It's bad for Microsoft too since it suggests further that Apple's approach to 'life-device' centric product design is what folks want. They don't want some infinitely upgradeable and tweakable box that, if they dedicate hours of their free time to maintaining and servicing, might just produce a reliable entertainment experience for everyone. Not all PC games of course require a SLI graphics subsystem and extra power supplies to drive them. Amanita Design produce beautiful Flash games that will run on just about anything. I'd strongly recommend checking them out - their graphic design is beautiful:
 
 
 
March 10

8 bit era video game music.

Remember those days in the 8 and 16 bit eras before red book CD audio when programmers did things with audio processors that their own hardware designs apparently ruled out? Well if you're looking for a contemporary refresh look no further than 8 Bit Peoples. Lots of great stuff, amongst them gems like Stu's 'mYMelody'. Classic stuff.
 
stu_-_greatest_hits
February 29

I'm done with Xbox 360...

Having owned 3 separate Xbox 360's since the console launched, two of which died from RROD, last weekend I sold my Xbox 360 Elite for £200 and nuked my Xbox Live account. Mine is now a single console house hold based around PlayStation 3. And what's so good about PlayStation 3? Well:
 
  1. It doesn't break down All The Time!
  2. The online free.
  3. The system is open, for example mods in Unreal Tournament 3.
  4. The games are finally starting to prove the point that it is more powerful than Xbox 360.
  5. It doesn't make so much noise that I can hear it even when wearing closed back headphones.
  6. It has a user interface that doesn't look like it was designed for primary school.
  7. It's better value for money.
  8. You can upgrade the hard disk.
  9. You can copy your media to said hard disk, thus having your movie library right there without having to buy into Vista's dreadful media sharing.
 10. The industrial design and implementation is pure class, where as aside from the controller, Xbox 360 just looks and feels like the flakey P.O.S. it has proved to be.
 11. The Dual Shock 3 (imported mine this week) finally adds a controller with weight and rumble to PlayStation 3.
 12. As a BluRay player it Owns and will be upgradable to Profile 2.
 13. There is no limit to the size of downloaded games because unlike Microsoft's console, every PlayStation 3 is guarenteed to have a hard drive.
 
Give me in-game Cross Media Bar (i.e. in-game chat and buddy status) and Microsoft's Xbox Live loses the only advantage I actually care about. It would be great if SONY could eventually offer a home-brew dev toolkit like Yaroze - that said for pure entertainment the SONY system has more variety of games and is a far higher quality entertainment system. The fact of the matter is SONY delivers on their promises where as Microsoft, and I'm limiting myself to their console business here, doesn't.
 
RROD
February 27

Now that HD-DVD is finally dead...

... can we please have the Jason Bourne movies on Blu Ray? Come on Universal get with the program: HD-DVD is deader than a rushed to market, over heating, over priced and overly noisy Microsoft games console.
February 25

'Uncharted: Drake's Fortune'. Why can't more video game soundtracks be this good?

With the honerable exception of Mary O'Donnell's wonderful Halo soundtracks (of which the Halo 3 score is undoubtedly the best) so few games actually have a soundtrack that I would want to listen to separated from the game itself. Now however I can add Greg Edmonson's soundtrack to Naughty Dog's sublime 'Uncharted: Drake's Fortune' to that very exclusive sub category. It's incredibly evocative and filmic - and more than other audio video game experience during 2007 / early 2008 has convinced me I need to get some decent speakers (or headphones) for my PlayStation 3.
 
Uncharted
February 24

Pushing C# 3.0 and the bug-fix / enhancement retro fit problem

I managed to spend a couple of hours yesterday refactoring my very lame WPF Blog Reader with a mind to really pushing the C# 3.0 language enhancements. At the end of the exercise I figured I'd compare the two versions (old and new) using Araxis Merge (the best diff  / merge tool on the planet) and it's shocking just how different the code bases are. Gone are the explicit nested loops, statements become expressions... it is in many ways a different language. Which got me thinking, it's all very well and good that MSBuild now supports multitargetting thus enabling one to use the C# 3.0 compiler and be sure you're just taking dependencies on say .NET 2.0 but, and this is I think a big 'but', expect to have to rewrite your bug fixes / enhancements if you need to retro fit them to older code streams. Now at home this clearly isn't a problem since I can keep pressing forward and I only have one client (me) and one version (the latest) - not so in the Real World. Make no mistake, C# 3.0 once you fully embrace it is to C# 2.0 what C++ with templates is to C++ before templates.
 
Does this mean you shouldn't use the new C# 3.0 language extentions and idioms if you have to support multiple versions? No, of course not. There's no getting away from the hugely valuable fact that C# 3.0 code is more declarative and is far more expressives in fewer lines compared to C# 2.0. Fewer lines of code equals fewer bugs. No one can argue with that. However if you do have to support multiple versions (and can't afford to bring the older 2.0 codebases into Visual Studio 2008 - which might well be the case if you have a substancial unmanaged line count) then should pretty much figure on having to write some things twice. I can't see any other way around it, there are massive benefits in the C# 3.0 syntax forms that you should press forward to - but you won't easily be merging them back into your Visual Studio 2005 hosted code bases.
February 17

Parallelism, Garbage Collection and Language Design - Channel 9 brings it.

Being an unabashed geek, someone who unapologetically admits at parties to writing software for a living (and loving it), I find myself increasingly gravitating towards Microsoft's Channel 9 portal for great video conversations and interviews on the art and science of software development. Channel 9 whilst obviously focusing on Microsoft platforms and development tools in particular, frequently contains material that is truly platform agnostic - so much so that I'd whole heartedly recommend the site to any *nix developer. Even if you do still subscribe to the early Jurassic view of Microsoft as a Evil Baby Eating Empire, you'd have to be particularly narrow minded not to acknowledge the quality and passion of scientists, researchers and engineers they have working there. The following three video conversations are prime examples of just this, as well as happening to happily coincide with what I think are some of the most interesting fields in computer science, namely parallel computing, garbage collection and language design.

'Burton Smith: On General Purpose Super Computing and the History and Future of Parallelism' is a great conversation, of particular interest I thought was the thinking behind why the modern field of parallel computing often makes reference to the many core problem and just how this is subtly different from the multi core problem. It's a subtle semantic difference and leads to a interesting conversation about trends in hardware design.

   http://channel9.msdn.com/Showpost.aspx?postid=382639

I have lamented before on this blog the radio silence 'imposed' in Chris Brumme since he started working on The Next Big Thing, so imagine my surprise and pleasure to find him popping up on a Channel 9 interview with Patrick Dussud in connection with the fascinating topic of Garbage Collection (you where pre-warned about how geeky this was likely to be...)

   http://channel9.msdn.com/Showpost.aspx?postid=381293 

I'm really hoping that at this years Microsoft Professional Developers Conference we get a glimpse of what Chris and various others have been working on :-)

Finally Channel 9 has been covering the recent Lang.NET 2008 Symposium and of all the interviews the following is I think by far the most interesting, insightful and entertaining. Put three hugely experienced language designers together and have them openly and frankly discuss what's good and not so good about the Common Language Runtime. The real eye opener for me here was how Microsoft appears to now think that having a baked in type system at the lowest level of the CLR is not necessarily the only way of achieving a provably safe execution environment.

   http://channel9.msdn.com/Showpost.aspx?postid=380228

It's always worth taking time to listen to Erik Meijer (and if you haven't caught his introduction to functional programming then now's the time) - but the real star of the show here is Gilad Bracha - who pulls no punches in pointing out the inadequacies of the Common Language Runtime and then turns his blade on C++ with both whit and insight. His comments on the CLR have certainly got me thinking, while his observations on C++ seem to match my own (in that it has become a language overburdened with corner cases that contains at its core some nice concepts, template meta programming for example, but in truth it is a language who's applicability and appropriate problem-space is shrinking all the time.)

The above three fields are of course not unconnected and the research dollars Microsoft and others are pouring into them represents a reaction to the reality that the physical substrate of software has changed significantly as we left the warm and comforting waters of speed-doubling largely single threaded processors and headed out into the it'll-never-happen-in-my-lifetime waters of pervasive and increasing parallel hardware. There are very few areas of modern life, society and culture that software doesn't touch or support in some way and whilst it's often been said that all the interesting problems in computing was tackled in the 70's that statement really doesn't do justice to the effort and skill it takes to take a idea and turn it into a platform on which we can build and live.

View more entries