Posts Tagged ‘Software’

D and Tango

April 8th, 2009 No comments

The other day, I took another look at Tango, for D.

For those not initiated, Tango is a replacement library for the Digital Mars D programming language. It operates differently from the standard Phobos in terms of architecture, ethos and implementation style.

Having previously looked at it, my initial reaction was “Hmmm, seems silly to have implemented this, it doesn’t seem worth the effort to implement a second standard library”. I decided the other day to take another look at the project to try and understand it further.

Having read more about it, and tried to understand further, I can only say: “Wow”. It provides the langauge with the library to “do stuff” no simply a library with which to “implement stuff”.

I have an idea to resurrect my old FTPro software, and I’m now thinking that this would be a great backbone to develop this with. My only major hurdle to this at the moment is rebuilding my laptop….

Ant Building

July 6th, 2006 No comments

I think this post by Stefan Bodewig kind of sum’s up what I’m thinking about the Ant build utility.

My company started using Ant about a year ago. We use it to compile Progress 4GL code, as well as Progress Webspeed files by using the PCT extension.

When I first saw it, I didn’t like it. I decided that using XML as a form of programming language did not make sense. I have no problem with using XML to describe build rules; the problem I have is related to the way that you can specify “build target a, followed by target b”.

But having recently gone through the process of installing it and editting a build XML file, I have to say I’m very impressed! I can overlook my distaste for “programming with XML”, because the rest flows very well indeed. Plus, I can understand it much more that I can makefiles.

Categories: Uncategorised Tags: , , ,

Fun with VMWare, New UML Tool and IPv6

July 3rd, 2006 No comments

On Friday, I had the day off, so I decided to play with VMWare Server on a new PC that I had inherited. I’m so impressed so far, for a free product, it does so much.

I’d played with VMWare Player at home before, and within the last year at work we’ve gone VMWare crazy and now host an awful lot of our servers in VMWare images, so I’m well used to their products by now.

I’m impressed by VMWare server though. It does so much more than VMWare Player. Even allowing somebody to install the VMWare-Tools into an image makes the “upgrade” a must.

I spent Friday building some images for a project I’m about to start work on, so that I can test it on different variants of Linux and FreeBSD, as well as on the Windows machine I have. Didn’t hit a single problem with the images, and it even runs Haiku incredibly well (that’s a one up on BeOS which doesn’t work in a VM at all).

Over the rest of the weekend, I’ve also discovered an excellent UML editor for Windows, called StarUML (, which was a professionally produced product, but has now been made Open Source and Free (as in beer, I think).

I also did a little research on IPv6 which proved very helpful. I knew a little about it from a 5 minute aside in a university lecture course, but from what I’ve learnt over the weekend, a lot of thought has gone into the mechanism. The new style of development interface makes a lot more sense, seems very compatible with IPv4 and means that future version of the protocol will require fewer implementation changes! (Lets hear it for commons sense!)

So, put all those points together, and you can pretty much tell that I’m writing some kind of server, but that’s all I’m going to say!

Categories: Uncategorised Tags: , , ,

Building Haiku

May 19th, 2006 No comments

As I type, I have an old PC currently running BeOS 5 (which just flies!), and it’s currently downloading the current SVN checkout of Haiku.

At the same time, I’m listening to my brand new copy of the new Snow Patrol album “Eyes Open” – It’s every little bit as good as I hoped it would be, and then some more.


Categories: Uncategorised Tags: , , ,

How Did I Miss That!

March 21st, 2006 1 comment

Just been looking at the PHP documentation for the mysql_query function. I couldn’t possibly imagine the number of times I’ve used that function, and the number of queries that I have written.

I’ve just discovered this little bit in the documentationThe query string should not end with a semicolon.Wow! I’ve always insisted that it is present! It certainly works if it is present!

Now I’m thinking ‘Why not?’. I mean, it’s part of the SQL language to put a semi-colon on the end, so why shouldn’t I do it when I execute a perfectly valid query from with PHP?

Categories: Uncategorised Tags: , ,


March 7th, 2006 No comments

I think this has to be the ultimate in the “Open Source, Working Together” philosophy!

OpenStreetMap is a site that takes GPS data from users, and allows others to create road maps out of that data. In this respect, the work is free of all copyright, and should be correct as far as the data is available (i.e. no errors, and no fake roads added to ensure copyright status). For more information, follow the “Help/Wiki” link on the left of the homepage.

I don’t personally have a GPS receiver, so I’m probably going to have a go at joining up nodes and labelling roads!

Categories: Uncategorised Tags: , ,

A Crash Course in Character Encodings

March 1st, 2006 No comments

This article, “A Crash Course in Character Encodings“, has certainly cleared up a lot of issues that I didn’t understand about Unicode character encodings!

I must admit it was the one area of software engineering that I was very grey about! Although the article is written for a Python audience, it still makes sense to me (although I looked a Python, I’m not a Python Developer!), and the principles are easily transferable.

If you need instruction in this area, read the article – it makes a lot of sense out of a confusing area!

Categories: Uncategorised Tags: , ,

Interesting Article

February 23rd, 2006 1 comment

I’ve stumbled upon an interesting article this morning called “I hated php back when it was cool“, which kind of vocalises some of the gripes I recently developed with PHP.

Namely, the language has grown exponentially, but without a structure to tie the language together effectively. I just love the description quoted in the article:Aristotle Pagaltzis makes an interesting point when he says how PHP suffers from a lack of initial design. … Basically PHP seems to have started out as a pet project, and had its features battered on with a staple gun, rather than included in the design.. Everything is done with a series of functions, most of which have different patterns of behaviour or different parameters depending on what version of PHP your running. This makes coding effective sites an absolute nightmare!

My other chief gripe is classes. Despite the recent changes to the whole class handling system in PHP, it’s still rubbish, and most of the time, I can’t use the improvements that PHP 5 brings because no bugger supports it!

To me, when the PHP people get to writing version 6, they need to stop, and quite literally start again. I really mean that – it doesn’t matter if the “newer” PHP code is not backwards compatible – it isn’t very BC at the moment, and so they should take more time, consider their direction, and plan ahead.

Categories: Uncategorised Tags: , , ,

Adaptive Firewalls

February 2nd, 2006 No comments

I’m thinking of building an adaptive firewall on my Linux router at home.

I’ve noticed that people are scanning the ports on the computer, and running HTTP requests to see if they can trip several known security flaws (e.g. in AwStats).

I did a little reading up on how to build an IPTables based adaptive firewall, and I’m beginning to concoct some ideas in my brain.

Basically, what I want to do, is constantly scan the requests that are made to Apache, and maybe some other server apps, and build some rules to pick out naughty behaviour. Once I’ve done that, I can get the IP address of the offender, and build a list of banned IP addresses. I’ll only want to “ban” (i.e. block at the firewall) those IPs for a set amount of time (e.g. 24 hours), but the response time of the firewall must be quick in order to catch these people in the act, and so I must rebuild my IPTables rules in reasonable time. After the 24 hours is up, I then need to clear any expired IP addresses down again whilst still keeping blocked IPs and my other firewall rules in place.

I’m therefore thinking that producing a series of scripts based around Cron is not suitable – you can’t schedule it to work more that once every minute. It could mean that I need to produce some server program (either using a UDP socket, or UNIX-type pipe) to receive IP addresses as soon as possible, and to store the data for 24 hours.

Anyone got any good suggestions?

Categories: Uncategorised Tags: , , , ,

Here’s A Question

January 17th, 2006 1 comment

Are all software bugs repeatable? As in, if you discover a bug in a piece of software, is there any type of bug that could not be repeated?

My answer is “Yes, all bugs are repeatable”. Bugs depend on circumstances, so as long as you can repeat the circumstances, then you can repeat the bug.

I’m betting Richard thinks otherwise…. 😉

Categories: Uncategorised Tags: , ,