Web Development
Application Development
IT Training
IT Consulting
Internet Site Hosting
System Administration and Maintenance
Security Analysis
 
We can currently provide custom training in the following areas: All our training courses are run on-site and can be customized to meet the client's needs. The following course descriptions are therefore meant as just a basic guide

Linux

General Linux

This course is intended as an introduction to using a Linux system remotely.
Requirements: None
  • Introduction to Linux
  • Connecting to a remote Linux server, e.g. ssh, scp, sftp, ftp, telnet
  • BASH shell usage
    • Overview
    • Built-in commands
    • Command-line control
    • History
    • Advanced command-line editing
    • Control signals
    • Auto-completion
    • Configuration
    • Special characters
    • Sequential commands
    • Redirecting input/output
    • Piping commands
    • Shell variables
    • Background jobs
  • Managing Files and Directories
    • Basic layout
    • Important directories
    • File permissions
    • File/directory commands
    • Wildcards and pattern matching
  • Text Manipulation
  • File Editing using vim or emacs
  • Common commands
  • Advanced commands, e.g. sed, awk, grep
  • Scripting
    • Conditional statements
    • Looping
    • Functions
    • Sub-shells
    • Script parameters
  • Making use of cron jobs


Desktop Linux

This course is intended for people wishing to use Linux on their desktop machine as a replacement for Windows. We assume KDE as the desktop environment of choice, but the course can be modified to cover Gnome instead.
Requirements: General Linux course or similar experience
  • Introduction to the Linux graphical model
  • Using KDE
  • Common KDE applications
  • Evolution as replacement for Outlook
  • Mozilla as replacement for Internet Explorer
  • OpenOffice.org Writer as a replacement for Word
  • OpenOffice.org Calc as a replacement for Excel
  • OpenOffice.org Impress as a replacement for Powerpoint


Advanced Linux

This course is intended for people with previous programming experience, who wish to use a remote Linux server as a development platform. Note that this course does not actually teach any programming language, but shows how to use the tools to develop a number of languages, with a strong emphasis on C++.
Requirements: General Linux course or similar experience as well as previous programming experience
  • Using CVS
  • gcc
  • Introduction to GNU make, autoconf, automake
  • Libraries and linking
  • Debugging with gdb
  • Linux processes and threads
  • Using signals
  • Java
  • Scripted languages such as PHP and Perl
  • Using an IDE
  • Process monitoring and optimization


Linux Administration

This course is intended for people responsible for the day-to-day maintenance and security of Linux servers and would be suitable for someone already familiar with Linux. We assume Red Hat, however, course can be modified for other flavours Requirements: General Linux course or similar experience
  • Duties of the System Administrator
  • The Linux Kernel
  • Installation and configuration of servers, including Kickstart
  • Networking
  • Installation and configuration of application software
  • Keeping patches up to date
  • Creating and maintaining user accounts
  • Backing up and restoring files
  • Monitoring and tuning performance
  • Specific services
    • Samba
    • NFS
    • Apache
    • SSH
    • Mail server
    • DNS
    • DHCP
    • Telnet
    • FTP
  • Securing the server
    • Basics of security
    • Developing a security policy
    • Firewalls
    • Viruses
    • Intrusion detection
    • Using a root jail
    • ssh security
    • VPN



Web Programming

HTML Programming

This course is intended to teach people HTML programming from the basics up to the latest XHTML specification. Also covered are associated technologies such as Javascript and CSS.
  • Basic HTML
  • Text
  • Lists
  • Tables
  • Links
  • Forms
  • Frames
  • Document Object Model
  • Cascading style sheets
  • Javascript
  • Browser compatibility
  • XML
  • XHTML
  • Usability style guidelines
  • Dreamweaver MX


PHP Programming

This course is intended for people with previous HTML experience, who wish to use PHP to generate dynamic web pages.
Requirements: HTML Programming course or similar experience
  • Overview
  • Web integration
  • Data types, variables and expressions
  • Statements
  • Conditional statements
  • Iteration statements
  • Functions
  • Arrays
  • Classes
  • Sessions, cookies and HTTP
  • SQL access
  • String manipulation
  • Regular expressions
  • File access
  • Email
  • Graphical output
  • Security
  • Configuration
  • PHP as a stand-alone scripting language
  • Optimization
  • Gotchas
  • Debugging
  • Zend Studio IDE
  • Case studies
    • Form manipulation with server side validation
    • User authentication
    • Database access



General Programming

C++ Programming

This course is intended for people with some programming experience, who wish to learn C++ object oriented programming. The course can be based around either the latest gcc compiler on Linux, or latest Visual C++ on Windows.
Requirements: Some previous programming experience
  • C foundation
    • Overview
    • Data types, variables and expressions
    • Statements
    • Conditional statements
    • Iteration statements
    • Arrays and null-terminated strings
    • Pointers and dynamic memory allocation
    • Functions
    • I/O
    • Preprocessor
  • C++
    • Overview
    • Classes and Objects
    • Arrays, pointers, references and C++ style dynamic memory allocation
    • Functions
    • Inheritance
    • Virtual functions and polymorphism
    • Stream-based I/O
    • Templates
    • Exception handling
    • Casting
    • Namespaces
  • C standard function library
  • C++ standard class library
  • Object-oriented design principles
  • Optimization
  • Concurrent programming
    • Atomic operations
    • Deadlocks
    • Race conditions
    • Processes and threads
    • Using signals
    • Critical sections
    • Shared memory and semaphores
    • Pipes and FIFOs
  • TCP/IP
    • Blocking versus non-blocking
    • Client-side connections
    • Server-side connections
    • Server design and multiplexing


Perl Programming

This course is intended for people who wish to use Perl as a server scripting tool. While Perl is often used for cgi programming, we focus more on the more general usage.
Requirements: None
  • Introduction to Perl
  • Variables and expressions
  • Statements
  • Conditional statements
  • Iteration statements
  • Functions
  • Arrays, lists and hashes
  • Classes
  • SQL access
  • String manipulation
  • Regular expressions
  • File access
  • Packages and modules
  • Optimization
  • Gotchas
  • Debugging



Miscellaneous

Database Design

This course is intended for people responsible for designing and maintaining a database. PostgreSQL is generally used to demonstrate principles, but Oracle, SQL server or Sybase could be used instead.
Requirements: None
  • Introduction to relational databases
  • ACID - Atomicity, Consistency, Isolation and Durability
  • Simple tables
  • Basic SQL
    • Create
    • Drop
    • Alter
    • Insert
    • Select
    • Update
    • Delete
  • Multi-table queries (joins)
  • Grouping
  • Sub-queries
  • Views
  • Stored procedures
  • Rules
  • Transaction processing
  • Data integrity
  • SQL security
  • Normalization and optimization


Network Design

This course is intended for people responsible for designing and maintaining a medium to large network.
Requirements: None
  • Network architecture principles
  • Network security
  • Wireless networks
  • Deploying networked applications
  • Tools for monitoring the network