Thursday, March 28, 2019

Super Spectrum World

If you're like me and a big fan of the ZX Spectrum (especially the games) please take a look at Super Spectrum World, my homage to lots of classic Spectrum games.

I wrote this as a test of the features of LibGDX, and so far it's been great.  If you lament the end of Java applets and were looking for a way to create apps that could be embedded in a web page, look no further.

Currently the game has about ~20 screens, all with graphics taken from various games.  In JSW style, your objective is to collect as many glasses as possible, and keys are O, P and Space.

Have fun!

Wednesday, March 13, 2019

Why does anyone use MS SQL Server?

Everything about MS SQL server seems designed to make it as difficult as possible to do anything.

Want to restore a backup database?  You'd better be restoring to a database of exactly the same version or else you're not allowed.  Even if you're restoring from v10.000.000.1 to v10.000.000.2, that different version number will stop you.  This might make sense if you were restoring to an older version, but you will be blocked even restoring to a later version of the database, which could and should be able to understand an earlier version.

Want to import an SQL file?  You may think that SQL Server Studio would have that sorted (and indeed it does for small files) but if you want to import an SQL file of more than 250Mb, get ready to use the command line.  And if you have any errors in your SQL, don't expect SQLCMD to tell you the correct line number!  And you are bound to get an error; I don't think I've ever managed to directly import an sql file (that was directly exported from MSSQL) without having to manually edit something in it first.

And then there's "named pipes" and "instances" to adde extra layers of complication.  And different versions: LocalDb, SQLExpress, SQLServer, each with their own features and problems.  Some will work with IIS, some won't.  Apparently LocalDb is "a SQL Server Database Engine that developer them write and test Transact-SQL code without having to manage a full server instance of SQL Server."  Why not just run a full server instance, or have MS realise that it's just too cumbersome?  That developers (unlike end-users) have seen through the looking glass and know better than to use it, but are forced to in order to develop for it?

Tuesday, March 05, 2019

LibGDX Setup Problem

LibGDX is a complex technology, which utilizes lots of other complex technologies, so getting a project up-and-running the first time can have a few problems.  Here's a rundown of the problems I experienced, along with solutions. 

This article assumes you are using Eclipse and running the default "blank" project (which shows the LibGDX logo).

Eclipse Error: GWT jar missing:

Do an Eclipse "quick fix"

Eclipse Error: Web.xml missing:

Move the web.xml to \war\web-inf

Running the program, get the error "File not found: badlogic.jpg"

The application will fail the first time. Open the Run Configuration you just created and set the working directory to the android/assets/ directory.
Go to Run => Run Configurations.. => choose DesktopLauncher, Arguments Tab => Working Directory => Others then browse to yourproject-android/assets/ and click Apply

Eclipse Error: EntryPoint not found

You need to download the Gradle plugin for Eclipse, from

Running Gradle, get error "could not reserve space for object heap"

Check you're using 64bit java for Gradle.
If that doesn't work, add the environment variable "_JAVA_OPTIONS" (with the underscore) and set it to something higher, like "-Xms256m -Xmx2500m".

Hopefully, once you've got through all those problems, your project should work!