Verfasser-Archiv

GobSmack: A GUI Framework for the Web V0.0.1

In an effort to create a GUI framework that can be used on web pages, I managed to complete a first, very early version. It includes a session manager demon for UNIX-like systems, a CGI frontend that communicates with the daemon, an AJAX library for communicating with the CGI frontend, and a simple test page to write the screen size to the session manager.

GobSmack v0.0.5 - Version with bugfix for get_resource() and the new features of configuration files and JavaScript serving.

GobSmack v0.0.4 - Version with bugfix for internal document fragment serving.

GobSmack v0.0.3 - Version with bugfix for invalid CGI request handling.

GobSmack v0.0.2 - Version with bugfix for random number generator.

GobSmack v0.0.1 - Initial version.

Tool to Synchronize Filing Systems in Regular Intervals on Linux

If you ever had to stare at fsck repairing a filing system after an unclean reboot, you’ll appreciate this very tiny but also very useful utility. You can run it as part of your startup services in GNOME, or as part of a cron job, or init script, or whatever. The program does nothing except calling sync(2) every three seconds in a loop.

I seriously wonder why on Earth this isn’t done automatically in the Linux kernel or as a part of a system script.

BTW, the tool is also useful when you’re dealing with removable media like USB sticks, other Flash media, diskettes or optical storage systems. Although it seems that on modern Linux systems like Ubuntu 9.10, syncing is done more frequently now for particular types of storage, extra syncs can do no harm.

The reason I wrote it is b/c I’ve begun using ext2 as my main filing system for the sake of speed (ext3 and especially ext4 are comparatively slow when compared to ext2, for instance). ext2 has no journalling, and hence is more susceptible to damage from unclean reboots. Again, I wonder why ext2 doesn’t sync automatically as any reasonable filing system (or OS kernel) should.

SyncOften ZIP File

Binary Data Structure Definition Language

I just had an idea how to store the definition of data structures in binary form, which can be useful for implementing high-level programming language compilers.

Full Text

RFC2396 URI Syntax Analyzer

During the weekend, I wrote a syntax analyzer package for URIs, fully conformant to RFC2396. With that, you can convert a URI into a syntax tree and extract all available information. BSD-licensed, with test program, all in ANSI C source code.

Source code (.tar.gz format)

Web Server Skeleton

How often have you wished to write your own web server? With my little program, you can. It contains all necessary code to write a UNIX-based web server (i.e. just like in the real world, you’ll need an operating system like Linux, FreeBSD, Solaris or AIX). The only thing that remains to be done is to implement a single function, handle_http_request(), that handles the Hypertext Transfer Protocol (HTTP). The input will be ready on the specified input stream, and you can write any output to the specified output stream. The code is written in the C programming language, and comes with a BSD license, ready to be used at home or at work.

Source code (.tar.gz format)

Program to convert binary data to web pages

This set of two small utilities I’ve written can be used to tunnel binary data over HTTP by the usage of HTML pages that appear normal to most machines.

Thus, firewalls can be avoided since most data going through port 80 is relatively unfiltered.

Of course, these two small programs are only part of the cure. The source code can be used in more sophisticated solutions. They’re written in portable ANSI C, and have a BSD license (so, use in commercial applications and/or organizations is expressly permitted).

Source code (.tar.gz format)
Source code (.zip format)

Idea for a Six Dimensional CPU

I had a phase many years ago, in which I envisioned concepts for six dimensional computers. Such a processor as I envisioned would consist of many cells which would be three-dimensionally organized in cubes. Each cell would consist of a data word, an instruction word, and a processing circuit. Cells would be linked to each other in three dimensions. Cubes would be linked in three dimensions as well, creating effectively six dimensions. Memory addresses would be in six dimensions, and there would be links from specific cells inside a cube outside to other cubes. Program flow could then “travel” inside a cube, allowing room for as many parallel streams of execution as there is space in the cubes. A computer like this could foster thinking in six dimensions and make comprehension of such concepts easier. Perhaps it could also be used to write multidimensional simulations.

TigerPaw PHP Toolkit 0.5.1 Re-Release

Today, I decided to re-release my TigerPaw PHP Toolkit 0.5.1 from 2003 under the GPLv3 license. The toolkit provides a fairly rich framework for the development of MySQL-based content management systems. Yet, it is still unfinished.

In 2003, I did not find time to complete the framework. This re-release is in completely unpolished form. There is lots of documentation missing. Also, there might be incomplete parts of things I worked on but did not finish. However, the release should be largely usable. It can be used as building blocks for a new framework.

The framework is written in PHP 4, and hence not up-to-par with developments that have taken place in the past years.

TigerPaw PHP Toolkit 0.5.1 (.tar.gz format)

TigerPaw PHP Toolkit 0.5.1 (.zip format)

ADB Goes 0.1.1

Just minutes ago, I completed version 0.1.1 of the ADB library. It now features a data dictionary, which is like a filing system within the database. This component has been tested just a bit and should work in principle. I also cleaned up a lot of the previous code and eliminated a lot of bugs and introduced new safeguards against problems. The file format has completely changed (I hope this will be the only change in file format). It now features tagged elements, which makes identifying them in a hex dump much easier. Another new feature is a built-in object debugger, which enables any class to have a custom debugger, which can be run on user request when an exception occurs. I hope it will be useful! :)

ADB V0.1.1 (.tar.gz version)

ADB V0.1.1 (.zip version)

Oh, BTW, since I’m developing on 64-bit Linux now, the library has been tested in 64-bit environments.

ADB Goes 0.1.0

My database management system ADB (working title) is going version 0.1.0, and it’s the first public release of it. You can already use it for some stuff. It contains an early version of the base library (work is still in progress, of course). Test programs that are included can serve as examples, and the source code is well documented. The code has been tested some, and should be relatively bug-free. License is GPLv3. Usage in free software projects is encouraged! :)

ADB Version 0.1.0 (format: gzipped tar)
ADB Version 0.1.0 (format: zip)