Programming

Messing About With The Site

0

So, ive been tweaking around with the site quite a bit today instead of coding. I actually found a WordPress theme that I really liked, so I went ahead and installed it with a few other bits and bobs. The theme is called Mystique and is one of the free themes offered by digitalInature.

The old theme had a lot of things I couldn’t do at all, whereas with this one I can now do twitter feeds, ajax to display thinks like post comments and tags (by clicking the icons on the right hand side in the top of the big grey box) and a few other things. I also spent some time fixing the Gravatar stuff, so if you have an account at gravatar.com (free) this site will now use your avatar from there.

There are still a few things left to do, I plan to list a complete discography of all my games and projects, and for the ones that I have a lot of fond memories for, I will eventually list pages for each of those items. Feel free to remind me of anything special I did years ago that I might have forgotten about!

Ive also started working on an Amiga section, and added a couple of things to it to get me started. Enjoy!

Annoying Problems With std::vector on Linux Vs. Windows

1

So I spent most of this weekend working on getting my engine to compile correctly under GCC/Linux (Ubuntu 10.4) and ran into some serious headaches. It’s been a few years since I last built anything on Linux at all (last time was when I did some work for Epic Interactive and their linux ports) and took me a little bit to remember how makefiles worked etc. and bring my SDL code up to date.

After compiling the code, I was having a hell of a time trying to figure out why it would always cause a segmentation fault after the first few seconds of running. Here is what gdb had to say:

[Thread debugging using libthread_db enabled]
[New Thread 0xb3da2b70 (LWP 4813)]
[Thread 0xb3da2b70 (LWP 4813) exited]
[New Thread 0xb3da2b70 (LWP 4815)]
Program received signal SIGSEGV, Segmentation fault.
0x0807c27d in ?? ()
(gdb) backtrace

#0  0x0807c27d in ?? ()
#1  0x08083eee in ?? ()
#2  0x0807e59f in ?? ()
#3  0x08082231 in ?? ()
#4  0x08062d98 in ?? ()
#5  0x0804deaa in ?? ()
#6  0x0806659b in ?? ()
#7  0x00369bd6 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#8  0x08049891 in ?? ()

Unfortunately, that doesn’t really tell me much of anything 🙂 After a little bit of playing around with the manual pages in GDB, and some serious googling, I was able to get the app to compile with some debug symbols. This is the output:

[Thread debugging using libthread_db enabled]
[New Thread 0xb3da2b70 (LWP 3711)]
[Thread 0xb3da2b70 (LWP 3711) exited]
[New Thread 0xb3da2b70 (LWP 3713)]
/usr/include/c++/4.4/debug/vector:265:error: attempt to subscript container
with out-of-bounds index 0, but container only holds 0 elements.
Objects involved in the operation:
sequence "this" @ 0x0xb162bf4 {
type = NSt7__debug6vectorImSaImEEE;
}
Program received signal SIGABRT, Aborted.
0x0012d422 in __kernel_vsyscall ()
[Thread debugging using libthread_db enabled]
[New Thread 0xb3da2b70 (LWP 3711)]
[Thread 0xb3da2b70 (LWP 3711) exited]
[New Thread 0xb3da2b70 (LWP 3713)]
/usr/include/c++/4.4/debug/vector:265:error: attempt to subscript container
with out-of-bounds index 0, but container only holds 0 elements.

Objects involved in the operation:
sequence "this" @ 0x0xb162bf4 { type = NSt7__debug6vectorImSaImEEE; }
Program received signal SIGABRT, Aborted.0x0012d422 in __kernel_vsyscall ()

This error is generated whenever I try and set up Vectors in the code to handle some rather simple arrays. I even tested the code where I created a vector, and checked its size to see if it was 0 and was still able to create the same problem. This is how I did all the safety checks in my code; if Vector.size() > 0 { Safe To Do Some Stuff, If Size Was Legal For Array }.

So, for whatever reason, they behave very differently than in Windows. I really don’t have the time to figure out the specific reasons, though after a couple of hours of googling trying to get GDB to display as much information as it did, it turns out a lot of people have issues with vectors doing strange things on Linux.  As a result, I will be removing that code from the project to make sure it’ll compile and run on all 3 platforms (Windows, Mac and Linux) without any further issues! Lucky for me, it is an easy fix!

Using MorphOS Again For the First Time In Years!

0

Finally getting somewhere 🙂

In the last week or so, I have been convinced to un-box my Pegasos II motherboard and boot it up to have a play around with it. It has been at least 3 or 4 years since I last even looked at the board, let alone turned it on. I got the board when I was employed with Epic Interactive, as I ported several games to MorphOS/Mac/Linux at the same time. At that time, I was using MorphOS 1.4 which was very buggy and not very intuitive. While it was nice to be able to run all of my old Amiga apps again, the instability of the OS made it a very troubling task. I still remember the nightmares I had trying to get various ports to build correctly without crashing the system, or editing code changes. Good old days 🙂

After playing around with the Open Firmware (which I am quite sure is horribly out of date) I was able to figure out how to boot the Peg from the CD, and install the OS to the hard drive. It took me a little while to get used to where the different settings were, then I couldn’t figure out why it wouldn’t see the HD, until I realiszed it wasn’t in RDB mode. After that, slapped on a few Amiga partitions and bingo, off it went.

My experience in the short time I have played with the OS is that it is much nicer and cleaner than it used to be. It has come a long way with the new Ambient and other tools. I will take a full play with it and even get it online in the next few days to see just what is out there and available for it. I was very happy to see that they finally included a TCP stack as standard that didn’t have to be registered by itself to use fully. As much as I loved Miami (and did pay for it back in the days of the Amiga), I don’t have my keys anymore and wasn’t able to get Nordic to re-issue them to me.

As much as I would like to start making games for MorphOS again, im not sure if I want to pay the $111 euros to get a license key for something I won’t use all that often, and still not even sure if it’s something thats worth developing for. Based on the price alone, which is a little bit less than buying the new Windows 7 operating system upgrade, i’m sure that there are many people who are still only using the 30 minute restricted version. I have a few games that could be ported, but they will have to wait for a while.

If any MorphOS developers have any free keys they want to give away, feel free to throw one this way 🙂

New CNC Bender Completed – ‘Sir Clive’

0

I have finished working on my 3rd CNC bender, named “Sir Clive” after the great Sir Clive Sinclair. He received a complete refit and various other components. Details of this hardware/software project can be viewed at this link:

https://www.andykellett.com/cnc-projectshardware/sir-clive-bender/

You can also read about the custom software I wrote to power the machine, named FlexIO, at this page:

https://www.andykellett.com/my-discography/flexio-classic/

This project has been a lot of work, and now it is ready I can finish some other projects. Thanks!

New PilesOTiles Version Underway… Again :)

0

Great news for all PilesOTiles fans, is that I have started working on the game again. I have been experimenting a little with online high score tables and banks, and am slowly starting to come up with a system that I like that will let people record their stuff online.

In the same area, I am also looking into ways to download new board and game data automatically. Id still really like to have a ‘Challenge Of the Day’ feature where you can download the days grid and attempt to get your best score for it, then submit it online to see how you did against other people from around the world.

Other features that will be added to the game include a better level designer with online submission capabilities, some tools to assist with tileset creation, and additional game types. More will follow on this subject in the future, as right now I am trying to finish some secret projects for the Evoke! demo party in August. It seems a long way away, but in reality, I feel like I am running out of time!

Suggestions for additional game features & ideas are welcomed in the comments sections 🙂

Updated OSTicket Install At F1-Software.com

0

Well, after receiving a shit load of spam for a while, and repeated failed attempts to get the site to cron properly (resulting in some tickets taking days to notify me they arrived) I have finally broken down and done the upgrade. This new upgrade also allows CAPTCHA support.

Must admit, it went very smoothly and no problems were encountered. Should anyone need to contact us, you can use http://www.f1-software.com/osticket/ which also has a working 5-min cron job \o/

Optimizing PNG Images With OptiPNG

0

I am currently working on a project that has lot’s of rather large PNG files (2048×2048 Pixels) and have been thinking of ways to help compress some of the data to a much more manageable size (currently about 80mb of data). After a brief search on the web, I can across OptiPNG (Homepage: http://optipng.sourceforge.net/ )

OptiPNG basically takes the image, and runs a whole series of tests on it to try and compress the data inside of it as much as possible, without affecting the overall appearance of the image. It has a lot of neat tricks up its sleeve, and will even try a range of compression options to find the best one that suits your image, including scaling to 8-bit palettes and more. The tool is command-line and runs fine in a Vista shell window.

After running the tool on 6 of my images, I have already saved about 600Kb of disk space, which is great 🙂 I thought I was doing well before, but now I have saved a little more, I am very happy. Definately reccomend the tool to anyone who uses PNG files on the web and needs to crush them down in size.

Go to Top