Scarry on Line
This project contains some tools that make it easier the organization of a championship of Carrom.
The main component is a Pyramid application serving two distinct user interfaces:
- A very light, HTML only, read only view of the whole database, where you can actually browse thru the tourneys, seasons and players. You can see it in action on the public SoL instance at http://sol.metapensiero.it/lit/.
- A complete ExtJS based desktop-like application, that expose all the functionalities described below in an easy to manage interface, that you can try out visiting http://sol.metapensiero.it/.
SoL 3 requires Python 3.3 or higher, it does not work with Python 2
Scarry was a Delphi application I wrote years ago, with the equivalent goal. It started as a “quick and dirty” solution to the problem, and Delphi was quite good at that. It has served us with good enough reliability for years, but since programming in that environment really boring nowadays, there’s no way I could be convinced to enhance it further.
SoL is a complete reimplementation, restarting from scratch: it uses exclusively free software components, so that I won’t be embaraced to public the whole source code.
These are the key points:
Scarry spoke only italian, because the i18n mechanism in Delphi (and in general under Windows) sucks. Most of the code was written and commented in italian too, and that makes it very difficult to get foreign contributions
Scarry used Paradox tables, but we are in the third millenium, now: SoL uses a real, even if simple and light, SQL database under its skin
Easy to use
The application is usually driven by computer-illiterated guys, so little to no surprises
Easy to deploy
Gods know how many hours went in building f*cking installers with BDE goodies
Bring back the fun
Programming in Python is just that, since the beginning
High level description
The application implements the following features:
- basic tables editing, like adding a new player, opening a new season, manually tweaking the scores, and so on;
- handle a single tourney
- compose a list of competitors: usually this is just a single player, but there are two people in doubles, or more (teams)
- set up the first turn, made up of matches, each coupling two distinct competitors: this is usually done randomly, but the arbiter must be able to manually change the combinations
- print the game sheets, where the player will write the scores
- possibly show a clock, to alert the end of the game
- insert the score of each table
- compute the ranking
- print the current ranking
- possibly offer a way to retire some competitors, or to add a new competitor
- compute the next turn
- repeat steps c. thru i. usually up to seven turns
- possibly offer a way to go back, delete last turn, correct a score and repeat
- recompute the ranking, assigning prizes
- handle a season of tourneys
- each tourney is associated to one season
- print the season championship
- data exchange, to import/export whole tourneys in a portable way
Installation and Setup
The very first requirement to install an instance of SoL on your own machine is getting Python 3.3. This step obviously depends on the operating system you are using: on most GNU/Linux distributions it is already available, for example on Debian and derivatives like Ubuntu the following command will do the task:
$ apt-get install python3.3
As of this writing I’m using version 3.3.4, but 3.3.5 should come out very soon.
Version 3.4 is currently in beta, and should not be used because some third parties components needs tiny adjustments.
|||In fact it may even be already installed!|
Easiest way, SoLista
The easiest way is using SoLista, a buildout configuration that will perform most of the needed steps with a few clicks: this is particularly indicated if you are not fluent with the command line interface of your operating system.
- Download current version of SoLista
- Extract the content of the ZIP archive on your hard disk: it contains a single directory with a strange name like lele-solista-3ec12c59927f and I suggest to rename it to something more reasonable, like Sol3 for example.
- Follow the instruction within the file README.rst
The manual way
Install SoL using pip:
pip install SoL
that will download the latest version of SoL from PyPI and all its dependencies as well
Install ExtJS 4.2.1:
python3.3 -m metapensiero.extjs.desktop
Create a standard config file:
soladmin create-config config.ini
and edit it as appropriate
Setup the database:
soladmin initialize-db config.ini
Load official data:
soladmin restore config.ini
Run the application server:
or, for poor Window$ users or just because using Python makes you happier:
python -m webbrowser http://localhost:6996/
The complete sources are available on Bitbucket and can be downloaded with the following command:
git clone https://bitbucket.org/lele/sol
If you are a developer, you are encouraged to create your own fork of the software and possibly open a pull request: I will happily merge your changes!
You can run the test suite with:
python3.3 setup.py nosetests
I18N / L10N
Currently SoL is translated in english and italian. If you know other languages and want to contribute, the easiest way to create a new translation is to create an account on the Weblate site and follow its translators guide.
- Fix various deploy related issues
- Let’s try the release process!
- Ported to Python 3.3 and to ExtJS 4.2
- Built on metapensiero.extjs.desktop and metapensiero.sqlalchemy.proxy
- Version control moved from darcs to git (darcs is beautiful, but git is more powerful and many more people use it)
- It tooks almost one year and more than 760 changesets (still counting!)…
Glicko2 ratings, with graphical charts
Old championships are gone, old seasons has been renamed to championships
People got confused by the overlapping functionality, old championships were an attempt to compute national-wide rankings: the new Glicko2-based ratings are much better at that
Augmented players information to fit international tourneys requirements, clubs may be marked as federations
Easier interfaces to insert and modify
Easier way to upload players portraits and clubs logos
Hopefully easier installation
Better infrastructure to accomodate database migrations
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help||File type||Python version||Upload date|
|SoL-3.0a2-py3.3.egg (3.4 MB) Copy SHA256 hash SHA256||Egg||3.3||Mar 4, 2014|
|SoL-3.0a2.tar.gz (6.2 MB) Copy SHA256 hash SHA256||Source||None||Mar 4, 2014|