Generated by All in One SEO v4.9.10, this is an llms.txt file, used by LLMs to index the site. # rickogden.com ## Sitemaps - [XML Sitemap](https://rickogden.com/sitemap.xml): Contains all public & indexable URLs for this website. ## Posts - [Blog](https://rickogden.com/blog/) - [Year of Code - The Road to Rachmaninoff](https://rickogden.com/blog/2014/02/07/year-of-code/) - As many people know, I'm a musician as well as developer. I love playing and writing music just as I love creating code. As well as a developer I also work in higher education where I teach programming. First of all, I want to say I fully support initiatives which encourages people to learn to - [Custom Linux Shutdown Scripts](https://rickogden.com/blog/2013/12/04/custom-linux-shutdown-scripts/) - Everyone knows one of the beauties of Linux (and FOSS in general) is the ability to delve in and change functionality for your own requirements. I was having an issue where a standard "poweroff" or "halt" was not shutting the computer down properly, so I needed to write my own scripts to replace them. On - [Geolocation Library](https://rickogden.com/blog/2013/08/07/geolocation-library/) - In development of my generic geosocial media engine, part of the task was to develop a Geolocaiton library for geospatial calculations. This has since been developed and released at https://github.com/rickogden/Location. This contains a variety of geospatial classes: Point, Line, Multipoint Line, Polygon. On top of these it has a Distance class which is used to output - [Beginners Guide to Object Orientation with PHP](https://rickogden.com/blog/2009/10/12/beginners-guide-to-object-orientation-with-php/) - I have uploaded my conference talk (plus source code) on a Beginners Guide to Object Orientation with PHP to the tutorials section of my website, please have a look and leave feedback. I will be writing a post about PHPNW09 very shortly. - [Updated Ubuntu FreeNX Install Script](https://rickogden.com/blog/2009/11/18/updated-ubuntu-freenx-install-script/) - I've just updated the FreeNX install script to download and install the latest version of the NX Client from NoMachine. If you have used the previous version of this script, then you can just execute this version and it will automatically update your NX Client. Download the latest version from here. - [Zend_Auth Pam Adapter](https://rickogden.com/blog/2009/11/16/zend_auth-pam-adapter/) - A while ago for work I wrote a plugin for Zend Framework. It was an adapter for Zend_Auth that authenticated against PAM for authentication of local users through a web interface. So I have decided to release it in the hope that there will be other people out there who find it useful. Please visit - [Breadth Vs Depth](https://rickogden.com/blog/2009/11/06/breadth-vs-depth/) - Something that I've recently been thinking about a lot is what should be taught at Universities, particularly in my area (Computer Science). What has been bugging me is trying to think about the balance between coverage and detail. Is there a bias as in you should focus more on one and not the other, or - [FreeNX Installation Script for Ubuntu](https://rickogden.com/blog/2009/11/02/freenx-installation-script-for-ubuntu/) - I have introduced a Labs section to my site. This section will contain on going projects, applications and scripts which I am working on for people to play with a leave feedback. At the same time I have added a script to the section, which automatically downloads and installs FreeNX onto an Ubuntu system. The - [Welcome](https://rickogden.com/blog/2009/10/10/welcome/) - Welcome to my new website. There is not much on it at the moment, but that will change over time. This site is going to include tutorials, presentations, scripts and other things which I have written, and also information about what I am doing (in music and technology). Please bear with me while I finish - [PHPNW09 Conference](https://rickogden.com/blog/2009/10/12/phpnw09-conference/) - What a thoroughly enjoyable (and tiring) weekend I had at PHPNW09. Met many people from last conference/test fest, and many new people as well. On top of the drinking, socialising, networking, eating side of things, I actually saw some talks as well! So I thought I'd post a quick run down of who I saw. - [Sweeping Generalisations](https://rickogden.com/blog/2009/10/20/sweeping-generalisations/) - This is the first of what will be many rants on this site. This is my loathing of sweeping generalisations. Now, I realise that sentence in itself is contradictory, but why is it that the people who are ignorant about something completely dismiss it? I am not saying that I have never made any sweeping - [960 Grid System Tutorial](https://rickogden.com/blog/2009/10/23/960-grid-system-tutorial/) - The more astute among you may have already spotted that I've uploaded a new tutorial to the talks/tutorials section. This talk is for 960 Grid System, a CSS Framework that is very easy and flexible. Here is the tutorial. - [Talking at PHPNW - 1st December](https://rickogden.com/blog/2009/11/19/talking-at-phpnw-1st-december/) - Just to let you know that at the next PHPNW meeting I will be giving an extended version of my talk: Beginners Guide to Object Orientation in PHP, which I gave at the PHPNW09 conference. For those who don't know, this is held in Revolution on Deansgate Locks in Manchester, and starts at 7pm on - [Project Catharsis](https://rickogden.com/blog/2009/11/20/project-catharsis/) - Something I have not yet mentioned here is the music side of my life. Music is incredibly important to me, having been playing instruments from the age of 6. The one instrument that I have stuck with ever since that age is the piano, which I absolutely adore. As well as playing for bands, I - [PHPNW Talk Reminder - Tuesday](https://rickogden.com/blog/2009/11/26/phpnw-talk-reminder-tuesday/) - Just to remind you all that I will be doing a talk this coming Tuesday at PHPNW, 7pm Revolution, Deansgate Locks, Manchester. It is an introduction to object oriented programming in PHP. If you are interested please come along! Here is the upcoming link - [(An Extended) Beginners Guide to Object Orientation in PHP](https://rickogden.com/blog/2009/12/14/an-extended-beginners-guide-to-object-orientation-in-php/) - Those of you who were that the PHPNW09 conference on the Sunday morning may have seen my talk on Object Oriented PHP. At the beginning of the month I gave a talk at the PHPNW user group which was based on the original talk, but slightly extended. Here are the slides - [Arithmetic in Bash](https://rickogden.com/blog/2009/12/23/arithmetic-in-bash/) - Bash is not exactly brilliant at performing numerical calculations. Recently I've required the need to see how many people are currently logged in on the terminal servers through NX. Now, if people are logged in via standard SSH, then it's quite easy to count: However, if you want to perform a line count of the - [Happy New Year and Updates](https://rickogden.com/blog/2010/01/13/happy-new-year-and-updates/) - With it being the festive season, I have not done a huge amount of interest recently. I'm hoping to have a few things for you soon. Currently I have been experimenting with Drupal, having never used it (properly) before, this is a real learning curve. Also I am working on getting suPHP to work with - [suPHP + Userdir on Ubuntu](https://rickogden.com/blog/2010/01/27/suphp-userdir-on-ubuntu/) - Recently I've had the need to combine suPHP with the userdir mod for Apache on Ubuntu. By default they don't play nice together. So here is a quick guide on how to get it working. If you have installed a standard LAMP server (there are many guides on how to do this), you now need - [LTSP Part 2 - Configuration](https://rickogden.com/blog/2010/06/22/ltsp-part-2-configuration/) - In the previous post I had the problem: ... when I boot up, I get the Ubuntu boot screen, which shows it’s connecting to the terminal server, however it then fails with an errror saying Error: Failed to connect to NBD server And I get sent to a basic busybox shell. There were two reasons - [LTSP Part 1 - gPXE](https://rickogden.com/blog/2010/06/09/ltsp-part-1-gpxe/) - Disclaimer: This is a work in progress blog post. There may be better ways of doing things, and things may have been done wrong. Although I hope you will find this helpful, please don't take the contents of this post as gospel. At work we have Ubuntu terminal servers which the students currently connect to - [The Research Begins](https://rickogden.com/blog/2010/05/17/the-research-begins/) - As some of you may know, I have now officially started my masters. It is a technical MSc (by Research) on Location-based Social Media Services. The easiest way to describe this is I will be designing and developing a Wiki for a variety of media (text, audio, images and video) which (unlike Wikipedia) is not - [Netbeans 6.9 Beta + Zend Framework](https://rickogden.com/blog/2010/04/29/netbeans-6-9-beta-zend-framework/) - Having just got my brand new MacBook Pro, I've been setting it up as a development environment (blog post about that to come). I decided to install the new Netbeans 6.9 beta. The main reason for this is the Zend Framework (and Symfony) support. In the past I have found Netbeans to be pretty good - [Backup Server Slow Down](https://rickogden.com/blog/2010/04/19/backup-server-slow-down/) - Recently I noticed that my backup server was slowing down. Doing system checks told me that it wasn't running out of memory, nor was the CPU being highly utilised. It was only when I went into the server room and noticed that the hard drive activity light was persistently on that I realised what was - [MooTools Cross Fader](https://rickogden.com/blog/2010/04/08/mootools-cross-fader/) - I've recently developed a script in JavaScript which will perform smooth transitions between a number of elements. This is built using the MooTools framework and is available to download from the labs. - [RIP Internet Explorer 6](https://rickogden.com/blog/2010/03/24/rip-internet-explorer-6/) - The time I never thought I'd see is now on the horizon. The web moving away from supporting Internet Explorer 6. Many web developers are all too aware of the pain of getting their websites working correctly in all web browsers and THEN having to make sure they work in IE6. This is not only - [Define: "Computer Scientist"](https://rickogden.com/blog/2010/02/18/define-computer-scientist/) - I was in a meeting the other day, and something cropped up which was cause for much debate. This was attempting to define exactly what a "Computer Scientist" is. This is of course very relevant to the BSc (hons) Computer Science degree programme. The question is: What skills should a graduate of this discipline have - [Virtual Hosts for Development with Apache on Ubuntu](https://rickogden.com/blog/2010/07/19/virtual-hosts-for-development-with-apache-on-ubuntu/) - I do a lot of development on Ubuntu, as I often have multiple projects on the go which are nothing to do with each other, it's often easier to create separate virtual hosts on my local development machine. This means that when they are ready for the "real world", they are already set up as - [Why Students Should Attend PHPNW10](https://rickogden.com/blog/2010/08/02/why-students-should-attend-phpnw10/) - PHPNW is primarily a conference aimed at professionals within the industry to allow them to learn from each other and discover new ideas and techniques which they can then apply to their every day work. What is less prominent is how this is equally as useful for students, who may want to work in this - [PHPNW10 - An Overview](https://rickogden.com/blog/2010/10/19/phpnw10-an-overview/) - I had a fantastic time at phpnw10 this year. Met loads of old friends, and made a few new ones. The main conference kicked off on Saturday morning with a keynote by Lorna Mitchell entitled "Teach a man to fish". This was about how team training is important with proper feedback mechanisms which enable a - [Research Overview](https://rickogden.com/blog/2010/11/01/research-overview/) - I have put up a page about my MSc (by Research) which I am currently working on. I am researching into development of an open, flexible location based social media application. - [HTML 5 Preparation](https://rickogden.com/blog/2010/11/24/html5-prep/) - When setting up an HTML 5 web page, there are a couple of things which need to be done. First of all you need to standardise the CSS for the new HTML 5 elements. This can be done at the top of your CSS stylesheet by making all the new elements be displayed as "block" - [5 Cool Things in HTML 5 for Mobile Web App Development](https://rickogden.com/blog/2010/12/08/5-cool-things-in-html-5-for-mobile-web-app-development/) - Following on from my previous HTML 5 article, I decided to write another one talking about a few cool things that HTML 5 brings us which help us develop cross-platform web applications. Although not all devices support HTML 5 at the moment, it is increasingly becoming the standard due to its relatively low resource consumption - [Installation of Memcache in PHP on Ubuntu/Debian](https://rickogden.com/blog/2011/01/14/installation-of-memcache-in-php-on-ubuntudebian/) - Happy new year all! Just a quick post about how to install Memcache in PHP on an Ubuntu or Debian server (I think it will apply to Redhat based servers, just substitute the apt-get for yum). Log on to your server as root (either directly or using sudo su), then install the Memcache daemon through - [When Objects Act Like Arrays](https://rickogden.com/blog/2011/06/13/when-objects-act-like-arrays/) - I'm a big advocate of object-oriented programming, even though only a few years ago I hated it and thought it was "over engineering". I don't believe, however, that object orientation is suitable for every circumstance. Anyway, that's for another blog post. Objects are great, but not always the best when handling data, particularly things like - [PHP 5.4 - The Highlights](https://rickogden.com/blog/2012/03/01/php-5-4-the-highlights/) - I haven't blogged for ages, so here's one about the impending release (ie. today) of PHP 5.4! I am just giving a brief introduction to a few features which I think make it a rather interesting release. Speed There is going to be a significant speed increase in PHP 5.4 (apparently more so than we ## Pages - [Projects](https://rickogden.com/) - [About](https://rickogden.com/about/) - Name: Rick Ogden MSc (Res) BSc (Hons) I am a Red Hat Certified System Administrator (RHCSA) and hold an MSc by Research in software engineering. I work at the University of Salford where I develop and maintain the Linux servers and Linux-based services for the Computer Science & Software Engineering directorate and lecture in software development - [Asset Manager](https://rickogden.com/projects/asset-manager/) - Using ExpressJS with an Angular front end, I developed an asset manager to provide a way to track hardware loaned out for various research projects and assignments. It uses LDAP authentication to allow staff members to loan hardware to students, and keep track of what’s been loaned out. This was written in Angular 4 with an ExpressJS REST API, - [Webspace Management System](https://rickogden.com/projects/webspace-management-system/) - To provide students with webspace for modules which require it and their own project. I wrote an automatic webspace registration system that used LDAP authentication to create them a virtual host in Virtualmin. This also allowed students to reset the password of their webspace. This was built in Symfony 3, Doctrine, LDAP, FOSUserBundle, RabbitMQ and - [Modules Taught](https://rickogden.com/about/modules-taught/) - In my work for the University of Salford, I have created and delivered modules in a variety of web-development and software engineering related areas. Advanced Web Development This is a 20 credit module where the students learn about how to create a large scale web application and API. Using Symfony 3 (and prior to this Symfony - [Contact](https://rickogden.com/contact/) - In order to reduce the amount of spam received to my email account, please fill out this form to contact me. - [Location-based Social Media Engine](https://rickogden.com/projects/location-based-social-media-engine/) - In 2010 I started a part-time research masters degree in software engineering. This masters was looking at the evolution of geospatial data in social media applications. As smartphones and tablets were taking off, the context of location was becoming increasingly used in social media. For my research I built a generic location-based social media engine - [Virtualmin PHP Library](https://rickogden.com/projects/virtualmin-php-library/) - A PHP library which interfaces with the Virtualmin HTTP API. Using Guzzle it can perform any Virtualmin command including creating/removing/editing virtual hosts, user accounts, databases and enabling/disabling features. It was written to aid development of a webspace management application. This can be installed through Composer. GitHub: https://github.com/rickogden/Virtualmin-PHP - [Cornerhouse Scribbler](https://rickogden.com/projects/cornerhouse-scribbler/) - As part of the closing down exhibition for The Cornerhouse (before they moved to HOME), we created a machine that would allow people to share their memories of the corner house via twitter/online form. Once a message was submitted, the machine in the Cornerhouse (which consisted of a giant animatronic pencil) would spring into life, moving, - [Geolocation Library](https://rickogden.com/projects/geolocation-library/) - I needed to perform geospatial calculations and handle database interactions for my research masters. For this I wrote an independent PHP library which would handle geospatial datatypes as well as performing calculations. Key features of the library include: Classes for common data types Point, LineString, Polygon, GeometryCollection, MultiPoint, MultiLineString and MultiPolygon. Different algorithms for calculating - [Javascript Cross-fader](https://rickogden.com/labs/javascript-cross-fader/) - Version: 0.1 (beta) Author: Rick Ogden Copyright: 2010 University of Salford (http://www.salford.ac.uk/) License: Gnu General Public License Download the Cross Fader MooTools Class Here is a simple cross fading script I wrote. What it does it performs an nice "cross-fade" transition from one element to another. It can cross fade between any number of DOM - [Location Based Social Media Application - The Concept](https://rickogden.com/labs/location-based-social-media-concept/) - So, this is all well and good, but how do we approach the problem? Considering these two scenarios are very different, this means that the application needs to be as open and flexible as possible. This requires abstraction. The method of finding the location is the first tricky bit. The system is not limited to - [New BSD License](https://rickogden.com/bsdlicense/) - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the - [Ajax Simulator](https://rickogden.com/labs/ajax-simulator/) - A realtime decision simulator developed using Ajax technologies. Feel free to experiment with the account: username: public password: password Go To Simulator Feel free to leave comments. - [(An Extended) Introduction to Object Orientation in PHP](https://rickogden.com/tutorials/an-extended-introduction-to-object-orientation-in-php/) - Following the PHPNW09 conference, I did another talk at the local PHPNW User Group meeting in December. This talk is based on the talk I gave at the conference, but has been slightly extended. - [Zend_Auth Pam Adapter](https://rickogden.com/labs/zend_auth-pam-adapter/) - For work I wrote a Zend_Auth plugin to allow a Zend Framework based web application to authenticate against any OS using PAM. This means that on Linux, you can use this plugin to verify if the user is a local user on the machine. Requirements Firstly an OS that uses PAM is required. The Pecl - [Automated FreeNX Install Script for Ubuntu](https://rickogden.com/labs/freenx-install-ubuntu/) - Version: 1.2 Licence: GNU General Public License This script will automatically install freeNX server and NX Client on Ubuntu (32 or 64 bit). It has been tested on Lucid, Karmic, Jaunty, Intrepid and Hardy. Please let me know if there are any problems. To run, open a terminal and navigate to the directory you downloaded - [960 Grid System Tutorial](https://rickogden.com/tutorials/960gs/) - How to quickly get started with 960 Grid System. - [Beginners Guide to Object Orientation in PHP](https://rickogden.com/tutorials/beginners-guide-to-object-orientation-in-php/) - I did this talk at PHPNW09 on the Sunday as it was requested. This is a very basic "crash course" in object orientation within PHP. Here is the source code that was used in the demostration, just execute the controllers in each through the commandline to see the results. oophp.tar.gz - [Talks/Tutorials](https://rickogden.com/tutorials/) - Here I will be posting slides and other information about presentations that I have given. [xls sort_order="DESC" sort_column="post_date" show_date="modified" date_format="(d/m/Y)"] - [Labs](https://rickogden.com/labs/) - This is where I will post any scripts, projects, applications that I am playing with. As with the rest of the site, not much here... however this will expand over time to what I hope will be a useful repository. [xls sort_order="DESC" sort_column="post_date" show_date="modified" date_format="(d/m/Y)"] ## Categories - [Uncategorized](https://rickogden.com/blog/category/uncategorized/) - [Tech](https://rickogden.com/blog/category/tech/) - Tech - [Events](https://rickogden.com/blog/category/tech/events/) - Events - [Development](https://rickogden.com/blog/category/tech/development/) - Development - [Music](https://rickogden.com/blog/category/music/) - [Linux](https://rickogden.com/blog/category/tech/linux/) - [Programming](https://rickogden.com/blog/category/tech/programming/) - [Research](https://rickogden.com/blog/category/research/) - [Education](https://rickogden.com/blog/category/education-2/) ## Tags - [php](https://rickogden.com/blog/tag/php/) - [phpnw](https://rickogden.com/blog/tag/phpnw/) - [phpnw09](https://rickogden.com/blog/tag/phpnw09/) - [conference](https://rickogden.com/blog/tag/conference/) - [metal](https://rickogden.com/blog/tag/metal/) - [rant](https://rickogden.com/blog/tag/rant/) - [tutorial](https://rickogden.com/blog/tag/tutorial/) - [talk](https://rickogden.com/blog/tag/talk/) - [presentation](https://rickogden.com/blog/tag/presentation/) - [html](https://rickogden.com/blog/tag/html/) - [xhtml](https://rickogden.com/blog/tag/xhtml/) - [css](https://rickogden.com/blog/tag/css/) - [framework](https://rickogden.com/blog/tag/framework/) - [grid system](https://rickogden.com/blog/tag/grid-system/) - [ubuntu](https://rickogden.com/blog/tag/ubuntu/) - [freenx](https://rickogden.com/blog/tag/freenx/) - [script](https://rickogden.com/blog/tag/script/) - [bash](https://rickogden.com/blog/tag/bash/) - [nx](https://rickogden.com/blog/tag/nx/) - [remote desktop](https://rickogden.com/blog/tag/remote-desktop/) - [object orientation](https://rickogden.com/blog/tag/object-orientation/) - [learning](https://rickogden.com/blog/tag/learning/) - [education](https://rickogden.com/blog/tag/education/) - [opinion](https://rickogden.com/blog/tag/opinion/) - [zend framework](https://rickogden.com/blog/tag/zend-framework/) - [zend auth](https://rickogden.com/blog/tag/zend-auth/) - [authentication](https://rickogden.com/blog/tag/authentication/) - [pam](https://rickogden.com/blog/tag/pam/) - [oop](https://rickogden.com/blog/tag/oop/) - [composition](https://rickogden.com/blog/tag/composition/) - [Catharsis](https://rickogden.com/blog/tag/catharsis/) - [piano](https://rickogden.com/blog/tag/piano/) - [apache](https://rickogden.com/blog/tag/apache/) - [suphp](https://rickogden.com/blog/tag/suphp/) - [drupal](https://rickogden.com/blog/tag/drupal/) - [userdir](https://rickogden.com/blog/tag/userdir/) - [web development](https://rickogden.com/blog/tag/web-development/) - [browsers](https://rickogden.com/blog/tag/browsers/) - [ie](https://rickogden.com/blog/tag/ie/) - [JavaScript](https://rickogden.com/blog/tag/javascript/) - [MooTools](https://rickogden.com/blog/tag/mootools/) - [backuppc](https://rickogden.com/blog/tag/backuppc/) - [netbeans](https://rickogden.com/blog/tag/netbeans/) - [IDE](https://rickogden.com/blog/tag/ide/) - [ltsp](https://rickogden.com/blog/tag/ltsp/) - [gpxe](https://rickogden.com/blog/tag/gpxe/) - [phpnw10](https://rickogden.com/blog/tag/phpnw10/) - [masters](https://rickogden.com/blog/tag/masters/) - [location-based social media](https://rickogden.com/blog/tag/location-based-social-media/) - [html5](https://rickogden.com/blog/tag/html5/) - [web applications](https://rickogden.com/blog/tag/web-applications/) - [mobile applications](https://rickogden.com/blog/tag/mobile-applications/) - [Debian](https://rickogden.com/blog/tag/debian/) - [memcache](https://rickogden.com/blog/tag/memcache/) - [php 5.4](https://rickogden.com/blog/tag/php-5-4/) - [Development](https://rickogden.com/blog/tag/development/) - [Music](https://rickogden.com/blog/tag/music/) - [Linux](https://rickogden.com/blog/tag/linux/) - [Programming](https://rickogden.com/blog/tag/programming/) - [Research](https://rickogden.com/blog/tag/research/)