Tras el paréntesis del año pasado, ayer conocimos que vuelve Ciberia Lan Party 2018 de Segorbe una de las más grandes Lan Party de la Provincia de Castellón. Una gran noticia para todos los simpatizantes a los videojuegos, internet y la tecnología en general. Es el momento de dar un poco de publicidad del evento que retoma la senda del 2016.
Nuestros amigos de la Ciberia Lan Party de Segorbe vuelven a dar la cara y nos obsequiarán con un fin de semana lleno de diversión, donde volveremos a reunirnos amigos y hacer otros nuevos que comparten nuestra afición por la tecnología, las ganas de divertirse y de pasarlo bien alrededor de unas cuantas mesas llenas de ordenadores, buscando que la familia crezca un poquito más.
La información básica es la siguiente:

En palabras de los organizadores:
“Hola a todos y feliz año nuevo!
KDE Discover Software Center is a key element of our Usability and Productivity initiative because it encompasses the basic experience of discovering, installing, and removing software. Most regular people don’t want to use the command line to do this, and for them, we have Discover.
In the last few weeks, lead developer Aleix Pol has put an enormous amount of work into Discover, fixing bugs and implementing features:
I even got a few patches of my own accepted:
Here are some screenshots of how Discover looks today:
Browse page:

App page:

Settings page:

Installed apps page:

Updates page:

Eagle-eyed readers will notice a few bugs in these screenshots. Those are tracked by the following:
We’re aware of these issues and are actively working to investigate and resolve them. If you use Discover and find any other issues, please feel free to file a bug.
As always, thank you all for your support. If this work excites you or you find Discover useful, consider becoming a contributor yourself or donating to KDE!
By default, the terminal looks as follows on my Linux distribution:

However, if you are working a lot on the terminal, there are a lot of scripts and tricks available in the net that improve the information displayed in the terminal in many ways. For instance, since many many years, I have the following at the end of my ~/.bashrc:
# use a fancy prompt
PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]"
PS1="$PS1 \`if [ \$? = 0 ]; then echo -e '\[\033[01;32m\]:-)';"
PS1="$PS1 else echo -e '\[\033[01;31m\]:-(' \$?; fi\`\[\033[00m\]"
PS1="$PS1 \$(__git_ps1 \"(%s)\") \$ "
Once you open a new terminal, then the appearance is as follows:

As you can see, now I have nice colors: The hostname is green, the folder is blue, the return value of the last executed command is a green
in case of success (exit code = 0), and a red
in case of errors (exit code != 0). In addition, the last part shows the current git branch (master). Showing the git branch is very useful especially if you are using arc a lot and work with many branches.
I am sure there are many more cool additions to the terminal. If you have some nice additions, please share – maybe also as a new blog?
|
|
La convergencia ha empezado y nada va a detenerla. Creo que un buen número de noticias de este año será justo la adaptación de muchas aplicaciones a este nuevo tipo de tecnología. Y la primera de este año va a ser Kamoso, el capturador de vídeo y fotos, que ha migrado a Kirigami ganando flexibilidad y dando un paso para ser utilizado en cualquier tipo de dispositivo.
Conocí Kamoso en mi primera Akademy-es de Bilbao, es decir, en el 2010. Justo cuando conocí a grandes personas como Aleix y Àlex, sus creadores que presentaron en una pequeña ponencia su aplicación.
Se trataba de un simple proyecto con el que podíamos sacar provecho de nuestra webcam, es decir, utilizarla para capturar imágenes y realizar vídeos.
La aplicación se ha ido actualizando hasta llegar a la versión 3.2 en la que no solo tomamos imágenes y vídeos, sino que podemos realizar secuencias de fotografías, controlar el flash, compartir las capturas en facebook o twitter y controlar parámetros como tono, contraste, luminosidad o gama.
Pues bien, la evolución de la aplicación continua, y ya ha sido migrada a Kirigami, lo que significa que la próxima versión, además de mejorar su aspecto gráfico y de ganar funcionalidades como la utilización de filtros, tendrá la flexibilidad que le ofrece esta nueva tecnología y así poder adaptarse a cualquier tipo de pantalla o cualquier modo de manejo (ratón, dedos, teclado, etc)
Y para demostrarlo, nada mejor que un vídeo realizado por el gran Aleix y colgado en su cuenta de youtube.
Kirigami esa plataforma de desarrollo open source multiplataforma basado en Qt con el que se pueden crear aplicaciones que, evidentemente, funcionen en multitud de dispositivos. Es decir, aplicaciones que funcionen tanto en tu teléfono móvil como en tu escritorio.
Si queréis más detalles os aconsejo leer esta entrada del blog en la que ya se habló de esta gran herramienta o ver u oir el siguiente podcast que realizamos la gente de KDE España.
Tobias and Raphael have spent the past month or so hammering on the Qt 5.9 branch, which has (finally!) landed in the official FreeBSD ports tree. This brings FreeBSD back up-to-date with current Qt releases and, more importantly, up-to-date with the Qt release KDE software is increasingly expecting. With Qt 5.9, the Elisa music player works, for instance (where it has run-time errors with Qt 5.7, even if it compiles). The KDE-FreeBSD CI system has had Qt 5.9 for some time already, but that was hand-compiled and jimmied into the system, rather than being a “proper” ports build.
The new Qt version uses a new build system, which is one of the things that really slowed us down from a packaging perspective. Some modules have been reshuffled in the process. Some applications depending on Qt internal-private headers have been fixed along the way. The Telegram desktop client continues to be a pain in the butt that way.
Following on from Qt 5.9 there has been some work in getting ready for Clang 6 support; in general the KDE and Qt stack is clean and modern C++, so it’s more infrastructural tweaks than fixing code. Outside of our silo, I still see lots of wonky C++ code being fixed and plenty of confusion between pointers and integers and strings and chars and .. ugh. Speraking of ugh, I’m still planning to clean up Qt4 on ARM aarch64 for FreeBSD; this boils down to stealing suitable qatomic implementations from Arch Linux.
For regular users of Qt applications on FreeBSD, there should be few to no changes required outside the regular upgrade cycle. For KDE Plasma users, note that development of the ports has changed branches; as we get closer to actually landing modern KDE bits, things have been renamed and reshuffled and mulled over so often that the old plasma5 branch wasn’t really right anymore. The kde5-import branch is where it’s at nowadays, and the instructions are the same: the x11/kde5 metaport will give you all the KDE Frameworks 5, KDE Plasma Desktop and modern KDE Applications you need.

I’m a 30-year-old housewife and mother living in New Mexico in the United States. I’ve always had an interest in becoming a storyteller, and visual art is the most appealing way for me to do it.
Right now I would call myself a hobbyist, as I’ve never published anything professionally. I hope for that to change. What I need is to somehow find the time and energy to crank out images at high volume!
I’ve always been interested primarily in fantasy, although much of my work has consisted of humorous cartoons. Humor creeps into whatever I try to make whether or not I intend for it to be there. My goal for the next decade is to begin a serial, consistent fantasy world as portrayed through cartoons.
My first and largest influences are the old-fashioned Disney animated films from the 20th century, as exemplified by the work of artists like Bill Tytla. I also consider cartoonists and illustrators like Bill Watterson, Maurice Sendak, and Hal Foster to be very influential on my style. Fantasy illustrators like Frank Frazetta inspire me on an emotional level.
I began using digital tools purely as a form of practice a few years ago. To me it was very casual; I was figure drawing and making fan art referencing in-jokes from a favorite podcast of mine called “We Hate Movies.” I didn’t intend to pursue it seriously, but found myself returning to it more and more often.

Traditional painting definitely produces the most beautiful results, but it’s a pain in the neck. Not only does it take up more time and physical space, it’s far more expensive and wasteful. I don’t like the “digital look,” and it will take a lot of practice to minimize that. However, I believe that real artists should never blame their tools for any failure.
I’d almost always drawn pictures with only a pencil before, but digital painting allows me to ink and color my images much more easily. It also opens up options for experimentation when I can simply recolor anything I don’t like. The hardest part has been trying to learn the kind of control with a stylus that I have with my own hand.
My husband is an engineer who works frequently with Linux and is familiar with the open-source world. He suggested Krita to me when I was looking for a digital painting program not called Photoshop.
Krita was the most professional-looking Photoshop alternative that I’d come across. It also played nicely with my stylus and tablet in a way that some other software didn’t. Krita did have some bugginess and crashing, though.
That it’s free! I think it’s remarkable that the open-source community could create something of this quality without a money spigot. Given Adobe’s outrageous pricing scheme for Photoshop, you’d think that software like this couldn’t exist anywhere else. Krita is a much better option.
Bugs and crashes come with the territory in open-source projects, but those are likely to be reduced over time. The real problem is how inaccessible Krita is to lay people. When I was looking to download the program for the first time, I had to follow a completely unintuitive chain of links that, to somebody like me, appeared to be made up of Seussian nonsense words (AppImages for cats? What’s a Gentoo? Why is it bloody?). Idiots like myself just want a giant button that says “GET THE LATEST STABLE VERSION OF KRITA HERE!” The way things are now, the less technically literate will give up on trying Krita before they have even started.
Krita has a great community of support that will ensure that it gets better year by year. It has the right priorities, i.e. essential tools like layers and brushes get implemented before more obscure features. Other than occasional crashes, I can just jump in and use it.

I made this page in Krita in order to see whether I could use it for a webcomic I plan on creating. The experiment was a success, and I believe that my skills will continue to grow. This proves that I can use Krita to tell the kinds of stories that I have plans for.
I mostly use a basic round brush that I resize accordingly. Line brushes are convenient for separating the panels. I think that skills are more important than tools, and I want to train myself to use the simplest tools that I can.
I’m shy about publishing, but I realize that this is something I need to change about myself. Once I’ve worked up a sizable volume of content, which should be within the next year, I will be posting a regular webcomic called The Unknown Engine.
I’m grateful that the Internet and the open-source movement affords artists like me the opportunity to create and publish in new ways. I often think about Bill Watterson’s long fight with his syndicates, and how different it would have been for him if he was able to publish Calvin and Hobbes on the Internet under his own control. I’m nowhere near his level of course, but I want to improve my own skills until I get there.
2017 began with the once-in-a-lifetime trip to India to speak at KDE.Conf.in. That was amazing enough, but the trip to a local village, and visiting the Kaziranga National Park were too amazing for words.
Literal highlight of last year were the eclipse and trip to see it with my son Thomas, and Christian and Hailey's wedding, and the trip to participate with my daughter Anne, while also spending some time with son Paul, his wife Tara and my grandson Oscar. This summer I was able to spend a few days in Brooklyn with Colin and Rory as well on my way to Akademy. So 2017 was definitely worth living through!
Hello devs! Happy new year!
It is common to use the new year date to start new projects or give new directions for old ones. The last one is the case for Cantor.
Since when I got the maintainer status for Cantor, I was working to improve the community around the software. Because the great plugins systems of Qt, it is easy to write new backends for Cantor, and in fact in last years Cantor reached the number of 11 backends.
If in a hand it is a nice thing because Cantor can run different mathematical engines, in other hand it is very common developers create backends, release them with Cantor upstream, and forget this piece of software after some months. The consequence of this is a lot of unsolved bugs in Bugzilla, unexpected behaviours of some backends, and more.
For instance, R backend is broken from some years right now (thanks Rishabh it was fixed during his GSoC/KDE Edu Sprint 2017 but not released yet). Sage backend breaks for each new release of Sage.
Different backends use different technologies. Scilab and Octave backends use QProcess + Standard Streams; Python 2 uses Python/C API; Python 3, R, and Julia use D-Bus.
In addition to these, remember each programming language used as mathematical engine for Cantor has their respective release schedule and it is very common new versions break the way as backends are implemented.
So, yes, the mainternhip of Cantor is a hell.
In order to remedy it I invited developers to be co-maintainer of these respective backends, but it does not have the effect I was suposed to. I implemented a way to present the versions of programming languages supported in the backend but it does not work well too.
So, my main work in Cantor during these years was try to solve bugs of backends I don’t use and, sometimes, I don’t know how they work, while new features were impossible to be planned and implemented.
If we give a look to Jupyter, the main software for notebook-based mathematical computation, it is possible to see this software supports several programming languages. But, in fact, this support is provide by the community – Jupyter focus effort in Python support only (named the ipython kernel) and in new features for Jupyter itself.
So, I would like to hear the KDE and Cantor community about the future of Cantor. My proposal is split the code of the others backends and put them as third-party plugins, maintained by their respective community. Only the Python 3 backend would be “officially” maintaned and delivered in KDE Applications bundle.
This way I could focus in provide new features and I could to say “well, this bug with X backend must be reported to the X backend community because they are accountable for this piece of software”.
So, what do you think about?
Tener temas alternativas con los que re-decorar nuestro escritorio Plasma 5 de KDE es una de las cosas que más me gusta de este entorno de trabajo. Es por ello que me complace compartir con todos vosotros Adapta KDE, un tema para Plasma que destaca por su elegancia y sus detalles azulados.
De la mano de X-Varlesh-X nos llega Adapta KDE, un tema elegante y colorido, ideal para convertir nuestro Plasma en un entorno minimalista. Esta afirmación se basa en el uso de colores oscuros combinados con azules casi eléctricos, una mezcla muy acertada.
Estos detalles azules se aprecian perfectamente en los separadores de iconos de la barra de tareas, en el escritorio o elemento de Plasma seleccionado, en el plasmoide reloj digital, etc.
Adapta KDE es un port del tema Adapta GTK, tan popular en ese entorno de trabajo, y que se ha adaptado a las particularidades de Plasma.
En su última revisión se han mejorado algunos iconos de la bandeja del sistema y se ha optimizado el código.
En definitiva, un gran Tema que en realidad no es más que una parte de un gran proyecto que contiene otros elementos y que presentaré en un futuro cercano.
Y, como siempre digo, si os gusta el Tema podéis “pagarlo” de muchas formas en la nueva página de KDE Store, que estoy seguro que el desarrollador lo agradecerá: puntúale positivamente, hazle un comentario en la página, realiza una donación o ayúdale con la documentación. Ayudar al desarrollo del Software Libre también se hace simplemente dando las gracias, ayuda mucho más de lo que os podéis imaginar, recordad la campaña I love Free Software Day 2017 de la Free Software Foundation donde se nos recordaba esta forma tan sencilla de colaborar con el gran proyecto del Software Libre y que en el blog dediqué un artículo.
Más información: KDE Store
|
|
![]() |
| shadows with size:100% and opacity:100% |
![]() |
| dock/panel options |
LibAlkimia is a base library that contains support for financial applications based on the Qt C++ framework. One of its main features is the encapsulation of The GNU Multiple Precision Arithmetic Library (GMP) and so providing a simple object to be used representing monetary values in the form of rational numbers. All the mathematical details are …
It's been 5 months since I came to GCompris community, but it feels it was a few days back. I came here as a newbie in open source, not even knowing how to ask sensible questions (that's very important which I learned during my works in GCompris), not even knowing how and where to begin. …
Continue reading "Season Of KDE 2018"
|
|
The 5th and final bugfix update (5.11.5) of the Plasma 5.11 series is now available for users of Kubuntu Artful Aardvark 17.10 to install via our Backports PPA.
This update also includes an upgrade of KDE Frameworks to version 5.41.
To update, add the following repository to your software sources list:
ppa:kubuntu-ppa/backports
or if it is already added, the updates should become available via your preferred update method.
The PPA can be added manually in the Konsole terminal with the command:
sudo add-apt-repository ppa:kubuntu-ppa/backports
and packages then updated with
sudo apt update
sudo apt full-upgrade
Upgrade notes:
~ The Kubuntu backports PPA includes various other backported applications, so please be aware that enabling the backports PPA for the first time and doing a full upgrade will result in a substantial amount of upgraded packages in addition to Plasma 5.11.5.
~ The PPA may also continue to receive updates to Plasma when they become available, and further updated applications where practical.
~ While we believe that these packages represent a beneficial and stable update, please bear in mind that they have not been tested as comprehensively as those in the main Ubuntu archive, and are supported only on a limited and informal basis. Should any issues occur, please provide feedback on our mailing list [1], IRC [2], and/or file a bug against our PPA packages [3].
1. Kubuntu-devel mailing list: https://lists.ubuntu.com/mailman/listinfo/kubuntu-devel
2. Kubuntu IRC channels: #kubuntu & #kubuntu-devel on irc.freenode.net
3. Kubuntu PPA bugs: https://bugs.launchpad.net/kubuntu-ppa
|
|
We are happy and proud to announce the immediate availability of Zanshin 0.5.0.
After 0.4.0 one year and a half ago and 0.4.1 last year (which wasn't publicly announced), this new release introduce new features. The 0.4 series was mostly about the Qt 5 port and stabilization, now we can be a bit more ambitious again.
So what's in store for that new release?
Under the hood, we also did some improvements:
So quite a lot of nice things in this release. We increased the features and polish of what you experience while improving the code base itself. All in all, this should be a very nice release.
As usual, you can grab 0.5.0 while it is fresh! Packages for KDE Neon and openSUSE Tumbleweed are already available, it's only a matter of time until the other distributions catch up.
|
|
Plasma 5.11.5 KDE Neon
https://www.kde.org/announcements/plasma-5.11.5.php
Now available in KDE Neon User Edition!
After a very long time, the KMyMoney development team is about to start the release cycle for the first release of its personal finance manager application based on KF5/Qt5. Various reports show us that people are already using the master branch in their production environment, as several team members have also done for at least …
|
|
Community Goals Over the second half of 2017, KDE has been going through the ambitious effort of having its community propose and choose goals for the next 3-4 years. These goals have been set now, and I was thrilled to learn that my proposal on Streamlined onboarding of new contributors was chosen and many other KDE contributors believed this was a goal worth pursuing in the near future and voted for it.
First of all: Happy New Year! Second, I think that I need to update you on Atelier and AtCore. There are about two months now that AtCore reached its beta stage and we release it with the test client. On my Docker Hub account, the image of AtCore(Master and Beta) was pulled more than 30... Continue Reading →
After a beta version in September and a release candidate in October, there is finally a release of KBibTeX 0.7.
A tag has been set and tar balls have been published.
The only changes compared to the release candidate are attempts to fix online search issues with Google Scholar and IEEE Xplore.
( Read more... )KDE’s Visual Design Group recently put some thought into shadows in Breeze. Right now, the default shadows are rather small, and can be almost entirely invisible on the left edge:

We decided to make them larger and deeper by default, and center them horizontally so that there’s a shadow on the left edges of windows and menus as well. I was honored to produce the patch, and I’m happy to report that it’s been accepted and merged! Starting in Plasma 5.12, here’s how shadows will look:

These are just default settings of course; if you don’t like big shadows, you can tweak to your heart’s content (System Settings > Application Style > Window Decorations > [click on the little menu button in the corner of the Breeze entry] > Shadows). But this new default setting provides a much greater sense of depth that I think most users will find quite welcome.
|
|
FreeBSD is getting more serious about license metadata in the packages produced by the project — that is, the binary distribution of software produced from licensed source code. A lot of software in FreeBSD “proper” is (naturally) BSD-licensed, and a lot of Free Software packaged by FreeBSD is (also naturally) GPL licensed. But the different licenses carry different obligations, so it’s good to keep track of the exact licensing applied to each bit of software.
To this end, there’s the LICENSE= line in each port’s Makefile. Its meaning is “this software has such-and-such a license”. For conciseness, SPDX identifiers are used, so that you can write
LICENSE=LGPL21
and we know what you mean. Because licenses can carry textual obligations (e.g. the GPL expects you to receive a copy, and the BSD licenses generally require you to include the copyright notice with distributions), there’s
an additional setting to include the actual text, called LICENSE_FILES:
LICENSE_FILES=COPYING.LIB
There’s a third source of license information, and that is the headers of the sources themselves. Usually you put a copyright-and-license header at the top of each file; some licenses such as the MPL even require some administration in there. The reuse.software site (by the FSFE) provides good guidance and best-practices information for providing licensing metadata in software packages.
Anyway, for KDE Frameworks 5 I was going through the ports Makefiles and adding LICENSE information. The KDE Licensing Policy tells me that frameworks should be licensed LGPL21+, with a few variants allowed; an interesting one is (at your option) “LGPL21 or LGPL3 or any later version approved by KDE e.V.” Right now, in 2017, this choice is the same as LGPL21+ because no later versions exist, but it is not always-in-the-future-same, so I hesitate to write
LICENSE=LGPL21+
for KDE Frameworks until I’ve checked the files. The license text is usually included, but it’s not quite consistently named, so I need to look into the tarballs anyway. And as a double-check, I read a couple of source headers to see if the license named in the code, matches the license text elsewhere (e.g. some files say LGPL 2.1 only).
It’s a bit of a slow process — one which upstream (that is, the source code) could support a little better with consistent naming. It’s also a process that needs to be monitored continually, to ensure that the whole body of software remains properly and consistently licensed — hopefully following best practices, too.
Anyway, as of today only ten of the KDE Frameworks 5 ports in the official FreeBSD ports repository have all their licensing information set, to the best of my ability to check their accuracy. As an ongoing project in keeping-license-info up-to-date it’s not very high-priority but something that gets done in-between other things.
Challenges with cloud messaging for embedded devices has inspired the Kaltiot & SnowGrains teams to create a cross-platform Qt API which enables easy push messaging from and to embedded devices. The API is called the Qt Cloud Messaging API and it is built with flexibility and extensibility in mind.
We have decided to target other Qt areas, too, and make the API easily extensible to any service provider instead of being for embedded only. This enables developers to use the same API for both mobile and desktop development.
There is a vast number of push messaging providers for mobile and web development nowadays. Yet in industries like automation, automotive, robotics and for other embedded devices there has not really been any providers for this type of service. The need is increasing at a rapid pace as embedded and IoT devices are pushed more and more messages by the device owners, car service providers, telemetry, cloud and many others.
The Qt Cloud Messaging API is simple to adopt and take into use.
Let’s take a sneak peek at how to utilize the API for embedded systems and Android mobile platforms. We’ve integrated the Kaltiot Smart IoT SDK and the Firebase C++ SDK into the backend, and with the Qt Cloud Messaging API we can easily create e.g. a chat application on top of it.
Kaltiot Smart IoT is a service for scalable and secure messaging between devices and services. It provides bi-directional and always online, yet battery optimized communication. The client SDK is designed to work even in constrained low-end devices in poor wireless network conditions. Kaltiot Smart IOT is available for Linux32, Linux64, Raspberry Pi, Mac, Android.
First, clone the qtcloudmessaging repository: git clone https://codereview.qt-project.org/qt/qtcloudmessaging
Service provider
Pre-requirements:
#include <QtCloudMessaging> #include <QtCloudMessagingEmbeddedKaltiot>
// Instantiate CloudMessaging library
QCloudMessaging *pushServices = new QCloudMessaging();
// Add provider for Kaltiot Embedded systems
QCloudMessagingEmbeddedKaltiotProvider *kaltiotPushService = new QCloudMessagingEmbeddedKaltiotProvider()
// Provider based init parameters are given with QVariantMap
QVariantMap provider_params;
provider_params[“API_KEY”] = “Your API key from the Kaltiot console for server communication”;
// Creating name for provider which can be used cross your app.
pushServices->registerProvider(“KaltiotService”, kaltiotPushService, provider_params);
QVariantMap client_params;
client_params[“address”] = “IOTSensor1”;
client_params[“version”] = “1.0”;
client_params[“customer_id”] = “Kaltiot”;
// Creating default channels to listen
QVariantList channels;
channels.append(“weather_broadcast_channel”);
client_params[“channels”] = channels;
// Connect IoT sensor client to system
pushServices->connectClient(“KaltiotService”, “IOTSensor1”, client_params);
//! Automatically subcribe to listen one more channel e.g. WindInfo.
pushServices->subsribeToChannel(“WindInfo”, ” KaltiotService “, ” IOTSensor1″);
6._ Provide context of cloud messaging to QML in main.cpp
//! Provide context to QML
engine.rootContext()->setContextProperty(“pushServices”, pushServices);
QML Part:
in main.qml catch the messages coming from the Kaltiot service.
To receive the message in QML:
Connections{
target : pushServices
onMessageReceived:{
//! Message is received as string and needs parsing to JSON
console.log(message)
}
}
//! Sending a broadcast message e.g. from the weather station:
//! Message structure for embedded devices is easy:
//! define payload json:
//! {
//! “payload_type”:”STRING”,
//! “payload”: encodeURI(JSON.stringify(payload))
//! }
//! Payload is your application specific. E.g:
var payload =
{
msgType:”NEW_WEATHER_INFO”,
city: “Oulu”,
forecast: “full sunlight for whole next week”
}
//! Capsulate payload to message and send it via QtCloudMessaging API:
var payload_array = [{“payload_type”:”STRING”,”payload”: encodeURI(JSON.stringify(payload))}]
pushServices.sendMessage(JSON.stringify(data), ”KaltiotService”, ”IOTSensor1”, ””, ”weather_broadcast_channel”);
Using the Qt Cloud Messaging API for Android / iOS mobile development with Google Firebase service provider
Pre-requirements:
DISTFILES += \android/google-services.json
Define Google firebase path into your application.pro file with GOOGLE_FIREBASE_SDK
#include <QtCloudMessaging>
#include <QtCloudMessagingFirebase>
// Instantiate CloudMessaging library
QCloudMessaging *pushServices = new QCloudMessaging();
QCloudMessagingFirebaseProvider *firebaseService = new QCloudMessagingFirebaseProvider();
QVariantMap provider_params;
// Server API key is not recommended to store inside to the application code due security reasons.
// But if you do, make sure it is inside compiled C file or if you are doing a server side implementation with C++ & Qt.
// SERVER_API_KEY Is needed to be able to send topic messages from the client without Firebase application server.
provider_params[“SERVER_API_KEY”] = “Get your SERVER API KEY from the google firebase console”;
// Registering the Google firebase service component.
pushServices->registerProvider(“GoogleFireBase”, firebaseService, provider_params);
/*! Connected client is needed for mobile device.
\param Service name “GoogleFireBase”
\param Client identifier name to be used inside the application
\param Parameters for the client. No params for firebase client.
*/
pushServices->connectClient(“GoogleFireBase”, “MobileClient”, QVariantMap());
//! Automatically subscribe to listen one example topic
pushServices->subsribeToChannel(“ChatRoom”, “GoogleFireBase”, “MobileClient”);
6._ Provide context of cloud messaging to QML in main.cpp
//! Provide context to QML
engine.rootContext()->setContextProperty(“pushServices”, pushServices);
QML Part:
in main.qml catch the messages coming from the google firebase
Connections{
target : pushServices
onMessageReceived:{
//! Message is received as string and needs parsing to JSON
console.log(message)
}
}
//! For firebase, message structure needs to have data as whole message.
//! Notifications are shown in the Android/iOS notification center.
function sendMessage(notification_titile, notification_msg, msg){
var data = { “data”:{
“message”: {“text”:msg } },
“notification” : {
“body” : notification_msg,
“title” : notification_titile
}
}
//! Give data and service provider identifier as well as client name defined in the C++ code.
pushServices.sendMessage(JSON.stringify(data),”GoogleFireBase”,”MobileClient”,””,”ChatRoom”);
}
You can play around with the Qt Cloud Messaging API + firebase from the sample
https://github.com/snowgrains/qtcloudmessaging-examples
The Qt Cloud Messaging API provides cross-platform API to enable us to include new providers and still keep the development API as same.
The Qt Cloud Messaging API has been developed to be easily extensible to any service provider. Take a sneak peek at ongoing development from the https://codereview.qt-project.org/qt/qtcloudmessaging and contribute your own backend service to the community.
Kaltiot has been developing and hosting IoT cloud services since 2008. Trusted e.g. by Microsoft, Kaltiot passes through 10M messages every hour. (www.kaltiot.com)
SnowGrains provides Full Stack Software Solutions On The Rocks.(www.snowgrains.com)
Ari Salmi is multi-technology developer and Qt enthusiast.
The post Qt Cloud Messaging API Available for Embedded Systems appeared first on Qt Blog.
Good evening fellas,
Happy New Year to all! The year 2017 has been a rollercoaster, to be honest. Well, it was rich and prosperous year regarding in technical terms. It was a beautiful year of great learning, splendid travel and got to network with some fantastic folks all around the globe.
The best reason for making this 2017 incredible for me is KDE. One of the exciting community I have ever seen! It all started at the end of 2016, I got intrigued by the Tagline of KDE, “Experience freedom”. I started contributing to various projects inside KDE. My initial start was with Konsole, system settings, KIO and various educational suite programs. Moving on, I came across a student program organized by KDE named KDE-SoK and I was selected for it, yay!!!
The project was with KStars(KDE’s amateur astronomy software which provides real-time and an accurate graphical simulation of the night sky, from any location on Earth.) to collect a new set of images from NASA/ESO catalogs along with orientation and pixel scale (arcsecs/pixel) from the whole set of Messier Catalog (which is a collection of 110 astronomy objects in the night sky). Images were processed for overlay in KStars using OpenCV, so to have transparency and to modulate according to the software.
After the successful completion of the project, I was invited as a speaker to give a talk on “Object-Tracking Using OpenCV and Qt” at KDE India Conference held at IIT Guwahati in March 2017. Again, yay!! :P. There I met a lot of enthusiastic KDE people out there. 
Later on, I was selected as a Google Summer of Code (2017 edition) intern funded by Google. I contributed to Krita(Krita is a professional and open source painting program) of KDE. The project was to Integrate share.krita.org.
Share.krita.org is a place where users can share Krita scripts, images, brush packs and more. This project has two parts: integrate with the KNSCore part of the KNewStuff framework (or reimplement the protocol) and create a GUI for sharing. The second part is improving the support for creating and editing bundles. Bundles can contain brushes, patterns, gradients and so on. Also, Krita needed basic support for creating and editing bundles.
Thus said, the entire journey with KDE last year was splendid!! The community as such is a group of awesome and enthusiastic people from all around the globe. To do more than I could last year — I hope to be a part of this great venture in 2018.
Here’s to a productive year, and looking forward to the same in 2018. You can see more of what happened in KDE in 2017 on the KDE year-end fundraiser page. Please do show some of your support to the community and its developers through the fundraiser to built your favorite software 
Some of my blog post regarding my work last year:

To the awesome year coming right your way,
Cheers.
At the beginning of 2017, I was a programmer (mostly Python, and a little bit of C++) and spent most of my day at my desk, with an IDE open and a cup of coffee at hand. At the end of 2017, I’m a programmer (mostly C++, and a little bit of Python) and spend most of my day at my desk, with an IDE open and a cup of espresso at hand.
At some level of abstraction, not much has changed this year.
Of course, now I spend my entire day working on Free Software, in three different but partly-overlapping communities: KDE, FreeBSD, and Calamares. Basically you can track everything I do each day by looking in the relevant repositories on GitHub (read-only mirrors in the case of FreeBSD and KDE). Inspired by Michael, Krita, Matthieu Gallien (with the this-week-in-Elisa series) and Dominik Haumann, I’ve collected a list of things I did this year, in no particular order:
Here’s to a productive year, and looking forward to the same in 2018. You can see more of what happened in KDE in 2017 on the KDE year-end fundraiser page.
A central place to track KDE development is the kde-commits@kde.org mailing list. To this mailing list, all code changes are sent, containing the log message as well as the diff that quickly shows what really changed. In the early days of KDE development, the changes were maintained by the CVS version control system. Later, this was changed to subversion. Nowadays, KDE mostly uses git, but some svn modules are still around.
Since KDE is developed by many contributors, the kde-commits@kde.org mailing list obviously has high traffic, ranging from ~100 mails up to 400 mails a day (see marc.info for statistics).
Many developers are subscribed to this mailing list. However, due to high traffic and possibly many changes that are unrelated to your pet project, a commit filter was invented, which was available on https://commitfilter.kde.org for a long time. Essentially, this commit filter allowed to easily setup filters in terms of regular expressions, such that you’d only get mails for changes you are interested in. While this was convenient, the commit filter also had its drawbacks: Instead of getting all KDE changes, you missed a lot possibly interesting conversations: Since post-code reviews are often done by others through email conversation directly on the code changes.
Nowadays, the commit filter is not available anymore, mostly for security reasons since it was unmaintained for a long time.
What does that mean? I’m subscribed to kde-commits@kde.org again, getting all changes. In fact, I am enjoying skimming quickly through the changes, even doing a code review here and there.
I recommend every KDE contributor to subscribe to this mailing list, since it is very interesting to see which projects are actively developed and who really contributes to KDE in person. Even better, sometimes there are discussions on this list, helping you to learn things you didn’t know. Of course, nowadays we also have many code reviews on phabricator, but still the commit mailing list is a nice addon to track KDE development.
The year is about to end and so is Cutelyst v1 series, I wasn’t planning for another release this year but Matthias added some nice new features that I decided to roll 1.12 in 2017 branching 1.x.x series and master is now officially Cutelyst 2 with no stable API/ABI until 2.0.0 is tagged.
HTTP/2 support will hopefully be part of Cutelyst 2.0.0, there aren’t any drastic changes in v2, most important thing is fixing MSVC builds and removing deprecated API.
Back to this release it includes a new CSRF protection plugin, with a Grantlee tag similar to what Django has. Add to this many fixes and the epoll event loop dispatcher is now even faster and got many fixes, performance wise it’s great advantage is when dealing with many simultaneous connections, it can lead to 2-3 times faster than default glib one.
https://github.com/cutelyst/cutelyst/archive/v1.12.0.tar.gz
Happy new hacking year!
Playing with emojis
At some point, I needed to copy paste emojis, but couldn’t find a good way to do it. So what does a good hacker do?
Scratch an own itch. As I wrote about in the past, all these projects should be shared with the rest of the world.
So here it is: https://cgit.kde.org/scratch/sune/aubergine.git/
It looks like this with the symbola font for emojis: 
It basically lets you search for emojis by their description, and by clicking on a emoji, it gets inserted into the clipboard.
As such, I’m not sure the application is really interesting, but there might be two interesting bits in the source code:
And of course, now it is simple to describe fancy cooking:

(aubergine) (hocho) (fire)
I ❣ emoji
Not goodbye, but hello to a new music player on my desktop. It is already packaged for FreeBSD and has a long development history.
Music players stand or fall per individual user whether they satisfy the user’s needs — no duh there, but it means I should note what my use cases are before enthusing about some music player in particular. I would be fine with playing music from the command-line, most of the time: mpg123 --shuffle /mnt/music/*/*/* is just about right (except it fails with an argument list too long error in the shell). This is for music-while-I-hack, so I don’t listen too closely, it’s not hi-fi at all, basically I want “play in a genre until I switch it off“. Tagging is largely done when ripping my CDs (I still buy physical media!) and I don’t care for album art (I can look in the jewel case if I want that, and they’re all stacked in boxes upstairs). So play, pause, stop .. and if it can avoid mixing Mahler with Morrissey and Mötorhead, that’s a bonus.
Off to the left here is Sayonara, which describes itself as:
“Sayonara is a small, clear and fast audio player for Linux written in C++, supported by the Qt framework. It uses GStreamer as audio backend. Sayonara is open source and uses the GPLv3 license. One of Sayonara’s goals is intuitive and easy usablility. Currently, it is only available for Linux.“
Clearly that’s not true, because it’s available for FreeBSD as well
. I forget how I configured it; there’s a File > Open Directory entry and I probably filled in /mnt/music and it went and found everything that gstreamer will sensibly play. The screenshot is of the minimal playlist-only view. It can be broadened to include a library view which is a bit chaotic, but which searches reasonably well (e.g. for Mudhoney). Sayonara is actually where I discovered the luxury of stay-on-genre autoplay: when I started on some Dutch punk and it kept pretty close to that, wandering off to de Kift occasionally — but no Drs.P.
I contributed a few small fixes to get Sayonara building on FreeBSD, cleaning up the CMakeLists for newer CMake, that kind of thing. Now that it runs on my Plasma desktop all day, I can spot some more minor issues — the system tray media player control doesn’t interact with Sayonara at all, for instance. For my use-case, that’s not so important, since the fire-and-forget genre play does it for me until I hit pause in the main UI.
I’m looking forward to KDE music players Elisa and Babe, for comparison purposes: maybe they tick my requirements-boxes just as well, or better. Certainly Elisa seems to be fairly playing-music-focused. I’ve even got a FreeBSD port for Elisa ready, just waiting for Qt 5.9 to show up on my doorstep (I can get it to compile against 5.7, but it won’t run due to QML runtime thingies).
Elisa is a music player designed to be simple and nice to use. It allows to browse music by album, artist or all tracks. You can build and play your own playlist. We aim to build a fluid interface that is easy to use.
I enjoy working on the elisa music player. I hope some people enjoy using it. All of this would not have been possible without the KDE community. There is an ongoing fundraising campaign. Please support it.
https://www.kde.org/fundraisers/yearend2017/
Not much have been done due to Christmas and end of year holidays.
The following things have been integrated in Elisa git repository:
There are also some pending diff request in phabricator.
We have also some ongoing work to organize work with KDE VDG. Some future changes following their feedback is planned.
I am also driving an effort to more clearly communicate what elisa is about (inspired by the work on KDE goals and plasma vision). I hope to be able to also have a vision for elisa and to derive some goals aligned with those of the KDE community.
Planet KDE is made from the blogs of KDE's contributors. The opinions it contains are those of the contributor. This site is powered by Rawdog and Rawdog RSS. Feed readers can read Planet KDE with RSS, FOAF or OPML.