KF5 in Yocto

KDE recently released the first version of KDE Frameworks 5, or shorter KF5. This is a set of add on modules extending and improving Qt, forming the base on which the Plasma Desktop is built. The nice thing is that KF5 is very modular and very reuseable.

Recently I’ve spent some time working with Yocto (yes, the series will continue – I just need time to do a couple of clean builds). So, I thought this was the perfect little summer vacation project for me. So, the plan is to package one module a day of KF5 for Yocto. The layer resides on github as meta-kf5.

This is a release early, release often project, so I’ve just gotten KAchive and ECM integrated. You can follow the progress from the project status page.

Introducing Grapher

I just found myself in the situation where i need to be able to create bargraphs.

part-i

The design is fairly limited: a row of stacked bars with optional labels under and inside each bar.

part-ii

I also want to be able to color the bars.

part-iii

I wrote a quick little PyQt-based Python program. It lets you write things like this:

bs = BarGraphStack()
bg = BarGraph()
bg.setTitle("Image Size")
bg.addBar(Bar(6349, Qt.Qt.darkGray, "6 349KiB", "kernel(bz)"))
bg.addBar(Bar(25240, Qt.Qt.lightGray, "25 240KiB", "rootfs"))
bs.addBarGraph(bg)
i = bs.render();
# i is a QImage

You can get the latest source code from the Grapher github repository. It is probably obvious that this is Python code written by a C++ guy, but I hope that it still might be useful.

Now I need to add some steps to feed it data automatically, but that is for another day.

Qt Contributors Summit 2014

I’m writing from a warm and sunny Berlin, having attended my first Qt Contributors Summit. It is always nice to meet the Qt developer team, and to get a chance to hang out with the Pelagicorians from our Munich office.

QtCS2014This conference really acts as a good balance to Qt Developer Days. Where QtDD consists of speeches and focuses on information for the users of Qt, the QtCS consists of open discussions focusing on the development of Qt. I, personally, will take two things with me from here: the vibrant community and the openness of Qt.

It is nice to see the community in action. There are people from KDE, Digia, KDAB, ICS, Intel, Canonical, Jolla, Pelagicore and more attending.  This really shows how strong Qt has grown through the qt-project. Opening up development to people outside what was Trolltech / Nokia really has resulted in a strong community.

Having people from potentially competing companies at a joint developer conference can be a difficult thing. Here, however, the discussions have been open and honest. As a developer, it is really nice to see that Qt is driven by developers and not by politics. The discussions have been really great, letting everyone discuss their concerns and use-cases and agreeing on the direction going  forward. All of you can read the minutes at the QtCS wiki.

Finally, I’d like to thank Pelagicore for letting me attend, and for sponsoring the QtCS this year.

Qt5 Cadaques 2014-01 released

We are happy to announce the 2014-01 release of Qt 5 Cadaques, a book on Qt. We’ve worked away over the holidays and are happy to bring you chapter 11, on networking. We’ve also restructured chapters 15 and 16, dealing with C++ and native code, so that they are ready to be fleshed out for our next release. In the existing text, we’ve made lots of updates to fix typos and grammar issues.

In addition to fixing and adding contents, we’ve worked on the site. We’ve changed the theme to “flatly”, as we feel that this makes the site nicer to look at and to read from. We’ve also started experimenting with building a PDF/ePUB release. You can find the download links for these at the top of the table of contents. We know that both these formats need polishing, but we will focus our efforts on completing the contents first.

Before I stop and let you all start reading I would like to thank everyone who has visited the site and read the book. The response has been fantastic and we’ve seen so many positive comments, received so many great issue reports and seen the traffic to this site really grow. Thank you for reading!

One week of Jolla

So I’ve enjoyed my first few days as a Jolla user. Before I start discussing Jolla and SailFishOS, something about my phone background. I’ve come from Symbian S60, to the N900, then N9 followed by various Androids before getting my Jolla just before Christmas (great timing – thanks!). This means that I came from a non-service oriented background to Android, and now I finally realize the strength of Android’s service lock-in first-hand. It is really inconvenient moving from Android and Google’s official clients for their services to a platform with third party clients to existing services.

My feelings regarding Jolla are mixed. I want them to succeed. I believe that they are right providing a platform based on Qt, native code and a more generic Linux stack and Android. Unfortunately, I think that this is a classic second system. All ideas have been taken a bit to far, and the end result is… not ideal.

When the N9 arrived it introduced swipes on a whole new level. The level was just right. Everything felt natural, and going to a Samsung S3 felt really clumsy. Since then, swipes have been established by most platforms. On Android you swipe from the top to reach the settings and notifications, in GMail you archive mails by swiping sideways, etc. On the Jolla, there are too many layers of swipeable surfaces, and the simpleness breaks as the user cannot predict what will happen. An example is the photo gallery. Tap to enters the camera photos, tap a photo to enter that photo, and now try to get back out. Swiping sideways moves you between the photos, so swiping back does not work. Instead, you have to tap the photo to get a header with sharing options. Now you can swipe back in that header. Not very intuitive.

Another interesting swipe experience is in the mail client when composing a mail. Then you can reach the top menu by swiping down, or up. Not really a problem, but confusing.

One of the parts of the platform that I was curious about was the Android integration. The Jolla comes with Yandex store. I added the HumbleBundle Android app as well. Compared to my Android devices, the experience is really good. Installations are quick, app performance is good. The only “glitch” is that the Android instance is treated as one app inside SailFishOS, so it is not possible to directly switch between Android apps without first picking the last used Android app and then swithing inside Android.

During my time as a Jolla user I’ve seen two software updates, so the platform is evolving. Right now it feels like a Nokia device. The hardware looks really great and really provides a good performance. Unfortunately, the software is lacking. I hope that the Jolla sailors will have the stamina and strength to take the platform all the way. I really want them to succeed.

Qt 5 Cadaques is Released!

Juergen Bocklage-Ryannel and myself are writing a book! As we’ve reached the point where we want to share our work with the workd, we are happy to open the doors to the book Qt 5 Cadaques – A Book about Qt 5! It all started a couple of years back, when two developers saw a need: there where no books approaching Qt from the QML side. We decided to solve the problem by writing a book.

During these years, lots has happened in the land of Qt. The ecosystem around the Qt Project has stabilized after the whole Microsoft-Nokia thing. Jolla has released a phone with Qt 5, as has Blackberry. Ubuntu Phone will be based on Qt 5. The Raspberry Pi has taken on the whole world with a great hardware that runs great with Qt 5. It is now possible to target both Android and iOS using Qt 5.

Looking at these changes, one can see that Qt really has grown towards mobile. Towards device user interfaces. User interfaces where the look and feel has to be integrated into the context of a physical device. This is where Qt Quick and QML really shines. Before I go on, it is worth pointing out that the Qt ecosystem has grown towards mobile, it has not moved there. The cross platform desktop support is still there and works just as great as it has for almost 20 years now!

For aspiring Qt developers, there is a plethora of documentation for using Qt from C++. There are multiple books on the topic. However, when targetting devices, C++ is only a part of the story. Here, Qt Quick and QML are equally important. That is why we are happy to make Qt 5 Cadaques available!

A final word of warning. The book is being written as you read it. We believe in the open source mantra release early, release often. This means that the text currently is in its early stages. We have setup a feedback system so that you as a reader can help us improve the material by pointing out issues. We are also looking for ways to grow the contents. We also keep a project blog on the site to announce our releases and to ask you about your opinion on the book. We would love for you to tell us what you want to read about!

Raspberry Pi Night

downloadA couple of nights ago, Daniel Stenberg visited the Pelagicore offices in Gothenburg for the Raspberry Pi Night. We had 28 signed up guests and hacked, talked and played for a night.

I was personally surprised about the turn-up – and the number of projects showing up. A couple of guys even came with a lab power supply and their own embedded computer running a SNES emulator. Cool stuff! Some figures around this. We filled the event (28 tickets) in 4-5 days. We got 40+ people on the foss-gbg mailing list in two weeks.

IMG_20131120_164000

I’d like to thank everyone who showed up. Great to see a large crowd! I’d also like to thank Daniel for coming, Pelagicore for hosting and supplying food, a location and competition prizes, and to all my colleagues who helped me in the preparations. As this really took of, I’m already planning for our next event. If you want to brain storm about topics, feel free to drop me a mail (e8johan, gmail). I’m already thinking 3D printing, quad copters, node.js in embedded, Wayland, etc.

Raspberry Pi Night in Gothenburg

The event described below is in Sweden, in Swedish, so simply skip ahead if the rest sounds like gibberish.

Embedded Linux, Automotive, Real-time? Daniel Stenberg, känd från curl, ssh2 and c-ares kommer till stan!

Vi samlas, snackar och hackar inbyggd Linux några timmar. Dra med dig din raspberry pi, beagleboard, pandaboard, androidtelefon eller liknande och vi bygger och installerar egen-byggda uboots, Linux-kernels och rootfilsystem på dem! Har du inte ett eget inbyggt “device” att jobba med kan du säkert låna ett roligt kort när du kommer eller hjälpa någon annan. Dela med dig av ditt projekt och få hjälp, eller häng på någons annans projekt och hjälp till!

Från klockan 16 till klockan 20, i Pelagicores lokaler på Ekelundsgatan 4.

Vi kommer också att krydda kvällen med ett föredrag av Daniel Stenberg med arbetstiteln “real time challenges with Linux” samt en tävling på temat “inbyggd open source”.

Allt händer under Raspberry Pi Night hos Pelagicore, anmälan på https://www.eventbrite.com/event/9160558477 . Begränsat antal platser!

Jolla Launch

Jolla has finally launched the first hints to their first hardware. Being an old N9 user, having dropped his phone, I really do want one. The N9 easily outperformed my current Samsung S3, despite its ancient hardware, so I’m really excited about what Jolla will be able to do with modern hardware.

wide_Jolla_devices

The specs are a bit sketchy at the moment, but I guess things might become more clear tonight. For €399 you will bet a 4.5″ Estrade display, a dual core CPU and 4G support (in some markets, which will be announced later). 16GB of on-board FLASH and support for microSD means that there will be ample space for music, photos, videos and applications.

An 8MP camera seems to be commodity today, but the user-replaceable battery is a nicety.

So, nothing about the performance of the CPU, or even the family. I expect an ARM in the 1GHz range, which will be more than double the power, compared to the N9. Regarding the screen, I do hope for a screen as nice as the N9. I’m kind of worried that no resolution is specified, and Google does not seem to know what an “Estrade” screen is – hopefully it is good. As Europe is targeted first, I hope that the 4G standard supported will be LTE and will work in Swedish networks.

On the software side, I’m really excited about the Sailfish OS and the Gestures. This is what the N9 started, and the N9 is the only real one-hand device I’ve experienced. Finally a Qt / QML environment with the ambition to bring something new to the table.

As for Android app support, I’m not convinced. The power of the N9 was the pure performance of native applications. Adding an Android stack will use system resources and experience the same performance penalty that pure Android systems face. Also, I guess “app compliant” does not mean certified, i.e. does Google Play work? Still, there will be loads of apps, so everyone can use their favorite service. I hope that the Android stack is loaded when needed, so that it doesn’t take resources when using a purely native setup of apps.

At the time of writing, I cannot register a pre-order as the site is down. I only get 503. This must be a good sign, I guess ;-).