Posts

  • Brussels

    Yesterday I had an amazing day trip to Brussels. FlixBus has a promotion for this month and sells tickets only for 1 EUR and I could not refuse such an attractive offer and decided to invite friends to join. In spite of the fact that I was late to the first Sprinter at morning, I was able to catch the next train. It’s always good when you have a backup plan to not fail the trip at the beginning.

    In comparison with Amsterdam Brussels is quite different. The locals could not be easily detected - everywhere there are a lot of migrants. The waters are very few, it’s quite strange to see only land around you after almost a half of year staying among channels.

    Landscape is not adapted for easy cycling. Many hills and valleys force a bicyclist to strain his muscules. In addition to this fact, road for bycicles is narrow, without any protrusions to save them from dangerous cars. Traffic lights don’t have buttons for pedestrians that is sometimes quite annoying.

    The city is not well maintained, everywhere something broken can be found

    img

    Vandalism is present even in the Warandepark in front of the Royal palace

    img

    But except of this fact Brussels is wonderful. A hatch

    img

    Monuments

    img

    Signs

    img

    Underground arts

    img

    Trains are the same like in Amsterdam with a button for opening doors

    img

    This monitor shows where each train is situated in real time

    img

    Ukrainian Bandura has been found in the local Musical Instrument Museum

    img

    The center

    img

    Small contructions above the roof of some historical buildings turned out to be chimneys for each fireplace in it.

    img

    The Gringotts Wizarding Bank detected

    img

    There are more photos, but to be honest, I am very bad photographer, but definitely more trips are required to fully dive into the city atmosphere.

  • Keukenhof

    img

    Flowers are not for me. I can admire a city architecture again and again, but flowers… After the first tulip field I has felt inspiration and beauty. After the second field it has become tiredness and lethargy. After the third field - irritation, because I cannot go home without waiting other wayfarers.

    Possibly it’s better if you go to Keukenhof with a good and small company, then you can spend more time on talking and don’t care about these flowers around.

    Bicycle rent is very cheap in Leiden (about 9 EUR for 1 day), you can use it to cycle to Keukenhof with a little effort for overcomming 30 km :).

  • KDots 0.5.3 released

    screen

    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.

  • [SoK] Python3 Backend has been finished

    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:

    architecture1

    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:

    architecture2

    And then shared code between 2 backends has been moved to the separate library:

    architecture3

    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:

    architectur4

    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:

    screen

    In addition, there are several random stuffs that have been fixed by me during the development process:

    1. BKO#342730

    2. BKO#342696

    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? :)

  • Foursquare checkins via KDE tools

    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:

    screen

    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 :).

  • KDots 0.5.2 released

    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 :).

    screen

    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:

    • New AI

    • 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 :)

  • [SoK] Cantor Python backend status update

    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.

  • [SoK] Hello world post

    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! :) ).

    That’s all.