Archive for the ‘Programming’ Category
Wednesday, January 13th, 2010
A term that’s become very popular, and which especially Microsoft’s developers seem to champion, is “dogfooding”. The idea that as a developer, you should use your own products on a daily basis, even during development. This exposes you to all the weaknesses and flaws of the product, and makes you much better equipped to deliver a product that’s actually worth using.
(more…)
Tags: dogfooding, microsoft, visual-studio, Windows Mobile
Posted in Programming | 2 Comments »
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 terrible name, and it isn’t really clever or funny. Unfortunately, it is also the single most important key to C++. It is not just an idiom but a fundamental philosophy used to solve almost any problem in the language. So we can’t really avoid it.
If I had to pinpoint one thing that marked the difference between a skilled and an unskilled C++ programmer, it would be “do they understand RAII”. Many people don’t, hence this post. (more…)
Tags: .net, c++, java, raii
Posted in Programming | 3 Comments »
Wednesday, December 30th, 2009
As I mentioned earlier, I’d like to celebrate the new year by calling out a few products I’d like to see improved in the new year.
First in line is Microsoft’s C++ compiler and IDE. (more…)
Tags: c++, ide, intellisense, msvc, new-year, visual-studio
Posted in Programming | No Comments »
Sunday, December 20th, 2009
A friend recently asked me for “the simplest optimization problem I could think of”. This led to a fun discussion of low-level optimization and how the CPU executes your code. And so I decided to share it here. (more…)
Tags: assembly, cpu, low-level, optimization, performance
Posted in Programming | 4 Comments »
Tuesday, December 15th, 2009
Ouch. These last few days, I’ve been fixing a few lingering bugs in my STM system, and last night, I finally nailed them. Specifically, it is now possible to open variables within a transaction as read-only. An obvious optimization, right? At least that’s the idea. Less work is required by the STM system if we can trust that the variable isn’t modified by this transaction.
(more…)
Tags: c++, performance, stm, thesis, transactional-memory
Posted in Programming | No Comments »
Monday, November 30th, 2009
As promised yesterday, I’d like to show off a few bits of my STM library. Of course it’s far from done, and is still missing several key features, but the core library is in pretty good shape. So as they say on the internets, “my STM library, let me show you it” (more…)
Tags: c++, stm, thesis, transactional-memory
Posted in Programming | 2 Comments »
Sunday, November 29th, 2009
We’ve more or less settled in our new apartment, and we’ve got internet… sort of! (more…)
Tags: stm, thesis, transactional-memory
Posted in Meanwhile, Programming | No Comments »
Saturday, October 3rd, 2009
By now, I’ve read an awful lot of papers about STM systems, and certain trends are really starting to stand out, not so much in terms of the algorithms used or the clever schemes invented to make transactions appear atomic, but in how they interface with the actual language.
It has really underlined to me just how deeply entrenched most Java, C and C++ programmers are in the imperative mindset.
(more…)
Tags: c++, functional, imperative, stm, thesis, transactional-memory
Posted in Programming | 2 Comments »
Thursday, October 1st, 2009
We’re nearing the end!
Part I focused on the very fundamentals of C and C++, making sure that you understand the build system and the very basics of the syntax.
Part II expanded on this to teach you all the C++ you’ll need to do basic work in the language, including a few useful parts of the standard library, such as vectors and strings.
You now know all the basics we need, and the actual Win32 API should now be very simple to deal with. Not elegant or consistent, but comprehensible as long as you keep a close eye on the documentation and take nothing for granted.
(more…)
Tags: .net, c++, teaching, win32
Posted in Programming | No Comments »
Saturday, September 26th, 2009
As I mentioned a few weeks ago, I’m writing my master’s thesis on software transactional memory (STM).
Of course it is still early in the process, and while I’ve got some ideas for my implementation, and have started prototyping parts of it, most of the time has been spent catching up on all the existing work in the field.
Little did I know when I accepted the subject that there’d been written that many papers about it over the last decade. Phew… A commenter asked me for the references I found useful, so here’s an incomplete list: (more…)
Tags: diku, stm, thesis, transactional-memory
Posted in Programming | 4 Comments »