August 1018

If I ran DevDiv… my take on things

There have been some very thought provoking blog posts focussing on .NET recently and this post is my reaction to them. In “How I Feel About The .NET World Lately” Davy Brion rants a bit about some stuff he doesn’t like and Ayende has some ideas for how he would change things going forward.

Davy’s post is, by his own admission, a rant. He refers to the Microsoft recommended development practices and products as “Fisher Price Development”, a sentiment I share to some degree. In my opinion a developer is someone who can write code and not someone who can only use the wizards in Visual Studio. Microsoft has plenty of documentation on how to use their tools and write code as long as you want to do it the Microsoft way, but it isn’t much help if you’re trying to do things in the real world. Now I don’t think it’s Microsoft’s place to try to teach people how to be a good developer, but I would like to see better quality documentation. We know they can write good code so why settle for poor quality on MSDN, proper use should be made of using statements and care taken to ensure that objects are properly disposed – even in these simple examples. Hello world samples are useful when you’re trying to learn something new and sometimes so obscure that it’s hard to see how to apply their example to what you’re trying to find an answer to. To quote my friend Karl:

When I was trying to learn how to use delegate functions, the MSDN example was something to do with an array of dinosaurs which were sorted using a delegate function. It was so utterly unrealistic it was no use and didn't teach me anything about delegates!

There are times when I need to ‘hack’ something, occasionally it makes sense to just throw in some raw ADO.NET code to pull back a simple value from a database and setting up an ORM for just that one bit of data is over kill. Like sorting your record collection alphabetically even though you only have one album. That said I still think there’s room to have an advanced / real world examples that show production quality code; including defensive programming, error logging and proper validation – people need to know what proper code looks like and this would be a good opportunity for Microsoft to lead people to a professional programming style. They could turn their developers loose on MSDN once a week and let them add in the advanced concepts, I’m not asking for much – just one afternoon a week. Granted this might not give documentation to suit all tastes but most developers can adapt code samples to something that works for them, so those in the alt.net community could use it as a jumping off point and maybe somewhere like codebetter.com could start it’s own MSDN style resource?

Where are things going?

A lot of attention seems to be focused (at the moment) on the entry level .NET developers – my concern here is that this appears to be at the expense of those at the other end of the spectrum. Both WebMatrix and LightSwitch (it should be noted that I haven’t actually used either of these, so you’ll have to take my opinions with a pinch of salt) are designed to allow people to:

solve specific business needs by enabling them to create professional-quality business applications, regardless of your development skills

The trouble I have with this strategy is that it hides the complexity of creating professional software from those using the tools so when you need to do something that isn’t possible through the wizards you’re in real trouble. I have seen quite a few people call themselves developers, even get jobs as developers, who can’t actually code and I worry that tools such as these will only encourage more people. Please don’t misinterpret me here, I am not saying there’s anything wrong with having a cool IDE that lets anyone put together a nice program – everyone has to start somewhere right, but that’s not the same as becoming a developer yet that’s the impression that’s being given and doing that devalues professionals and the years of effort they’ve put in to learn their craft. I have a Sony A200 and I can take pretty decent photos with it, but I am not a professional photographer, nor do I delusions that I am one.

Ideally I’d like these newer tools to provide a nice easy path into the more serious end of programming but I fear that mastery over something like WebMatrix isn’t really going to help someone migrate to using Visual Studio.

What can we do about it?

So that’s a rough summary of where things are at the moment, and a glimpse of where it looks like they’re heading, so what can / should be done about it?

Good question, in fact that’s pretty much the question Ayende tries to answer,

if you were in Scott [Guthrie]'s shoes, what would you do?

  • I’m very much behind Ayende’s call to kill duplicated effort, his example of the embarrassment caused by LINQ to SQL & Entity Framework fiasco illustrates this point nicely, they should have identified the overlap while they were still internal projects and unified them before they saw the light of day. This is how I feel about their tools, internally they need to collaborate / communicate more to know what other teams are doing. I know a developer who refuses to look at new technologies because they get killed off and he ‘wasted his time learning UML and other stuff’ – essentially he’s afraid to invest his time into learning something new in case it gets pulled within a year or two, and to be honest you can’t really blame him if his fingers have been burned before.
  • This point was made by Karl and I’m simply repeating it here: “Stop trying to out-X X!  Microsoft software does its own stuff and does some brilliant things.  But you can't out-Google Google, out-Linux Linux or out-Apple Apple.  That's why the Phone 7 stuff is so interesting to watch develop because, unlike Android, they've actually done something new rather than just copy the current state of the art.”
  • I’ve said I feel there is a lot of attention focussed on the entry level developers – well I also agree with Ayende that Microsoft should focus some love towards the non entry level developers, this shouldn’t be allowed to continue.

Now in a cheesy attempt to generate some comments… what would you do dear reader?

Spread/Promote this post

If you enjoyed this article, consider bookmarking or helping me promote it! Thanks.

  • Del.icio.us
  • Digg It!
  • Technorati
  • BlinkList
  • DZone It!
  • Furl
  • NewsVine
  • Reddit
  • StumbleUpon

Don't miss another post

Subscribe to SJM Dev's RSS Feed to stay updated with our latest articles!

Permalink | Comments (1)

July 1022

BlogEngine.Net Interlude Theme on blogenginetheme.com

I’m quite pleased to see that my Interlude theme port for BlogEngine.Net is being used by someone else.

In November 2008 I converted the Interlude theme for BlogEngine.Net – it was on Free CSS Templates and I liked it, I changed bits of it here and there… but essentially it’s that template but tweaked to fit BlogEngine.Net. Shortly after that there was a request for themes for BlogEngine.Net so, feeling quite proud of my theme (I’m a developer and artistically challenged!) I submitted the theme but didn’t hear anything about the submission.

Today, after reading 5 Reasons Why You Can Use HTML5 Today I was curious to know whether BlogEngine.Net would play nicely with html5 so started looking on the BlogEngine.Net site, stumbled across the themes and thought I’d see what else there was (the selection was quite limited for a while). Lo and behold http://www.blogenginetheme.com/ a nice gallery of themes for BlogEngine.Net and I thought that theme looks pretty familiar – checked the footer and… well it’s my theme. I’m pretty pleased a site devoted to BlogEngine.Net themes has chosen to use my theme Smile and that there 979 downloads so far!

Spread/Promote this post

If you enjoyed this article, consider bookmarking or helping me promote it! Thanks.

  • Del.icio.us
  • Digg It!
  • Technorati
  • BlinkList
  • DZone It!
  • Furl
  • NewsVine
  • Reddit
  • StumbleUpon

Don't miss another post

Subscribe to SJM Dev's RSS Feed to stay updated with our latest articles!

Permalink | Comments (1)

July 1002

A success story for the IIS SEO Toolkit

Ok I wanted to do a post about the IIS SEO Toolkit, but realised knew that Scott Guthrie had already done a, quite in-depth, article about the IIS Search Engine Optimisation Toolkit. But my reason wasn’t so much to try to make people aware of the extension, I just wanted to rave about it a little, so here goes…

For the last 2 days I’ve been ‘tinkering’ with the company website trying to make it a little better than before – I think I’ve done that with the help of the IIS SEO Toolkit. When we launched the new version back in February this year I ran it by the SEO Toolkit to get an idea of what issues we might have with it, there were quite a few violations flagged but we were busy at that time, so I dutifully logged a task in our system to have a look at this when we had some free time.

No one else picked up the task, so I decided to have a go at it. I re-ran the analysis, prepared for bad news and was quite gob-smacked to find it was reporting close to 40,000 violations – ouch! The company website is built using Sitefinity (the CMS system from Telerik) and we’ve got a little over 1,050 pages in the site all of which have been built by non-IT staff and use only 3 template pages. The analysis turns up 3,526 urls that it processes, so this is handling a lot of other resources as well, but 40,248 violations is a around 11 violations per page! That’s not good, not good at all.

We had over 5,000 images missing alt attributes, nearly 2,000 broken hyperlinks and 3,298 pages with invalid mark-up. After my tinkering, I’ve moved all the JavaScript to external files and linked to them at the bottom of the page, fixed all the pages with invalid mark-up and almost eliminated the missing alt attributes (there are now only 47 images without alt attributes and I’ve been in touch with Sitefinity support to request a change be made to prevent it in future). We’re currently down to 7,186 violations of which 1,666 are to do with missing descriptions (a good amount of these are the result of broken links), 726 pages with broken hyperlinks and 2,208 pages with unnecessary redirects – which are caused, again to a large degree, by broken links and some legacy stuff from before the change to the new site.

I’m pretty pleased to have fixed as much as I have so far (just over 33,000 violations), I know it’s not great having 7 thousand violations but it’s so much better than before and with a bit more work I’ll bring that down to a much more manageable quantity

Spread/Promote this post

If you enjoyed this article, consider bookmarking or helping me promote it! Thanks.

  • Del.icio.us
  • Digg It!
  • Technorati
  • BlinkList
  • DZone It!
  • Furl
  • NewsVine
  • Reddit
  • StumbleUpon

Don't miss another post

Subscribe to SJM Dev's RSS Feed to stay updated with our latest articles!

Permalink | Comments (6)

June 1024

A lack of interesting things to say

Tags: | Categories: Musings
E-mail | Permalink | Comments (0) | Post RSSRSS comment feed

I haven’t made a post in over a month – that’s bad, but then I don’t feel that I’ve got much to say at the moment.

My posts are often made in response to something I’ve read or a problem I’ve had and (hopefully) solved that I hope will help someone else. For the last few weeks though I’ve not had any ‘tasty’ development work to get my teeth into, I finished the last chunk of development about a month ago.

I have been busy with other things though, some of them have even been to do with work but nothing that’s either finished enough to talk about or particularly interesting. Mostly minor updates to our websites or bug fixes or, increasingly, responding to emails and helping users work with systems we’ve already set up such as Google Analytics or explaining how to examine page mark-up generated from our CMS.

There are a finite number of keystrokes left in your hands before you die - Scott Hanselman

That quote from do they deserve the gift of your keystrokes suggests that maybe instead of replying to an email I should consider updating our wiki so others can benefit or check there before coming to me direct, but I quite like the human interaction sometimes – not to mention that it makes me look good being seen as the fountain of all knowledge in the eyes of others in my company.

Spread/Promote this post

If you enjoyed this article, consider bookmarking or helping me promote it! Thanks.

  • Del.icio.us
  • Digg It!
  • Technorati
  • BlinkList
  • DZone It!
  • Furl
  • NewsVine
  • Reddit
  • StumbleUpon

Don't miss another post

Subscribe to SJM Dev's RSS Feed to stay updated with our latest articles!

Permalink | Comments (0)

April 1020

Confirmation of email in forms

Isn’t it about time to ditch the “Confirm Email” field in forms? Really I don’t see any point to them any more, I suspect they only exist because that’s the way these forms have always been done.

What’s wrong with re-entering my address?

Well for one it doesn’t prevent the problem, if I’ve mistyped my address once chances are that I’ll do it again. Ok checking that both values match will reduce the chances that I mistype my email address incorrectly the same way more than once, but it doesn’t actually prevent it from happening and as most of the time I’m typing on ‘auto-pilot’ with my fingers following paths I’ve drilled into them over and over again I’d argue I’m actually more likely to re-enter the same value anyway.

It’s rude and assumes I’m not to be trusted

Making me repeat myself implies that the form doesn’t trust me to get it right first time. Now I know we’re taught to distrust all user input, but I think this takes things a bit far. I accept that the main reason this approach still exists today is error prevention but if that’s the case though shouldn’t there also be a “Confirm Name” field, after all I’m quite likely to get annoyed if communications get my name wrong and I’m just as likely to type that incorrectly.

How do I approach the form when I encounter them?

My usual approach, when I encounter confirm email fields in forms, is CTRL+A, CTRL+C, TAB and then CTRL+V, it is much quicker than typing the whole email address again. So disabling copy & paste really irritates me!

Of course that approach assumes I’ve typed my email address correctly the first time, but a) I’m pretty good at typing my email address and b) when I do make mistakes I will correct them. If it is really important that my email address is right, such as for confirmation that an online payment has happened then you can bet I’m going to double and triple check that address myself! When getting my email address right is important I will pay attention but so often my email address is needed just to fill in a form that there really isn’t any need for an email address on that I just don’t care why they want it (and I’ll give them a disposable 10 Minute Email).

What can be done about it?

There are other and better ways to confirm the email address is correct:

  • The user can actually see what they’ve typed and fix it there and then
  • Display a confirmation page with the option to go back and correct mistakes
  • Send a confirmation email – this also confirms they have access to the email account and aren’t just signing up their friends without permission!

What about password fields

So far I think that what I’ve said would be accepted by 80%+ of web users; I’d like to go a step further and apply the same principle to password confirmation fields!

Currently when I have to set a password I’m presented with 2 text boxes that mask my entry, so I can’t see what I’ve typed. I know the reason here is to prevent someone from peeking over my shoulder and seeing what I’m typing – but I don’t think many people are that interested in accessing my bbc.co.uk account or my MSDN profile and most of the time I’m doing it I’m either at work or at home and I know the people around me and they’re too busy to care!

Personally I’d like to unmask the password box and get rid of the confirmation box; then I’ll know what I’ve typed and can correct it if I need. Or at least have a toggle option that lets me keep the old way, for when I’m using a public computer maybe, but when I’m at home just let me see my password.

Spread/Promote this post

If you enjoyed this article, consider bookmarking or helping me promote it! Thanks.

  • Del.icio.us
  • Digg It!
  • Technorati
  • BlinkList
  • DZone It!
  • Furl
  • NewsVine
  • Reddit
  • StumbleUpon

Don't miss another post

Subscribe to SJM Dev's RSS Feed to stay updated with our latest articles!

Permalink | Comments (0)