28 Jan 2008
My Bose Story
"After this there's no turning back!"
This is not only true with taking the red pill. It's also the case with getting used to comfort. I bought Bose in-ear headphones a few months back. As many reviewers have warned, the tips of the earphones fall out easily. I lost mine twice and luckily found them back. When my friend borrowed my earphones he didn't pay enough attention to the tips so it got lost. (In my opinion, any device that needs special care/attention is badly designed.)
I play music almost all the time when I drive. Today I went to Bose store to buy the tips and I was listening to music on the way using my old Panasonic earphones . I couldn't believe myself when my ears started paining within 30 minutes of listening. I'm glad that I bought the slightly overpriced Bose earphones, as they are doing good to my ears. If you are a heavy earphone user, consider getting something really good. I bet it's worth the money.
17 Jan 2008
More Linux fun: screen brightness
I like to use a GNU/Linux machine than a Windows machine for at least two reasons:
In this post, I will tell you how an OS upgrade broke a functionality on my machine and how I fixed it (which was a fun experience).
Update 1: zerosk8 says in a comment that the command
Update 2: The technique described in this post worked on my Lenovo laptop (with an ATI graphics card). It didn’t, however, work on my Samsung N150 laptop (which has an Intel graphics card). Check this blog post of mine to see what works on the Samsung machine.
Original post:
My upgrade to Kubuntu Gutsy broke the functionality of Fn+Home and Fn+End keys on my ThinkPad. (If you use Sony Vaio, look at Daniel’s comment. Thanks Daniel for the information!) These keys are used to control the brightness of the LCD screen. When I was Googling around to find a solution, I learned that the LCD screen driver provides a file system-like interface for controlling it. The file
In case you didn’t know exactly how to install this program, or too lazy to type commands, use these commands:
Chose the keyboard shortcut Ctrl+Alt+=.
For command, I gave the path to
Likewise, I assigned Ctrl+Alt+- to
- GNU/Linux user environment (especially KDE) is customizable.
- You get to see how things are implemented, which is kinda fun.
In this post, I will tell you how an OS upgrade broke a functionality on my machine and how I fixed it (which was a fun experience).
Update 1: zerosk8 says in a comment that the command
xbacklight
can be used to control screen brightness from the command line. On Ubuntu machines, run sudo apt-get install xbacklight
to install the command on your machine. Thank you zerosk8! (Near the end of this post I am discussing how I set up keyboard shortcuts for adjusting brightness. This part might be useful even if you use xbacklight
command.)Update 2: The technique described in this post worked on my Lenovo laptop (with an ATI graphics card). It didn’t, however, work on my Samsung N150 laptop (which has an Intel graphics card). Check this blog post of mine to see what works on the Samsung machine.
Original post:
My upgrade to Kubuntu Gutsy broke the functionality of Fn+Home and Fn+End keys on my ThinkPad. (If you use Sony Vaio, look at Daniel’s comment. Thanks Daniel for the information!) These keys are used to control the brightness of the LCD screen. When I was Googling around to find a solution, I learned that the LCD screen driver provides a file system-like interface for controlling it. The file
/sys/class/backlight/acpi_video0/brightness
acts as the interface for adjusting screen brightness. So I wrote the following shell script to adjust screen brightness:#!/bin/sh
#
# Adjust LCD brightness of ThinkPad laptops.
CTRL_FILE=/sys/class/backlight/acpi_video0/brightness
usage() {
echo >&2 Usage: lcd-brightness [value]
}
case $# in
0)
cat $CTRL_FILE
;;
1)
echo $1 >$CTRL_FILE
;;
*)
usage
esac
The code feels right when looking at it. Let’s try it out.So this problem looks like a permission issue. Just to make sure:$ ./lcd-brightness 80 $ ./lcd-brightness 70 ./lcd-brightness: line 16: /sys/class/backlight/acpi_video0/brightness: Permission denied
$ sudo ./lcd-brightness # sudo runs the command as root. 80 $ sudo ./lcd-brightness 70 # This worked -- screen brightness changed.
So only root can change the screen brightness. But I don’t want to$ ls -l
/sys/class/backlight/acpi_video0/brightness -rw-r--r-- 1 root root 4.0K Jan 17 16:47 /sys/class/backlight/acpi_video0/brightness
sudo
all the time to adjust screen brightness. I said to myself, “I know how to handle this.” And I installed my script like this:Time to test this newly installed script.$ sudo cp ./lcd-brightness /usr/local/bin/ $ sudo chmod 755 /usr/local/bin/lcd-brightness $ sudo chmod +s
/usr/local/bin/lcd-brightness $ ls -l
/usr/local/bin/lcd-brightness -rwsr-sr-x 1 root root 7.3K Jan 17 08:21 /usr/local/bin/lcd-brightness
Looks like setuid bit is not working as I expected. Some more Googling around gave me the answer. Wikipedia article on setuid says: “Due to the increased likelihood of security flaws, many operating systems ignore the setuid attribute when applied to executable shell scripts.“ That explains everything. So my next option is to write it as a C program. I translated this shell script into C as follows:$ type lcd-brightness lcd-brightness is /usr/local/bin/lcd-brightness $ lcd-brightness 70 $ lcd-brightness 80
/usr/local/bin/lcd-brightness: line 16: /sys/class/backlight/acpi_video0/brightness: Permission denied
# Huh? Let’s try again as root?$ sudo lcd-brightness 80 # This changes the brightness
/*
* Change/query the brightness of LCD screen.
*/
#include <stdio.h>
void usage()
{
fprintf(stderr, "Usage: lcd-brightness [value]\n");
}
int main(int argc, char *argv[])
{
FILE *fp;
int bright = 0;
const char *kFileName =
"/sys/class/backlight/acpi_video0/brightness";
switch (argc) {
case 1:
fp = fopen(kFileName, "r");
fscanf(fp, "%d", &bright);
printf("%d\n", bright);
break;
case 2:
fp = fopen(kFileName, "w");
bright = atoi(argv[1]);
fprintf(fp, "%d\n", bright);
break;
default:
usage();
return -1;
}
fclose(fp);
return 0;
}
Compiling this file and installing the binary like earlier does the job. Cool :-)In case you didn’t know exactly how to install this program, or too lazy to type commands, use these commands:
But this is not the end of story. Later I found a usability problem with this program. I use this program only when I want to either increase or decrease the screen brightness. That is a two-step process — first I have to run the program and find the screen brightness. Then run it again with appropriate brightness argument. This is not an optimal way to use a program like this. So I decided to write two more shell scripts on top of$ gcc lcd-brightness.c $ sudo cp ./a.out /usr/local/bin/lcd-brightness $ sudo chmod +s
/usr/local/bin/lcd-brightness $ ls -l /usr/local/bin/lcd-brightness -rwsr-sr-x 1 root root 7.3K Jun 7 21:47 /usr/local/bin/lcd-brightness
lcd-brightness
command. Here are those scripts:$ cat increase-lcd-brightness
#/bin/bash
#
# Increase LCD brightness by 10.
# Assumes that lcd-brightness command is on $PATH.
lcd-brightness $(expr $(lcd-brightness) + 10)
$ cat decrease-lcd-brightness
#/bin/bash
#
# Decrease LCD brightness by 10.
# Assumes that lcd-brightness command is on $PATH.
lcd-brightness $(expr $(lcd-brightness) - 10)
The scripts are very simple, aren’t they? But there’s still another usability issue: I have to switch to a terminal to invoke these commands, which might be a distraction when I am coding or reading some document. Correct approach would be to use shortcut keys for this. So I went ahead and defined two new global shortcut keys on my machine. On KDE it’s done from Control Center. I opened the corresponding applet by selecting K Menu > System Settings > Accessibility > Input Actions. Added a new action called “Increase LCD Brightness” with type as “Keyboard Shortcut -> Command/URL (simple)”.Chose the keyboard shortcut Ctrl+Alt+=.
For command, I gave the path to
increase-lcd-brightness
script.Likewise, I assigned Ctrl+Alt+- to
decrease-lcd-brightness
script. And that’s about it. Now I can use shortcut keys for adjusting screen brightness. Now you understand when I say “Linux is customizable,” don’t you? ;-)15 Jan 2008
Oh civilisation!
Disclaimer:
- I am not trying to that say something is right or wrong. I am not trying to propose a solution. I am just trying to analyse the reason behind eve teasing.
- This is just a hypothesis I am putting forth. I haven't done any research to verify this.
13 Jan 2008
Another nice trick on my Unix machine
My computer had a problem. I could only mount the root and tmp partitions as read-only. But I had to copy the output of a command from my computer to another computer. I would usually run the command with the output redirected to a temporary file. Then I will
scp
that temporary file to whatever machine the file has to be transfered to.
Since the hard disk was mounted as read-only, I could not create a temporary file with the command's output. So, I ran the command (dpkg --get-selections
) as follows:dkpg --get-selections | ssh server 'cat >~/package.txt'
This saved the output of dpkg
command on the machine server
. Cool, no? :)
PS: I am writing this down here because I don't want to forget this and reinvent the same trick again. When I need it sometime later, I can just a do a Google Search and find this :-)
8 Jan 2008
Got DataOne
The white box on the left-hand side is my wireless router. The black one on the right-hand side is my ADSL modem. So well, what are they doing at my home? I just got a new BSNL DataOne connection, and these devices help me now update my blog with this news :)
I am happy that finally I have got a "good" Internet connection. I am sad at the same time that I cannot continue to support MSify any more. My Sify account is active for at least two more months. If I get any bug report or feature request within this time-frame, I will sure work on it. I won't even mind keeping my Sify connection to support MSify if there are users who want me to maintain it. So if you are a user, please let me know if you want me to keep supporting MSify. If you use Sify Broadband but not MSify, I encourage you to try it out and let me know your comments.
4 Jan 2008
Blogger Annoyances
A few minor annoyances with Blogger (aka BlogSpot).
- Preview: Blog preview is really bad. Unless your blog's background colour is white (or some bright colour), you have no clue how different colours of text actually look on the page. It would be nice if Blogger uses the blog's template to show the preview.
- Default country: Can you guess how many Blogger users are there in Afghanistan? Blogger says there are 221,000 Afghan users. By default Blogger sets your country to Afghanistan, and many people don't bother to change it or somehow ignore it.
- Private profiles: I know Blogger does it for privacy concerns of people. But I hate when I see a page like this:
1 Jan 2008
Black background for text?
I know how much you love that black background of your blog. I accept, that background colour makes your blog look cool. But you know what? It's very hard to read white text on a black background. Especially when the text is in 8 point sans-serif font. If you wish to do me (and all the people like me who are almost always on computers) a favour, please:
- Don't use black as the background colour (some dark shade of gray is ok I guess). Switching between other apps that use white as background colour and your blog is a very bad exercise for the eyes.
- Don't use colours for emphasize -- use bold, italics etc. (Reason: when the post is read from an RSS reader like Google Reader, all we can see is yellow (or that other bright colour you used for highlighting) text on a white background. Obviously, yellow text on white background is not readable.)
- Don't assume your blog is readable in its current design. Different devices/computers render things differently. Shown below is a typical BlogSpot blog on my GNU/Linux machine. I think it looks much better on a Windows machine.
- Don't assume everyone can read it if you are able to read it. There are people with all kinds of inabilities. You never know how your readers feel. (I asked my optician, "I can read all the letters that you showed while testing. But I can't read text from that poster out there. Maybe I should try a different lens?" He answered me with a smile, "Human eyes cannot easily read white text on a black background. This is normal, you're fine with this lens.") Just think about it -- almost ALL the software that you use has dark text on a light background. This cannot be a coincidence.
Subscribe to:
Posts (Atom)