JF make 372
JF Nav
JF Nav
Creation Date: 2005-01-10
Greetings. Tonight I made a small discovery that fixed a problem I had. It involves fonts in Linux. If you're not interested, maybe you're interested in learning Japanese. We otakus certainly like our Japanese. Yes, I am one of those guys who watches anime subbed. It helps me learn spoken Japanese and the actors are better and more realistic.

I spent a a hundred hours over a few years learning Japanese on my own. I wrote a page that teaches the levels of Kanji. Kanji are pictograms that explain words and concepts in a picture (but often, the picture doesn't look much like the concept it describes, so the picture is just a mnemonic). This is quite a departure from Western and many Eastern languages, which are written in characters to explain the sounds that describe the concepts. Japan also has a system to explain words by the sounds that are spoken to describe the concept (hiragana and katakana). However, the Kanji win out in Japan. Learning the thousands of Kanji that make up the Japanese language is a rough task, but not as bad as it sounds.

To learn some of these Kanji, I have read a few good webpages and a few good manga. I also have tried my hand at getting the computer to help me. Looking at the most basic Kanji often along with their meaning in English is useful. It's a flash card type method. So the first thing to do is compile an easy to access list of easy Kanji. There is a good website for that, The Japanese Page. It's great for Kanji because it has the Kanji in an easy to read system. It also works in levels. Level 4 is the most basic Kanji. I mastered that in a few weeks of mild training and a few months of refresher lessons. It's really easy: days of the week, numbers, a few people, directions, 9 adjectives, 13 nouns, and 10 verbs. With those Kanji, you can survive the most basic things in life. But going to that webpage isn't the most convenient way to learn the kanji. It'd be useful if I could manipulate those Kanji however I wanted. If I could manipulate those Kanji, I can manipulate any Kanji. Then I would be able to communicate poorly in Japanese on the web. That is a good goal for me.

How do I display Kanji? Well, there are systems on the computer made for displaying Kanji. Most browsers display Kanji, but how do you encode Kanji? Unicode, SJIS, and EUC_JP are character encodings that support Kanji, but only if you have the right software to generate the codes. So I need some software beyond the browser. I searched and found a few programs for GNU/Linux (my operating system). Kterm and XJDic. Kterm is just a terminal that displays Kanji. XJDic is a Japanese Dictionary. Together, you can look up English words or romanji and find the correct Kanji. This works really well with manga if you know hiragana and katakana well. You can type the romanji in and get the Kanji and the English translation. When I find the right Kanji, I can select it and paste it into an HTML editor. It uses EUC_JP encoding, so I simply use a meta tag like so:
<meta http-equiv="content-type" content="text/html; charset=EUC_JP">

Depending on if the browser supports EUC_JP and you have the correct fonts, the page will display Kanji, hiragana, and katakana quite well. So, where are the fonts that someone needs? Linux has them. They're called jis-fixed and misc-fixed. I'm working on a way to use Unicode entities which might be easier on the text editor, but that's a future project.

What do you do when your browser doesn't display the Kanji? Well, you check the list of possible things that can go wrong. The first and simplest is the browser. Check that the character encoding is set to EUC_JP. If it is, then it's probably a font problem. You need to download and configure the fonts needed. In my case, my laptop had the fonts installed, but a certain library didn't understand my distro. Slackware puts the fonts in /usr/X11R6/lib/X11/fonts/ while most distros put them in /usr/share/fonts/. This certain library is Fontconfig. It seems to me that it works pretty well for everyone, because no one has noticed my problem. The file /etc/fonts/local.conf (which is an XML file, strangely enough), didn't have my path right. So I added the following:

I ran /usr/X11R6/bin/fc-cache as root. That fixed the problem.

That raises a question for Linux developers: is configuration currently good enough where it is? My problem is only on Slackware for certain fonts. Most people wouldn't notice since there are a dozen other fonts available. But what about international users of Linux? I don't know if Japanese users of Slackware have found this and solved it on their own. Obviously, support for Kanji in the browser is pretty important for them. But this isn't just Fontconfig, it's Apache, MySQL, X11, the Kernel, and thousands of programs.

Creating a GUI for Apache is not at the top of the Apache team's agenda. It may be that a pretty user-interface to Apache is not the Apache team's job. They want to keep their product lean and powerful. Maybe the overwhelming consensus on the Apache team is that Configuration via a text file is perfect for a server. With syntax highlighting, it's fairly readable. The overwhelming success of Apache web server says that text file config has not made it impossible to use.

Someone other than Apache might come up with a brilliant interface. It's not an easy task to create something and hope that in 2 years a few distros will put it on their CD. If a person creates a good product that is useful for people, people will rely on it. But configuration of a web server is not a project that will score instant fame.

Currently, home users of Linux don't need to configure their OS any more than Windows users. Distros have brilliant auto configuration tools. Web and e-mail are easy. Configuring the network is often as easy as Windows. Those things are clearly the job of the distros. Adding software is often very easy, depending on which distro because the distro is in charge of that. Drawing, reading, writing, and those tasks are easy. That's the job of the Office software.

Beyond the wide range of home and office use, there is a barrier for power users. Of course, power users are able to understand things like text file configuration and command line switches. For me, it's even like a game of how to r0xx0r my boxen. But it really doesn't have to be that hard. Most of the ugliness is just a lack of a pretty GUI. For example, Nmap is a terribly interesting and useful tool. But for the life of me, I can't remember the command-line switches. There are so many of them. I could write them down, but that would be difficult. Fyodor wrote a front end which makes Nmap so easy, that it's like child's play. In fact, it doesn't come with any warnings, like: "This tool could be used to accidentally DOS a connection." Learning that the hard way is not fun. So my idea is this: the most difficult programs need only a simple pretty GUI written in 500 lines of Python/Tkinter and all the difficulty of configuring Linux is solved in a bunch of clicks.

Linux Configuration is a major issue for Linux developers and users. From the kernel to the smallest app, it's terribly important for users to be able to configure the product to work. From a pretty GUI to a readme, or help file to a wiki that actually contains fixes made by users, better configuration will solidify GNU/Linux as the best operating system.

For me, Linux is the best operating system because I can manipulate it to my wishes. My advanced knowledge of computing allows me to do this. The programs, kernel, libraries, and everything in between is my playtoy and everyday thousands of Linux developers make it better.

JF Nav