Feed aggregator

Martin Pitt: Migrated blog from WordPress to Hugo

Planet Ubuntu - Mon, 02/06/2017 - 13:04

My WordPress blog got hacked two days ago and now twice today. This morning I purged MySQL and restored a good backup from three days ago, changed all DB and WordPress passwords (both the old and new ones were long and autogenerated ones), but not even an hour after the redeploy the hack was back. (It can still be seen on Planet Debian and Planet Ubuntu. Neither the Apache logs nor the Journal had anything obvious, nor were there any new files in global or user www directories, so I’m a bit stumped how this happened. Certainly not due to bruteforcing a password, that would both have shown in the logs and also have triggered ban2fail, so this looks like an actual vulnerability.

I upgraded to WordPress 4.7.1 a few days ago, and apparently 4.7.2 fixes a few vulnerabilities, although all of them don’t sound like they would match my situation. jessie-backports is still at 4.7.1, so I missed that update. But either way, all WordPress blogs hosted on my server are down for the time being.

I took this as motivation to finally migrate to something more robust. WordPress has tons of features that I never need, and also a lot of overhead (dynamic generation, MySQL, its own user/passwords, etc.). I had a look around, and it seems Hugo and Blogofile are nice contenders – no privileges, no database, outputting static files, input is Markdown (so much nicer to type than HTML!), and maintaining your blog in git and previewing the changes on my local laptop are straightforward. I happened to try Hugo first, and like it enough to give it an extended try – you have plenty of themes to choose from and they are straightforward to customize, so I don’t need to spend a lot of time learning and crafting CSS.

I ran the WordPress to Hugo Exporter, and it produced remarkable results – fairly usable HTML → Markdown and metadata conversion, it keeps all the original URLs, and it’s painless to use. Nicely done!

So here it is, on to a much more secure server now! \o/

Costales: FOSDEM 2017

Planet Ubuntu - Mon, 02/06/2017 - 05:03
Viajar a algunas Ubucons me ha permitido conocer a personas excepcionales de la comunidad. Y en esta ocasión, me animé a asistir al FOSDEM en Bruselas, uno de los eventos más importantes de Europa en cuanto a software libre.
VIERNES 3 DE FEBRERO - BEER EVENTLlegué el primero al evento cervecero del viernes, al que pronto se unieron Marius, Ilonka, Diogo, Tiago, Laura, Rudy y Quest. El famoso Delirium Cafe estaba muy petado y eso que sólo podían entrar asistentes a FOSDEM.Olive, Quest, Rudy, Tiago y yoAhí estuvimos conversando sobre Ubuntu y disfrutando de buena cerveza, hasta que a la 1 nos retiramos cogiendo un autobús dirección a la casa de Diogo (que me hospedó en su casa ¡Gracias Diogo!), pero ops... íbamos en el autobús equivocado que nos alejó 30km al sur de la ciudad. Tuvimos que volver en un taxi en la gélida madrugada belga. Aunque Diogo, con su buen humor característico, intentaba animarnos a Tiago y a mi intentando que disfrutaramos de las vistas de un edificio con luces de colores que había cerca.
SÁBADO 4 FEBRERO - CONFERENCIAS (DE MOZILLA)Este será mi único día de conferencias, pues el domingo tengo el avión de vuelta temprano.No había apenas charlas sobre Linux o Ubuntu, así que disfruté el día entero en el aula de Mozilla.
Rina Jensen abrió el día con una charla muy interesante sobre qué motiva a la comunidad de código abierto.
Continuó Pascal Chevrel, con quien trabajé muchísimo en el pasado para la localización de Firefox al asturiano. No lo había conocido antes en persona y moló ponerle cara :)
Tras Pascal, Alex Lakatos nos mostró el potencial de las Herramientas de Desarrollador que están preinstaladas en Firefox. Y Daniel Scasciafratte nos contó el potencial de las webextensions.
Rina Jensen
El gran Pascal
Un invitado especial
La sala estuvo muy llena casi todo el día
Interrumpí la sesión para ir a comer con Tiago y Diogo. Tras comer coincidí con Jeroen, que no le veía desde la Ubucon Europe. Charlamos largo y tendido, tanto, que me salté 6 charlas.Jeroen y yo
De vuelta a la conferencia de Mozilla ví demostraciones como las de Eugenio Petulla con el A-Frame para realidad virtual.
El potencial de javascript para crear juegos HTML5, por Istvan Szmozsanzky y cómo de fácil es flashear ese juego en una miniconsola Arduboy.
Las últimas conferencias fueron las de Daniel Stenberg con una gran sala abarrotada sobre qué será lo siguiente a HTTP/2, la de Robert Kaiser sobre las alternativas para loguearse en webs, Leo McArdle sobre Discourse, Kristi Progri sobre el papel de la mujer en el software libre en general y Mozilla en particular y Glori Dwomoh sobre como obtener más atención y empatía cuando hablemos de nuestra comunidad.
Finalizó una muy amena charla de Raegan MacDonald sobre asuntos actuales de copyright.
Raegan MacDonaldTras las charlas nos reunimos parte de los ubunteros, alargando la noche con unas pizzas y cerveza en el centro de la ciudad.
Centro de BruselasRudy y Tiago
¡Hasta la próxima!

Ross Gammon: My Monthly Update for January 2017

Planet Ubuntu - Sat, 02/04/2017 - 10:55

It has been a quiet start to the year due to work keeping me very busy. Most of my spare time (when not sitting shattered on the sofa) was spent resurrecting my old website from backups. My son had plenty of visitors coming to visit as well, which prompted me to restart work on my model railway in the basement. Last year I received a whole heap of track, and also a tunnel formation from a friend at work. I managed to finish the supporting structure for the tunnel, and connect one end of it to the existing track layout. The next step (which will be a bit harder) is to connect the other end of the tunnel into the existing layout. The basement is one of the favourite things for me to keep my son and his friends occupied when there is a visit. The railway and music studio are very popular with the little guests.

  • Packaged latest Gramps 4.2.5 release for Debian so that it will be part of the Stretch release.
  • Package latest abcmidi release so it too would be part of Stretch. The upstream author had changed his website, so it took a while to locate a tarball.
  • Tested my latest patches to convert Cree.py to Qt5, but found another Qt4 – Qt5 change to take into account (SIGNAL function). I ran out of time to fully investigate that one, before Creepy was booted out of testing again. I am seriously considering the removal of Cree.py from Debian, as the upstream maintainer does not seem very active any more, and I am a little tired of being upstream for a project that I don’t actually use myself. It was only because it was a reverse dependency of osm-gps-map that I originally got involved.
  • Started preparing a Gramps 5.2.5 backport for Jessie, but found that the tests I enabled in unstable were failing in the Jessie build. I need to investigate this further.
  • Announced the Ubuntu Studio 16.02.2 point release date on the Ubuntu Studio mailing lists asking for testers. The date subsequently got put back to February the 9th.
  • Upgraded my Ubuntu Studio machine from Wily to Xenial.
  • Resurrected my old Drupal Gammon One Name Study website. I used Drupal VM to get the site going again, before transferring it to the new webhost. It was originally a Drupal 7 site, and I did not have the required versions of Ansible & Vagrant on my Ubuntu Xenial machine, so the process was quite involved. I will blog about that separately, as it may be a useful lesson for others. As part of that, I started on a backport of vagrant, but found a bug which I need to follow up on.
  • Also managed to extract my old WordPress blog posts from the same machine that had the failed Drupal instance, and import them into this blog. I also learnt some stuff in that process that I will blog about at some point.
Plan status from last month & update for next month Debian

Before the 5th February 2017 Debian Stretch hard freeze I hope to:

For the Debian Stretch release:


  • Finish the Gramps 5.2.5 backport for Jessie.
  • Package all the latest upstream versions of my Debian packages, and upload them to Experimental to keep them out of the way of the Stretch release.
  • Begin working again on all the new stuff I want packaged in Debian.
  • Finish the ubuntustudio-lightdm-theme, ubuntustudio-default-settings transition including an update to the ubuntustudio-meta packages. – Still to do (actually started today)
  • Reapply to become a Contributing Developer. – Still to do
  • Start working on an Ubuntu Studio package tracker website so that we can keep an eye on the status of the packages we are interested in. – Started
  • Start testing & bug triaging Ubuntu Studio packages. – Still to do
  • Test Len’s work on ubuntustudio-controls – Still to do
  • Try and resurrect my old Gammon one-name study Drupal website from a backup and push it to the new GoONS Website project. – Done
  • Give JMRI a good try out and look at what it would take to package it. – In progress
  • Also look at OpenPLC for simulating the relay logic of real railway interlockings (i.e. a little bit of the day job at home involving free software – fun!).

Svetlana Belkin: January 2017 Update

Planet Ubuntu - Sat, 02/04/2017 - 10:43

If anyone noticed that I tend to post at least two (2) blog posts per month, but the month of January 2017 was different.  My blog was down for a half of December 2016 and most of January 2017.  But that didn’t stop me from creating posts- just in a different way!  Through my vBlogs and AudioBlogs.

As I said on my AudioBlog Episode 1, here are the updates and some that I forgot to add:

  • As of now, my Ubuntu volunteer work will be on hold.  This is partly due to the fact that I’m still dealing with burntout and I’m out of ideas on how grow the Community.
  • On behalf of the general admins of Linux Padawn, we have sadly closed the site and program down due to the fact that nothing is happening.  Linux Padawan is just another dead project.
  • Over the month of January, I started to think about leadership within the Open * communities.  This started when I found out that Mozilla Foundation is hosting a leadership mentoring program in March in which I applied to but as a co-leader/project manager looking to be partnered up.  I might not make in but I may be able to find some project to be apart of.
    • I also am working on adding more to their leadership training series, which is a training series on the open practices of being a leader along with GitHub being used as a tool.
  • So far, I’m liking my Pebble Time although the Ubuntu (Touch) has issues reconnecting back to the watch if the disconnection is longer than five (5) minutes.  Most of the time when this happens a simple factory reset on the watch is needed and it will not delete anything that you have downloaded from the phone to the watch, just the data that is stored on the watch.  I also advise to forget the connection before factory reset.

And that’s all, thanks for reading!

Benjamin Mako Hill: New Dataset: Five Years of Longitudinal Data from Scratch

Planet Ubuntu - Fri, 02/03/2017 - 13:01

Scratch is a block-based programming language created by the Lifelong Kindergarten Group (LLK) at the MIT Media Lab. Scratch gives kids the power to use programming to create their own interactive animations and computer games. Since 2007, the online community that allows Scratch programmers to share, remix, and socialize around their projects has drawn more than 16 million users who have shared nearly 20 million projects and more than 100 million comments. It is one of the most popular ways for kids to learn programming and among the larger online communities for kids in general.

Front page of the Scratch online community (https://scratch.mit.edu) during the period covered by the dataset.

Since 2010, I have published a series of papers using quantitative data collected from the database behind the Scratch online community. As the source of data for many of my first quantitative and data scientific papers, it’s not a major exaggeration to say that I have built my academic career on the dataset.

I was able to do this work because I happened to be doing my masters in a research group that shared a physical space (“The Cube”) with LLK and because I was friends with Andrés Monroy-Hernández, who started in my masters cohort at the Media Lab. A year or so after we met, Andrés conceived of the Scratch online community and created the first version for his masters thesis project. Because I was at MIT and because I knew the right people, I was able to get added to the IRB protocols and jump through the hoops necessary to get access to the database.

Over the years, Andrés and I have heard over and over, in conversation and in reviews of our papers, that we were privileged to have access to such a rich dataset. More than three years ago, Andrés and I began trying to figure out how we might broaden this access. Andrés had the idea of taking advantage of the launch of Scratch 2.0 in 2013 to focus on trying to release the first five years of Scratch 1.x online community data (March 2007 through March 2012) — most of the period that the codebase he had written ran the site.

After more work than I have put into any single research paper or project, Andrés and I have published a data descriptor in Nature’s new journal Scientific Data. This means that the data is now accessible to other researchers. The data includes five years of detailed longitudinal data organized in 32 tables with information drawn from more than 1 million Scratch users, nearly 2 million Scratch projects, more than 10 million comments, more than 30 million visits to Scratch projects, and much more. The dataset includes metadata on user behavior as well the full source code for every project. Alongside the data is the source code for all of the software that ran the website and that users used to create the projects as well as the code used to produce the dataset we’ve released.

Releasing the dataset was a complicated process. First, we had navigate important ethical concerns about the the impact that a release of any data might have on Scratch’s users. Toward that end, we worked closely with the Scratch team and the the ethics board at MIT to design a protocol for the release that balanced these risks with the benefit of a release. The most important features of our approach in this regard is that the dataset we’re releasing is limited to only public data. Although the data is public, we understand that computational access to data is different in important ways to access via a browser or API. As a result, we’re requiring anybody interested in the data to tell us who they are and agree to a detailed usage agreement. The Scratch team will vet these applicants. Although we’re worried that this creates a barrier to access, we think this approach strikes a reasonable balance.

Beyond the the social and ethical issues, creating the dataset was an enormous task. Andrés and I spent Sunday afternoons over much of the last three years going column-by-column through the MySQL database that ran Scratch. We looked through the source code and the version control system to figure out how the data was created. We spent an enormous amount of time trying to figure out which columns and rows were public. Most of our work went into creating detailed codebooks and documentation that we hope makes the process of using this data much easier for others (the data descriptor is just a brief overview of what’s available). Serializing some of the larger tables took days of computer time.

In this process, we had a huge amount of help from many others including an enormous amount of time and support from Mitch Resnick, Natalie Rusk, Sayamindu Dasgupta, and Benjamin Berg at MIT as well as from many other on the Scratch Team. We also had an enormous amount of feedback from a group of a couple dozen researchers who tested the release as well as others who helped us work through through the technical, social, and ethical challenges. The National Science Foundation funded both my work on the project and the creation of Scratch itself.

Because access to data has been limited, there has been less research on Scratch than the importance of the system warrants. We hope our work will change this. We can imagine studies using the dataset by scholars in communication, computer science, education, sociology, network science, and beyond. We’re hoping that by opening up this dataset to others, scholars with different interests, different questions, and in different fields can benefit in the way that Andrés and I have. I suspect that there are other careers waiting to be made with this dataset and I’m excited by the prospect of watching those careers develop.

You can find out more about the dataset, and how to apply for access, by reading the data descriptor on Nature’s website.

Ubuntu Insights: Cloud Chatter: January 2017

Planet Ubuntu - Fri, 02/03/2017 - 08:49

Welcome to the first edition of 2017. In this issue we showcase what you can expect from us and invite you to meet with us at Mobile World Congress if you’re planning to be in Barcelona. We share our latest eBook on server provisioning and what Network Admins and IT Pros need to know to get ahead of the curve. Read on for informative webinars, videos/tutorials and our involvement at upcoming events. As always we conclude with a roundup of industry news.

Join us at Mobile World Congress

Software is what helps telcos manage their network in an intelligent and automated way. Software is what turns a generic rack of server into a mobile telco, a landline operator or a big data backend. Software is what turns a home hub into an IoT Gateway, a file server or a voice control hub.

This year at Mobile World Congress (MWC), the world’s largest annual gathering for the mobile and telco industry, our booth will tell the story of how Ubuntu is at the very center of the world’s software-defined future. Drop by our stand, in Hall P3 – 3K31 to see our OpenStack, Kubernetes, 5G, NFV, network equipment, consumer IoT, enterprise IoT and Phone demos in action.

Alternatively, book a meeting with our executive team to discuss how we can solve your business challenges.

Server provisioning eBook: What Network Admins and IT Pros need to know

Our latest ebook outlines how innovative companies are leveraging Metal-as-a-service (MAAS) to get more out of their hardware investment while making their cloud environments more efficient and reliable. Smart IT pros know that going to the cloud does not mean having to rip and replace their entire infrastructure to take advantage of the opportunities the cloud offers. Canonical’s MAAS is a mature solution to help organisations to take full advantage of their cloud and legacy hardware investments. Download the eBook

Upcoming webinars Join our OpenStack and Containers Office Hours

We’ve kicked off a series of ‘Office Hours’ online sessions to help community members and customers deploy, manage and scale their Ubuntu-based cloud infrastructure. You can see a snippet of the action below:

#OpenStack Office Hours are the best way to gets your questions answered by the experts! Join us next Thursday! https://t.co/UcvHkBC8UC pic.twitter.com/xKkc4Am8fY

— Ubuntu Cloud (@ubuntucloud) February 2, 2017

Future ‘Office Hours’ sessions will be hosted by senior engineers or product managers from our cloud architecture team and cover a range of topics around OpenStack and containers. Register for Office Hours

Getting Started with the Canonical Distribution of Kubernetes

Join us for our upcoming webinar on the 22nd February to learn how to set up your own Kubernetes cluster on Amazon Web Services. We’ll cover initial configuration, installation, and validation. We’ll also cover how to horizontally scale your cluster for future growth, as well as other lifecycle tasks such as upgrades, backups, logging, and monitoring. Sign-up for this webinar

In Other News Cloud economics – why private open cloud makes financial sense

Watch our latest on-demand webinar, co-presented by QTS, to discover the simplest and most cost-effective approach to hybrid cloud using a highly scalable, fully managed and cost-effective open cloud like Ubuntu OpenStack. Watch now

What IT Directors should know about the economics of OpenStack

OpenStack is a way for organizations to deploy IaaS (Infrastructure as a Service) and PaaS (Platform as a Service) solutions in an open source environment on commodity hardware. Many customers look at OpenStack as an opportunity to reduce the cost of application deployment and management. While it is true, the cost to deploy OpenStack is relatively low, the ongoing investment in maintenance, labor, and operations are not. In fact, labor is one of the most expensive budget items that will undoubtedly continue to rise over time. Read the full blog

Join us for a hands-on workshop at Container World in Santa Clara

Our team are going to be at the Container World event next month delivering some great sessions. The first of which is a hands-on workshop teaching you the differences in container types, how to setup a Kubernetes install, and the vocabulary and common workflows for running containers on Kubernetes. Spaces are limited so register to avoid disappointment. Join us at Container World

Juju Charmer Summit at the Config Management Camp

Join us for the upcoming Juju Charmer Summit, a free, two day event co-located with Config Management Camp, in Gent, Belgium. Enjoy two days of Juju sessions focused around OpenStack, NFV, Big Data, Benchmarking, and Container technologies like Kubernetes and Mesos. Register for the Juju Charmer Summit

Top blog posts from Insights Section 5: Industry news section (3-5 articles per section)

Ubuntu Cloud in the news

OpenStack & NFV

Containers & Storage

Big Data / Machine Learning / Deep Learning

Ubuntu Insights: Snapcraft 2.26 has been released

Planet Ubuntu - Fri, 02/03/2017 - 04:53

Hello snapcrafters!

We are pleased to announce the release of version 2.26 of snapcraft has been released: https://launchpad.net/snapcraft/+milestone/2.26


This release has seen some contributions from outside of the snapcraft core team, so we want to give a shout out to these folks, here’s a team thank you for:

  • Björn Tillenius
  • Marco Trevisan
  • Matthew Aguirre
  • Olivier Tilloy
  • Shawn Wang
New in this release Snap directory now in place

All the snapcraft specific asset handling has been moved to the snap directory as the preferred location for the following:

  • snapcraft.yaml
  • setup/gui
  • parts/plugins

This adds up to the already existing location for hooks introduced in 2.25.

On snapcraft init, snapcraft will now create a snap/snapcraft.yaml file. Keep in mind that the existing snapcraft.yaml and .snapcraft.yaml are still valid and not deprecated.
However, use of parts/plugins will print a deprecation message with a link tohttps://snapcraft.io/docs/deprecation-notices/dn2 and use of setup/gui will behave in a similar way but linking to https://snapcraft.io/docs/deprecation-notices/dn3.

stage packages

The experience for using multi-architecture package entries in stage-packages has been refined. This should provide a better experience for when someone wants to; to illustrate image that on an arm64 you would want to include an armhf package, e.g.;

parts: packages: plugin: nil stage-packages: - libfoo:armhf Desktop file support enhancements

Snapcraft 2.25 introduced support for desktop file entries in as part of an app entry in apps. There have been improvements to this functionality for when the app entry in apps matches the snap nameas well as polishing in the assembly of the resutling snap.

godeps plugin

The godeps plugin until this release fetched all the dependencies defined in dependencies.tsv or that defined in the part by the godeps-file entry and proceeded to build all package main sources found in the tree. This can now be limited to only build certain packages by use of the go-packagesentry.

As an example let’s use juju. It currently as at the time of this writing:

  • github.com/juju/juju/cmd/juju
  • github.com/juju/juju/cmd/jujud
  • github.com/juju/juju/cmd/plugins/juju-metadata
  • github.com/juju/juju/cmd/plugins/juju-upgrade-mongo

Without the go-packages entry you would end up with 4 binaries in your snap juju. jujud. juju-metadata and juju-upgrade-mongo. If for example you wanted to only build juju something like this would do the trick:

parts: juju: https://github.com/juju/juju go-importpath: github.com/juju/juju go-packages: - github.com/juju/juju/cmd/juju catkin plugin

The catkin plugin has been optimized under the hood to work better with the compiler meant to be used with the chosen ROS release.

gradle plugin

The gradle plugin has been enhanced to also work with gradle transparently when gradlew is not provided with the sources of that part.

python plugin

The python plugin will now do the right thing when setting up a requirements entry and having an install_requires entry in setup.py.

General polishing

Some nice polishing that is part of ongoing work is showing up in this release:

  • schema errors related to text length limits now display an error a human can parse.
  • incorrect spacing issues have been fixed in some prompts.
  • some projects that are part of the tour had missing `build-packages added to them.
  • colors have been fixed for failed logins to the store.

For the full list of things available on 2.26 feel free to check https://launchpad.net/snapcraft/+milestone/2.26

Final Notes

To get the source for this release check it out at https://github.com/snapcore/snapcraft/releases/tag/2.26

A great place to collaborate and discuss features, bugs and ideas on snapcraft is snapcraft@lists.snapcraft.io mailing list or on the snapcraft channel on Rocket Chat https://rocket.ubuntu.com/channel/snapcraft

To file bugs, please go to https://bugs.launchpad.net/snapcraft/+filebug.

Happy snapcrafting!
— Sergio and the team

Ubuntu Insights: The first consumer device to run snaps: Nextcloud box

Planet Ubuntu - Fri, 02/03/2017 - 04:49

The Nextcloud box is a private cloud and IoT solution for home users, giving consumers a way to take back control over their personal data. It’s an app-enabled home gateway and the first Ubuntu-Core-enabled consumer device.

Snaps and Ubuntu Core are key enablers of the “out-of-the-box” solution, sustainable auto-update and security functionality. Ubuntu Core’s ease-of-use and flexibility supported a rapid time to market in just a few months from concept to a fully working product.

“As a completely open source product we encourage anyone to take the idea, the OS, the hardware, the software and let your creativity run wild to adapt and create new, more advanced or refined solutions for new markets and use cases.”

Frank Karlitschek, Founder and Managing Director at Nextcloud

Learn more about the Nextcloud box below.

Download the case study

James Page: snap install openstackclients

Planet Ubuntu - Fri, 02/03/2017 - 04:07

Over the last month or so I’ve been working on producing snap packages for a variety of OpenStack components.  Snaps provide a new fully isolated, cross-distribution packaging paradigm which in the case of Python is much more aligned to how Python projects manage their dependencies.

Alongside work on Nova, Neutron, Glance and Keystone snaps (which I’ll blog about later), we’ve also published snaps for end-user tools such as the OpenStack clients, Tempest and Rally.

If you’re running on Ubuntu 16.04 its really simple to install and use the openstackclients snap:

sudo snap install --edge --classic openstackclients

right now, you’ll also need to enable snap command aliases for all of the clients the snap provides:

ls -1 /snap/bin/openstackclients.* | cut -f 2 -d . | xargs sudo snap alias openstackclients

after doing this, you’ll have all of the client tools aligned to the OpenStack Newton release available for use on your install:

aodh barbican ceilometer cinder cloudkitty designate freezer glance heat ironic magnum manila mistral monasca murano neutron nova openstack sahara senlin swift tacker trove vitrage watcher

The snap is currently aligned to the Newton OpenStack release; the intent is to publish snaps aligned to each OpenStack release using the series support that’s planned for snaps –  so you’ll be able to pick clients appropriate for any supported OpenStack release or for the current development release.

You can check out the source for the snap on github; writing a snap package for a Python project is pretty simple, as it makes use of the standard pip tooling to describe dependencies and install Python modules. Kudos to the snapcraft team who have done a great job on the Python plugin.

Let us know what you think by reporting bugs or by dropping into #openstack-snaps on Freenode IRC!

Costales: FreedomPop en Ubuntu Phone

Planet Ubuntu - Thu, 02/02/2017 - 15:09
Solicité una SIM de FreedomPop España para usarla en mi Ubuntu Phone (principalmente para los viajes, pues ofrece roadming gratis en 25 países y no hace falta recargar saldo cada cierto tiempo). Además tiene promociones de SIM por 1€ de vez en cuando.

Sabía que las llamadas y SMS no iban a funcionar sin Android o iOS. Pero tenía dudas respecto a los datos. Y ahora os puedo confirmar que sí, la conexión de datos funciona bien.

Para activar los datos debemos configurar lo siguiente:

Vamos a Configuración > MóvilActivamos "Itinerancia de datos" y pulsamos en "Operador y APN"
Pulsamos en "APN"
Activamos y pulsamos en el APN que tengamos (por defecto yo tenía "3")

Establecemos estos datos y pulsamos en el icono de arriba a la derecha
A disfrutar de Internet :)

Simos Xenitellis: How to install Inkscape 0.92 (latest) as a snap in Ubuntu 16.04

Planet Ubuntu - Thu, 02/02/2017 - 11:26

Inkscape is professional open-source vector graphics editor. The latest version is 0.92. Here is a video demonstrating the new Inkscape 0.92 features. And detailed Inkscape 0.92 Release Notes.

Here is how to install as the Inkscape snap on Ubuntu 16.04 (and other GNU/Linux distributions that support snaps). The snap was created by Inkscape Board member Ted Gould.

Let’s see what is available as a snap for Inkscape.

$ snap info inkscape name:      inkscape summary:   "Vector Graphics Editor" publisher: inkscape description: |   An Open Source vector graphics editor, with capabilities similar to   Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector   Graphics (SVG) file format.     Inkscape supports many advanced SVG features (markers, clones, alpha blending,   etc.) and great care is taken in designing a streamlined interface.   It is very easy to edit nodes, perform complex path operations, trace   bitmaps and much more.     We also aim to maintain a thriving user and developer community by using   open, community-oriented development.   channels:                         stable:    0.92.0     (1880) 148MB -   candidate: 0.92.0     (2307) 149MB -   beta:      0.92.0     (2307) 149MB -   edge:      0.92+devel (2314) 149MB -

We can see that there is already a stable snap for 0.92. If we are comfortable with the stable snap (it’s 0.92!), we can install it from the Ubuntu Software as well.

The one with the nonfree tag is that snap. The other is the package from the repositories, an older version. For some reason, the snaps have the nonfree tag, which weirdly helps to distinguish from the repository packages.

Let’s install the stable Inkscape snap and let’s run it.

Ok, it has a retro look. What’s going on? Is retro in fashion again?

Let’s run the snapped Inkscape from the command line:

$ inkscape Gtk-Message: Failed to load module "overlay-scrollbar" Gtk-Message: Failed to load module "gail" Gtk-Message: Failed to load module "atk-bridge" Gtk-Message: Failed to load module "canberra-gtk-module"

So this is what is going on. There is a bug in the current stable version of the snap. These errors mean, among other things, that the theming is not working. You can read some feedback in a recent AskUbuntu answer about snap packaging by Sergio Schvezov. In addition, it was a bug that was mentioned on G+ a few days ago.

Let’s try out the package from the edge channel and see whether it has fixed the theming issue.

$ snap remove inkscape inkscape removed $ snap install inkscape --channel=edge inkscape (edge) 0.92+devel from 'inkscape' installed

Instead of the option –channel=edge above, you can also use –edge. My preference is to show the verbose version when I type commands in tutorials so that it is easy to see that edge refers to the channel.

Let’s run the edge Inkscape from the command line.

$ inkscape Gtk-Message: Failed to load module "canberra-gtk-module" Gtk-Message: Failed to load module "canberra-gtk-module"

Only the canberra GTK module is missing now, which is a nice improvement. canberra refers to libcanberra and has to do with sound events.

Let’s try Inkscape, minus the sound events.

Here it is then, and it looks fine.

Most users do not now much about vector graphics. Inkscape makes it easy to learn because it has built-in tutorial.

Here is how to get it to load up.

You click on Help→Tutorials→Inkscape: Basic to start off with the first tutorial. You can see that there is a good set of tutorials.

Here is how the first tutorial looks like. It is an Inkscape document (*.svg), and you can freely edit the document while you are reading and learning more about Inkscape!

Make an effort to complete the full set of the Inkscape tutorials.

Harald Sitter: How to Global Menu in Plasma 5.9

Planet Ubuntu - Thu, 02/02/2017 - 10:02

Today Plasma 5.9.0 became available in KDE neon User Edition. With it comes the return of global menus along with other awesome sauce features.

To enable global menus open System Settings, go into the Application Style category, and in the Widget Style settings you will find a tab called Fine Tuning. On this tab you can find the new Menubar options. You can change to either a Title Bar Button, which will tuck the menu into a tiny button into the window decoration bar at the top, or the Application Menu widget, allowing the associated Plasma panel to supply the menu in a fixed location.

To apply the change, your applications need to be restarted, so ideally you’ll simply log out and back in again.

To add an Application Menu to Plasma, simply right click on the desktop and add the Panel called Application Menu Bar.

Enjoy your new Plasma 5.9 with global menu bars!

Ubuntu Insights: Run scripts during snapcraft builds with “scriptlets”

Planet Ubuntu - Thu, 02/02/2017 - 03:16

If you have snapped an application, or tried to snap an application, you know that Snapcraft heavily depends on built-in plugins for specific build systems and that it provides a large array of choices to do so. You can snap ROS apps, Python 2 and 3 apps, Go apps, Rust apps, Java apps, Linux kernels and many more, by simply declaring the right plugin name.

What if your app depends on multiple build systems? Or uses a custom build script, or maybe you want to run make test as part of a snapcraft build? Until recently, you had to write a custom plugin and ship it along your snapcraft.yaml, which was working fine but took time to achieve and made you ship an extra directory just for it. With Snapcraft “scriptlets”, this is over and the path to snapping is now much faster.


Scriptlets are shell scripts, sourced directly from your snapcraft.yaml, that change the behaviour of a plugin. They can be triggered before the “build” step to run commands on your source code before building it, instead of it, to completely override the building behaviour and after: to move build artefacts around, change a config file or anything that you would need to happen after the build.

How to use them

Scriptlets are declared using specific keywords in your snapcraft part:

  • prepare: for commands that need to happen before the build step of a plugin
  • build: to override a plugin’s build step
  • install: for commands that need to happen after the build step

Have a look at the documentation for more details, or see the following examples to get started: a demo of the prepare scriptlet and a real world use case with the MySQL snap.

Demo: add a snap build timestamp with the prepare scriptlet

This asciinema recording shows you how to use the prepare scriptlet to write to a new file and include it in the snap at build time.

Real world use case: MySQL

Let’s see how the MySQL snap uses the prepare: keyword to pull deb packages from their server, unpack and load them into the project directory during a snapcraft build.

Source: https://github.com/mysql/mysql-snap/blob/5.7/snapcraft.yaml

If we look at the parts: section of the snapcraft.yaml we can see a mysql-server part, that dumps a pre-built MySQL into the snap.

parts: mysql-server: prepare: ./stage_binaries.sh build-packages: [libaio-dev, libmecab-dev, libnuma-dev, libncurses5-dev, zlib1g-dev] plugin: dump source: ./ organize: staging-files/usr: usr/ snap: - usr/lib/mysql/plugin/mysql_no_login.so - usr/lib/mysql/plugin/innodb_engine.so - usr/lib/mysql/plugin/mypluglib.so <snip> - usr/bin/my_print_defaults - usr/bin/mysqldump - usr/bin/mysql_tzinfo_to_sql - usr/bin/mysql_upgrade - usr/share/mysql/*

The script called at the prepare stage is stage_binaries.sh
(source: https://github.com/mysql/mysql-snap/blob/5.7/stage_binaries.sh)

SNAPDIR=$(pwd) SNAPTMP=$(mktemp -d) cd ${SNAPTMP} MYSQL_VERSION_MAJOR=5.7 MYSQL_VERSION_FULL=5.7.17-1ubuntu16.04 FILENAME="mysql-server_${MYSQL_VERSION_FULL}_amd64.deb-bundle.tar" wget "http://dev.mysql.com/get/Downloads/MySQL-{MYSQL_VERSION_MAJOR}/${FILENAME}" tar -xvf "${FILENAME}" ar x mysql-community-client_${MYSQL_VERSION_FULL}_amd64.deb tar -xvf data.tar.xz rm data.tar.xz ar x mysql-community-server_${MYSQL_VERSION_FULL}_amd64.deb tar -xvf data.tar.xz mkdir staging-files mv usr staging-files/ rm -rf ${SNAPDIR}/staging-files mv staging-files ${SNAPDIR} cd ${SNAPDIR}

It uses wget to download mysql debian packages, unpack them and copy their content into the current directory.

Once this prepare script is run, the dump plugin proceeds as usual: taking content from the source and including it in the final snap.

Without this scriptlet, there would have been a need for a custom plugin or several other parts that would have increased the complexity of the snapcraft.yaml.

More examples

You will find usage snippets on the scriptlets page at snapcraft.io and in the snapcraft test suite:

Simos Xenitellis: How to try the new MUFFIN (“Ribbon”) toolbar of LibreOffice 5.3 in Ubuntu 16.04

Planet Ubuntu - Wed, 02/01/2017 - 12:46

LibreOffice 5.3 has several new features and one of them is the new MUFFIN toolbars.

Let’s try them out.

First, we installed LibreOffice 5.3 on Ubuntu using a snap and start the new version of LibreOffice Writer.

By default, the new MUFFIN toolbar is not available because it is currently an experimental feature. We need to enable the support for experimental features.

Click on the menu Tools→Options or press Alt+F12. You get the following,

In LibreOffice→Advanced, we enable the Enable experimental features (may be unstable) and click OK.

We are asked to restart LibreOffice and we click on Restart Now.

After the restart, there are a few new submenus in the View menu. Specifically, there is a Toolbar Layout submenu which a few options. The Notebookbar is the one that resembles the Ribbon in MSOffice. We select it.

The default Notebookbar is the one in the Tabbed style. There are two more styles as shown below.

The following is Contextual groups:

And this one is Contextual single:

Simos Xenitellis: How to install LibreOffice 5.3 from snap on Ubuntu 16.04 (and others)

Planet Ubuntu - Wed, 02/01/2017 - 12:16

LibreOffice 5.3 was released a few days ago, and it has several new nice features.

Caption 1  LibreOffice 5.3, installed from a snap.

The LibreOffice project provides a tarball for Ubuntu with the new version, that can be downloaded, extracted and then we can run it.

However, we can install a snap with LibreOffice 5.3, which makes it convenient for testing and not messing up our system.

The following apply to Ubuntu 16.04 or newer. It also applies to Ubuntu 14.04 once you follow this tutorial.

Let’s check what snaps are available for LibreOffice.

$ snap info libreoffice name:      libreoffice summary:   "LibreOffice is a powerful office suite including word processing and creation of spreadsheets, slideshows and databases" publisher: canonical description: |   LibreOffice is a powerful office suite – its clean interface and   feature-rich tools help you unleash your creativity and enhance your   productivity. LibreOffice includes several applications that make it the most   powerful Free and Open Source office suite on the market: Writer (word   processing), Calc (spreadsheets), Impress (presentations), Draw (vector   graphics and flowcharts), Base (databases), and Math (formula editing). channels:                    stable: (10) 364MB -   candidate: (10) 364MB -   beta: (10) 364MB -   edge: (14) 374MB - $ _

We learn that there are several channels for snaps, and the new version of LibreOffice is currently in the edge channel. This channel is that channel that is less stable than all others. That is, if we go for edge, we are bleeding edge in terms of LibreOffice. And some things may not work due to packaging. By installing this snap, we help in testing the packaging of the LibreOffice snap.

Let’s install LibreOffice from the edge channel:

$ sudo snap install libreoffice --channel=edge libreoffice (edge) from 'canonical' installed $ _

Let’s get some info again from the installed LibreOffice snap.

$ snap info libreoffice name:      libreoffice summary:   "LibreOffice is a powerful office suite including word processing and creation of spreadsheets, slideshows and databases" publisher: canonical description: |   LibreOffice is a powerful office suite – its clean interface and   feature-rich tools help you unleash your creativity and enhance your   productivity. LibreOffice includes several applications that make it the most   powerful Free and Open Source office suite on the market: Writer (word   processing), Calc (spreadsheets), Impress (presentations), Draw (vector   graphics and flowcharts), Base (databases), and Math (formula editing). commands:   - libreoffice.impress   - libreoffice   - libreoffice.math   - libreoffice.writer   - libreoffice.base   - libreoffice.calc   - libreoffice.draw tracking:    edge installed: (14) 374MB - refreshed:   2017-01-19 04:24:50 +0200 EET channels:                    stable: (10) 364MB -   candidate: (10) 364MB -   beta: (10) 364MB -   edge: (14) 374MB -

We verify that LibreOffice 5.3 was installed and now we know the new commands to run the new version.

Let’s figure out now how to run the new LibreOffice. Because we already have LibreOffice (the stock Ubuntu LibreOffice) installed.

$ whereis libreoffice libreoffice: /usr/bin/libreoffice /usr/lib/libreoffice /etc/libreoffice /usr/share/libreoffice /snap/bin/libreoffice /snap/bin/libreoffice.calc /snap/bin/libreoffice.math /snap/bin/libreoffice.draw /snap/bin/libreoffice.writer /snap/bin/libreoffice.impress /snap/bin/libreoffice.base /usr/share/man/man1/libreoffice.1.gz $ _

The stock LibreOffice is under the /usr tree. The freshly installed LibreOffice is under the /snap tree.

Caption 2  Trying to find “libreoffice” in Dash. It shows both the stock LibreOffice and the snapped LibreOffice.

The icons from both corresponding versions are the same. Empirically, the first for LibreOffice Writer would be the stock LibreOffice, while the second one is the snapped LibreOffice.

We can move the icons on the Launcher and then launch them. If we selected our preferred version, then we are fine. Otherwise, we try with the other same icon.

Here is how LibreOffice 5.3 Writer looks like.

Daniel Pocock: Going to FOSDEM, Brussels this weekend

Planet Ubuntu - Wed, 02/01/2017 - 02:07

This weekend I'm going to FOSDEM, one of the largest gatherings of free software developers in the world. It is an extraordinary event, also preceded by the XSF / XMPP Summit

For those who haven't been to FOSDEM before and haven't yet made travel plans, it is not too late. FOSDEM is a free event and no registration is required. Many Brussels hotels don't get a lot of bookings on weekends during the winter so there are plenty of last minute offers available, often cheaper than what is available on AirBNB. I was speaking to somebody in London on Sunday who commutes through St Pancras (the Eurostar terminal) every day and didn't realize it goes to Brussels and only takes 2 hours to get there. One year I booked a mini-van at the last minute and made the drive from the UK with a stop in Lille for dinner on the way back, for 5 people that was a lot cheaper than the train. In other years I've taken trains from Switzerland through Paris or Luxembourg.

Real-time Communication (RTC) dev-room on Saturday, 4 February

On Saturday, we have a series of 23 talks about RTC topics in the RTC dev-room, including SIP, XMPP, WebRTC, peer-to-peer (with Ring) and presentations from previous GSoC students and developers coming from far and wide.

The possibilities of RTC with free software will also be demonstrated and discussed at the RTC lounge in the K building, near the dev-room, over both Saturday and Sunday. Please come and say hello.

Please come and subscribe to the Free-RTC-Announce mailing list for important announcements on the RTC theme and join the Free-RTC discussion list if you have any questions about the activities at FOSDEM, dinners for RTC developers on Saturday night or RTC in general.

Software Defined Radio (SDR) and the Debian Hams project

At 11:30 on Saturday I'll be over at the SDR dev-room to meet other developers of SDR projects such as GNU Radio and give a brief talk about the Debian Hams project and the relationship between our diverse communities. Debian Hams (also on the Debian Ham wiki) provides a ready-to-run solution for ham radio and SDR is just one of its many capabilities.

If you've ever wondered about trying the RTL-SDR dongle or similar projects Debian Hams provides a great way to get started quickly.

I've previously given talks on this topic at the Vienna and Cambridge mini-DebConfs (video).

Ham Radio (also known as amateur radio) offers the possibility to gain exposure to every aspect of technology from the physical antennas and power systems through to software for a range of analog and digital communications purposes. Ham Radio and the huge community around it is a great fit with the principles and philosophy of free software development. In a world where hardware vendors are constantly exploring ways to limit their users with closed and proprietary architectures, such as DRM, a broad-based awareness of the entire technology stack empowers society to remain in control of the technology we are increasingly coming to depend on in our every day lives.

St&eacute;phane Graber: Ubuntu Core in LXD containers

Planet Ubuntu - Tue, 01/31/2017 - 13:27

What’s Ubuntu Core?

Ubuntu Core is a version of Ubuntu that’s fully transactional and entirely based on snap packages.

Most of the system is read-only. All installed applications come from snap packages and all updates are done using transactions. Meaning that should anything go wrong at any point during a package or system update, the system will be able to revert to the previous state and report the failure.

The current release of Ubuntu Core is called series 16 and was released in November 2016.

Note that on Ubuntu Core systems, only snap packages using confinement can be installed (no “classic” snaps) and that a good number of snaps will not fully work in this environment or will require some manual intervention (creating user and groups, …). Ubuntu Core gets improved on a weekly basis as new releases of snapd and the “core” snap are put out.


As far as LXD is concerned, Ubuntu Core is just another Linux distribution. That being said, snapd does require unprivileged FUSE mounts and AppArmor namespacing and stacking, so you will need the following:

  • An up to date Ubuntu system using the official Ubuntu kernel
  • An up to date version of LXD
Creating an Ubuntu Core container

The Ubuntu Core images are currently published on the community image server.
You can launch a new container with:

stgraber@dakara:~$ lxc launch images:ubuntu-core/16 ubuntu-core Creating ubuntu-core Starting ubuntu-core

The container will take a few seconds to start, first executing a first stage loader that determines what read-only image to use and setup the writable layers. You don’t want to interrupt the container in that stage and “lxc exec” will likely just fail as pretty much nothing is available at that point.

Seconds later, “lxc list” will show the container IP address, indicating that it’s booted into Ubuntu Core:

stgraber@dakara:~$ lxc list +-------------+---------+----------------------+----------------------------------------------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +-------------+---------+----------------------+----------------------------------------------+------------+-----------+ | ubuntu-core | RUNNING | (eth0) | 2001:470:b368:b2b5:216:3eff:fee1:296f (eth0) | PERSISTENT | 0 | +-------------+---------+----------------------+----------------------------------------------+------------+-----------+

You can then interact with that container the same way you would any other:

stgraber@dakara:~$ lxc exec ubuntu-core bash root@ubuntu-core:~# snap list Name Version Rev Developer Notes core 16.04.1 394 canonical - pc 16.04-0.8 9 canonical - pc-kernel 4.4.0-45-4 37 canonical - root@ubuntu-core:~# Updating the container

If you’ve been tracking the development of Ubuntu Core, you’ll know that those versions above are pretty old. That’s because the disk images that are used as the source for the Ubuntu Core LXD images are only refreshed every few months. Ubuntu Core systems will automatically update once a day and then automatically reboot to boot onto the new version (and revert if this fails).

If you want to immediately force an update, you can do it with:

stgraber@dakara:~$ lxc exec ubuntu-core bash root@ubuntu-core:~# snap refresh pc-kernel (stable) 4.4.0-53-1 from 'canonical' upgraded core (stable) 16.04.1 from 'canonical' upgraded root@ubuntu-core:~# snap version snap 2.17 snapd 2.17 series 16 root@ubuntu-core:~#

And then reboot the system and check the snapd version again:

root@ubuntu-core:~# reboot root@ubuntu-core:~# stgraber@dakara:~$ lxc exec ubuntu-core bash root@ubuntu-core:~# snap version snap 2.21 snapd 2.21 series 16 root@ubuntu-core:~#

You can get an history of all snapd interactions with

stgraber@dakara:~$ lxc exec ubuntu-core snap changes ID Status Spawn Ready Summary 1 Done 2017-01-31T05:14:38Z 2017-01-31T05:14:44Z Initialize system state 2 Done 2017-01-31T05:14:40Z 2017-01-31T05:14:45Z Initialize device 3 Done 2017-01-31T05:21:30Z 2017-01-31T05:22:45Z Refresh all snaps in the system Installing some snaps

Let’s start with the simplest snaps of all, the good old Hello World:

stgraber@dakara:~$ lxc exec ubuntu-core bash root@ubuntu-core:~# snap install hello-world hello-world 6.3 from 'canonical' installed root@ubuntu-core:~# hello-world Hello World!

And then move on to something a bit more useful:

stgraber@dakara:~$ lxc exec ubuntu-core bash root@ubuntu-core:~# snap install nextcloud nextcloud 11.0.1snap2 from 'nextcloud' installed

Then hit your container over HTTP and you’ll get to your newly deployed Nextcloud instance.

If you feel like testing the latest LXD straight from git, you can do so with:

stgraber@dakara:~$ lxc config set ubuntu-core security.nesting true stgraber@dakara:~$ lxc exec ubuntu-core bash root@ubuntu-core:~# snap install lxd --edge lxd (edge) git-c6006fb from 'canonical' installed root@ubuntu-core:~# lxd init Name of the storage backend to use (dir or zfs) [default=dir]: We detected that you are running inside an unprivileged container. This means that unless you manually configured your host otherwise, you will not have enough uid and gid to allocate to your containers. LXD can re-use your container's own allocation to avoid the problem. Doing so makes your nested containers slightly less safe as they could in theory attack their parent container and gain more privileges than they otherwise would. Would you like to have your containers share their parent's allocation (yes/no) [default=yes]? Would you like LXD to be available over the network (yes/no) [default=no]? Would you like stale cached images to be updated automatically (yes/no) [default=yes]? Would you like to create a new network bridge (yes/no) [default=yes]? What should the new bridge be called [default=lxdbr0]? What IPv4 address should be used (CIDR subnet notation, “auto” or “none”) [default=auto]? What IPv6 address should be used (CIDR subnet notation, “auto” or “none”) [default=auto]? LXD has been successfully configured.

And because container inception never gets old, lets run Ubuntu Core 16 inside Ubuntu Core 16:

root@ubuntu-core:~# lxc launch images:ubuntu-core/16 nested-core Creating nested-core Starting nested-core root@ubuntu-core:~# lxc list +-------------+---------+---------------------+-----------------------------------------------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +-------------+---------+---------------------+-----------------------------------------------+------------+-----------+ | nested-core | RUNNING | (eth0) | fd42:2861:5aad:3842:216:3eff:feaf:e6bd (eth0) | PERSISTENT | 0 | +-------------+---------+---------------------+-----------------------------------------------+------------+-----------+ Conclusion

If you ever wanted to try Ubuntu Core, this is a great way to do it. It’s also a great tool for snap authors to make sure their snap is fully self-contained and will work in all environments.

Ubuntu Core is a great fit for environments where you want to ensure that your system is always up to date and is entirely reproducible. This does come with a number of constraints that may or may not work for you.

And lastly, a word of warning. Those images are considered as good enough for testing, but aren’t officially supported at this point. We are working towards getting fully supported Ubuntu Core LXD images on the official Ubuntu image server in the near future.

Extra information

The main LXD website is at: https://linuxcontainers.org/lxd
Development happens on Github at: https://github.com/lxc/lxd
Mailing-list support happens on: https://lists.linuxcontainers.org
IRC support happens in: #lxcontainers on irc.freenode.net
Try LXD online: https://linuxcontainers.org/lxd/try-it

Ubuntu Insights: Industrial IoT Revolution with Raspberry Pi Compute Module 3

Planet Ubuntu - Tue, 01/31/2017 - 08:05

The Raspberry Pi Foundation released a long awaited version of their Raspberry Pi Compute Module 3. The great news is that you get 4GB storage, 1GB memory and the same processor as the Raspberry Pi 3 for $30. This means that it now becomes a real solution for anybody wanting to build industrial products and run their own app store on top. Ubuntu Core can support the Raspberry Pi 3, so you are able to create your own app enabled products and run your own app store in 2017.

To show a simple example:

The Revolution Pi is a set of industrial PLC type of devices that use the compute module on the inside. Now with a powerful Compute Module 3 and Ubuntu Core, nothing will stop the innovators of using apps/snaps to control and manage industrial machinery.

Need some industrial protocol. Just install the app/snap. Need a cloud integration. Just install the app/snap. Want to do advanced machine learning on the edge? There is an app/snap for that. Any integration with any external system can be defined as a snap. Shortly you can sell commercial snaps from your own Brand Store.

The mobile app store market is saturated but now the counter is put back to zero and we can have app stores for lawnmowers, vacuum cleaners, elevators, pumps, air conditioning, vending machines, heating and any type of industrial machinery.

Soon we should see standardised compute module I/O boards for different markets, e.g. robotics, drones, PLCs/ALCs, vending machines, and many more. 2017 promises to be a very interesting year for industrial innovators!

Original blog post source here.

Harald Sitter: Neon OEM Mod…arghhh

Planet Ubuntu - Tue, 01/31/2017 - 05:25

For years and years already Ubuntu’s installer, Ubiquity, has an OEM mode. And for years and years I know it doesn’t really work with the Qt interface.

An understandable consequence of not actually having any real-life use cases of course, disappointing all the same. As part of the KDE Slimbook project I took a second and then a third look at the problems it was having and while it still is not perfect it is substantially better than before.

The thing to understand about the OEM mode is that technically it splits the installation in two. The OEM does a special installation which leads to a fully functional system that the OEM can modify and then put into “shipping” mode once satisfied with the configuration. After this, the system will go into a special Ubiquity that only offers the configuration part of the installation process (i.e. User creation, keyboard setup etc.). Once the customer completed this process the system is all ready to go, with any additional software the OEM might have installed during preparation.

Therein lies the problem in a way. The OEM configuration is design-wise kind of fiddly considering how the Qt interface is set up and interacts with other pieces of software (most notably KWin). This is double true for KDE neon where we use a slightly modified Ubiquity, with the fullscreen mode removed. However, as you might have guessed, not using fullscreen leads to all sorts of weird behavior in the OEM setup where practically speaking the user is meant to be locked out of the system but technically he is in a minimal session with a window manager. So, in theory, one can close the window, when started the window would be placed as though more windows are meant to appear, and it would have a minimize button etc. etc. All fairly terrible. However also not too tricky to fix once one has the identified all problems. Arguably that is the biggest feat with any installer change. Finding all possible scenarios where things can go wrong takes days.

So, to improve this the KDE Visual Design Group‘s Jens Reuterberg and I again descended into the hellish pit that is Qt 4 QWidget CSS theming on a code base that has seen way too many cooks over the years. The result I like much better than what we started out with, even if it isn’t perfect.


The sidebar has had visual complexity removed to bring it closer to a Breeze look and feel. Window decoration elements not wanted during OEM set up are being removed by setting up suitable KWin rules when preparing for first boot.

Additionally, we will hopefully soon have enough translations to push out a new slideshow featuring slightly more varied visuals than the current “Riding the Waves” picture we have for a slideshow.

For additional information on how to use the current OEM mode check out the documentation on the KDE UserBase.

Ubiquity code
Slideshow code (most interest translations setup this)



Subscribe to Ubuntu Arizona LoCo Team aggregator