General Development Archive

Autopackage 1.0, the now and the next

After two and a half years of work, autopackage 1.0 has finally escaped into the wild. It has a fundamentally new design, and offers an alternative system of software distribution and management on Linux. This article will talk about what this means for the Linux community, and what new directions and possibilities it opens up. It'll talk about problems remaining to be solved, and finally it will propose solutions for them. If you just want to see what autopackage is like, check out the screenshots or the Flash demo, available from the website.

HOWTO: Creating Images Of Your Linux System With SystemImager

Falko Timme wrote a tutorial describing how to create images of your Linux system with SystemImager. SystemImager lets you create images of your installations. So you can make a backup of your systems, clone your systems (if you have to maintain more than one machine with exactly the same software), or even distribute your software over the internet. To do so, you need an image server (should have enough disk space to store your images) and a so-called golden client (i.e., your "perfect system" of which you want to make an image).

Language Driven Development

Xactium has published a white paper on Language Driven Development (LDD). LDD is a revolutionary approach to designing and implementing software and systems. LDD makes huge productivity gains by bridging the gap between the way developers think about their problem domain, and the languages and tools that implement the solution.

Reliability and availability: What’s the difference?

How do you design a computing system to provide continuous service and to ensure that any failures interrupting service do not result in customer safety issues or loss of customers due to dissatisfaction? Historically, system architects have taken two approaches to answer this question: building highly reliable, fail-safe systems with low probability of failure, or building mostly reliable systems with quick automated recovery.

The Ten Worst Engineering Pitfalls

I've been a professional software engineer for close to ten years. Based on my experience, I recently attempted to enumerate the ten worst engineering "traps" most developers seem (for whatever reason) prone to fall into. Here's the list I came up with. It should be noted that wherever two of these come into conflict, the item close to the top of the list wins.

Quality Assurance: Much More than Testing

Quality assurance isn’t just testing, or analysis, or wishful thinking. Although it can be boring, difficult, and tedious, QA is nonetheless essential. Ensuring that a system will work when delivered requires much planning and discipline. Convincing others that the system will function properly requires even more careful and thoughtful effort. QA is performed through all stages of the project, not just slapped on at the end. It is a way of life.

Protothreads: extremely lightweight, stackless threads in C

In many embedded systems, memory is severely constrained. RAM sizes on the order of a few hundreds of bytes or less is very common. Full multithreading may not be an option because of the memory required for thread stacks. For such systems, the newly released Protothreads Library provides a very lightweight alternative: protothreads are a stackless type of threads with only two bytes of RAM overhead per protothread. The library is implemented in pure C without any machine specific code. Protothreads are currently used in the Contiki OS and will be used in the upcoming version of the uIP embedded TCP/IP stack.

Some thoughts on “Database Filesystems”

With the recent (or not so recent, I am a very slow writer) interest in database file systems, I've been thinking about what a typical user really wants from such a system. What would they use it for? What would we need to do to help them get the most from it? Are there any precedents that show how useful a database file system could be? If not, could we invent one? This lead me to some "gedanken solutions" (like gedanken experiments, just with software) that I thought I'd distract you with.