Monday 19 September 2011

എക്സ് ഓർഗ്ഗിലെ പുതിയ ഇൻസ്ക്രിപ്റ്റ് ലേഔട്ട്

An enhanced Inscript keyboard layout is now available as part of xorg package in Debian experimental. It probably has made it way to testing by now. I authored it. I might have submitted it as a patch, but that would have raised the hackles of the "no atomic chillu" brigade, who would have dropped an Atom bomb on me. The enhancements are:- - കൗ; not the other ghoulish old school "au". Unicode anyways recognises both as equivalent. - ‍‍‍ർ, ൾ, ൺ, ൽ, ൻ at places recommended by the Kerala government's Malayalam Keyboard layout committee. Higher level modifiers (altgr, etc) are still a TODO. Waiting for finalisation of the CDAC's proposal on ehnanced qwerty INSCRIPT keyboard layout.

Monday 1 February 2010

Linux Friendly Mobile

Changed handset

This would be 4th mobile phone I have owned. A Nokia 5130.

First was an LG model, now discontinued. The next was a Samsung SGH X 168, about which I wrote here. When that got stolen, I got an SGH X 210, again from Samsung.

Initially, mobile handsets for me, were just phones I would carry around in the pocket. Creating backup of contact lists or SMS'es were not an issue. But with the X160, it did become an issue. When it was stolen, I simply did not have adequate time to research on another handset, I simply walked into the nearest Samsung shop, and asked for SGH X 160. I was told that it was discontinued, and hence went in for the next available set, the X 210. I was hoping for improvements in G|Wammu or gnokii support over time. It never happened.

With passage of time, my contact list was growing, and manually copying the contact list was apain. And installing a copy of windows for having to use the mobile manufacturer's software for a few minutes several months apart was right royal pain in the you know where.

There was no way I am going away from the operating system on my desktop. There was no way I am going to buy a phone which is fully supported on the OS I use. This eliminated several manufacturers.

Research started from the documentation on gnokii, wammu and gammu, the applications which connect to mobile phones on a GNU/Linux system. I use a Debian Sid installation, updated every 3 weeks, my OS was fairly recent and stable. So, nobody could complain that I use an old version of anything. With that back ground, in mind, I started searching for the mobile model.

Step one was to fix my budget - I did not want a low end phone. I would have settled for just a phone, which does nothing else except make and receive calls, but I also travel close to 20 hours a week commuting among various offices and places. And trains are boring nowadays. And reading books was out of qeustion - you cannot even flip a page with somebody poking you in the ribs. I needed a phone with a media player.

Step 2 was A quick search on online shopping sites, which shows that a figure of 4 to 6 K can fetch reasonably good phone with excellent media capabalities. At this price range, all phones had FM radia, bluetooth and camera capablities. Nothing else matter - just a good media player, and capability to make and receive calls (notice the subtle shift in order of preference? hahaha.).

Next step was going through application documentation, and their websites. IT was quite disheartening. Gnokii had virtually no support for anything except Nokia. A cursory look at Wammu site shows that of the 45 manufacturers listed, only LG, Motorola, Nokia, Samsung, Siemens and Sony Ericsson had more than 50 phones listed. And of the phones listed, every manufacturer except Nokia had more unsupported phones than supported phones in the listings. Even among the supported phones, the support was very limited. This meant that the hand set manufacturers do not care for the users' choices and requirements.

The search left a very bitter taste in one's mouth. Both LG and Samsung handsets were very good in terms of build quality and durability. Both the handsets have weathered quite a few "flights" through air - courtesy my two kids. All the previous 3 handsets were little more than scratches when I discarded / lost them.

Additionally, I have invested quite a sum mostly from my small earnings during early days of my career into CDs, and I wanted to listed to the music on the go. So ability to copy files from the PC to the phone was of paramount importance. Standalone media players were very cumbersome - with need to carry along additional chargers and head sets.

Thus, finally, the search narrowed to Nokia 5130. What clinched the deal was the "full support" listing on Wammu site, plus the use of a normal stero jack for the head sets, and use of standard USB jacks for connectivity and bluetooth. This meant that I did not have to run around searching for a "nokia headset" with the appropriate connector to listen to music. I did not have to run around searching for a USB cable if I was forced to use a USB cable. Above all, I did not have to switch operating systems to back up my phone.

Within 15 minutes of reaching home, my phone was loaded with backup of my contact list from the old phone. (The X210 is supported by wammu/gammu in a very limited way).

Finally tried to visit Nokia's music store. That site, however, will not work with any browser except M$ IE. Too bad for them (Nokia). I get my music from elsewhere - no - NOT from the "sharing" sites.

Tuesday 5 January 2010

Flashing BIOS on a Linux Only System

Flashing BIOS for Linux only system

Linux only system and BIOS flashing

Ever faced a need to flash your PC's BIOS?

I was facing this issue ever I got this MSI Neo K8M board 5 years back. The kernel CPU frequency scaling would never work; and the problem was traced to a BIOS bug.

Flashing BIOS was a daunting task for me - first, there was no DOS available. Finding reliable floppies was next to impossible. I once purchased 4 different floppies from 4 different shops in 3 districts, but none would work the second time I inserted them.

And darn'ed Wipro UPS was not very reliable. Worse, it had no cold start feature. Any power cut in between the flash process, and I would be stranded.

I had no choice except to put up with up the inability to use cpufreq and a noisy CPU fan. I slowly realised that there is a good reason why the BIOS option was called "Cool'n'quiet".

That was till I hijacked a thread on FireFox came up in the Goa Linux Users' Yahoo groups. (Ilug-goa at yahoo groups dot com).

Edgar D' Souza was mentioning a Core 2 duo Intel processor running at 800 MHz. And poor me, who was yet to see frequency scaling thought it was a typo.

Somewhere towards end of that thread, Dhaval Giani said:-

 > Update your BIOS then. Laziness is not a good enough excuse to use up
 > extra power!

That was reason enough to work hard. But you can hardly call issuing "apt-cache search bios" from the command line as "work".

That command produced 2 pages of text. The lazy man I am, I decided to do some more hard work. Out comes

apt-cache search bios |grep bios

That yields just 4 lines. 4 very useful lines.

paivakil@home:~$ apt-cache search bios |grep flash
amideco - Decompress flashfiles equipped with an AMI BIOS
awardeco - Decompress flashfiles equipped with an AWARD BIOS
flashrom - Identify, read, write, erase, and verify BIOS/ROM/flash chips
phnxdeco - Decompress flashfiles equipped with a PHOENIX BIOS

about 45 seconds later, "flashrom" is installed. In another 10 seconds, I have gone through the man pages. In next 50, I realise that I have not learnt anything from the man pages. So, I do "flashrom -h", which is far more helpful.

"flashrom - r oldbios.old" dumps a backup of the old bios into file, "oldbios.old". (Never mind about how the BIOS is going to read that file, which sits on an ext4 filesystem, on a SATA drive, in case things go awry.)

The update files were already downloaded from the official MSI site eons ago, so finding them was never a problem. I go ahead and do:-

flashrom -w A7032VMS.370

Couple of seconds later, I am told that the bios is written successfully.

I reboot, and am disappointed that every thing seems to be very familiar, and old options stay that way. That is till I notice that the bios set up utility version has changed.

So, I boot up, upgrade the BIOS another couple of time (I am upgrading from version 3.20 something to 3.50 first.

Each reboot goes smoothly, and finally, version 7.00 of the BIOS is also installed.

In less than 40 minutes, I have flashed the BIOS 4 times!!! In between, I have composed mails to the Goa Linux users' group too.

Things cannot get any easier, right??

Wednesday 28 October 2009

How swatantra is this?



Several years back, when language computing was based on the ISCIIstandard, and Unicode was known only to some developers in the Free Software community, Microsoft had issued a set of specifications for their fonts.

Called the OpenType specifications, (current specifications for Indic languages available here) -. the entire software community - not just the Free Software community -- had to rely on those specifications for guidance for not just the fonts, but also for language encoding.

Those standards issued by Microsoft had a serious little problem - (കാര്യം നിസ്സാരം, പ്രശ്നം ഗുരുതരം, as they say in Malayalam) - they (or rather, the OpenType specifications as available then), were as precise or ambiguous, depending on your point of view, about how the chillus were to be encoded. To be fair, it was not Microsoft's fault - they had simply copied and pasted some paragraphs from the then latest standards from Unicode into the OT specifications.

One reading meant that a consonant + chandrakkala + zwj was to render a chillakshram, or a chillu. The other meant that the chillu was to be formed only with the consonant + chandrakkala sequence. For some reason, the Free software community decided to stick to Microsoft's definition / interpretation of the Unicode standards, about Chillus.

And the publisher of the OpenType specifications, the hallowed Microsoft Corporation, choose to adopt the other interpretation.

But the Free Software community, blissfully unaware of what was happening in the Microsoft world, went on to create a huge pile of software and data (mostly user interface translations, personal web pages and blogs) on a standard which no-body implemented.

When the Chillus were finally encoded, we raised a hue and cry aout "incompatible legacy data".

And not learning from our mistakes, the community of developers for Malayalam Free Software, became probably, the first community in the Free Software world to openly declare "we will not implement a standard".

And here are a couple of reasons why that stand is obstinate and idiotic.
quote from the above link

1. The atomic chillu's are unacceptable because it destroys the link of a chillu with its base character.
Here , the fundamental problem lies in Unicode's way of treating only representational forms without checking linguistic correctness.

The above quotes demonstrate a fundamental [mis|refusal]understanding about the Unicode standards.

The concerns are addressed in the Unicode FAQs - see the Indic FAQ, and for the bigger picture, the the Unicode FAQ index; and here is another.

Here is what a "character" is, according to Unicode - from the glossary.

(1) The smallest component of written language that has semantic value; refers to the abstract meaning and/or shape, rather than a specific shape (see also glyph), though in code tables some form of visual representation is essential for the reader’s understanding.
(2) Synonym for abstract character.
(3) The basic unit of encoding for the Unicode character encoding.
(4) The English name for the ideographic written elements of Chinese origin. [See ideograph (2).

(Emphasis, is mine).

You should read that again. Especially, the "The smallest component of written language that has semantic value" part.

So, when the developer community, which claims to represent the Malayalam population should rethink their stand when they say:-

2. The examples used to justify semantic difference between words only separated by ZWJ are non-existent in dictionary , not in are grammatically wrong or meaningless without proper context.

And finally, the security | spoofing part.

Did anybody in the "Swatantra Malayalam" community at least attempt to read RFC3454 ("stringprep").

If you are bandwidth or time challenged, you can avoid going to the RFC and read the excerpts below.

 5. Prohibited Output

   Before the text can be emitted, it MUST be checked for prohibited
   code points.  There are a variety of prohibited code points, as
   described in this section.  A profile of this document MAY use all or
   some of the tables in appendix C.

   The stringprep process never emits both an error and a string.  If an
   error is detected during the checking for prohibited code points,
   only an error is returned.

   Note that the subsections below describe how the tables in appendix C
   were formed.  They are here for people who want to understand more,
   but they should be ignored by implementors.  Implementations that use
   tables MUST map based on the tables themselves, not based on the
   descriptions in this section of how the tables were created.

   The lists in appendix C MUST be used by implementations of this
   specification.  If there are any discrepancies between the lists in
   appendix C and subsections below, the lists in appendix C always take

   Some code points listed in one section may also appear in other

   It is important to note that a profile of this document MAY prohibit
   additional characters.

Hoffman & Blanchet          Standards Track                    [Page 10]
RFC 3454        Preparation of Internationalized Strings   December 2002

   Each subsection of this section has a matching subsection in appendix
   C.  For example, the characters listed in section 5.1 are listed in
   appendix C.1.

5.1 Space characters

   Space characters can make accurate visual transcription of strings
   nearly impossible and could lead to user entry errors in many ways.
   Note that the list below is split into two tables in appendix C:
   Table C.1.1 contains the ASCII code points, while Table C.1.2
   contains the non-ASCII code points.  Most profiles of this document
   that want to prohibit space characters will want to include both

   0020; SPACE
   2000; EN QUAD
   2001; EM QUAD
   2002; EN SPACE
   2003; EM SPACE
   2009; THIN SPACE

5.2 Control characters

   Control characters (or characters with control function) cannot be
   seen and can cause unpredictable results when displayed.  Note that
   the list below is split into two tables in appendix C: Table C.2.1
   contains the ASCII code points, while Table C.2.2 contains the non-
   ASCII code points.  Most profiles of this document that want to
   prohibit control characters will want to include both tables.

   007F; DELETE

Hoffman & Blanchet          Standards Track                    [Page 11]
RFC 3454        Preparation of Internationalized Strings   December 2002

   2060; WORD JOINER

C.2.2 Non-ASCII control characters

   ----- Start Table C.2.2 -----
   2060; WORD JOINER

In simple words, the above means - no zero width joiners or zero width non-joiners in the address bar of your browser. Or more accurately, browsers are not supposed to send strings / addressesses.

Just for more technical accuracy, here is some more info.

The IDNA RFC 3490. That is the basic documents developers and applicaions should conform to, to enable unicode compliant domain names. The unicode characters are first process through a "toASCII" filter, which entails checking to ensure that the string conforms to requirements of RFC 3454 (nameprep) .

So, the question of spoofing does not arise; unless applications do not conform to the IDNA standards (and there are plenty of them out there - see here for conforming applications). In case of applications which do nto conform to standards, it is within our power to uninstall that application (in case of proprietary software), or file bugs / fix them.

If you are a Malayalam developer, and if the RFCs above do not convince you that spoofing is not possible with chillus, I have just one thing to tell you =- stop pretending to represent the Malayalam Free Software Community.

I know that I sound rude, but there is no choice left for me.

And look at the danger we are heading into. The latest version has specifiecd that we should the chillu na for the /nta/ stacked conjunct. However dunderheaded that specification may be, the specification is a specification, which means that it is a specification. In other words, it is a specification. and because it is a specification, we are obliged to implement it.

The danger is the stacked /nta/ requires the atomic chillu. Not the "canonical equivalent" one. True, it going to introduce plenty of ambiguities and legacy data problems, but that is the pain Microsoft is. The user community does not want another strawman based pain from the Free Software world which says "we will not implement that standards".

Sunday 8 February 2009

A Phishing Mail From London

The new phishing spam

I received the following phishing attempt in mail today morning. It was too funny that I could not help posting it here.

Was looking for Nigerian origins, but strangely, looks like from China / Taiwan. I have added a wee bit of markup since this looks strange in blogspot's rendering.

From metropol.investigation ( at ) Sat Feb 07 23:52:42 2009
Envelope-to: paivakil ( at )localhost
Delivery-date: Sat, 07 Feb 2009 23:52:42 +0530
Received: from localhost ([] helo=home.amd)
by home.amd with esmtp (Exim 4.69)
(envelope-from )
id 1LVrp8-0001YW-NB
for paivakil ( at )localhost; Sat, 07 Feb 2009 23:52:40 +0530
X-Apparently-To: paivakil ( at ) via; Sat, 07 Feb 2009 21:46:22 +0530
X-YMailISG: 7KQ9HBAWLDu6R1F4irIwJm5qIQiIU6P6S2AX31Uv9G2bYZVffjR.c9lIhvyLmVKqwPpLYa0fp.mK8UxJiekEjJuiSh7IT.JMzwGjYos0gjwf1.5tK3HgWcTvaeJdvGgjwKO0bIC8qLIyDXY3rC8SBzT7wNaEB1BvJEzAf2nO3CwLxbRxuQBYlJzn3gvWbfzsKUcTlXipAHULWETGLGe_yNo5IxtXwMVkguKUPCDgNx9q
X-Originating-IP: []
Authentication-Results:; domainkeys=neutral (no sig);; dkim=neutral (no sig)
Received: from []
by home.amd with POP3 (fetchmail-6.3.9-rc2)
for (single-drop); Sat, 07 Feb 2009 23:52:38 +0530 (IST)
Received: from (EHLO (
by with SMTP; Sat, 07 Feb 2009 21:46:21 +0530
Received: by (Postfix, from userid 401)
id 52057701FF; Sun, 8 Feb 2009 00:16:18 +0800 (CST)
Received: from User (unknown [])
by (Postfix) with ESMTP
id 0CA8A701FC; Sun, 8 Feb 2009 00:14:29 +0800 (CST)
From: "Metropolitan Police Service"
Subject: Your payment overview
Date: Sat, 7 Feb 2009 17:16:00 +0100
MIME-Version: 1.0
Content-Type: text/plain;
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
Message-Id: <20090207161429.0CA8A701FC ( at )>
To: undisclosed-recipients: ;
X-Virus-Status: No (Scaned by Clam Antivirus)
Status: RO
Content-Length: 2766
Lines: 41
Wellington House 67-73 Buckingham Gate
London SW1E 6BE
Attention: Beneficiary,
Dated: 7th/FEB/2009
We wish to inform you that it has come to our notice through our online security service that a huge amount of United States Dollars was scheduled to be remitted into your bank account a few months ago.
According to the report we received from the paying bank here in London, it states expressly that you have been dealing with the wrong people who have used several fake documents to obtain money from you for payment of charges/fees which we consider to be obnoxious.
We have been mandated to step into your transaction and put a STOP ORDER pending until you revert to us for clarification why your money is been delayed more than is necessary. You are hereby advised to stop further communications with your partners in Africa and Europe and co-operate with us to assist you get your payment in record time.
The government of the United Kingdom will not hesitate to bring you to book if you ignore this notice as your payment is causing so much embarrassment to our government and global financial Institutions who repose so much trust in the British banking sector for competence and accountability.
We have resolved with the internal Minister that your money should be paid to you through an Interswitch ATM Card (Automatic Teller Machine) You will only be allowed to withdraw $50,000 per day. The ATM will be loaded with $10,000,000.00 (Ten Million United States Dollars Only. This is inline with the international monetary regulations that not more than $10M should be loaded in an ATM Card. The PIN (Personal Identification Number) would be sent to you alone to your private email box for security reasons.
In view of the foregoing, you are expected to send us your mailing address where you wish the ATM card to me mailed to you by a UK Courier Company. You must also send us proof of ownership of the said fund before we can be able to process your ATM Card. This is for security reasons as there are many fraudsters on the internet.
We look forward to hearing from you at your earliest convenience.
My direct telephone number is:+44 70457 17275
Direct fax:+44 8709 743597 We are glad to be of services to you.
Yours faithfully,
Inspector Donald Boldman
Metropolitan Police Service
London, England.
CC: British Home Office Logistics Department
CC: United States Financial Action Task Force (FATF)

I am sure that the apammers are going to pick up this post, and goung to send out more mails apparently originating from paivakil.

Saturday 11 October 2008

Mousilla, tuxpaint and verse

Linux @ Kerala Schools - an impromptu survey

One fine day, a couple of weeks back, I am visiting one of the villages on the Kerala - Tamil Nadu border, as a part of my job, (which is not even remotely connected with IT, BTW).

As is normal in most Indian villages, the village kids surround me, like flies around a lump of sugar. I continue doing my job.

Towards the end of the day, I find a few minutes to make eye contact with them; they are embarrassed.

"What do you do", I ask them. ("Which class are you studying" is what you ask, normally, but that often gives me misleading information - the kid will mumble some thing like "8th standard", while he actually working at some local tea shop for Rs. 8/- a day.

"8th, 9th, 10th" goes the chorus. They are very uncomfortable. "This saar is making seniors of the village uncomfortable, but why is he trying to talk to us?" is what might have crossed their minds.

"Ah. So you learn computers too??" The saar asks. The saar's full attention is now on them.

"Yes"; they say with a sense of pride.

"What do you learn on computers?" asks the saar. Finding some uncomfortable shiftiness, the saar adds helpfully - "games?"

The smile, and silence is self-explanatory. And then one of them nudges the other, and says, "verse".

"Huh?? What is 'verse"?" asks the saar. And then the bulb glows in the saar's head. "You mean 'word'?"

"No" is what their faces say.

Now, the saar is getting a faint idea of the things.

"The school computers run Linux?" asks the saar.

"Where have we heard of linux" is the look on the kid's face.

The saar now looks at the "verse" kid, and asks - "OpenOffice??"

All the kids brighten up, and nod in unison.

"Do they allow you to use the internet?" I ask. They nod. "What do you use to get on the internet?"


The saar is now amused, and the kids sense that the saar is happy for some reason. "What else do you do on the computer", I ask.

"TuxPaint", they say. They realise that limit of their knowledge is close by.

"So the computers run Linux"? I repeat.

The faces are blank. "Windows?, Ubuntu? Debian? RedHat?" I ask. The kids are frightened. They run away.

Last modified: Sat Oct 11 12:44:09 IST 2008

Sunday 4 May 2008

Returning from hard disk disaster

Rescuing from near disaster

Posting in hope that the experience may help somebody else.

It is night of 3rd May, around 10 PM. I am just back from a 250 KM journey on a crowded train. Am carrying loads (literally) of INR as part of official duties and am on edge of my nerves. Have to travel total of 1500 KM starting tomorrow, distributing the INR. (sorry, you need to be 60+ to get them)

At home, sister takes me straight to the computer and shows me the dreaded "boot disk failure" message. uh. oh.

I hit the reset key, and now get a grub boot disk error. Darn. I reboot, Go into bios set up, notice that the 2 hard disks are detected. So reboot. Within a couple of milli seconds after ide drives are detected (by the kernel), it is hell on the screen. D***N.

Hit reboot again. Wonder fo wonders, I get too boot screen, and the system boots up normally. Now I know that (a) something is wrong with the disk at primary master - /dev/hda. (b) if I reboot, I may not have a running system. Panic bells start to ring. I feel fire down my neck as biwi and 2 year kid are screaming silently at me. But I need the system - some acccounts info is there on /dev/hdc. Biwi cools off when I tell her that her IT papers are there and may be lost for ever if I get up without fixing the system NOW.

The problem - a failed/failing /dev/hda. Thankfully, only /boot is what is required on that. Most other info is mere data, which I think has been backed up. (Hmmm... not so sure, but was was more important is having a working system).

I need to have a useful /boot on /dev/hdc. A tired body. stressed mind and high bp does not help.

Fire up irssi. Ask for help in a couple of channels, and end up helping others. No help in sight from others. It is 11.30 pm. Voltage in the power system goes up, and the tubelights start burning. (lol).

I edit /etc/fstab and comment out the entry for /boot. Re-install grub on /dev/hdc. Run update-grub to create /boot/grub/menu.lst. Look at /boot shows that there is no kernel image or initrd image. Searches /var/apt/archives to find linux-image-2.6.24-1-686_2.6.24-5_i386.deb. Installs it. run update-grub to put in the required entries.

Hold breath, pray and say "sudo init 6".

Go into bios, and tell the bios to boot from the the other hard disk. Continue booting. Problem solved. Everything works fine.

What would have been the situation if it was the "other" OS? I would have spent more than couple of days reinstalling the OS, then all the applications, configuring them, setting up the security, and all that. Data recovery may still be a problem with both OSes.

Creep into the bed room, and kid is sleeping. Biwi gives a cold glare, turns around and sleeps. Hooo!!!!!