harriyott.com

26 April 2006

Copying message box text to clipboard

Thanks to Leon (one of my favourite bloggers), a brilliant tip. If you want to copy the text from a Windows message box, press Ctrl-C when it's open, and the text is put into the clipboard for easy Googling.

[Tags: ]

26 April 2006

Moving from Visual Studio 2005 beta 2 to RTM

We've finally reached a convenient point in the project where we can upgrade to the final version of .NET 2005 Visual Studio Team System. The only snag so far (unless you count recompiling everything and fixing the changed namespaces etc.) is with the localtestrun.testrunconfig files.

When opening the file, a message box informed me that

The Test Run Configuration file "<path>\localtestrun.testrunconfig" does not have the expected format:

Failed to instantiate type 'Microsoft.VisualStudio.QualityTools.WebStress.WebTestRunConfig, Microsoft.VisualStudio.QualityTools.LoadTest, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a': Could not load file or assembly 'Microsoft.VisualStudio.QualityTools.LoadTest' or one of its dependencies. The system cannot find the file specified.

From here, I found out that the file needs to be opened as XML, any elements containing "WebTest", "WebStress" or "LoadTest" need to be deleted from the XML file (along with their children, grandchildren and pets).

[Tags: ]

25 April 2006

Does advertising work? Just didn't

I saw this on a cab recently: "Does advertising work? Just did!!!", and I was irritated by it.

Does advertising work

It is wrong on so many levels. Firstly, it clearly doesn't work, or they'd have a paid advert on the cab, instead of their touting message.

Secondly, their definition of "work" is seriously flawed. If "work" means getting someone to read the message and then think "What a loser", then I suppose it does. For this advert to work, I would presume that someone would have to phone the number and pay for an advert. I nearly phoned them and said "What a loser", but I wouldn't have paid them to advertise for me.

Thirdly, the three exclamation marks just adds to the irritating tone of smugness, which seems to say "Aha! Caught you out on this one! Therefore give me your money!"

Grrr.

[Tags: ]

24 April 2006

Web standards on genealogy site

Oh yeah, whilst doing the microformats thing, I also gave the genealogy site some validated HTML.

[Tags: ]

24 April 2006

OPML reading lists

I've read a lot of blog posts recently about OPML, and reading lists in particular. I'm not that impressed yet. I don't have enough time to read the things I want to read, let alone sift through a list of what someone else has read. I prefer being recommended links one at a time, then there's a chance that I might actually follow it. Maybe I'm just missing something.

24 April 2006

Microformats on my genealogy site

After some useful comments on my last post on the subject, and having emailed Jeremy Keith, who spoke about microformats at SxSW, I've thought about the ancestor microformat some more.

Jeremy suggested that amalgamating several microformats together should probably be called a macroformat, and although he didn't say as much, I think maybe my idea wasn't such a good one.

Until I decide how to proceed properly, I've added an hCalendar event to each grave where dates are visible; the event is basically the person's life, with birth being the "from" date, and death being the "to" date. Here's an example, which is picked up by the Tails Firefox extension.

It's not ideal, but it's a start.

[Tags: ]

24 April 2006

Marketing adjectives for food and software

Marketers for food manufacturers have a stock of adjectives that they commonly add to labels to make the product sound more appetising. These include:
  • Authentic
  • Traditional
  • Homemade
  • Country
  • Fresh
  • Large
  • Tasty
  • Gourmet
  • Farmhouse
  • Premium
  • Quality
  • Selected
  • Handmade
  • Finest
  • Best
  • Original
Most of these are subjective or vague, and under scrutiny become meaningless. A product may be "Selected" for many reasons, which may may include negative ones ("selected from the older chickens that weren't good enough for the ready-meals"). "Quality" on its own doesn't distinguish from good quality or poor quality. It is a unit of measure, just like "temperature" is. I could go on through all of these.

Software marketers do the same thing, including subjective and vague words into the product descriptions:
  • Secure
  • Best practice
  • Enterprise
  • Professional
  • Open
  • Standard
  • On-demand
  • Solution
  • Flexible
  • Innovative
  • Integrated
  • Robust
  • Comprehensive
  • Industry-standard
  • Scalable
  • Customer-proven
  • Standards-based
  • Next-generation
  • Modular
Again, under scrutiny, many of these are meaningless. "Professional" is a word almost completely without meaning, other than contrasting with "Amateur". "Next-generation" without reference to the previous generation is useless. Solution without reference to the problem it solves is too vague. "Robust", "Secure", "Scalable" and "Comprehensive" need qualification with facts and numbers. Does "Robust" mean it never crashes? Ever? Can this be proved? If it does crash, how many crashes are allowed before it can't be called robust any more?

[Tags: ]

24 April 2006

Mercedes data now included in Glassmatix

The May 2006 update CD of Glassmatix will include Mercedes data for the first time. Initially this will be for the C-Class models, and the rest will follow later. I don't know the full details of why it has taken around 12 years to get the data, but I do know that every time I meet with customers, somebody asks when we'll have it.

There was a press release earlier this year announcing that the data would become available "by the summer", so hopefully we'll have some happy customers!

[Tags: ]

21 April 2006

Learning Greasemonkey

Since my post a couple of days ago about learning stuff, I decided to look at Greasemonkey. I've been meaning to do this for a long time. I kind of knew roughly what it did, but I found out properly, and wrote my own script.

Basically, Greasemonkey is a firefox extension that runs scripts on web pages shown in the browser. It allows access to the DOM, so you can modify a web page that you want to improve, but the owner won't touch it, because they're too lazy, too stupid, too busy or Google.

My biggest issue is with using Blogger as my blogging tool. I write out the post, and press the big orange button when I'm done, and Google then faxes my post onto my site and sticks them on my homepage. About two days later, if I get a comment, I might look at the post again, and realise that I've forgotten to put the technorati tags at the bottom of the post. Again. I've also forgotten why it's important to do this, but that's another story.

So, I tied these two things together in a pleasing way. You've already guessed what I did, haven't you? OK, so there's no need to tell you.

What I do need to tell you was that I did it hurriedly in a lunch break, and it is the nastiest bit of JavaScript you ever did see, so I'm not going to make it public. Other people have already done so, and this was a learning exercise for me. A little bit of MeWare.

21 April 2006

Making my sites web standards compliant

Having read Andy Budd's excellent CSS Mastery book, and heard loads about web standards at SxSW, I'm all motivated to make all my sites compliant. I had a first effort with a fixed layout on my (recently disbanded) band's site, which worked well.

My next challenge is this site, harriyott.com. The first step, I decided, was to get the homepage to validate, which I've just done. There were 47 warnings beforehand, and now there are none. A couple of the warnings were from the Flickr-created posts, so I'll have to watch those in future. I guess I'll need to go through my 237 blog posts to make sure they all validate. I've got a handy firefox extension that puts a green tick on the toolbar for valid pages, so I just have to visit each one once to know.

Ultimately, I'll change the template to be either an elastic or liquid layout, as described in the book. Once I've got some really good, stable, compliant HTML, then I'll start on making it look prettier. My previous design looked OK, but I kept adding sidebar junk, which made the whole thing look cluttered, so I cleared it all out, and went for a minimal look. Now I think it looks too stark, so I want to do a friendly, warm sort of design next.

When I've done that, I'll update my client's sites (for free of course), and then I can relax.

[Tags: ]

19 April 2006

Business ideas for resourceful teenagers

When I was a teenager, I used to do the occasional job after school for my neighbours for a small amount of cash. Typically this would be odd-job man stuff: washing their car, mowing their lawn or weeding their flowerbeds. All mundane, physical stuff that grown-ups don't have time for. If I were a teenager today, I would do mundane, digital stuff that grown-ups don't have time for:

  • Photographing and selling stuff on eBay
  • Scanning photographs from family albums and posting them on Flickr
  • Sorting out an easy-to-use backup plan
  • Putting camcorder footage onto DVD
  • Securing their wireless LAN

And so on.

18 April 2006

Whose responsibility is your career development?

A couple of years ago, I was chatting with some colleagues about training courses. Tim, my then boss, asked whether the company was responsible for training us, or whether it was up to us (n.b. it wasn't the company). Around the same time, I read Eric Sink's career calculus article, which was quite inspirational for me. The gist of the article was that improving one's career is best done by continually learning.

I've been mulling this over recently, and coming up with ideas for improving myself as a developer, and as an employee.

Getting Better


The first step in getting better at something is to want to get better at something. For argument's sake, let's assume that you want to get better at being a developer.

In general, learning can be passive or active. Passive learning includes reading, listening and watching, and active includes imitating, experimenting and practising. Both are important. Spend time reading articles on developer websites, developer blogs, listening to podcasts, and watching channel 9 videos are all ways of passive learning.

There are two kinds of books for developers; one kind is for specific languages or topics, such as an ASP.NET guide or Perl reference; the other kind is books about good programming practice, such as Code Complete, or Coder to Developer. Most book-reading developers I've come across favour the first kind, but the second kind are arguably more use in the long-term.

Obviously it's important to know about the subjects you work with often. It's also important to read about subjects that aren't directly related to what you're doing at work at present. Everyone reads about what they're doing at present (unless they're an expert at it already), so although you're getting better by simply doing your job, so is everyone else. If, for example, you've heard of regular expressions, but don't know what they are, then when you come across a problem easily solved with regular expressions, you won't think to use them. If, however, when you heard about them, you thought "Ooh, I wonder what they are", and spent 15 minutes reading up on them, then you may consider using them to solve a problem quickly. Hoorah.

It's true that many of the unrelated things you read about may never be useful. That isn't a valid argument to avoid it; you'll never really know which things will be useful or not.

Keeping a list of things to research is a good idea. Phil Winstanley has one here, for example.

As for active learning, writing experimental applications can be really useful for understanding something more fully. You don't have to finish them. The application is just for learning. It might be slightly useful to you in something else, for example, using regular expressions for URL rewriting on your website. Of course, your tinkerings might end up being really useful as a proper application, in which case you can sell it as shareware, or put it online with gradients and rounded corners and wait for Yahoo to buy you out.

Community


Hanging out with clever people is rewarding. It's really hard not to learn something by going to conferences, user groups, training courses, unconferences and geek dinners. When you're there, speak to as many people as you can. If you're shy, here's what to do.

  1. Introduce yourself
  2. Say "What do you do?"
  3. Listen to the answer
  4. Ask a question based on the previous answer
  5. Repeat the previous two steps


Try and stay in touch with people that you meet, if at all possible. Not only do you get to learn stuff, you get to build up a set of contacts that might be useful next time you need a job, a place to stay, help with a hard subject, or goodness knows what else.

Products


If you have half an idea for a great new website, then try it. Have a go, and see what happens. If it's useful for you, then it might be useful to someone else. Keep trying things out, and add little things often.

If there's something that might not be possible, tackle that first. If it is possible, you know you've cracked the hard thing first. If it's impossible, it's best to know early on, before you've wasted time on the registration screens.

Sharing


Explaining something to someone else makes one think about things more, and you get feedback which you can learn from. Start blogging about the things you're learning. Release your successful experimental projects as open source. Look for opportunities to speak at user groups or events.

Personality


Be helpful. If the guy in marketing is having problems with his spreadsheet, have a look at it for him. Write quick and dirty applications to help people save time or administration effort. If you work in a big company, introduce yourself to people (ask questions, listen to answers etc.)

Admit when you're wrong, and fix the problems you cause. It's fine to make a mistake, as long as you make it only once, and respond responsibly.

Be inquisitive. Find out why something works the way it does, why a procedure was introduced, or why the bizarre spreadsheet has to be used. You may become more tolerant of a bad situation if you know the reasons, or you may be able to offer a better solution.

You can't change your personality, but you can change your character. Find people with characteristics that you admire, and copy them.

Time


To do all (or some of) this needs time. You'll probably have to stop doing something else less important. One example of something less important is watching television. Have a think about every TV program you've watched over the last week, and decide on one or two that you can live without, and don't watch them again. Do you really need to watch Eastenders? What's so important about the sad little lives of fictional characters, compared with the excitement of your life?

You might decide that getting drunk three times a week, although fun, isn't totally necessary, and you could skip one night in favour of getting better.

If you're young, single and childless, you'll probably have more time than me, and you might even have time to get bored. If you're bored, read up on something interesting.

Use some of your lunch break. Read or listen to stuff on your commute.

Conclusion


Some of these I've been doing for a while; some I've got to work on. This is as much a prod to myself as it is advice to you, but I hope I've got you thinking a little.

[Tags: ]

18 April 2006

Recruiter using blogs to find candidates

I had an email early this morning, followed by a phone call later on, from a recruiter looking to fill a position in London.

He got my phone number from the contact page on my blog. He got to my blog by doing a Google search for Jonathan Hodgson, who I've met at a couple of DeveloperDay events. He did this search because he knew that Jonathan works for the company he's recruiting for, and decided to use Jonathan's network of contacts as a source of potential candidates. I haven't decided whether I like this approach or not yet, but either way, I'm impressed with his resourcefulness.

7 April 2006

My name is in a book

I bought Robert Scoble and Shel Israel's Naked Conversations book, partly because I read the blog about it in the early days, partly because I'm a blogger myself, and partly because I think EurotaxGlass's should have a blogger or two talking about what we do, what we should be doing, and the industry in general, and the book could be useful in motivating someone to start blogging. I'm not really supposed to write about my employer on this blog, but more about that on a future post.

Anyway, I'd read a couple of chapters, and remembered that I'd posted a comment on the book's blog that pointed out a grammatical error in one of the early draft chapters. There was an acknowledgement blog post later on thanking everyone who'd contributed, and my name was listed. Having remembered this, I turned to the back of the book, to see if there was an acknowledgements section, and there was. It had my name in it! I had no idea that my name would be in it when I bought it (if I did, I would have bought it ages ago!).

This is a big deal for me, as my name hasn't been published in printed material since I won the Fletching junior pancake race when I was a child, and I was mentioned in the Sussex Express. I haven't written a book, or done or said anything that anyone else would want to put in their book since. And it's a really good book. And I'm childishly excited about my name being in it. Anyway, enough of my foolish ego; normal programming will resume shortly.

[tags: ]

6 April 2006

Learn software craftmanship in 24 seconds

Jeff Atwood is having a bit of a rant about Teach yourself x in 24 hours books. I started leaving a comment, but it got rather long, so I'm posting it here instead.

It's horses for courses. The fantastic thing about ASP.NET is that just about anyone can knock up a quick, database-driven website with minimal time spent learning. So my fictional mate Jerry, who I imagine might collect stamps, can knock up a quick Access database with a single table containing details of his collection, drop a datasource onto a new ASP.NET form, and get a grid view of his stamps before bedtime. Sure, we would cringe looking at the code, but his philatelic mates in Japan would be delighted with it. Who's Jerry most bothered about? The stamp geeks. If I wrote the site, I'd be more concerned with the programmer geeks not catching me out (What, you've been a developer for 10 years, and you come up with this?)

I certainly wouldn't trust Jerry to help me out writing my top-secret telepathic interface, because he doesn't care about coding (and therefore sucks at it), he cares about stamps, and sharing his collection with the world, and this is who Scott's book is aimed at. I wouldn't expect Jerry to read "Code Complete" before he was "allowed" to do his website.

In the same way, I'm not interested in becoming a master carpenter, I just want to assemble my Ikea ceiling cupboard as quickly as possible, and put my teapot collection in it. I don't want to learn about veneers and dovetail joints first.

However, I do kind of agree with Jeff's point about "cheapening our craft", although anyone looking to employ a developer would hopefully spot that I'm better than Jerry, and give me the job if we both applied.

6 April 2006

Job opening

As I mentioned in my last post, Walid has a job opening. He's emailed me full details, so I'll paste them here:

I am building a Web2.0 type company around location and events management (eg. Restaurants, clubs, bars...etc) It will have a lot of the spirit that is displayed in Web2.0 companies, web mashups, and make extensive usage of tags. The ideal person we are looking for would be a full time employee and equity partner within the company.

That individual would need to know how to use Ajax, XML, XSL, good GUI design skills and Tag interpretation. We have secured funding and just need to find the right person. If you are interested or if you could recommend me someone it would be much appreciated. Please feel free to contact Walid by email on walid@citytonic.com.

6 April 2006

Microformats - ancestors

I've recently been getting into the technical side of genealogy. My mother and her friend have catalogued most of the grave inscriptions in the local churchyard, and I've put them online.

I've had a quick look around some of the other genealogy sites, and it seems that there are a few proprietary databases and file formats involved; I haven't found a clear standard yet. I've noticed that there are a couple of people in our database that are on other genealogy sites, but each of us have different details, so I would like to link to the other in such a way as to show that they are the same person.

I thought that a new microformat would be in order for ancestor records. It's just an idea at this stage (i.e. I haven't thought it through yet), but an ancestor seems to be a combination of a person and three events (birth, marriage and death). Using a combination of the existing hCard and hCalendar microformats, I think it could be done. The interesting problem would be the relationship between two people. As I said, it's just an idea at the moment, and needs thinking about properly. Any ideas Nick?

6 April 2006

London Geek Dinner

I'm just back from another geek dinner, which was great. Having won a trip to South by South West at the last one, I felt it was only fair not to enter the competition tonight.

I met some new and interesting people: Walid Al Saqqaf and his associate Socrates were good fun and really easy to talk too. Walid coyly admitted that his main motivation for coming was to try to recruit an AJAX / mashup developer for their startup, which I actually think is an excellent reason for coming. I said that I'd mention the job on my blog, so I have. I assume the job is in London, although I didn't catch where. I think he said that the developer would also be a partner of the company too. If you're interested in getting in early, or know someone else that might, get in touch with him - walid [at] citytonic [dot] com.

I had a really interesting chat with Diana from Blue Cycle. She's a developer working on an auction site that sells written off cars from insurance companies (Norwich Union in particular), which sounds like a competitor to our eSalvage product. I don't work on eSalvage, so I don't know if they do the same job or not. I was very surprised to meet someone working in the same industry as me though.

I was hoping Nick Swan would be there, as he (like me) has been getting into microformats. There aren't that many microformats about yet, and I had an idea for a new one that I would have liked to discuss with him - ancestor records. I guess we'll have to have the discussion on email or our respective blogs.

I was pleasantly surprised that Barry Dorrans was there, although he's not himself at the moment, and left early. Anyway, another really good evening - thanks to Ian Forrester and the ever-absent Lee Wilkins for arranging it, and Ben Metcalfe for stepping in to manage things.

[tags: ]

4 April 2006

Learning WIMP

I'm taking over a website for a new client, who happens to be a friend of mine. The remit was to tidy it up, and give it a modern look, whilst retaining the existing functionality and 300+ articles posted in the CMS.

The existing site is hosted on the other side of the world, as a LAMP (Linux, Apache, MySQL and PHP) application, using the phpnuke framework.

Being a Microsoft fanboy, I've used neither L, A, M or P before. I have no intention of buying and setting up a new machine with L and A, so I'm going to settle with Windows and IIS, and install M and P on that, which appears to be called WIMP.

Not knowing anything much about M and P, the first job was to find out which versions are installed on the host. Fortunately this turned out to be easy - I just uploaded a couple of text files with a bit of PHP code asking for the versions. The versions seem to be about a year old, and were still available for download on the MySQL and PHP sites.

Having done a "view source" of the homepage of site, it turns out to be a really nasty table layout, which I want to change for web-standards compliant CSS. Having had a really quick look at the phpnuke framework, it seems to have a themes module. I'm not yet sure whether the themes are generating the table layout, or phpnuke itself.

I'm trying to replicate the site on my PC, so I can tinker with it without breaking anything important. Having installed everything, I've got three errors, and it won't connect to the database. That doesn't seem too bad for a first attempt.

Anyway, I'm really excited to be learning some new stuff, and prettying up a dry looking website.

3 April 2006

Data pronunciation

Having been amused a while ago about someone saying "data" differently to me, I've recently come across two more different pronunciations. So, in total:


Any others I should know about?

1 April 2006

Virol marketing has improved over time