Planet Ubuntu

Subscribe to Planet Ubuntu feed
Planet Ubuntu - http://planet.ubuntu.com/
Updated: 1 hour 14 min ago

The Fridge: Ubuntu Weekly Newsletter Issue 497

Mon, 02/06/2017 - 18:55

Welcome to the Ubuntu Weekly Newsletter. This is issue #497 for the week January 30 – February 5, 2017, and the full version is available here.

In this issue we cover:

The issue of The Ubuntu Weekly Newsletter is brought to you by:

  • Elizabeth K. Joseph
  • Chris Guiver
  • Paul White
  • Jim Connett
  • And many others

If you have a story idea for the Weekly Newsletter, join the Ubuntu News Team mailing list and submit it. Ideas can also be added to the wiki!

Except where otherwise noted, content in this issue is licensed under a Creative Commons Attribution 3.0 License BY SA Creative Commons License

Simos Xenitellis: How to create a snap for how2 (stackoverflow from the terminal) in Ubuntu 16.04

Mon, 02/06/2017 - 18:48

Stackoverflow is an invaluable resource for questions related to programming and other subjects.

Normally, the workflow for searching http://stackoverflow.com/, is to search Google using a Web browser. Most probably, the result will be a question from stackoverflow.

A more convenient way to query StackOverflow, is to use the how2 command-line utility.

Here is how it looks:

In this HowTo, we will see:

  1. How to set up snapcraft in order to make the snap
  2. How to write the initial snapcraft.yaml configure
  3. Build the snap with trial and error
  4. Create the final snap
  5. Make the snap available to the Ubuntu Store
Set up snapcraft

snapcraft is a utility that helps us create snaps. Let’s install snapcraft.

$ sudo apt update ... Reading state information... Done All packages are up to date. $ sudo apt install snapcraft Reading package lists... Done Building dependency tree        Reading state information... Done The following NEW packages will be installed:   snapcraft ... Preparing to unpack .../snapcraft_2.26_all.deb ... Unpacking snapcraft (2.26) ... Setting up snapcraft (2.26) ... $_

In Ubuntu 16.04, snapcraft was updated in early February and has a few differences from the previous version. Make sure you have snapcraft 2.26 or newer.

Let’s create a new directory for the development of the httpstat snap and initialize it with snapcraft so that create the necessary initial files.

$ mkdir how2 $ cd how2/ $ snapcraft init Created snap/snapcraft.yaml. Edit the file to your liking or run `snapcraft` to get started $ ls -l total 4 drwxrwxr-x 2 myusername myusername 4096 Feb   6 14:09 snap $ ls -l snap/ total 4 -rw-rw-r-- 1 myusername myusername 676 Feb   6 14:09 snapcraft.yaml $ _

We are in this how2/ directory and from here we run snapcraft in order to create the snap. snapcraft will take the instructions from snap/snapcraft.yaml and do its best to create the snap.

These are the initial contents of snap/snapcraft.yaml:

name: my-snap-name # you probably want to 'snapcraft register <name>' version: '0.1' # just for humans, typically '1.2+git' or '1.3.2' summary: Single-line elevator pitch for your amazing snap # 79 char long summary description: |   This is my-snap's description. You have a paragraph or two to tell the   most important story about your snap. Keep it under 100 words though,   we live in tweetspace and your description wants to look good in the snap   store. grade: devel # must be 'stable' to release into candidate/stable channels confinement: devmode # use 'strict' once you have the right plugs and slots parts:   my-part:     # See 'snapcraft plugins'     plugin: nil

I have formatted as italics the first chunk of configuration lines of snapcraft.yaml, because this chunk is what rarely changes when you develop the snap. The other chunk is the one that the actual actions take place. It is good to distinguish those two chunks.

This snap/snapcraft.yaml configuration file is actually usable and can create an (empty) snap. Let’s create this empty snap, install it, uninstall it and then clean up to the initial pristine state.

$ snapcraft Preparing to pull my-part Pulling my-part Preparing to build my-part Building my-part Staging my-part Priming my-part Snapping 'my-snap-name' |                                                                  Snapped my-snap-name_0.1_amd64.snap $ snap install my-snap-name_0.1_amd64.snap error: cannot find signatures with metadata for snap "my-snap-name_0.1_amd64.snap" $ snap install my-snap-name_0.1_amd64.snap --dangerous error: cannot perform the following tasks: - Mount snap "my-snap-name" (unset) (snap "my-snap-name" requires devmode or confinement override) Exit 1 $ snap install my-snap-name_0.1_amd64.snap --dangerous --devmode my-snap-name 0.1 installed $ snap remove my-snap-name my-snap-name removed $ snapcraft clean Cleaning up priming area Cleaning up staging area Cleaning up parts directory $ ls my-snap-name_0.1_amd64.snap  snap/ $ rm my-snap-name_0.1_amd64.snap rm: remove regular file 'my-snap-name_0.1_amd64.snap'? y removed 'my-snap-name_0.1_amd64.snap' $ _

While developing the snap, we will be going through this cycle of creating the snap, testing it and then removing it. There are ways to optimize a bit this process, learn soon we will.

In order to install the snap from a .snap file, we had to use –dangerous because the snap has not been digitally signed. We also had to use –devmode because snapcraft.yaml specifies the developer mode, which is a relaxed (in terms of permissions) development mode.

Writing the snapcraft.yaml for how2

Here is the first chunk of snapcraft.yaml, the chunk that does not change while developing the snap.

name: how2 # you probably want to 'snapcraft register <name>' version: '20170206' # just for humans, typically '1.2+git' or '1.3.2' summary: how2, stackoverflow from the terminal description: |   how2 finds the simplest way to do something in a unix shell.   It is like the man command, but you can query it in natural language. grade: stable # must be 'stable' to release into candidate/stable channels confinement: strict # use 'strict' once you have the right plugs and slots

We specify the name and version of the snap. The name is not registered already and it is not reserved, because

$ snapcraft register how2 Registering how2. Congratulations! You're now the publisher for 'how2'.

We add a suitable summary and description that was copied conveniently from the development page of how2.

We set the grade to stable so that the snap can make it to the stable channel and be available to anyone.

We set the confinement to strict, which means that by default the snap will have no special access (no filesystem access, no network access, etc) unless we carefully allow what is really needed.

Here goes the other chunk.

apps:   how2:     command: how2 parts:   how2:     plugin: nodejs     source: https://github.com/santinic/how2.git

How did we write this other chunk?

The apps: how2 : command: how2 is generic. That is, we specify an app that we name as how2, and it is invoked as a command with the name how2. The command could also be bin/how2 or node how2. We will figure out later whether we need to change it because snapcraft will show an error message.

The parts: how2: plugin: nodejs is also generic. We know that how2 is build on nodejs and we figured that one out from the github page of how2. Then, we looked into the list of plugins for snapcraft, and found the nodejs plugin page. At the end of the nodejs plugin page there is a link to examples for the user of nodejs in snapcraft.yaml. This link is actually a search in github with search terms filename:snapcraft.yaml “plugin: nodejs”(in all files that are named snapcraft.yaml, search for “plugin: nodejs”). For this search to work, you need to be logged in to Github first. For the specific case of nodejs, we can try without additional parameters as most examples do not show a use of special parameters.

Work on the snapcraft.yaml with trial and error

We come up with the following snapcraft.yaml by piecing together the chunks from the previous section:

$ cat snap/snapcraft.yamlname: how2 # you probably want to 'snapcraft register <name>' version: '20170206' # just for humans, typically '1.2+git' or '1.3.2' summary: how2, stackoverflow from the terminal description: |   how2 finds the simplest way to do something in a unix shell.   It is like the man command, but you can query it in natural language. grade: devel # must be 'stable' to release into candidate/stable channels confinement: strict # use 'strict' once you have the right plugs and slots apps:   how2:     command: how2     plugs:       - network parts:   how2:     plugin: nodejs     source: https://github.com/santinic/how2.git

Let’s run snapcraft in order to build the snap.

$ snapcraft clean Cleaning up priming area Cleaning up staging area Cleaning up parts directory $ snapcraft Preparing to pull how2 Pulling how2 ... Downloading 'node-v4.4.4-linux-x64.tar.gz'[===============================] 100% npm --cache-min=Infinity install ... npm-latest@1.0.2 node_modules/npm-latest ├── vcsurl@0.1.1 ├── colors@0.6.2 └── registry-url@3.1.0 (rc@1.1.6) ... Preparing to build how2 Building how2 ... Staging how2 Priming how2 Snapping 'how2' |                                                                               Snapped how2_20170206_amd64.snap $ _

Wow, it created successfully the snap on the first try! Let’s install it and then test it.

$ sudo snap install how2_20170206_amd64.snap --dangerous how2 20170206 installed $ how2 read file while changing /Cannot connect to Google. Error: Error on response:Error: getaddrinfo EAI_AGAIN www.google.com:443 : undefined $ _

It works again, and the only problem is the confinement. We need to allow the snap to access the Internet, and only the Internet.

Add the ability to access the Internet

To be able to access the network, we need to relax the confinement of the snap and allow access to the network interface.

There is an identifier called plugs, and accepts an array of names of interfaces, from the list of available interfaces.

In snapcraft.yaml, you can specify such an array in either of the following formats:

plugs: [ network] or plugs:    - network

Here is the final version of snapcraft.yaml for how2:

name: how2 # you probably want to 'snapcraft register <name>' version: '20170206' # just for humans, typically '1.2+git' or '1.3.2' summary: how2, stackoverflow from the terminal description: |   how2 finds the simplest way to do something in a unix shell.   It is like the man command, but you can query it in natural language. grade: devel # must be 'stable' to release into candidate/stable channels confinement: strict # use 'strict' once you have the right plugs and slots apps:   how2:     command: how2     plugs: [ network ] parts:   how2:     plugin: nodejs     source: https://github.com/santinic/how2.git

Let’s create the snap, install and run the test query.

$ snapcraft Skipping pull how2 (already ran) Skipping build how2 (already ran) Skipping stage how2 (already ran) Skipping prime how2 (already ran) Snapping 'how2' |                                                                               Snapped how2_20170206_amd64.snap $ sudo snap install how2_20170206_amd64.snap --dangerous how2 20170206 installed $ how2 read file while changing terminal - Output file contents while they change You can use tail command with -f  :    tail -f /var/log/syslog It's good solution for real time  show. Press SPACE for more choices, any other key to quit.

That’s it! It works fine!

Make the snap available in the Ubuntu Store

The command snapcraft push will upload the .snap file to the Ubuntu Store. Then, we use the snapcraft release command to release the snap into the beta channel of the Ubuntu Store. Because we specified the grade as devel, we cannot release to the stable channel. When we release a snap to the beta channel, it is considered as released to the edge channel as well (because beta is higher than edge).

$ snapcraft push how2_20170206_amd64.snap Pushing 'how2_20170206_amd64.snap' to the store. Uploading how2_20170206_amd64.snap [====================================================================] 100% Ready to release!|                                                                                             Revision 1 of 'how2' created. $ snapcraft release how2 1 stable Revision 1 (strict) cannot target a stable channel (stable, grade: devel) $ snapcraft release how2 1 beta The 'beta' channel is now open. Channel    Version    Revision stable     -          - candidate  -          - beta       20170206   1 edge       ^          ^ $ _

Everything looks fine now. Let’s remove the manually-installed snap and install it from the Ubuntu Store.

$ snap remove how2 how2 removed $ snap info how2 name:      how2 summary:   "how2, stackoverflow from the terminal" publisher: simosx description: |   how2 finds the simplest way to do something in a unix shell.   It is like the man command, but you can query it in natural language.   channels:                 beta:   20170206 (1) 11MB -   edge:   20170206 (1) 11MB - $ snap install how2 error: cannot install "how2": snap not found $ snap install how2 --channel=beta how2 (beta) 20170206 from 'simosx' installed $ how2 how to edit an XML file How to change values in XML file Using XMLStarlet (http://xmlstar.sourceforge.net/): ...omitted...

Costales: 2 Años con Ubuntu Phone: Pasado, presente, futuro

Mon, 02/06/2017 - 13:44
Hace exactamente 2 años, el 6 de Febrero del 2015, Canonical me hacía entrega como insider del bq E4.5, un par de meses antes de su venta al público.

Presentación Ubuntu Phone en Londres

Y sí, usé Ubuntu Phone durante 2 años en exclusiva (excepto unos pocos días que jugué con Firefox OS y Android).
 
E4.5

PasadoYo estaba muy feliz con mi bq E4.5 cuando ¡Oh sorpresa! Canonical nos entregaba un Meizu MX4.


Eran los buenos tiempos, con dos compañías volcadas en Ubuntu Touch, sacando a posteriori el bq E5, el Meizu PRO 5 y la tablet bq M10. Y una Canonical publicando actualizaciones OTA cada mes y pico.

Tablet M10
En estos 2 años leí muchos artículos sobre los primeros terminales. Casi todos desfavorables. Se olvidaban de que eran móviles para early adopters y les hacían reviews comparándolos con lo mejor de Android. ¡Fail! Para ser justos estas primeras versiones de Ubuntu Phone superaban a las primeras versiones de Android e iOS.

A nivel personal, nacían uNav y uWriter :')) Con un éxito arrollador que me sorprendió.

Ubucon Paris 15.10PresenteGrandes baluartes de Ubuntu, como David Planella, Daniel Holbach o Martin Pitt abandonan Ubuntu. Y junto a eso leo que Canonical para el desarrollo del móvil, con una redacción que no invita al optimismo. Pero ese 'para' no significa 'abandona'.

UBPorts coge relevancia en estos últimos meses trabajando en los ports de Fair Phone 2 y OnePlus One.


FairPhone 2FuturoEl presente no puede hacer que me sienta especialmente optimista. Ya no sólo por Ubuntu Touch en particular, si no por el mercado móvil en general. Un excelente Firefox OS que murió, un SailfishOS que se mantiene a duras penas, un Tizen que sólo papa Samsung mantiene con vida y un Windows Phone que se mantiene tercero en base a pasta del number one en el escritorio.
Y es que a pesar de la falta de privacidad, seguridad y en especial de software libre, nadie tose a Android.

Imagen de neurogadget


¿Y cómo plantea Ubuntu ese futuro tan negro? Pues podemos decir que Canonical se va a jugar el todo o nada a una sola carta: snap.

snap

Debo aclarar aquí el estado actual: En PC tenemos Ubuntu con Unity 7 y en móvil Ubuntu con Unity 8. Pero todo es el mismo Ubuntu, la misma base.

Y esa es la jugada, a corto plazo deberíamos tener un Ubuntu con Unity 8 tanto en PC como en móvil y basado en paquetes snap (que no tienen problemas de dependencias y tienen muchísima seguridad al 'isolar' las aplicaciones).

Y ahí entra en juego la convergencia: Mismo Ubuntu, mismas aplicaciones, distintos dispositivos.

Imagen de OMG Ubuntu!
Pero el coste de esta jugada podría ser muy caro: Dejar atrás toda la base actual de móviles (se salva la tablet), por usar Android de 32 bits y el salto implicaría usar 64bits lo cual no parece factible.

Martin Pitt: Migrated blog from WordPress to Hugo

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

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

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.

Debian
  • 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.
Ubuntu
  • 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.
Other
  • 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:

Generally:

  • 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.
Ubuntu
  • 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
Other
  • 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

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

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

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

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

Contributions

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.
Others

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

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

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

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

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

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”

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?

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

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)

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:    5.2.3.2 (10) 364MB -   candidate: 5.2.3.2 (10) 364MB -   beta:      5.2.3.2 (10) 364MB -   edge:      5.3.0.2 (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) 5.3.0.2 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:   5.3.0.2 (14) 374MB - refreshed:   2017-01-19 04:24:50 +0200 EET channels:                    stable:    5.2.3.2 (10) 364MB -   candidate: 5.2.3.2 (10) 364MB -   beta:      5.2.3.2 (10) 364MB -   edge:      5.3.0.2 (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

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.

Pages