Omega

Omega -- Available Software


Analog
Bind
CLisp
CVS / Viewcvs
GNU Compiler Collection
Icon
ImageMagick
IPv6 Package
Java Package w/Jikes
Mailman
MySQL
Perl / Python
PHP
Samba
Tomcat
Valgrind
w3m

Analog - Apache Logfile Processor
http://www.analog.cx/
Analog is a fast logfile processor that generates usage statistic reports for your web server. Reports include a daily request log, browser tracking, search request tracking, organization logging, file size reports, and much more. Omega uses Analog for its statistics here.

By setting up a simple cron job, your own personal reports for your webpages can be generated as well. First, add the following to your crontab.in file (if you don't have one, create it):

# At 5am every day, update Analog's statistics for my website
0 5 * * * /usr/bin/analog -G +g/home/<username>/etc/analog.conf &> /dev/null
Then, make sure you have a configuration file Analog can use. Here is a sample one, modify it to suit your needs. Then, run the following command to register your new crontab file with Omega's cron daemon:
<username>@omega ~ $ crontab crontab.in
Of course, if you'd like to run Analog just once, all you need to do is
<username>@omega ~ $ /usr/bin/analog -G +g/home/<username>/etc/analog.conf
Bind - Internet Domain Name Server
http://www.isc.org/products/BIND/
BIND (Berkeley Internet Name Domain) is an implementation of the Domain Name System (DNS) protocols and provides an implementation of the major components of the Domain Name System, including a Domain Name System server, a Domain Name System resolver library, and tools for verifying the proper operation of the DNS server.

This software allows Omega to host entire domains. Together with Apache's and Postfix's support for virtual hosts, Omega can serve up e-mail and WWW for those domains as well. Email us if you'd like Omega to serve your non-profit domain. Omega's already doing it for others!

CLisp - GNU Common Lisp
http://clisp.cons.org/
Common Lisp is a high-level, all-purpose, object-oriented, dynamic, functional programming language. It is commonly used as a general-purpose programming language and an AI language. It is easy to use, easy to maintain (depending on programming style) and portable across multiple OS platforms and implementations.

GNU CLisp compares well with other ANSI CL implementations with respect to performance in most areas, such as CLOS, I/O, lists, integer arithmetics (CLISP's bignum performance is better than that of most other CL implementations). In many cases it can easily outperform Java, Perl, TCL and any Scheme interpreter.

CVS w/ ViewCVS - Concurrent Versions System
http://www.cvshome.org/  &  http://viewcvs.sourceforge.net/
GNU Compiler Collection - Programming Language Tools
http://gcc.gnu.org/
Currently our GCC tools consist of front ends for C and C++. Depending on demand, installation of the Fortran77, Java, and Ada95 front ends will be completed as well.

The C and C++ front ends are accessed using gcc and g++ respectively. Our current compiler, 2.95.3, will be adequate for all CS course other than CS 351. If you have a CS project, you can rest assured that you can program it on Omega. In fact, what most of you will notice is that much of the code given to you is quite 'lax' when it comes to standards compliance. Most likely compiling this on Omega will result in errors. However, if you are confident with your programming skills, these errors will take seconds to fix. This exercise in programming is highly encouraged.

Icon - Icon Development Environment
http://www.cs.arizona.edu/icon/
Icon is a high-level, general-purpose programming language with a large repertoire of features for processing data structures and character strings. Icon is an imperative, procedural language with a syntax reminiscent of C and Pascal, but with semantics at a much higher level.

ImageMagick - Image Manipulation Programs
http://www.imagemagick.org/

Imagemagick is a set of programs to manipulate various image formats (JPEG, TIFF, PhotoCD, PBM, XPM, etc...). All manipulations can be achieved through shell commands as well as through a X11 graphical interface (display).

Possible effects: colormap manipulation, channel operations, thumbnail creation, image annotation, limited drawing, image distortion, etc...

If you want an extremely convenient way of producing thumbnails of images for your web page, you can use imagemagick to batch process all your images and scale them accordingly. All with one command ...

IPv6 Package
http://www.ipv6.org/
Omega is IPv6 enabled! Feel free to make it your IPv6 playground.
Java Package w/Jikes - Java Developement Kit and Runtime Environment
http://java.sun.com/  &  http://oss.software.ibm.com/developerworks/opensource/jikes/
Jikes is a Java compiler that translates Java source files as defined in The Java Language Specification into the bytecoded instruction set and binary format defined in The Java Virtual Machine Specification. Unlike other compilers, Jikes accepts the Java language only as specified: not as a subset, variant, or superset.

In addition to strictly adhering to specifications, Jikes is faster than most compilers and can compute the complete dependency relations in program files. This allows for the generation of dependency makefiles suitable for use with make. It has also been rumored to not have several memory leaks existing in earlier versions of SUN's compilers.

With Java, one needs all the speed you can get. Jikes provides that speed while giving you the strict adherence to the Java language spec that you need to ensure the "code once, run everywhere" paradigm.

Mailman - Mailing List Manager
http://www.gnu.org/software/mailman/index.html
MySQL - RDBMS
http://www.mysql.com/
Samba - NetBIOS Server/Client
http://us1.samba.org/samba/samba.html
Jakarta Tomcat - Servlet/JSP Container
http://jakarta.apache.org/tomcat/
Valgrind - Memory Leak Checker and Cache Simulator
http://developer.kde.org/~sewardj/
Valgrind is a GPL'd tool to help you find memory-management problems in your programs. When a program is run under Valgrind's supervision, all reads and writes of memory are checked, and calls to malloc/new/free/delete are intercepted. As a result, Valgrind can detect problems such as:
  • Use of uninitialised memory
  • Reading/writing memory after it has been free'd
  • Reading/writing off the end of malloc'd blocks
  • Reading/writing inappropriate areas on the stack
  • Memory leaks -- where pointers to malloc'd blocks are lost forever
  • Passing of uninitialised and/or unaddressible memory to system calls
  • Mismatched use of malloc/new/new [] vs free/delete/delete []
  • Some misuses of the POSIX pthreads API
Additionally, since every memory reference is checked, cache simulation becomes trivial. Ever wanted to know how your program performs on a processor with a Level 2 cache size of 64k that is 8-way set associative?

Students in CS 331 should find this program extremely useful as they are often the most prone to memory problems. (Note: As a TA for CS 331, I've used this program to check for memory errors in submitted projects. It's not pretty ...) CS 470 students will also like valgrind's cache simulator as cache design is a major topic in that course.

w3m - Text-based World Wide Web Browser
http://w3m.sourceforge.net/
w3m is a text-based World Wide Web browser with IPv6 support. It features excellent support for tables and frames. It can be used as a standalone file pager, too. Also, depending on your terminal support, images can be displayed as well.

Gone are the days where lynx was your only choice as a console based browser. You can now use w3m as your browser while logged on and not worry about web pages being butchered by massive use of nested tables. Additionally, new sites based on css lay-outing will also work very well with w3m. Testing your own web sites with w3m will give you a very good indication of how all browsers will handle your site. If it looks decent with w3m, you're pretty much set.