Archive for the ‘Programming’ Category

Dogfooding redux

Friday, April 9th, 2010

A while ago I wrote a bit about Microsoft’s prac­tice of “dog­food­ing” their soft­ware. That sparked a fair amount of dis­cus­sion on Reddit.

Of course, a few peo­ple assumed I was talk­ing in absolutes, that because the prac­tice of dog­food­ing is not per­fect, it must be evil. That’s a bit of an exag­ger­a­tion. (more…)

Thesis defense!

Wednesday, April 7th, 2010

The end is nigh.

On mon­day the 12th of April, I’m going to defend my master’s the­sis. If you’re in the area, and are geeky enough to find it inter­est­ing, feel free to drop by. (more…)

Post-thesis, post-aprils-fools update

Saturday, April 3rd, 2010

Just over a month ago, I handed in my Mas­ters The­sis. All that’s left now is an oral defense of it one of the next weeks. So what hap­pens then? I sup­pose I should find a job. A few peo­ple have asked if I am going to do a PhD, but I don’t think so. I think I’ve had enough of acad­e­mia for now. It was fun while it lasted, but I think it’s time to try some­thing dif­fer­ent. (more…)

Singletons: Solving problems you didn’t know you never had since 1995

Friday, March 12th, 2010

Funny how it goes. Some sub­jects are just flat out impos­si­ble to write catchy titles for. Oth­ers seem to attract them like flies. A lot of very clever peo­ple have writ­ten vol­umes about “The Sim­ple­ton Pat­tern”, and “Sin­gle­toni­tis”.

Many peo­ple are in love with the Sin­gle­ton pat­tern. Oth­ers — a small minor­ity, I sus­pect — con­sider it a mis­take, an anti-pattern, or some­thing that was only ever included in the Design Pat­terns book as a life­line to pro­ce­dural pro­gram­mers who couldn’t really fig­ure out this OOP thing. (more…)

The downside to “dogfooding”

Wednesday, January 13th, 2010

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. (more…)

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

Saturday, January 2nd, 2010

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. (more…)

Hopes for 2010: Microsoft Visual C++

Wednesday, December 30th, 2009

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. (more…)

Adventures in Microoptimizations

Sunday, December 20th, 2009

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. (more…)

Houston, we have a (performance) problem

Tuesday, December 15th, 2009

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. (more…)

Using My STM Library

Monday, November 30th, 2009

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” (more…)