Installing Proprietary nVidia Drivers on Ubuntu Linux
Spooky Case of the Wem Ghost
A Simple 2D Terrain Model
Reading Email with PHP and IMAP/POP3
Garmin Edge 205 GPS Cycle Training Tool
Tank Wars in G3D
Dynamically Adding Elements to a Form with JavaScript
Most web forms are static, as it's known in advance exactly what fields the form should show. In some cases however, you need a form that permits the user to enter a variable number of fields. Using JavaScript, you can add a button which the user can press when they need extra form fields. The button must trigger a JavaScript function to add the extra elements using the JS DOM.
Making Multiple Simultaneous Requests with AJAX in JavaScript
This article looks at how we can iterate through a set of different items on a page using JavaScript, and get further information on each in the background via AJAX. Once the AJAX calls get the extra information, we can update the items on the page. What is different about the approach shown here to others you may be accustomed to is that multiple AJAX requests are made simultaneously, allowing us to retrieve information for an indeterminate number of page items at once, allowing us to keep multiple content zones independently updated.
Graphs and Charts in PHP using PEAR Image Graph
There are many 3rd party solutions out there for drawing charts and graphs in PHP. Some are a little ropey, many are over-priced (particularly for commercial users). My research into what is available boiled down to the Image_Graph package in the PEAR repository, and a PHP class called PHPlot from a guy named Miguel de Benito Delgado. Miguel's code offers the benefits of compactness - you only need add a single PHP file to your site in order to use his drawing functions. This single file defines the PHPlot class, and is admittedly over 4000 lines long. To draw charts with PEAR on the other hand, you need all the associated base PEAR classes, and set up is a fair bit more drawn out. However, the PEAR solution is considerably more versatile allowing a huge range of charts.
Selected JavaScript Fun and Goodness
Here's a sample of JS code for allowing users to choose multiple items from a list of available options. There are many examples of code like this, however this example has the enhancement of keeping the lists well organised. To do this, we need to find the parent OPTGROUP that contains a selected OPTION, and we also need to insert a new OPTION in a specific OPTGROUP of a SELECT list.
MySQL Coolness
Cool stuff in MySQL includes some conditional functions. These can be very useful and all that. Here's a quick run down of usage.
Useful Ubuntu Linux Commands
Linux commands can be far from intuitive, with files related to a single application seemingly scattered throughout various locations, such as usr, bin, etc, var. This can make it difficult to recall how to invoke certain essential but not every-day commands. This page lists these commands in a single place.
Installing and Configuring Zen-Cart
Zen Cart is an Open Source e-commerce solution. It includes an admin CMS, which allows a non-tech end-user to change many options on their site. This article looks at the low-level tasks that must be completed before a site is ready to be finalised by the end-user.
Reformat PHP code with RegEx in Eclipse, Dreamweaver etc
Eclipse and Dreamweaver both support regular expressions in search and replace. This is an immensely powerful and useful feature that makes otherwise tedious replacement tasks a breeze. In this article, a few expressions for some useful search / replace tasks are illustrated. Dreamweaver's regular expression search and replace is particularly handy for developers because you can do multi-line search and replace, and you can search and replace over an entire site or selected files in the site at once.
MySQL's Greatest Date and Time Functions
A quick run down of MySQL's date and time functions. These can be a little confusing, and there is a little overlap between several of them. This article looks at the most useful ones. Note that in all the following functions, "date" denotes a column which can usually be of DATE, TIME, TIMESTAMP or DATETIME type.
Could a Machine Fix Errors in its own Rationality?
This question was one I chose to tackle during my University degree, as part of a Philosophy of Cognitive Science module. The assessed component involved devising a suitable question to use as the subject of an essay. Rather than trying to answer the question, students were required to propose six possible theories which might apply.
Database Design: Normalization vs. Denormalization
There's a long-running debate on whether database normalisation is really the holy grail of database design, or whether denormalised data provides worthwhile performance benefits. This article is a good rundown of the state of play.
Colin King's blog, an Ubuntu Kernel Engineer
This blog contains some interesting insights into the Ubuntu dev process. Also the typical assorted mix of posts on various aspects of random tech found on any geek's blog.
Overview of OOP in JavaScript
JavaScript's OOP paradigm is substantially different to OOP in other languages such as PHP, C++ and Java. It's not founded on the bedrock of a class hierarchy that tightly defines templates that individual objects then implement as in those languages. <click to read more...>
Decentralized BitTorrent network
Article about a decentralized BitTorrent network being developed by researchers at Delft University of Technology. Their Tribler client doesn’t require torrent sites to find or download content, as it is based on pure peer-to-peer communication. <click to read more...>
Cool Components electronic components supply
Cool Components is an electronic component supplier based in South London offering cheap components to hobbyists. They sell a good range of Arduino parts, and seem to be reliable and prompt.