Skip to content

Free software

Free as in Freedom comeback

Free as in Freedom oggcast

I listen to podcasts daily, when cycling to and from work, and when doing otherwise uninteresting tasks. One of my favourite podcasts on my gPodder list is the Free as in Freedom 'oggcast'. I like this podcast with prominent Free Software advocates Karen Sandler and Bradley Kuhn mostly because they seem to be one of the only podcast to address the philosophical and legal side of Free Software in a welcoming but educated manner. I also like their oggcast because a new release is pretty rare. Sadly.

Comeback

Als can be seen on the back catalog of the casts, the year 2015 was already low on releases, and 2016 was even worse. Too bad for us loyal listeners. But the oggcast is making a comeback! With the producer again available for editing, and with Karen and Bradley having resolved their scheduling issues, it is time to again start producing worthwhile content.

Licensing 101

And so they do. Today I enjoyed the Licensing 101 oggcast from the to-be 'Basic FLOSS Concepts' series. I can strongly recommend everyone to listen to this oggcast. Thereby I also mean more educated community members, which can recite the summary of this oggcast to newcommers. For the newcommers important concepts are introduced:

  • What is copyright and how does it relate to software.
  • What has been the history regarding open source and free software and related licensing practices.
  • What is copyleft and how can different licenses be project on the axis of copyleft strength.
  • How business models and compliance relate to copyleft licenses.

Keeping it simple

Throughout the podcast it is quite fun to hear Karen and Bradley unintentionally fall into the details and exceptions. They do cut it short in order not to confuse or put of newcommers, but a more educated community member might catch his mind drifting towards past news covering such exceptions.

All in all great comeback. I can’t wait to listen to the next cast of this series!

Offline Android OpenStreetMap mapping

Last year I did my first mapping during my holiday. I guess any reason would be a valid reason to contribute spare time to OpenStreetMap (OSM), but in this particular case the bird zoo we were going to was hardly mapped on OSM. For OSM mappers this can only mean one thing: a great opportunity to bring value with a mapping contribution. And so I did.

Last year

Without an internet connection at the time (last year), it was hard to get a GPS fix, and even then my battery would run out of juicy pretty quickly. So I finally ended up writing some notes, taking some pictures, and do the final OSM mapping with the Bing sattelite imagery and the zoo’s map I got at the entrance. I was able to crank out the zoo roughly, but I know things could have been better. Well, a good initial step.

This year

We went to the same place, and decided to visit the same zoo. That again meant a clear opportunity to contribute to OSM. Looking at the current state of the mapping, little to nothing had changed since my mapping last year, so every improvement would be a clear win. And I already knew there was still some low-hanging fruit.

Preparation

I still lack a mobile internet connection internationally, and from experience I know my Fairphone 2 without network assistance or WIFI maps (which I assumed would be of no use at the park) would take about 15 minutes to get a proper fix. So unless I would get a hold of some powerbank solution, using GPS and mapping with OSMTracker for Android would be a no-go. I went looking for a solution in my solution provider F-Droid.

Tabulae

Most notably I came across Tabulae which should be able to download OSM map tiles locally for offline viewing, and enable some point of interest commits. I was able to get an initial preview, but downloading the tiles failed on multiple occasions. My best bet is that the shipped version of Tabulae is no longer compatible with the latest OSM tile URL’s.

OsmAnd~

Eventually I came back to my trusted OSM client OsmAnd~. Lucally my changes of last year were already included in the map version I had loaded, so I could use it as a base.

Mapping with OsmAnd~

Although OsmAnd~ offers an explicit plugin feature to take video and audio notes, my approach was much more makeshift. I created a seperate category in my favorites, dedicated for mapping notes. To add a note on a particular place on the map, I would touch the location and add it as a favorite in the mapping category. The name of the favorite, which can be quite long, would hint me to what was going on. Mapping the final outcome was also supported by pictures I took, to provide a better reference.

Steps summarized

  1. Install OsmAnd~, download the latest map of what you are about to map (as a reference).
  2. Create a seperate favorite category in OsmAnd~ to prevent interference with your normal favorites.
  3. Navigate in the app towards the location you want to put a note, select it, and add a favorite.
  4. Name the favorite to give the most useful description.
  5. Take additional pictures, notes, video, and sound recordings seperately to provide more information if desired.
  6. Use your favorites and additional notes to make your contribution to OpenStreetMap.

Batch YouTube-dl task

YouTube music

There is just so many music available to people on YouTube, it’s amazing. And with the advanced screening and copyright infringement reporting policies, as a user you can rest assured that the music on YouTube is available for you on purpose.

To utilize this music availability, I use YouTube-dl. YouTube-dl is a tool that allows you to (batch) search, select, download and convert video’s. The tool itself is not constrained to the use-case of YouTube, but that is just the provider this posts focuses on.

Commandline power

This is the command I’ve been using thus far for youtube-dl to download multiple tracks based on the tracksearch.txt file.

youtube-dl command

$ youtube-dl --default-search ytsearch2: -a tracksearch.txt --max-filesize 10M --min-views 1000 -f bestaudio -x --audio-format mp3 --audio-quality 192

tracksearch.txt

lee rosevere - earthmover
brad sucks - making me nervous

Breaking it down

Search

--default-search ytsearch2: search via YouTube, and return 2 video’s, to have 1 failover if selectors --max-filesize and --min-views fail.
-a tracksearch.txt use the lines of the tracksearch.txt as a starting point.

Selection

--max-filesize 10M Ignore found video’s with a file-size larger than 10Mb (video-file), which are likely to be full albums rather than single tracks.
--min-views 1000 Ignore found video’s with a view count under 1000, to prevent downloading bad uploads.

Download

-f bestaudio Download the video format with the best audio format, as we’re going for audio only in this case.

Conversion

-x Extract audio from the downloaded video.
--audio-format mp3 Convert to mp3 file format. I’ve chosen mp3 for playback compatibility, but the open standard ogg format can be selected as well, which has better audio quality performance as an added benefit.
--audio-quality 192 Convert to audio quality of 192kbps, good enough for this use-case.

Room for improvement

Now if multiple video’s (2 for this case) pass the viewcount and filesize selectors, all videos will be downloaded and converted. Ideally only 'the best' video will be downloaded. Likewise, appending the --get-duration option to the command will show the duration for the video, to ensure the downloaded song will not be too short or too long of a duration.

A free music alternative

Although this solution works well for several use-cases, I want to use this post to direct you to the Free Music Archive, a curated selection of free (as in freedom) music. A lot of music is actually CC-NC, so NonCommercial usage allowed, but let this not ruin your party. There are a lot of great artists on this platform, and there are several ways the platform supports discoverability of this great music.

Starting a blog in asciidoc

This year I revamped my personal blog. Part of the reason is my involvement in the Asciidoctor project, which drove me to test the limits on this great markup format.

Writing a blog or a static site in asciidoc is no longer an innovative occupation, as this has been done for many years now. In particular the Jekyll static site generator has great support for asciidoc, based on Asciidoctor. Less feature-rich is the Awestruct framework, which is most notably used for generating the Asciidoctor.org website.

In do however believe that both these great Asciidoctor oriented static site generators fail to subscribe to the great toolset that is Asciidoctor. In particular the Asciidoctor diagram and Asciidoctor Extensions projects provide great features for enriching the plain but well-defined base of Asciidoc(tor).

Taking the LaTeX ecosystem as a parallel universe, there is a large difference in the number of integrations available. Although the syntax of Asciidoctor and the Ruby code-base are easier to read and understand compared to TeX based packages, still the number of tools available for LaTeX is vast. A notable benefit of the ecosystem is the way in which all the packages seem to tie into the generic LaTeX rendering layer, resulting in an ecosystem where all packages can be mixed and matched, regardless of the output format. This is unfortunately not so much the case for Asciidoctor, which has several content add-ins and several redering back-ends, but no complete support for all possible combinations.

In order to bring such compatibility, a larger development effort is needed. And I consider this blog revamp my personal motivator in this regard. By refusing to rely on static site generation tools other than a Makefile for easy 'making', all the magic has to come from Asciidoctor itself. I assume this will result in me having to stretch the possibilities of Asciidoctor to the max, and write a number of extensions underway, but that will be for the better.

So expect this blog to be changing more frequently in the coming period, if only for the underlying Asciidoctor tooling.

Gajim and GPG Agent

Since I’ve started using Gajim I’ve been trying to get it working using the GPG Agent rather than the built-in GPG option. The practical benefit is that I’m no longer required to insert my passphrase each time I open up my laptop, as the passphrase is part of my keychain, just like I have enabled from my Evolution email client. It took me quite a while to get it working, and looking by the number of reported tickets others had difficulties as well. I finally got it working by ultimately trusting the receivers key. In order to keep others from having similar issues, I’ve filed a ticket on the trust level and a ticket on the error.

My C720P upgrade to freedom

A couple of years ago I started using my own laptop at work under the policy of bring your own device although to me it wasn’t about the device, it was about bringing a free computing platform I can trust, a GNU/Linux distribution, and many free and powerful applications, all to improve my short-term and long-term effectivenes as an engineer. This however changed my needs regarding battery life, screen brightness and form-factor. And with the recent dying of my Lenovo Thinkpad T60p, I desired an upgrade, to be able to destine my current Lenovo Thinkpad T61 to become my backup.

Currently there are plenty of interesting developments regarding more free laptop projects, which are even destined to pass the FSF Respects Your Freedom certification. Specifically the Novena laptop, the Libreboot X200, other corebooted Thinkpads, the Librem laptop, and the EOMA68 15 inch laptop. Of this set only the Libreboot X200 and the Librem seem to provide the desired technical upgrade relative to my T61. The Librem seems more ideal, but import taxes would drastically increase the already hefty price. Eventually the Libreboot X200 seemed to be the best deal around, and that’s probably why it is used by many FSFE contributors.

However eventually I decided to go another route, in retrospect mainly driven by technical aspects of an even longer battery-life, an even brighter screen, and an even smaller form-factor. I decided to use a converted Acer C720 Chromebook, more specifically the C720P model bringing more RAM, a larger SSD, a touchscreen and a white housing. Also there are quite a number of copies available second-hand, reducing the cost. Having an X86-architecture supported by SeaBIOS, the level of freedom on the C720P can be increased rather easily. Removing an internal screw allows the BIOS to be reflashed, and thanks to John Lewis amongst others a free SeaBIOS payload is available to flash the laptop using coreboot. I must admit this laptop wouldn’t pass the FSF’s Respects Your Freedom certification, due to the Intel Management Engine and VGA BIOS, which are on the coreboot tasklist.

C720P buffed by Kevin

C720P buffed by Kevin

C720 BIOS reflash being enabled

C720 BIOS reflash being enabled

Although I’m somewhat of a tinkerer, I left the freedomification to my Dutch FSFE Fellow Kevin Keijzer. He has flashed his own Acer C720 with coreboot, having used it since early 2014. We agreed on a fair price, as free software isn’t about free as in gratis, it’s about free as in freedom. I must admit I was pleasantly surprised by the level of service I was given. The laptop was buffed to remove scratches, reflashed, pre-installed with Ubuntu GNOME according to my specifications, configured with all the right shortcuts and device-specific configurations, and subjected to a test run to make sure everything was working correctly. As a finishing touch, to remind me about practices by other vendors preloading unwanted media, I was given my best preloaded media yet. I donated my defect T60p to Kevin’s effort on creating freedom respecting laptops from discarded Thinkpads.

Ubuntu GNOME on Acer C720P

Ubuntu GNOME on Acer C720P

Personal laptop sticker on Acer C720P

Personal laptop sticker on Acer C720P

I strongly encourage anyone to contact Kevin for his Quiet Life Linux Services to experience his level of expertise and great level of service.

Freedom respecting Thinkpad T60

Freedom respecting Thinkpad T60

Now having two operational laptops with two slightly different use-cases, I’m even more encouraged to finish my syncing setup. So far my synchronization is done using Syncthing, Mozilla Sync, my own Freenas build, and a remote OwnCloud server, but more on that later.

Fairphone back to the drawing board

Previously I’ve shared my thoughts and concerns on freedom in mobile operating systems. The Fairphone project unfortunately has a bad reputation in this area. Not because they don’t care, but because they failed to deliver on this promise in their first version. Other people involved in open hardware design for mobile devices saw it coming as they’ve been struggling with exactly the same issue for many years already. Especially for them it shouldn’t have been a surprise that a perfectly fine hardware platform would be kept from future firmware updates.

But as in any process of innovation, a new version allows for improvements. And so will a new upcoming version of the Fairphone. For months the Fairphone has featured several lengthy threads discussing alternative, generally more free operating systems. As I tried to state with a lengthy forum post there are multiple interest in strong conflict with each other. So even whether there will be multiple OS flavours or one for all customers is not yet decided. The great news however is that the Fairphone team have taken on this challenge, big time! I’ve had some email conversations with Kees Jongenburger and Joe Mier regarding further plans and options. But more importantly, they went looking for alternatives at the Mobile World Congress. Over the course of the next months the plans will be finalized, so I’d like to encourage anybody with relevant information to contribute to the discussions. Let’s make the next Fairphone far more fair.

Dia, I love you

Poem for I Love Free Software Day.

Roses are red. Handles are green.
You’re the finest diagramming software I have ever seen.
Always there to help me out.
And you ask nothing in return.
Creating things together is all I really yearn.

Dia I know we will be a great team.
We can work together even upstream.
So let this be my tag line:
Would you be my Valentine?

Valentine letter in Dia

Valentine letter in Dia

Ubuntu calling freedom

So far the flash sales of the first Ubuntu phone by Bq has been sold out, and certainly not without a reason: the Ubuntu phone holds great promises for both the users and the development community. On the FSFE Discussion mailinglist I already gave a quick and general overview mostly based on a recent Linux Unplugged podcast, and so in this post I’d like to revisit my comments with a focus on freedom, as this is lacking in other articles. One word of caution though, I haven’t yet read formal documents or code, so all listed info is second-hand.

First off, embedded devices are difficult, and phones in particular are hard, like Fairphone for instance has come to find. The problem with phone-hardware in general, is the fact that a build is needed for a specific phone since auto-discovery of peripherals like on a regular computer is missing. Add to that the fact that electronics are developed more rapidly than free drivers an be developed, as was the case for the Vivaldi tablet. So unless you have a say in the electronics, and allow a non-signed bootloader, it is very hard and especially time-consuming to develop this lowest layer as free software. and that is also why project like Neo900 and GTA04 exist. One of the added benefits the GTA04 offers, is that the modem is physically separated from other processors, as the modem implementation is locked-down by law. This is about as free software supporting as free hardware designs can get, but this freedom comes at a cost in performance and money, thus requiring plenty of commitment to become a reality.

So in order to actually ship a product, using non-free designs and chips will be the default option, like Ubuntu did in this instance. In order to get a kernel running the device-specific board support package offers the prerequisites needed to boot the Linux kernel. But rather than modifying the Linux kernel and building a tightly integrated software stack for a particular device, as is the case for Android, Ubuntu Phone separates the software stack in two separate layers: a device-specific part and a Ubuntu-part. This separation is ingenious and brings great benefits.

By having a separate Ubuntu-part, this can be updated in the future, without having to do revisions on the device-specific part, thus allowing all models to stay up to date with the newest Ubuntu, and thus avoiding both the platform segregation of Android and the limited number of firmware updates like on iOS. Users can thus still get security fixes and the features newer applications might rely on. Also regarding this part, it would be possible to run a different top layer for a specific mobile operator, or run a different interface on top of this Ubuntu separation layer. I haven’t looked into this layer, but ideally it should be a clean and stable in order to allow others to adopt it.

Likewise the bottom part can be swapped. For instance an Ubuntu Phone port was made to the Nexus 5, which was done by building the necessary but limited hardware support and offering the separation layer. Due to the additional separation, this port will be able to keep up with firmware updates, and so all additional development efforts can go towards improving the device-specific part rather than keeping up with firmware versions. Depending on the required complexity of this device-specific layer, porting additional devices is relatively easy and particularly fruitful as it can remain nearly a one-time effort.

I’m not aware how free the Ubuntu-part is, although I assume this would be in line with other Ubuntu distributions where it mostly adheres to your needs for freedom. The interface is based on Qt5 and is very supportive of HTML5 applications. In this way mobile applications would be able to run on the Ubuntu desktop in the same matter, offering a great convergence solution. Also it is supportive of efforts being made to put forward HTML5 applications for a run-everywhere solution. There is no policy which requires applications to be free, so you can install all kinds of applications, of which a long list is already available. Users are able to sideload applications, avoiding the dependence on an appstore, which is probably the reason why no appstore was launched by Ubuntu just yet. Of no less importance, it seems to be well designed and offer great usability.

One somewhat overlooked part, is the availability of scopes. They aren’t as much overlooked in functionality, but rather in philosophy. Android and iOS have recently realized that apps can be complementary and it is up to the firmware to provide the integration. This can be news and weather, but more recently health and home automation seem relevant as well. The fact that scopes can either work with local data or on the internet but not both, respects the capabilities of the device and prevents unwanted data transmission. More importantly by offering aggregated scopes, you can create a locally generated view. This adheres to the vision of a web which is decentralized rather than centralized and in which each computer has many outgoing connections.

Of course the big elephant in the room is that the phone ties into the Ubuntu ecosystem and so convergence would be best between the Ubuntu phone and the Ubuntu desktop, and likewise it would bring a boost to the Ubuntu store, Ubuntu Snappy Core and presumably to cloud services. So what if Ubuntu would be the next big platform? Well, it would bring a very free firmware which is very friendly to porting devices, it would encourage development in HTML5 and Qt, it would encourage more decentralized applications, it would enable development of the Ubunthu phone itself, and it would put a great alternative next to the Google-ized Android and other systems.

Either way, I nearly bought one but I just missed out by the flash-sale. I’d strongly consider ordering one, because I believe this stack is much more freedom-respecting than Android. More frustrating my perfectly fine phone is still on Android 2.2 with a lack of application support and a whole load of known bugs. I haven’t looked deep enough into Jolla or Tizen to judge them. There are many known improvements available to be adopted, both in hardware, firmware and the available applications. Currently however this seems to be a great phone, with a great software platform, which is another stepping stone in the right direction.

Why engineering students need to be taught free software

At a power systems symposium today I met some of my previous classmates of the technical university, now in the starting phase of their engineering career. My viewpoint on the need for free software in education was once again confirmed. Whilst at the university many advanced software packages are provided to students at negligible cost, at work these same tools are hard to obtain. In practice these software packages are too expensive to be used on just a couple of cases, let alone ‘try out’ to find a use case. This basically leave the choice between misusing unsuitable packages or not taking on the task in the first place, both of which are generally undesirable.

As I have learned, and my classmates are learning as well, as an engineering professional you are in need for software with no strings attached: free software. Engineers are taught to overcome many hurdles by grasping the problem and coming up with a right approach for solving the problem at hand. Restricting the set of these possible approaches by restricting the software selection ultimately leaves unmet engineering potential, making this practice hurtful to the end-result.

As each individual use case will require the software for a different use case, software packages in general cover a larger set of features in order to target a larger market of multiple use cases, resulting in relatively overpriced software. Apart from the cost of the software package, there are the costs of maintaining yet another software install and having to deal with recurring costs like license fees per year or version. A way to diminish this barrier is by offering subscriptions to hosted solutions, as many software vendors have started doing. Whilst this reduces the upfront cost, there is more to free software than cost alone.

The freedom to modify the code enables integrating the software package in a solution like an automated tool chain. Better still by modifying the underlying code or even working with upstream development engineers can customize and improve each tool of your tool set. Since it is free software no party will be able to take it from you, and you are able to fork the software if you disagree with the direction development is heading in. In this way an engineer is able to achieve far greater independence.

Whilst it seems to be a good idea to teach students to use professional software pckages used in the workplace, this approach presumes that those software packages will be available for students at the job after graduation. If this isn’t the case, these engineers experience unmet potential. By teaching free software, all students are able to exercise their potential, although some students will experience a non-free software package on the job. If the latter is the case, this presumably is because of specific features, which wouldn’t have been taught at university in the first place.

Furthermore students need to be taught to evaluate software offerings in order to select a package based on the task at hand, rather than to have a package selected for them which is often misused or underused. And free software should be taught just like academics are taught, since both value sharing information and checking the work of others.