Monday, August 04, 2008

Java Applets - Grrr!

I like Java a lot, and I used to like applets - what better way to "publish" your game than to stick in in the web page? People can then play it straight away. Okay, it might take a few seconds to get going, but other than that, I used to think it a great idea.

However, I recently installed a new version of Ubuntu, and I just can't get applets to work. Java is running fine, but in Firefox, it doesn't have the Java plugin, and I've tried everything I can think of, even adding symlinks to the Firefox directory. Even if that had worked, no-one should have to do that just to get applets to work.

It shouldn't be this hard. Java should be as easy to install as any other plugin (i.e. incredibly easy). Until it is, it's just going to get even more sidelined over Flash.

Wednesday, July 09, 2008

Metal Glove Solid: Released at Last!

After being given a proverbial kick up the bum, I can now announce that I've sprinted the last straight and have got Metal Glove into a releasable state, and released it!

Needless to say, all the usual disclaimers apply: it's the first version, it's very sparse, probably has bugs etc.. etc..

Anyway, it's available here.

Tuesday, May 27, 2008

Metal Glove Solid in a Wesnoth Stylee

You may not recognise the game you see to your left, but it's Metal Glove with Wesnoth graphics.

Does it count as a mashup? Probably not, but at least the game is now releasable. I just need to tweak it a bit, since the size of graphics isn't reflected in the code, but apart from that, it looks even better than it did before.

Except the generators, which look like birthday cakes. Oh, and unfortunately, the Wesnoth artists only drew the sprites facing in one direction. Still, beggars can't be choosers. GPL-FTW!

Friday, May 23, 2008

Metal Glove Solid: Got the Graphics?

In an earlier comment to a posting where I was lamenting my lack of skill at drawing graphics for Metal Glove, Charlie (of Freegamer fame) suggested I give the Free Art Search tool a go, so I did.

And it's pretty good. After only a few minutes I came across the solution to my problems: Battle for Wesnoth (one of the best FOSS games out there) has excellent graphics, and they have been released under GPL! So, IANAL but I think that means that I can use them as long as I give full credit, and release my software under GPL, which I do anyway.

So my next task is to replace all the graphics for those from Wesnoth. I originally used the graphics from a game called Wyvern, but the license is unknown, and I received no reply from the author.

Once this is done, I can finally release it!

Friday, May 16, 2008

Metal Glove Solid: Front End

Now that the game is in a pretty playable state, it was time to concentrate on all the front end. I've given it a fancy title screen shown on the right (obviously not drawn by me) and a couple of menus - one asking if you would like to start a new game (hinting that a "save game" option may be in the pipeline) and one to determine what character you want to be.

Having different characters has increased the variety of the game. I've now given the player's sprite various stats, like movement speed, shot interval time, shot power etc.. These will all also need tweaking. The main advantage of the wizard in the original game was that he was far better at using the single (IIRC) spell and would kill everything. In my version, there are going to be different kinds of spells, but I'm still trying to think of a way ther player can access them easily whilst still shooting at all the enemies. Maybe just pressing a number from 1-10 to pre-select a spell, and then pressing another button to cast it will be good enough. I've also got to think of some types of spells, but I'll wait till I go to the toilet to do that since that's where I have all my best ideas. I should take a laptop next time just in case.

Thursday, May 15, 2008

Add Searching to your Web Pages

[I did post this a few days ago, but noticed some minor teething problems and improvements that could be made with the program, so I deleted that post.]

As well as writing a Gauntlet remake, I've also managed to find time to write a webcrawler and search engine, which on the face of it is quite simple; it's just all the minor details that take the time. But hey, that's programming for you.

To add searching of your site to your site, simply add the following line to the HTML:

<script src="" type="text/javascript"></script>

You will probably be asking "What's the advantages over something like Google?". Good question, and I can think of 4 off the top of my head:
  1. Your site will be fully re-indexed at least every 6 hours. In fact, you can see exactly when your site was last indexed, plus how many words and URLs were read.
  2. This web crawler will also follow Javascript links.
  3. You can index just sub-directories. For example, if you place your searchbox at, only pages contained in (and its subdirectories) will be indexed, so you can search just your stuff.
  4. And, it's not Google, so you can have a clear conscience, safe in the knowledge that the Google-borg haven't absorbed you too.
So there it is. If you use it, let me know what you think. As you can see, I've added it to this site already.

More details are here.

Wednesday, May 14, 2008

Metal Glove Solid: Taking it to the Next Level

I thought it was about time I gave the game a bit of variety, and nothing shows variety than different coloured background images. Level 2 is now like a whole new game - to the people who put graphics above gameplay.

Actually though, I do intend for the levels to be different. The first level is a simple dungeon requiring keys to get through it. This second level is far more open-plan, meaning that enemies also have much more access to the players death-button.

I was reading a thread on FreeGameDev about another potential Gauntlet remake, and one comment caught my eye - "The game was quite fast paced. As long it is a bit fast and manic, we'll be on the right track." It's factors like that that make the difference between a good game and a great game, and it's a phase I call "gameplay tweaking", since that's what it is. I've still yet to do that with this game, but it can make all the difference between this being a plodding, tedious game and a fast-and-furious arcade monster.

Tuesday, May 13, 2008

Metal Glove Solid: A Policy of Constant Improvement

It's time to party like it's 1987! Where to start with the list of new features?
  1. Back-ground graphics: The player is no longer walking on a void. And there doesn't seem to be any slowdown.
  2. More enemies: Flayers to be exact (that's what the image file was called that I ripped them from). I might just call them zombies though.
  3. Score - it keeps it, it starts at zero, and it goes up.
  4. Different images depending on which direction a sprite is walking in - You'll have to take my word for this until I do some kind of video of the gameplay. But it is there, honest.
  5. A GPL licence. Again, since I can't release it yet, you'll have to take my word for it, but I give you my cub-scouts honour that I svn-added that into my repository. And this time I didn't forget to commit.
  6. A working exit. Unfortunately due to there being no second map, this does cause the game to crash.

Friday, May 09, 2008

Metal Glove Solid: The Key, The Secret

You would hardly recognise the game! There are now graphics for the ghost generators and the exit, and new graphics for the walls, and new gameplay features, namely keys and locked doors.

It's almost looking like a finished game, but there is still plenty of the donkey work to do, such as designing more maps and adding more gameplay elements, such as more types of enemies.

Metal Glove Solid: More Graphics

Flying in the face of possibly copyright lawsuits, I've added more ripped graphics to the game. In this case, it's the walls, but there is a flaw:

Since Wyvern (where I've got the graphics from) is obviously a better game that mine, it has different images for a wall depending on whether it's a corner section or a straight (amongst others), there is no actual image for a straight top-down wall. And since my game doesn't calculate what kind of section a wall, I'm going to have to think of something else.

Oh, and the other problem is that my "mapsquares" are bigger than those in Wyvern, meaning I'll need to stretch them as well. Why is ripping off other people's graphics never easy? I might as well have drawn them myself.

Wednesday, May 07, 2008

Metal Glove Solid: Looking better

Yes, your eyes do deceive you - there are in fact no original graphics in this screenshot. I'm no artist, and as many others find, getting graphics for a game takes longer than actually writing the thing. I've used the graphics from the excellent Wyvern game, which comes with sprites that are perfect for my Gauntlet clone.

Here you can see the warrior wondering what that ghostly noise is coming from the other side of the wall. The red square is an exit, which can only mean one thing - that there is another level, though in the interests of keeping the surprise, I won't reveal it yet.

I do have a conundrum with the graphics though: I'm guessing that it wouldn't be right for me to release it with them, as they are not mine. There is no kind of licence information included with Wyvern, so I think my only solution is to email the author and ask him politely.

Top Mud Sites? Bugger that

I run a mud based on GTA. I say "run", what I mean is I wrote it about 2 years ago and it's been sat running ever since and I've not even looked at it. It gets quite a few players though; back when I was promoting it, I registered it at a few of the Mud listing sites, one being "Top Mud Sites".

I'm now in the process of changing the URL. Since my DynDNS has stopped working, I'm moving over to No-IP. So I've just tried logging into the Top Mud Sites website to change the details. Oh, my login details don't work. Why not? Well, this is the FAQ section with the solution.

WTF? Bear in mind that, surprisingly, I'm not "familiar with the new TMS database", whatever that is. I've already got one full-time job and frankly I can't be bothered to go through that rigmarole, so the details are going to stay wrong.

(Contrast this with The MUD Connector, which took me about 2 minutes to update the details).

Guest Post: The Price of Games

This is a guest post by my other personality since I forgot to take my pills today.

The price of games - it's way too low! What? I'm not talking about the current crop of games, which compared to the prices of (good) games of yesteryear seem to be a bargain considering the amount of content you get with them.

No, I'm talking about old computer games from the 80's, and specifically old Spectrum games. I've got a fair few boxes of the things that I've bought from Ebay (obv) and I was hoping that the price of them might have increased slightly in order to make me very rich. Unfortunately, that's not the case. Even a bona-fide classic like Escape from Krakatoa (a game I can't believe hasn't been remade yet - I'm adding it to my list) is available for a paltry £1.50 from the Preservation Team Shop. As it is, it looks like it will only be my great-great-grandchildren who stand to benefit. Bloody scroungers!

Tuesday, May 06, 2008

Metal Glove Solid: Now with a map

No, your eyes do not deceive you, you really can see some bona-fide collision-detectable walls in the screenshot on the right. They are the two blue vertical lines.

But the fun doesn't stop there. You may have also noticed the small yellow square in mid-flight downwards towards the white square "ghosts". Yes indeed, that would be a bullet - I have also implemented shooting. I'm still debating whether to allow the player to fix the direction of shooting in a Llamatron kind of way, but I'll do that as part of the gameplay tweaking later when I determine the speed of all the movement.

Whenever writing games that involve some kind of "map" (i.e. most of them), there's always the perpetual problem of how to design it. I always like to get something up and running as quickly as possible, so instead of writing a custom mapping program, or implementing a way to "design-as-you-play", I simply use a spreadsheet program (OpenOffice of course). This is a picture of the map data for the dungeon shown in the screenshot:-

As you can see, by using colours it makes it far easier to see the layout of the map, and when saving it as a CSV file, all the colour is stripped from the file leaving a nice flat file of data for the import code to read. Designing the map couldn't be easier once all the different sections have been placed at least once; it's just a case of copying/pasting about, and then re-saving as a CSV.

Another bonus is that any hackers can edit the CSV files and make up their own maps very easily. My other games Laser Tactics and DangerMan (among others) use this method, though as of yet nobody has told me that they've been bothered.

Friday, May 02, 2008

Metal Glove Solid: Spooky!

Development is steamrolling along now, crushing all that dare to question my lack of motivation which typically aflicts my projects like a sudden freeze spell.

My Gauntlet remake now has monster generators (dark grey) and ghosts (white). The screenshot below shows a game in progress, as a terrified purple warrior (fnar) runs around in circles awaiting a programmer to implement a "shoot" feature so that he can destroy the ghosts that are hurtling towards him.

Next on my ever-expanding todo list is to make up some proper maps. I've been thinking about the kinds of maps I'll have, in order to make things interesting; probably an open area (forest?), and long trek (like Level 2 on the original game) and a maze. Other suggestions on an epostcard please.

Friday, April 18, 2008

Metal Glove Solid

I've decided to do another remake! "Pray tell!", I hear you say. "What game have you decided to direct your God-like programming skills at this time?". Well, the following screenshot should make it pretty obvious:-

Okay then, maybe not. Here's a few other hints: it's a top-down view; the blue square is a wall, and the white square is either a warrior, wizard, elf or valkyrie.

You should have got it by now. Yes, it's going to be a Gauntlet remake!

In order to get something up-and-running as quickly as possible, I've forgone graphics for the time being. Despite it not looking like much, the white square can be controlled in 4 (count 'em!) directions, and all the sprites have collision detection. I've developed a way to have as many sprites as possible on screen (and across the whole dungeon) without slowing down the collision detection or the frame-rate. It works with just two (as proved by the screenshot), so I don't see how it can fail with 200 or more. I may patent it, so details cannot be revealed just yet.

Next step: Ghosts (or grey squares).

Thursday, March 20, 2008

Microsoft Helpline?

Sorry, this post falls under the category of "rant" rather than "games".

When you buy a washing machine (or pretty much any kind of consumer-electronics item) there is usually a telephone number you can call if you have any problems, at no extra cost over and above the cost of the item itself.

So why doesn't a company as rich as Microsoft have a number you can call if you have a problem with Microsoft software? Okay, they have far more customers than, say, Hotpoint, but equally that means they much more profit from all of those customers and could afford to man a helpline.

The reason why a number like that would have proved useful was when I was trying to install SQL 2005 onto Windows Web Server 2008. The option to install anything apart from the "client modules" was greyed out. It turns out after to-ing and fro-ing emails that it's not compatible (after initially being told the opposite).

What? Microsoft can't even write an operating system that is compatible with a program as common as SQL 2005? Yes. Who would have thought that someone wanting to run a website might want to run SQL 2005?

The solution, once I knew the problem, was simple. Install MySQL. They (along with most other people) can write software that works on more version of Windows than Microsoft can.

Monday, March 17, 2008

Why No Open-Source Adventures?

I've seen it commented before, and I've had a good look myself, but there seems to be a distinct lack of open-source free adventure games. However, it seems to me that reason is obvious - there's not much fun in writing them.

The fun of playing an adventure is wondering what's going to happen next; where the story is going, what you might see. But as the programmer, there are no surprises because you actually have to create it (and test it, again and again). As the programmer, you are the one person who can never appreciate the adventure for what it is, so it would be quite a sacrifice of your time to actually write one.

Still, I did finds this link to free adventures. I've never played them though, so I don't know if they're any good.

Monday, March 10, 2008

Announcing: Space Jihad

In between planning epic strategy roleplaying adventures that I'll have trouble completing in my lifetime, I like to knock up a quick and simple arcade game, and I now present another one.

Called Space Jihad, it's barely got a pixel of originality in it, so hopefully you won't have played any similar games before. It's like Tower Defence, but side-on. And IMHO it's quite fun to play.

I spent more time fine-tuning the game balance than actually programming it, and there is a lot more strategy to it than may meet the eye. Strategies like what kind of installation to buy and when, and then where to place it; all of these play a part.

And as with a lot of my other games, if you log in to the website before you play, it will save and show your high-score for the rest of the world to try and beat!

Thursday, February 28, 2008

Games Should be Fun - All the Time

I was playing Resident Evil 4 on the PS2 last night. It's a very graphically impressive game. However, it does have a major flaw (which it shares with most other games) - it's not always fun to play.

[Spoiler warning] If anyone out there has RE4, it's the bit where you have to fight the first giant/ogre thing (see right). It's one of those boss battles where you have to guess where the weak spot is, and also what else you have to do. If you don't work it out, you'll be stuck on the level forever, and the only way I can see of working it out is to spend a whole day on it, or look on the internet. In this case, you have to shoot it in the head until something bursts out of it's neck, and then run up to it and jump onto its back and stab this thing. You have to do this 3 times as well, so hopefully you won't run out of ammo.

The problem with the bit in question, as well as getting a bit tedious, was that it is preceeded by a 30-second movie clip that you can't skip through. Every time you die, you have to run back to the same point in the game, and then sit through the same clip again. Why do companies think that we want to watch the same clip over and over again? To massage their ego?

The various GTA (and a lot of other) games suffer from this problem as well. If you fail at a mission for example, you then have to go through the build-up to the mission all over again (reloading the game, running to that area of the map to get the mission, run to the area of the map where the mission takes place etc..). This wouldn't be a problem if these bits of the game were fun, but running across a map is rarely fun, especially the second (or third...) time round.

The bottom line is games should be fun. All the time.

Monday, February 25, 2008

Laser Tactics - CPU v CPU

One of the best ways of testing your AI is to get it to play against itself. Often this isn't possible as most computer AI is very simplistic, involving standing still and shooting at the player, or following a set route and waiting for the player to trigger some change.

However, the AI in Laser Tactics is quite advanced (IMHO), and there is AI available for both sides in nearly all the various missions and objectives. So I quickly added the code so it's possible to select AI for both sides (previously you could only choose it for one side). The game also has a "Ghost" mode, which allows a player to view the game through the eyes of a unit that is CPU-controlled.

Once I'd set all this up, it's actually great fun watching the computer play against itself, especially when the missions actually have objectives (meaning it's not just a case of watching the units wander around shooting on-sight). And of course, it's ideal for checking that the AI works well and doesn't have any of the usual problems that AI suffers from (like get stuck in a loop or end up wandering in the wrong direction). Add to this the "randomly-generated map" option and it almost feels like I'm watching two humans battle each other. Place your bets now!

Monday, February 18, 2008

Blindingly Obvious Java Tips #2

Todays tip is all about getting your game to run at a consistent speed. You may not think it a problem on your new game, since you probably crammed in enough features to keep the CPU busy for just the right amount of time, but once you try and run it on a Cray (since surely that must have a JVM??) you may find it slightly unplayable.

So, to stop it running too fast: First, define a variable of type "long" at the start of your program for how long you would like the program to take over each game loop. In the example below, I've chosen the name "LOOP_DELAY" for this var, and I usually give it a value of around 25. You'll probably want to tweak this amount. Also, declare another long called "start_time".

Anyway, at the start of your "game loop", write something like:-

start_time = System.getCurrentTimeMillis();

This will store the current time when the computer started the game loop. Finally, at the end of your game loop, write something like:-

long wait = LOOP_DELAY - System.currentTimeMillis() + start_time;

(You'll need to wrap this in a try/catch BTW). This bit of code will make the program pause for a certain amount of time at the end of each game loop, that time being the number of milliseconds you wanted it to take over each game loop, minus the amount of time it took to actually process the code in your game loop. This will cause each game loop to take a consistent amount of time, assuming that the time it takes to process the code in the game loop isn't longer than the time you want it to wait for!

Friday, February 15, 2008

Announcing Laser Tactics!

If you've read one of my earlier article, you'll know that I've decided to "re-released" Nuclear Graveyard under a new name - "Laser Tactics" (kindly suggested by Charlie). And now I've finally got round to it. I've given it a few more tweaks, and I'm pretty pleased with it all. I've taken a few more screenshots to celebrate, which I'll be sticking on the website as soon as I can.

The only problem with it is that it's not an FPS, and it's not turn-based, and most people expect a game like this to be either one or the other. If anybody reading this decides to give it a go, please bear this in mind: Your unit's APs are replenished in realtime!

Thursday, February 14, 2008

Blindingly Obvious Java Programming Tips #1

(This is number #1 in my intended series of Programming tips for Java. They are probably blindingly obvious to most people, but they have passed me by until recently, and it doesn't do any harm to mention them in case anyone else has missed them to).


Todays tip is all about setting threads as "Daemons".

I used to have a problem in my games that used multiple threads, in that it was very hard to get them to actually end. Even when all the windows were closed, there was still a process running in the background. I usually fixed this by adding a "System.exit(0);" to the code when I wanted it all to end, but this is certainly not the best way to go about it.

A Java program ends when there are only "daemon" threads running. This means, in short, that any thread which isn't what you would call the "main program thread" should be marked as a daemon so that it ends when the main program thread ends. This is simply a case of writing "mythread.setDaemon(true);". Incidentally, threads are not daemons by default.

Wednesday, February 13, 2008

Programming Affects the Mind

I've long suspected that spending too long programming affects the way the mind works, and I've finally come across a quite-good example:-

My wife innocently asked me if our car boot was locked. Being a programmer, where accuracy and logic is paramount, my mind was instantly plunged into a spagetti of possible answers and their respective problems.

Our car's boot (trunk for Americans) can only be opened with a key or by using the lever by the side of the drivers seat. There is no button on the boot to open it if the car is unlocked, which it was. So was the boot actually unlocked? One possible answer is "no", since it couldn't be any more unlocked than it was. However, giving this answer implies that it was possible for her to go out and open the boot, but I'm not sure she knows about the lever (since she's not a driver) and she doesn't have a key, this wouldn't work. So is the answer "yes it is locked", since the boot cannot be opened directly? But this can't be correct, since it is openable without a key, which is presumably the definition of "locked". Is the correct answer "sort of"? No, not if you want to be helpful. Is the correct response to explain how the various boot locking mechanisms work or describe where the lever is? Probably not, since it would take too long.

In the end I just ummed and ahh'd and said I'd open it for her.

Monday, February 11, 2008

The Problem with RTSs

One problem is knowing whether to put an apostophe in the word "RTS's". However, the other problem I have with them is always feeling that it's pointless trying different actions; either they won't make any difference, or it's all down to chance anyway.

I really want to enjoy RTS's, ever since I played what I think is the very first one: Stonkers (not Dune II!). I've not played many of the later ones, but I've played C&C, StarCraft, Age of Mythology, and quite a few free ones, and even written my own.

The typical scenario goes like this: I select a group of units, move them towards the enemy, and err, repeat. All I can do now is watch them do battle. Maybe my units will win, maybe they won't. Should I try some newfangle tactics? Does it make any difference if I have some units on the left side of the enemy and some on the right side? Or maybe I should build a tank instead of two foot-soldiers? Is it better to have a tank than two footsoldiers? I don't know. All I know is the units keep shooting at the enemy and eventually some of them die. The tank is more powerful but has a slower shot rate, but I can't be bothered to check the "stats" to see if the more powerful gun with a slower shot rate is better than two weak guns with a faster shot rate.

I might be fighting another small skirmish in another part of the map while this is going on. When I go back to the original skirmish, some of my units have survived and the enemy seems to be dead. Or did they retreat? And if they did, how much damage was inflicted? Who knows. I'm no closer to knowing what the best tactics are, or if it makes any difference.

So by now I've lost interest and decided to play an FPS or something.

Friday, February 08, 2008

Name of the Game

I've been toying with the idea of changing the name of my game Nuclear Graveyard (again), since it has nothing to do with anything nuclear, and even less to do with graveyards. The reason I chose it was because I got a DynDns domain name, and I chose "ng" as the prefix to the standard domain "". I chose NG as I was thinking of the phrase "network game", since at the time I didn't have any idea what I wanted to do with it! I then decided to give my new (at the time) game the initials "NG", and the rest is history.

I have toyed with the idea of giving it the ridiculous name "Space Nazis", just to see if it would perk up interest. However, this would be misleading as most people would expect some wacky platformer or something, whereas Nuclear Graveyard is a 3D multi-player "serious" strategy FPS game.

I might just change it back to its original name "Laser Squad 3D", since that sums it up perfectly if you remember the original Laser Squad game. I think it's a bit of a cliche to add "3D" to the end of a game's name though, which is why I changed it in the first place.

So, watch this space...

Thursday, January 31, 2008

A* Algorythm in Java - Download

I wrote this code a while ago, and I've finally got round to putting it here for public use. It's the A* path-finding algorythm, nicely self contained and ready for use. It can run in a thread if required, and to use it, you can simply write:-

AStar my_astar = new AStar(mymapclass);
WayPoints route = my_astar.findpath(start_x, start_y, end_x, end_y, b_run_in_thread);

mymapclass must implement the IAStarMapInterface (included), which has 3 methods: getWidth(), getHeight() and isTraversable(). This tells the algorythm where it can and can't go. The class WayPoints is just an ArrayList of Points, giving the route.

I've used this code in all of my games (that require pathfinding) like Nuclear Graveyard and TremulousHulk.

(For those not in the know, the A* algorythm basically finds the closest path from one co-ordinate to another, taking into account blocked points.)

Monday, January 28, 2008

Tiny Web Server

There seems to be a durge (if that's the right word) of web servers called "Tiny Web Server", all vying to be the smallest web server. And now there's another one! I don't think it's the smallest, but it is a full web server for delivering static pages and documents.

It's written in Java, and the source comes to 23K. It should be pretty easy to extend to make it write dynamic web pages, so it should be ideal for starting your own web server project, or just giving you an idea of how web servers work. Or how not to write code. Take your pick.

It's available via SVN here. (That's svn://

Wednesday, January 16, 2008

Originality is a Curse

...That's probably why most games companies still churn out mostly FPS's and endless sequels to those FPS's.

I've written a game called Nuclear Graveyard which (IMHO) has a bit of originality: it's what I call pseudo-realtime. This means that rather than be proper realtime, it uses action points (e.g. walking forwards costs 1AP) but unlike most games that use APs, the player's APs are replenished automatically as both sides use them up.

Unfortunately, when most people play it, they don't seem to read the instructions, and assume that it's either a normal FPS ("why can't I move?") or a normal turn-based game ("How do I end my turn?"). I can't blame people for not reading instructions - who does? - but I've tried my best to make it self-explanatory, and included a tutorial, but to no avail. What do I do?

Friday, January 11, 2008

Multiple Platforms, Multiple Databases

SQL Enterprise Manager (or SQL Server Studio, as M$ like to keep changing the name) isn't a bad program, but obviously it only works with MS SQL, and only on Windows. Since I use MySQL, PostgreSQL, Oracle and MS SQL on Windows and Linux, I've been looking for a single program that can handle all of these databases, and I've found one: Aqua Data Studio.

It's written in Java (though there are other versions available) so it runs on Windows and Linux, and it easily connects to almost every kind of database, allowing you to do all the impotant things that SQL Server Studio does, like view the tables, edit the data, run queries etc...

I'm not affiliated with Aqua Fold in any way, but I thought I'd mention a program that is really useful and pretty good. It's free for personal use as well.

Wednesday, January 09, 2008

Domain Name Front Running

I wondered if any companies do this (i.e. you search for a domain with the intention of buying it, and the company that you use to search for it buys it up, knowing that you want it). And yes! Of course it happens...

Friday, January 04, 2008

My New Language

I have finally abandoned my attempt at a new Lisp-like language. I don't think I realised how hard it would be. Converting a text file of my new language into an AST (an active syntax tree) was the easy part. The hard part was storing variables (globals v locals, scope, identically named vars overriding each other, etc...) and calling functions (i.e. replacing the params in the function) among other things.

I should have planned it all better as I was also going round in circles with my language definition: I was changing it to fit one circumstance, but then forgetting why I'd done that, and then I'd change it back again to fit the original circumstance.

However, the final nail in the coffin was my thought "what am I going to do with it when I've finished?" It obviously had no IDE, barely any libraries, no debugging facilities, probably lots of bugs, and probably lots of flaws in the design. Why would I, never mind anyone else, choose to use it when there's plenty of other better languages out there?

Still, it's given me a new insight into how languages (might) work, and hopefully made me a better programmer. Now onto my next project: a mega-multithreaded program, where every little aspect has it's own thread. It's how the human body (i.e. cells) work (I think) so it must be a step in the right direction. And with all this talk of parallel programming, it can't do any harm for me to fail at that as well.