24 th

Intergalactic space monster chess

One new piece is defined in this variant of chess; the intergalactic space monster (ISM).

  1. The ISM starts off the board and enters the board (under the control of a player) for the duration it is being controlled.
  2. The ISM can be controlled by a player if that players’ king is currently on the 8th rank.
  3. The ISM is huge, it takes up 5 squares in a plus (+) pattern.
  4. The ISM can only move to a location if the four edge locations are free, any piece (including the players own) that was in the center of the plus will be removed from play; it was gobbled up by the space monster.
  5. The ISM must entirely reside on the board (ie it can’t take a piece on the edges).
  6. There are no other restrictions on the movement of the ISM.
  7. Only one ISM exists, but it can be controlled by both players.
  8. The ISM is formidable and intimating, it can only be taken by a knight landing on its central square.
  9. When slain the ISM is permanently removed from play.
5 th

FireReport 2 (VIC/AUS) – Client Edition – Project added

I have just set up a project for the work I have been doing on the new FireReport 2 client, and I thought I would share with you all an early screenshot of how it looks, most of the features don’t work yet because I’m still working on it but the look and feel is coming together. Enjoy!

FireReport2 Early screenshot of development

FireReport2 Early screenshot of development

7 th

Why I use haXe

My view of haXe,

Warning the following paragraphs are very philosophical (Practical ones are further down):

As someone who has been open to many programming languages over my short time programming and someone who simply moves on when I feel something isn’t working for me; I find that haXe is something that I just can’t progress from, I just cant ‘better it’.

I had found in the past that the amount of time I spend writing in one particular language relates to two key factors, how much I need to use that language to get the result and how easy I find that language to grasp. But with haXe the grasping period was much shorter, and I attribute this to my small build-up of knowledge in a variety of languages. Until haXe I had never found one that really suited me and that just felt right, they were either to hard to understand or just plain useless; well at least useless from my perspective.

HaXe had allowed me to be a lot more expressive with how I write, I don’t mean the ‘expressive’ as in the quality that everyone talks about languages having I meant the ability to just have an idea and run with it, to try something out the way I feel is right. Whether it succeeds or totally fails.

HaXe has been a very easy learning curve for me, with my general background in c style languages and AS2/3, and I have not really had any trouble picking it up. One thing that always stymied my progression with a new language was understanding the concept behind that particular syntax/framework, but even once I had passed that hurdle I would often find that the language was in itself either limited, limiting or both. With haXe I’m neither limited nor am I finding the language itself to limit me. With haXe there is no glass ceiling, but the is a glass floor, in that there is no limit to what you can do but you can clearly see how you got there

Picking up haXe isn’t like picking up some sticks and making fire, but nor is it like going out and buying a oxyacetylene set and starting a fire with that. In that sense haXe is closer to a match, that you can reuse. It follows almost all of the conversions of something that your used to but adds useful new features. But to do so it doesn’t reinvent the wheel entirely, it just fixes the rotten bits. (ok fewer analogies in the next paragraph)

Practical things:

The language is simple easy and standardised, whilst still allowing the programmer to go as far as they like.

Your can write a very high level piece of code or go and fiddle with the little bits and pieces (to a serious degree on some platforms)

HaXe doesn’t dictate what you can and can’t do on any one platform, it gives (or plans to give you) full access to everything, but where it can it adds a standardised way of doing things.

The mailing list is very helpful and responsive and the forum is even picking up pace now.

The language is constantly being changed (in minor ways) with new things added in every release.

There are very few real bugs coming through for the main API and even fewer for the compiler.

Every one talks openly about the language its direction and the direction they suggest for haXe (and or course why it should take that direction)

And finally haXe isn’t some big private venture by a large (or even small) company to make money out of you as a developer, instead it is created for all developers to use, build upon and improve. And that is why I feel haXe is where I want to be. (now to go back to coding)

6 th

Announcing the return of Fire Report (VIC/AUS)

I said previously that the next client would be flash based and now it is time to create it.

I have, over the past couple of days, started to pull together the new things that I need to create my new Fire Report (V/A) app, like I said in the past I will be using flash, but more that that I will be using haXe both initially to create the new client (haXe/flash9 + Google Maps Flash API) and later to rewrite the back-end server (haXe/php).

So far I have begun writing the interface classes required to use the Maps API from haXe, and apart from a few snags that the haXe community is helping with I is going quite well, though I an still scouting out my options in terms of what I can make the API do.

I have also sent my first correspondence to the CFAs webmaster with relation to the new client, it seems I will need some info that I can’t get by myself on the Updates & Advice RSS that I plan to use in this new version. I’ll have to wait and see what their response is. In the mean time if you happen to have a recent copy of the RSS feed then please email me, just add a comment and I will get in touch (that way I will inherently have your email address).

And now for the interesting part, features I hope to include in this client:

  1. All the things I had in the first client,
  2. Include Updates & Advice information & warnings (requires back-end server rewrite)
  3. Proximity checking ( you give it a list of places and it gives you the current Incidents & warnings and the distance to each for each place).
  4. List of places that couldn’t be geocoded properly,
  5. Ratings for each incident and warning indicating accuracy,
  6. List of changes,
  7. Sound,
  8. Personalized email alerts (not shaw how this would work),
  9. Offline/Not recieving updates/updates out of date warning,
  10. Many visual enhacements,
  11. – Add new feature here –

This list will probably grow, feel free to add any suggestions as comments below. As you can tell I’ve had this in my head for quite some time now, since almost the very first map that I tried to create, wow how things have progressed since then.

6 th

Where I’ve been

Ok just to explain breifly, I’ve been

  • on holiday,
  • working on small comercial projects,
  • lazing about,
  • sleeping (alot of sleeping),
  • relaxing,
  • doing the odd bit of work on CELT Display or one of my newer projects that you might get to see soon,
  • other stuff.

But now as the end of my holidays approch it is time to get back into life and begin waking up before noon.

This should be accompanied by an increase in productivity, shortly followed by a slight decrease in productivity over time as uni ramps up.

14 th

Anounceing ^Clock, an experiment in time

Just a quick post for the moment,

I’ve been steadily working on CELT and DeepEnd but I recently found a few days where I wasn’t sure how to proceed on them, and needed a break from them in general, and so I resurrected an on idea, for an experimental clock.

The backing idea came about when I thought about how I visualize my day, I had soon ascertained that I visualize it on a 24 hour clock with 12am (midnight) at the bottom and 12pm (midday) at the top. But then a most unusual realization hit me, I wasn’t spacing the hours evenly when I thought about them, and I even expanded the current hour on the clock. After much meditating on the workings of the clock I eventually decided it would be possible to program such a clock into reality.

And so over a three or four day period I began writing the clock in my favorite language, haXe. Of course I was targeting flash9 to ease writing of the actual display code, witch makes up a large portion of the code. Having the ability to map the hours to different places on the clock was easier enough to code, having thought it through and decided that I was probable that different people visualize the hours in different places, but the expanding/magnifying took several hours to understand fully and implement correctly.

I plan to post ^Clock as a new project on my project page in the next day or so, but please bear in mind that it is an experiment and lacks features like saving the clocks configuration, different types of transitions between hours and the ability for the user to change the colour scheme.

If you do view it (when I put it up), then you will probably want to know how to use it, well, if you move your mouse to the marks that indicate the hours two yellow circles should appear, holding SHIFT and clicking will add a new handle to that time, releasing SHIFT and, dragging the handle will remap that time to the new place on the clock and all marks will move to accommodate the change. If you drag a handle and YOUR CURSER moves outside of the yellow lines THE HANDLE WILL BE DELETED.

Lastly this post in not as short as I thought it would be and I’M A PROGRAMMER NOT AN ARTIST so don’t expect some fancy clock, it works and that is that, ANY SUGGESTIONS for new clock features will be gladly appreciated.

Project: ^Clock

Clock: Flash9 Clock

24 th

Fire Report BETA Released

Last Friday (20/2) saw the public release of my long term project Fire Report, albeit in its 3rd incarnation. The first two succeeded in opposite directions before ultimately failing, this time both direction were brought together to create a working solution. OK so now you probably want to know one of two things, either:

  • Where can I find this?, or
  • What is this?

Both of these questions can be answered by a visit to the Google Map Fire Report Direct Link.

What you will see will look like this:

Screenshot: Mapplet client (BETA) just before submision to Google.

Screenshot: Mapplet client (BETA) just before submision to Google.

As I believe in free and open source software (FOSS), and the rights for anyone in the community to use such a solution, this project in its entirety are licensed under the GPLv3 unless otherwise specified; like in the case of borrowed code. Of course as with the nature of the solutions client side Mapplet that code is already available by searching for it on Google Maps Directory under “Fire Report” and clicking “View Source”. The server side code (PHP) will be avaliable soon; I just need to clean it up a bit.

If you have looked at the Mapplet, read through “help” and “about”, and still don’t understand what this project is then here it is in a nutshell:

The Fire Report (VIC/AUS) is a software project hosted on with the purpose of viewing the CFA incidents from the CFAs website on a map of Victoria, and future versions will include features above and beyond that that the CFA provide.

This BETA version has all the features of the CFAs incidents summary displayed on the map, all feed through an auto updating solution that can be paused/resumed and that caches everything except the hit counter. All caching is provided first by the server here and secondly by Googles servers before it reaches the masses. If your curies about the hit counter the stats can e viewed on my newly created statistics page; be forewarned this is a pretty basic page.

If you find any spelling mistakes, hey I’m a programmer not a ‘person that writes stuff’, anywhere throughout the project I will gladly correct them, just send me a message, either through email, the project or a comment here.

And now for some of the technical background, some of which I haven’t spoken about anywhere else. If you either get bored or confused by this kind of thing you are very welcome to got back up to the direct link to the Mapplet and play around with it instead.

The first thing you need to understand is where is all of this data coming from, its one thing to have a map but an entirely separate thing to have something to put on it. Well first of all the CFA create the information, direct from their Incident Management System (IMS) then they put it into an RSS feed which this website collects. At this point the CFA has finished their part of the process and no more load is put on them.

Secondly my website receives the RSS information and makes use of MagpieRSS to parse (decipher) what the information is. This information is broken down and the relevant bits used to geocode (get the longitude and latitude for) the incident. Once this is done the system stores all of this information in a mySql database, all incidents older that 24 hours old are removed and thus a whole days incidents are always kept. Everything in this paragraph is performed by the file GET.php.

To ensure that the mySql database is kept updated a CRON (automated scheduler) job runs the GET.php script 42mins passed each hour, unless the script was run in the last 90 seconds and I’ll get to that in a moment.

Next we make the long leap to the client side. You the end-user enable the Mapplet at google maps, the Mapplet code itself is cached by Google. The Mapplet begins to set things like the menu up and then makes a request (cached by Google) to a file on this website called list.php, this file first checks to see that GET.php has been run in the last 90seconds, if it hasn’t it runs it, and collects the last 500 incidents (usually all of the ones from the last 24 hours) from the mySql database, puts them into a text file in a special format where each incident is on a new line and each piece of information about that incident is separated by a pipe, “|”, symbol, this text fille is returned to the Mapplet. But the websites job hasn’t finished yet, as you will find out later.

Once the Mapplet in your browser receives this data it quickly puts it into an array of incidents, indexed by the incidents id, specified by the CFA in the RSS feed. Then it needs to create that list that will appear on the left hand side under the buttons and status, to reduce load on your browser the details that appear when you click “details” and created on demand only. Now comes the really useful part the Mapplet uses the information now stored in its array to place markers on the map, some people may have to be patient depending on their computer, but this is a one off occurrence that only happens when you enable the Mapplet after that it only has to update the markers.

But instead of the boring old nondescript marker provided by default by Google the Mapplet uses this website to create new descriptive ones. These markers show type, size, age, status, and number of ‘appliances’ in attendance. The Mapplet tells the website what it wants and the website sends it back, cached of course by Google. The markers fade out the older they get, so the Mapplet simply asks for each marker to be redrawn each time the transparency needs to be increased. There are currently eight levels of transparency. Incidents up to one hour old are opaque, and for each half hour older gain another 10% transparency until they are 70% transparent. I am planning of adding a feature to change the time it takes the markers to fade out, your input on this is welcome.

The Mapplet also auto-updated its incident list, the status will flash yellow then fade back when an auto-update occurs. If a new incident arrives it will flash red then fade over a longer period back. In the case that you will be away from the map for more than about 3mins you can pause the auto-updater and it will run again when you resume it. The auto updater runs every 90 seconds.

Clicking on an incident name in the list will take you to it on the map. The details displayed when you click on a marker are also created on demand and include a copy of the icon to help you either find it on the map or find it amongst others.

And now a quick analysis of who gets the load. The Mapplet is cached by Google so anytime someone enables the Mapplet Google takes the load. Therefore this website takes one hit for that about every few hours. Next the Mapplet get the first load of data also cached by Google, refreshed every 90 seconds, list.php takes the call and runs GET.php which only runs if it hasn’t run in the last 90 seconds, if it runs it gets the RSS feed from the CFA, the if the isn’t anything new then the whole RSS feed won’t be requested, the genius here is that if one person is using the Mapplet then the website here and at the CFA take load equivalent to one user, if two people use it the server here takes a little more load but the CFA receive no more, and after that the load does not increase for the CFA, the only increase in the load here is the hit counter that isn’t cached by Google but that only has a minimalist impact on this website, the rest goes to Google. So if the CFA website is under heavy load you can be assured that the Mapplet wont be, and using the Mapplet can in an indirect way help the CFA to reduce load.

I would have added some more images but there really isn’t any point, you can just go and use it and see for yourself.

13 th

(Working Title) Compendious Equation Editor Program WT-CEEP

The first thing I should say is that the title is very much a working one, it will be changed. Firstly it’s wrong, the ‘program’ is actually a library for displaying thing in flash, past what flash itself can do. Though its mainly aimed at displaying math functions it could in theory be used to display anything that is based on symbles that has some form of simple regularity to it, any thing from a text document to a webpage to a flow chart. But back to why the name will change, I like the compendious bit but I will drop the ‘equation editor’ bit untill it can actually edit equations. Compendious comes from a correct translation of the title of the first book on Algabra, also where algabra got its name, Kitāb al-muḫtaṣar fī ḥisāb al-ğabr wa-l-muqābala, which translates to ‘The Compendious Book on Calculation by Completion and Balancing’.

The next important thing to say is that, unless you like looking at basic green boarders squares, there isn’t much to actually see yet. But I will be creating a porject on my project page and on sourceforge. I decided that versioning should start when there is actually some visible output, thus the green squares make this version 0.1.0, being major 0, minor 1, build 0; the initial build. Version 0.2.x will be when symbols can be seen, 0.3.x will be when the symbols are arranged and the ‘containers’ and ‘spaces’ work correctly, this is the PLANNED milestones. The most major steps will be 0.4.x overall and 1.0.x-rc1 of the display library this will be the ability to import and display BASIC math functions and the first semi-stable release candidate for the diplay library. Beyond this I have no clue. And there is no timeline other than I hope to reach 0.2.x within the week.

The library takes a dynamic aproch to display, the ‘containers’ that things reside in are defined mainly at runtime from an xml file, and thus change xml file and change display type, although I haven’t yet written any of the interaction functions or control structures, that can wait untill it can display more than just green boreder squares.

This project is/will be released under the GPLv3 and is written entirely in haXe (targeting flash9). More to come.

22 nd

openID support, reCAPTCHA verification

I have now added openID support and reCAPTCHA verification to the site,

You can post comments simply by entering you openID where it says “Website”, soon to say Website/openID, typing in your comment and completeing the reCAPTCHA image verification, I will still need to moderate the comment though.

Enjoy the freedom and ease.