I gladly want to inform about the next release 0.5.3 of the game KDots, KDE-based prototype of the game of dots.
This release includes several bug fixes in the game play in general and the new AI plugin based on the Minimax strategy with heuristics for local decisions that showed significant smarter decision making during trial tests.
In spite of the fact that KDots has not been escaped from the KDE Playground yet (omg!), this release is the last one based on KDELibs4/Qt4.
Looks like KDots is more stable now, therefore future efforts will be mostly concentrated on porting the game to KDE Frameworks 5 (that has been mostly done), code base stabilization, package creation of different distribute, creating user/developers documentation to fit requirements to be able to be in the nearest future as a part of the KDE main packages. If you would like to help with stuffs described above you are welcome!
Source code of the current version can be downloaded via this link.
I would like to inform that I have finished my Season of KDE project. During last two months I was working on porting existing Python2 backend in Cantor to Python3 and fixing various bugs/refactoring in random places of the Cantor universe.
Now there is the time to write about how the Python3 backend grew during the time.
Previously, Cantor’s plugin architecture look like in this diagram below:
On this diagram Cantor loads plugins where some API is implemented. The R backend creates a separate process for R Server and then communicates with it through DBus.
After my first commit it looks like in the following diagram:
And then shared code between 2 backends has been moved to the separate library:
At that time, I found a fatal error in my implementation. Python 2 and Python 3 backends periodically behave nondeterministically and led to crashes. The cause of these problems was in different versions of libpython that are linked to Cantor at the same time. Symbols in these libraries conflicted because they weren’t in different namespaces. Compiler cannot return any errors in this situation because plugins are loaded dynamically.
Therefore the Python3 backend has been transformed to the current state and it looks like that now:
Cantor’s creating now a separate instance for handling Python 3 requests called Python3 Server and communicate with it through DBus interface.
The last screen shows how my backend works now:
In addition, there are several random stuffs that have been fixed by me during the development process:
As a final words (aka epilogue), Cantor is going to be released at the end of February with other KDE applications. There are a lot of things still need to be done, but there are only 3 developers. For my part, I’m going to contribute to this goal with other members of the Cantor family… What about you? :)
This post was inspired by another article written by Damián Nohales. During his GSoC work at the GNOME project in the previous year he integrated the Foursquare service into this environment so users can make checkins from their laptop or PC.
This news reminded me of one my experiment long time ago with Foursquare API, when I made one prototype application for checking in based on KDELibs and several other libraries. I called it TwoLine (possibly sounds like some parody of Foursquare) and it still works well after updating application properties.
How it currently looks:
To tell the truth, nobody uses it (including me :) ). PC and laptops don’t support geolocation, therefore Foursquare cannot predict or suggest places accurately enough. The only thing the system know about users’ location is their IP address, so the only thing that it can do is to determine location with the help of some IP database like ipinfodb. Therefore a location itself must be requested by an user (and not choosing from a recommendation list).
Let’s say, in the example above (from my screenshot) I have to write “Майдан” for the query to reduce an amount of recommended places, so I can choose some correct existing one from the list. You can say that it’s very easy action for an user, but in fact it’s not so.
For example, in my country citizens usually use three languages (ukrainian, russian and english), therefore name of places can be in at least one of these languages. In the worst case, an user has to rewrite a search query at least several times before he gets a required result.
Back to the good, looks like many commentators under the Damian’s post considered that this feature is very useful for them, therefore another questions appeared (and I would like to ask them to the KDE Community):
As a KDE user, will the possibility to check in from your device with KDE be useful for you?
If so, could you please clarify in which form (maybe plasmoid?) and where (application or place) you would like to see this functionality, so I can rewrite the existing one to fit these needs :).
About 2 years ago I have started one project in KDE Playground called KDots. This is an implementation of the game of dots.
In this game players are trying to catch opponent’s dots by placing their dots on the game board where the lines cross. Possibly it looks like Go I suppose :).
Because of some reasons I abandoned KDots. And it has been left in the Playground up to this days with several known bugs and not so smart AI.
A week ago, I decided to come back to this project, and looks like two years ago I was a very horrible programmer, because the code couldn’t be read without facepalm, therefore I decided to redesign an architecture of the application and make fixes to stabilize it for a start.
All these changes have been included in the bug fix release 0.5.2.
Currently a players can play KDots on the same PC, through internet connection or with AI.
Many items still are in TODO list:
Saving game state
More pleasant UI
If anybody in the community can make any advice about possible improvements, your helps are welcome.
Source code can be downloaded from git :)
There were not many commits from my side to the Cantor project during the last month, but most of stuffs that are related to porting the Python 2 backend to Python 3 have been done.
In the next month I’m going to cover all these code by tests and try to fix existent bugs in the KF5 branch.
At the end, I would like to thank Felipe Saraiva, Pino Toscano and Alexander Rieder for the help that they have done during the SoK.
Happy New Year to all KDE community members.
This blog was created by force :)
I thought a long time before doing this. I had several personal pages before, but all ended with the failure. I cannot say that I’m very good programmer, but my writing skill is many times worse than my programming.
Okay, from the next month The Season of KDE will start. Previously I have made a patch that port Python 2 backend for Cantor to Python 3. After a brief review Filipe Saraiva proposed me to continue working on it and port it to KDE Frameworks 5 as a part of the SoK. Therefore, I have to write at least one post a month about it according to the rules (Otherwise I will not receive a fashionable T-Shirt! :) ).
subscribe via RSS