General Development Archive

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.

Using DTrace to Profile and Debug A C++ Program

A sample program CCtest was created to demonstrate an error common to C++ applications -- the memory leak. The examples in this article demonstrate the use of the DTrace feature in the Solaris 10 Operating System to diagnose C++ application errors. These examples are also used to compare DTrace with other debugging tools, including Sun Studio 10 software and mdb in the Solaris 10 OS.

First stable release of TnFOX out

After a year of beta testing, TnFOX (forked from the FOX toolkit) has made its first production ready release. TnFOX extends FOX in a number of important areas such as mission-critical support, multithreading, exception-safety, strong encryption, Inter-Process Communication (IPC), Python bindings, human language translation and enhanced host OS facilities access in a Qt API compatible fashion. TnFOX is available for Win32/Win64, Linux and FreeBSD.

Migrate Win32 C/C++ application to Linux on POWER

These series of articles helps you migrate your Win32 C/C++ applications to Linux on POWER. Win32 C/C++ Apps to Linux Part-1 of this series coveres the Win32 APIs mapping to Linux on POWER regarding the initialization and termination, process, thread, and shared memory services. Win32 C/C++ Apps to Linux Part-2 illustrates how to map Win32 to Linux with respect to mutex application program interfaces (APIs).

IPython; Eclipse Plugins; Observer Pattern in .NET

The standard Python interpreter is unquestionably a highly valued item in the toolbox of many Python programmers. However, the IPython developers have taken the fundamental ideas found in the standard interpreter and improved upon them so considerably that they have created a tool of amazing utility. Elsewhere, this new monthly column is about writing plugins in Eclipse. Also, read here how to use the Observer Pattern in .NET.

Heterogeneous Parallel Virtual Machine

The price of "legacy" systems is dropping at a fast rate. Quad PIII servers can be purchased on Ebay for less than $800. Stacks of old SGI systems (Indy and Indigo) systems are being sold for rock bottom prices. But until one single unified API is created to unite all these systems into one single cluster for use by the common computer user, they will remain useless to most people. This is where HPVM comes in. HPVM exists to bring the cluster concept out of the Universities and research facilities and make them useful for everything from video editing, to database servers.

Test Driven Development: Programming by Intention

Have you ever had to work on a piece of code and found that it was hard to understand? Maybe the logic was convoluted, the identifiers meaningless, or worse, misleading. You say there was documentation? Was it readable? Did it make sense? Was it up to date with the code? Are you sure? How do you know? This chapter discusses programming by intention, a central idea in XP. It means making your intent clear when you write code.

Edging Toward the Ninety/Ten

Most software has far more features than most users will want. These extra features simply serve to increase the TCO of software deployments and headaches at the helpdesk. OFB Editor-in-Chief Timothy R. Butler argues that GNU/Linux developers would do well to follow the examples of Apple and Mozilla and move lesser used features out of the way.

The future of Visual C++, Part I

C++ is the language that most of Microsoft's big-name products are developed in and one of the most widely-used languages in the world. Charles Torre and Scoble interview Herb Sutter, architect on the Visual C++ team, in two parts. First part is up today, second tomorrow, which includes a small tour of the team. In this segment Herb talks about some of the language and compiler changes that are coming in the next version of Visual C++ and where C++ fits into the managed code revolution.