Blogs I’ve read – Gibbage

I very recently discovered a reference to the Gibbage site from a post on nullpointer.co.uk. The promised set of How to Make a Game articles from PC Zone sounded too good to be true, and actually were when I found that the original link from the post to gibbage.co.uk now leads to a waste disposal company (which is why I’ve not hyper-linked that bit). This lead to some serious internet hunting and eventually I found the WordPress copy of the original site – copy unfortunately meaning cut short at about 12 months of posts with broken links and missing images due to the loss of the gibbage.co.uk domain.

What’s so special?

It didn’t take long before I really started to enjoy reading the articles. Dan Marshall is self taught bedroom coder that focused on writing a game and shared the game and the story of its making with the world -that game being Gibbage. I think his writing style reflects his Britishness (or rather Scottishness) with lots of references to things that are part of my generation with his writing – he reminds me a lot of those I’ve worked with who developed games in the 80s. There’s also times when he reminds me of Zero Punctuation. I like to think that my writing would be similar if I let myself swear more often.

It’s not only the making of the game that he blogs about, but there’s a lot about the reviewing too – to summarize, good review = genius reviewer, bad review= rant! The other thing you experience on the site is the marketing which is pretty relentless with each post having a link off to Gibbage with a suggestion that you buy it, well until the forums are introduced, then he typically links to there instead.

Some of my favourite posts

The actual How to Make a Game articles from PC Zone are posted on the site (1, 2, 3, 4, 5, 6) and then are extended in several more posts later (starting here). Those posts are worth reading even if you don’t think you’d be interested in the rest of the site.

As an independent developer who has put so much into writing his own title, Dan Marshall has strong feelings about indie development and the quality of indie titles. His first cross over review of another indie developer’s title isn’t the lovefest that you’d expect from developers that are solely interested in mutual marketing of their own title. Later, in his Indie Game “Not Shit” Shocker post, he expresses the joy in finding an enjoyable game in Professor Fizzwizzle (now hosted on shockwave.com).

There’s quite a bit about the development of the game design of Gibbage in a few posts: initially in Writing your own Game… Phase Three and then later in Scenes from the Cutting Room Floor. He also requests feedback of a work in progress demo which seems like an easy question to ask, but his Feedback Feedback followup post where he berates those unable to follow simple instructions with his tongue firmly in his cheek later gets an aggravated response from another site leading to his classic Feedback Feedback Feedback Feedback post.

The posts where he explains some of the inside jokes in the levels (Gibbage Fanboy Humour #1#2 and #3) highlight a sense of humour common to many a geek – you’ll probably end up nodding along like me.

Where to next?

If you want to keep reading Dan Marshall, he now appears to be at Size Five Games  – that’s where I’m off to next.

Blogs I’ve Read – The Old New Thing

I’ve been working my way through the Old New Thing blog by Raymond Chen for the last few months. The blog has been around for 9 years with a mechanism that posts once per day automatically*, increasing to twice some days more recently! At one point he works out how far ahead he is with his writing and it turned out to be almost a year! I’ve tried reading several MSDN blogs before, but Raymond Chen’s blog is the most readable and entertaining. (Well, Mark Russinovich is a close second place, but he used to be sysinternals which was acquired by Microsoft).

About the Author

Raymond Chen comes across as a very friendly and helpful individual. He’s very knowledgeable of Windows, appearing to have touched a lot of the code or knowing the person who wrote the original – it appears he has access to the source control logs to help track back those who have implemented some of the features he posts about. He’s a natural problem solver, applying common sense and his depth of knowledge while trying minimize the use of any psychic powers. It’s very common that he wants to know the ‘why’ of your question and make sure that you know it too, since a lot of the questions he gets are either misunderstanding the problem or trying to use the wrong solution. From time to time you also get an insight into other things he enjoys or knows deeply about such as knitting, germanic languages (Swedish, Danish, German), cycling, going to watch symphonies and eating pudding after.

Typical Content

  • The most time intensive posts are the link-dense clearance posts which can take a while to read through.
  • Raymond Chen often helpfully solves problems by highlighting the error message the programmer didn’t read, the piece of information that was missing the support request, or just psychically predicting the solution to the problem at the root of the original question.
  • Other times he seems to pull magical insights out of his hat when inspecting crash reports gathered from Windows Error Reporting. In general the error reports and the philosophy about fixing those errors make for a very interesting read.
  • Many of the posts referring to API usage use the source code to an example application which is reused between posts to provide a common basis. In most cases the code is extended to demonstrate the implementation of different features, showing the wrong and right way of doing things and sometimes even leaving additional questions as puzzles.
  • A lot of the posts review existing documentation or APIs and adding further detail and clarifying some common misunderstandings.
  • Although I don’t think he’d call himself a Common Language Runtime (CLR) expert, once a year he does a CLR week of posts that cover several CLR topics using common sense to dig deeper into each topic and referring to posts by the actual experts.
  • Some of the posts are sourced from a suggestion box that appears twice a year.
  • The less technical posts typically delve into Raymond’s pastimes. There’s quite a few on languages, some entertaining posts about reviewing reports from seventh grade students (12 to 13), some posts on cycling adventures and each year there’s a write-up of the upcoming symphony subscription season.

Some of my favourite posts

  • A useful suggestion: To test the quality of a backup system, try extracting a  file from the backup each week – amongst this list of links.
  • There’s several good posts about the use of batch files (such as this one). In each one he pre-empts the general dislike of the batch file syntax with his agreement that it’s not great but it’s in very common use. Every time I think I need a batch file, I do wonder if I should look at something like Windows Script Host.
  • A good description of how to investigate power down issues describing the powercfg tool that has been released and how to use it.
  • One of many posts about Microspeak – the [mis-]use of words to create terms used by management and frequently misunderstood (or not understood at all) by the rest of the world.
  • A worthwhile example of a CLR week post, How do I get the reference count of a CLR object? talks about how the CLR GC works, how reference counting isn’t a feature of it and discusses the balance between frequent smaller pieces of work and infrequent larger pieces of work – pennies vs dollars.
  • The Seattle to Portland bike ride series was a really interesting set of posts. Even though they were non-technical, they definitely make a large part of my favourites list.
  • Why are there two values for NoDriveTypeAutoRun which disable Autoplay on drives of unknown type? A great example of Raymond trying to be helpful and providing additional information based on his intuition, with bonus points for attempting to preempt the derailment of the comments followed by the subsequent closing of the comments.
  • How do I create a topmost window that is never covered by other topmost windows? is my favourite post of the entire blog. A recurring theme that I didn’t mention earlier is the ongoing quest by application developers to be the biggest and best on top of everything else. The repeated appearance of questions about how to permanently keep their application to the front grows until this post where Raymond really shows off his skills by describing the actual options available to force your window to the front. This then continues in a game of one-upmanship with himself – more like an arms race or a game of walls and ladders. I agree with one of his colleagues, Raymond Chen is not a guy to have this kind of war with!

A word of warning

Having read the blog from start to finish, I can see an issue that I found referenced on other blogs. As a successful blogger working for a large company which polarizes the opinion of those who interact with it, Raymond Chen is made a victim of his own success:

  • Some of his posts are taken as gospel, used as citations for Wikipedia content and reposted and reposted until they get a high enough page rank to be found side-by-side with the real API documentation.
  • The comments following the posts split into several groups: the everyday respectful replies to the content of the post; the anti-Microsoft league vs. the pro-Microsoft league; the nitpickers who imply extra detail into every single sentence he writes.

This means that after a while, he picks up on this and new sections appear in each post, such as Nitpickers Corner and Pre-emptive Snarky Comment. Although this can detract from the message of each post, I’d still recommend you start reading the Old New Thing blog now.

* For reference, I found the best way to read the blog was to read an entire page and then refresh each afternoon (UK time) so that the new posts are added to the top of the read page.

Blogs I’ve read – VirtualDub

To start the “Blogs I’ve Read” category, I thought I’d begin with the blog for VirtualDub. This is at the forefront of my mind since I’ve just finished reading the last 7 years of archives with pretty much every post being really interesting.

Overview

Since VirtualDub is a video capture and processing tool, the blog itself covers a wide range of topics:

  • The optimization of assembly code targeting different chips and architecture features such as MMX, SSE and AVX. Since the video filters are low-level code working on pixel data, the code can be optimized to target the features available on each platform. His knowledge of instruction timing and ability to define the expected cycle count of his loops shows that he has a deep understanding of the hardware he’s coding for.
  • DirectShow. I now know too much low-level DirectShow information without having ever really looked at the high level, but if I ever had to look at writing something that uses it, at least I know to be afraid, be very afraid.
  • Trying new versions of Visual Studio. Having worked through so many different versions starting with Visual C++ 4.0, he has the same expectations and feedback as many other VS users.
  • Developing the VirtualDub user interface while maintaining compatibility across a wide range of Windows versions.
  • Handling dodgy plugins such as 3rd party video and audio filters which give me the fear as to the quality of random codecs.
  • Then, when you think you’ve read all you can about VirtualDub, he introduces Altirra (introduced here), his 8-bit Atari emulator. And it’s not like a hobby project that can emulate the basics and run simple tests, the work he’s done on this emulator has been heavily based on in-depth research about the hardware and the quality of the emulator shows through in the successful running of a range of titles.

Some of my favourite posts

As an overview of the blog, here’s some of the posts that I really liked:

Overall

The blog author writes very readable posts and with such a range of topics, each one is unique. As a developer, I agree with his stance on many of the issues that he raises, and I like the way he gets involved with the commenters on the blog.

Blogs I’ve read – Joel on Software

I’ve found Joel on Software a consistently well written and interesting blog that offers guidance in every post. The author, Joel Spolsky, has such an easily readable writing style, somewhere between technical and lightly comical. And he’s not just a blogger, he co-founded Fog Creek software and Stack Overflow, both focussing on improving the productivity of developers.

Overall, the range of topics is quite varied, with Joel being a developer himself and then becoming more of a company leader while also ramping up headcount and planning a new office over the period most of the content was written. Each of the posts typically tells a story with characters where UI or user requirements are involved or some other anecdote in the other cases. Although the posting rate isn’t as high as it used to be, I think all of the posts stand the test of time with each post representing sage advice. It’s only been a short time since I first read everything he’s written, but I think I could read it all again without skipping any of the posts. Even if you don’t have time to read the lot, the Top 10 on the front page covers a good range of topics and if you continue further down, you’ll see sets of posts grouped by other common topics.

One of his most quoted posts is The Joel Test: 12 Steps to Better Code which covers 12 things that you and your company should be doing, while also creating a benchmark by which you can compare different companies. As you read through, you nod along thinking that it’s a list of items to do that you really wish you could say you’re already doing. At the back of your mind however, you accept that although you only do a few, there must be companies that do less than you and you should feel happy that you don’t work in one of those places.

I also really liked The Command and Control Management Method (continuing on from Fire and Motion). I think I enjoyed this post mostly based on the comparison between a scarily authoritarian style of management and making soldiers run through minefields to highlight what’s wrong with that kind of management.

Another heavily referenced post is The Law of Leaky Abstractions. It’s so common to see the words “abstraction” and “leaky” whenever someone writes about programming abstract interfaces. It’s a very typical post in the Spolsky collection, covering one of those typical programming issues you’re already aware of, written in a style that makes you smile while you remember what you know of the topic.

One last thing; if you can find a video of him presenting live, I’d recommend that you take some time out to watch him – you could do worse than to watch the launch of his most recent product, Trello.