Tag Archives: software

Software Development Techniques and the Object Oriented Paradigm


The object-oriented paradigm exists to improve the quality of software systems in a number of key areas. The most important areas it improves is the under-standability of the code, simplicity of the system and consistency across the system due to a combination of high code reuse and low code redundancy. To this end, object-oriented systems should possess eight key characteristics; however, ensuring a system possesses these characteristics when implementing the software can be difficult. In order to improve the likelihood of the fi nal product possessing the eight characteristics, developers can use a number of techniques during development. Of these techniques, the most beneficial are card-based techniques, conscious system design and a suitable metric suite.


Tagged , , , , , , ,


trapped. is my entry into Ludum Dare #23, the ten-year anniversary of one of the world’s biggest game jams. The theme was “Tiny World”.

Due to time constraints, this game was created in a grand total of 11 hours. The game was developed in pure Java (it only uses the JLayer library for playing the mp3). The following is a description of the game as taken from my LD23 entry page:

trapped. is an arena-style platform game with a quasi-retro aesthetic. You are trapped in a tiny world, with its inhabitants out to get you. Survive as long as you can.

Use WASD to move around, and aim/fire using the mouse. Create your own levels by making a copy of the map_template.map file in the trapped/maps/ directory, and editing it with a text editor. Please see the included README file for more information.


Tagged , , , , , , , , , , , ,

On Windows 8, and the Future of the Desktop

A brief disclaimer: I haven’t used Windows 8 much. I installed the Consumer Preview on my netbook the day it was released, but I use my netbook sparingly. It’s not an ideal set-up, not least because Metro apps won’t run on its 1024×600 display, but it’s enough to give me a first impression of Microsoft’s latest edition of its flagship operating system. And that’s all this blog post is: a first impression. Of course, Windows 8 is currently effectively only a public beta. However, it’s not looking like it’s going to go under many major changes between now and the final release, and this post is written under that reasonable assumption. Finally, it’s worth noting that this impression purely considers the fully-featured desktop version of the OS; the Windows-on-ARM version designed for tablets is a totally different beast, and not one I’ll be discussing in this post.

Windows 8 as an OS:

Before I delve into the faults of Windows 8, I feel inclined to point out its merits. The first point is the push notifications, a concept it borrows from mobile operating systems (notably Android). A feature of the new Metro UI, it essentially replaces the notification area of the traditional desktop’s task bar (along with other system notifications, such as Autoplay) with a more user-friendly pop-up system. This will be a great feature, as it provides a homogeneous means of notifying the user of an application event (provided that application developers make use of it) – compare it with applications such as Windows Live Messenger, Skype or avast! Anti-Virus, each of which has their own custom notification system.

The notification system is a nice feature of Windows 8

The second benefit of Windows 8, is the Windows Store. The Windows Store follows Apple’s Mac OSX in bringing their mobile app marketplace to the desktop, allowing consumers to purchase verified applications for their computer from a safe and secure location. More importantly, I feel, is the benefit this will bring to developers. The Windows Store will allow all developers, big and small, to sell their apps to Windows users, an operating system with over 85% international market share*, in much the same way Apple’s App Store and Google’s Play Market allows access to the mobile consumer base. This could be of great benefit to small or hobbyist developers who would otherwise find the sales and marketing aspect of software development overwhelming.

Unfortunately, the pros of Microsoft’s latest operating system are outweighed by the cons. The first problem I have with the operating system is its obvious tendencies towards a touch interface. This is fine when it comes to using the OS on a mobile device (in fact, it’s essential), but on a PC it just feels cumbersome. There is nothing more awkward than having to close an app by emulating dragging the top of the app to the bottom of the screen using a mouse (especially when the cursor has to travel up to 1080 pixels); there is something fundamentally flawed with an operating system when you can’t close an app one-handed using a track pad.

This is not an intuitive way to close apps.

The major shortcoming of Windows 8 is in its inconsistent user experience. It is an operating system which can’t seem to decide if it’s a mobile operating system or a desktop one, and it’s painfully evident. The most obvious hint is the fact that I’m not sure where the OS “starts”. Logging on to a Windows 7 computer results in you being presented with a desktop – from here you can launch your applications and start being productive. With Windows 8, you have two candidate launch pads – the Start screen and the traditional desktop – and I can’t decide which one is the real home of Windows 8. Is Windows 8 meant to be seen as predominantly running on the Metro UI with legacy support for the traditional desktop? The fact that the desktop is represented as an app which can be opened, closed, minimized and restored certainly supports this fact. So does the fact that key Windows applications such as Internet Explorer and the Photo Viewer have been all but replaced with Metro apps. But if that’s the case, then why are certain key operating system features still implemented in the desktop (for example, the Task Manager and the Control Panel)? And with Microsoft yet to confirm whether the next version of Microsoft Office will be a suite of Metro apps or traditional applications, it certainly doesn’t look like they’re trying to phase out the traditional desktop altogether (at least, not yet).

There is a number of other slightly less important gripes I have with the operating system. For example, in Windows 7 I could get into a settings pane by hitting the Start orb, typing the name and hitting the enter key; in Windows 8, the search function of the Start menu splits results into separate categories for programs, files and settings, and therefore takes more than twice as many keystrokes to achieve what I could do in Windows 7 in two. Jumping to a location in Windows Explorer (such as Music) from the desktop is no longer possible if the program is not pinned to the taskbar – gone of the days of location shortcuts on the Start menu. This action will also take you twice as many keystrokes and mouse clicks (a recurring theme throughout Windows 8, in fact).

(*as of March 2012. http://www.netmarketshare.com/os-market-share.aspx?qprid=9)

[Whew, hadn’t expected to have so much to say about Windows 8, so I’ll split this into two posts. I’ll try not to tackle such a huge concept as an entire operating system in the future!]

Tagged , , , , , , , , , , ,


This Android app was developed for a client as part of a third-year university course. Development involved a six-person team, and was released on the Google Play Market after the course was finished. TimeBox is a time management app based on the Pomodoro Technique.

Download from the Google Play Market.

Tagged , , , ,


(Related: LoBED: A Critical Report)

This application was developed as a proof-of-concept project for a third-year User Interface course at university. The program would allow users to navigate a map, placing markers where there are open job position. However, there is no functionality implemented, other than the adding, removing and viewing of markers, and the saving and loading of the database; the program exists solely as an example of UI design.


Tagged , , ,

Cleverbot vs. Cleverbot

I was curious as to how Cleverbot would react if it had to talk to another instance of Cleverbot, so I decided to code this up one day. The absurdity of it can be a good laugh from time to time.


Tagged , , , , , ,

Brain Boggler

Brain Boggler is a simple puzzle game in which all the pieces must be placed on the board such that no pieces overlap. Pieces are selected from the list on the right, and can be rotated using the left and right arrow keys, and flipped with the up and down arrow keys. To place the piece, left click on the board; to remove, right click. Created for fun, and based on a physical version of the game I played as a child.


Tagged , , , , ,