<$BlogRSDUrl$>

Wednesday, January 11, 2006

Book Review: Framework Design Guidelines 


Or to give it it's full title, Framework Design Guidelines : Conventions, Idioms, and Patterns for Reusable .NET Libraries. Yes, it's a mouthful, but it's also well worth a purchase. Although it's generally focused on helping you develop public APIs (i.e. those that are going to be exposed to customers or other teams), it's also a superb reference if you just want to know the correct methodology behind many aspects of .NET development, such as the best method to use when handling exceptions for example.

Common to this book and the Standard Library Annotated Reference titles (also published by Addison Wesley) are the comments from developers, experts and the original authors of the .NET framework themselves, interspersed throughout the main text. These little gems help split the text up, give background details on certain features and can even describe how what ended up shipping was actually dead wrong in retrospect. They're in a conversational style that's refreshing and really aid the understanding of some of the topics. There's even disagreement at times, with annotations appearing one after another, weighing the pros and cons of particular approaches. There's always the danger that a title like this could feel overly prescriptive, but that's definitely not the case.

The main text is well written and the coverage of topics is just right. It never feels like a boring tome; instead there's genuine insight on the majority of pages with no fluff to speak of. The guidelines themselves come split into Do, Do Not, Avoid and Consider forms, where the first two are strong recommendations, Avoid describes gotchas and the Consider is a guideline that applies the majority of the time, but is looser than the others. The guidelines always have supporting code examples and, although I thought I was a reasonable .NET programmer, I found myself learning a great deal about how to code correctly against the framework and how to better design my classes, both internal and those that will get used by others.

The book also includes suggested naming conventions (which is always a near religious thing in developer circles, and which I found myself disagreeing with at many points), a sample API design for the .NET 2.0 Stopwatch class (which is great, but all too brief) and a bit of a pointless guide to FxCop, which feels a little like filler material. At around 300 pages, the book is accessible (i.e. you're not going to break your back hefting it around the office), but you're better off picking up the title from Amazon.com where it's significantly cheaper than getting it from the UK site (at $24 instead of a rip-off £28.50).

Completing the package is a DVD with code samples, the exact same Stopwatch API review (why?), and quite a few lecture videos from the people who wrote the book and other .NET luminaries like performance whiz Rico Mariani (who talks very fast, like it's costing him valuable cycles to include any space between his words), FxCop dev Michael Murray and Steven Clarke.

This one's a keeper: 5/5

Permalink

0 comments

Tuesday, January 10, 2006

Absolutely del.icio.us 

Although I had a brief play with del.icio.us before, I didn't really get it. A recent recommendation from a friend has given me the opportunity to reassess it, and I think I'm in love.

Unless you've been living under the proverbial rock for the whole of 2005, the site is a place where you can manage your bookmarks/favourites. You can import your own bookmarks or post new sites, then tag them with keywords of your choosing (if appropriate the site will present suggestions based on what other people have tagged that page with before). Having a central place to store your bookmarks is inherently valuable, but it's the openness of the place that is key to its success, because by default all your postings are public.

Tagging wins over hierarchical folders in a number of ways. Firstly, you can tag your site with as many keywords as you like, meaning that Penny Arcade goes naturally into 'games' and 'webcomics'. Secondly, you can quickly see what sites you've got listed under each tag by either surfing to http://del.icio.us/username/tagname, or by typing a tagname into the black-bordered box at the top of your bookmarks page. Want to see what everyone else has listed under the same tag? Just surf to http://del.icio.us/tag/tagname (so 'tag' acts as a meta-user). Finally, it opens up the notion of the collaborative web, with the ability to search for what other people have already added; sites with, say, the keywords of 'photoshop' and 'tutorial', those with 'recipe' and 'chicken', or maybe, if you're on the lookout to speed your laundry tasks, 'ninja', 'shirt' and 'folding' (no, seriously).

The whole site is fluid, thanks to AJAX behind the scenes - you get auto-complete as you're typing tags, can view your tags and bookmarks in variety of representations (including the cool tag 'cloud view'), and the interface never gets in the way. If only the owners fixed the speling mistaks on the help pages it would be perfect.

Permalink

0 comments

Friday, November 11, 2005

Easier Firefox Quicksearch 

An even more convenient way to set up Quicksearches is to visit the site you want to search on, then right-click in the search field itself. From the menu, select the "Add a Keyword for this Search..." option. This saves figuring out the location string yourself.

I'd actually read about this out a while back, but it totally slipped my mind.

Permalink

0 comments

Firefox Quicksearch 

It's been an eternity since posting last, but I'm going to try to write more often. I just need to get in the habit.

OK, on with the post...

One of the great features of Firefox, the superb open source browser, is that it has a feature called 'Quicksearch'. This lets you type in something like:

g robotron

in the address bar and it expands automagically into a Google search for your query. This is pretty nifty, and Firefox comes with support for other sites, too, like Wikipedia and Dictionary.com.

On its own this would be useful, but the kind Firefox chaps have made it possible to add to the built-in selection of search sites. For example, my favourite search engine at the moment is the beta of Previewseek. To add this as a Quicksearch, I went to Bookmarks > Manage Bookmarks in Firefox, right-clicked on the Quick Searches folder and selected New Bookmark... Then it was just a case of adding the relevant details:

Name: Previewseek Quicksearch
Location: http://beta.previewseek.com/?query=%s
Keyword: ps
Description: Type "ps " in the address bar to search Previewseek beta.

Note that the "%s" indicates where your search term will be entered.

It's a shame that this feature isn't more 'discoverable' and easier to extend, but it's a great boon when you get used to the shortcuts.

One other thing, to speed things up further, use Ctrl+L to get to the address bar without taking your hands off the keyboard. Also, you can enter a search against your default search engine (Google, unless you've changed it) by using the Ctrl+K shortcut - this will either put your cursor in the search bar if you have it on your toolbar, or pop up a little search window for you.

Permalink

0 comments

Tuesday, July 26, 2005

Long Time No See 

Wow, it's been a long time since my last posting. I could regale you with tales of high adventure and bodice-ripping romance, but the fact is that it's been a bit of a slog these last few weeks and months.

Work is mostly to blame, but it's far too boring to go into. Let's just say that I'm hanging on until my share options mature in September, then I'll probably have a long, hard think about where I want to be in the future.

The big news since I last posted is that I've finally started coding up my Spectrum emulator. It's something that I've wanted to do for the longest time, and I finally got around to it. It's not finished yet, but the CPU, display and keyboard handling are in there. There are plenty of bugs to iron out, but it's been great to do some really low-level stuff and actually very rewarding to have my own project, where the subject matter is something I'm interested in. I'll probably end up making some posts about the progress I'm making and describe some of the tricky bits, but we'll see how it goes.

At the moment I'm also thoroughly enjoying Guild Wars, the subscription-free MMORPG. It's not a traditional online RPG in any sense of the word, but it's all the better for it, in my opinion. Where it scores highly is making you feel as if you're making a difference in the world. It's my first online RPG and I've enjoyed almost every minute of play. How they could have created such a polished, balanced and stable (not to mention damn gorgeous) game on release is startling.

I'll leave it there, but I hope to write again soon and make this a bit more of a regular occurrence.

Permalink

0 comments

This page is powered by Blogger. Isn't yours?