Software

IT is very interesting technology.

Handling pointers with references

While doing some refactoring on soothsayer over the weekend, I was once again reassured that one of the software engineering principles that I always adopt when designing systems still holds true.

The principle in question is the age old tips of preferring C++ references to pointers. As the excellent C++ FAQ Lite simply puts it: ``Use references when you can, and pointers when you have to''.

I had to switch from references to pointers in order to add a new feature. This required a refactoring of the relationships among some core components in the system.

Debugging in the Cygwin environment

Cygwin!

Ah, the joy of debugging. There is nothing quite like spending time unsuccessfully trying to track down a problem in someone else's source code. </sarcasm>

Right... What really makes it bad is when you can't even avail of the set of tools that you've grown accustomed to from working in a Unix environment.

Working in Cygwin is certainly more pleasant than working in a vanilla Windows environment, but it doesn't afford quite the same power and flexibility of working in a native Unix environment.

openmaia and Unicode

Yes!

I just got a working build of openmaia using Unicode enabled wxWidgets libraries.

The changes are simple but quite extensive, since conversion between wxString and char* occur in variuos parts of the code. The patch file is currently more than 1250 lines long, but there is more work to be done.

While the core virtual keyboard works fine, I haven't tested the maiasms component since I don't have access to a mobile phone that I can link up to my laptop.

Converting wxString to C string const char*

wxWidgets is an extensive, free, open-source, and mature cross-platform graphical toolkit. Formerly known as wxWindows, wxWidgets applications look and feel just like a native application, since wxWidgets uses the native graphical toolkit for the target platform it is compiled for.

wxWidgets has an impressive number of features, which makes it an excellent choice for cross platform graphical application development.

One useful feature is support for Unicode. wxWidgets provides a wxString class which abstracts away from standard ASCII encoded strings and Unicode encoded strings.

ngrams for n diverging to infinite

That Google released a massive corpus of data based on the vast amount of web pages that their GoogleBot crawler indexes is old news.

Don't you just love the subtle reference to the "All your base are belong to us" phenomenon. Incidentally, all my X display manager sessions great me with the catchy "All your base are belong to us" motto. So do my screensavers. I know...

Debian GNU/Linux Etch on a Dell Latitude D420

This is a log of my pleasant experience setting up Debian GNU/Linux Etch on a Dell Latitude D420 laptop.

The aim is to collect all the information required to optimally configure all the software required to make full use of the all hardware mounted on the D420.

The D420 is a very slick and powerful laptop, packing lots of devices and performance in a very compact and lightweight body.

Here you will find all the information needed to unleash it the power of Debian GNU/Linux on your Dell Latitude D420.

Open heart surgery on your desktop computer

Mainboard bios surgery

...or the art of recovering from a bios flashing gone bad.

Picture this scenario: you set about flashing your mainboard bios with an updated version, but something went horribly wrong and now your computer is no more useful than a giant paperweight.

I sincerely wish you will never have any use for the information contained in this article. In the unfortunate event that you do, I hope this information will make your life a little bit easier and help you fix what seems to be an insurmountable problem.

Wading through Windows

windows

There comes a time in your life when you have to get your hands dirty and face up to the fact that you just have to do the one thing you wish you would never have to do.

Installing a Windows operating system. On a brand new Dell desktop. It makes you shudder, doesn't it?

To be precise, I had to install Microsoft Windows 2003 Server x64 on a Dell Precision 690, which comes with a Dell SAS 5/iR integrated raid controller.

<sarcasm>As usual, you would not expect Windows to install cleanly and without fuss... Where would that warm and fuzzy sense of accomplishment that accompanies every successful install go otherwise?</sarcasm>

Death of a deadline

They say the life of a software engineer is a very stressful ride through a thick forest of unmet deadlines and eerie technical problems.

It is not always that bad... but, sometimes, it is even worse. Like yesterday.

I worked on implementing a set of new features. I took hardly any breaks during my coding hours, slaved away in the office, and even worked over the weekend to try and make up for some time.

A few weeks earlier, I genuinely thought that I would be able to complete my tasks within two weeks, and I therefore committed to having the new features implemented in that timeframe.

Hanging off a branch

During my random lunch-time browsing, I stumbled on Streamed Lines, an excellent paper on branching patterns and effective parallel software development techniques.

It is definitely worth a read, even for the experienced software engineer. The paper explores the many uses of various branching and merging techniques, and provides terminology to describe related practices and concepts.

I particularly appreciated the analysis of patterns categories and found a number of stimulating ideas.

Syndicate content