Verteilte Softwareentwicklung mit Subversion und SubMaster
Subversion ist als besseres CVS ausgelegt. Es unterstützt Umbenennen und Verschieben von Files (mit konsistenter Versionierung), saubere Behandlung von Verzeichnissen (incl. Umbennenen und Kopieren), versionierte Dateimetadaten, atomare Commits, Taggen und Branchen in konstanter Zeit, effizientes Behandeln von Binärdateien, etc. Das ROCK Linux Projekt entschied vor über einem Jahr, Subversion zu verwenden und entwickelt jetzt SubMaster, ein kleines Script-Set um es für Entwickler zu vereinfachen locale Branches zu erstellen, mit dem Haupt-Repository syncron zu halten und Patches upstream zu schicken. Wir von ROCK Linux glauben, dass SubMaster in vielen Projekten ein adequater Ersatz fuer BitKeeper sein kann und viele wichtige Features bietet die in BitKeeper nicht zur Verfügung stehen. SubMaster besteht aus zwei Teilen: Ein Command-Line Tool für Entwickler um ihre lokalen Branches zu erstellen und zu verwalten auf der einen Seite und ein CGI Script als Management Platform für das Einreichen von Patches, Verwalten von Feedback und Durfuehren von Regression-Tests auf der anderen Seite. Im Vortrag werde ich eine kurze Einführung zu Subversion und SubMaster geben und aufzeigen wie die Kombination von Subversion und SubMaster in offenen und nicht offenen Projekten die Zusammenarbeit vieler Entwickler stark vereinfachen kann.
Curriculum Vitae - Clifford Wolf (clifford@clifford.at, www.clifford.at)
================================
Quick Overview - Technical Skills
---------------------------------
* Programming in C and various assemblers
* Programming in Perl, Shell, SED, AWK, M4 and many other scripting languages
* Programming in BASIC, LOGO, LISP, Pascal, Java and more
* SQL (MySQL) administration and development
* Apache administration and module development
* HTML/XHTML and JavaScript (including DOM, etc)
* Linux Kernel, Glibc, GCC and Binutils hacking, cross-building, etc.
* Distribution Development (see ROCK Linux)
* Firewalling and Routing with Linux 2.4 (iptables and iproute2)
* Network- and Host-Security
Quick Overview - References
---------------------------
* Maintainer of ROCK Linux (a Linux Distribution Build-Kit)
* Technical Manager at vocat.cc (www.diestartseite.at)
* System Engineer at LINBIT Information Technologies GmbH
* Trainer for Linux/UNIX System Administration and Development
* Various Patches in Linux Kernel, GNU libc and other software
The History
-----------
I started programming on a C-64 when I was 8 years old (1988). First only using
the built in Basic and after several weeks already using the 6510 assembler.
Some time later I switched over to Amiga 500 and IBM compatible PCs.
My first PC was a gift from a friend - a 8088 with 265 KB memory, a 5.25" DD
Floppy drive and no hard disk. I had no x86 assembler at this time - so I used
a hex editor for writing a few "Hello World" class applications.
Some years later (maybe around 1990) I got an old 80286 which I was programming
in Turbo Pascal and Turbo Assembler. I wrote some shareware games with EGA
graphics and a few small tools for DOS.
1992 I bought my first own computer - a PC with a 486 DX-2 66 CPU. I was
really impressed by the protected mode features of the CPU and was looking
for an operating system which could make use of the possibilities offered
by the CPU - and found Linux. Linux was written in C - so I learned C and
started programming in a UNIX environment.
But I was also continuing to program for the DOS platform and was playing
around with 3D graphics and ray tracing - things which where not possible
with the 286 in real time, but became possible now with some assembler hacking
and smart math.
In 1994 I entered a school for computer science - but soon decided that it
would be more fun to hack the schools Novel network than writing "hello
world" applications in pascal. But playing around with Novel lost it's
attraction pretty soon and I founded BDP (burned data project) - a small group
of people who where writing a BBS from scratch. We got a free server housing
at 'Magnet' - an austrian ISP which was primary making money with a FirstClass
server (a BBS product with clients for windows and MacOS) and was using the
internet for e-mail only at this time.
I left school 1996 and began as System Operator at Magnet and helped building
up the real ISP business there. In 1997, magnet planed to create its own
austria-wide dial-in infrastructure. We did know that other ISPs spend many
years and much money in choosing the right destinations for their Pops (Points-
of-presents) - resources we didn't have. So I decided to write a genetic
algorithm to analyze the possible setups and choose the best ones (based on
the calculated expected cost). This application was written as distributed
application for a COW (Cluster of Workstation). I needed a single-floppy
Linux distribution for running my application on all companies workstations
over night. So I simply built a source-based distribution and named it "GNUX".
The name has later changed to "ROCK Linux 0.01".
Besides writing my own distribution I've done a lot Database-Programming with
MySQL and System Administration at magnet - especially hacking all service
applications to read all kind of user-data from the database and make
everything in every service manageable over a web-interface in the SQL
database, making the need to change anything directly on the machines obsolete.
1998 I left magnet (which is now using the name "Nextra Telekom AG") and
started my own training and consulting business. I also began to work on ROCK
Linux like on a part time job (and not only on weekends anymore).
Working on ROCK Linux involved writing bug-fixes for many popular open source
projects, including glibc (e.g. buggy strtok() implementation or broken
Pentium2/Pentium3 optimization), gcc (e.g. libstdc++-3.2 not being compatible
with glibc-2.3), bash pdksh, coda filesystem, gnu fileutils, and more. Many
of this fixes have found their way into the official package sources.
I also started to do more and more kernel hacking - mostly small changes
for private use: modified core-file creation for debugging a web server
application, my own filesystem (just for fun), a driver for wacom intuos usb
tablets (which is now part of the official kernel), some changes in the
console code to fit personal preferences, ...
My projects at this time included linux firewalling administration and
development, apache web server development and adding missing features to
various other open source software projects (e.g. integrating samba and
netatalk or added support for encrypted PHP source files to Zend engine) and
writing software for Linux and other UNIX Platforms. I've also done a few
web projects (Linux, Apache, MySQL, Perl and PHP).
I'm also doing talks at international congresses on a regular base
(e.g. "Implementing Buffer Overflow Attacks in C and IA-32 Assembler"
at 18C3) and doing various trainings in cooperation with NTx.
In 2001 I started to do the technical management at vocat.cc in addition to
my other obligations and have led the development of "dieStartseite.at" from
the first draft on. Today I'm holding a 10% share of the company.
Since 2003 I'm working for the Linux consulting company LINBIT
Information Technologies GmbH.
Related links:
--------------
* ROCK Linux
http://www.rocklinux.org/
* Vocat.cc
http://www.vocat.cc/
* NTx
http://www.ntx.at/
* Magnet (Nextra Telekom AG)
http://www.nextra.at/
* Linbit
http://www.linbit.com/