Friday, November 19, 2010

Keynote like multi-screen output in linux

I normally create my presentations using the beamer package in Latex compiling them into pdf, can't really imagine why would anyone use anything else. I use evince to display the pdf on a projector, but found it to be relatively basic.

I was looking for an application to display some meta-information like the remaining time and the preview of the next slide on my laptop while displaying the current slide on the projector, the way Keynote does it. I found the pdf_presenter_console application, it is fairly minimalistic but seems to do the trick for me.

Tuesday, November 9, 2010

PHP Fatal error: Class 'PDO' not found

When using SQLite with Php for the first time, you might get this error under /var/log/httpd/error_log (I was using a Fedora 13 machine). The trick is to install a package called "php-pdo" and then use the function.

yum install php-pdo

Hopefully it will save someone some heartache :)

Friday, October 22, 2010

StrongSwan: we have no ipsecN interface for either end of this connection

I installed a new NIC card on one of my PCs where IPSec was already set up through StrongSwan and configured NAT-ing through iptables. Afterward, when I tried to do "ipsec up myconnection" I got this error:
we have no ipsecN interface for either end of this connection
The reason, it turns out, is that if the ipsec services were started before all the network interfaces came up, it is confused about which egress route to take. As I found on the Layer9 blog (and translated from German to English via Babelfish), it turns out you need to make sure that ipsec starts after the network has come up. The quick fix was just an IPSec restart:
sudo /etc/init.d/ipsec restart

And the long-term fix was definitely to just delay the ipsec a little. Add this to your /etc/rc.local file:
/etc/init.d/ipsec stopsleep 5/etc/init.d/ipsec start

Thursday, October 7, 2010

Strongswan: ike alg: unable to locate my private key

If you are using StrongSwan to establish an IPSec connection and you encounter this error:
root@crackjack:~# ipsec up conn-to-td
002 "conn-to-td" #2: initiating Main Mode
002 "conn-to-td" #2: ike alg: unable to locate my private key
002 "conn-to-td" #2: ike alg: unable to locate my private key
003 "conn-to-td" #2: empty ISAKMP SA proposal to send (no algorithms for ike selection?)

Then I have found the way to solve the first part of your problem - the private key part. Basically, after FreeSwan became OpenSwan and then finally StrongSwan, they created a directory for each individual part under /etc/ipsec.d. So for example the CA certs are stored in the folder /etc/ipsec.d/cacerts, or the certs you got are stored in /etc/ipsec.d/certs. Similarly, you are supposed to store your private key at /etc/ipsec.d/private. What you have probably done is that in /etc/ipsec.conf you wrote down
When in fact you should have your /etc/ipsec.conf as the following:

# ipsec.conf - strongSwan IPsec configuration file

# basic configuration

config setup

conn host-to-host
After this, you can do the faithful /etc/init.d/ipsec restart and the private key problem will disappear

Tuesday, August 17, 2010

Ubuntu/ALSA controlling volume from the command line

If you are using ALSA as your audio framework, if you are using a common distribution like Ubuntu you probably are, there is a command line program called alsamixer which provides an elaborate set of options to control your sound settings.

The sound setting I most often tinker with is, of course, raising and lowering the volume. A simple way to do that on the command line is "amixer -c 0 sset Master,0 %", for e.g. amixer -c 0 sset Master,0 60%.

Saturday, August 7, 2010

mediawiki blank page after install

If you have freshly installed MediaWiki and are getting a blank page after installing, here is what you are probably doing wrong: the LocalSettings.php needs to have read permissions by everyone as well.

(I am assuming a standard install here)
So if you go to /var/lib/mediawiki/LocalSettings.php it should actually be a softlink to /etc/mediawiki/LocalSettings.php. Try this command:
sudo chmod 755 /etc/mediawiki/LocalSettings.php
And then restart apache (just to make sure):
sudo /etc/init.d/apache restart
That should be it. Now your http://localhost/mediawiki should be visible :)

Monday, August 2, 2010

VMWare tries network boot although you've specified an ISO file in the device settings

It just happened to me, and I found the solution thanks to my teammate. You have to click on the check-box under CDRom that says "Connect at power on". By default, when you add a new CDRom to the machine, this box is not checked. So, there goes...

Friday, July 30, 2010

Cisco IOS router stuck in rommon

Moral of the story - if you are getting checksum errors on the rommon prompt of a Cisco IOS router, and you know that you have downloaded the correct image from the correct website, then either your router's flash memory or the USB drive you are using to transfer it is corrupt. I know the latter seems like a distant possibility, but yes, it has happened to me and I lost a good 3 weeks of productive time trying to troubleshoot this.


Saturday, July 10, 2010

How to see a Cisco IOS CA's root certificate

If you have created an IOS CA server and want to see its root certificate for distribution to other machines, then you must look at its storage location. Suppose you used the following to create your CA:

# enable
(config)# cry pki server thehacklist
(cs-server)# database url flash:
(cs-server)# issuer-name C=IN, ST=WB, O=thehacklist
(cs-server)# cdp none
(cs-server)# grant auto
(cs-server)# no shut
%Some server settings cannot be changed after CA certificate generation.
% Please enter a passphrase to protect the private key
% or type Return to exit

Re-enter password:
% Generating 1024 bit RSA keys, keys will be non-exportable...[OK]
% Exporting Certificate Server signing certificate and keys...

% Certificate Server enabled.
(cs-server)# end

Now if you look at the storage location (flash in this case, as specified above), you will see a three files named after your CA server (with extensions ending in ser, crl and p12).

# dir flash:
Directory of flash:/

11 -rw- 32 Jul 10 2010 17:54:20 +00:00 thehacklist.ser
1 -rw- 1826 Jan 15 2008 17:52:38 +00:00 sdmconfig-38xx.cfg
2 -rw- 6036480 Jan 15 2008 17:53:10 +00:00 sdm.tar
3 -rw- 861696 Jan 15 2008 17:53:26 +00:00 es.tar
4 -rw- 1164288 Jan 15 2008 17:53:46 +00:00 common.tar
5 -rw- 1038 Jan 15 2008 17:54:02 +00:00 home.shtml
6 -rw- 113152 Jan 15 2008 17:54:16 +00:00 home.tar
7 -rw- 1697952 Jan 15 2008 17:54:42 +00:00 securedesktop-ios-
8 -rw- 416354 Jan 15 2008 17:55:06 +00:00 sslclient-win-
9 -rw- 59526004 Jun 29 2010 19:23:10 +00:00 c3845-advipservicesk9-mz.124-22.T2
10 -rw- 60288320 Dec 15 2008 23:27:58 +00:00 c3845-adventerprisek9-mz.124-20.T
12 -rw- 247 Jul 10 2010 17:54:20 +00:00 thehacklist.crl
13 -rw- 1627 Jul 10 2010 17:54:22 +00:00 thehacklist_00001.pem

From here, to see the root certificate of the CA, you can use:

# more flash:/thehacklist_00001.pem

Thursday, June 24, 2010

MPlayer: Failed to open LIRC support

Whenever I run MPlayer from my terminal, which is always when I am playing any kind of media, including Youtube videos, I get the following error.

mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

I do not own a LIRC remote control, although I have read it is not too difficult to build one yourself. I this message had become an eyesore. The fix is rather simple. Add a line "nolirc = yes" without the quotes to the file ~/.mplayer/config in your home directory. Given how customizable MPlayer is, it is possible to fine tune almost everything from the config file. The default configurations are listed in /etc/mplayer/mplayer.conf and are overridden by the config file in the home directory.

Tuesday, June 15, 2010

Resolving "murrine_style_draw_box: assertion `height >= -1'"

When using Emacs 23 and a few other applications on Ubuntu running GNOME, I often get a irritatingly cryptic error message ** (emacs:25074): CRITICAL **: murrine_style_draw_box: assertion `height >= -1' failed. Turns out it has got something to do with the theme I'm running.

Thanks to Alf, it is very easy to get rid of that by tweaking Gtk configuration. Modify the entry in /usr/share/themes/Ambiance/gtk-2.0/gtkrc from GtkRange::trough-under-steppers = 0 to GtkRange::trough-under-steppers = 1.

Wednesday, May 26, 2010

Upgrading Fedora from the command line

I have a Fedora box running and I sort of screwed up the GDM so I was left without a display. Since the Fedora 13 (Goddard) was released recently, I decided to upgrade, from the command line. It kept giving me the error that complained, "Can't open display".

I finally figured out that I needed preupgrade-cli, as specified here:

The syntax, from the command line is this (as root):
preupgrade-cli "Fedora 13 (Goddard)"

Note the quotes surrounding the argument - you need those to specify the string for the version you want to upgrade to.

Monday, May 24, 2010

Eclipse: GLib-WARNING **: g_set_prgname() called multiple times

While coding a few things using SWT on Eclipse, the console was continuously showing me this error:
g_set_prgname() called multiple times
that too in red - meaning a sort of an error.

This is a nagging problem: especially if you are a code purist like me who loves to see no errors/warnings at all in the code I write. I googled a bit, and the Ubuntu Forums provided the solution: downgrade libglib2.0. I'm quoting from there:

Mark the package you want to downgrade, and choose "Force version ..." from "Package" on the main menu. Select the previous version and it is done.

I am using Karmic Koala (yeah I haven't upgraded to the Maverick LTS yet). So all I needed to do was to select the value from the drop down menu to one that did not say "(updates)". Don't worry, there are only two options and you just have to select the other one. After applying, I got that line marked in yellow in Synaptic. But hey... got rid of a nagging warning! :)

Sunday, May 9, 2010

Road rash on Linux using wine

For a lot of us, Roadrash is a game that is going to remain close to our hearts forever! Countless hours spent in front of the PC while kicking and punching others, or even on the LAN fending off your room-mate. For a lot of us, this has been THE introduction to computer video games.

Downloading the game is pretty easy, actually. I got mine at

The tricky part is to get to run it on Linux. In my case, Ubuntu Linux is the only operating system I have: I honestly don't need Windows for much. This game, however, runs only on Windows and so the quintessential wine came to the rescue. So then I unzipped the file and from the command prompt typed:

sudipta@Hogwarts:~/roadrash$ wine ROADRASH.EXE

This unfortunately leads to the "CD-Rom not found" error. The fix to this, as we all know, is to have the registry edited. There is a SETREG.EXE which you can run, but then the state is not persistent. As in, if you run

sudipta@Hogwarts:~/roadrash$ wine SETREG.EXE
sudipta@Hogwarts:~/roadrash$ wine ROADRASH.EXE

Then the registry was just altered when the last wine command was run, not this time. So I opened up the RASH.REG file and found that it contained:


[HKEY_LOCAL_MACHINE\SOFTWARE\Electronic Arts\RoadRash 95]

Which basically means that the above Windows registry value needed editing. This in turn led me back to the .wine folder in my home directory. Lo and behold, there was a system.reg file with lots of Registry-like entries.

sudipta@Hogwarts:~/.wine$ gedit  system.reg

So I simply added a section right on top that said:

[SOFTWARE\\Electronic Arts\\RoadRash 95]

This was because there was an entry right on top that said, ";; All keys are relative to \\Machine". And now when I run

sudipta@Hogwarts:~/roadrash$ wine ROADRASH.EXE

I get

Viola! Ah the joys of kicking the next guy off the road... :D

Sunday, April 25, 2010

SSH Hostname Shortcut

As I work with 3 machines: laptop, desktop, and a server: all running 64-bit Linux, I often need to use ssh and scp. I find repeated typing of long hostnames stress inducing, with the chance of making a typo or just the pressure on my fingers. Here is a trick I use.

Create a file .ssh/config with the following entries:

Host [shortcut]
Hostname [full-hostname]
User [username]

where entries in [brackets] are to be filled with your entries. Additional entries like Port, ServerAliveInterval, etc. can also be filled out.

This along with public key based password-less ssh works like a charm. If you are as lazy (= productive) as I am, one-letter shortcuts for frequently used hosts like

$ ssh a

is enough.

Monday, April 5, 2010

Syncing Text Notes

A very basic need, trivial to address and yet surprisingly, at I haven't found a convincing solution: you want to make your text notes on your mobile device and then copy-paste to your files on your computer.

I keep my tasks and other important lists in the form of formatted text file (e.g., in Google Docs). I found this to be the most flexible compared to any other todo list applications such Google Tasks or Remember the Milk that never measured up to what I needed to do with them. However, Google Docs doesn't allow you to edit on Mobile devices. iPhone internal Notes program doesn't sync over 3G (I guess that can be made to work somehow with iTunes?) . At some point, I emailed those notes to myself and then copy-paste from the email to Google Doc. Then I found DropBox in which you can sync file with your mobile device and view them. But still NO EDITING despite many people requesting it!!! So I found EverNote and you can edit there but there process requires many clicks at at least on the iPhone with no background app, it's painful and not practical. Also, if you do any rich formatting on a desktop, the mobile app only appends. Then I thought what I make a draft email and keep updating this and then copy-paste from this draft. I used this solution for a while but then again too many clicks to get to it.

What am I missing? Shouldn't there by something out there for this? I doubt that not enough people need to sync their notes.

Out of options, I created my own small application and you can put a shortcut on your mobile main screen. On your first use, it creates a note for you which it will remember from the cookie next time you visit the main URL. You can email it to other computers that you want to sync notes and again using cookie you only need to do this once. Couple of disclaimers:

1. I'm putting this up for comments and would love to hear if there is interest (or alternatives). I may stop this service at any point
2. It is currently formatted for iPhone and I haven't tried on other devices. Again if there is interest, I will support it.
3. This is to be used for small temporary text transfers. Not a secure service. Also, the app is almost too minimalistic and missing many features.

Thursday, February 4, 2010

GNU Grammar and Writing Style checking tools

Historically, there have not been too many free software tools for even the basic spelling & grammar checking. I found the combination of free GNU tools: aspell, diction, and style to work well, on the command line (on Unix as well as Windows) or inside Emacs.

Here is a good article about these tools.