## Ben and the art of ...

Well, if you are after the latest mobile phone that offer various functionalities apart from making a call, sending SMS etc, stop there! There is a little pocket computer called Ben NanoNote carrying the Openmoko legacy made by Qi Hardware which promote copyleft hardware. All mobile phones in the market are both non-free (in terms of software) and closed (in terms of hardware), even though some pretend otherwise. I think NanoNote has a very good potential because it can double as PDA, ebook reader, gaming console, DAP,offline wiki reader etc. You can carry a low end mobile for being connected to the world.

The projects like Openmoko and Wikireader didn't really take off owing to various reasons. One can also remember the fate of the much hyped Simputer as well. I hope this will not happen in the case of NanoNote. Ben NanoNote is built upon open hardware specs and is based on a MIPS compatible SOC. It runs on FreeSoftware called OpenWrt. (I would like to switch over to the blob-free LibreWrt once it is ready). People have already ported Debian to NanoNote. So, its possibilities are not limited. The small form factor and low cost factor can also attract people interested and commited to FreeSoftware. More so, in the case of students as it comes with Python, Lua etc. pre-installed, so that they can have a whiff of these languages. Its present status is somewhat geeky, though. But that should change soon.

The Ben NanoNote I bought unfortunately does not have support for usb host. The next iteration NanoNote, Ya will have that. Technically, the microSDIO slot supports wifi/bluetooth adapter devices. NanoNote boots to Debian off microSD comfortably. You can even run an X session. Right now it is targeted towards developers who can turn it to a multi-function device.
Technorati Tags: , , , , , ,

## A Real Browser inside Emacs

There have been efforts to combine real browsing with Emacs experience. Conkeror is one such example. But, conkeror only provides an emacs-like navigational experience. It is borne out of a Firefox extension and is based on Gecko. On the other hand, ezbl , an infant written in pure Emacs Lisp, uses uzbl. Uzbl is a webkit powered framework and is built upon unix philosophy. Ezbl essentially takes care of the configuration/control stuff. It runs an instance of uzbl inside emacs patched for xembed support. For more information visit the developer's blog.

Technorati Tags: , , ,

## Fontik: A font configuration GUI

Fontik can be used to tweak and configure some properties of fonts. These settings are usually set system-wide while installing the fonts. The power of fontconfig is thus limited when it comes to the user. The user can definitely override or enhance these settings, but for that, he has to manually edit the ~/.fonts.conf each and every time. This GUI tool performs some these tasks.

Currently Fontik can be used to:

• Set hinting method for for individual fonts.
• Add alias (an alternate name for the font which can be picked up by applications) for a font.
• Tweak matrix size of font if needed. (Playing around with this is not recommended usually,though).
• Blacklist fonts if the user doesn't like them or they take precedence over other fonts of similar family.

Gnome apps  honour these settings while, somehow, KDE apps don't. Maybe, KDE has its own font management  methods.

Fontik is available from Gitorious.

## New Suruma font

This new release of Suruma font has the following changes:

1. Font name changed to Suruma (capital 'S').
2. The glyph outlines are reworked and simplified.
3. A few more conjunct glyphs are added.
4. Improved support for uniscribe script processor.
5. Support for opentype ver. 1.6 which uses new approach for indic shaping.

With this I take a leave from the activities related to Unicode Malayalam owing to the messy situation such as dual representation w/o equivalency resulted from the introduction of some new standards(5.1) by the Unicode.

## The Spiral Malayalam

Many Malayalam letterforms take spiral shapes. Eg. 'ത' 'ര' 'ഞ' etc. The letter 'റ' can be considered as the basic unit or the building block of almost all Malayalam letterforms. The shape of 'റ' can be derived either from a circle or from a spiral. But from the general nature of curves that occur in most of the letterforms and the way they are hand-written, one can easily say that the shape of 'റ' is more closely associated with the spiral. Many calligraphic and ornamental styles in Malayalam stem from this property of letters. In fact, one can easily feel the spiral flow while writing some Malayalam letters like a 'തൃ' or a 'ശ്രീ' (by the traditional way, off course) on a level surface using a smooth stylus. Letter shapes of other dravidian languages also share this property.

Designing Malayalam letter shapes using spiral curves can be handy because it can give more faithful representation of the contours. It also provides great easiness while drawing such letter shapes when compared to bézier splines. The galaxy of spirals ranges from the simple logarithamic one to the more exotic varieties.

The spiro library(GPL'd) by Raph Levien makes use of clothoid spiral curves (aka Euler spirals) for drawing smooth curves and then converting them to bézier splines. Spiro is now incorporated in FreeSoftware like Fontforge and vector graphics editor Inkscape.

Try to attempt designing a Malayalam letter using bézier splines(quadratic or cubic) and clothoid splines. The result will be faster with latter and the satisfaction will be more, too. Getting the same result is tiresome if one starts with the former.

## AGPLMail - A new horizon?

The new challenge for freesoftware enthusiasts is the menace called 'Cloud Computing' which is basically Software as a Service(SaaS) shrouded in a catchy name. The new licence AGPLv3 is framed precisely  to counter this unhealthy trend.

Numerous service oriented web applications are available in GPL. Some business poeple use these freesoftware in web applications and proprietary modules are added to it. These are to be included in source code form under GPL when the software is distributed since these are derivative works. But the software is never distributed as such. Instead, the enhanced services are made available for the users through the web medium.

That is, GPL enforces the reciprocity of giving back the modified code by the copyleft clause. But this clause can be circumvent when such freesoftware is used in SaaS and it is known as the ASP loophole. Instead of addressing this issue in GPLv3 itself, a separate AGPLv3 takes care of  such loopholes.

One web operated company that largely makes use of such a loophole is Google, which uses many FLOSS tools. Maybe, for the same reason, Google Code does not allow hosting any AGPL projects. More and more players are getting interested in Cloud Computing. RMS has already  warned about this trap. It will take a lengthy post to elaborate on the perils this new business paradigm.

The AGPLMail is said to be a AGPL'd webmail application which competes with(hopefully) and somewhat mimic Gmail. So, it  is, in a way, 'AGPLMail is not Gmail' sort of thing. It is materialized by Ben Webb, a teenager who dreams of freedom in computing. (Quiz: Which is the popular freesoftware browser invented by another teenager?)

By the way, one very good AGPL'd software is Laconica, which powers Identi.ca, the increasingly popular microblogging service, a la Twitter.

## Using and unusing fonts

Font management in GNU systems has improved over the years from the days of X fonts. The Fontconfig+Xft font subsystem has more or less replaced the X font subsystem. So, the days of specifying fonts by the long-winded xlfd names are now passé.

But there still exists a void when it comes to how we can manage fonts at system level or at user level. Things like preferring one font family to another, blacklisting fonts, aliasing etc. are still a headache. These things are normally done by the configuration files that come with the font packages. For a normal desktop user, changing there configuration can be a nightmare. So, the missing thing is a nice utility with GUI which can perform all these tasks.

Debian font management
Debian has a native font management tool:defoma. This is a great tool for managing system fonts. One can register or unregister different types of fonts for various applications using the hint files for fonts(don't be confused with the 'hinting' used with the rasterization of fonts). But it lacks a nice GUI(The old dfontmgr is obsolescent). Moreover, I don't know how defoma can be used at user level for overriding system settings.

Font managers
The most promising font manager for GNU systems is Fontmatrix. Based on Qt, it is in the early stages and can one day become an integral part of Scribus, the grand publishing system. Another one to be watched is FonyPython.

Editing the fontconfig file
For user level configuration manual editing .fonts.conf is the most effective way, as of now. For eg. if you want to blacklist a certain font, add these lines to your ~/.fonts.conf file

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
....

<selectfont>
<rejectfont>
<pattern>
<patelt name="family" ><string>Font1</string></patelt>
</pattern>
<pattern>
<patelt name="family" ><string>Font2</string></patelt>
</pattern>
</rejectfont>
</selectfont>
....
</fontconfig>

Have a look at my .fonts.conf file

## XeTeX Malayalam

XeTeX is already capable of producing Malayalam documents by processing Unicode text using Opentype fonts. But there exist some issues when it comes to rendering Malayalam and more so with the traditional script. It uses an internal version of ICU library for CTL. So the changes in the ICU are not well reflected there in it. At least, not with the XeTex that comes with the texlive(I use Debian Lenny/testing), in my case.

But the svn version of XeTeX has 3.8.1, and optionally 4.0, releases of ICU. This solves most of the issues with Malayalam.(I also changed here the character classess for RA and LA, in the classtable for Malayalam, to _ct instead of _pb and _bb, respectively.This gave expected results when we write യ്ര, യ്ല etc. using tradional lipi fonts).

The development libraries needed for the build are:
libkpathsea-dev, libfreetype6-dev, libfontconfig1-dev, and libmagick9-dev.

So either get the svn by:
$svn checkout http://scripts.sil.org/svn-public/xetex/TRUNK xetex or get the tar ball from: http://scripts.sil.org/svn-view/xetex/TRUNK.tar.gz?view=tar Now from the XeTeX directory(the extracted tar directory) build it: $ ./build-xetex
(You have make it executable or else call the shell)

It would be tricky if you go on to install it by running the install-xetex script. Because, you may have to face with a number of path searching issues unless you are able to fix those things. So the better option is to replace your xetex binary, installed as a part of texlive-xetex, by the one we have now built. It worked perfectly for me.

Now with this sample doc:
\documentclass{article}
\usepackage{fontspec}
\usepackage{xltxtra}

\def\meera{\fontspec[Script=Malayalam]{Meera}}
\def\rachana{\fontspec[Script=Malayalam]{Rachana}}
\def\suruma{\fontspec[Script=Malayalam]{suruma}}

\begin{document}

%\fontspec[Script=Malayalam]{Meera}
\title{\rachana മലയാളം സീടെക്‍ പരീക്ഷണം}
\author{\meera സുരേഷ്}
\date{}
\maketitle

\begin{center}
{\fontsize{14.4}{10}\meera
സീടെക്‍(\XeTeX) ഉപയോഗിച്ചു്
ഒരു മലയാളം ടെക്‍(\TeX) പരീക്ഷണം.
}
\vskip 2pt
{\fontsize{12}{10}\rachana
സീടെക്‍(\XeTeX) ഉപയോഗിച്ചു്
ഒരു മലയാളം ടെക്‍(\TeX) പരീക്ഷണം.
}
\vskip 2pt
{\fontsize{12}{10}\suruma
സീടെക്‍(\XeTeX) ഉപയോഗിച്ചു്
ഒരു മലയാളം ടെക്‍(\TeX) പരീക്ഷണം.
}

\end{center}

\end{document}

I got this result:

Update: A sample mlym.sty file for xelatex for Shyam Karanattu
Usage:
\usepackage[rachana]{mlym}
\begin{document}
.....
.....
.....
\end{document}

## Use Malayalam with GNU Emacs

This is how it is done

Check m17n and libotf versions:(don't use versions older than the returned one)
m17n-config --version
1.5.2
libotf-config --version
0.9.8

OK. Now get the CVS:
cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs
Now configure with options:
cd emacs
./configure --without-carbon --with-x --with-toolkit-scroll-bars --with-jpeg --with-png --with-rsvg --with-tiff --with-xpm --enable-font-backend --with-freetype --with-xft --with-x-toolkit=gtk --without-hesiod --with-dbus --with-libotf --with-m17n-flt --no-create --no-recursion

Now make:
make bootstrap; make all
Test if the emacs built is OK:
./src/emacs -q
Then install emacs:
make install
Now define a function for setting up the font and code table for Malayalam by adding these lines in your .emacs file, the init file:
(defun setup-malayalam-rendering()
"Setup Malayalam rendering"
(interactive)
(set-fontset-font "fontset-default"
(cons (decode-char 'ucs ?\x0d02)
(decode-char 'ucs ?\x0d6f))
"Rachana")
(set-char-table-range
composition-function-table '(#x0d00 . #x0d7f)
(list (vector "[\x0d00-\x0d7f\x200c\x200d]+" 0
'font-shape-gstring))))

Start emacs and use the function:
M-x setup-malayalam-rendering

And enjoy reading and writing neat Malayalam text in the Emacs buffer!

1-9/9
Best viewed with FLOSS browsers