Reaching out to others! Free & Open Source Software, Kannada, L10n, L18n Data Science, Cloud Computing & more…

Technology for Conserving Language: Presented at Kannada Sahitya Sammelana

81th Akhila Bharata Kannada Sahitya Sammelana (Jan 31st – 3rd Feb) happening here in Shravana Belagola, Hasana District, Karnataka. I was fortunate to have got invited to talk about Information technology for Language chaired by Dr. Chidananda Gowda. Dr. U.B Pavanaja and Ram Prakash H from Tachyon Technologies (Quillpad) presented on Kannada Wikipedia and Kannada OCR respectively.

In-spite of unavailability of technology solutions such as projector, internet connectivity etc., I could say we did our best to explain how technology can make difference to the way we look at language and how we can work together to save from reaching extinction.

Here are my slides in which I have tried to explain challenges of Kannada Language survival and solutions explored, invented and developed by few of us. First few slides talk about the carvings found in our ancient sculptures and how Kannada Computing Expert Shri K.P Rao’s Kadamba & Chalukya Fonts helping us to be able to continue researching on these. His work around ‘Apara‘ font which helps the non-kannadiga’s or those who cannot read Kannada scripts to read Kannada in their own language was also an highlight.

Inaccessible sources of data, government websites, libraries and physical status of many archives across country were the source of inspiration to think of mirroring our literary treasure on Internet. Kannada Sanchaya projects such as Vachana Sanchaya, Samooha Sanchaya, Pustaka Sanchaya and others were highlighted to showcase why we need to ensure that the literature should be made available in internet using Unicode and other standards to enable the researchers, students and also common people to experience and continue researching on it forever.

I spoke about the support we got from FOSS (Free and Open Source Software) and Free Culture which made the work around Kannada Sanchaya, Wikipedia etc. possible. I also recalled how FOSS helped us make digital libraries reachable/usable to common man. Samooha sanchaya had just done over a week to complete its first milestone of having transliterated 2252 books and the same books can be searched at directly in Kannada. “Fuel Project‘ (FUEL – Frequently used entries for localization) which helps us get the community consensus to standardize the localization efforts for language was mentioned how FOSS communities can set standards and also ensure the language projects can take the best out of the resources.

Mobile solutions built by many Kannada IT professionals, Google Transliteration and Guesture search app capability of identifying Kannada on Android, Mozilla Firefox browser and Firefox OS phone were also the highlights of my talk to help understand where we stand today with mobile technology. Also the work that needs more attention here on.

My talk ended with a highlight on the Open Knowledge initiatives, Wikipedia Contributions, Books re-licensed under creative commons by Government of Karnataka’s Cultural department, Niranrajan’s works by Tejaswini Niranjana, and Mysore University etc.

Kannada should never be on endangered language list and It is possible for us to enrich the language for next generation through knowledge sharing, collaboration and by motivating each other by acting responsibly.

Here are my slides in Kannada. Hope I have tried my best to summarize the entire talk in English for my other friends who can’t read and understand Kannada. I shall make my talk transcript available online shortly.

Thank you,

Vmware Workstation 10.x patch for Linux kernel 3.13

Vmware Workstation breaks if you try using upcoming Linux kernel release’s and at the same time, VMWare community moves fast to push a quick patches to applied for those who dare to use cutting edge beta OS on their machines.

WoodyZ on provides a patch which just works for Linux Kernel 3.13.

Here is the patch provided from WoodyZ for your quick reference.

Apply the patch to /usr/lib/vmware/modules/source/vmnet.tar (Extract, apply the patch using patch command, compress the files back to vmnet.tar) and run vmware workstation again.


--- vmnet-only/filter.c 2013-10-18 15:11:55.000000000 -0400
+++ vmnet-only/filter.c 2013-12-21 20:15:15.000000000 -0500
@@ -27,6 +27,7 @@
#include "compat_module.h"
#include <linux/mutex.h> #include <linux/netdevice.h> +#include <linux/version.h> #if COMPAT_LINUX_VERSION_CHECK_LT(3, 2, 0)
# include <linux/module.h> #else
@@ -203,7 +204,11 @@

static unsigned int
VNetFilterHookFn(unsigned int hooknum, // IN:
+VNetFilterHookFn(const struct nf_hook_ops *ops, // IN:
struct sk_buff *skb, // IN:
@@ -252,7 +257,12 @@

/* When the host transmits, hooknum is VMW_NF_INET_POST_ROUTING. */
/* When the host receives, hooknum is VMW_NF_INET_LOCAL_IN. */
- transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
+ transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
+ transmit = (ops-&gt;hooknum == VMW_NF_INET_POST_ROUTING);

packetHeader = compat_skb_network_header(skb);
ip = (struct iphdr*)packetHeader;

RAID1 – Boot from second drive after disk failure

RAID1 Drives allow you to have a redundant solution to bring back system with a mirrored drive during disk failures.

Let us look at a disk failure in one of the linux machines.


cat /proc/mdstat

This will show the current raid statistics as as follows:

server1:~# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb3[1]
4594496 blocks [2/1] [_U]

md1 : active raid1 sdb2[1]
497920 blocks [2/1] [_U]

md0 : active raid1 sdb1[1]
144448 blocks [2/1] [_U]

unused devices:

The current output shows that the primary drive has gone bad (Observe [_U]).

You can further investigate this using mdadm command as follows:

# mdadm --detail /dev/md0

# mdadm -D /dev/md0

The output would confirm the drive which has gone bad.

If your server is unstable, you might think of removing the bad drive and boot it back temporarily from the second drive in place. For this you should ensure that the grub is installed on the second drive as well so that it boots without any trouble. It is a best practice to install the grub on both drives after configuring RAID1. If it is not done, Not an issue, its not too late to configure that before rebooting the machine for disk removal. Even otherwise through rescue mode grub can be installed easily.

To install grub when you’re on working server:

With (Grub v1.x), Goto grub prompt
Find existing grub setups using find command
grub>> find /grub/stage1
If you have any you will find
root (hd0,0)
otherwise you will have to continue with the grub setup as follows,
grub>> root(hd0,0)
grub>> setup(hd0)
grub>> root(hd1,0)
grub>> setup(hd1)

The above lines setup grub on MBR of both the drives. Depending on the drives currently available on the machine/status of your raid you can follow the above instrutions to recover the GRUB while troubleshooting RAID1 setup’s.

If you’re on (Grub v2.x) grub-install /dev/sdX (PS: X in /dev/sdX is drive letter. eg: if you want to install grub on first drive ie sda, then change X with a) command should do all the work.

Once you have the grub installed on drive, you can remove the bad drive from the RAID array using mdadm commands.

In our case (from the initial mdstats output), we should mark bad drive as fail and remove it from the RAID array as follows:
mdadm --manage /dev/md0 --fail /dev/sda1
mdadm --manage /dev/md0 --remove /dev/sda1

Repeat this command for other arrays’s too.

Now you’re good to go ahead shutdown the system and remove the drive. If you have a replacement drive, better add it before rebooting and follow the instructions required to rebuild the RAID arrays.

Copy or Mirror partition table from one drive to another

Use the following command to copy the partition table from sda to sdb.

sfdisk -d /dev/sda | sfdisk -f /dev/sdb

sfdisk -d dumps the partition table on to stdout. This is being piped to sfdisk /dev/sdb with the –force to write it on /dev/sdb.

You can use dd to copy the Master Boot Record (MBR) from one device to another (or to a file). For example, copying the MBR from sda to sdb would be done with

dd if=/dev/sda of=/dev/sdb bs=512 count=1
The flags are

if, input file (either device or ordinary file)
of, output file (either device or ordinary file)
bs, block size in bytes
count, number of blocks to copy.
The MBR contains the partition table for the four primary partitions, so this solution alone will not copy the definition for the extended partitions.