What I have learnt about Cases

I have had a few computers in the last couple of years, and each time I have learnt something about the design or the brand.

In particular I want to focus on cases, they seem to be a undervalued component for a PC. Pick the wrong one and you can suffer from subtle air flow problems or rattles.

Heres my 2 pennies worth, its my opinion on good case design.

  • Motherboard trays are useless
    If you want a decent motherboard tray, find one that slides out the back. The ones that lift out really are a pain in the ass
  • Don’t mount hard drives side on
    In my current case I have a huge problem with vibration. This is caused by the sata cables touching the side of case and causing vibration (even with the right angled cables)
  • Front doors are just hassle
    My last two machines had front doors, these became difficult to deal with since machine is under a desk and around a corner. One problem I had to be careful is not to scratch DVDs on the top of the case door.
  • Rails, pah, who needs em?
    Someone who will be replacing lots of hard drives all the time, I won’t, don’t need em.

I was expecting a few more :P Of course my logic could easily be flawed, and I just picked the wrong cases. For a simple entusiast I can’t imagine needed funky features.

New Computer delivered!

It has been 4 years! 4 years since I last bought my computer and it is time for an upgrade. It has only been within the last 6 months that I began to feel the strain of a low speced graphics card (nVidia 7800GTX 256mb) pulling me back when it came to gaming.

Everything else is perfect, but the problem is that the motherboard is too old to support some of the newer features (such as SATA2, PCI-E 16x etc) so as a result I am just going to replace the entire lot. (Except for the soundcard, thats fine)

As always I obsess over the specs, checking all the fine details, reading reviews, pre-plan upgrade paths etc… but since I never really do upgrade or overclock, I just bought what seemed to work.

Heres what I bought:

  • Western Digital WD2500AAKS Caviar SE 250GB 7200RPM SATAII/300 16MB Cache – OEM
  • Intel Core 2 Quad Q9300 2.5 GHz (FSB 1333MHz) Socket 775 L2 6MB Cache Retail Boxed Processor
  • Asus P5Q3 DELUXE/WIFI-AP P45 Socket 775 8 channel audio ATX Motherboard
  • Inno3D 9800GT i-Chill Edition 512MB DDR3 Dual DVI HDTV Out PCI-E Graphics Card
  • Antec 1200 Twelve Hundred Full Tower Case – No PSU
  • Antec NeoPower 550W Modular PSU With 80mm Low Speed/noise Fan 18db
  • Corsair 4GB (2x2GB) DDR3 1333MHz/PC3-10666 XMS3 DHX Memory Kit
  • Microsoft Windows Vista Ultimate – Licence and media – 1 PC – OEM – DVD – 64-bit – English

That should do the job at least for another 2 years. Will hopefully have it up and running sometime tonight :)

The old machine will get cleaned up and given to my darling sister to replace her old slug of a Cellery.

Guild Wars Build Manager that is worth a mention: GW Teddy

I am currently in the process of creating my own application to help manage my guild wars skill templates, when I came across this application: GW Teddy, you can find it here: http://gwteddy.manuthie.de/?menu=home&lang=en

It certainly has all the aspects of what I was hoping to acheive in my guild wars build manager, however the most useful features I am looking for are not there.

Such as searching folders recursively for a specific build, or automatic organisation of the skills, or backup mechanisms for saving the templates.

Still, a very good app worth mentioning.

A managed Guild Wars Template Parser

I am currently working on a small project to help me organise my Guild Wars skill builds but I came across a problem, I had nothing to help me decode the templates and I found I had a gap in my knowledge when dealing with converting binary and base 64.

I found some source code long ago from GWFreaks however it was so old, messy and written in VB.NET that I really struggled to understand it. The last resort was a PHP based version of the template parser and a small snippet I found on a Code Guru forum. With this information I begun playing around and eventually began to build a greater understanding of what was involved.

Using the wiki guide on the Skill Template Format and the Equipment Template Format I finally built a set of objects to help encode and decode the templates.

You will find the details and the project files on the Template Parser project page

Unit Testing with NetBeans and phpUnit

Huzzah! I have found a way of being able to run the Unit tests in NetBeans.

Since phpUnit is essentially a set of php scripts itself, I thought to myself there must be a way of invoking it.

What I did was setup a source file as the boostrap for the Test Runner, set this file as NetBeans index file and from there you can just run it and see the test results in the output window or debug and it step into the test you are interested in.

It is not a fantastic solution but it is definately a stop gap until they do implement php Unit testing.

Heres my boostrap file for running tests:

<php
$args = array(
__FILE__,
"--coverage-html",
"D:\\Logaan\\Documents\\XamppData\\htdocs\\FormManager\\CodeCoverage",
"--verbose",
"D:\\Logaan\\Documents\\XamppData\\htdocs\\FormManager\\tests\\TestSuite.php"
);

$_SERVER['argv'] = $args;
$_SERVER['argc'] = count($args);

require_once 'PHPUnit/TextUI/Command.php';

// Exclude this file from code coverage
PHPUnit_Util_Filter::addFileToFilter(__FILE__);

?>

Its very simple, what I am doing is hard coding my arguments into the server environment variable (you could use the arguments in the NetBeans configuration) which is where phpUnit gets the arguments from.
Including the phpUnit TestUI test runner which has the main entry point, excluding this file from code coverage and then I just sit back and l let phpUnit run its course.

This is only a work around until Netbeans supports phpUnit.

NetBeans IDE

The other day I had hit a brick wall, I was really struggling with part of my FormManager project and really needed to debug it.

I started looking into XDebug and discovered what it could really do, and diving into the website I found they listed a set of compatible IDEs that could use the extension to debug php. Since I had spurned eclipse I thought there was nothing else short of the Zend IDE that could help. Thats when I noticed NetBeans. The last time I had used NetBeans was back in college for some Java projects. I was really surprised when I found out that they offered a PHP IDE.

Within a couple of seconds of getting the project setup in the IDE it found the problem already for me. It does a much better job of context sensitive variables than Eclipse ever did, and it can pick up all kinds of problems much better than Eclipse, within a few minutes I had fixed the problem and even found a couple of problems that I did not yet know about.

It even includes some basic refactoring tools!

NetBeans does support Unit Testing however there is currently no support for phpUnit at this time. It is planned as a feature some point in the future.

PDC 2008

The company I work for packed me off to the PDC last month. This had a load of firsts for me; my first time to America, my first time on a plane.

The plan journey was 11 hours there in cattle class… not particularly enjoyable however I did get the chance to watch lots of movies on the journey that I had wanted to watch for a while. The flight back was less than 10 hours, I think the pilot had is foot planted :P Only there was lots of turbulance, every time nature called, the plane would hit a whole new patch of turbulance. It was very disconcerting.

I think this trip solidified the fact that I am not a travelling person, it took me 4 days to get over the jetlag, the waking up in the early hours of the morning wide awake. To compound the problem the hours were long, I would get up about 6:30am to get on the bus for 7:30. Spend 10 hours in the convention center, then get back to the hotel for an hour before diving off out for the evenings event.

To make things worse, my laptop would not connect to any of the wireless connections available at the convention center so for half the trip I was carrying at least 5kg of dead weight. The only useful job the laptop played was to charge one of my colleagues iPhone as he forgot to bring his mains charger and his laptop bricked itself.

We arrived in LAX late on Continue reading ‘PDC 2008’ »

Modelling OO

NClass is a free open source class diagram modelling editor. It currently supports C# and Java. However recently I have used it to help model some of my php applications. Its quick and easy to use, simple installs, all round good app.

Form Manager

I finally found a decent name for this “DynamicDataModel” project I have been working on; Form Manager.

Synopsis: A set of objects to allow the developer to write as little code as possible to instantly get a form with validated fields and basic data manipulation.

My idea to was to write something that would allow me to quickly describe what data I want to edit/display, have a standard mechanism for verify data from the user and a generic method of talking to a database to create/get that data.

So far this is what I have come up with:

I built the diagram in NClass, but I kind of cheated and built the model in C# and imported it

The modes know how to render the data, where the data needs to come from and at what time.
The fields are quite the opposite, they know where the data is, and what to do with it, but don’t know when to use it.

So I built this model, the TableDefinition and FieldSet have all the fields hanging off them. And the relevant modes are hanging off the FormManager.

Although I plan to integrate this into phpBB, I have put in layers that should allow for this model to be used in anything.

The other thing is that I am trying to build in as little state as possible so that it can be cached to improve speed. However this will be seen once I start using it in more realistic situations.

The only wierd thing about the model that I am not completely happy with yet is that when the field is told to render itself, it is given the data to use.

I have unit testing around it all, and generated documentation so once its finished I should have quite a nice comprehensive application.

The Perpetual ToDo List

Like pretty much everyone else, I have a todo list with things on it that I never get round to doing. 

For a long time I used a text file sat on my desktop to keep track of all the bits I had to do, but that really didn’t cut it. Which items were high priority, when were they due by?

That why I have started to use this funky little free program from Abstract Spoon (which you can also get from CodeProject) called ToDoList.

Its a neat little app where you can enter all your tasks, create sub tasks and categorise them. Set due dates, priorities, effort and more.