There is so much about QtCon and all its diversity and enthusiasm right from the Traffic Cone hats to the Ratatouille to the parallel KDE, FSFE, Qt tracks that all of it can't be summed up even across numerous dot stories. So this article in particular aims at giving a detailed summary of some of the talks not covered in the previous dot story and a more detailed version of the lightning talks for those who prefer a quick read over watching videos.
Governments Migrating to Free Software
Sonia Montegiove gave a talk on the Migration of Italian Ministry of Defense, in which she detailed the process that they undertook to install LibreOffice suites on the computers of the IMD. Libreitalia, her organisation, works to create more awareness about LibreOffice and to spread the word about it. She gave the average novice person in the audience an idea of what FLOSS is using the particular example of Libreoffice. Libreitalia promotes LibreOffice in public administration, schools and other academic institutions. Last year that they signed an MoU with the Italian Defense Ministry to use LibreOffice in place of Microsoft Office. They are also in the process of adopting odf as the standard format for all their documents. Sonia explained that LibreOffice can be marketed to such institutions by emphasizing how the money saved by not buying proprietary software licenses can actually be used to invest in other processes and other resources for the organisation. She also mentioned that the Italian law states that organisations are supposed to choose and use a FOSS software over a proprietary software if it is equally equipped enough to serve the required purpose. In spite of such legal provisions, organisations still choose to go ahead with proprietary software. That might be changed by spreading awareness among them regarding the independence from software vendors that using FOSS software supplies. Besides the Italian government, the French government has 5 million PCs across 15 ministries that use FOSS and so does the Commitat Valencia on a different scale.
Sonia discussed the individual steps of acclimatizing the office staff to the change in their work stations and how to make the integration with the office suite as smooth and uninterrupted a process as possible with their existing IT infrastructure. It is also very important to start the migration process with communication. The managers and employees should know why they are using Free Software and that it isn't a makeshift solution. They should be absolutely convinced of the objectives and the philosophy behind moving to LibreOffice. The migration process was communicated to the people at the top ranks as well and there were also training sessions given to the office trainers and the internal support staff so that they can guide the people better with the process. Eight thousand migrations to LibreOffice have already been carried out and they also have twenty video lessons highlighting the differences between MS Office and LibreOffice. Among the future plans there is going to be a provision for additional training lessons by late 2016 and also for translations to sign language. She highlighted five questions as the main issues of migration that the end-user may ask, and they were mainly to do with justifying the user of the time spent in the process of migration, assuring them of a smooth process of adapting to the new system owing to the good support teams and community, clearing the myth about destruction/re-creation of existing data and documents, the hesitance in trying out something new and the doubts regarding the replaceability of the old software with the new one. Libredifesa, with it's large number of volunteers and the massive end impact on the FOSS ecosystem, can serve as an excellent reference for people involved in outreach efforts and looking for a successful model for a smooth migration process for the end users.
As a part of the Qt track there were a number of interesting talks ranging from adaptation to car systems and Qt 3D to better testing tools.
Helio Chissini de Castro spoke of how the IT department at BMW Cars adapted QtCreator as their development IDE. When it came to embedded development, QtCreator was a strong choice since many developers of car IT have considerable experience and background in QT technologies and FOSS. Dr. Mashrab Kuvatov was the one who started and developed the project and it uses a head unit SDK with the concept of jail root to compile the yocto based system. Helio highlighted a few of the basic requisites that were essential for the specific usage of QtCreator for car systems and they included code completion from the native SDK, plugins to control the SDK and the respective toolchain and a seamless integration with the development environment and dynamic code compilation to code post installation. The current plugin requires modifications on the QtCreator main source code since it can't be compiled standalone and needs manual first setup to the SDK. It is also limited to particular network environments to the head unit. But the in-queue planning for the QtCreator Plugin includes improving the system to not need any external code behind QtCreator and to contribute upstream.
There was also a discussion of the possibility of the plugin compilation outside QtCreator. It is currently limited to Ubuntu Linux and requires custom packages and deploys only a clean setup and demands full source code recompilation on every new release. The eventual aim is to cover the most significant Linux distributions and to deploy the plugin on the distro QtCreator install base and to have a predefined setup for the SDK and to recompile the plugin only on new release. The code completion uses a modification of source code detection and is restricted to the old parsing model and it uses the SDK but not the system and there is no clear separation on what is native and what isn't. There shall be more efforts to improve upstream relationship to provide contributions to QtCreator's parent project and to reduce local maintenance and these changes and advances shall see an influx of a greater scope for QtCreator as the IDE of choice in numerous car IT departments all over.
Right after lunch, there was an interesting talk titled CityBikes, data policies and the big elephant by Lluis Esquerda. Citybikes started out as an android app for the local bike sharing system but when they had difficulties in procuring data since there was no open data available for them, they decided to expand Citybikes to a project providing open bike sharing data to everyone. Pybikes is a python library containing all the scraping logic that can give you access to bike sharing data from bike sharing networks across the world. And Pybikes provided the necessary data to Citybikes for it's own android application. And as a result, Citybikes was an API used by numerous developers who have adapted the app for Google Glass and IOS and also for different app uses. There was also a proper distribution displayed of the amount of data that they procured via scraping, via licenced deeds and via other sources and scraping was the major contributor. He also talked about the presence of PPAs (Public Private Partnership) which is when a private company makes an agreement with a public party like the city council to be able to use their data in exchange for the app or facility that they provide them with using the data. These leads to a monopolisation of the data and a closed control of it in the hands of the contracted private company and so there needs to be a proper awareness regarding Open Data especially for institutions like the City Council and how it would lead to better quality services like bike sharing if the data is openly accessible since many more people can work on it and keep on improving the system as opposed to a single corporation. Open Data shall lead to a better world and a better future, and Citybikes aimed to do just that by their magnanimous efforts in rallying for it.
Kevin Ottens gave a talk on Qt 3D basics and about the architecture and what the API looks like. It isn't just about 3D rendering but is multi purpose and not just limited to game engines. It has been designed to be scalable and extensible and flexible and gives you the ability to add more domains in the simulation since the core of the simulation engine is not inherently about 3D and so it can deal with several domains at once including AI, logic, audio and more and also allows you to write complex simulation systems. It is scalable since there is a frontend-backend split and the frontend is lightweight and is on the main thread and the backend is executed on a secondary thread where the actual simulation runs. For flexibility there are also domains that can be added via independent aspects. Qt3D provides both C++ and QML APIs and it integrates well with the rest of Qt. The entity component system which is an architectural pattern popular in game engines that favours composition over inheritance is used in Qt 3D to combine behaviours in your own objects. Essentially, an entity is a general purpose object and the entity gets its behaviour by combining data which comes from typed Components.
Using the example of a simple game he explained the difference between Inheritance and Composition using numerous cases and one such instance was adding the feature of emitting sound to the base class to add it to all entities but which wouldn't allow you to scale to more properties and similarly the complexities with multiple inheritance and mixed scale inheritance were demonstrated with appropriate examples. In Qt 5.7, Qt3D provides Qt3DCore, Qt3DRender, Qt3DInput, Qt3DLogic, Qt3DExtras and Scene3D which you can read about in depth on their site, and Kevin furthermore demonstrated the Hello Donut example to demonstrate the entity component model. The Qt3D Simulation wherein the Aspects have no API of their own and are all on the components was talked about as was Transformations and Spatial representations of simulations in Qt 3D. Geometries, materials, textures and lights and their available effects for the entities with Qt 3D were discussed and demonstrated via appropriate examples and what future developments can be expected in Qt 3D including animation, collision detection, geometry processor and physics aspect were talked about. Automating HMI and System Tests for Qt and QML frontends was, as the title suggests a demonstration of how testing can be automated and how system tests can be visually verified as well. The basic different tests including unit tests, system tests, functional tests, non-functional tests and integration tests were briefly talked about and the automation of some of them were discussed and demonstrated including checks of misplacement of buttons or text errors or sizing of text boxes and so on.
Harri Porten talked about Code Coverage for Qt C++ and QML code. The challenges posed by Qt applications in measuring code coverage were demonstrated and presented through numerous examples.
Among the lightning talks in room B09, Jesus Fernandez talked about OAuth and Qt and demonstrated it by using it to log in to a third party application using a Twitter social networking account. OAuth user login allows any user of the developer's app to authorise themselves on an ArcGIS portal and to access permitted secure resources without the handlage of the user's credentials by the application and the app receives a unique alphanumeric token that provides proof to the server of successful authentication.
Design, dummy! was a lightning talk by Jens on 10 easy rules to improve all your designs. He demonstrated numerous design faux pas via actual usage in his slide designs. His main advice was to not overuse colours and to stick with the standard gray, black and white since extravagant colours like red are used to draw attention to particular points instead of the entire application area. He also emphasized the importance of Font weight placement and size and the need for adequate space placements and limited menu/button/choice options for the design. He also mentioned that using too many animations is a design blunder and advised organizing the information to be conveyed to the user in a meaningful manner. He parted with the general mottos of not copying design, make your own as much as you can, study the design rules but to be sure to break them every once in a while.
The WikitoLearn lightning talk by Riccardo Lacconelli was a summary of the entire journey of the WikiLearn Community in the past year with their first official sprint in September and first partnerships in October and academical partnerships in December. They organised a larger sprint at CERN in March and then highlighted a goal to achieve in the coming years by getting twenty of the best educational institutes in the world to participate with WikitoLearn. With over 800 chapters created within a year and greatly surpassing Wikiversita's record, WikitoLearn is growing at a tremendous pace and has much more ambition for the future.
Daniel Pocock gave a talk on Postbooks which was essentially based on accounting using SQL- derived as a combination of PostgreSQL and QuickBooks and is the FOSS version of Xtuoke. It was originally developed in the U.S. and more adapted for use there ,but has now been expanded for global use and is used widely in the manufacturing and distribution sector. The double entry accounting system as an introduction to the basics of accounting was explained by him in terms of the debit and credit for your account and it was also demonstrated using PostBooks on the test data. He also gave some insight on how web based accounting was good for remote work and for accountants handling multiple accounts with multiple organisations whereas a Full GUI such as PostBooks was better for users with specific focuses and for those who require more options and advanced features and more flexibility.