Posts Tagged ‘English’

Fixing Double-Click Interval for Java Applications Under Linux

Sunday, December 4th, 2011

If you are using any Java applications (such as IntelliJ IDEA or RubyMine) under Linux / KDE you may have wondered why their response to double-clicks is somewhat sluggish or unreliable. As it turns out, Java (Swing) ignores KDE’s setting for the double-click interval, so Java uses a pretty short default (AFAIK ~200 ms).

To fix this, create a file named .Xresources in your home directory and add the following line:

*.multiClickTime: 500

Set its value to whatever interval you prefer (the example is using 500 ms).

Edit: JetBrains support just mailed me that the root cause is a bug in the JDK, reported in 2004 and fixed in Java 7 (doh!): http://bugs.sun.com/view_bug.do?bug_id=5076635

Reducing T420s Power Consumption under KDE/Linux

Thursday, October 6th, 2011

If you own a Lenovo ThinkPad T420s (or any recent-generation notebook with a Sandy Bridge CPU) with Intel HD 3000 Graphics, this information may help you to reduce the power consumption under KDE/Linux:

  • Intel HD 3000 Power-Saving: Enable the following Kernel command-line options: i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1
  • Force ASPM: Enable the pcie_aspm=force Kernel command-line option
  • In KDE, go to “System Settings” | “Desktop Effects” | “Advanced” and set the “Scale method” to “Crisp”.

Overall, this brings my T420s’s power consumption down below 9 W. For best results, use a recent Linux 3.1-rc pre-release.

Current NVIDIA Drivers for Ubuntu Natty

Sunday, July 31st, 2011

If you are looking for current NVIDIA drivers for Ubuntu Natty (11.04), my new PPA may be of interest to you. It hosts an Ubuntu port of the current release version 275.21 of the NVIDIA Linux driver.

To install:

sudo apt-add-repository \
ppa:thilo.ginkel/nvidia-graphics-drivers
sudo apt-get update
sudo apt-get upgrade

Caution: There are some reports on the nvnews.net forums that this driver version breaks Gnome / GTK applications under certain circumstances, which I can neither confirm nor deny as I am using KDE (but GTK apps work correctly for me). You have been warned, use at your own risk.

World IPv6 Day

Wednesday, June 8th, 2011

Today is World IPv6 Day and as my hosting provider has been offering IPv6 support for some time, I took the opportunity to enable IPv6 support for most services offered under the ginkel.com domain.

Let’s see whether there will be any IPv6-based requests (except for my own ones thanks to the excellent SixXS service).

Welcome to the next evolutionary stage of the Internet! ;-)

KDE: Location-based Screen Lock Activation

Sunday, June 5th, 2011

Some laptop users may know the following scenario: In situations where others may potentially gain unauthorized access to your machine, e.g., in public places or in the office, you may want to enable a screen lock shortly after the screensaver kicks in so that the time window during which your system is potentially vulnerable to malicious users stays short (of course, it is still recommended to manually lock the screen when you leave your laptop unattended). However, at home, the need to unlock the machine after some inactivity becomes a little annoying, which makes enabling the locking functionality by default a less desirable option.

Now, what if your laptop could automatically detect your working environment and disarm or re-arm the screen lock depending on its physical location? Well, it can: Turns out there are some nice hooks available to run scripts during various network state change events. The ones that will be of interest for us are if-up and if-down. Apart from that we make the assumption that it will be possible to detect the laptop’s “safe” home location by means of it being signed in to a given WiFi network (identified by its SSID).

Before proceeding, let’s make some further assumptions for the sake of simplicity:

  • You are running a recent KDE version (the author uses 4.6.x – older versions may also work, though).
  • The paths mentioned in this guide may be specific to Ubuntu/Debian. Your mileage for other distributions may vary.
  • You have configured a screensaver through the KDE System Settings to automatically kick in after some time of inactivity.

The portion we will be automating is enabling and disabling the automatic screen lock after disengaging the screensaver using KDE’s kwriteconfig command. To do so, create a new script /etc/network/if-up.d/screenlock and populate it with the following content:

#!/bin/bash

SSID=
USERNAME=

/sbin/iwconfig wlan0 | /bin/grep -q ${SSID}

if [ $? = 0 ]; then
    logger "Disarming screen lock"
    su -c "/usr/bin/kwriteconfig --file kscreensaverrc \
       --group ScreenSaver --key Lock false" ${USERNAME}
else
    logger "Re-arming screen lock"
    su -c "/usr/bin/kwriteconfig --file kscreensaverrc \
       --group ScreenSaver --key Lock true" ${USERNAME}
fi

exit 0

Make sure not to forget to configure your user and SSID placeholder at the top of the script.

Also, make the script executable:

sudo chmod +x /etc/network/if-up.d/screenlock

So far, the script is only invoked when establishing a network connection. To also invoke it upon disconnecting, we need to create an appropriate symbolic link:

cd /etc/network/if-down.d/
sudo ln -s ../if-up.d/screenlock .

You can test whether the screen lock is working by manually enabling the locking facility in the KDE System Settings -> “Display and Monitor” -> “Screen Saver” -> “Require password after …”. Test whether the lock is effective by letting the screensaver kick in. When dismissing the screensaver you should be prompted for a password. Now, connect to your WLAN. Retry the screensaver test cycle, which should no longer require the entry of a password. Last, disconnect from your WLAN again to observe the lock coming back.

That’s it. Have fun with your new location-aware screen lock configuration. Of course, further uses of the mechanism can be thought of, such as automatic file synchronization. More to follow in a future blog post.

Kindle SSID Trouble

Friday, April 29th, 2011

Today, I unboxed my new Amazon Kindle (Wi-Fi). As it turned out, getting it to talk to my wireless router (an AVM FRITZ!Box 7270) was a little more difficult than expected. When connecting, all I got was a rather generic error message “Unable to connect to Wi-Fi network” despite correct settings and credentials. As it turned out later after fiddling around with my router settings, the Kindle does not like special characters in the SSID (in my case that was probably a slash or colon character – yes, I was using a URL as my SSID ;-) ). After stripping them, everything started working flawlessly.

Bug relief

Tuesday, April 26th, 2011

Just in case you have also been bitten by KDE bug 261323 (chances are good if you are running KDE on a multi-core system with an nVidia graphics card and compositing enabled) and are using Kubuntu (Maverick): You can get updated KDE 4.6.2 packages, which include a fix for this issue by KDE developer Martin Gräßlin, from my PPA:

https://launchpad.net/~thilo.ginkel/+archive/kde-4.6.x

Secure Hard Disk Erasure

Tuesday, March 15th, 2011

Before setting up dm-crypt, one is supposed to overwrite the hard disk with random data. As it turns out, this is harder to do than initially expected. Using /dev/random or /dev/urandom as a data source to overwrite the disk will take ages (multiple days) for a hard disk drive of typical size. The same applies to using the wipe command.

Fortunately, there is an alternative available by means of the badblocks command:

badblocks -c 10240 -s -w -v -t random /dev/<device>

This takes approximately four hours per terabyte of data (YMMV).

Source: http://chakra-project.org/wiki/index.php/LUKS_for_dm-crypt

Minor Asterisk for FRITZ!Box Update

Sunday, February 6th, 2011

I am a little short on time, so I will keep this post short.

In brief: If you had trouble compiling Asterisk against the current Freetz development branch or an Asterisk version built against an older version was regularly crashing when establishing a new connection, this update is for you.

The updated version is available for download at http://github.com/ginkel/asterisk-freetz-build/tarball/v0.5. As usual, code contributions are welcome. The source code is available on GitHub.

Confused? ;-) This post tells you what this is all about.

Upgrading Cassandra 0.6.x to 0.7.0

Friday, January 14th, 2011

Just a brief recap of what manual steps are needed to upgrade Cassandra from 0.6.x to 0.7.0 using Debian packages:

  • Convert /etc/cassandra/storage-config.xml to /etc/cassandra/cassandra.yaml using the config-converter script. This currently does not seem to be included in the 0.7.0 .debs, so just grab a binary distribution to get hold of the script.
  • chown -R cassandra.cassandra /var/lib/cassandra/
  • Start Cassandra (typically using /etc/init.d/cassandra start)
  • Fire up jconsole, connect to localhost:8080 (or whatever JMX port you chose instead) and execute org.apache.cassandra.db -> StorageService -> Operations -> loadSchemaFromYAML

Enjoy!