I’m feeling particularly abused today after playing squash with Jimmy. If you follow that link, he’s the one with the big cheesy smile. I’m now sitting feeling like an old man, and thinking that maybe I should get in shape if I’m going to play squash. That way I might survive without bleeding from the ears. Fun though.
-
Whipped into submission
-
vjslib missing in Visual Studio 2008
There is some code in our solution using some of the zip classes from J#. Caught me out in setting up a clean machine that J# is not available in the 2008 install, and must be downloaded seperately. Forum quote…
The reason for the same is the Visual J# Redistributable is not a part of Visual Studio 2008, unlike earlier versions of Visual Studio. You can go ahead and install Visual J# Redist (v2.0/or 2.0 Second Edition) on your machine.
You can download the redist from here - http://msdn2.microsoft.com/en-us/vjsharp/bb188598.aspx
-
Dust, guts and a new CPU
Well, I’m sat drinking tea and killing time while I set up the shiny new patient fresh from post-op. Think I just need Team Explorer then I’ll be ready to go.
What started out as an overheating CPU turned into an addictive major hardware overhaul and fresh install of Vista. However, I now have lovely fans. And a pretty glowing fan controller on the front.
So for the past week I’ve been coming home from long stressful days and getting fist-deep into my case. The idea is to come out with a stable, work-worthy machine so that I can fit in the impossible by spending evenings and weekends coding.
Pretty damn useful that I like what I do.
-
Stylecop now available
Stylecop is now available as a free download…
-
Personal RSS Feeds
As far as I can see, the majority of RSS feeds exposed on most sites provide access to very generic, summary information. I’m quite surprised that RSS hasn’t really been embraced for the kinds of thing for which it would be most suited - i.e. bringing you highly targeted, highly relevant information based on some prior knowledge of who you are.
I would love to be able to give a list of my favourite bands, and subscribe to a feed of gigs they are planning in my area; or give a list of my preferred cinemas, and find out whenever a new film is showing at any of them.
Once you are providing more personal feeds, then authentication becomes an issue. There is fairly widespread support in aggregators for both SSL and Basic Authentication, but this can be overkill for certain situations.
The data we are exposing is not particularly sensitive, and it would be a real pain for a user who has authenticated with the main site to be challenged when they subscribe to a feed. Instead, the approach we’ve taken in…
- When a private feed is available on a page, the meta tag in the head includes a token on the querystring for the feed URL that is generated based on the currently authenticated user
- When serving up a private feed for a particular user, we expect the token on the querystring, and bounce the request if either the token is missing, or is incorrect
This means…
- An authenticated user can subscribe directly to a feed without an additional challenge
- If you know the URL to your own feed, you can’t get access to others simply by changing the feed URL
- The mechanism used for feed authentication doesn’t expose anything related to authentication on the main site
We’re exposed to the feed URL and token being sniffed on the wire, but unless the content is particularly sensitive this seems like a suitable, practical approach to ensuring some degree of privacy without introducing complexity and barriers to subscription.
-
Aural Media Type
Having added a handheld, and print stylesheet to this site recently, I was thinking a little about the Aural media type. So CSS is all about presentation of content. The idea here was to be able to control how content is presented when read - so being able to specify that H1 elements are read in a booming, male, American voice etc.
Although this is very appealing and a very cool idea, I just don’t think it makes sense. When looking at a page on screen, there are lots of visual cues that help you make sense of the content. This means that we can apply different presentation and design without leaving you confused about what you’re looking at.
When content is read, one of the main clues you have to differentiate and make sense of content is how the content is read. This means it makes sense for different content to stick to the same presentation, or conventions, so that you can learn what those conventions are, and what they mean. If everyone has control over audio presentation of their content, there is no pattern to learn, and it must be much harder to switch from document to document while listening.
Not that this really matters yet, but it may have more impact as there are more embedded devices with connectivity - so being able to listen to blog posts in your car etc.
-
Buy a Man a Fish
I had a busy day today, so I bought a man a fish. Just kidding. I had one of those days where lots of people need lots of things and suddenly the day is over.
The lesson for today:
Whenever I need to provide data to someone, I should pause, breathe, consider, then build a report rather than running an ad-hoc query. The next time they need it, I’ll be laughing. Really. And looking smug.
-
The Dark Side of Agile Planning
I spoke a little about all of the good things you get from adopting an agile approach to planning development of a product, so to keep the universe in balance I should point out some of the evil lurking around the corner.
I think the success of this approach ultimately is totally dependent on having the right people involved. Try this with the wrong team, and there would be a big mess on your hands. The headline is that agile planning requires a mature body of thought behind the design, and proper consideration of each change that is proposed. You should be refining and enhancing the design, with clear purpose and structured thinking behind each decision. If you’re in a situation where you’re just chucking new features at a product that would be cool then it’s all gone bad.
The very few times that we’ve rushed to work on a change without this process, it’s gone wrong.
I think it’s a very healthy thing to have someone on the team who is very creative, and always coming up with new ideas and suggestions. However that needs to be balanced by someone who is very focused on the interaction design of the product as a whole, and is able to push back and say no if necessary.
The benefits are really significant. I continue to be surprised by how much you learn as you go during development, and it would be criminal to waste all of the new information and thinking.
An agile approach should mean a continuous, rigorous design process, rather than design upfront, then implementation. If it means that you bypass the design process and are using it as an excuse to jump straight to code, then you’re an evil monkey. Evil, evil monkey.
-
Windows Live Writer and Tagging Support for Wordpress
I’ve recently upgraded to the latest version of Wordpress which now includes support for tagging posts as part of the core product. It was a little painful to go and tag up the entire backlog of previous posts, but it’s all done now, and it’s very cool to be able to get a feel for what I generally write about via the cloud.
I’ve become accustomed to publishing content using Windows Live Writer and had totally missed how to tag posts, so that the tagging info comes through to Wordpress. In Live Writer there is an advanced properties bar that can be expanded at the bottom of the content area, and this includes a section for keywords. Anything entered here (comma-seperated) will come through to Wordpress as tags against the post.
I’m happy again.
-
EmbeddedStream Mobile Version

After learning that I have at least one occasional mobile using accessing the site (yes Jimmy, that’s you!) I’ve put in place a much more appropriate stylesheet, linked in with the handheld media type. I’ve been testing this against Opera - pressing Shift-F11 will switch Opera to handheld mode and will emulate it’s rendering behaviour when running on a mobile device. I think overall it works pretty well. Some of the features include…
- Only 2 images in the design, and these are mini, mini images (3K each)
- Single column fluid layout
- More appropriate text sizing and margins
- Better sizing of form controls
I don’t really know enough about how widely the handheld media type has been adopted by mobile browsers, but I guess at least Opera crops up all over the place and it will render really nicely. Any feedback from my one mobile user would be appreciated
While I was in the mood I’ve also added a print stylesheet, so think I should now be covered all round. I might have a little rant about Aural media type shortly, but will save that treat for another day.