Oneplus One touchscreen bug fix

There is a very common touchscreen bug with the Oneplus One that can only be partly/temporarily fixed by a reboot and shows in several ways:

  • Touchscreen less responsive at all times
  • Touches are often not recognized (apparently triggered by heat)
  • Ghost touches (apparently triggered by heat)

Although this seems to be in some way related to the hardware (because I could easily reproduce it by making it warmer), a new touchscreen firmware was published recently in the CyanogenMod 12.1 repository that seems to work arround the problem somehow. I can attest that installing the new firmware fixed the problem on two Oneplus Ones that I tried it on. Battery life is noticably worse though, but this is said to be fixed with some changes that were committed to the CM12.1 repository on June 2.

Read More

Simple LDAP server as authentication back end / Single sign-on on Ubuntu 14.04

I have wanted to create an LDAP server as authentication back end for a small student association that I am in for quite some time, but I did not do it yet because of the administrative chaos that LDAP servers seemed to be. I did not find a good ressource which described the best and simplest solution for a simple use case:

  • Create, change and delete user accounts
  • Have several, easily-managable groups
  • Have easily-integrated interfaces for different services (e.g. Dokuwiki)

Most of the tutorials I found seemed overly-complicated, and I did not want to leave an administrative mess for the next person who has to manage the system.

The following (German) blog post described the process in very easy terms. I set up a working LDAP server with OpenLDAP in under one hour (including some testing I did that was not in the tutorial):

I followed the tutorial until “LDAP Samba Implementierung” and had no problems under a virtualized Ubuntu 14.04 LTS server (not on a Raspberry Pi).

Read More

Automatically reboot TP-Link router WDR4300 / N750 with bash script

I wanted to reboot some TP-Link WDR4300 routers automatically, because the TP-Link firmware is rather buggy and often causes WLAN problems after a few days of use.
Sadly, rebooting those routers with current firmwares is not quite as easy as it used to be (simple and short one-line curl call). You first have to generate a cookie with the name ‘Authorization’ and value

urlencode(Basic base64($admin:md5($password)))

(pseudocode). And then you have to extract some kind of one-time key from the post-login page to get the actual HTTP address of the reboot page (http://$IP/$KEY/userRpm/SysRebootRpm.htm?Reboot=Reboot ). Did I mention you also have to set your HTTP referer to the reboot page?

Read More

No wired (LAN) connection in Linux, although everything looks right

Today I experienced a strange problem with my notebook (Dell Precision M4800) and LAN card (Intel I217-LM, driver e1000e). I connected a LAN cable, but it just would not get a connection. Not via DHCP and network-manager, not via DHCP/dhclient, and not via static ip. On the same notebook, everything worked fine under Windows 8. Symptoms: Read More

Android DialogFragment that gives the user some list options to choose from

  • DialogFragment that creates an AlertDialog with the title and options specified in the constructor
  • Can store some a data object (useful if you want the user to select an action on a specific item)
  • Is retained in case of an orientation change
  • Works great with ActionBarSherlock
  • FIXME: do not use custom constructor, but add data with .setArguments and a Bundle

Read More

Using a TI LM35 temperature sensor with Arduino Mega

This is some code I wrote for fun to read the temperature from a TI LM35 temperature sensor and output the result with a speaker as morse code.

Note: Fig. 7 from the LM35 datasheet seems so have a different number in the current version of the datasheet

Read More

1 2 3