Microsoft

Parallel Extensions CTP released
3 December 2007 in .Net & Code & Microsoft & Tools | Comments (0)

Just an FYI for anyone that is keeping up parallel computing, Microsoft has released the December CTP of the Parallel Extensions Library.

From my work with it I’ve found it to generally be quite usable however the documentation and general install quality is a little weak at the moment. Even when trying to respond via the email link in the documentation with some suggested documentation changes I found the email was bounced back – not an overly good look but it is early days :)

The extensions provide parallelisation helpers for both general tasks (e.g. making a for loop parallel) as well as providing PLINQ (one quess for what the “P” stands for!). PLINQ, from my reading, applies only to LINQ to Objects but is a useful start. So far my interest has been in the tasks support.

As a simple example of how to make a loop run using all your cores, here is our original code:

foreach(MyClass c in data)
{
  DoHardStuff(c);
}

Here is our code using the Parallel Extensions:

Parallel.ForEach(data, delegate(MyClass c)
{
   DoHardStuff(c);
});

As you can see, the extensions make it easy enough to start getting some elementary parallelism working.

The tide is changing

I haven’t heard developers discussing parallelism all that much yet and that concerns me slightly given the impending dependence on parallelisation that high performance software solutions are going to have in the coming years. I wonder if perhaps this is because Microsoft hasn’t released anything specific about it yet (present post topic excluded) and therefore many in the .NET space simply have ignored the parallelisation issues. Certainly some developers are looking at languages such as Erlang which is designed with parallel development in mind and enables the creation of massively parallel software.

A key thing to remember is that parallisation is not a solved problem. Simply dropping in a Microsoft assembly is not going to mean that your solutions are going to run a lot better all the time, hence my advice that developers everywhere should be sharpening their saw and rediscovering exactly what the long bearded lecturer in their computer science concurrency class was babbling about.

I would urge every developer to, at the very least, do some reading up on threading, concurrency and even perhaps try the Parallel Extensions.

– JD

Bootcamp: C# 3.0 Language Enhancements
3 November 2007 in .Net & Microsoft | Comments (0)

I’ve just finished my session at Bootcamp in Christchurch, the topic being “C# 3.0 Language Enhancements”. Thanks to everyone who came along, I’m consistently impressed by how laid back things feel when presenting in Christchurch.

As promised, here are my slides and demo’s for download: C# 3.0 Language Enhancements Presentation

Keep in mind that these demo’s are built against Beta 2 of the .NET 3.5 runtime (Orcas Beta 2).

John-Daniel

Coming out of the technology closet…
8 September 2007 in Apple & Microsoft & Windows | Comments (10)

This may come as a shock to those of you who were closest to me. I thought I had done a good job of hiding my desires from those around me. I have spent so much time in denial but, finally, I couldn’t control “the urge”.

On Monday I bought a Mac. A 15″ Mac Book Pro to be precise.

To my amazement it arrived (from Australia) before lunch the following day. That sort of service is just outstanding given I only placed the order at about 4pm on Monday. Don’t be concerned, this is not the start of gushing about Apple and showing myself to be a Mac fanboy – more that I’m impressed with TNT’s global logistics. I haven’t had anything delivered directly by TNT before but I am seriously impressed.

I have always been quite anti the idea of owning a mac however those long time readers may recall I made more than a few posts when Apple shifted to the Intel chips and opened up the opportunity of running Windows on Apple brand machines. This is precisely the reason I elected to buy an apple machine, I get the following:

  • I can run windows and continue doing .NET development
  • I can run OS X and be able to dig into the Unix base of it
  • I can now run whatever application is best for the job, irrespective of the target platform

I kicked off with a boot camp partition and then directed Parallels at the partition. This was easy enough however I wished the boot camp assistant would have let me select more than 32GB for the Windows partition. Parallels had a few issues though in terms of usability. Andrew had been trying out VMWare fusion so I’ve since installed that and had everything running nicely.

There were a few things that just annoyed me with how Apple have done things compared to how things are done in the Windows world. My main gripe was the mouse, it’s like the cursor is stuck in the mud to me. The suggestion was made that I should just boost the speed so I tried that and it was slightly better however something was still missing. I did some digging and it appears “sensitivity” was my issue (mainly in that I appear to be sensitive to it not being sensitive enough to my needs :) ). Steermouse is an application that provides the ability to alter the sensitivity of the mouse and, along with the speed adjustments, I’m now using a mouse the way it should be used.

Overall I’m still testing to see if I’ll continue to host Windows on top of OS X as I’m still very much on the fence. I’ll make a follow up post in a week or so covering how I’m finding it. Any way you cut it, Apple make kick ass hardware.

John-Daniel Trask

P.S. 4+ hours of battery life is just phenomenal compared to be previous laptops!

Remix part III
26 June 2007 in Events & Microsoft & Mindscape | Comments (1)

Today is day two of Remix so lets recap what has happened so far. Yesterday was my first presentation which I felt went pretty well and I got some good questions at the end of the session. There seems to much more interest in developing Web Parts with .NET 2.0 so most of the questions revolved around that. Thanks to everyone that came to that.

The evening brought about WebJam at Galactic circus. This was a fun event more for meeting people and I got the opportunity to meet and talk with Nick Hodge. Nick’s business card reads “Professional Geek” which was quite cool, apparently a lot of work had to be done to get Microsoft to print a card with a title like that.

WebJam was fun and the time at Galactic Circus wasn’t too bad although it didn’t take too long for most people like myself to jet off to the Casino and to explore. Clock up another $10 lost at the Casino last night. Stayed out until about 12ish but sadly decided to be responsible given I had another presentation to deliver today.

The presentation went off without a hitch and I think that people all picked up something new from it. The WatiN content seemed to be the most popular, I’ll have to demonstrate it as a user group session sometime (I did for Christchurch but not in Wellington yet). The audience for this session was also very good, had quite a few questions and people come and ask me things at the end – always a good sign.

So now the event is winding down and I think it’s been great. I’ve had the opportunity to meet with quite a few Microsoft folk that I know only from their blogs which has been great. People overall seemed to enjoy the event and the sessions. The event has certainly be a success and I hope the feedback shows that. Hopefully they’ll let me back for Remix next year :)

Tonight is one more dinner with some of the speakers and then I’m free to explore until about 6pm tomorrow when I fly back to Wellington :)

– JD

Remix part II
25 June 2007 in Events & Microsoft & Mindscape | Comments (0)

This morning is the first official day of Remix and we’ve just completed the key note and first round of sessions. The content presented so far has been top notch and certainly things are looking bright for UX in the Microsoft space based on what I’ve seen.

The keynote was enjoyable, good spread of speakers showing what has been done with Silverlight and Brian Goldfarb seems more than comfortable with himself when speaking and did a good job of holding audience attention. I stayed for the following session by Lee Brimelow from Frog Design and while his content wasn’t overly technical (this is a dev & design conference mind you :) ) his presentation style was relaxed and his candour was much appreciated. He’s the guy behind sites such as www.thewpfblog.com which I’ve always enjoyed.

My first presentation isn’t until later today (around 3:15 Melbourne time) so I’m just waiting for that to roll up. I’ve been talking with a few people here and it seems many people are quite positive about how things are going. Everyone attending is getting a free copy of Expression Web that is valued at considerably more than the admission price so there is no surprise that I’ve spoken to a couple of people who are only attending a couple of sessions but otherwise are collecting the giveaway only. That’s a bit of a shame because it seems quite short sighted given the quality of the content and the speakers taking part. I wonder if perhaps rather than announcing the giveaway beforehand if it might be better to just mention it in the keynote? That would ensure people come from content and then get a nice surprise.

Overall there is approximately 300 people attending Remix and it seems to be a good size as the audiences aren’t too intimidated to speak up and ask questions. Always nice to interact and feel a good vibe rather than you’re just talking at people for an hour. The mix based on a straw poll at the keynote showed about an 80/20 mix for developers to designers. Microsoft and trying to get into that designer market and my feel is that those sort of numbers aren’t too bad for the first event of this type that they have put on.

Last night there was a speaker’s dinner at The Brasserie in the Crown Casino which was enjoyable – I far prefer chatting over a meal with people than feeling like you’re hijacking them after an event. The food was nice although I’ve decided I don’t like chicken heart all that much which was part of my entree :) The location was nice however I never did work out where the huge fireballs that kept exploding outside the window were coming from!

In terms of Casino losses, clock up another $4… not sure why I keep having that figure so low, clearly I’m not going to find myself in the high rollers room on this trip :)

– JD

Remix part I
24 June 2007 in Events & Microsoft & Mindscape | Comments (2)

Today we kicked off the rehearsals for Remix that’s happening here in Melbourne on Monday and Tuesday. The event so far is shaping up really well, I’ve had a chance to meet with some of the other speakers and the content so far looks to be right up there.

Yesterday I had to depart from Wellington at 6am as it was the only direct flight and arrived in Melbourne at about 8:30am local time. This is my first time visiting Melbourne but I’d heard more than a few stories about it from Lena as she grew up here. It was nice being able to see the places she has spoken about and see exactly why she loves the place. I met up with a friend who guided me around for most of the day which was great – I got to see far more places than I would have stumbled onto myself. I can really see why so many people rave about this city and it makes sense, given the strong culture here, that Microsoft selected the city to hold a conference about bringing design and code together to create beautiful systems (yeah, I bet you were wondering how I could pull my rave about Melbourne back to Remix ;) )

Managed to make my way to the Casino yesterday but only for about 30 minutes (so no attempt at poker) and walked out about 4 dollars worse off, not too bad. Tonight is a speaker’s dinner so perhaps I’ll be able to convince some folks to lose some money with me at the tables.

Today the rehearsals have gone well and all the technology seems to work. Touch wood it works again tomorrow and Tuesday though! I really can’t wait to get on with the conference and meet the attendees – I always enjoy that the most. Especially after they’ve seen me speak and want to ask some questions. So if you’re reading this and attending then mention this post and I’ll shout you a drink :) ) hopefully this offer will result in some great nights out drinking.

Anyway, I’d better get back to it,

– JD

BackgroundMotion.com is live!
19 June 2007 in Microsoft & Mindscape | Comments (2)

We flipped the big switch earlier this week to launch backgroundmotion.com! We spoke a lot about this website at the technical events hosted by Microsoft earlier in the year and how we developed it within three weeks (excluding some subsequent additions as things such as SilverLight popped up on the radar :) ).

So what is BackgroundMotion?

It’s a site where you can go and share you favourite desktop images, and videos for use with Windows DreamScene. However it is a lot more than just that – it’s also a living breathing open source site where you can download the code and check out how we did certain things. You can learn about technologies and design principals used in the site such as:

  • ASP.NET AJAX
  • LINQ for SQL (in a .NET 2.0 project no less!)
  • The MVP and Repository patterns
  • How to integrate with Flickr, SilverLight, Virtual Earth, Windows Live Space
  • How to write Vista Gadgets
  • How to write secured Vista Gadgets using WCF
  • How to use the Web Client Software Factory (Composite Web Block)
  • How to work with RSS
  • How to write a basic search engine using Lucene.NET
  • Heaps more!

It really is quite an action packed sample application (and real world application). I’d strongly urge you to pull it down off codeplex and have a play.

I’d also like to urge you all to go and put at least a favourite desktop image or video onto BackgroundMotion.com. It’s a great resource and is getting a good amount of traffic right off that bat (all you need to do is link to the media you want to download. Nigel has an example if you want to host a video).

Web 2.0?
Part of what we wanted to show with BackgroundMotion is not just how to do some cool stuff but to show how you can leverage Microsoft technologies to create really compelling Web 2.0 style applications quickly and easily. We purposefully looked to simply leverage other services on the internet and provide our own services to aid in building BackgroundMotion faster.

Open Source?
This project was built using Microsoft technologies and we did work with folks from Microsoft (Mainly Darryl and Nigel with occasional appearances from Sean McBrean :) ) however this project is designed for developers to have a poke at and to play with. I’d be really excited to see some people pull it apart and add new features and submit them back to us so that we can look at integrating your changes into the codeplex project.

If you do have some patches then please email me.

Not big on downloading source? That doesn’t matter! We have integrated a way of viewing the key bits of code for each page so you can view it on the site. Of course I’d always suggest you dig a bit deeper and download the source – you will learn a lot :)

– JD

Online and Offline convergence
31 May 2007 in Apple & Code & Google & Microsoft | Comments (2)

Rather than echoing the “oooh -Google gears” and “oooh – Microsoft surface” stories I thought I’d put a bit more thought into these recent announcements and why I see them as important. Earlier this week Andrew and I were discussing the web and how we both agreed that the humble browser is not the ideal application platform. There are many advantages of web applications (instant updates, great metrics on use, much more) but we’re yet to see the richness and flexibility of what can be done in the offline world. Of course the positives of one platform are effectively the negatives of the other and vice versa. People still make a conscious decision about the type of application they’re building and this got me thinking.

Offline Applications

As I commented on Rod’s blog, I agree with DHH on his views about offline applications. Retrofitting existing applications doesn’t strike me as being a huge win, I’m virtually always connected with a pretty fat pipe. I don’t believe the advantages of offline applications are really obvious yet because we are all still thinking how it affects the current web model. We need to pull our view back another 20,000 feet and start thinking outside the box. I’m not claiming I have the answers on this one but I’m sure we can do better than an RSS reader that has an offline mode!

Breaking out of the browser

With Microsoft Silverlight we have the opportunity to break applications outside of the browser (To see an example check out our Silverlight Video player on the Mindscape blog, just click the video when it is playing). I firmly believe this is a significant step forward again that didn’t really get noticed all that much. Suddenly the browser isn’t all that important other than to host these applications. I joked with Andrew that I look forward to the day when the web browser is a non-visual host and the applications are the only visual part (no jokes about visibility inheritance please ;)

Microsoft Surface

First off, this is pretty damn cool. Personally I think it knocks the socks off the iPhone in terms of cool – Microsoft are helping to usher in a new paradigm here but that’s not why I’m bringing it up. Taking into account what we are discussing here you can quickly start to see the benefits of dropping the web browser. I really don’t want to see Internet Explorer or FireFox as a Window on a device like Microsoft Surface – it would just break the model of how the device is meant to be used. If web applications are no longer looking like web applications and are becoming super rich with cloud and offline storage we’re actually seeing a a convergence of the desktop and web worlds.

Challenges

Having said all this there is a HEAP of work still left to do. We don’t really want every application to look different, uniqueness isn’t actually a benefit in terms of usability, there needs to be standards. We need to consider accessibility for less able users or how this content can be moved between the various devices (PC, tablet, phone…coffee table). I really look forward to some of these problems getting solved though, the future looks bright.

I suspect that in the next 10 years we’re going to stop being able to define an application as being a web application or a desktop application. Rather than consciously trying to build Smart Clients, it will just be the way applications are built and we’ll all laugh at why we ever struggled to build them well in the past :)

What do you think? Agree? Disagree? Want to hire me for tarot card reading?

- JD