Nick's .NET Travels

Continually looking for the yellow brick road so I can catch me a wizard....

Languages - Only part of the equation

I'm sorry did I miss the point where we started caring again about what language we are writing in. This was a discussion point 5 years ago when we didn't have powerful IDEs to help us write applications. Now it should be "what job do I want to get done?" and "what technology is going to deliver that the quickest, cheapest and highest quality output?

By technology I think there are at least four key areas to look at:

  • Skills availability (who's going to write the code)
  • Framework (.NET, Rails etc)
  • Tools (VS, Eclipse etc)
  • Language (Java, VB.NET, C#, Ruby)

And imho you shouldn't make a decision based on one of these factors alone.  Particularly in Australia atm where getting skilled developers in nearly any technology is proving very difficult.

Unlike Alex I don't much care for C# or Ruby for that matter.  I find that despite being more verbose VB.NET is still my preference but again this doesn't mean I will always pick it for the job.

Software Engineering Forum: Risk Management and Taxonomy

Last night I attended the software engineering forum on risk management and taxonomy that was hosted by Stewart Johnsonon behalf of Engineers Australia. This forum is a small group of software engineers that gather monthly to discuss various issues to do with the proces of building software. The typical format is that the host gives a short introduction to the topic after which the forum is open for discussion. As most attendees ahave been around the industry for sometime these discussions are a based on a large number of personal experiences.

The topic of risk management as presented by Stewart can be divided into identification, analysis, monitoring and resolution. Stewart's presentation focussed on identifying the mapping that happens between the investigation/analysis phases to the corresponding monitoring/resolution phases. Of course as with any action in a software project there are always going to be reprocussions and I suspect that they need to consider a mapping back from any monitoring/resolution activities back to the identification/analysis phase. This would not only give the project team the feedback channel that is necessary for risk management it would also give them a process through which to iterate it in a similar way to the actual software dev process.

There was a bit of discussion as to which orgs this process should apply to and the general concensus was that we were talking about CMMI 3+ orgs. Imho this is wrong and that risk management should apply equally to all org sizes. Whilst a small org might not have the same number of projects from which they can extract data their projects are likely to be less diversified making their data more relevant to future projects. Further, if the process of risk management is so complex/time consuming that a small org can't do it because of resourcing issues then it is questionable as to whether it is cost effective for an org of any size to carry it out - in all cases the process should be refactored to encompass the whole team, thus reducing the burden on any one person. This also gives the whole team ownership of the problem that raises its significance within the team.

I'd like to end this post with some open questions:

  • How do you manage your risk?
  • Do you look at the risk of a project at the beginning, plan tasks to resolve/mitigate and then tick off risk mgnt, or do you revisit risk at each project meeting?
  • Is the current risk of the project an on going measurable item?
  • How do you identify the risks of your project - do you have a set of standard risk areas or do you just brainstorm for areas of the project that might go wrong?
  • How do you plan the monitoring/resolution tasks - do you have a mapping from risks to strategies?

Great work Frank!

If you haven't already you should check out today’s Australian Financial Review as there is a great photo of Frank and article about Silverlight which follows Frank's postt about an interview he gave last week. Whilst the photo isn't in the same league as Stephen's cartoon I think there are some great points in the article. Imho it goes short of saying that Silverlight will be the platform of choice for enterprise web apps in the future. Unlike Flash, that has remained in the realm of creative/media/game development, I believe that Silverlight is perfectly placed for building full featured occasionally connected apps. When you couple Silverlight's ability to use isolated storage with some of the new sync frameworks being built by Microsoft you have a solution that competes with the likes of google gears. Future versions of Sql Server Compact Edition might even be able to run client side allowing developers to sync and work locally with data in a similar way to traditional smart client applications. With this in mind Microsoft’s silverlight imho is perfectly position to take on the next round of web 2.0 where it is all about enterprise and mobility.

Podcamp Australia 2007 - Stake Your Interest Perth

Here's an event that would be fantastic to be held here in Perth - If you are keen to see Podcamp Australia 2007 come to Perth then you need to Stake Your Interest. Unfortunately as with all these sorts of poll it is done on raw numbers rather than a percentage of population so it is unlikely we will get the event but hey with enough people voting we might be in with a chance.

HTC Reaches that Sweet spot with Windows Mobile Device

I've mentioned in a previous post that HTC are continuing to innovate with the HTC Touch and the HTC Kaiser.  Well I must admit that I'm now hanging out to get my hands on the HTC Kaiser following Paul's indepth review.  As is clear from the review there isn't much missing from this device and with a 3M primary camera it could make this device particularly appealing to your average consumer.  Of course weight is always an issue but for a device that you can really take on the road with you this might hit my sweet spot!

Byte Me! - Perth's Digital Content Festival

If you are into computer graphics, digital animation, cartooning or any form of digital art then this is an event not to be missed.  Later this year the Byte Me! festival will bring together the Perth digital arts community with a week of activites showcasing the best of Perth.  For more information or to get involved check out the website at http://byteme.net.au.  If you work in this space and feel like you could contribute or want to sponsor this event then I would encourage you to get involved.  These events do NOT happen by magic, they rely on the hardwork of typically a few individuals - the more people offer to help the more likely we are to see more of these events. 

Perth gets a new co-working space

Earlier this year Dave and myself established the Perth annex to the Intilecta R&D office in a room that was sub-leased off Enpresiv.  Unfortunately a couple of weeks ago the last of Enpresiv's Perth employees went to work for local competitor Sumo which resulted in a decision to close their Perth office.  This of course left us in a bit of a dilemma as we would have to relocate and after spending the last couple of months in the heart of the Perth CBD both of us were reluctant to go hunting for an alternative space that would likely be further out of town. 

An option that immediately occurred to me was whether someone else could take on the full lease - this way Intilecta could continue to sub-lease and the rest of the office could also be sub-leased to another company.  Luckily around this time I was talking with Scouta CEO/founder, Richard Giles about the posibility of setting up a community of Web2.0/startup companies.  The idea would be to have an open-plan area where a number of these small companies could share ideas/knowledge and innovate together.

As of today I'm the new lease holder for Level 2/90 King Street!  This means that we have 160sqm of office space to get this co-working space off the ground.  We already have two companies involved, being Intilecta and PerthNorg, and I'm hoping to have two or three more companies involved in the coming month.  PerthNorg is a great addition as it brings not only the premiere online Perth information/news site founded by Bronwen Clune to the space, it also means that Myles Eftos, of Port80, AWIA and MadPilot Productions fame, will be moving in.

It is still early days with the layout of the premise still in question but I suspect this will be in flux for a period as we work out the optimum way to configure the office.

I have two requests for comment/input:

Firstly, if you know of anyone, or interested yourself, in being involved in this co-working space (even if it is for 1 or 2 days a week) please feel free to contact me as it would be great to have some more people on board.

Secondly, I was discussing how many people/companies we could comfortably fit into this space.  One option was to lay it out sweat-shop style, dub the place "Mini-Mumbai" and establish ourselves as an outsourcing alternative to India.  I'm not sure this is what we are about, but it did raise a point about giving the space a name.  If you have any suggestions for a name or have some experience setting out a co-working environment please feel free to drop a comment or two.

I'm really excited to get this co-working space off the ground and to see the amount of innovation that can be invoked from small companies working together.

Curtin Students Get a Jump Start

Earlier this week Brian posted about part 1 of a two part workshop that he and I delivered to a group of 18 or so Curtin University computer science students (I also just noticed he posted yesterday about the second part).  Yesterday we completed the second part and I have to make a couple of comments to sum up the event.  Firstly I would like to commend all the students who participated for standing up against the university and demanding that they lift their game.  The workshop came about because the students complained to the computer science department about the lack of practical work in a particular unit.  One of the unit objectives was that the students would get some practical experience with a range of technologies around building distributed applications.  Unfortunately the labs that were initially planned didn't go smoothly and were insufficient for the students to gain an appreciation of how any of the technologies worked.  I'm not going to comment on why this might have happened but the upshot was that Brian and I were contacted to deliver a two part practical workshop around building distributed applications.  Well done to the students who pushed the department to work with local industry to deliver course outcomes.

As I left the workshop yesterday I was talking with Geoff West about how universities structure courses/units and he was making the comments that most staff are so focused on their niche area of research that it is very difficult for them to keep up with all the changes in the industry. This is an interesting point as it can be read in a couple of ways.  Firstly it can be read as an admission of guilt that perhaps the courses/units aren't up to date and don't reflect current theories/techniques.  But I feel a better way to interprete this is that because the industry changes so quickly, and that university staff are driven by their research, perhaps it is time for universities to partner with industry professionals to help deliver content that is more relevant.  The question is really what's the best model for universities to refresh their curriculums and to bring in guest lecturers/workshops?

Some of the student feedback was also really pleasing:

  • Most students felt they got a lot out of the workshops and thought it would be great to have this type of activity more frequently.  Peraps a partnership between Curtin and the local user groups (Perth .NET CoP, SQL User Group....) could work well to deliver these practical sessions on a regular basis.
  • The univerisities have a way to go in terms of lab administration.  The students indicated that during semester the lab configuration meant that most of the proposed labs couldn't be completed.  During the workshops we delivered we also experienced issues with regards to security, setup, performance and stability of the VMWare images. This is an area that really needs to be streamlined - perhaps investing some dollars into a partnership with a local infrastructure company would relieve these issues, instead of attempting to do all lab managment internally.
  • The students were keen to get access to the code that we were working on as part of the workshop.  For their benefit I have posted the lab samples as an attachment to this post (my apologies as these are in C#).  In order to run the samples they will need to download/install Visual Studio 2005 Express Edition, SQL Server Express Edition and the AdventureWorks sample database.

Voice IM Client for Windows Mobile and Symbian S60

I just followed Neil's post to the beta of Palringo - not sure why I need yet another IM client but I do like the way it handles Voice.  Instead of trying to be a full blown VOIP solution it allows you to send bursts of sound (be it voice, background noise, music etc).  Worth having a play with but not sure whether I'll be hooked.  If you're trying it out feel free to add me to your contacts (nick @softteq.com).

IBM doesn't get simple URLs

A week or so ago I was reading the IT section of one of the papers (I think perhaps the Australian Financial Review) and noticed a full page, colour ad from IBM.  The thing that really jumped out at me was the prominant positioning/size of the url.  This would be fine if it was something simple as www.ibm.com.au - easy to remember as it's IBM (which is a company - hence the ".com") and we want the Australian sub (hence the ".au").  Unfortunately the url was completely unmemorable - to the extent that I didn't post about it at the time because I'd forgotten the actual url.

This morning I was again reading the paper, and again noticed a full page colour ad for IBM.  This time the url was much smaller but was still equally complex - ibm.com/innovation/au/finance.  So I can understand why this url makes sense from an IT perspective, but from a marketing perspective can you honestly imagine someone remembering this?  Interestingly enough when I went to that url I got a single line redirect to http://www-07.ibm.com/innovation/au/index.html?CID=BTI_FINA

It gets even better - now say I was an average person who isn't that great at remembering urls but I am interested in looking into this innovative finance software which IBM is selling.  I start at www.ibm.com.au where of course there is no mention of this advertising campaign, no quick links to "innovation" or "finance".  I'm left doing a search - here if you type "innovation finance" you do indeed get a link to the correct site but if you happen to type "innovate finance" you get a bunch of search results that don't go anywhere near the site you want!

Honestly IBM, is it that hard to understand the power of simple URLs?

Blacklisting Applications on Windows Mobile

Ever wondered how you can stop someone from changing the time on a Windows Mobile device?  No? Me either, but I have heard a number of enterprises ask how they can lock down their devices to prevent certain applications from running.  There are a number of 3rd party applications on the market that can be used to limit device functionality and there are some other clever tricks for preventing applications from running. 

Jason Langridge and Rabi Satter have the details on one such method that can be used to effectively blacklist applications so that the Windows Mobile operating system won't allow them to run.  Rabi also lists a configuration service provider (CSP) that can be used to set a variety of security settings on the device - CSPs are a great mechanism for ensuring multiple devices are configured the same way throughout an enterprise.

Mobile Development Books

Earlier this year I was fortunate enough to be involved as an informal reviewer for the mobile development book that fellow MVPs Peter Foot, Andy Wigley and (exMVP) Daniel Moth were working on.  The great news is that it has now gone to print and I would highly recommend it for anyone building applications using the .NET Compact Framework: Microsoft Mobile Development Handbook (Amazon)

The other book that I haven't yet had the opportunity to read but has been recommended by merge replication guru / windows mobile accelerator developer, Rob Tiffany, is Professional Microsoft Smartphone Programming (Amazon).  Apparently this covers some of the perculiarities of developing for a non-touch screen, limited display, mobile devices.

Updated: More mobile device reference material is available via the "How Do I?" video series, now for devices!

Slide Navigation

Earlier this weekend I was thinking about how the next generation of devices is pushing the user interface/interaction boundaries.  Devices such as the HTC Touch and the iPhone introduce interfaces that incorporate more human gestures combined with a slick graphics. This made me wonder how hard it would be to create a control that could be used to smoothly transition between screens.  What I came up with is a simple control that allows the developer to gradually transition between different layouts, as shown in the following image:

Working with this control is relatively straight forward as you can simply define current, next and previous graphical layouts (for example you might have 3 panels each with a different layout on).  Then using simple actions such as GoNext and GoPrevious the control co-ordinates a smooth transition by scrolling the current layout off the screen while the next layout comes onto the screen.  There are a couple of configurable options that let you control the speed of the transition and whether the screens scroll from the left/right or top/bottom.

If anyone is interested the rough source, with a sample form, is available in the attachment to this post.

Mobility visits Perth

In a previous post I discussed some of my reservations regarding the small form factor Tablet PCs and UMPCs that we are starting to see in the market.  Last night I was fortunate enough to catch up with Hugo Ortega (Tablet MVP, Uber Tablet, GottaBeMobile and of course Tegatech Australia) who was in Perth on Thursday and Friday conducting a workshop around mobile computing. As Hugo was leaving late last night, to ensure he was home in time for his son's soccer game today, I forgo Friday night drinks in exchange for a buffet dinner at the Sheraton - I'm not normally a fan of hotel food but I have to mention that the food was awesome.  I'm glad we had the opportunity to catch as I was finally able to have a quick play with the OQO O2 device that Hugo is using as his primary screen

As I've mentioned previously I'm definitely a touch screen person so the lack of touch screen was IMHO an immediate failing of the OQO O2.  This combined with a slightly awkward keyboard and the lack of stylus holder meant that I definitely wouldn't rush out and buy one.  Credit where credit is due - the device has some really cool features.  Firstly, the screen is unbelivable: even at the highest resolution (software zoomed) it is still easy to read.  This combined with the new zoom feature in Office 2007 means that you don't run into the same navigation/operating issues you do typically with a pda style device.

Another cool feature that Hugo pointed out was the ability for the device to auto-sense lighting conditions.  Right next to the screen there is a light sensor that can tell whether the device has direct light, is in shadow or in a dimly light location.  When lighting conditions would make the keys hard to read a backlight automatically comes on, illuminating the keys.  This is similar to the backlight on the keys of the K-Jam (and a number of other windows mobile ppc devices).  I only wish they had this feature on more cars - it would save having to turn lights on and off which have always thought was a bit unnecessary.

Having spent the day in the "Resource Quarter" of Perth Hugo was also right where all the action was when it came to the announcement around free-wifi in this area of the Perth CBD.  Dubbed the ResourceNet this is an initiative that has been put together by Rio Tinto, BHP Billiton and Woodside.  Other local journalist had the scoop on Thursday when the announcement was made:

In short it was great to catch up with Hugo and to shoot the breeze on where mobility is going.  Hopefully Hugo will be back across in the next couple of months when we will try and get him along to the WA Mobility User Group and perhaps even a community dinner.

 

Update: From Bernard's post I saw that the Sydney Morning Herald rated a number of capital cities based on their delivery of connectivity.  Not surprisingly there weren't any Australian cities in the top 10 - I wonder with the move to providing free wireless in the Perth CBD whether we might beat Sydney in providing pervasive, free wireless internet access across the entire CBD?

User Group Library

The Perth .NET Community of Practice has recently updated the list of books available in their library and is experimenting with an online system for managing it.  Head across to the user group announcements blog for more information.

In the process of tidying up there are a couple of give aways that will go on a first-come-first-served basis:

  • Issues 1-19 of the Australian Developer Magazine
  • Microsoft Visual C#.NET Standard - Version 2003 (In the box!)
  • Developer's Guide to Moving to Microsoft .NET (guide)
  • Developer's Guide to Upgrading to Microsoft .NET

Now I know you will be saying these are old, and yeh, you're right!  But, instead of just binning them I thought it prudent to ask the question just in case someone out there still wants them.  Anyhow, if you do want either of these, please feel free to contact me and we can organise a time for you to come pick them up.

Update: The library now contains both WCF Unleashed and WPF Unleashed - recommended reading for anyone getting started with either of these technologies.

SharePod != iTunes Slayer

sharepod_logo

Recently a friend of mine showed me this cool little tool for bypassing Apple's "iPods shall only sync with 1, and only 1, iTunes instance" (honestly what a dumb constraint) called SharePod.  The user interface is quite intuitive (read simple) although it's a bit weird that you can't seem to easily queue tracks for playing without creating a separate playlist.  The best thing about the app is that it is a .NET Framework v2 application - IMHO much better than adding unnecessary WPF requirements.

After taking a quick look through the prerequisites for SharePod I went ahead and downloaded it (and as per their recommendations placed it on my iPod).  Unfortunately what they don't say is that you need to have the iTunes virus installed on your computer for it to be able to access the music database on the device - oh well, I can live in hope that one day someone builds an iTunes slayer.

Why Windows Mobile Device Center Is Broken?

Last week I posted that the WMDC had replaced ActiveSync and that you should upgrade to the latest version.  This week I'm seriously considering downgrading back to Windows XP just so I can run ActiveSync again.  On my way to work this morning I decided to grab a cup of coffee and write this post on Joel's recent visit on my K-Jam.  Unfortunately when I got to the office and sync'd with my laptop I couldn't open the note that I had written.  Under XP/ActiveSync all you had to do was drag the Note (which is a .pwi file) from the device onto the local machine and it would be converted by ActiveSync.  Now when I do that it transfers the pwi file as is to my machine and when I go to open it with Word I get:

image

Now I'd consider myself slightly more than the average user and would suggest that if I can't work out how to transfer notes to my Vista machine then there is something BROKEN with the Windows Mobile Device Center (unless of course I'm missing something obvious....).  Seriously Microsoft is it that hard to ship a version of ActiveSync/WMDC that actually works?????

Perth Ignores Concurrency

Last Thursday the Perth .NET Community of Practice was privileged to have Joel Pobar deliver a double session on concurrent programming and the new Dynamic Language Runtime. For anyone who has used concurrency in an application they will appreciate the added level of complexity it can add. Through a detailed discussion of the evolution of hardware and the way that Intel (and others) "screwed" us, Joel presented a number of best practice techniques that can be used to reduce the issues associated with concurrency.

In the second session Joel got down to talking about what is clearly a passion for him, dynamic languages and the future of the dlr/clr. Whilst I really love the discussion of the future of programming languages I must confess that for building your standard enterprise application I do struggle to see the business value of the new dynamic languages. Of course when you are looking at massively parallel problems and systems that are constantly in a level of flux, dynamic languages clearly have the advantage as the system can continue to evolve.

People are going to tout the success of Ruby and that of course dynamic languages are the way forward for building rich web applications. However I think what is significant from looking at Ruby is the Rails framework, rather than the dynamic language capabilities of Ruby as such. If you look at project Jasper, how much of this is reliant on the dlr - atm none afaik?. Of course, this is only in its infancy but does go to illustrate that it is not necessarily the language that is delivering the benefits, rather the toolset and framework.

This discussion comes back to my criticism of some WPF advocates that claim only developers who read and write XAML are real WPF developers. Well sorry to point this out but the Age of User Experience doesn't say anything about reading or writing xml (in any shape or form). Surely we should be talking about how best to abstracting the pain associated with working at that level and building an IDE that can do ALL the heavy lifting for you. This includes getting data binding working properly!!!

Ok, back to the focus of this post - I want to sincerely thank Joel for taking the time to come out to Perth and deliver a fantastic session.  With a bit of luck he also had a great weekend down-south and will be back this side of the country again soon.

Unfortunately I must admit I was a little disappointed with the numbers.  We were just short of 40 people and whilst this is more than we usually get for our monthly user group sessions, it is significantly short of what I would have hoped for from this event.  I think we need to question why people didn't attend?  From my point of view the user group did more than their fair share of organizing and promoting the event - and it was evident that most of the regulars appreciated the event. 

I'm always amazed that the local Microsoft branch doesn't seem to think the user group is important.  In the last year I don't think we have had a single Microsoft person attend any of the sessions (other than if they were invited to present) - how's that for supporting a technology?  I understand that everyone is busy - but try having a full time job AND organising the user group (kudos to Alastair and Mitch who are running the group at the moment).  Following on from this, if the local branch don't think the user group is important then why do we waste our time, since clearly developers are going to look to Microsoft for support and if they don't point out the user group or recommend the user group then they aren't likely to attend. 

Further, we have been trying for a number of years to point out that companies should be promoting the user group internally as one of the best forms of professional development.  For the cost of 1 or 2 developer hours a month a company can support the PD of their staff, which is likely to be better value for money than having to organise training for their staff. Given the current shortage of .NET developers in the market I would have thought companies would go out of the way to encourage their staff to continue to grow and give them the flexibility to attend user group meetings.

In summary - everyone enjoyed Joel's session (and the community dinner afterwards at Nine Mary's) but I was disappointed with the attendance.  I think more needs to be done to support the user group by the local Microsoft office and that companies need to start placing a value on the professional development of their staff.

Torn Between Groups

Recently I posted about the WA Mobility User Group and their June meeting scheduled for this monday (11th June):

WAMUG - June Meeting

Presenter:   Paul Malyniak, State Manager - 3 Mobile
Date/Time:  5:30pm to 7:00pm on Monday, June 11, 2007
Venue:        Fujitsu Australia Ltd, Level 15, 191 St Georges Terrace

Featuring Paul Malyniak, Western Australian State Manager of 3 Mobile, who will discuss and demonstrate the latest in mobile technologies with a look at 3 Mobile's business plans and data cards/services.

Unfortunately I just noticed that the next meeting of the Software Engineering Forum is also on tomorrow evening:

Software Engineering Forum

Topic:          Issue Tracking
Leader:       Andy Dent
Date/Time:  Monday 11 June 2007  at 5.30 pm
Venue:        Lecture Room, Engineers Australia, 712 Murray Street, West Perth

Andy Dent will lead a discussion of issue tracking systems, with examples of current open-source systems. His particular interest is in the usability of such systems and how it affects the willingness of people to adopt them, ability to expose to end-users  and changing team practice. He will also discuss how a simple 'bug-tracker' can be used to manage requirements and aid traceability throughout the software life cycle.

Attendees are encouraged to bring examples of issue tracking systems interfaces, preferably emailing them in advance to andrew.dent @ csiro.au

Normally it would be a simple choice as mobility is definitely one of my key interests, but to be fair I'm not sure I'm particularly interested in the phone plans of the 3 network and the topic of Issue Tracking could be a quite interesting debate.  At this stage I'm likely to go to the WAMUG meeting - which would you choose?