Archive for the ‘Technology’ 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 libstdc++.so.6 provided by the Android Studio so it uses the system one. For example:

~/Android/Sdk/emulator/lib64/libstdc++$ mv libstdc++.so.6 libstdc++.so.6.bak

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

Installation

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.

Configuration

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

Problems

Wifi

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)

Misc

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

Debugging scalability issues in action: Twitch Plays Pokémon

December 28, 2016

On Infoq.com you can wath a presentation about that:

John Rizzo introduces Twitch’s chat’s architecture, telling how their engineers investigated and worked through the issues in what turned out to be a make-or-break situation for the company.

 

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 https://repo.maven.apache.org/maven2 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 (http://repo.maven.apache.org/maven2, 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 infoq.com tells you something of the reasoning behind this change.

Attention riseup.net users! Your data and communucation may not be safe anymore…

November 24, 2016

Popular provider of web tools for activists and anarchists and backbone of much infrastructure for internet freedom, Riseup.net has almost certainly been issued a gag order by the US government.
[…]
My read is that Riseup is complying with the gag order while fighting the surveillance demanded in court. Riseup is made up of long-time anarchist activists who would feel obliged to go to prison rather than collaborate in snitching out others. However there is a small chance someone could crack from threats of decades in prison. Additionally there’s a much more substantive chance that regardless of their optimism Riseup may soon be forced to close everything down.
Riseup’s Canary Has Died – C4SS

Long story short: There exists a high possibility that the riseup servers and their infrastructure is compromised. The given links also suggests some actions to be taken to recover from the loss of riseup as a trustworthy source for communication services…

(If you want a description and summary in german of what this is all about, you can look there).

Howto access git via ssh behind a corporate proxy

November 22, 2016

If you are working behind a proxy and have to access git repositories on the internet via ssh (e.g. github), then you sooner or later (probably sooner) find out that this will not work out of the box. This is because you need to proxy your ssh connection. This summary on stackoverflow explains how to do this in a short but comprehensible manner.

 

Hardware based exploit: Rowhammer

November 10, 2016

The Rowhammer exploit is at least known since 2014 but only in the last months it seems that this exploit may be found out in the wild.

Row hammer (also written as rowhammer) is an unintended side effect in dynamic random-access memory (DRAM) that causes memory cells to leak their charges and interact electrically between themselves, possibly altering the contents of nearby memory rows that were not addressed in the original memory access. This circumvention of the isolation between DRAM memory cells results from the high cell density in modern DRAM, and can be triggered by specially crafted memory access patterns that rapidly activate the same memory rows numerous times.
[…]
Memory protection, as a way of preventing processes from accessing memory that has not been assigned to each of them, is one of the concepts behind most modern operating systems. By using memory protection in combination with other security-related mechanisms such as protection rings, it is possible to achieve privilege separation between processes, in which programs and computer systems in general are divided into parts limited to the specific privileges they require to perform a particular task. Using privilege separation can also reduce the extent of potential damage caused by computer security attacks by restricting their effects to specific parts of the system. [wikipedia]

In other words: Switching to another operating system or patching it may not solve the problem, because the root of the problem lies in the memory chips every which computer contain. An article on wired.com describes it like this

Both of those new attacks use a technique Google researchers first demonstrated last March called “Rowhammer.” The trick works by running a program on the target computer, which repeatedly overwrites a certain row of transistors in its DRAM flash memory, “hammering” it until a rare glitch occurs: Electric charge leaks from the hammered row of transistors into an adjacent row. The leaked charge then causes a certain bit in that adjacent row of the computer’s memory to flip from one to zero or vice versa. That bit flip gives you access to a privileged level of the computer’s operating system.

lwn.net is reporting that linux kernel developers are trying to mitigate the exploit.

An intriguing alternative turned up on the linux-kernel list, though its nature wasn’t immediately clear. Pavel Machek asked a question that raised some eyebrows: “I’d like to get an interrupt every million cache misses… to do a printk() or something like that.” Developers naturally wondered what he was up to. The answer turns out to be an in-kernel Rowhammer defense.

Intro to Reactive Programming in Java

September 27, 2016

Infoq.com 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.