A Slacker Building from Source

It's a Slackware user's style to compile from source. The only hitch is satisfying dependencies (hmm, not unlike registering for classes). Unfortunately this can be much more than "a hitch" and consume entire days grabbing dependencies. There should be some sort of open project that maps the dependencies of projects upon one another, because as nice as the GTK is for building graphical applications (like Pidgin, in my most recent experience), it can really be a drag to build, and it has so little documentation on its dependencies and their dependencies that it is a stab in the dark and a waste of time to run that configure script only to find out that aaa-x.y is not present or is too old for this version of the application you are trying to build. And once you satisfy that one, bbb-x.y is also needed! Try telling the average guy on the street if he has his pango, cairo, freetype, fontconfig, pkgconfig, glib, and gtk built together. Nonsense!

For a linux user, no big deal, though, but some documentation could really help. Perhaps someone can start an extensible and open way to wiki some of this data together, so others can learn from our experiences. I understand that software changes, and that data could become stale very quickly, but if it became a popular site, hopefully it would be a great start, if not a complete start to building software from scratch.

I must point out that there is such a thing as SlackBuilds, which lets you compile source code directly to a Slackware package (.tgz) for your system. This could greatly aid in compiling software with its dependencies for Slackware, and would also remove the hassle of stale libraries (with the /usr and /usr/local package prefix disparity).

Anyway, long live open source and Slackware!

Registered Linux User #370740 (http://counter.li.org)

Dvorak Keyboard

Well, folks, it's about time I posted again. This time I would like to cover the Dvorak Keyboard layout. This layout is a re-mapping of the keys on the keyboard that was designed to improve typing efficiency. It accomplishes this in several ways, the primary way being the strategic placement of letters of high occurrence in the home row and under the strongest fingers and furthermore increased alternation of hands, which increases speed and reduces typing fatigue. It is also easier to learn, and having practiced now for a few hours, I have already begun to instinctively press the Dvorak key correctly. Nevertheless, I will be practicing for some time before I will be truly proficient.

In any case, try it out - you might like it!

Registered Linux User #370740 (http://counter.li.org)

OpenOffice.org 3.0

So the day we have been waiting for has finally come! OpenOffice.org 3.0 was just released this week, taking down their website with a staggering number of hits. Having jumped into the picture and downloaded the Linux, Mac, and Windows versions to deploy in my very diverse home lab, I can say that OpenOffice has provided the much-anticipated 3.0 release right on target. The most useful feature for me is the compatibility with the Office Open XML format, used in Microsoft's Office 2007 & 2008. While Extensions were also noted as a major feature of this new release, I have yet to experience them to their full potential, either as a user or as a developer.

One interesting comment concerning OpenOffice, and also along the lines of the poverty discussion that I posted yesterday, is its adoption by organizations in developing countries. The Brazilian government was among the first to adopt OpenOffice as its document productivity standard, making the switch to OpenOffice (Banco do Brasil: http://www.tmcnet.com/usubmit/2006/05/30/1662778.htm; Government: http://www.datamanager.it/articoli.php?visibile=1&idricercato=17447). This is another aspect of computing that benefits the developing world, enabling these countries and societies to, for the cost of education on how to use the software, participate in the sharing of information, both from the receiving and the sending ends of the communication process.

Registered Linux User #370740 (http://counter.li.org)

On Poverty and Computing

Today is a day in which bloggers everywhere are invited to blog about poverty. Poverty is a global humanitarian issue, affecting over a billion people. In my recent coursework, I studied globalization and its effects on various components of society, including poverty. One problem with globalization, as practiced in many countries, is that the influx of money is not distributed evenly or fairly within that society. The money tends to stay "on top" in the hands of the rich, while the poor remain poor, and even become relatively "poorer" due to the increase in wealthiness of the rich. Joseph Stiglitz in Making Globalization Work uses the phrase, "rich countries with poor people" to illustrate this reality.

What about computing? What can we do in the computing world to help alleviate the poverty that exists in the world at large? We have seen the One Laptop Per Child (OLPC) project, the XO netbook, and other very cheap computing devices that, coupled with Internet access, provide the wealth of information that is readily available on the internet to the new computer user. There is an obstacle of education, because many of the targeted users of these devices are next to illiterate and would need to learn basic written language in order to make use of the Internet. Becoming accustomed to using the technology would be another aspect slowing the adoption of Internet access in the developing world. Another key point to consider is that we, as people living in the developed countries, have had access to multiple Internet-enabled devices, including a variety of handheld devices in addition to the primary desktop or laptop computer. We have been using the Internet to facilitate functions including communication (via e-mail or instant message), banking, shopping, and even running an entire small business! Individuals in the less developed countries of the world participate in fewer of these functions, and without the aid of the Internet, so it would take a dramatic change in lifestyle for them to adopt the technology like the rest of us.

It is critical to note here that it is not a question of "us versus them" or that "they" need become like "us." Rather, it is to bridge the gap between rich and poor, to provide a more equitable quality of living for all people, with respect to their region. The point is to avoid the feudal-like society with throngs of people who belong to the land that they work and the man that owns it. Such a change will require those who are in power, those who have "made it" in their society to reach out to those who have fallen by the wayside, providing education even in the most informal sense of "education" and resources for them to obtain more formal education and secure legitimate work in the economy, whatever it may be. This work will then enable those inviduals to possess what they might, and obtain what services they might, to improve their quality of life.

One place computing can help is in the market of web design - the process is relatively easy to learn, although it is not as practical and tangible as the work of an automobile mechanic or someone in industrial production, which are occupations frequently chosen by some people trying to work their way out of poverty. Rather, one need only understand a bit about (1) how a web hosting service is chosen, and how to configure that service; (2) principles of graphic design; (3) typical web technologies of today, particularly XHTML, CSS, and JavaScript, PHP or ASP.NET, and when one really becomes adventurous, the infamous but ever-more prevalent Database, be it MySQL, PostgreSQL, or Microsoft's SQL Server. With these limited skills, someone with Internet access can create his own business, solicit clients from his friends and their friends, and really build up the art, from the dust of poverty to the mainstream culture quite rapidly compared to other skilled occupations. The only problem with doing web design in a developing country is that very few of the locals will have access to or rely upon the Internet as a local resource, if at all, but an agency in a developed country may provide the ability for web developers in developing countries to provide their services and receive just compensation for them, lifting these individuals out of poverty and improving the quality of life for them, their families, and their neighbors.

The information age has very tangible benefits for people everywhere, but as demonstrated above, not every existing society can benefit from computing technology in the same manner as the others, although it could help many societies in dramatic ways to help alleviate poverty worldwide.

Registered Linux User #370740 (http://counter.li.org)

Slackware v?

I fell in love with Slackware as soon as I started to use it, frustrations with building from source aside, it is a very streamlined system. With the recent release of v12.1 I think I will give it another shot; I'm still running 11.0 with a (more) recent kernel, and many system library updates, as needed as dependencies for other programs... the funniest of all was upgrading flex, a text parser, because I had the 1997 version on my machine and pidgin wanted one from a few months ago or sooner - so I went to grab those packages and successfully built pidgin after having updated that dependency.

Another woe is using KDE 3.5.7 when 4.1 is almost here... it seems to be maturing nicely; I used an early beta via the OpenSUSE live disc but that was a very unpolished build... I have also used a more recent 4.0 build (or a 4.1 beta?) on Ubuntu, which is better but still a work in progress - 4.1 seems like it will finally be worth using, and they just announced the Cube desktop switcher, KDE native!

Another interest I have is running KDE on Windows and Mac - I use all three platforms daily (both Windows XP and Vista) and it would be nice to merge the interfaces together somewhat... hitting the key to the left of the spacebar as the primary modifier doesn't work so well in windows or linux... :) (CTRL(alt!) vs COMMAND key mappings). Plus, Amarok is undefeated in my eyes and I'm still using a very old version of it - can't wait for latest stable!

Another thought I have is to maybe switch over to a Slackware derivative with package management (like KateOS, which I reviewed a while back). We shall see... Always backup data and profile settings :)

Registered Linux User #370740 (http://counter.li.org)

Slax 6

I have always appreciated the simplicity of Slax, and version 6 was long-awaited. I didn't try it out initially, for various reasons, but one of my friends had a hard drive-related problem and couldn't boot - a typical usage for a live CD with the simplicity and agility of Slax. So I downloaded and burned the 189MB ISO and fired it up in the broken machine.

I chose the copy-to-ram method from the graphical boot menu (an upgrade from the v5.8 text-based boot-loader), and a few minutes later the CD came out and I was looking at a full-blown KDE session with wireless networking already enabled and connected! The hardware support was incredible. I always had to tweak my xorg.conf and various network-related config files to get things to run nicely, but v6 runs like a dream!

If you're not already familiar with the Slax project, it is an implementation of the developer's live-CD library and utilities - another project well worth the research. For more information, check out Distrowatch's Slax page.

Registered Linux User #370740 (http://counter.li.org)

KateOS

So, as usual, I have been keeping an eye out for a nice little distro. People ask about Linux more and more and I have just been recommending Ubuntu or the live disc for Fedora or OpenSUSE. Last week I found KateOS, a Slackware-based distro out of Poland. It combines the simplicity and stability of Slackware with a dependency-aware package manager (managing Slackware packages, of course). This means that the aspiring power user can figure things out without having to worry about the little nonsense that makes pure Slackware a bit of a chore at times. Now, don't get me wrong, I love Slackware to death, but KateOS is a very polished distro (in their own words, "polish"ed is a play on its country of origin).

It is available in a full DVD (or CD series) with a text installer, a live CD that runs XFCE, and a minimal install CD (300MB) from which you can use the package manager to add a bit of flare after having gotten the core system running. So go check it out! http://www.kateos.org

Personally, I used the miniISO version, which has the typical Slackware text installer, and was up and running KDE 3.5.7 with Firefox-2.0.0.12 in a matter of a couple hours.

The live CD did a pretty good job of detecting my not-too-special-hardware, and with a few Slackware-reminiscent tweaks, you can have all of your specialized hardware up and running!

Registered Linux User #370740 (http://counter.li.org)

Acrobat Reader 8 and Firefox

It's been awhile since I blogged, but that doesn't mean that I haven't been fixing things that aren't broken or using lame workarounds...

Just today I was annoyed that when I clicked on a pdf in Firefox (latest stable - 2.0.0.12), it would behave as if the plugin were loading the file, but nothing would be displayed (blank window). I ascertained from the "about:plugins" output that two versions of the Acrobat Reader were loaded - 7 and 8. I checked the system installation plugins directory and found only one version. Then I looked into my local profile, under .mozilla - there is a file called pluginreg.dat there, and inside of the firefox subdirectory. These are auto generated, but Firefox can run without them. I renamed them to *.bak, symlinked the nppdf.so that was in my .mozilla/plugins/ and .mozilla/firefox/plugins to the current version, and re-launched Firefox. Worked like a charm!

Hope if somebody else has trouble with multiple versions they can benefit from this...

Registered Linux User #370740 (http://counter.li.org)

fontconfig breaks everything!

So I decided I wanted to run the latest version of GIMP, my favorite image editor. To do that, I needed a current version of GTK. I have had only bad experiences building the GTK and its myriad dependencies, so I was not thrilled about doing it again. Well, to make a long story short, I screwed it up bad enough that I needed to fix it so I could use other programs. I slowed down and read the docs on each package and sketched out a dependency tree so that I could tell in which order I should build and install each package.

Note that when you are installing dependency libraries, always run ldconfig to update that database for the next configure script. Also, go look for previous versions in the other lib directories. Install your new stuff into /usr/local/lib but then go look for that same library in /lib and /usr/lib, and on occasion /usr/X11R6/lib or something fancy like that. I had to do a ton of manual cleaning to get things to work.

After GTK was all built and nice, I still had trouble with fonts. My web browsers were all screwed up, OpenOffice only had about 6 fonts in its list, the KDE KControlCenter Fonts page in Administrator Mode still showed my 700 odd fonts, but things were looking really bad with regard to anti-aliasing and such. I had to start digging. First, I looked at the startup messages and noticed an error from the fc-cache line, which got me thinking about fontconfig. So I figured that there were more artifacts left behind by the previous version.

I had to edit my rc.M script that runs fc-cache (from the fontconfig library) to point to the path of my new fontconfig (because there is one bundled with X11). I had to symlink /etc/fonts to /usr/local/etc/fonts and then I had to edit /usr/local/etc/fonts/fonts.conf manually, based upon what information is available in the manpage for that file format (section 5). I specifically had to add the directory containing my 700-some fonts (/usr/local/share/fonts) and specify the cache directory to be /var/cache/fontconfig rather than NONE/var/cache/fontconfig, which would create this structure wherever you run fc-cache, which becomes absolutely useless to the running OS and the programs that reference it.

To polish it all off, I logged out of my KDE session and dropped the system to runlevel 1, and then brought it back up to 4 - et voila!

Registered Linux User #370740 (http://counter.li.org)

Facebook

Paul Nguyen's Facebook profile

Nerd Test

v1.0:
I am nerdier than 94% of all people. Are you a nerd? Click here to take the Nerd Test, get nerdy images and jokes, and talk on the nerd forum!
v2.0:
NerdTests.com says I'm an Uber Cool High Nerd.  Click here to take the Nerd Test, get nerdy images and jokes, and write on the nerd forum!

Bloggers' Rights

Bloggers' Rights at EFF