Binh Nguyen's Home Page

Email: dtbnguyen(at)gmail(dot)com

Website: http://sites.google.com/site/dtbnguyen/

Blog: http://dtbnguyen.blogspot.com/

LinkedIn: http://au.linkedin.com/pub/binh-nguyen/6/832/934

GitHub: https://github.com/dtbnguyen

This page is rarely and irregularly updated. 

Short Biography

Binh Nguyen was born in Melbourne, Australia. He has multiple undergraduate and postgraduate degrees in multiple fields but his primary interest remains in the IT sector.

His background is strongly biased towards science and mathematics. Nonetheless, he does have an appreciation for the arts, humanities and sport. He has broad experience in IT and a number of his product concepts have been commercialised.

Some of his technical documents have been incorporated into the Linux Documentation Project ("Linux Dictionary" and "Linux Filesystem Hierarchy",  www.tldp.org/guides.html) Furthermore, they are being
used as reference books in many Universities, Colleges and also for professional certification purposes around the world.

Moreover, as can be demonstrated below, his articles and documents have been published in both industry and enthusiast publications, submitted to government, and he has a strong interest in the latest innovations in science and technology.


For samples of his work and an indication of his interests please see his website, blog, etc...

Personal Blog

Sample Citations

Some subjects/courses where his documents are used
"CSC2408 Software Development Tools - University of Southern Queensland", http://www.sci.usq.edu.au/courses/csc2408/semester2/resources/ldp/index.html
"CSC3412 System and Security Administration - University of Southern Queensland", http://www.sci.usq.edu.au/courses/CSC3412/resources/dvdrom/index.html
"CSC3412 - Allan Hancock College", http://www.coursehero.com/sitemap/schools/223-Allan-Hancock-College/courses/761192-CSC3412/
"CIS170 - Introduction to UNIX - Kishwaukee College", http://www.kishwaukeecollege.edu/faculty/dklick/cis170/
"System Administration/Operation - Universitat Politècnica de Catalunya", http://studies.ac.upc.edu/FIB/ASO/llibres.html
"File System Management - Politeknik Elektronika Negeri Surabaya", http://student.eepis-its.edu/~izankboy/laporan/adminlinuxpdf/Manajemen%20Sistem%20Fileppt.pdf
"Design and System and Network Administration - Universidad Rey Juan Carlos", http://gsyc.escet.urjc.es/~cespedes/dasr/
"Operating Systems - James Madison University", https://users.cs.jmu.edu/abzugcx/public/Operating-Systems/Assignments.pdf
"CompTIA Linux Course", http://www.coursehero.com/textbooks/44858-Getting-Started-with-Linux-Novells-Guide-to-CompTIAs-Linux-Course-3060/
"Making the Transition to Linux: A Guide to the Linux Command Line Interface for Students - Washington University", http://clusters.engineering.wustl.edu/guide/guide/more_on_linux.html
"Universidad de Cádiz", http://www.uca.es/centro/1C11/wuca_fichasig_todasasig_xtitulacion?titul=1711
"SUNWAH PerL  LINUX - Training and Development Centre", http://web.archive.org/web/20090604053516/http://www.swpearl.com/eng/scripts/dictionary/
"Notre Dame University", http://ndustudents.com/index.php?dir=Tutorials%2FLINUX+TUTORIAL%2FSome+Unix+Tutorial%2FUnix-PDF-Tutorials%2F&download=Linux-Filesystem-Hierarchy.pdf
"University of Southern Floridia - Polytechnic", http://softice.poly.usf.edu/wiki/index.php/ELSA:lab-03
"Lac Hong University", http://elib.lhu.edu.vn/handle/123456789/5040

Some work where his documents have been cited
"Development of a robot-based magnetic flux leakage inspection system", http://scidok.sulb.uni-saarland.de/volltexte/2011/4420/pdf/Dissertation_Yunlai_Li.pdf
"Remote Access Forensics for VNC and RDP on Windows Platform", http://ro.ecu.edu.au/cgi/viewcontent.cgi?article=1007&context=theses_hons
"A Scattered Hidden File System", http://www.h.kyoto-u.ac.jp/staff/extra/142_hioki_h_0_next/research/DH/files/ashfs_steg04.pdf
"Long-Term Operating System Maintenance", http://www.dtic.mil/cgi-bin/GetTRDoc?Location=U2&doc=GetTRDoc.pdf&AD=ADA479294
"Techniques for the Abstraction of System Call Traces to Facilitate the Understanding of the Behavioural Aspects of the Linux Kernel", http://spectrum.library.concordia.ca/7075/1/Fadel_MASc_S2011.pdf
"Hosting A Server for Education Programming of Web Applications at EPI Ltd.",
http://edice.vos.cz/files/swf/3150_bc_brace_supa_ANG_2010.htm
"Dissertation on Smart Systems", https://wiki.abertay.ac.uk/display/~0400653/Dissertation
"File System Management", http://student.eepis-its.edu/~izankboy/laporan/adminlinuxpdf/4%20sistem%20managementfile.pdf
"Master's Theses and Project Reports", http://digitalcommons.calpoly.edu/cgi/viewcontent.cgi?article=1600&context=theses
"Project Report", http://www.pages.drexel.edu/~nsk62/files/Project_report.pdf

Some work that he has reviewed
"Cryptoloop loop device encryption HOWTO", http://www.tldp.org/HOWTO/html_single/Cryptoloop-HOWTO/#credits
"Mainframe Simulation HOWTO", http://www.tldp.org/HOWTO/html_single/Mock-Mainframe/#AEN31

Sample Technology Documents

Cloud and Internet Security
ABSTRACT

A while back I wrote two documents called 'Building a Cloud Service' and the 'Convergence Report'. They basically documented my past experiences and detailed some of the issues that a cloud company may face as it is being built and run. Based on what had transpired since, a lot of the concepts mentioned in
that particular document are becoming widely adopted and/or are trending towards them. This is a continuation of that particular document and will attempt to analyse the issues that are faced as we move towards the cloud especially with regards to security. Once again, we will use past experience, research, as well as current events trends in order to write this particular report.

Convergence Effect
ABSTRACT

A while back I wrote a document called "Building a Cloud Service". It was basically a document detailing my past experiences and details some of the issues that a cloud company may face as it is being built and run. Based on what had transpired since, a lot of the concepts mentioned in that particular document are becoming widely adopted and/or are trending towards them. This is a continuation of that particular document and will attempt to analyse the issues that are faced as we move towards the cloud especially with regards to to media and IT convergence. Once again, we will use past experience, research, as well as current events trends in order to write this particular report. I hope that this document will prove to be equally useful and will provide an insight not only to the current state of affairs but will provide a blueprint for those who may be entering the sector as well as those who may be using resources/services from this particular sector. Please note that this document has gone through many revisions and drafts may have gone out over time. As such, there will be concepts that may have been picked up and adopted by some organisations (as was the case with the "Cloud" document with several technologies) while others may have simply broken cover while this document was being drafted and sent out for comment. It also has a more strategic/business slant when compared to the original document which was more technically orientated. No illicit activity (as far as I know and have researched) was conducted during the formulation of this particular document. All information was obtained only from publicly available resources and any information or concepts that are likely to be troubling has been redacted. Any relevant vulnerabilities or flaws that were found were reported to the relevant entities in question (months have passed).

Building a Cloud Computing Service

ABSTRACT

As the world moves towards a more globally and electronically connected future, access to the Internet is becoming more commonplace for business, educational, as well as entertainment purposes. Virtually everyone now has a small, mobile device of some sort which will allow them access to the Internet. The concept of "Cloud Computing" was born as a direct consequence of such connectivity and this has resulted in services advancing towards the Internet "Cloud". This allows smaller devices to possess far greater functionality than ever before whether it is via websites and/or other secondary protocols. This document provides advice on how to build a cloud service whether that may be for commercial, educational, and/or more altruistic purposes. It is based on past experience, general knowledge, as well as personal research. It is not intended to be read by people who are new to computing. While it was originally intended only to cover technical aspects of building a cloud service-based company it has since expanded into a document that covers the actual business aspects of building a cloud service-based company as well. It uses Open Source technologies, but takes concepts from all fields.

Linux Filesystem Hierarchy Document

ABSTRACT

This document outlines the set of requirements and guidelines for file and directory placement under the Linux operating system according to those of the FSSTND v2.3 final (January 29, 2004) and also its actual implementation on an arbitrary system. It is meant to be accessible to all members of the Linux community, be distribution independent and is intended to discuss the impact of the FSSTND and how it has managed to increase the efficiency of support interoperability of applications, system administration tools, development tools, and scripts as well as greater uniformity of documentation for these systems.

Linux Dictionary

ABSTRACT

This document is designed to be a resource for those Linux users wishing to seek clarification on Linux/UNIX/POSIX related terms and jargon. At approximately 24700 definitions and two thousand pages it is one of the largest Linux related dictionaries currently available. Due to the rapid rate at which new terms are being created it has been decided that this will be an active project. We welcome input into the content of this document. At this moment in time half yearly updates are being envisaged.

Interview/Article with Brazillian 'Geek' Magazine

Extracts from an article that was written about the Linux Dictionary.

Computer Dictionary

ABSTRACT

The Computer Dictionary is an open source project, released under terms of the Creative Commons ShareAlike 2.0 license, that aims to develop a Docbook XML glossary database containing definitions of computing nomenclature. The primary application for the source is realized in context of Docbook XML-based publishing systems. However, as a desired side-effect, the glossary is also available online as a 'browsable' reference. What makes this project unique is that it is the first free and open glossary database to be developed specifically for use with Docbook XML-based publishing systems.

Sample Scripts and Computer Programs

ID3 MUSIC ORGANISER SCRIPT

These series of scripts are used to organise a group of ripped MP3 files that have ID3 tags but not the correct file and folder names. It does so by calling a series of commands to rename files based on ID3 tag information and then attempts to move or rename files and folders based on artist or album. Using just 'master.sh' you can organise by album/artist but by using 'organise.sh' you can organise based on the more conventional artist/album system as used by Microsoft and Apple.

Either way, Windows Media Player should eventually figure out how to reorganise your files based on the information, files, and folders that are supplied (WMP only seems to get the ID3 tag information based on my recent experience which is why I built these scripts) by these scripts.
 
Obviously, you can run these scripts on an ad-hoc basis and/or you can also run it continuously with a scheduling program such as 'cron'. You also need the following utilities to be installed, id3, eyed3, and uuid-runtime.

As this is the very first version of the program (and I didn't have access to all test data  while I was cleaning this up it may be VERY buggy). Please test prior to deployment in a production environment.

'FIREHOL' UPDATES

Recently, I've been working on various software projects. One of them has involved integrating 'firehol' (a firewall management system) into a larger project of mine (more details later). Even though it is clear that the project was fairly mature it hasn't really been kept up to date of late. One of the main problems in my situation was the automated building of 'RPM' and 'DEB' packages. Digging through the various configuration files it was obvious that there some things that needed changing.

...

As this is the very first version of the program (and I didn't have access to all test data  while I was cleaning this up it may be VERY buggy). Please test prior to deployment in a production environment.

...

NOTE
- the maintainer of the project has been contacted but has thus far not responded to any communication. The file involved is 'firehol-1.273.tar.bz2' downloaded from, http://en.sourceforge.jp/projects/sfnet_firehol/releases/ with the following MD5 checksum, 'cbbe1ba21cf44955827d5c906a55aa21'. For those who are lazy, I've uploaded updated files to:
https://sites.google.com/site/dtbnguyen/firehol-1-0.noarch.rpm,
57455222f6e5d8840bbf019751ade88b
https://sites.google.com/site/dtbnguyen/firehol_1-1_all.deb,
cd083ffa6285ccfc6661f41d78a74da9
https://sites.google.com/site/dtbnguyen/

Mail Quota/My Documents Script

MAIL QUOTA/MY DOCUMENTS SCRIPT

This script is to determine the current mail usage, mail quota, and 'My Documents' levels for an organisation for all users in an organisation by parsing the contents of the Maildir/maildirsize file and doing comparisons between various directory sizes. In this case, 'My Documents' is shared with 'MailDir' and the mail quota size is calculated by querying against an LDAP server. Obviously many files are used for processing and formatting in order to achieve the final graphs and various other statistics. Ultimately, a summary of all these details are sent to sysadmin@company.com

Obviously, you can run this script on an ad-hoc basis and/or you can also run it continuously with a scheduling program such as 'cron'. You also need the following utilities to be installed, gnuplot, ImageMagick, and ldapsearch.

http://adminschoice.com/crontab-quick-reference
http://www.math-linux.com/spip.php?article45

As this is the very first version of the program (and I didn't have access to the original server while I was cleaning this up it may be VERY buggy). Please test prior to deployment in a production environment.

MAIL OVER SCRIPT

This script is to determine the current mail usage and quota levels for an organisation for all users in an organisation by parsing the contents of the Maildir/maildirsize file. The results are not perfect since it doesn't examine every component of this particular file but in most cases it will provide you with a fairly good overview of what is currently going on. It outputs two files. One is mailq.txt which provides an overview of email use in the entire organisation while mailqo.txt provides details of only those people who are currently over 80% usage of overall mail quota (a sample from these files is provided below). It will then send a copy of these reports to sysadmin@company.com

As this is the very first version of the program it may be VERY buggy.  Please test prior to deployment in a production environment.

LDAP Password Script

LDAP PASSWORD SCRIPT

This script is designed to generate and then implement new passwords for users network wide via LDAP scripts. The format for the input file (users.txt) is "Username SomethingElse" while the format for the output file (passwords.txt) is "Username Password".

As this is the very first version of the program it may be VERY buggy.  Please test prior to deployment in a production environment.

Idle Watch Program

IDLE WATCH

This work is a continuation from that of a German programmer who originally intended to warn (and subsequently automatically logout) users who were idle during terminal sessions. The original tarball is available from the following location and is also included in this tarball for reference.

http://www.filewatcher.com/b/ftp/ftp.mao.kiev.ua/pub/software/Linux/system/admin/idle.0.0.html

Several modifications have been made to the original program. First, this version runs entirely 'silently' (there is no indication to the end user that the program is running). Second, it does not log users out. Third, the file which holds the usernames of those users to be excluded from monitoring has been changed from /etc/nologout to /etc/idle_nolog.

As this is the very first version of the program it may be VERY buggy.  Please test prior to deployment in a production environment.

Elastix Batch Extensions Script

ELASTIX BATCH EXTENSIONS SCRIPT

This script is designed to create a group of extensions suitable for export to the Elastix PBX phone system. Information required for extension creation is taken from names.txt which contains names of people in the format of "FirstName LastName" on each line as well as the variable EXT which is the starting extension in the sequence. A suitable CSV file for import can then be used by logging into the Elastix web interface and then going to PBX -> Batch Extensions.

As this is the very first version of the program it may be VERY buggy.  Please test prior to deployment in a production environment.

Zarafa Address Book Script

ZARAFA ADDRESS BOOK SCRIPT

This script is designed to extract information required for an Address Book from an OpenLDAP database and then produce a suitable CSV file for import into an address book such as those used by Outlook, Thunderbird, and Zarafa.

As this is the very first version of the program it may be VERY buggy.  Please test prior to deployment in a production environment.

LDAP Report Script

LDAP REPORT SCRIPT

This script is designed to generate LDAP text and PDF reports to send to a particular end email address (in this case, sysadmin@company.com) based on a LDAP query of a particular server named (funnily enough) ldap. Please modify to suit your particular circumstances. It is designed to be used from the BASH shell and the gcc compiler is required in order to compile the text2pdf.c program.

As this is the very first version of the program it may be VERY buggy.  Please test prior to deployment in a production environment.

MakeVPN for DD-WRT Script

MAKEVPN FOR DD-WRT SCRIPT

This script is designed to generate an OpenVPN configuration suitable for use with DD-WRT on a Linksys WRT-54GL wireless router. Please modify to suit your particular circumstances. It is designed to be used from the BASH shell.

As this is the very first version of the program it may be VERY buggy.  Please test prior to deployment in a production environment.

LDAP Backup Script

LDAP BACKUP SCRIPT

Please note that this is a port of an existing script produced by J. P. Block for the Mac OS X Operating System and is designed backup your OpenLDAP database. It can be run via cron jobs as well as manually.
http://havegnuwilltravel.apesseekingknowledge.net/2005/02/automatically-back-up-your-ldap.html

As this is the very first version of the program it may be VERY buggy.  Please test prior to deployment in a production environment.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Outlook Roaming Profile Compatibility Script

OUTLOOK ROAMING PROFILE COMPATIBILITY SCRIPT

One of the biggest problems with using Microsoft Outlook on a computer network using roaming profiles is the fact that settings aren't saved because of the location where these settings are normally saved. These scripts are designed to address these particular problems by moving them to the correct locations on logon/logoff. 

To use them open up gpedit.msc, User Configuration > Windows Settings > Scripts Logon/Logoff and then select the relevant logon files for logon/logoff. Obviously, you'll need a Perl interpreter for these scripts to be run. A good, free choice is ActivePerl, http://www.activestate.com/activeperl/

As this is the very first version of the program it may be VERY buggy.  Please test prior to deployment in a production environment.

Roaming Profile Cleaner

ROAMING PROFILE CLEANER

In a roaming profile environment one of the problems faced by users and administrators alike is dealing with the people who go over their size limit. There are a number of ways to deal with this particular problem. One is to increase their roaming profile size limit, another is to tell users to delete their files every once in a while. These scripts, (one for use in a Linux environment and the other for a Windows environment) are designed to delete as many files as safely possible to keep users under quota. As this is the very first version of the program it may be VERY buggy. Also please, check that the files being deleted aren't important to users in your particular environment and that the starting directory from which files are being deleted are correct. Obviously, you'll need a Perl interpreter for these scripts to be run. A good, free choice is ActivePerl, http://www.activestate.com/activeperl/

X-Lite Roaming Profile Settings Saver

X-LITE ROAMING PROFILE SETTINGS SAVER

One of the biggest problems with using X-Lite on a computer network using roaming profiles is the fact that settings aren't saved because of the location where these settings are normally saved. These scripts are designed to address these particular problems by moving them to the correct locations on logon/logoff. 

To use them open up gpedit.msc, User Configuration > Windows Settings > Scripts Logon/Logoff and then select the relevant logon files for logon/logoff. Obviously, you'll need a Perl interpreter for these scripts to be run. A good, free choice is ActivePerl, http://www.activestate.com/activeperl/

As this is the very first version of the program it may be VERY buggy.  Please test prior to deployment in a production environment.

SRHC, Simple Rapid HOWTO Creator

SRHC, pronounced 'SHR-C', Simple Rapid HOWTO Creator

This shell script provides a rapid means by which to write an XML Docbook conforming document suitable for submission to the LDP (Linux Documentation Project), http://www.tldp.org. As this is the very first version of the program it is VERY buggy. It is also extremely limited in that it currently does not encode character entities, nor does it check whether your input is vaild or not. To use it place it in an empty folder, run it, and follow the prompts. At this stage I do not think that I will be developing this program further. However, I consider the source to be extremely simplistic and that if someone were willing to apply themselves quite good markup could be created. This program is distributed under the terms of the GNU GPL License.

Linux-Dictionary-Tools

TOOLS FOR EDITING THE 'LINUX DICTIONARY'

These tools are designed to aid people in the editing and modification of the 'Linux Dictionary', http://www.tldp.org/LDP/Linux-Dictionary/

SpeechSuite

SPEECH SOFTWARE PROJECT

The SpeechSuite group of programs is basically an attempt at using speech recognition/synthesis in real world applications. It is currently composed of three programs :-

  • GUIShellTutor

 GUIShellTutor is an extension of the GUIShell project whose primary aim is to make the shell interface more useable. The key differences though are that it possesses a speech synthesis and recognition capability. Also there is no 'real program'. All the source code is generated by the runme.sh file. Though this is slow it will call other scripts which will search through the entire system based on your PATH environment, get their 'whatis' descriptions, sort them and format them. During this process all files are stored in *.tml files. Finally, the file is split alphabetically and stored in *.bml files. After this, the Java source code is created and moved into their correct locations, 'ant' (a more advanced version of 'make' and was designed with Java in mind) is called and the main interface is brought up. Please note that for the speech capabilities (and hence this program) to work the 'festival', 'ant', and 'sphinx' programs must be installed in accordance with the instructions below. Note that you only need to run the runme.sh script once, thereafter you can simply launch the GUIShellTutor main interface via 'java GUIShellTutor' or any of the 'letters' via 'java -jar bin/(Some Letter)Digits.jar' from the location of your sphinx installation. 

  • HouseDigits

HouseDigits is a program that provides a more user friendly interface to the k74 command line program. However, it is also designed specifically to be used with Binh Nguyen's Home Control Prototype Device (HCPD), a device which provides a real world example of an aesthetically pleasing and truly inexpensive voice activated power control mechanism. To run the program just type 'java -jar bin/HouseDigits.jar' Please note, that if you wish to run HouseDigits it is advisable for you to install the enhanced k74 program available on this webpage.

  • CustomDigits

CustomDigits allows you to run customised commands. The interface is identical to that of GUIShellTutor. However, in order to run customised commands you must first alter the Custom.bml file and organise it so that each line is composed of a command, a tab, and then a description of that command. After doing so, run the runme.sh script, and to run CustomDigits just type 'java -jar bin/CustomDigits.jar'

At this stage I don't think I'll be developing this suite of applications further. However, if there are enough people who want it, I'll consider it.

Lizzy

COMPUTER CONVERSATION SIMULATOR

Lizzy is an extension to the Java implementation of Eliza written by Charles Hayden, http://www.chayden.net/eliza The primary enhancement is that it also possesses a voice synthesis capability providing for a more realistic and engaging computer conversation simulation experience. To 'speak' with Lizzy, simply type your topic of conversation into the textfield at the bottom of the window and click 'OK'. Operation of the rest of the program should be intuitive. It should be noted that in order for the speech synthesis capability and hence this program to work it is required that 'festival', http://www.cstr.ed.ac.uk/projects/festival/ be installed.

K74

PARALLEL PORT UTILITY PROGRAM

This version of the K74 program is designed to be specifically used with the SpeechSuite group of programs and Binh Nguyen's Home Control Prototype Device (HCPD), a device which provides a real world example of an aesthetically pleasing and truly inexpensive voice activated power control mechanism.

Configuration Cleaner

CONFIGURATION CLEANER

This script is designed to address the the problem of having a cluttered home directory full of "dotfiles". It basically moves all of your configuration files into a .etc directory which is located in your home directory and creates symblic links to them so that existing applications remain unbroken. This is a first release so there may be bugs. You should be in your home directory as you run it. However, I've left this condition out so that you may test it on a non-critical directory before trying it in your home directory. To use the new layout run the program with the "new" parameter. To revert to the old layout run it with the "old" parameter.

GUIShellTutor

README

GUIShellTutorFast

READMEFast.txt

VOICE RECOGNIZING/SYNTHESISING PROGRAM LAUNCHER/SHELL

This program is an extension of the GUIShell project whose primary aim is to make the shell interface more useable. The key differences though are that it possesses a speech synthesis and recognition capability. Also there is no 'real program'. All the source code is generated by the runme.sh file. Though this is slow it will call other scripts which will search through the entire system based on your PATH environment, get their 'whatis' descriptions, sort them and format them. During this process all files are stored in *.tml files. Finally, the file is split alphabetically and stored in *.bml files. After this, the Java sourcecode is created and moved into their correct locations, 'ant' (a more advanced version of 'make' and was designed with Java in mind) is called and the main interface is brought up. Please note that for the speech capabilities (and hence this program) to work the 'festival', 'ant', and 'sphinx' programs must be installed in accordance with the instructions included in the README file. Note that you only need to run the runme.sh script once, thereafter you can simply launch the GUIShellTutor main interface via 'java GUIShellTutor'or any of the 'letters' via 'java -jar bin/(Some Letter)Digits.jar' from the location of your sphinx installation. GUIShellTutorFast is a version of GUIShellTutor that speeds up generation of code by a factor of four. 

Sample Technology Devices

Instructions for building the HCPD (PDF Format)

INSTRUCTIONS FOR BUILDING THE HCPD (HOME CONTROL PROTOTYPE DEVICE)

There currently exist many solutions by which to achieve home automation. However, in my opinion these solutions are either prohibitively expensive or are well.... ugly. With these issues in mind the Home Control Prototype Device (HCPD) was born. It basically makes use of the K74v2 PCB from, http://www.kitsrus.com and the associated software created by James Cameron, http://quozl.netrek.org. Please note, that the instructions that follow will be rather spartan given that I will assume that most people will have their own interpretation of how their device should look. Also, note that I am not a qualified electrical technician and that the wiring looks a bit peculiar due to my lack of materials. Please read this entire document (most especially the Disclaimer) before you make a decision as to whether you would like to build such a device.

Sample Technology Articles

Fedora 9 (Networking & Firewall Setup) 

These articles focus on mechanisms through which one can establish network connectivity and the basic steps towards building a firewall in Fedora 9.

The Future of the Linux Desktop

Steve Ballmer once said that "innovation is not something that is easy to do in the kind of distributed environment that the open-source/Linux world works in". He argued that Microsoft's customers "have seen a lot more innovation from us than they have seen from that community" and that "Linux itself is a clone of an operating system that is 20-plus years old...." (http://rss.com.com/2008-1082-998297.html).

Indeed, I must agree with most of what he says. However, it is not without some derision that I do so. After all, if we were to examine the core of the Microsoft Operating System we could also come to the same conclusion. For example, the basis for the latest and greatest iteration of the Microsoft Operating System, 'Windows XP' is itself based on the Windows NT kernel which was conceived some 20-25 years ago. The GUI (Graphical User Interface) that has become so ubiquotous and at times beguiled is nothing more than an evolution of what was created at XEROX Parc Laboratories some 30 years ago and TCP/IP? Well, we all know about that.... 

Shell Talk

A few months ago we were asked to complete a program that was supposed to increase the usability of the Linux/UNIX shell interface as a university project. The basic idea was to provide a GUI (Graphical User Interface) that would give access to the most commonly used utilities on the command line, their options, as well as making the interface as usable and intuitive as possible. We were given a rough idea of how it was to be implemented and all in all most people ended up creating a very basic file manager like interface with a set of buttons representing commands running down the left hand side, a group of options represented as checkboxes next to them and then a command line at the bottom of the window which would allow for manual typing/editing of commands....

Can GNU/Linux (Commercially) Survive?

A recent post to a local LUG mailing list made set my mind wandering. The predicament was thus, believe it or not, an enterprise class server, a system worth tens of millions of dollars was purchased without an operating system. Furthermore, the proprietary operating system that was originally intended to be used and optimised for that machine was substantial to say the least (approximately $40000 AUSD). Hence, this user wanted to know whether Linux could be run on such a system. In short, the answer was yes. However, compromises had to be made but since this is not the topic that I wish to discuss I shall not delve into this issue any further. 

In light of recent events, (especially in regards to SCO and its efforts to litigate IBM, Novell, all in all, almost the entire Linux world) I have had to begin to question the very nature of open source, how it has managed to alter the face of computing and most importantly, its impact upon software developers...

A Short Walk Through /usr

The /usr directory usually contains by far the largest share of data on a system. Hence, this is one of the most important directories in the system as it contains all the user binaries, their documentation, libraries, header files, etc.... X and its supporting libraries can be found here. User programs like telnet, ftp, etc.... are also placed here. In the original Unix implementations, /usr was where the home directories of the users were placed (that is to say, /usr/someone was then the directory now known as /home/someone). In current Unices, /usr is where user-land programs and data (as opposed to 'system land' programs and data) are. The name hasn't changed, but it's meaning has narrowed and lengthened from "everything user related" to "user usable programs and data"....

Linux-on-the-HP-NX5000 (PDF Format)

This document will review Linux on the HP NX5000 laptop computer. Supposedly, the first ever laptop to be designed with Linux in mind by a major computing company.

Sample Golf Articles

My-Golf-Swing (PDF Format)

The culmination of this work was borne out of the frustration at the inability of a person (myself) to be able to hit a golf ball consistently in the same direction whether that may be at the driving range or on the golf course. Even though I had tried to mimic various different mechanical techniques such as those used by Hogan, Snead, Duval and even several different types of mental techniques such as those proposed by Chopra (2003) and Gallwey (1981), I could never gain any consistency from day to day without either practicing constantly or completely immersing myself in the golfing experience via continual exposure to the sport whether that may be via watching television tournaments or even having a golf club near me at all times. Hence, I set about finding a way through which any golfer (primarily myself) could reduce the golf swing to a small number of key steps (much like Hogan did in his seminal work, Ben Hogan's Five Lessons - The Modern Fundamentals of Golf) so that he could theoretically play golf as little as twice a month and yet still be able to play reasonably competent golf (i.e. Score in the mid 80's and high 70's on the assumption that they have reasonable short games already). The target audience for this manuscript is primarily myself (just in case I forget how to swing a golf club) as well as golf enthusiasts who would an insight into how I have attempted to develop a swing myself or would like some ideas on how to further develop their own swing. Please note that I am not a professional golfer or instructor nor do I have intention becoming one. Golf was and continues to remain a marvellous curiosity in my life and will continue to remain so. As such, this document will be updated as time goes by based on my perception of what a golf swing should be (for me). Further, while this document provides a fairly good overview for what I believe a golf swing should feel and look like it is not a comprehensive manual for each and every person. If possible and whenever there are competent and ethical professionals near by, by all means seek their help. They have spent years studying existing methodologies and understand what techniques may suit your existing physical and mental capabilities.

Creating-Power (PDF Format)

The purpose of this article is to provide an overview of various different methods by which to generate power through technical/mechanical alterations to one's golf swing.

Creating-Spin (PDF Format)

The purpose of this article is to provide details of several methods of generating spin using wedges.

Improving-Golf (PDF Format)

The purpose of this article is to provide details on how to improve the game of golf (especially at the amateur level).

Favourite-Golf-Links (PDF Format)

This document is essentially a collection of websites and forums that I have found to be informative and worthwhile. As one can see, there are no manufacturers or company websites listed here. For the most part, these websites and forums are run independently so most information can be assumed to be relatively unbiased.

Shot-Shaping (PDF Format)

The purpose of this article is to provide details of several methods on shot shaping. That is, techniques through which one will be able to manipulate the trajectory of the ball such as causing the ball to spin left to right or changing the height of your ball flight. IT IS ASSUMED THAT YOU ALREADY HAVE A CONSISTENT SWING.

Running-Chip (PDF Format)

The purpose of this article is to provide details of several methods on playing the running chip shot.

Tension-in-Golf (PDF Format)

The purpose of this article is to explore some of the issues that can be caused by tension in the golf swing.

Wedge-Distance-Control (PDF Format)

The purpose of this article is to explore methods through which to control distance (especially with regards to pitch shots which seems to be weakness of many amateurs that I've seen).

Review-of-Paper-Tiger (PDF Format)

This is a simple review of the book entitled, Paper Tiger by Tom Coyne. (2006)

Learning-Through-Feel (PDF Format)

The purpose of this article is to outline some of the reasons why I believe learning through feel in combination with conventional teaching methods is superior than purely through conventional positioning techniques alone.

Staying-In-Sync (PDF Format)

The purpose of this article is to explore methods through which to achieve better synchronisation in the golf swing.