180. Backend

On this week’s show: The Northeners are joined by the Headscape duo Craig and Dave. We talk about why you should care about .NET MVC and answer your questions about managing your code and friendly URLs.

Play

Download this show

Launch our podcast player

Our most complicated setup to date! Ryan in the studio, Craig and Dave in the barn and Stanton on the phone.

Housekeeping

Vote for our SXSW Panels!

It’s that time of year again and we’re asking our beloved listeners to vote for one or both of our SXSW panels.

Pain Free Design: Getting Client Sign Off

Boagworld Live – Open Mic

Any votes would be greatly appriciated!

News

Expanding your development skills with Creative Tech Projects

This post by Smashing Magazine tries to pursued you into doing something different every once in a while and points out that even if you’re a web developer, your next project doesn’t have to be a website! You can learn a lot by doing something outside your normal comfort zone, and there’s some great examples of different things you could play with, such as:

  • Write your own desktop application, using Air for example
  • Extend Firefox
  • Create interfaces for your favourite gadget, such as your iPhone or Wii
  • Play with Hardware, such as the WiiMote, Arduino kits or Lego Mindstorms

One of the things I love about working in this industry is the sheer amount of cool stuff available for us to play with. Admittedly, it can often be hard to find the time, or even justify spending time playing with cool stuff when client work is stacking up, but who knows, you might find that people out there would pay you good money to build things using the skills you acquire!

5 Advanced Photoshop techniques for web designers

Yes, this is a ‘top 5’ type post, but it’s quite a good one so I thought I’d tell you about it. This article on the Think Vitamin blog gives you a decent rundown of 5 popular visual effects in modern web design, and tells you how to replicate them.

There’s tons of screenshots and explanations of how to make awesome buttons, navigation menus, inset typography, faded shadows and depth. It’s a post to bookmark for those times when you have a spare few minutes to mess about in Photoshop and try new things.

Digg’s move to GIT

This is the first of a two part article detailing how the developers at Digg are making the move from Subversion to Git. I realise that source control doesn’t get discussed much on this show, but it’s something that every designer and developer should be using if they’re not already.

I’m not wanting to start a SVN vs GIT argument here, but I’m very interested in seeing how big established teams work in regards to source control and this is quite a candid account from the Digg team about the scaling issues they experienced as the development team expanded and SVN struggled under the load, and how they’re starting to use GIT to solve some of these problems, highlighting both the good and bad points of the new system.

Everyone will have their own source control preference, but if you’re part of a large team and have source control issues (don’t we all) then give this a read.

Back to top

Feature: Why .NET MVC? (and why should we care?)

Having previously written about the highs and, perhaps more importantly, lows of working as a .NET developer. This article will continue the trip into Microsoft World, only this time it’s to the land of MVC.

Read the Why .NET MVC? (and why should we care?)

Back to top

Listeners Questions

Managing your code

Question from Jamie…

I have recently started developing my own system for building web applications with. I have found that as projects have ticked by i have ended up with a large assortment of code of different versions and functionality. How do the backend development guys at headscape manage this code mountain beyond the project by project SVN style management?

Headscape has a strong design and consultancy background, however the development side of things has also been done internally since
the beginning.  In fact the design and Tech teams are of equivalent size and we have a large number of legacy and currently running projects
at any one time.  Source control and code management is therefore vitally important.

As a development team we rely heavily on three main methods of knowledge transfer over time, projects and team members.  This includes
the standard approach of code commenting, a source control system and an internal wiki for snippets, interesting decisions, rationales,
product roadmaps etc. The wiki, in the context of code, provides a space for longer descriptions and reasoning behind technical design and
implementation approach.

As many of you may be aware a large number of Headscape projects utilise our in-house CMS.  This acts as the base for our common code and
contains multiple projects – A common code repository (the equivalent of our ‘System’ namespace), a CMS class library project and
a base CMS Web project. When a new CMS project comes in we create a new project in source control, with the most recent labelled stable
version of the CMS code as the initial check in.  Changes on this development are then logged only within the context of the project.

Throughout key stages of development and during project washup changes and enhancements that can be generalised from this project will fed
back in to the main project after review with at least one other member of the tech team.  As some projects can be very bespoke we do not
currently utilise branching within our Source Control repository for the purpose of each project.

Friendly URLs

Daniel Farrell writes:

My university has a ridiculous URL naming scheme!

I can see what they are trying to achieve: human readable and logical ordering of pages. But by nesting on such a microscopic scale, they produce the opposite result. The pages are no longer memorable, and not even easy to read because you need a huge screen wide screen to see the whole URL.

Furthermore, because ‘software’ is a service provided by the ICT department is must be nested underneath it. This reflects the management structure of the department not necessarily the way a user thinks! For example, why couldn’t the URL be, /softwareshop/adobe?

What are your thoughts on human readable URLs and how would you tackle the problem of making such a huge site easy to use? Should I have more sympathy for the web team or do they need a good kick up the arse!

There are a number of reasons that large organisations use long and often convoluted URL schemes. One possibility is that different parts of the site could be hosted on different servers and managed by different people. There may be different systems running different sub sections such as a shop which generates its own URL structure under an already long base path.

Firstly, it doesn’t always matter. Unless it’s a URL you want people to remember, the majority of web users don’t really care what ends up in their URL bar once they start navigating a site. It makes no difference to a bookmark and can be shortened easily enough by any number of URL shortening services such as tinyurl or bit.ly.

So when does it matter? It matters when you want users to easily find something that could be tedious to find by navigating a site. A good example is TV or poster adverts where people need to remember the URL for a period of time or a subsite that isn’t linked to from the main site. (administration logins for example)

A good example of a website that manages this well is the BBC site. This is a huge site with many smaller subsites. It’s important for them to advertise concice and memorable URLs so many of their subsites are directly below the site root. One solution could be for the university to setup a series of shortcuts that redirect to the full URL.

Some tips for constructing easy to remember URLs
  • Keep sections concise. “personalcomputersupportandmobileservices” is bad, “ict” is good.
  • Try and use words that are easy to spell.
  • Avoid numbers and hyphens
  • If possible and necessary, create a couple of versions that are equivilent and redirect to the correct version (ie. Wikipedia’s redirection)

Back to top

  • http://webdesignernotebook.com Yaili

    I have to confess I wasn’t paying a lot of attention to the feature part, it sounded too complicated to my simple designer’s brain :)

    However!… I have been asked to change a very big CSS file plus many HTML files because they couldn’t have any ids (I was paying attention when Craig said that). It was kind of a pain really, but because I have no idea how that stuff works, I just did it :(

    Also, unfortunatelly, I think the percentage of people that likes to point out how sites don’t validate is still quite large. Which is annoying and makes me want to punch them.

    I’ll see you all on Thursday! :P

    Cheers!

  • Keith Hill

    During the conversation about source control, one of you fellows (a Headscape guy) mentioned a different program that he uses with Visual Studio. I was on a crowded bus and could not take notes calm in the fact that it would be in the show notes. Sadly it was not. I would love to look into that product if you could provide the name / link would greatly appreciate it.

    btw. great show.

    • http://cargowire.net Craig Rowe

      I believe Dave mentioned Dynamsoft SourceAnywhere, which is a SQL Server based solution similar to MS Visual SourceSafe and Paul and I discussed Git Extensions (http://sourceforge.net/projects/gitextensions/) which is a GIT plugin for Visual Studio. Hope this helps.

      Glad you enjoyed the developer heavy show.

  • http://www.ola-adventures.com OlA

    Just wanted to say what a great podcast , I hope that you guy find time to do some more in the future , very nice to hear professionals (bodie and doyle) talking about where they feel time should be spent , as there is so much to learn out there just being in the right direction is nice to know.
    Jon

  • http://twitter.com/pixelnated jeremiah Hester

    I really enjoyed the podcast this week guys! While I usually tend to lean toward open source solutions this has opened my eyes toward using .net mvs for some projects I may need to work on for the 9-5 job.

    You guys should do a tech panel on the normal boagworld show too when Paul & Marcus are around.

    Keep up the great work.

  • http://www.well-it.com Gareth Watson

    Hey guys,

    I had to stop by and compliment you on an outstanding podcast. I listened to it twice in one day last week – once on the way to a clients premises and once on the way home!

    I’m a front end designer myself with aspirations of learning server side code. I’ve just recently decided to go down the .Net route in order to develop a better work flow between my team and that of our own application developers.

    At this stage I’ve had exposure to Visual Studio and all of the problems that I’ve come across seem like they might be solved by MVC so hopefully this will be something that I’ll be actively involved in soon enough.

    Great work guys and please continue to throw in the odd tech heavy podcast every once in a while. I found this one to be very inspiring!

  • http://www.brianos.com Brian O’Sullivan

    Thanks for the great show. I a long-time subscriber and have been waiting for a development episode for ages!

  • David Wilemski

    I thought this was a really great show! I’d like to suggest doing a development show more often – monthly maybe?

  • Seb Crump

    The main problem with long URLs is that people do try to email them and they do break and cause user problems that way…

    Just to let you know that there is an open-source URL shortener I found: http://urlshort.sourceforge.net/

    I guess it could be incorporated into sites and provide a short url on demand.

  • http://thefreerpgblog.blogspot.com Rob Lang

    Nice to hear a Dev podcast. Visual Source Safe is to source control as Windows 3.1 is to a GUI OS. The current MS system for source control, merging, branching, checking in and out, build deploy and so on is Team System. For a distributed team, it’s ideal and plugs into VS like Source Safe. Was surprised you hadn’t mentioned it.

    • http://cargowire.net Craig Rowe

      Hey Rob,

      Glad you appreciated the dev oriented podcast. You’re right, I hadn’t realised I missed out mention of Team System (I’d even spoke to Stanton about it a few weeks before on Twitter – http://twitter.com/cargowire/status/3283930389). Its omission was purely accidental, mainly down to the fact that none of the speakers on the podcast were/are currently using it.

  • http://thefreerpgblog.blogspot.com Rob Lang

    If you’re going to slam ‘some’ .NET developers who ‘don’t know how the internet works’ then I would argue that unless you’ve written a UDP socket exchange with your own browser on the front then all you’re doing is using a framework. .NET IS a framework. PHP is a framework. J2EE is framework. I know people who would argue that YOU don’t actually know how the net works unless you’ve written some socket facing packet transfer protocols in C, compiled for the server. What you mean you haven’t? What, are you not interested?

    Of course, that’s ridiculous. You know how the internet works through the level of abstraction that you need to do your job. Your job being to meet the requirements on time and to budget. The snobbery about people ‘drag and drop’ and ‘not interested’ is very dismissive and out of place. Include and educate those who might be dragging and dropping now, rather than dismiss and apologise for their shortcomings.

    In your defense, you do seem to mention that there is a time and place for abstraction but it is weighed under a recurring barrage of how much better things are if you come from a PHP or Classic ASP background. In the future, please don’t labour a point (which often happens when you have a load of people agreeing with each other). Make the point and move on.

    MVC is just another abstraction, like all the other abstractions. You go as deep as you need to and no further because there’s no point.

    • http://cargowire.net Craig Rowe

      I agree that of course we’re all working at different levels of abstraction. The discussion really was purposely aimed around the differences between the two .net approaches – with particular reference to how that effected the designer/developer workflows.

      I usually try to balance any discussion around these kind of things, as you say we also discussed the usefulness and benefit of using higher levels of abstraction. I’m also very keen on trying to ensure I don’t misrepresent .net mvc as a replacement for some kind of ‘poor’ webforms (which isn’t the case), so although we discussed the issues with webforms we were also saying that webforms is a very powerful framework – I hope that came through.

      Totally appreciate you taking the time to comment.

      Cheers

  • http://thefreerpgblog.blogspot.com Rob Lang

    That last comments reads much more snarky than it’s meant. Pretend it’s between tags.

    When will the web invent the tag?

  • http://thefreerpgblog.blogspot.com Rob Lang

    gah! Comment system stripped the tag …

    That last comment reads much more snarky than it’s meant. Pretend it’s between ‘jovial’ tags.

    When will the web invent the ‘jovial’ tag?

Headscape

Boagworld