Archive for the ‘FOSS’ Category

Android Studio on Linux 64bit: Emulator Timeout Problem

May 21, 2017

As a reminder for myself and maybe as a help for others: If you try to start the android emulator via Android Studio and the console tells you only this:

WARN – run.EmulatorConnectionListener – Timed out after 300seconds waiting for emulator to come online.

Then maybe you have fix your problem by removing the provided by the Android Studio so it uses the system one. For example:

~/Android/Sdk/emulator/lib64/libstdc++$ mv

Source: Stack Overflow: Cannot launch emulator on Linux (Ubuntu 15.10)


HP Elitebook 840 G4 and Linux Mint 18.1

April 10, 2017

(work in progress)

A friend of mine got a new notebook the HP Elitebook 840 G4 with Windows 10.  In this blogpost I want to document whats working and what not.

More detailed information about the hardware (lspci). You can also look at the the output of lspci -v

00:00.0 Host bridge: Intel Corporation Device 5904 (rev 02)
00:02.0 VGA compatible controller: Intel Corporation Device 5916 (rev 02)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller (rev 21)
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI (rev 21)
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Device 9d11 (rev f1)
00:1c.3 PCI bridge: Intel Corporation Device 9d13 (rev f1)
00:1d.0 PCI bridge: Intel Corporation Device 9d18 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Device 9d58 (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Device 9d71 (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (4) I219-V (rev 21)
01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader (rev 01)
02:00.0 Network controller: Intel Corporation Device 24fd (rev 78)
03:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a804


I installed Linux Mint 18.1. The only non standard thing i had to do, was to shrink the Windows 10 partition with gnuparted. The installer had no option for that or I did not found it. Other than that, the installation went without a hitch and I was able to start both Windows 10 and Linux mint afterwards.

The kernel which is installed is linux-image-4.4.0-72-generic.


As the display of the notebook has 2560×1440 pixel, the user interface was very small and difficult to use with both the mate and cinnamon flavor. Cinnamon has a configuration (Settings-General) where you can scale the interface for high dpi displays as that one. With the option “double” the cinnamon user interface is quite nice and usable.

  • Sound works out of the box
  • Special keys like dimming the display or muting work



As of now, the wifi is not working. There seems to be drivers missing. Output of lshw

*-network UNCLAIMED
description: Network controller
product: Intel Corporation
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:02:00.0
version: 78
width: 64 bits
clock: 33MHz
capabilities: cap_list
configuration: latency=0
resources: memory:d8a00000-d8a01fff

While lspci gives me

Network controller: Intel Corporation Device 24fd (rev 78)


  • The clock is changing in weird ways when booting into windows and linux.
  • Standby does not seem to work.

Looking for open source and privacy friendly android apps?

January 18, 2017

If you are interested in open source and privacy friendly android apps you should have a look at this two projects.

The group Privacy Friendly Apps are a collection of Android-Applications, which are optimized based on privacy. This means that only a minimum of permissions is used. There are no unnecessary permissions, e.g. a torch application would ask for a permission to read the contacts.

They provide apps like dicer, sudoko, weather and more. You can find a list of all their apps in the google playstore.

Simple Mobile Tools: A group of simple, stupid, open source Android apps with customizable widgets, without annoying ads and unnecessary permissions.

They develop camera, file-manager, gallery apps and more. You can find the apps on github/f-droid and play store.

Maven: Parent POM in repo, but Non-resolvable error

December 5, 2016

If you are using maven you may have been flabbergasted by an error like this

[ERROR] Non-resolvable parent POM: Failure to find at.test:test:pom:23 in was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 9, column 10

I had this error and was wondering why it was occurring? I had the parent artifact in my local repository. It was not missing. Maven did know this, because the log said

[DEBUG] Verifying availability of /home/stefon/.repository/at/test/test/23/test-23.pom from [central (, releases)] 

So if I have the parent POM file in my repository and maven knows about it? Why are we getting an error?

As the file is not available on central, Maven will (correctly in my opinion) fail the build as the build would be non-reproducible.
(Mailarchive Maven-Users)

So, what do we do if it is not possible to publish our parent pom artifact?

there is a CLI option that you can enabled in Maven 3.1.1 that tells Maven “I know what I am doing and don’t make that check this time” i.e.  –legacy-local-repository

In other words:

 mvn clean install --legacy-local-repository

Just remember: This is a hack and may break at any moment with a new maven version! There is an blog article where you can find other solutions for your problem

Where Has the Java PermGen in Java8 Gone?

November 30, 2016

Java 8 is released since 2014. If you are working in an enterprise oriented company, chances are you are only now getting experience with usage of Java 8. You may ask yourself what this warning is telling you.

VM warning: ignoring option MaxPermSize=128M; support was removed in 8.0

Why is PermGen gone? An article of tells you something of the reasoning behind this change.

Intro to Reactive Programming in Java

September 27, 2016 has  a nice little intro and tutorial to reactive programming in Java with the RxJava library.

Key takeaways

  • Reactive programming is a specification for dealing with asynchronous streams of data
  • Reactive provides tools for transforming and combining streams and for managing flow-control
  • Marble diagrams provide an interactive canvas for visualizing reactive constructs
  • Resembles Java Streams API but the resemblance is purely superficial
  • Attach to hot streams to attenuate and process asynchronous data feeds

Also you should checkout the RxMarbles website which interactivly visualizes the reactive functions.

Mozilla Flyweb: How to get rid of custom apps to communicate with IOT devices…

September 8, 2016

Mozilla has an interesting project called flyweb. If you want to know what it is about and why you should have a look at it watch this video.

This specification aims to allow web applications to connect with and communicate to each other over local-area transport protocols. In particular, this specification aims to bring the web’s client/server application model to inter-device communication. The web’s application architecture enables an application running on a server to dynamically and incrementally send application state and logic to an intermittently connected client. This model enables a powerful multi-homed application architecture.

Git Staging: Video about what it is, how it is used and why we need it

August 29, 2016

Confused with all the buzzwords and the JavaScript landscape?

April 12, 2016 has a nice summary about how the JavaScript ecosystem looks right now (2016).

If you have previous programming experience but are a newcomer to frontend JavaScript development, the array of jargon and tools can be confusing. Without getting bogged down in detailed discussion, let’s take a general survey of the current “JavaScript landscape”. This should orient you sufficiently to start your journey into frontend development.

The articles touches everything from:

  • How does client-side JavaScript work, and why use it?
  • What’s a framework? Do I need to use trendy.js?
  • Should I be writing JavaScript, or something else? What kinds of JavaScript exist?
  • How do I use other people’s code?
  • Do I need Node.js?
  • What are my build tools?
  • How do I test my code?
  • So how do I get started?

How to use letsencrypt to enable https on debian jessie

April 2, 2016

Today I want to document how I enabled https on a website on a server run by debian jessie using the letsencrypt project.

The first step is, obviously, to install the letsencrypt package. Obviously enough a search for the package (i.e. apt-cache search letsencrypt) shows that this package is not available in the debian jessie distribution. But thanks to the official Debian Backports project, we can get package anyway.  Just follow the instructions on the website and then a simple command (apt-get -t jessie-backports install letsencrypt) installs our beloved letsencrypt package.

If you are using apache like me, you should also install the apache plugin for letsencrypt (apt-get -t jessie-backports install python-letsencrypt-apache) and the libaugeas0 (apt-get install libaugeas0) library.

After this, changing your http website to https is easily done via: letsencrypt –apache -d . This command asks you some questions and after that, voila, everything is done. No need for any additional configuration.

More information how to use the letsencrypt client or how to install it on other systems can be found in this PDF documentation.

Beware: I don’t know if the renewal of the certificates is now done automatically. If they expire and I have to renew them, I will update this article how to do this.

P.S.: If you are using owncloud and you are battling with trying to tell your linux owncloud-client to use now https instead of http: Don’t wrestle with the graphical interface, it won’t allow you this. Just edit the owncloud config file /home/<YOURUSER>/.local/share/data/ownCloud/owncloud.cfg  by changing the url from http to https.

P.P.S.: You can use the online SSL Server Test Service to validate your https Website and get information about how it is configured and if it is vulnerable.