My Skillset
I have a wide ranging set of skills in using open source software. I also have a BTEC HNC in Commercial Data Processing. Here is a listing of some of my current skills.
I have been designing, building and upgrading my own web servers in my spare time since late 2000. This site lives on a server I built, administer and maintain.
I have been running SuSE Linux since version 5.2, 1999. Linux has come along way since then. Confident in installing and configuring the Linux OS, including the XWindows system, and KDE desktop environment for Linux.
My preferred Linux system at the moment is Fedora Core - which is sponsored by Red Hat, and is what Red Hat Enterprise Linux is based on.
Confident with installing Apache from source code. This includes configuring the source code and compiling in required modules. I administer Apache on this site.
This covers quite a wide area, as follows:
- Installation and configuration of the database server, and client programs that communicate with the server.
- Creating users and administering their access permissions to the database.
- Database design using table normalisation techniques.
- Writing optimised code that will interact with the database, to add records, update records, remove records, or get records from the database, for use in database-driven web applications.
- Checking database tables for integrity, and safely backing up the database.
- Monitoring the performance of the database server, and implementing any optimisation techniques necessary, via configuration files.
Unlike procedural programming, OOP uses discrete data structures that contain the data to be manipulated, and the related functions/methods to process that data. The data inside each object is only accesses via the object's interface.
An object's interface is the collection of methods that can be called from outside the object. It is bad practice to manipulate the object's data by bypassing the interface.
This is one of the main principles of OOP - code to an interface, not the implemented code behind the interface.
That way, if the implementation of the code inside the object changes, the object still provides a consistent interface to the outside world. So code that uses the object does not have to be changed.
I found this book very helpfull in explaining the terms used in Object Oriented Programming: OOP Demystified by James Keogh & Mario Giannini.
Lyx is a program used to produce nice DVI and PDF documents.
LyX is a document processor that encourages an approach to writing based on the structure of your documents (WYSIWYM) and not simply their appearance (WYSIWYG). LyX combines the power and flexibility of TeX/LaTeX with the ease of use of a graphical interface.
On screen, LyX looks like any word processor; its printed output - or richly cross-referenced PDF, just as readily produced - looks like nothing else. LyX Document Processor
To be updated.
To be updated.
To be updated.
To be updated.
To be updated.
To be updated.
PHP is mainly focused on server-side scripting, so you can do anything any other CGI program can do, such as collect form data, generate dynamic page content, or send and receive cookies. But PHP can do alot more than that.
One of the strongest and most significant features in PHP is its support for a wide range of databases. The following databases are currently supported:
Adabas D, InterBase, PostgreSQL, dBase, FrontBase, SQLite, Empress, mSQL, Solid, FilePro (read-only), Direct MS-SQL, Sybase, Hyperwave, MySQL, Velocis, IBM DB2, ODBC, Unix dbm, Informix, Oracle (OCI7 and OCI8), Ingres, Ovrimos.
With PHP there is not much that you cannot do on the server - if the OS supports it, then PHP should also be able to do it.
To be updated.
This is the basic language that web pages are built from.
CSS rules allow a website designer to set the visual style of parts of a page (the way an element 'looks'), and it's position on screen, for all elements of all pages in a website.
For each part of a web page, values such as background color, background image, border size, border style, border color, font style, font size, margin dimensions, padding size, positioning, tables and their elements, and text color, can all be set by using CSS rules in one style sheet. This makes altering the visual style or position of page elements really easy.
Any changes to a style sheet rule will be reflected for all elements that use that rule, across all pages of the website.
Javascript is a scripting language built into most modern web browsers. With Javascript you can check the data a user inputs into a form, and display a popup window to alert the user of any invalid input, before the form is submitted to the server.
You can also change the visual style properties of a web page's component parts in response to a user's interaction with the browser. This is often referred to as Dynamic HTML.
When a browser loads a document, the browser builds a representation of the document's structure in memory, called the DOM (Document Object Model). The browser then uses the DOM in computer memory to display the document in the browser window.
The browser can detect any alterations made to the structure of the DOM by Javascript, and immediately update the page in the browser window, with the new values of the DOM. This is how Dynamic HTML works.
This not a technology, but a term refering to the use of HTML, CSS and Javascript. This is used to create 'dynamic' web sites, that make web pages appear more interactive to the user.
DHTML allows a website designer to change the content or presentation style of a web page, by using javascript to alter the DOM, in response to a user's interaction with the page. This can make the page appear more responsive and user friendly.
Any part of a page can be altered or removed, or hidden from view and made visible again.
The presentation style of any page element can be modified dynamically. For example, changing the border color of a form element into which a user has entered invalid data.
Packet filtering (aka firewalling) is most commonly used as a first line of defense against attacks from machines outside your LAN. Packet filtering allows you to explicitly restrict or allow packets by machine, port, or machine and port. For instance, you can restrict all packets destined for port 80 (WWW) on all machines on your LAN, except for the machine that is designated as your web server.
Most modern routing devices have built-in filtering capabilities, and packet filtering has become a common method of security for machines connected to the internet. Although packet filtering is very flexible and powerful, by no means does it guarantee the security of your LAN, but it does go a long way toward protecting it.
Javascript has a built-in XMLHttpRequest object which can send data to, and request data from, a web server. This allows part of an xhtml page to send a request in the background to the web server that the original page came from.
When the browser receives the data requested from the server, The browser can then use DHTML to update the current page with the new data received from the server. This is usually alot quicker than reloading a complete new page from the server.
TMDA is an open source software application designed to significantly reduce the amount of spam (Internet junk-mail) you receive.
The technical countermeasures used by TMDA to thwart spam include:
- whitelists: - accept mail from known, trusted senders.
- blacklists: - refuse mail from undesired senders.
- challenge/response: - allows unknown senders which aren't on the whitelist or blacklist the chance to confirm that their message is legitimate (non-spam).
- tagged addresses: - special-purpose e-mail addresses such as time-dependent addresses, or addresses which only accept certain kinds of communication. These increase the transparency of TMDA for unknown senders by allowing them to safely circumvent the challenge/response system.
This combination was chosen based on the following assumptions about the current state of spam on the Internet:
- You cannot keep your email address secret from spammers.
- Content-based filters can't distinguish spam from legitimate mail with sufficient accuracy.
- spam will not cease until it becomes prohibitively expensive for spammers to operate.
To maintain economies of scale, bulk-mailing is generally:
- An impersonal process where the recipient is not distinguished.
- A one-way communication channel (from spammer to victim).





