Presenting a Season of KDE 2014 student – Minh Ngo

Season of KDE is an outreach program hosted by the KDE community. This year I am working as a mentor to a long time requested project related with Cantor – the development of Python 3 backend. You can read more about Cantor in my blog (texts in English and Portuguese). So, let’s say welcome and good luck to Minh Ngo, the student behind this project!

Hi,

My name is Minh,

I’m BSc graduated student. I’m Vietnamese, but unlike other Vietnamese students spent most of my life in Ukraine. Currently, I’m preparing myself to the Master degree that will start in the next semester.

Open source is my free time hobby, so I would like to make something that is useful for the community. Previously, I was participated in the GSoC 2013 program and in several open source projects. Some of my personal projects is available on my github page https://github.com/Ignotus, not so popular like other cool projects, but several are used by other people and this fact makes me very happy :) .

Cantor is one of opportunities to spend time to create an useful thing and win an exclusive KDE T-shirt :). I decided to start my contribution with the Python3 backend, because few months ago I studied several courses that are related with Machine Learning, so I was looking for a stable desktop backend for IPython. A notepad version IPython I do not entirely like and its qtconsole version doesn’t satisfy me in terms of functionality, therefore I decided to find some existent frontend for IPython that I can tune for myself. And the story with Cantor began after than :)

Happy hacking!

As Philae, Mageia 3 is running out of batteries…

success

(Source: xkcd)

As you all know, we can’t maintain Mageia releases forever. And it’s time to say goodbye to Mageia 3. After Wednesday the 26th of November, this release won’t benefit from any more security or bugfix updates. This will allow QA team to give more time for polishing our coming Mageia 5.

So you have only one week left to upgrade to Mageia 4 if you want to keep an up-to-date system. Do not hesitate to use our mailing-lists, forums or IRC channel to speak about it and ask for help if needed.

See http://www.mageia.org/support for more details.

 The various ways of upgrading from Mageia 3 to Mageia 4 are described in this page.

HP MyRoom on a 64 bits Linux

Well, HP is now promoting a new solution for webinars called HP MyRoom. And even if they provide rpm (and deb) packages, these are not working out of the box on my Mageia 64 bits distro, of course. That was already the case with HP Virtual Room previsouly.

But nothing you can’t make work, as long as you have the source don’t you ? So here is the receipe:

First install all the required dependencies that are not correctly mentioned in the rpm:

urpmi lib64xtst6 libxtst6 lib64xscrnsaver1 libxscrnsaver1 jpeg-devel lcms-devel

Then add an additional library which was not even part of Mageia when I started this post ;-)
Get it from Cauldron where I uploaded it:

wget http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/cauldron/x86_64/media/core/release/libmng1-1.0.10-1.mga5.x86_64.rpm
wget http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/cauldron/i586/media/core/release/libmng1-1.0.10-1.mga5.i586.rpm
urpmi libmng1-1.0.10-1.mga5.x86_64.rpm libmng1-1.0.10-1.mga5.i586.rpm

Then finally download HP MyRoom for a 64 bits RPM system and install it with:

rpm -ivh --nodeps hpmyroom-10.0.0.0210.amd64.rpm

and launch it !

/usr/bin/hpmyroom

And now enjoy exchanging from Linux as well as from Lynx but without the hassle to use Windows ;-)


Filed under: FLOSS Tagged: HP, HPLinux, Linux, Mageia, MyRoom

The Long and Winding Road

Well, it’s been a long road, longer than we anticipated, but we’re almost there! Mageia 5 Beta 1 is now validated!
What exactly does that mean? What took so long (a month and a half longer than originally planned)?

RPM 4.12 versus the Mageia buildsystem, a retrospective

The short explanation: Some stuff went wrong and other things got broken.

The long one: Back in September, we decided to update our package manager, RPM, to its latest upstream version 4.12. This was done shortly before our planned mass rebuild, a necessary step before the Beta where we rebuild all packages in the distribution to make sure that they are still compatible with the current state of our development stack. Usually, mass rebuilds show that a fair number of packages do not build anymore even if they did some months ago: the packagers’ task is then to patch them so that they can build against the new stack, or in some cases to patch the development tools to fix regressions.

But this time, the new RPM version introduced changes that were significant enough to break a lot of core packages during the mass rebuild, and lots of packages failed to build in a chain reaction. It took a couple of weeks to fix and we were already long past the planned deadline for Mageia 5 Beta 1 (originally scheduled for the end of September). So we decided to postpone it to mid October.

Still, while fixing our core tools during this first mass rebuild, some important changes were made to our RPM setup. As a consequence, half of the rebuilt packages (the ones built before our RPM setup changes) were lacking some important metadata. We then decided to do a second mass rebuild in October, which went quite fine apart from some issues with the Java stack. It was already late October when the first Beta 1 ISOs could be spun and delivered to the QA team for pre-release testing.

You may know that a Linux distribution release is basically an installer together with a set of packages. The latter were now starting to behave properly, but we were then faced with some issues in the installer regarding glibc (the GNU C library) and RPM. This delayed the beta for another week or so.

Then the QA team could finally get started with a fresh set of ISOs, and found the usual numbers of critical bugs (system doesn’t boot, stuff like that) that were fixed with the help of our developers. A big thanks to the QA team for their continued work on the ISOs while also testing update candidates for Mageia 3 and Mageia 4! This beta is far from perfect so don’t forget to check the errata, but you should be able to install it and to see the state of current cauldron. Please report any bugs, we will try to fix as many as we can for Mageia 5 Beta 2.

Consequence on the development roadmap

According to our original schedule, the second beta should have been released on October 31st… So we had to choose between skipping Beta 2 or postponing the Mageia 5 final release and the intermediate releases. Based on the input from the Beta 1 testing, we decided that we can’t afford to skip the second beta, since the current one still has some serious issues. As a consequence all planned dates for the future intermediate and finale releases have been postponed, and the new development roadmap reads as follows:

  • Beta 2: December 16th, 2014
  • Release Candidate: January 6th, 2015
  • Internal release: January 23rd, 2015
  • Final release: January 31st, 2015

Fine… Now, where is my Beta 1?

You all waited long enough for this release, so grab it with the first link, but don’t forget to check the following ones:

Test, enjoy, and report any bugs! Now is the time to polish this Mageia 5!

Halloween the curse or buggy software?

As explained in a previous post, lots of updates occured especially dealing with rpm. And here we go. We are facing at the moment some nasty issues in installer. The graphical part of the installer is just crashing due to a bug implying glibc and rpm. Both were recently updated.

Work is in progress and the issue was reported upstream. You can follow it here on the bug report. As soon as this bug is fixed, we will be able to release the Mageia 5 beta 1 isos. Stay tuned!

Official mageia docker images available

We now have official docker images for mageia !!

After some weeks working with the docker team we managed to get mageia as an official docker image (the ones that have the blue whale icon). You can find them at the docker hub, and if you want to contribute to them you can go to mageia's docker brew project.

There are three images available:

  • Mageia 3
  • Mageia 4 (latest)
  • cauldron

Currently the cauldron image is outdated (probably more than a month), but I plan to automate the docker image update process so we can have an updated version at least once a week.


How to use these images


You can pull them on the command line (as root):

          # docker pull mageia:latest
          Pulling repository mageia
          147b6e8a8cbd: Download complete 
          511136ea3c5a: Download complete 
          e65cc271e617: Download complete 
          
          # docker start -ti --name mymageia_4 mageia:latest


Or create a Dockerfile file to build your own custom mageia-based image:
FROM mageia:4
MAINTAINER  "Foo Bar" 
CMD [ "bash" ]
All mageia docker images install the following packages:
  • basesystem-minimal
  • urpmi
  • locales
  • locales-en

Please test these images, and if you find any issues or have suggestions don't forget to report them here. Also I'm thinking of adding some other custom images for specific applications and uses, like:

Ready to run server application-oriented containers


We could have several application oriented containers: mariaDB, nginx, wordpress, Apache+php/{cakephp,zend,codeigniter}, Apache+python/{django,codegears,flask}, tomcat preconfigured to use an apache container as front end, etc, the possibilities are endless. All these containers could be linked, packaged and orchestrated using fig for an easier application control and management.

Another example could be FPS game servers (Urban Terror,  OpenArena, Warsow, World of Padman, Smokin' Guns), with their server package, some license-redistributable maps, a web admin panel, mumblebigbrotherbot (already working on a package) and anything else needed to have a kinda of "one click" game server setup. This could be very useful for example, to quickly launch game servers at a LAN party, or to provision game servers at a game hosting company.

Docker for distribution development


At the very least I see a couple of uses for docker within mageia development. First, as a quick and easy way to use iurt for local package building. We could have a custom docker image for package development that comes with a preconfigured iurt binary, package build tools like bm, rpmbuild, rpmlint, mgarepo, etc, all preinstalled, this could be a build/packaging environment with one command:

          # docker pull mageia:devenv
          Pulling image...
          # docker run --rm -ti --name mageia_dev -v /home/juancho/iurt:/opt/iurt/ mageia:devenv iurt SRPMS/foo-1.0-1mga5.src.rpm

That command would launch a docker container using our custom development image, launch iurt to build a source package, leave the binary packages in /home/juancho/iurt/RPMS/{i586,x86_64,noarch} and delete it self when it finishes. This is a clean way to locally build packages in a fresh environment. Remove the --rm parameter if you want to use the container later, for example to work on package version updates:

          # docker run -ti --name mageia_dev -v /home/juancho/.ssh:/home/juancho/.ssh -v /home/juancho/iurt:/opt/iurt/ mageia:devenv bash
       
Also by mapping your .ssh directory to a docker volume, mgarepo can be used within the container.

The other important use for docker within mageia could be to help with QA testing. The reproducible nature of docker makes it very interesting from a QA point of view, the repeatability of tests could be of great help for application testing and bug triaging.

We could teach bug reporters how to create their own images or write their own Dockerfiles with the needed packages and configuration changes to reproduce a bug. The reporter would point QA back to an image that they can download and test (for example, from our own docker repository). The creation of those containers could ease and speed the testing process. As these custom images would be based on our official images, there wouldn't be the need for QA to setup the same test case to reproduce the bug in another environment, the reporter image should be enough for them to test and validate it. In some way, we could be making the bug reporters also contribute the test case.

Docker application containers


What about preconfigured docker containers for software development environments, like images that have Netbeans/Eclipse for python/java/php, git/mercurial/svn/bazaar, any development libs and tools needed depending on the platform, etc, all preinstalled and preconfigured. This could be a good idea as sometimes these tools are difficult to install and update, having these ready to use containers could be cool. Probably it also could be used to package nonfree applications or 32bits applications on x86_64.

I don't know, there are many ideas that come to my mind about stuff that can be done with docker in different areas, like these ones on linux distribution development and such.


Cantor: new features in KDE 4.14

KDE 4.14 was released in August 2014 but I did not have time to write about new features in Cantor for that release.

So, let’s fix it now!

New backend: Lua

Cantor family of backends have a new member: Lua, using luajit implementation.

This backend have a lot of features: syntax highlighting, tab complete, figures in worksheet, script editor, and more.

Cantor + Lua in action

Lua backend was developed by Lucas Negri, a Brazilian guy, and this is a reason for me to be very happy. Welcome aboard Lucas!

You can read more about this backend in a text of Lucas blog.

Use utf8 on LaTeX entries

When you to export the worksheet to LaTeX, utf8 will be used as default. This improvement was developed by Lucas.

Support to packaging extension in Sage and Octave backends

Now these backends have an assistant to import packages/modules/libraries.

Support to auto run scripts

python2_autorun

Auto run scripts/commands in Python 2 backend

Now Python 2, Scilab, Octave, Sage, Maxima, Qalculate, and KAlgebra backends have support to auto run scripts. You can configure a set of scripts or commands and they will run automatically after the worksheet launch!

Add CTRL+Space as alternative default code completion to worksheet

Default code completion command in worksheet is TAB key, but now we have an alternative command too: CTRL + Space. It will maintain consistence between script editor (where the default code completion is CTRL + Space) and worksheet.

Initial support to linear algebra and plot assistants in Python 2

I developed the initial support to 2 amazing plugins in Python 2 backend: the linear algebra plugin and the plot plugin.

First, let’s see the linear algebra plugin. In menu bar go to Linear Algebra > Create Matrix. A window to matrix creation will be open, as below. You must to put the values in the cells.

python3_linearalgebraMatrix creation assistant

After push ‘Ok’ button, the matrix command from numpy  module will be loaded in the worksheet, automatically.

python2_linearalgebra_resultNew matrix created

For now this plugin have implemented just the matrix creation.

Let’s see the plot plugin now. You can use it to create 2D and 3D plot. Let’s to do x = numpy.arange(0.0, 2.0, 0.01) and, in menu bar, go to Graphics > Graphics 2D. The window below will be open.

python2_graphicPloting 2D assistant

You can set some expression to be the Y axis (in this case I am using numpy.sin) and a variable name to X axis (this case, 2 * x * numpy.pi). You could to put just x in variable name to do a plot with the values of x.

After push ‘Ok’ button, the command using pylab will be load in worksheet to make the graphic.

python2_graphic_result3D plotting assistant have a similar way to create the pictures.

How you can see, to use this assistants we need to have some python modules in the workspace, and they must to have the same name used in the plugins. There are a lot of ways to import modules in python environment (import foo; import foo as [anyname]; from foo import *; etc), so to do a generic way to use it is impossible (well, if you have some idea I would like to hear it).

My choice was to import numpy, scipy, matplotlib and pylab when Python 2 backend is loaded by Cantor. Well, I intent to change it because that modules will be mandatory to use Python 2 backend correctly, and pylab is not longer recommended in recent matplotlib version. So, wait for some changes in this plugin soon.

In any case, I would like to hear the opinions of scientific python community about this features.

Future

For now we are working in Cantor port to Qt5/KF5. You can follow the work in ‘frameworks‘ branch on Cantor repository.

Donations

If you use or appreciate my work in Cantor or another free software project, please consider to make a donation for me, then I can to continue my contributions to improve Cantor.

You can consider make a donation to KDE too, and help with the maintenance of this great free software community and their products.

Time time time, see what’s become of me?

As you may or may not know, we are scheduled to release the first beta for Mageia 5 on September 30th. Well… it looks like we’re not going to make it.

Here at Mageia HQ, we try to provide a balance between tried-and-tested software and cutting edge developments. That means that we try to ship Mageia releases with the newest software that we are comfortable using. We take into account all sorts of things, from stability to security and passing through usability on the way.

The practical upshot is that we are planning to release Mageia 5 with the new 4.12 version of RPM. RPM is Mageia’s package manager, that we share with other major distros such as Fedora and openSUSE. This new version brings in a lot of interesting features, so we decided to include it in Cauldron as soon as it was released, so that we can fine tune our usage of it before Mageia 5’s release. The new version was included just before the mass rebuild, an important phase of the release cycle where we rebuild all packages of Mageia 5 to make sure they compile properly against the new development stack.

Technobabble aside, the RPM version update is a good thing. It makes it easier for the packagers to find common errors and fix them, thus allowing for more reliability of our packages. That means that more time can be devoted to adding more packages for you, the user.

The problem is, well… the new RPM version broke some stuff. Not much, just a few packages needed to be rebuilt. Something like 7000 packages (now down to about 2000).
But have no fear! Our development and packagers teams are on it! They just need a little more time. So we are postponing the Mageia 5 Beta 1 release by two weeks. That means October 14th.

Let’s recap: we try to make the best Linux distribution that we can, and sometimes things don’t go according to plan. But we are flexible enough to handle it! So if you were counting down the days to Mageia 5 Beta 1, just move your clock back by 14 days.

And, as always, we welcome volunteers. So if you want to help, have a look here and start contributing today!

Month of KDE Contributor: From LaKademy …

In recent weeks I had an intense “Month of KDE Contributor” that began with LaKademy, the KDE Latin American Summit, and ended with Akademy, the KDE World Summit. It was a month somewhat tiring, hard work, but it was also filled with good stories, great meetings, new contacts, discoveries and, I can say, fun.

This post I will write about LaKademy and the next I will comment about Akademy.

logoazul_menor

The second edition of LaKademy took place in São Paulo, one of the biggest cities of Latin America, in FLOSS Competence Center of University of Sao Paulo, an entire building dedicated to studies and researches on various aspects of free software: licenses, software engineering, metrics extracted from repositories, social aspects of collaboration, and more.

This year I and Aracele were the conference organizers, and I believe that we could provide all the infrastructure necessary to LaKademy attendees had good days of work in a pleasant and comfortable places.

First day we had talks of collaborators, and one that most caught my attention was Rafael Gomes on KDE sysadmin. It’s amazing the size of the infrastructure behind the scenes, a solid base that allows developers to do their jobs. It would be interesting to promote more this type of collaboration to attract potential contributors who prefer this side of computing.

14923088670_415cfc44df_z

This day I presented a talk about Qt in Android, describing the development tools configuration in Linux, presenting a basic Hello World, and commenting on some softwares availables using this technology, specially the VoltAir and GCompris. The presentation is below (in portuguese).

.

Second day we had a short-course about Qt, presented by Sandro Andrade. Impressive his didactic and how he manages to hold our attention for a whole day without getting boring or tiring. This day I was helping the other participants, especially those who were having the first contact with Qt development.

The third and fourth days were devoted to application hacking and projects development. I joined in “task-force” to port Bovo to KF5, I started the development of a metapackage to install all KF5 packages in Mageia, and I started the port of Cantor to KF5. I also fixed some KDE Brazil bots on social networks.

15106702121_ff87d73880_z

Task force to port Bovo to KF5

Fourth day we had a meeting to discuss some initiatives to promote KDE in Latin America, and we started to use Kanboard of KDE TODO to organize the implementation of these projects.

Besides the work we had some moments of relaxation at the event, as when we went to Garoa Hacker Clube, the main hackerspace in São Paulo, an activity we call Konvescote; and also when we all went to Augusta Street, one of the famous bohemian streets in the city.

15086717746_ec5d444223_z

KDE + Garoa

However, as in all events of Free Software and KDE Brazil, the best thing is see old friends again and meet new ones that are coming to the boat. For the novices, welcome and let’s to do a great work! For the veterans, we still have a good road ahead on this idea of writing free software and give back to the world something of beautiful, high quality technical, that respect the user.

KDE Brazil team wrote an excelent post enumerating what the attendees produced during the event. I suggest to all who still want more information to read that text.

I leave my thanks to KDE e.V. for providing this meeting. I hope to see more contributors in next LaKademy!

Month of KDE Contributor: …to Akademy

In recent weeks I had an intense “Month of KDE Contributor” that began with LaKademy, the KDE Latin American Summit, and ended with Akademy, the KDE World Summit. It was a month somewhat tiring, hard work, but it was also filled with good stories, great meetings, new contacts, discoveries and, I can say, fun.

Previous post I wrote about LaKademy and now I will write about Akademy.

LaKademy had ended just one day before and there I was getting a bus to São Paulo again, preparing for a trip that would take about 35 hours to Brno, with an unusual connection in Dubai and a bus from Prague, the Czech Republic capital, to the city of the event.

Arriving at Brno my attention was piqued by the beautiful architecture of this old city of the Eastern Europe, something exotic for Brazilians. During the event I had some time to walking in the city, especially on some nights for dinner and during the Day Trip. I could calmly enjoy the details of several buildings, museums, the castle and the city cathedral.

It was the second Akademy I attended, if you count the Desktop Summit in 2011. This time I am a member of the KDE e.V., the organization behind KDE, so my first task was to attend to General Assembly.

I was fascinated how dozens of contributors from different parts of the world, from different cultures, were there discussing the future of KDE, planning important steps for the project, checking the accounts of the entity, in short, doing a typical task of any association. I was also impressed by the long applause for Cornelius Schumacher, a member of the KDE e.V. Board since 2002 and former president of the association. A way to show gratitude for all work he accomplished in those over 10 years in KDE e.V. Board.

In the end the day we had a reception for participants at Red Hat. I was impressed with the size of the company in the city (three large buildings). We drank some beers of the country and distribute Brazilian cachaça. =)

IMG_20140905_193708

The next day began the talk days. I highlight the keynote of Sascha (I believe he was invited to Akademy after Kévin Ottens have seen him lecture here in Brazil during FISL), and the talk on GCompris, software that I admire because it is a educational suite for children. Unfortunately, one of the lectures that I wanted to see not occurred, that was Cofunding KDE aplications. We were David Faure talking about software ports to KF5, and presentation of KDE groups of India and Taiwan in the end of day.

The second day of talks we had a curious keynote of Cornelius who presented some history of KDE using images of old contributors. The highlights of the day were also the presentations by VDG staff, the group that is doing a amazing design work in Plasma 5, and now they are extending their mouse pointer to KDE applications too. Great!

Another interesting presentation was on Next Generation of Desktop Applications, by Alex Fiestas. He argued that the new generation of software need to combine information from different web sources in order to provide a unique user experience. He used examples of such applications, and I’m very curious to try Jungle, video player that will have these characteristics.

Finally this day had a lecture by Paul Adams, very exciting. He shows that, after investigation in KDE repositories, the degree of contribution among developers decreased with the migration from SVN to GIT, the number of commits decreased too, and more. Paul has interesting work in this area, but for my part I think it is necessary to explain this conclusions using anothers concepts too, because we need to understand if this decreased is necessarily a bad thing. Maybe today are we developers more specialized than before? Maybe is the decrement of commits just a result of code base stabilization in that time? Something not yet concluded in KDE is that we came from a large unified project (including in repository level) to a large community of subprojects (today we are like Apache, maybe). In this scenario, is it worth doing comparisons between what we are today with what we were yesterday, based only on our repositories? Anyway, it is a good point to ponder.

In BoFs days, I participated in the first two parts of the software documentation  BoF – an important and necessary work, and we developers need to give a little more attention to it -; FOSS in Taiwan and KDE Edu in India. Unfortunately I could not attend to packagers BoF (well, I am a packager in Mageia), because it occurred in the same time of Taiwan BoF. Letś try again in next Akademy. =)

I like to see the experiences of users/developers groups in other countries; the management of these activities attracts me, mainly because we can apply either in Brazil. I left this Akademy with the desire to prepare something about Latin America community to the next event. I believe we have much to share with the community about what we’re doing here, our successes and failures, and the contribution of Latin American for the project.

Finally the other days I continued working on the Cantor port to KF5 or I was talking with different developers in the halls of university.

To me it’s very important to participate in Akademy because there I can see the power of free software and its contributors, and how this culture of collaboration brings together different people for development and evolution of free computer programs. Therefore, I would like to thank immensely to KDE e.V. for the opportunity to go to Akademy and I would like to say that I feel very good to be part of this great community that is KDE. =)

The best of all is to see old friends again and meet new people. When that e-mail address gets contours of human face is a very special moment for us who work “so close and so distant”. So it was amazing to be with all of you!

Akademy 2014 Group Photo – giant size here

And to finnish I desire a great job to the new KDE e.V. Board!

Those interested, most of the talks presented with video and slides are available in this link.