The downside to “dogfooding”

A term that’s become very pop­u­lar, and which espe­cially Microsoft’s devel­op­ers seem to cham­pion, is “dog­food­ing”. The idea that as a devel­oper, you should use your own prod­ucts on a daily basis, even dur­ing devel­op­ment. This exposes you to all the weak­nesses and flaws of the prod­uct, and makes you much bet­ter equipped to deliver a prod­uct that’s actu­ally worth using. Con­tinue read­ing The down­side to “dogfooding”

The meaning of RAII — or why you never need to worry about resource management again

I tried really hard to come up with some witty title or pun to weave into the title of this post. I couldn’t. RAII is just a ter­ri­ble name, and it isn’t really clever or funny. Unfor­tu­nately, it is also the sin­gle most impor­tant key to C++. It is not just an idiom but a fun­da­men­tal phi­los­o­phy used to solve almost any prob­lem in the lan­guage. So we can’t really avoid it.

If I had to pin­point one thing that marked the dif­fer­ence between a skilled and an unskilled C++ pro­gram­mer, it would be “do they under­stand RAII”. Many peo­ple don’t, hence this post. Con­tinue read­ing The mean­ing of RAII  —  or why you never need to worry about resource man­age­ment again

Hopes for 2010: Games for Windows Live

I’m sorry. This isn’t going to be pretty. Con­tinue read­ing Hopes for 2010: Games for Win­dows Live

Hopes for 2010: Microsoft Visual C++

As I men­tioned ear­lier, I’d like to cel­e­brate the new year by call­ing out a few prod­ucts I’d like to see improved in the new year.

First in line is Microsoft’s C++ com­piler and IDE. Con­tinue read­ing Hopes for 2010: Microsoft Visual C++

Happy new year — Hopes for 2010

So it’s the new year. Yay! How time flies when you’re hav­ing fun.

I don’t know about you, but I had a blast this last year. New (awe­some) apart­ment, started on my the­sis, launched this blog, and just gen­er­ally had a good time.

So how to fol­low it up? What can 2010 do to beat this?

Rather than com­ing up with a whole bunch of new year’s res­o­lu­tions for myself, I thought it might be more inter­est­ing to reverse the process — and say what I’d like to see oth­ers do in the com­ing year.

Through­out the year, I’ve encoun­tered a lot of soft­ware prod­ucts that, for one rea­son or another, I’d like to see improve. Per­haps they sim­ply suck cur­rently, and des­per­ately need to be fixed — or per­haps they’re already so good that I’m happy to use them, but I can think of fur­ther improve­ments that’d really make the “best in class”.

So for the next cou­ple of days, I’ll post my thoughts on what I’d like to see from a few of these prod­ucts dur­ing the com­ing year.

Hope you have a great new year’s eve! See you next year.

Adventures in Microoptimizations

A friend recently asked me for “the sim­plest opti­miza­tion prob­lem I could think of”. This led to a fun dis­cus­sion of low-level opti­miza­tion and how the CPU exe­cutes your code. And so I decided to share it here. Con­tinue read­ing Adven­tures in Microoptimizations

OpenID 2.0 and HTTP redirects

Ever since I signed up on StackOverflow.com roughly a year ago, I’ve had an OpenID. On the whole, I think it’s a great con­cept, and I wish more sites would allow me to sign in with it.

How­ever, a few things have been both­er­ing me about it. Con­tinue read­ing OpenID 2.0 and HTTP redirects

Houston, we have a (performance) problem

Ouch. These last few days, I’ve been fix­ing a few lin­ger­ing bugs in my STM sys­tem, and last night, I finally nailed them. Specif­i­cally, it is now pos­si­ble to open vari­ables within a trans­ac­tion as read-only. An obvi­ous opti­miza­tion, right? At least that’s the idea. Less work is required by the STM sys­tem if we can trust that the vari­able isn’t mod­i­fied by this trans­ac­tion. Con­tinue read­ing Hous­ton, we have a (per­for­mance) problem

Using My STM Library

As promised yes­ter­day, I’d like to show off a few bits of my STM library. Of course it’s far from done, and is still miss­ing sev­eral key fea­tures, but the core library is in pretty good shape. So as they say on the inter­nets, “my STM library, let me show you it” Con­tinue read­ing Using My STM Library

Getting back on track

We’ve more or less set­tled in our new apart­ment, and we’ve got inter­net… sort of! Con­tinue read­ing Get­ting back on track