Linux


Beautiful soup is indeed beautiful!

I wanted to parse an HTML page containing a table and import it into a MySQL table in an automated way. Upon my friend Kumar’s advice, I came to know about Beautiful Soup. Today was the day to explore Beautiful Soup. Being new to python, I had to do a bit of python reading side-by-side. Finally, I was able to successfully pass an HTML file to my script and get a CSV output.

f = open("input_file.html","r")
g = open("outfile_file.csv,"w")
soup = BeautifulSoup(f)
t = soup.findAll('table')
for table in t:
    rows = table.findAll('tr')
    for tr in rows:
        cols = tr.findAll('td')
        for td in cols:
            g.write(td.find(text=True))
            g.write(",")
        g.write("\n")

This script parses a simple HTML table without looking for any special tags or anything. Now that this is working, I have to make this more stronger and parse an uglier table, my task for tomorrow.

The default unclean URLs that Drupal provides with question marks lurking around, could be annoying. But it does offer an option to have clean URLs. I couldn’t find a neat tutorial to do this and this was not of great help either. So, let us see how to get this done.

Step 1

Check whether the rewrite module for your apache is enabled. Assuming you have an apache2 installation, you can do this by

ls /etc/apache2/mods-enabled/

If you don’t find rewrite.load, it means that the rewrite module is not enabled. Drupal’s clean URLs feature requires this module to be enabled. If you have a Debian based machine,

sudo a2enmod

Which module would you like to enable?
Your choices are: actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authnz_ldap authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cern_meta cgid cgi charset_lite dav_fs dav dav_lock dbd deflate dir disk_cache dump_io env expires ext_filter file_cache filter headers ident imagemap include info ldap log_forensic mem_cache mime mime_magic negotiation php5 proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http proxy rewrite setenvif speling ssl status suexec unique_id userdir usertrack version vhost_alias
Module name?rewrite
Module rewrite installed; run /etc/init.d/apache2 force-reload to enable.

This can also be done like this (say for a non-Debian based OS):

cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/rewrite.load rewrite.load

There! We have enabled the rewrite module for apache.

Step 2

We have to edit /etc/apache2/sites-available/default. Look out for the following lines.

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny

Change AllowOverride None to AllowOverride All. Save the File.

Step 3

Make sure that the .htaccess file under your Drupal installation folder has the following lines

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>

Step 4

Restart the apache server

sudo /etc/init.d/apache2 restart

Step 5

Go to your Drupal administration page for clean URLs and enable them.

Scimನಮಸ್ಕಾರ வணக்கம் सुस्वागतम्

Recently I got this urge to type in Indian Languages on my comp. And so I came across SCIM and m17n. I use Debian GNU/Linux and the GNOME Desktop Environment. Getting this to work was a cakewalk!

Here are the steps to follow.

  • Open a terminal. And install the following packages.
  • sudo apt-get install m17n-db m17n-lib-bin
    sudo apt-get install scim scim-m17n scim-gtk2-immodule scim-modules-socket scim-modules-table

  • That’s it! You now have everything needed on your computer.
  • Run scim . You’ll notice a keyboard-shaped icon SCIM Keyboard Icon on your GNOME Panel. Right click on this and go to ‘SCIM Setup’. Play around with this. There are lots of interesting features like Keyboard shortcuts which you can configure to make life easier switching languages.
  • Now right click on the area where you are typing and Select SCIM Input method.
  • Once this is done, you can Left Click on the above icon, select your language and start typing!

Mac OS X users could try this. Others, maybe you could try this.

ನಮಸ್ಕಾರ வணக்கம் नमस्कार

There exist all sorts of weird things in computer jargon, cookies, for instance. But how about ultra cool Magic Cookies ? Sounds great right ? But did you know that the term cookies itself is derived from the term Magic Cookies?

Why would have these been christened Magic Cookies? Maybe because they just work! Or perhaps someone was trying to solve some problem, somehow he came up with these, got excited and called them Magic.

How about a situation where magic stops working? Yes, I was caught in such a situation. I am a GNU/Linux user who regularly SSHes into his account on his department server (Yes, with X forwarding) sitting in his room. In down-to-earth words, I login to my department server from my room and I can open Firefox installed in that computer and see it here. This is a very useful feature in a place where the internet generally cups.

This was working perfectly till some time back. Suddenly, this stopped working (Maybe due to a kernel upgrade?). The error:

Xlib: Invalid MIT-MAGIC-COOKIE-1 key
Error: Can’t open display: localhost:10.0

So, I googled and found lots of people having the same trouble. I tried some of the solutions. But none of them worked. One of them was something to do with xauth . I realized I didn’t have this particular package installed. So I installed xauth . And before I did anything with xauth , ssh -X was working perfectly.

Maybe Magic Cookies are magic!