Teaching

Every now and again I go off on a tangent about the problems of learning, and teaching, web design. Recently I got an interesting email from a chap at Newcastle College and just a few weeks later I’ve now taken a couple of sessions with students studying web design.

I’m doing 4 hours a week, alongside the day job. 2 hours of theory and 2 hours of practice. Teaching everything from research techniques, wireframing and sitemaps to the first steps on the road to CSS and HTML mastery.

So far I’d like to think it’s going well (any students reading, please let me know if you think otherwise!) I thought a couple of observations would be handy at this stage, for those involved in doing the same, and for me looking back:

  • For someone not trained as a teacher, it’s too easy to take what you know for granted and go too quickly.
  • It’s often hard to get across to new professionals how important the groundwork and theory is. With students this is doubly so.
  • More structured techniques are a good idea for newcomers.
  • The new htmldog.com site is an excellent reference. Thanks Patrick.
  • Enthusiasm is priceless. Seeing enthusiasm I think “maybe I’ll end up working with them one day”, without it all the technical skills in the world wont get me excited.

Anyone else with a decent amount of experience and a little free time I’d recommend trying to do something similar. Our industry experience is a massively important part of the next generations educational needs and these are the people you’ll end up working with or managing in the future.

JRuby Vs Python.NET

I got to thinking recently, after playing around with more IronPython and talking with a Ruby fan, about the future of computer languages. Is their a war brewing between Python and Ruby in unexpected quarters? That quarter being the .NET and Java croud.

Personally I’m too much of a fan of dynamic languages to be wholly impartial, but working in a mainly .NET shop I’m following IronPython when I get a chance, and a friendly Java officionando seemed pretty pleased with JRuby (although why not Jython I’m not sure?) when last I spoke with them.

Java and .NET are the prime candidates when it comes to big companies buying software, and all of that investment isn’t going to go to waste any time soon. But the potential speed benefits of Python or Ruby, and the work already going on with the likes of JRuby, Jython and IronPython, could make for a smooth transition.

I guess only time will tell, and I’m sure some people are still not convinced when it comes to dynamic languages (heathens). In the meantime I’ve ordered Beyond Java by Bruce Tate to do some swatting up.

Busy. But at least something to show for it.

In between personal projects, sleep and work I dont think time exists at the moment, but a few of those efforts are starting to bear fruit.

I’ve just had my first book review published over on Vitamin, a review of Brian Suda’s Using Microformats. Hopefully this will be the first of many.

Let me know what you think.

This will probably have some sort of effect on the hibernating webdesignbookshelf.com that I’ve simply not had time to maintain. This was I just get to concentrate on writing reviews, although I have a few ideas for the site which dont clash with that.

More personal web related news soon. If for no other reason than to prove I really am busy!

An apology to XSLT

I have to admit to thinking that XSL was something of a waste of time a while back. I’ve changed my mine and wanted to muse about why.

XML is simple enough to jump right in, and a few years back it had a big enough band wagon to mean jumping on was pretty much required. I think in hindsight, at least in my mind, alot of this was just a little gratuitous. XML abstraction layers, XML content management systems, SOAP, etc.

I’d often seen XSLT as the template layer in an XML based content management system and after several looks went back to using light weight systems that made sense. The idea of going from a database to XML then outputting HTML via XSLT just made me wonder why. The rationale that you could then output it as anything (WML, PDF, whatever) was very nice, but rarely actually realised from what I saw, and easy enough to do with any half decent templating system. You also always seemed to need more XSLT that it looked like you should.

Ruby on Rails even wore as a badge of honor that it didn’t need to do any XML pushups to deal with configuration. And even those with a penchant for Java seem to have problems with using XML as a programming language.

Of late though I’ve been back playing with APIs, many of which produce XML in one way or another (whether that’s RSS, Atom or some custom format), and XSL actually comes in pretty handy here for just thowing around content. I did some work with a Google Mini too using XSLT and their are some interesting tricks with Microformats to boot. I haven’t listened to the podcast yet so I’m just guessing at the moment but I could see Drew’s “Your website as your API” talk at the recent WSG meeting making use of XSLT?

So, I think I might have changed my mind a bit. XSL, I think, is going to be a useful skill to have in your toolkit in a world of microformats and APIs. The W3Schools XSL tutorial is a pretty good starting place if you’ve not used it previously at all. Thought I’d still rather use a decent templating engine for site rendering tasks.

Virtualhosts on Mac OS X

Matthew just posted a quick write up of setting up virtual hosts on windows and a little of the rationale behind why you would bother.

Being a Mac person when I’m not in the office I thought a quick follow up would be useful for those that way inclined.

On OS X their are a couple of things needed to setup a virtual host. As well as the apache virtualhost directives the host needs adding to NetInfoManager.

Although you can do all of this manually I’m more of a fan of a quick shell script and, as it happens, so are others. I’ve been using a modified version of Patrick Gibsons Virtualhost’s script for a while. Just drop it somewhere on your path (or run it from a specific folder) from Terminal like so:

sudo virtualhost.sh morethanseven.dev

Where morethanseven.dev is the local domain you want setting up. The default version of the script makes the assumption that you are using the default web server which comes with OS X. I’m not, but it’s easy enough to modifiy the configuration parameters at the top of the (well commented) script to point where you want. I have it working perfectly with a copy of the MAMP installation package for instance.

I’m something of a fan of utility scripts. Often repeated tasks can be bundled up into a shell script, python script or automator workflow. Automatic screen capture? Batch image processing? Backup? It can help keep everything tidy, as well as minimising repeated effort. Anyone else with any good examples of process automation with regards web design want to share?

The readability of our prose

I’ve been doing a little more light weight analytical research, this time on the readability of the content I read in my feed reader, which mainly consists of web design and development blogs and magazines.

A combination of things brough me to this point. An interest in accessibility and readability, being a maths and stats geek and my affair with Python. Yes, I know it’s just stats, and I did just parse the titles and descriptions from feeds once. I’m not claiming anything other than I though it interesting and worth sharing. If I get really carried away I’ll set up a league table.

Who knows; maybe it will encourage some to use less dense prose? As long as people dont start competing for the highest scores!

For more information on the background to some of these algorithms and what they mean have a read of Jez’s excellent write up

Site Flesch Kincaid Gunning Fog
Anne’s Weblog 4.54 2.58
Jesse James Garrett’s Hidden Agenda 5.38 2.8
Jeffrey Zeldman Presents The Daily Report 5.5 3.08
mezzoblue dailies 5.93 3.85
Subtraction 6.14 4.43
ZachInglis.com 5.33 5.5
HTML Dog Blog 7.46 4.65
Tom Hume 7.73 4.41
ShaunInman.com 7.61 4.91
molly.com 6.73 5.84
Test 8.24 4.66
Adactio 7.47 5.92
Authentic Boredom 8.26 5.54
xlab weblog 7.57 6.41
Jaredigital – article 7.86 6.29
The Intranet Blog 7.58 6.58
Loud Thinking 8.14 6.09
DOM Scripting Blog 8.12 6.18
Jeffrey Veen 8.42 6.07
@media 2006 9.17 5.35
katemonkey.co.uk 7.76 6.78
CollyLogic 8.17 6.42
Carson Systems News 8.59 6.07
Dave Shea’s mezzoblue 7.99 6.8
dotjay.co.uk – blog 8.23 6.64
UX Magazine 8.61 6.33
QuirksBlog 8 7.11
Joel on Software 8.24 7.07
Signal vs. Noise 8.61 6.75
24 ways 9.39 6.23
Clearleft Events 8.9 6.74
box of chocolates 8.69 7.05
Stopdesign 9.09 6.74
Steven Woods – Swoo.co.uk 8.99 7.16
/\\ndy’s Blog 9.19 6.96
Thoughts From Eric 9.32 6.91
Vitamin 9.26 6.99
Boxes and Arrows 10.0 6.50
BitWorking Joe Gregorio 9.78 6.76
Andy Budd::Blogography 9.27 7.32
Mike Davidson 9.21 7.51
cackhanded 9.32 7.4
Bruce Lawson’s personal site 9.90 7.22
Le «blog personnel» de Joe Clark 9.89 7.3
morethanseven.net 9.38 7.86
hicksdesign – journal 9.58 7.79
as days pass by 9.49 8.15
Logoblog: Web Standards, Accessibility & Usability 9.19 8.62
Simon Willison’s Weblog 10.6 7.66
John Battelle’s Searchblog 10.6 7.69
Veerle’s blog: full articles 9.78 8.68
Garrett Dimon 10.4 8.16
The Web Standards Project 10.9 7.77
plasticbag.org 10.7 8.04
:Ben Metcalfe Blog 10.3 8.47
456 Berea Street 11 8.30
Clagnut 10.8 8.6
KuraFire Network – Log 10.5 8.98
The Web’s Bollocks 11 8.56
developer.\* – The Independent Magazine for Software Professionals 11.8 8.03
Bare Naked App 10.8 9.38
danwebb.net – Home 11 9.23
Ben Ward 10.8 9.54
Content with Style – Articles 10.7 9.92
KuraFire Network – Articles 11.8 8.92
all in the head 11.4 9.45
Wait till I come! 13 7.93
And all that Malarkey 11.5 9.76
Digital Web: Latest Articles 12.7 8.59
bloggED 11.1 10.2
Web Standards with Imagination 11.4 10.2
Official Google Blog 11.8 10
Particletree 12.2 9.71
Niall Kennedy’s Weblog 12.8 9.29
Brothercake 13.9 9.7
Blog Standard Stuff 12.1 11.6
ThePickards 13.3 11.4
dean.edwards.name/weblog/ 15 10.7
SitePoint Blogs 14.9 11.5
Space & Beyond 14.2 12.9
The Watchmaker Project – journal 14.8 12.3
Muffin Research Labs 16.6 14.9
Point studios 20.5 19.2
Juicy Studio 28.3 18.8

A few interesting things to note. I’m sure some parsing error or such has Juicy Studio scoring so highly!

I’ll hopefully get round to releasing the scripts once I finish a couple of other things off.

Niche job boards and hot skills

The growth of niche job boards took another jump today with the launch of Authentic Jobs by Cameron Moll, following on from the job boards over on 37signals and Joel on Software.

I find all this pretty interesting, not because I’m looking for job (I’m not), but more from a social research point of view. It’s the whole long tail thing again, and it will be intersting to see if these things take off in other, shall we say, less geeky circumstances. Niche job boards for the building industry for instance? or insurance?

This source of focused data also gave me a chance to play with Python as a data mining tool, something I’m finding it amazingly well suited to. My background was in experimental design and analysis so I’m something of a number crunching fan deep down.

The scripts are simple and have no niceties like error handling or comments so I’m not going to post them unless someone really wants them or I get chance to clean them up. Safe to say I used the outstanding Universal Feedparser module from Mark for most of the heavy lifting.

Brief methodology was to grab the complete feeds from the three sites mentioned and dump all the contents to a file, sans markup and lowercased. I then parsed them for a short list of words – in this case programming languages and counted the results.

Well, here are a few of the tidbits of info I pulled out. This is only the start obviously, more time may mean more detailed (and accurate) research ideally with a time element thrown in.

  • C** – 137
  • Java – 128
  • PHP – 110
  • Javascript – 90
  • C\# – 74
  • Flash – 52
  • Ruby – 43
  • Python – 40
  • Rails – 32
  • Actionscript – 11

This I found interesting. The old school (C** and Java) might not be hot but their certainly seems to be a need for good programmers. Javascript being up their is probably to be expected but strange non the less, given where it would have been a year ago.

This obviously has myriad problems; your unlikely to use the word C\# in a description unless your talking about programming, but you might use the word flash) and was weighted towards the Joel on Software site as that both had much longer descriptions and lots more elements in the feed. Nothing about density either, so someone writing Java, Java, Java would skew the results. If I do some proper research and write it up you could get around most of these easily enough.

Anyone know of other niche job boards around so far? I’d be interested to have a look. I have a feeling recruitment is heading towards the same fate as advertising; where online advertising models are increasingly making the the old do work for free and charge a percentage on the backend ways nearly unworkable.

More devices with browsers

I’m something of a gadget fan when I think about it, and the growing ubiquity of the internet makes my life easier, as well as posing interesting questions when it comes to design. It would be a win win situation if it didn’t keep costing m money. Well I think I’m going to be spending again soon (unfortunately?)

I only heard about the Nintendo DS Lite getting a browser add on last week, but it peaked my interest. The spread of mass market devices with WiFi and a decent browser throw up interesting possibilities, so it was with a smile on my face that I discovered the browser was going to be Opera. Their is quite a bit of information over on their site on press releases and a special Nintendo section and all looks good.

I’d be interested to see how the two screens thing works for browsing, and how the device copes with the problems of content not being designed for the small screen very often, though Opera Mini did a ridiculously good job. Also of note is that the upcoming Wii is going to use an Opera browser as well. The move from the desktop to focus on devices looks like being a very clever move.

One minor let down is that the DS browser costs. This looks like it’s due to extra hardware being required but it’s still a shame after the PSP browser was added simply as a software upgrade. Hopefully that wont be a barrier to entry. If and when (ok, when) I get my hands on one (launch 6th of October) I might try and post some tests. The PSP browser does occasionally fall over on very large sites with a nasty memory error, and I’m interested in how complete the CSS and Javascript support are.

6 hours on a train with Code Igniter

I’ve mentioned Code Igniter before but only now have I got round to really putting it through it’s paces by building something proper. I got the opportunity (if you could call it that) thanks to a six hour train journey from Oxford.

I’ve been thinking about sprucing up this site for a while, and have a few other personal projects that I really should get round to sorting out. Something I’ve noted of late is a move, amongst some parties, back to bespoke personal content management systems. Jeremy has been speaking about some of the feaures he has been adding recently, Christian had a few comments too plus Jonathan has been posting about his recent move to CakePHP from Movable Type.

I find this kind of interesting. Everyone started off with hand rolled solutions, seemed to move to the comfort of Textpattern or Wordpress and the more geekely inclined are on the move again. With such large user bases the big blogging platforms are (rightly) spending more time on bug fixes and user experience, rather than kick ass features. And us geeks want more Microformats and mashups that we can shake a stick at. Only this time we get to stand on the shoulders of giants by using frameworks such as Rails, Django or Code Igniter which means less time doing the boring stuff.

Short sales pitch. Code Igniter is cool, and more. The documentation is first rate and comes along with the download rather than just being available online (useful when your on the train.) It all makes sense as well which is nice, especially if you have some familiarity with the MVC pattern. It covers the basics so you dont have to – validation, database abstraction, session hanling. It’s also easily extensible through a nice plugin architecture and makes no assumpions about what you intend to build. I have a quick and dirty Textile plugin that I need to package up and put out – some discussion of this over on the forums which I may peruse.

In short expect to see some minor additions and the like round these parts as I try to transition away from Textpattern and any problems caused are no doubt the fault of some poor coding somewhere.

And I wonder what the next step will be? We have been through hand rolled to stable applications to frameworks to hand rolled based on frameworks. Any takers?

dConstruct(or)

Well dConstruct has come and gone and people are probably just recovering in some parts. Travelling down wasn’t fun but that was quickly forgotten when we finally got to the pub. An evening of geekery ensued (usual fare, getting told to move inside before the police turn in, bit like @media 2005 really) and then onto the conference.

Thanks to the backnetwork its easy enough to catch up on all the goings on so I thought I’d mention only a couple of thinks that are still rattling around my head:

Simon and Paul talked about Hack Day. This is a really cool idea and once I want to get going at work. We shall see.

Derek was excellent again, talking about all sorts of ways Javascript could be used to improve user experience and accessibility. A interesting near aside about using sound as part of alerts to feedbacks got me thinking… We shall see about that too.

As usual the crowd was full of people both strage and familiar. The backnetwork is again more useful that I could be here. Ah, microformats, how we all want to play with thee. As it happens I’m playing with something similar for work albeit in a light weight sort of way. It’s really a good job I have some holiday coming up, I think I have so many things I want to see about I could be here for ages!