Estax v1.0
Jan 25 2009
Estax (Easy Static XML) is a minimalist tool for generating static websites. It is
especially useful if you want to write a static website containing only a few pages,
but don't want to copy and paste menu HTML, and also don't want to use PHP or a full-blown
CMS. You write your site content in a single, simple XML file and Estax generates the individual
pages from it. Use it for seldomly updated and/or private sites, documentation, or when
you have a restrictive web host.Use Estax if you just want to keep it simple.
Advantages
- You don't need CGI or any scripting language installed on your web host
- You don't need a webserver (with scripting languages) installed on your desktop to preview your page
- Static pages mean high performance, no security issues with scripting bugs
- No special software or web interface for editing content, just use your favourite text editor to edit the content
- Apart from the Estax-specific tags, you can still use normal HTML
- If you ever want to move your site, it's just a matter of copying files - no database dumping etc.
- Automatically generates menu, supports syntax-highlighting (via SHJS), can generate tag cloud
- No dynamic content (comments, forums, calendars or similar)
- Static pages mean slight size overhead on the server
- You have to write your own style sheet, but you probably have one anyways which you can tweak to work with Estax. Or, you can use and/or modify the stylesheet of this web site.
You actually see how the output of Estax can look like right now, as this website was generated using Estax. A simple example for your site content could look like this:
<site version="1.0" stylesheet="style.css" codestyle="vim-dark" title="My Homepage" favicon="favicon.ico" author="Andreas Textor"> <menu> <!-- Each link leads to a page that contains all boxes that contain the tag --> <link tag="home"/> <link tag="code"/> </menu> <box date="2009-01-24" title="Welcome to my Homepage"> <!-- This tag makes this box appear on the "home"-page --> <tag tag="home"/> <!-- Use a special tag to create a separate site containing only this box --> <tag tag="welcome-to-my-homepage"/> <content> Hello World! I added a new program on the <link tag="downloads"/> section! <!-- Write your regular HTML here --> </content> </box> <box date="2009-01-23" title="Hello World"> <tag tag="code"/> <content> This is how Hello World is written in C:<br/> <listing language="c"> #include<stdio.h> int main() { println("Hello World\n"); return 0; } </listing> </content> </box> </site>Using this XML, Estax creates three pages: home.xhtml, welcome-to-my-homepage.xhtml (each containing the menu and the first box) and code.xhtml which contains the menu and the second box with the listing. You would extend this page by adding more boxes tagged as "home" or "code". With one more box tagged as "code", code.xhtml would then contain the menu and the two boxes. Therefore, the tags are no(t only) fancy Web-2.0-stuff but are actually used to create the structure of the website. If one page contains more than one box, the date attribute determines the order of the boxes.
Documentation
See Estax-documentation for details.
Download
Naturel v1.0.0
Nov 14 2008
Naturel (not to confuse with NATURAL)
is a programming language that was developed by Ralph Erdt and Andreas Textor for the
Compiler Construction class at the University of Applied Sciences Wiesbaden in
winter semester 07/08. Naturel stands for "Naturel is the
Andreas Textor Und Ralph Erdt Language"
("und" is the german word for "and").We wrote a minimal standard library for Naturel and a compiler in Java that produces C code. The language is object-oriented and its syntax is inspired by C, Java, Pascal and UML. Many keywords that are not necessary for the semantics like
class
were
left out and other keywords were replaced by symbols, like +
instead of
public
. Comments are written like in Java and C++ using //
and
/* ... */
. Methods and attributes can have the visibilities public,
private and protected that are expressed using the UML-Modifiers +
,
-
and #
. A class variable uses a double modifier character
instead of the keyword static
. Overwriting of methods is allowed in
Naturel, overloading is not allowed.+a:num; // public -b:num; // private #c:num; // protected ++d:num; // public static --e:num; // private static ##f:num; // protected staticNaturel's grammar was transformed into a parser using the parser generator SableCC. The complete documentation, sample programs and source code of the compiler are contained in the downloadable package. The following block shows a short sample program that can be compiled using the compiler.
num
and str
are
the built-in data types for integers and strings, the static new
method is the
constructor of the class.
+Point { -x:num; -y:num; +getX():num { return(x); } +getY():num { return(y); } ++new(px:num, py:num) { x := px; y := py; } +addPoint(p:Point) { x := x + p.getX(); y := y + p.getY(); } +tostr():str { return("[" + x.tostr() + "," + y.tostr() + "]"); } ++main(args:str[]):num { p1:Point := Point.new(1, 2); p2:Point := Point.new(3, 4); out("Point 1: " + p1.tostr() + "\n"); out("Point 2: " + p2.tostr() + "\n"); p1.addPoint(p2); out("Point 1: " + p1.tostr() + "\n"); return(0); } }Note: Since the whole language including idea, grammar and compiler were created during a single semester, not all features are implemented in the compiler, especially a Garbage Collector is missing. Thus, Naturel should not be used in productive environments.
Download
- Naturel - Compiler, Documentation and Sample programs - 4,8 MB. Note that all documentation is in German.
- Grammar in SableCC format
- zahlenraten.naturel - Zahlenraten (Number guessing game) in Naturel
- Zahlenraten.c - The C code that was generated from it
- Zahlenraten.h - The C header that was generated from it
Fishtank
Oct 6 2007
Fishtank is not really a game, rather than a screensaver. It simulates a fish swarm in a fishtank and a
shark that hunts and eats the fish. There are several interactive controls:
- Switch between the different cameras
- Change the brightness of a glowing fish
- Add and remove fish and sharks
- Switch the ceiling lamp and the names of the fish on and off
- Automatically calculate the number of fish where the frames per second drop below 10
- Export 20 TGA-files per second (quasi video export)
Download
- Video of the swarm movement and the hunting shark - 2.8 MB
- Source-Code - 1.1 MB
- Windows-Version - 1.1 MB
genplant v0.3
Apr 10 2007
genplant is a simple L-System plant generator and renderer. Information about L-Systems can be found in The algorithmic beauty of plants.Changes in version 0.2: Interactive modification of angle and line length, more options, no more dependencies except SDL
Changes in version 0.3: Changeable axiom, VRML export, misc. things. See VRML-Demonstration (needs a VRML viewer or browser plugin. Note that FreeWRL didn't work for me for this VRML-file, but Cortona works (available only for Windows, sorry (VRML sucks anyway))).
Screenshot 1: L-System F->FF-[-F+F+F]+[+F-F-F]
Screenshot 2: L-System F->F[+F]F[-F][F]
Screenshot 3: L-System same as 1, but with randomization of the angles
Download
Witchcraft
Mar 1 2007
Witchcraft was written by Ralph Erdt and Andreas Textor (that's me) for
the Programming 3 course at the University of Applied Sciences Wiesbaden
during the winter semester 06/07. The player controls a witch on her
flying broom and can use spells and heavy weapons to shoot plenty of
different creatures. There are 3 levels, 4 weapons - frog spell,
magic detonator (guided missiles), gonne (machine gun), hexenschuss
(Note: this is the german word for lumbago, used as a pun) (railgun);
7 different enemies, 3 skill settings and the possibility to save the game.
The game was written in Java. Note that the game is in german, but there
isn't really much to read.
Download
- Download - 9,3 MB
- Start game in browser (no possibility to save the game)
java -jar Witchcraft.jar
. If you need to install Java,
you can get it at http://www.sun.com/java/.
Zik Zak
Jun 17 2006
Zik Zak is a thinking and reaction game. The game was written in C++ with
the help of SDL,
SDL_mixer and
OpenGL. You follow a small green spaceship
through an abstract world and try to reach the exit in each level. You
can control the flying direction only indirectly by shooting the prisms.
The ship ricochets according to the angle of incidence.
Download
- Linux Version - 1.3 MB
- Windows Version - 1.7 MB
- Source Code - 1.3 MB (incl. game data)
pacinstall v0.2
Mar 19 2006
Slackware users probably know Checkinstall: When installing
software from source archives, you call checkinstall
instead of make
install
, which automatically creates a packgage and installs it, so that you can
easily deinstall it later. pacinstall is the same thing for Arch Linux, you can install
software from sources the quick way without needing to write a PKGFILE.A binary package will be created and installed, no PKGFILE will be generated.
You need installwatch, which can be installed by the following command:
pacman -Sy installwatch
Changes in version 0.2: Fixed a bug that prevented correct handling of file names with spaces
Download
Pseudo Terminal Emulator
Sep 7 2004
This script can be used to remote-control console applications that don't
support this by themselves:
- Start the script. The script forks into the background and gives you a free shell.
- Start an application in the new shell.
-
echo -n "a" > ~/.inputfile
- The application now thinks that the "a" key was pressed.
Download
texburn v0.4
Sep 4 2004
The all-in-one solution suitable for every purpose concerning cd-burning and ripping.All I found were two types of such programs: on the one hand there graphical recording frontents, on the other hand frontends for the console, that are so minimalistic that they are too uncomfortable. So I wrote it the way I like it: Fast, easy and automated access to the cd-recorder for the console. The program works mostly without menus, only if it's absolutely necessary, a menu is displayed. You give one parameter on the commandline, and the program knows what to do with it.
It's that easy.
Note: The script depends on some programs, see the README for details.
Features:
- Automatic detection of parameters (file (audio, data, playlist, cd images); directory (audiofiles (mp3, ogg, wav) for audio- or data-cds); or extended commands (blank cd-rw, grab cd)
- Important settings are configurable through config file
- Recording of audio and data cds (single files or directories)
- Recording of ISO and BIN/CUE images
- Copy audio and data cds directly
- Blank cd-rws fast or complete
- Grab data-cds as image or directory
- Grab audio-cds and encode directly into favorite format (mp3 or ogg),
files are named directly via CDDB - Record pls (xmms) and m3u (winamp) playlists directly as audio cd
- Automatic printing of cd inlays for audio cds by request
Download
Other scripts
Dec 4 2003
Here are several other useful (or not) scripts:
- demoplay.sh - Quake 3 Demo Player. Start the script without parameters to display a selection menu, or use a .dm_68 file as argument.
- createinlay.sh - Reads a directory containing mp3s and creates a postscript file with a 12x12cm frame and a listing of the files, which can be printed using lpr.
- leo.sh - Command line interface for the online translator Leo.
- bashanimation.sh - A "graphical demo" in bash. A product of boredom. You should run the script in the TTY if possible (no terminal emulator or framebuffer, because the cursor flickers a lot). Requires the "banner" program from the bsdgames package.
- consolelogo.sh - Rotates the output of the "banner" program from the bsdgames package by 90 degrees to create big text. You probably prefer Figlet.
- happy.sh - Another product of boredom... dancing figures.