Author Archive for Praveen A

Efforts to sabaotage FOSS Meet discussions

Someone is not feeling good about FOSS Meet and its success. Yesterday we were not at all prepared for this kind of an attack in our irc meeting. But we managed to contain the attack by kicking out all the offenders and changing the channel to invite only.

At first look it looks like the regular irc take over attempts, but if you look at their nick names like thankappan and thangamma there is not a doubt left that hands of some mallus are at work. I don’t know if they are from NIT Campus itself or some other mallu online gang.

Remember this is the second time, there were attempts to vandalize the forums as well. If they dare to come to the event and do these kind of stuffs, the response would be different. These are cowards and let us not be bothered with these gimmicks.

If would like to see the irc logs, it is shared in the mailing list archive.

Update: Mailing list archive is public now. Visit thread with irc logs.

Unicode or Malayalam?

When Unicode Consortium decided Malayalam ‘nta’ will no more be ‘na chandrakkala rra’ but ‘chillu na chandrakala rra’ from Unicode 5.1, a thought occured to me, “Unicode Consortium used to encode Malayalam and now whatever Unicode Consortium decides to encode becomes Malayalam in the digital world!”

This post is attempt to summarise my experiences with the Unicode encoding process, mainly based on my participation in the Indic Unicode mailing list discussions relating to Malayalam encoding issues. (If you are a participating member or have direct access to participating members and happens to see this post, you may correct any mistakes by commenting below.)

Free/Open Standard definition ( http://www.fsfe.org/projects/os/def.en.html )

An Open Standard refers to a format or protocol that is

1. subject to full public assessment and use without constraints in a manner equally available to all parties;
2. without any components or extensions that have dependencies on formats or protocols that do not meet the definition of an Open Standard themselves;
3. free from legal or technical clauses that limit its utilisation by any party or in any business model;
4. managed and further developed independently of any single vendor in a process open to the equal participation of competitors and third parties;
5. available in multiple complete implementations by competing vendors, or as a complete implementation equally available to all parties.

What is Unicode? Unicode promise. Unicode process.

Unicode Consortium maintains the Unicode character encoding standard (Every character in the world is given a unique number). Its members include technology companies like Microsoft, Google, Adobe … Ministry of Information Technology and Tamil Nadu government are the only two members from India.

Unicode Consortium promises to enable people around the world to use computers in their language. Unicode publishes a character set/table which contains all the characters of supported languages of the world and locale data specific to each language. Locale specific data includes details of local currency, time format, day of the week…

Unicode Consortium has different types of members including individuals and organizations. Individuals does not have voting rights. Different levels of memberships and privileges associated with each level is explained in http://www.unicode.org/consortium/levels.html

Why it is not a Free/Open Standard? Prohibitive costs for participation.

It fails to qualify the second part of the fourth point in the Open Standards definition ie, “managed in a process open to the equal participation of competitors and third parties”. Though this is arguably a week point as it is generally agreed to be costly and people without money or power are generally not expected to participate. Full membership costs 15,000 USD ie, around 7 lakh INR. (If you don’t have that much money* you can be half member with half votes for only 7,500 USD!). Individuals and students get a lower rate of 150 USD and 50 USD respectively, but they cannot vote.

In addition to failing the Open Standards criteria, its basic premise of encoding the representational forms fails to address the logic of conjunct formation inherent to many languages including most Indian languages.

Some issues that came up in the recent past which encouraged me to look at the whole process in more basic terms.

1. Lifetime of data

One important characteristics of a digital standard is being able to interact (read/write) with the data at any point in its lifetime. What use does a digital standard serve if it cannot handle the data created now in years from now?

When the issue of giving separate code points to Malayalam chillu characters were discussed, questions about handling existing data encoded in current standard was raised. Unicode did not respond to this concern, there were comments floating around in the indic Unicode discussion email list. The suggestion was to convert data to new encoding like they did for Myanmar.

“Myanmar is document[ed] as an exceptional case. If more languages like Malayalam, Sinhala, Hindi, Marathi etc later be added to this exception list, it is better to amend the Stability policy and declare any sequence or codepoint may be deprecated at any time if any bureaucratic request is made and the committee becomes “convinced”.

Can the committee members be held responsible for any damages made by encoding Chillus atomically ? ”

Ralminov Rosnovski on 08th August 2007 (Indic list)

The responsibility of being able to decode data at a later time is bounced to special ability of applications. A serious loss of credibility for the standard.

2. Backward compatibility/Stability Policy

UTC promises to keep its standard backward compatible with earlier versions. Now it has broken that promise by encoding chillus in a different way without providing canonical equivalence or specifying any kind of directives regarding the existing encoding.

“In each new version of the Unicode Standard, the Unicode Consortium may add characters or make certain changes to characters that were encoded in a previous version of the standard. However, the Consortium imposes limitations on the types of changes that can be made, in an effort to minimize the impact on existing implementations. ”

Unicode Character Encoding Stability Policy ( http://unicode.org/policies/stability_policy.html )

3. Dual/multiple encoding

The role of an encoding standard is to uniquely represent a character (Unicode had decided earlier to encode only basic characters) The logic of the language decides encoding of conjuncts and other derived forms. Earlier proposal suggested using zero width joiner to represent chillu form of a consonant (or pure consonant). Now both forms of representing chillu characters can be used to encode them. In case of conjunct ‘nta’ two forms already exist, ie ‘na chandrakala rra’ based on conjunct formation logic of Malayalam and ‘chillu na chandrakkala rra’ in Unicode 5.1 standard. These two sequences are differentiated as ‘Malayalam nta’ and ‘Microsoft nta’ (The story behind this illogical encoding is explained later). Now more sequences are coming when both base consonants of nta gets new characters from grantha lipi. A total of 5 encodings for nta will be possible.

4. Selective addressing of same issues

ZWJ and ZWNJ** share the same issue of zero collision weight. Even after the encoding of atomic chillus some words still has to use ZWNJ. Different base characters forming same graphical representation (ra/rra chillu) was mentioned as another reason for encoding chillus atomically. But the same issue is present for pre-base form of these characters too.

So it appears the only interest is encoding chillus atomically rather than solving the underlying issues.

5. Integrity of standardization process

A standardization body like UTC or ISO earns respect and trust based on the integrity of the process. After Microsoft was able to push OOXML through ISO resorting to all kind of underground tactics, ISO cannot expect to receive the same kind of respect and trust from users of their standards. Some of the recent decisions made by UTC (Microsoft nta for example) have contributed to this erosion of trust in standardization bodies.

6. Secretive and privileged decision making process

“The atomic Chillus were accepted because Canadian representative Umamaheswaran was satisfied and showed the rest of us that there were minimal pairs that couldn’t be resolved without them.”

Michael Everson, Evertype on 3rd Aug 2007 (Indic list)

Face to face access to the members were the only criteria for arriving at a decision.

7. No consideration for logic of the language

‘nta’ was encoded to be compatible with Microsoft’s Karthika font which did not recognise the logical sequence of ‘na chandrakala rra’. Instead it was encoded as ‘chillu na chandrakala rra’ forgetting the very function of a chillu character, which is to prevent forming conjucts when a sequence would otherwise form a conjunct.

8. Language experts are not included in the process

The recommendations of language experts were not even read by the decision makers and personal access to the members were the single criteria for encoding atomic chillus.

“I noticed the timing of such letters by the sender(s) .. always sent a couple of days prior to an important meeting and the delegates are traveling; there is iffy internet connections to one’s own email beihind some firewall … and thereby no way to consider these email messages prior to that meeting !!”

Umamaheswaran, IBM Toronto Lab on 08th August 2007 (Indic list)

At least the honesty in admitting the fact that they did not have time to consider expert opinions is to be appreciated.

9. Proprietary business interests overrides language logic and expert opinions

Even though a proposed change has far reaching consequences, there is no responsibility on the part of the proposer to respond to concerns.

“You’re asking supporters to make their case. Note, though, that with the characters included in the ballot, theirs becomes the default position: they don’t need to answer these questions to achieve their goal unless they have reason to believe that ISO member national bodies will be voting against the ballot with comments that these characters need to be removed from the ballot.
At this point, for better or worse, I suspect it is highly unlikely that national bodies will ask for these to be removed from the ballot.”

Peter Constable, Microsoft on 3rd Aug 2007 (Indic list)

10. UTC is there to serve the interest of a handful of proprietary companies

Microsoft’s Karthika font did not form a conjust with ‘na chandrakala rra’ so named sequence for nta is specified as ‘chillu n chandrakala rra’. This is like cutting your leg to fit the shoe.

This the case with closely monitored language like Malayalam. We can only imagine how other languages are affected. Encoding Dravidian zha in Devanagari is one case that comes to mind.

So how do we move forward? Time for making some difficult choices.

Unicode or Malayalam?

* You are eligible for this offer only if you have less than 500 employees.
** Zero Width Joiner (ZWJ) and Zero Width Non Joiner (ZWNJ) are Unicode special characters used in Malayalam. (It is also used by many other languages like Sinhala and Persian.)

PS: There is not a single Malayalam font that I know which is Unicode 5.1 compliant.

Now Malayalam keyboard in Android

Continuing with my Android hacks, I now can input unicode Malayalam on my T Mobile G1 phone !!

Typed using Malayalam layout

Typed using Malayalam layout

I have to say thanks to excellent work done by ‘worry’ at xda-developers forum. It took the whole day to download android sources (my hotel internet connection kept failing to resolv android.git.kernel.org after some time, finally added the ip address to /etc/hosts to solve it), and a while to find the correct keymap file to overwrite.

Update: Malayalam displayed with Suruma and Meera fonts.

text displayed with suruma

text displayed with meera

Step 1: Follow this instructions to download android source code.

Step2: Edit development/emulator/keymaps/qwerty.kcm with the desired layout [ download Malayalam layout here ] [Update: 21/Aug/2009 Some bugs fixed]

Step 3: Compile android sources with ‘make’ command [ download the binary file here ]

Step 4: Take backup of your existing keyboard layout
adb pull /system/usr/keychars/trout-keypad-v3_us.kcm.bin out/target/product/generic/system/usr/keychars/trout-keypad-v3_us.kcm.bin

Step 5: Push modified keymap file to the device or emulator
adb push out/target/product/generic/system/usr/keychars/qwerty.kcm.bin /system/usr/keychars/trout-keypad-v3.kcm.bin

When done with typing, push the original keymap back. I know it isn’t pretty, ‘worry’ has an app to do this automatically, I will have to find out how it is done.

Now on to the tougher task, complex rendering support.

Malayalam support on Android. One step at a time.

Malayalam wikipedia displayed with Meera font on Android

Malayalam wikipedia displayed with Meera font on Android

This post by Kaippally inspired me to start working on Malayalam support on Android phones. I was a bit hesitant to jailbreak my T Mobile G1 phone because EFF advised me that this could be used against me in court, if if goes to that (See my petition to Free Your Phone). But after seeing the above post I wanted to have a stab at getting Malayalam support. When Nishan came to my house last Saturday, we sat down and followed instructions to jailbreak G1 and got root access.

Since Android does not have a font picker, we over wrote DroidSans.ttf in /system/fonts with Meera_04.ttf. Though at first it was showing Chinese characters, a reboot displayed Malayalam wikipedia, though without complex rendering support (ie, no conjuncts). Now I can read Malayalam websites, emails and other text in my G1 phone.

Chinese characters showing up in place of Malayalam

I know this is not perfect, but this is most important step in bringing the complete Malayalam support to android. Next steps are

* Get Malayalm keyboard layout working
* Add support for complex rendering
* Translate the user interface

If you are excited to see Malayalam support on Android and want to help out, get in touch with us at smc.org.in

Use your G1 as internet connection for your laptop aka tethering

Some failed attempts earlier to use my T Mobile G1 android phone as internet connection for my laptop did not stop me from succeeding this time. It is fairly complicated but if you have not other choice to get an internet connection, then you can follow this. You will need a USB data cable for this setup.

Follow the instrustions at http://graha.ms/androidproxy Thanks to Graham Stewart for discovering this very useful trick and developing tools to use this.

(copying here for easy reference with my notes added)

Installation

This shouldn’t damage your phone, but if it does, it’s your own fault!

* Install the app on your android phone, by clicking here (from your phone browser of course)
You might have to change your settings to permit apps that don’t come from the Google Market by going to your home screen and choosing MENU > Settings > Applications > Unknown Sources.
* Turn USB debugging on on your phone
On your G1 go to the home screen, press MENU > Settings > Applications > Development, then enable USB debugging.
* Follow the instructions here to install the Android driver – you’ll need to do this on Windows & Linux but apparently not on the Mac.
Note: You can actually skip the udev rules step, I did not need this, but your milage may vary.
* Download and install the Android SDK for your computer platform. Alternatively if you are on Windows and don’t want a 100 meg download, just get the ADB utility from here
* Plug your phone into your computer

Using the Socks Proxy

The SOCKS proxy will let you connect things like firefox to the internet

* Choose Tetherbot from your phone’s menu
* Press the “Start Socks” button on your phone
* Move to the directory that has the adb utility, using inside the Sdk Tools folder and run

Windows: adb forward tcp:1080 tcp:1080
Linux/Mac: ./adb forward tcp:1080 tcp:1080

* Now you should have a socks proxy running on port 1080 that you can use to configure firefox
* Set your firefox proxy : Options > Advanced > Network > Manual Proxy Configuration

Socks Proxy: localhost
Port: 1080

Leave the others blank
* Remember to disable your proxy settings in firefox if you want to stop using your phone.

Earlier I was stuck at adb refusing to recognise my phone. Today also I had the same problem with my Debian GNU/Linux sid on 2.6.30. I decided to try my luck with Mandriva and adb correctly listed the device (I still has to figure out why it did not work with Debian).

Though we got this far and got the socks proxy setup, most of the software does not support DNS resolution via socks (I could only find curl with this option via -socks5-hostname). So I resolved the ip address of my company web access on my phone (nslookup on terminal application) and used that gateway to connect to the internet.

It would be good to have a DNS resolution via proxy method (something similar to proxyfier on Windows and MACs) and support for this in all applications.

Update: Firefox allow with an advanced configuration option. Type about:config in address bar, filter proxy and trun on

network.proxy.socks_remote_dns

It is disappointing to see all tethering apps removed from the Market (Google T Mobile following Apple AT & T model), but you could always install it directly from author’s website without going through market. Probably it is time to create a Bazzar without restrictions.

Arundhati Roy for Release of Dr Binayak Sen

Free Dr Binayak Sen

Free Dr Binayak Sen

Tomorrow is World Health Day. Dr Binayak Sen spent the best part of his life working among the poorest people in India, who live far away from the government’s attentions, with no access to clinics, hospitals, doctors or medicines. He has saved thousands from certain death from malaria, diarrhea, and other easily treatable illnesses. And yet, he is the one in jail, while those who boast openly about mass murder are free to go about their business, and even stand for elections.

What does this say about us? About who we are and where we’re going?

Arundhati Roy

Full Press Statement

FOSS Meet @ NITC 2009 is here

Fifth edition of the FOSS Meet @ NITC is getting ready. Its just a week away – Feb 27th to March 1st.

Register today!

Using ntfs partitions from GNU/Linux

There was some discussions in fsug-tvm list about handling ntfs partitions in GNU/Linux. I thought I will summarise the steps here.

ntfs is a minefield of Microsoft patents and linux support has been very carefull and write support came only recently. Now mainline kernel has ntfs module (not sure if write support is still experimental), but most people are using ntfs-3g userspace program based on fuse.

Step 1:

Find out the device name of the partition

pravi@parimbrath:~$ sudo fdisk -l

Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0adb0ada                     

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        5195    41728806    7  HPFS/NTFS
/dev/sda2            5196        6411     9767520    7  HPFS/NTFS
/dev/sda3            6412        9729    26651835    5  Extended
/dev/sda5            6412        6423       96358+  83  Linux
/dev/sda6            6424        9729    26555413+  8e  Linux LVM

We are interested in /dev/sda1 here.

Step 2:
Find out ownership and group information of the device

pravi@parimbrath:~$ ls -l /dev/sda1
brw-rw---- 1 root disk 8, 1 2009-02-20 04:04 /dev/sda1

We know the device has write access for root and members of disk group.

Step3:
Add any user who need access to this partition to disk group.

sudo usermod -aG disk pravi

Now user pravi has write access to the device through membership in the disk group. Alternately, you may change the ownership and group of the device also, but I prefer the former.

(you will need to logout and login to take the group membership to take effect)

Step4:
Add the entry to /etc/fstab

/dev/sda1  /windows  ntfs-3g defaults,users,uid=pravi       0       0

Thats all! You may need to install ntfs-3g package if it is not installed already.

Then they came to us…

First they killed Dalits. Then we said; “They deserve to be killed” We also adopted the same hindu brahminical strategies in our elite spheres to ward off dalits – (we still practice it proudly)

Then they came to Muslims and killed them one by one. We also kept quite as we belived that muslims are “terrorists”

Again they started killing Christians. We said; “Conversion is anti-national” and keep quite as usual.

Then they came to us. To our world. They brutally attacked our kids who were enjoying in the pubs- the world created by us for them. We cried. Our elite kids cried. But no one was there to rescue us and our kids.

Source: A posting by Ranju Radha in greenyouth discussion list.

Join the battle to Free Your Phone

I have just submitted my comments to “Exemption to Prohibition on Circumvention of Copyright Protection Systems for Access Control Technologies” that US Copyright office is seeking. My comments are in supports to class “5A Fred von Lohmann, Jennifer S. Granick, Electronic Frontier Foundation”.

My full comment is provided below

Commenter’s Name:
Praveen Arimbrathodiyil

Proposed Class:
5A – Fred von Lohmann, Jennifer S. Granick, Electronic Frontier Foundation.

Proposed Class Description:
Proposed Class #1: Computer programs that enable wireless telephone handsets to execute lawfully obtained software applications, where circumvention is accomplished for the sole purpose of enabling interoperability of such applications with computer programs on the telephone handset

Summary of Argument:
T Mobile G1 block against uploading fonts prevents customers from uploading fonts and using applications in the language of their choice.

Argument:
On December 15, 2008, I purchased my T Mobile G1 phone from a store. None of the applications (including the most commonly used Email client and Web Browser software) in T Mobile G1 have the option to select the font in my native language – Malayalam (It is not only true for Malayalam, but for many of the languages). Consequently, I cannot view emails, web pages, any other document or engage in written communications in the language of my choice.

I searched the internet for a way to correct my problem. The only way to solve my problem is to upload a font that supports my native language and replace the default font provided in T Mobile G1. The T Mobile G1 does not allow me to upload a different font.

If I could jailbreak my T Mobile G1, I could get root access to my phone and upload a font that supports my language. I have not taken this step because I am concerned with the DMCA and the possible legal implications of taking this action.

The comment that EFF has provided which I’m supporting is given below

[Proposed class or classes of copyrighted work(s) to be exempted]= Proposed Class #1: Computer programs that enable wireless telephone handsets to execute lawfully obtained software applications, where circumvention is accomplished for the sole purpose of enabling interoperability of such applications with computer programs on the telephone handset.

Proposed Class #2: Audiovisual works released on DVD, where circumvention is undertaken solely for the purpose of extracting clips for inclusion in noncommercial videos that do not infringe copyright.

[Brief summary of the argument(s) in support of the exemption proposed above]= Cellular phones are increasingly sophisticated computing devices, capable of running applications from a variety of software vendors. Several mobile phone providers, however, have deployed technical measures that prevent subscribers from installing applications from vendors of their choice, instead forcing customers to purchase their
applications only from the providers’ preferred sources. There is no copyright-related rationale for preventing iPhone owners from decrypting and modifying the device’s firmware in order to enable their phones to interoperate with applications lawfully obtained from a source of their own choosing.

The vast majority of amateur remix video creators rely on DVD rippers to obtain the DVD clips they need. These creators thus risk civil liability based on their circumvention of CSS, even where their videos would otherwise be adjudicated to be noninfringing fair uses. This risk of circumvention liability also chills the ability of remix video creators to resist unfounded DMCA “takedown notices” that impair their ability to share remix
videos on the Internet. An exemption to § 1201(a)(1) is necessary if these remix video creators are to have a meaningful opportunity to engage in noninfringing creativity without unintentionally transgressing the prohibitions of § 1201(a)(1).

The deadline for submission is February 2, please submit your comments before that. The URL to submit your comments is http://www.copyright.gov/1201/comment-forms/.

For more information about Free Your Phone Campaign see http://www.freeyourphone.org/