CIS: “Protecting” code in stead of data

The Windows API contains a synchronization primitive that is a mutual exclusion device, but is also a colossal misnomer. I mean, of course, the CRITICAL_SECTION.

Continue reading

Posted in Common Issues with Synchronization | Tagged , | Leave a comment

CIS: Lock Leaks

The two most popular threading APIs, the Windows API and pthreads, both have the same basic way of locking and unlocking a mutex — that is, with two separate functions. This leaves the code prone to lock leak: the thread that acquired a lock doesn’t release it because an error occurred.

Continue reading

Posted in Common Issues with Synchronization | Tagged | Comments Off on CIS: Lock Leaks

CIS: Unexpected Coupling

One of the most common problems with synchronization occurs when things need each other that you didn’t expect to need each other.
Continue reading

Posted in Common Issues with Synchronization | Comments Off on CIS: Unexpected Coupling

Git demystification

There are a few misconceptions I hear about Git that I find should be cleared up a bit, so here goes:
Continue reading

Posted in Opinions | Tagged | Comments Off on Git demystification

Three ideas you should steal from Continuous Integration

I like Continuous Integration — a lot. Small incremental changes, continuous testing, continuous builds: these are Good Things. They provide statistics, things you can measure your progress with. But Continuous Integration requires an investment on the part of the development team, the testers, etc. There are, however, a few things you can adopt right now so, I decided to give you a list of things I think you should adopt.
Continue reading

Posted in Quality, Software Development, Software Engineering, Software Testing | Tagged | Comments Off on Three ideas you should steal from Continuous Integration

Eliminating waste as a way to optimize

I recently had a chance to work on an implementation of an Arachnida-based web server that had started using a lot of memory as new features were being added.

Arachnida itself is pretty lean and comes with a number of tools to help build web services in industrial devices, but it is not an “app in a box”: some assembly is required and you have to make some of the parts yourself.
Continue reading

Posted in Anecdotes, Software Design | Tagged , , , | Comments Off on Eliminating waste as a way to optimize

Technical documentation

Developers tend to have a very low opinion of technical documentation: it is often wrong, partial, unclear and not worth the trouble of reading. This is, in part, a self-fulfilling prophecy: such low opinions of technical documentation results in them not being read, and not being invested in.
Continue reading

Posted in Opinions, Quality, Software Engineering | Tagged | Comments Off on Technical documentation

The story of “Depends”

Today, I announced on behalf of my company, Vlinder Software, that we would no longer be supporting “Depends”, the dependency tracker. I think it may be worthwhile to tell you a by about the history of Depends, how it became a product of Vlinder Software, and why it no longer is one.
Continue reading

Posted in Anecdotes, Software Development | Tagged | Comments Off on The story of “Depends”

Vlinder Software announces the release of Acari as an independent library

Parsing and generating text can require a lot of memory – to the point where running the parser can be prohibitive on some devices. This is often due to sub-optimal handling of strings, bad integration with the system’s allocators, … … Continue reading
Posted in Vlinder Software | Tagged | Comments Off on Vlinder Software announces the release of Acari as an independent library

Vlinder Software ceases commercial support for Depends

Effective immediately, Vlinder Software is ceasing commercial support for the Depends dependency tracking library. The Depends dependency tracker library was created in 2007 during some experiments being conducted for the now-defunct Jail-Ust project. It then morphed into a stand-alone project … Continue reading
Posted in Vlinder Software | Tagged | Comments Off on Vlinder Software ceases commercial support for Depends