Transitioning Site – Update Your Bookmarks

As part of the process of shutting down the project, I am moving domains.  Both http://justcheckers.org and http://justcheckers.net will now redirect to https://justcheckers.dorianpula.ca.  I will be putting those domains up for sale, so if you are interested please contact me via email at: dorian.pula at amber-penguin-software dot ca.

Shutting Down Project… :(

Hey there.   It has been a while since I last looked at or worked on justCheckers.  And I’ve come to the realization that I have lost interest in working on it.  Finally it seems that there hasn’t been a community that developed around it.

So I have come to the conclusion that I need to let go of this project and shut it down.  If anyone is interested, I am willing to let someone else take over the project.  Please contact me at dorian dot pula at gmail dot com if you are interested in any aspect of the project.  In the meanwhile I will be shutting the site, and the associated resources to it.  I will still keep a public Bitbucket repo available with downloads available, but everything else I plan on closing down.

Migration to Python

What does one do with a software project that has stagnated and needs a good push to move forward?  Rewrite in another language, obviously.

While I say the above in jest, I plan on doing just that with justCheckers.  For years the project existed in Java, and was in fact started as a way for me to learn and improve my skills in Java and later Android.  However I took a number of missteps early on in the project, focusing on a grand architecture instead of code. Later on the project stagnated because I tried to build a generic enough game engine to handle all the various variants of checkers known to man.  I should of concentrated on working code and on implementing the simplest code first and expanding on the codebase afterwards.

Today as an experienced developer I know better.  The project needs a reboot to get it back on track.  I still very much want to achieve the initial goals of creating an ambitious checkers game with lots of features.  However when I look at the code, it is not manageable in its current state.  The code needs tests, an overall  update and lots of simplification.  However I do not want to throw out the good ideas and restart with a new codebase.  Instead I plan on transitioning the current Java codebase into Python.

Historically for the justCheckers project, changing languages is nothing new.  I created justCheckers’ predecessor, Civilization Checkers in Visual Basic 6.  I rewrote the code to Java when I entered university and kept with it for years.  In the past 2 years I became part of the local Python community in Toronto, and in a short period of time has Python become the language that I am most familiar with.  I found Python as a language, easy to pick up, understand and master.  Also I find Python much terser as language when compared to Java.  Using Python means it should take much less time and effort to port the codebase to Python and then to maintain it as-is.

As for cross-platform support, the plan is to use PySide for the user interface.  PySide being hooks for Qt, definitely works with all desktop operating systems.  Mobile OS like Android or iOS is harder, but sounds like it is possible to setup something with PySide.  Worst case scenario, I will fall back on using Kivy for the frontend, if PySide proves too cumbersome.

Currently I have a branch on Github with my porting attempt so far (https://github.com/dorianpula/justcheckers/tree/pyside-migration).  Hopefully I will have the port complete by the end of the month.

Modular Gradle Build + Future Steps

Just when you thought that the justCheckers project has languished into oblivion… it is back!  As part of a larger project to “finish what I started”, I plan on getting more work done on justCheckers.  The idea is to revitalize the project and make it fun to contribute to it on-and-off basis.

One of the first things I wanted to do is make the project more modular.  While I have worked as an Android developer in the past, now a days I found myself working on Java web projects.  So while getting a single Android app out would probably be easier than having support for multiple platforms, I do miss experimenting with different technologies via this project.  That is why I decided to separate out the project into a core (or kernel) module that can be used on in various Java technologies: Android, web, desktop and console/terminal.  Also I thought it was time to revitalize the project with the experience I’ve gained over the years.  Hence I am proud to announce my rather ambitious project to target multiple platforms.

As a way to make it easier to pull this off, I’ve setup a nice uniform build automation system using Gradle.  I’ve just set it up a rough skeleton for now, but Gradle [http://www.gradle.org/] makes it fairly easy to set everything up.  I just merged it into trunk so feel free to play with it!  At the moment only the Android client builds completely.  However soon enough I plan on getting initial versions of the desktop, and web clients up.

Finally, I also miss the collaborative team that formed around the original justCheckers.  Now while everyone (except for me) has moved on, I would like to once again throw up the door to new contributors.  If you are interesting in any of the below, contact me by email [see https://github.com/dorianpula].  Also I accept github pull requests if you prefer that.

  • Refactoring the core code to be modular enough to be callable from a standard Java and Android.
  • Making a functional Android client.
  • Making a functional web app using SpringMVC and a JS-Web 2.0 ish frontend (HTML5/jQuery/Angular?)
  • Making a functional console/terminal client.
  • Adding in documentation on the project wiki: https://github.com/dorianpula/justcheckers/wiki
  • Re-skinning the project website.
  • Adding unit tests (TestNG).

Moved to GitHub

After working with Gitorious for a while, I found that the site did not work as well I had imagined as a Git service.  So I decided to take the plunge and create a GitHub account.  I found that GitHub does a much better job as Git service, and has a bunch of build in features such bug tracking and a wiki.  As a result, I am moving all my projects to GitHub including justCheckers.

The justCheckers project can be cloned from: https://github.com/dorianpula/justcheckers  Also please add bugs and issues in the bug tracker associated with the GitHub project page.  Feel to fork the project off GitHub and happy hacking!

Update

I added in the classic Fork Me on Github banner to the site.  If you’d like to put up your own banner for your own project, check out Daniel Perez Alvarez’s GitHub Ribbon in CSS post.

Now On Gitorious and Launchpad!

Hurrah!  The justCheckers project is now on Gitorious!  Check out our new spiffy, glorious  and currently very spartan setup there for managing and distributing our git and wiki stuff.  But wait folks there is more!*  I have also updated the Launchpad page for justCheckers, as the way to track bugs, feature requests and other project management stuff.  Not everything is up to date, but I will work on both.  I am considering a move away from Sourceforge, both as a way to simplify my life and also as a brand new start for the project.  I will setup more things on Gitorious, Launchpad and here on the project site in general…  How soon I get to everything all depends on the needs that I encounter and time I have to work on this project.

* Yes, my pay-cheque has the words “TV” on it, so I can totally get away with using TV salemen lines. 😉

And We’re Back!

After the madness of the past few months, I have a bit more free time to work on justCheckers.  Not that the fast pace of the last few months has subsided.  I just managed to catch up on other projects and free up time here and there. 🙂

The first order of business will be to clear out the old code and get a working Android version of the app.  Along the way I will add in unit tests and hopefully make it easier for other people to come out and help with the development.

Website Migration

I just finished migrating the website to a new install and a new hosting service provider.  Hopefully everything worked smoothly, and development on the game can begin again proper.

Website Refresh

Amongst the various changes that I have planned for justCheckers, I have updated the website.  I hope you like the new theme, which I think is much cleaner (even if it is the default) than before.  Also I have updated the content of the website, to reflect the new changes.

Probably the most notable change is that I have taken down the Development Guide.  Many things will change with the project, as I change it into an Android app.  Many of the best practices no longer apply, now that I have transitioned over to Git.  Since at the moment I am the sole developer of justCheckers, I think it is pointless for me to keep up a Code of Conduct or Coding Style page up.  Many of the changes I will do over the next little while will be invasive, so my code will be of varying style and quality.  My many goal is to release a working version as soon as possible.

Before anyone asks: no I am not closing up the project.  The code will still remain free (as in speech).  I plan on maintaining the project indefinitely.  justCheckers is not going to disappear or suddenly become proprietary.  However I have a lot of ground I need to cover before I feel comfortable bringing on more developers.

Moving to Git

justCheckers is getting with the times and moving over to using Git as our main revision control system.

Git is a much more flexible system and I can manage contributions from the community. If I hesitated with giving out commit access, it was because there is far more trouble with dealing with merging code and dealing with radical changes in Subversion than in Git. So I am a lot more willing to reopening the project to a full team.

I will update the downloads page with instructions on how to access Git later this weekend. In the meantime, feel free to visit the justcheckers SourceForge project page for instructions on how to checkout the code in Git.