General Development Archive

Using MUSCLE to Implement a Multiplayer Networked Game

Prologue by the editor-in-chief: "A bit more than two years ago, while I was still serving at BeNews, I asked Jeremy Friesner to write an article and present his cross-platform client-server messaging system for dynamic distributed applications, MUSCLE. Two weeks later, he came back to me with a multi-page article, explaining MUSCLE. To demonstrate the power of MUSCLE, Jeremy created a demo application based on it. The result was BeShare.

An Introduction of Modern Linux Distributed Filesystems

"The ability to share disks, directories, and files over a network is one of the most significant advances in modern computing, reducing local disk space requirements and making it easy for users to collaborate without ending up with hundreds of versions of the same files. Personal computers running Microsoft Windows and Apple's MacOS and Mac OS X inherently support sharing disks and directories with other systems of the same types. Linux and Unix systems traditionally use the NFS network filesystem in order to do the same sort of thing." Read the article at LinuxPlanet.

Borland Delivers Delphi 7 Studio

"Borland Software Corporation today announced Borland Delphi 7 Studio, featuring full support for new and emerging Web Services, integrated model driven development, and preview capabilities for the Microsoft .NET Framework. Using Delphi 7 Studio, the estimated one million Delphi developers can begin developing their skills for .NET and preparing applications for .NET without abandoning their existing work and skills on the Windows platform." Read the rest of the press release at Borland USA.

C# Input/Output Classes Simplified

"Beginners to the .NET Framework sometimes have a hard time trying to understand the classes in the System.IO namespace for performing input/output (IO) operations. The difficulty stems from the fact that this namespace is relatively large, containing more than 40 members, some of which are similar classes that can be used to achieve the same tasks. Thus it is sometimes hard to figure out which class is best for which task. This article tries to make your life a bit easier by grouping IO tasks into three categories and introducing the classes that are suitable for each task category." Read the developer's article at O'Reilly.

A Primer on Distributed Computing

Say you've got a big computation task to perform. Perhaps you have found a way to cure cancer, or you want to look for aliens. All you need is a few super computers to work out some calculations, but you've only got the one PC on your desk. What to do? A popular solution is the "distributed computing" model, where the task is split up into smaller chunks and performed by the many computers owned by the general public. This guide over at Kuro5hin shows you how.

Borland Speeds Kylix C++ for Linux Development

Borland Software Corp is set to build on an early lead among Linux developers, with today's expected launch of a C++ rapid application development (RAD) environment. Scotts Valley, California-based Borland will announce version 3.0 of its Kylix RAD environment for C++. Previous versions of Kylix targeted Delphi programmers on Windows and Linux. Read the rest of the report at TheRegister.

Building GUI Applications with Python

"Developing the Graphical User Interface (GUI) for a Python application is often a tedious, time-consuming, and opaque process. This is the exact opposite of how Python programmers would describe most other aspects of software development using Python. So what is it about GUI applications that causes them to be so hard?" Read the technical article at OnLamp. Two more Python articles can be found at developerWorks at IBM, here and here.

Advanced Filesystem Implementor’s Guide, Part 11

In this article, Daniel Robbins (President/CEO, Gentoo Technologies, Inc.) shows you how to use the latest filesystem technologies in Linux 2.4 and gives an update on the status of the XFS, ReiserFS, and ext3 filesystems. He shares implementation advice, performance information, important technical notes, as well as an outline of how these various filesystems will continue to improve over the next year. You can also view his previous article in this series, which shows you how to get XFS up and running.

libferris Winds its Way Towards 1.0.0

libferris is a virtual filesystem (VFS) that runs in the user address space. This means that applications using libferris will use the shared libraries API to access the filesystem which may then delegate to the kernel using libc to perform the desired actions. Operating in the user address space allows libferris to mount things that one would generally not want the kernel to mount. For example libferris mount Berkeley database files, ftp sites, XML files, rpm files, sockets, sysv IPC, mysql databases and remote computers using ssh as a filesystem.

Proposal for the Development of a Web Services Application

If there was a single application making someone use MacOSX full time, that application would be Watson. This application is possibly the most awarded in the MacOSX world, and it is the best idea for an application that I saw the last few years. Despite the idea being dead simple, and even seem redundant at first, Watson is an excellent, original and handy tool. I would like to initiate an open source project for a multi-platform clone of Watson (Karelia say that they have no plans for any ports - with only a remote possibility for a Windows port). I will start by putting $100 USD on the table while readers are most welcome to co-sponsor the project as well. What we really need though, is willing and capable C++ developers.

Overriding the GNU C Library

What do you do if you don't have the source for your application and it's failing because a GNU Library for C (glibc) function is returning something bad to the application? Override the function of interest with your own version. This can be done without having root permissions and without recompiling the libc source. Imagine the thrill of writing your own version of open()! The article contains sample code.

Writing Your Own Toy OS, PART II

"The next thing that any one should know after learning to make a boot sector and before switching to protected mode is, how to use the BIOS interrupts. BIOS interrupts are the low level routines provided by the BIOS to make the work of the Operating System creator easy. This part of the article would deal with BIOS interrupts." This is the second part of the series of articles on how to write your own toy OS.

The Technology Behind LynxOS v4.0’s Linux ABI Compatibility

"LynxOS v4.0, the newest release of the POSIX-conformant hard real-time operating system (RTOS), has support for Linux ABI compatibility -- where Linux application binaries can run unchanged in the LynxOS environment without necessitating source code recompilation. This white paper examines the issues surrounding ABI compatibility in general and describes the architecture of the Linux ABI compatibility layer on LynxOS v4.0." Read the article at LinuxDevices.

Rediscovering Object Orientation

"Does anyone really know what "object oriented" means? Does the phrase signify anything, or are the words just strung together because of an historical misnomer? One thing is clear. No one understands what the phrase "object oriented" means when they first hear it. While it does appear to be a juxtaposition of two ordinary words, its meaning does not jump out at you." Read it at CobolReport.