Life & much, much more

Gentoo Linux blogs on Planet Larry

If you use Gentoo Linux, you probably know that you find Gentoo Linux blogs on Planet Gentoo. If you haven’t heard of a planet before, A planet is a website that aggregates a series of blog feeds, and most open-source communities have one. For example, there is also Planet KDE and Planet GNOME. Planet Gentoo, however, is limited to the topic of Gentoo Linux itself, and only aggregates content by Gentoo developers. In the past, Steve Dibb (beandog) started up planet Larry, named after the Gentoo mascot “Larry“, which hosted blogs of Gentoo users. Naturally, Gentoo users get up to all sort of interesting endeavours, and so begun a slightly less technical, less stringently project-specific blog feed. Here’s a picture of Larry below.

Larry the cow mascot

Unfortunately, recently after checking back at my old feedreader list, I noticed that Planet Larry had gone AWOL, and so decided to recreate it. It was never an official Gentoo project and Steve Dibb didn’t seem around, and the domain name ( at the time seemed to be squatted on by advertisers. If you visit it now, despite a half-baked attempt at a Gentoo-ish theme it was filled with “laptop recommendations”. Instead, I registered and started up a new aggregator. The concept is the same as the original. In short:

  • If you use Gentoo Linux and write a blog which has a feed, you can add your blog to Planet Larry
  • You can write about anything you want, as often as you want. It doesn’t necessarily need to be related to Gentoo Linux at all — although I did find that most Gentoo Linux Blogs seem to have more technical content.

So, go ahead and check out If you contact me I will add your blog.

Credits for the Larry the cow male graphic go to Ethan Dunham and Matteo Pescarin, licensed under CC-BY-SA/2.5.


Installing Gentoo on Android with chroot

Note: recently edited 8th Nov 2014

Installing Gentoo in a chroot alongside Android is easy, so if you already use Gentoo and have an Android phone, there’s really no reason why you shouldn’t do it. With a ginormous phablet like the Samsung Galaxy Note 2 and a bluetooth keyboard, you can get a super-mobile full Linux workstation everywhere you go.

Before we begin, let’s see the pretty pictures. Here’s Larry saying hello :) (Installing a talking cow should be the top priority once the base system is up and running)

Larry saying hello on Android

… and of course a shot of emerging stuff …

Gentoo on Android compiling stuff

… and finally we’re running Enlightenment 17 with the Webkit-based Midori browser with X, accessed via (Tight)VNC …

E17 on Android with Gentoo Linux

Installing Gentoo on Android

Prerequisites first: you’ll need a rooted device. You’ll also need a terminal with busybox. I recommend Android Terminal Emulator and busybox by stericson. I would also recommend installing Hacker’s Keyboard, which gives you a full keylayout.

Installing is rather straightforward: modern Android phones usually run on ARMv7 so just follow the appropriate handbook. If you are installing it onto your internal storage (not on an external SD), you can skip to chapter 5 :)

You will need to be root to install, so su - in your terminal emulator of choice. Similarly, remount Android into read-write so that you can create the necessary files for Gentoo with mount -o remount,rw /. Finally, remember to install in /data/gentoo instead of /mnt/gentoo so to not conflict with Android’s mounting preferences.

Since we’re only installing a chroot and not booting alongside android, you can safely skip configuring the kernel, configuring fstab, configuring networking, and setting up the bootloader.

When mounting, you will need to do so as root user, and use the busybox implementation for --rbind support, as so:

$ su -
[ ... superuser access granted ... ]
$ cd /
$ mount -t proc proc /data/gentoo/proc
$ busybox mount --rbind /dev /data/gentoo/dev
$ busybox mount --rbind /sys /data/gentoo/sys
$ chroot /data/gentoo /bin/bash
[ ... now in the chroot ... ]
$ source /etc/profile

This is assuming you’ve put Gentoo in /data/gentoo

Android quirks

There doesn’t seem to be a /dev/fd on Android, so let’s fix that:

[ ... in Gentoo chroot ... ]
$ cd /dev
$ ln -s /proc/self/fd`

Portage won’t be able to download files as it doesn’t download as root, but instead as another user by default. No problem:

[ ... in /etc/portage/make.conf ... ]

Sometimes I’ve noticed that on bad reboots the /etc/resolv.conf can get reset. This will cause host resolving issues. Resolving is as easy as:

[ ... in /etc/resolv.conf ... ]

It will be a good idea to set your main user to the same UID as the Android normal user. Also, running id -a in android will show you that your user is part of various reserved Android groups. To fix issues such as your Gentoo user’s (in)ability to go online or use bluetooth, just create these groups in your Gentoo install with matching GIDs, and add your user to these groups. Here’s a list of Android UIDS and GIDS. For example, I needed to add my Gentoo user to groups with GIDs 3003 and 3004 before it could successfully go online.

If you want an X server, VNC will do the trick. I recommend android-vnc-viewer 24-bit colour seems to work, and perhaps change the input method to touchpad rather than touchscreen so it’s relatively usable.

Finally, with no fan and big heatsink on a mobile phone, you might find yourself running hot. So even though monsters like the Galaxy Note 2 have 4 cores, I recommend sticking it to MAKEOPT="-j2"

Life & much, much more

DraftSight: a free and cross-platform alternative to AutoCAD

Whilst Linux is an excellent system for programmers, it’s certainly a little wanting for people who deal with creative graphics. There are tools like Krita, GIMP, Inkscape, Blender and Digikam and so on to help fill this gap, but one area which isn’t talked about so often are CAD tools. As an architecture student and a Linux user, I can safely say that the options are disappointing. It certainly is possible to have a complete graphics workflow on Linux, but it’s not as good as on Windows.

There were always CAD packages around such as FreeCAD and QCAD (I believe rebranded to LibreCAD) and its various derivatives, but they were all slow and not particularly powerful. However for the past few years, I’ve enjoyed DraftSight.

DraftSight - a free and cross-platform alternative to AutoCAD

Firstly, a disclaimer: DraftSight is not open-source. It is certainly free to use and works very well on all platforms, but it is backed by a commercial company (Dassault Systemes), is financed through an enterprise license, and certainly has no obligation to the community.

However perhaps the reason DraftSight is so much more powerful than the open-source alternatives is because it has a very clear goal: it wants to clone AutoCAD. Unlike GIMP, which has tried to define a new paradigm for itself, DraftSight keeps users in a familiar environment.

If you are on Gentoo Linux, I am maintaining the DraftSight package and as of May earlier this year, it is available in the betagarden overlay. For more information, you can see this bug.

Life & much, much more

Design, photography, and servers.

It’s been a hectic few days. First off, I was pleasantly surprised to read on the KDE dot news that the KPresenter template contest winners were announced. I was very happy to hear that my submission had been chosen for 1st place! Here’s a picture for those too lazy to click.

Secondly, I’ve been learning a little bit more about photography, and so here’s a little preview of one of my photos. I decided to burn-in the Gentoo logo on the bottom right so that it serves as a nicely patriotic wallpaper. It’s a vague enough shape to be mistaken for part of the picture, but recognisable enough to be Gentoo (I don’t like in-your-face logos). You can download a high res version here. Here’s a snapshot for the lazy. Perhaps other Gentoo users might appreciate another wallpaper!

Finally, I’ve purchased myself a basic VPS plan from JohnCompanies – of whom is the parent company of a very commendable company called, of whom I’m still very happy with. Although not as cheap (as in, cheap + high quality reviews) as alternatives such as Linode (who offers double the resources at the same price), I went on a gamble that my great technical support experience will transfer over into a similar great experience.

Unfortunately, JohnCompanies does not offer Gentoo on their VPSes, only on their dedicated server packages. After some quick debate, I went for Debian. I shall proceed to migrate a few of my sites to this new server as well as a few of my existing hacked-together serverside toys. If you experience any downtime or shoddiness with any of my sites (blog + email included), it’s probably just due to the migration.


Screenshot October 09

I update my system on a two-weekly basis. Apparently the last update I did something stupid like unmerging qt-*, which left me without a working KDE desktop for a good while (also killed most of the apps I use). Fluxbox is the WM I fall back to at this point, and so I was back letting it rip on mainly console apps. It so happens that it was Gentoo’s 10th Birthday too, and the lovely wallpaper that it comes with motivated me to redecorate my Fluxbox. Of course when I say “redecorate” I mean edit the theme a little and change the wallpaper. Anyway, here’s my little beauty (click for full res, of course):


Happy (belated) birthday, Gentoo!


Setting up FreeNX (nxserver-freenx) on Gentoo

NX is, in laymans’ terms, some fancy technology that allows you to remote desktop control your computer. If you’ve used VNC before, where VNC simply works by sending screenshots over the internet, NX does cool stuff in between like compression that makes NX much faster and better.

NX is a pain to set up. Maybe it’s just my bad luck that something goes wrong every time I try to set it up, or perhaps I’m just plain stupid but I find it a pain and it normally makes me feel like chewing my ethernet cable after a while. A long while back I managed to get nxserver-freeedition working fine, but recently it stopped and in the process I decided to switch over to using FreeNX – an open-source implementation of NX. Here is how I got it up finally, mainly for archival purposes.

Before starting, you may want to clean your system. unmerge nxclient nxnode nxserver-freeedition nxserver-freenx, etc, rm -r /usr/NX (if freeedition), rm -r /etc/nxserver (if FreeNX), remove the nx user and the nx group, rm -r ~/.nx/ for all users.

  1. emerge nxclient
  2. emerge nxserver-freenx
  3. nxsetup --install --setup-nomachine-key --clean --purge (the –setup-no-machine key option means that you just need to use the default key that the nxclient comes with)
  4. Try to connect via nxclient, tail -f /var/log/messages, if it complains about the user being locked, do usermod -p foo nx, where foo is a password you’ll use.
  5. Start debugging why it doesn’t work.

When debugging I normally:

  • Make sure SSH works first. Refer to my sshd_config (obviously this is specific to my setup, but notice that PasswordAuthentication is set to yes, as that’s how you’ll authenticate with NX with nxclient)
  • Make sure you own your own authorized_keys(2) file, after a while of mucking about you might’ve screwed the permissions (600).
  • Check that you’re pointing at the right authorized_keys(2) file, though I didn’t need to bother about this with FreeNX, I know that this is a common mistake with nxserver-freeedition
  • I like to run SSH on port 443, so change to port 443 in /etc/nxserver/node.conf for FreeNX, and if using freeedition in /usr/NX/etc/server.cfg, node.cfg, whatever is specific to your setup.

As for my experience switching over to FreeNX from freeedition, honestly in terms of usability it’s no different at all, but personally in terms of installation procedure FreeNX wins by a mile. But for the moment I’m just happy I won’t be restricted by my school’s web filtering system and glitchy, laggy, virus-filled OS. Perhaps when NeatX stabilises a little I might check it out.


You’re putting your mum on Gentoo? You’re mad.

This is the second time I’m putting Gentoo on my mum’s computer. The first time was a good year or so ago – however my own old laptop got a hardware failure soon after and so I *ahem* took her computer. (I’m innocent I swear!) She’s decently computer illiterate and has always wanted to learn. She recently got a new laptop, an Acer Aspire 4535 (it comes without Windows pre-installed).

Had to install it using the SystemRescueCD as Gentoo’s minimal install didn’t have the module for my NIC. Xorg is compiling, the holidays are almost over, and it’s time to overload my schedule again.

To make this a bit more computer-relevant, I ask you: what do you suggest I do to help make it “easier” to use for someone like my mum? I am planning a cron-scheduled usual sync, update, revdep-rebuild. I don’t think I can automate the etc-update but that could pretty easy to train I think. Kernel updates is going to be a hassle. She wants KDE and so that means unstable packages.

Sounds fun.


Lang-8: Learning languages the fun (and free) way.

logo_loggedinPeople that have known me for a while know three things. Firstly, they know me (well, duh). Secondly, they know that I know Chinese. Thirdly, they know that I just lied, I know how to pretend I know Chinese – actually I suck pretty darn bad at it. In fact, I suck at the whole pretending business too.

So the other day, I came across the original Chinese hacker dude who created the Shellex-overlay for running Chromium on Gentoo Linux. Unfortunately the blog post was in Chinese. I immediately enrolled myself in a chinese tuition class an-

No, I fired up Google translate and stole my brother’s Chinese girlfriend to properly translate sections that apparently read “building know not updated porridge“.

Well, I don’t really like languages. Not that I don’t think they’re really useful and stuff, I just don’t like them because 1) they suck, and 2) I suck at them. The reasoning I like to use for “they suck” is the theory behind natural languages, then moving on to mathematics and programming languages and showing how “look. 1=1 is 1=1”. However like a friend of mine, one of my pet peeves is people “who wan talk talk leik vely good you know wan liao!“. (a representative sample of the local accent and style of speaking here. (see Wikipedia entry on Manglish – it’s friggin’ made up of English, Malay, Hokkien, Cantonese, Tamil – oh and you’d find “g’day mate” popping up once in a blue moon) – yeah, so I can’t exactly say being decent at a language is unimportant.

In fact language is really important. Especially when maintaining professionalism. You can’t argue – having good language skills are vital for…communicating well? Wow, that sounded bad.

…and for that reason when some Taiwanese guy lurking in the #gentoo-chat channel (sinsun) introduced me to the website Lang-8, I signed up. It’s a website where you can write journal entries (like a mini-blog) in another language, and other users who are native speakers of that language can come along and insult you.

So you know right away, I go allleady what lah and start correct the crap crap english udder people is writing wan.

No. I actually did start jocking up whatever was left of my 汉语 knowledge and now I’m learning that I sucked even worse than I thought I did. Well, it’s still an amazing website, and I’ve not seen one like it before. I would highly recommend it to anybody thinking to brush up on a foreign language. The correction system is pretty nifty (like crossing out stuff and highlighting) and it has one hell of an active community – you’d get responses literally minutes after you post it.

Feel free to add me as a friend, especially if you’re good at Chinese and can teach me how to say “Git repository” in Mandarin. My username there is “Moult”.

Note: I actually really do think having good knowledge of a language is very useful – up to the point where you start thinking “Here is a piece of paper” is some sort of symbolic metaphorical imagery for racism.


rtm – a Command Line Tool for RememberTheMilk

2009-05-23-154648_1280x800_scrotBefore I begin my post, I’d like to apologise to all the Planet Larry readers for the 10 hours or so of downtime I caused sometime yesterday. I don’t always break things, and that borkage was, well – quite unintended. For the technically inclined, basically I had set some .htaccess restrictions on another domain which I forgot I was hotlinking files to. This carried over the .htaccess restrictions and as my blog was aggregated, this somehow carried over there too.

OK, back to what’s new and amazing. Some days ago I wrote an article on RememberTheMilk, a really awesome to-do list website (I have 60+ and counting tasks listed over there now!). However a main issue with it is that even though it’s extremely accessible through lots of mediums (phone, email, twitter, plasmoids, etc) – they are all graphical! We’re missing a command line interface for it!

Well, not quite so. With some Google-fu I found some French guy with a fetish for white rabbits (no, seriously this time I’m friggin’ sure he’s french) who made a command line tool. It’s not much more than a script, but that doesn’t stop me from me from putting it in the sunrise Portage overlay so Gentooer’s can get it! Actually, what did stop me was the fact that 1) I didn’t know how to write ebuilds, 2) I didn’t have an account to commit ebuilds to the sunrise-overlay, and 3) I didn’t have a GPG key (for part 2).

So, a while later learning about ebuild writing, getting a key and a commit-able account, babysat ever so generously by hwoarang and idl0r for the ebuild part and scarabeus for the key and account, I have today commited two ebuilds to the sunrise overlay (layman -a sunrise). The first is app-misc/rtm, which is the tool itself, and the second is dev-perl/WebService-RTMAgent, which is a Perl module (dependency for rtm). I’m not sure when it’ll get into the publicly approved sunrise overlay, but it’s definitely there in the developer checkout (Unless I borked up the commit).

So, install it, try it out on your architectures (I’m only ~amd64 dont’ forget), and enjoy! Hopefully this’ll mark the start of more Gentoo contribution. Or it will if I don’t get distracted and play this game about white rabbits. – or maybe this one, which is more related to rabbits – in more ways than one.

What the hell do rabbits and ebuilds have in common? :P Stupid French guy.


Setting up SSH to work whilst at college.

Well, if you’re out and about quite a bit and you run a Linux computer at home, you should have a good relationship with SSH. If you’ve never felt the need to access your home computer remotely, this is what you should do.

For those that don’t know what SSH is, it is basically a network protocol (for example like FTP, SMTP, etc) that allows you to securely connect to another computer. For those that don’t speak jargon, it is some cool thing that allows me to use my computer remotely.

One of my well-visited locations is my college. I wonder why :P … and like most places, it runs Windows. Using a Windows computer leaves me feeling crippled and with a sense of repulsion at the most innocent of small creatures. Combined with my college’s restrictions, there is a lot of stuff I can’t do. For example, I can’t download a .doc file. Also, it is quite troublesome to constantly transfer files over with a memory stick, so I decided to set up SSH.

Little did I know how pathetically paranoid the IT technicians were.

Problem 1: setting up SSH and connecting to my dynamic IP.

The first step was to install (emerge openssh) and set up SSH. (I run Gentoo- the steps will be different for your distribution or if you are running Windows – say, you can set up SSH on Windows, can’t you?) This was simple. Now the problem here is that my IP keeps on changing. Especially because my ISP’s connection is quite volatile, my IP is dynamic and resets several times a day. The method to solve this was to set up a dynamic dns, available from This is a free service, and allows me to connect to a sane domain name whilst a client running on my machine updates it regularly on the latest IP.

Problem 2: port 22 is blocked.

The next day I popped PuTTY on a thumb drive and tested it out – or at least tried to. I had a network connection refused error. Later that night I learned that most public networks blocked certain ports, for example port 22 which SSH normally uses.

The fix around this was to change the config in /etc/ssh/sshd_config to use Port 443. You see, whilst http:// defaults to port 80, https:// URLs default to port 443 – and are hence rarely blocked. Et Voila – you can now connect! However, I also run an Apache webserver. This clashes as it also tries to use port 443. As I don’t care to serve SSL webpages on my localhost, I decided it was a decent sacrifice, and I removed Apache’s HTTPS support by removing `-D SSL -D SSL_DEFAULT_VHOST` from /etc/conf.d/apache2. Tada. I can now access SSH at my college.

Problem 3: What about SCP? Surely you’d want to copy files over.

Well, transferring files over is another issue. It’s all good with your vast array of Command-Line-Interface applications for IRC, Vim text editing, file browsing, MSN, email, calendar and PIM, etc – but every so often you will have the need to transfer a file over. Sending yourself an email with a file doesn’t help, as my college blocks almost every single website out there aside from (note: Gmail is not – so it is blocked too). At the same time, it also blocks downloading every single file type aside from image files. The quick fix for this was to put the file on my Apache localhost, change the file extension to a .jpg or something then download it from there.

But no. Two problems occured. 1) My website was blocked – haha, and 2) the IT technicians filter it not by extension, but by actual file contents. To get past the website block, I run a proxy script on my webserver (there are plenty of free proxies out there too) to access my webserver. But then of course I’m stuck with the file filter. So looks as though it’s game over.

Not really, there’s always SCP. I couldn’t send files using my computer as I didn’t know the network information of my college network. So I decided to SCP using the college’s Windows computer. I hear there’s a program known as WinSCP which is pretty nifty, but at the time I only had PuTTY’s collection of tools and thus PSCP.EXE – which pretty much did the same thing – with one catch: it’s a CLI application. You see, they’ve also blocked the command prompt. OK – for understandable reasons.

To get myself a command prompt, I did the age old innocent trick. This involves creating a plain text file (eg: .txt), putting the words `` in it, and then saving it as cmd.bat. (Notice the changed file extension). This will give you a prompt to work with. Now – using that to run PSCP.EXE, I succesfully transferred my target file over – which was in this case a .doc file, which contained some homework.

What about the ethics of this?

Well. I personally feel as though these workarounds are anything but a way for me to do my work conveniently. The computer system is riddled enough with viruses as it is without my doing, and I doubt anybody will be motivated enough to have such a complicated setup unless they were either particularly vicious or needed a file really urgently (such as me at the time). But seriously – a learning centre blocking .doc files?

If you have more experience in networks than me and feel as though this article is innappropriate, feel free to contact me and I’ll willingly take it down.


How to install Chromium (Google Chome) on Gentoo Linux

Update: As of 27th August the buildbot now provides 64-bit builds. Thanks Jeff :)

The other day I was surfing the web and read an article about Google Chrome in some sort of hacking competition – this then prompted me to check out Google’s progress on porting Google Chrome to Linux and Mac. For those that don’t know Google Chrome is Google’s attempt at making a browser. So far it seems like a really good attempt.

It seems as though lately the Linux builds (I ignored the Mac stuff – but I hear it’s getting good too) seem to be getting to a usable state. Definitely not finished, definitely buggy, but usable. So, like any other Gentooer, I began trying to find out how to get it.

Step 1) Any ebuilds out there?

Why bother do hard work myself if somebody’s already put it in portage? With some google-fu it seems as though there are a couple ebuilds. One by the French, and another by the Chinese. The French one (have not tested) is available in the `THE` overlay, available by doing layman -a THE. The chinese one seems to be called “Shellex-overlay”, and can be accessed here. I’m not quite sure what the French one does as the ebuild didn’t really like my amd64 system (note: Google Chrome only supports 32-bit as of writing). However the Chinese one fared better and provided me with a binary. If you are on a 32-bit system (x86) you should try those ebuilds.

If you don’t want to compile from source, check the depencies list just a bit further down, then check out the build bot. Note: the build bot provides binaries for Windows, Linux AND Mac, so if you’re on a Mac, you’re in luck!

For more information, you should visit the Chromium Linux Building page.

Under `Prerequisites`, it lists down the dependencies as packaged by the Ubuntu system. Here is the list of dependencies as what Gentoo calls them:

  • Python >= 2.4
  • Perl >= 5.x
  • gcc >= 4.2
  • bison >= 2.3
  • flex >= 2.5.34
  • gperf >= 3.0.3
  • pkgconfig >= 0.20
  • nss >= 3.12
  • gconf
  • glib
  • gtk-engines-murrine
  • nspr
  • corefonts
  • freetype
  • cairo
  • dbus

Their version requirements are listed as needed.

Step 2) What about 64-bit systems?

There are several techniques of getting Chromium on a 64-bit system. However no matter what, I highly recommend that you create a 32-bit chroot. If you want to track each library individually and symlink your system to hell (as I first attempted), be my guest, but you’re wasting your time. So, first create a chroot by following this nifty guide.

Once you’ve got your chroot up, you can either try out the ebuilds I mentioned before, compile it yourself from source (via Google’s instructions) or be lazy and grab the binary from the Chromium build bot. I have tested the latter two techniques (can’t trust the French nor the Chinese!). To compile it yourself from source, follow the Chromium Linux Building page. Note: you will require quite a bit of HD space (the sources tarball itself is 640MB+), I also suggest you bootstrap from the tarball, the subversion checkout seems a lot longer and a waste of time really. Finally, if you’re just interested in getting the binary and running Chrome (not development), I would do use Release mode (see the building page for instructions). Of course, after making sure you have the dependencies I listed above, you should have Chrome compiled!

If you’re lazy and don’t want to compile, there is a build bot.

Step 3) Run Chromium on Linux!

At this stage, you should have the Chrome binary (either by compiling from source or ebuild, or getting the build bot binary). Now you just have to run the program and enjoy. If you’re running using the chroot, you should use the xhost hack. Do xhost local:localhost outside the chroot, then try run the binary again. Obviously you don’t want to waste time setting up X in the chroot.

Finally, here is a screenshot of Chromium running on Fluxbox! (I normally use KDE, but I wanted a more lightweight WM when compiling Chromium) You might also consider doing nice -n 10 when compiling if you want to continue doing your stuff. In fact, I’m running Chrome right now on KDE to write this post. It’s very fast, uses about 1% CPU, separates itself into different processes per tab, and so far seems pretty “stable”. However I have found that opening a file browse dialog (eg: in an upload form) makes Chromium jump up to about 50% CPU, which sucks.

Any thanks, issues or problems feel free to ask.


kde-crazy: KDE Devs on Steroids!

I recently added the kde-crazy overlay to my portage. Aside from the rather nasty feeling in my gut (seriously, don’t put the word “crazy” when advertising unstable software, it scares people!), I also got access to the KDE snapshots. (What currently is version 4.1.80 – the stable is 4.1.3). Well, I don’t know about how it’s affected others, but though it’s definitely still glitchy and well … unstable … it’s already a huge improvement. Just wait until all the minor hitches are ironed out, then what we’ll have is KDE on steroids. The amount of noticable difference is amazing, it’s as though it’s catching up to a mature desktop already!

It’s hard to describe it all, so perhaps take a look at the screenshot below. In it you will see task grouping in the taskbar, more transparency in the taskbar, UI upgrades that make it look prettier (look at previous screenshots in my previous posts), desktop effects that work better, more plasma apps, a folder view as a desktop for traditionalists, custom glow colours around windows … well, here’s the screenshot: (click for higher resolution)

Of course, there are much more not shown in the screenshot, such as a prettier start menu (Oxygenised), Vim mode in Kate (woohoo!), upgrades to konqueror, a superb krunner, Strigi file indexing (seriously, I typed sc[rot] and it already popped up with loads of files), more desktop effects (with the almighty desktop cube), upgraded panel settings … wow, and I’m discovering new stuff all the time! I must say, it’s amazing how well the developers are doing! (It’s feature freeze now though).

I have been able to crash it though, the ZUI gives some nasty screen offsets if I use it too much, as well as plasma crashing every time I try to change back to a Desktop (instead of classic Folder View). The nepomuk thing lurking in my systray seems to have a habit of locking my X whenever I try to configure it too. Evil thing. Evil.

Aha, and as a final note, I’m finally using KDE without lag (or very very minimal lag)! Kudos to all the folks working on the nvidia-drivers, as installing the nvidia-drivers package (v180.11) from the berkano overlay significantly improved my graphics performance. Hurrah!

So anybody here still on a stable KDE, it’s time to get risky and install whatever kde snapshots your distro provides you with. It’s worth it (you can run both stable and unstable at the same time and choose which one to log into via kdm).

Finally, sorry for the lack of regular postage, as I’m somewhat busy with an upcoming exam (not to mention other things). However, I do believe I’ve got several posts in my drafts folder awaiting competition including a short (positive) rant about MVC frameworks in PHP, the ISSDC Aerospace competition, and another How to Use Your Computer part. So stay tuned.


Gentoo, build it like Lego.

It seems as though I’m again too busy to come up with a proper long techy post. I decided to tackle an old problem that many people overlook: the ability to communicate the advantages of a project properly to potential customers.

Right now, I’m reffering to Gentoo. Gentoo is a Linux distribution which targets a very niche market of what normal people consider the geek elites. To put it in perspective, the #gentoo irc channel is a constant market of kernel builds, compilation issues, hardware discussion and other really geeky things. Why don’t you go in there and try take part, you’d find you’ll want to hide in a corner in shame. All your base are belong to us.

So what is the wonderful thing about Gentoo that makes people say “Yes! FUBAR is the way I like it!” Well, simply put, it’s maximum configuration. It’s pretty much the closest you can get before LFS takes over. You know everything you put into your system, where it is, why it’s there, when it’s going to go pop, how it upgrades, when it upgrades, how much space is taken, why your directory structure is like it is, why your sound works, why your printers work, how your internet works, how your LAMP setup works, what programs communicate with what, what packages are needed by desktop environments, what options each package has, what the source code of everything is … the list goes on … and on … (recurring)

So, how to communicate the ultimate build-it to break-it configuration to the average Joe? Let’s take a look at the steps I took to set-up the new laptop I’m now using over the past week.

  1. Download and burn Gentoo Minimal Install CD for amd64.
  2. Boot up, follow the Gentoo handbook, setting up Internet and compiling kernel as well as base system.
  3. Reboot and tada – Gentoo works. (I really didn’t type justice about that Gentoo installation stage, because if I did, I could write several essays)
  4. Emerge irssi (for IRC), links/lynx (for web-browsing), vim (because it is the meaning of life) and screen (for multitasking in console)
  5. Using screen, irssi and links simultaneously to follow the handbook and troubleshoot problems, set up the X server until you can run twm.
  6. emerge fluxbox and ratpoison, startx into fluxbox.
  7. Keyword ~arch for mozilla-firefox-bin, openoffice-bin, portage, gimp.
  8. Emerge portage, and get sets for KDE.
  9. Add xcomposite and opengl global useflags for special effects :)
  10. Emerge firefox, openoffice, gimp, and the entire @kde.
  11. Emerge kdeplasma-addons: can’t live without it.
  12. Emerge mplayer, alsa, cups.
  13. Configure alsa to work, configure cups for printing.
  14. Add appropriate useflags for a LAMP setup, then emerge apache, mysql, php, phpmyadmin.
  15. Configure LAMP setup.
  16. Configure sshd, and emerge pure-ftpd for ftp. Add them to boot-level.
  17. emerge scrot (of course!), cowsay (for hilarity!), x-sane (for scanners), then GVim (if you like the graphical version)
  18. Download Blender.
  19. Emerge libsdl – because Blender needs it.

Along the way, you’d probably want to emerge the necessary packages for slocate, lspci, lsof, etc. Well, that’s my general plan when setting up a system. I hope it helped somebody!

Sorry for the rush post, but I’ll probably add more detail in the future.


Now with … 2.6.25-gentoo-r9!

Being somewhat of a techy-related blog, I guess that should warrant a post on my recent battle with the Kernel gentoo-sources 2.6.25-gentoo-r9. The version I was running before was r7, which was sadly two revisions out of date. :( Even worse before that was I was using 2.6.24-r4. Which was a whole version out of date. To end with a climax, before that I was using 2.6.19-r5, which was FIVE versions out of date. This probablys shows I’m getting better at time management, or I’m getting more uncomfortable with the notion of “if it ain’t broke, don’t fix it“.

Using Gentoo, one is expected to be rather capable of compiling and configuring a linux kernel. Side effects include 1) a Gentoo user is therefore able to optimise a system for his/her hardware, and 2) the Gentoo Linux Distribution becomes one of the geekiest available. (trumped only by LFS). So there I was, poking around my list of packages when I noticed bah! I’m two revisions out of date. I woosh off in all glory to my /usr/src/linux, make menuconfig, zoom around enabling drivers and removing unnecessary crud (seriously, I thought reiserfs was dead? Even worse, it assumes I want OSS instead of ALSA?). Some minutes later, I save my configuration, quit, and compile make && make modules_install. Baah-dum-bah-bee. Flawless compile. Copy the bzImage to my /boot, (whoah, I’ve got a lot of old kernel builds there – I should remove them), name it something intelligent (like kernel-2.6.25-gentoo-r9), add a new entry into my grub.conf to boot to r9 as well as r7, then type in the magic word: “reboot”.

Oh, wait! – you say, where is the problem? No problem! (or so I thought) No kernel panics, no nothing fancy, no forgetting to add filesystem support … so I punch up startx, ratpoison, KDE loads, start surfing the web, chatting on Kopete, grooving along to my … wait, what? NO MUSIC? Panic. I check my mpc. It’s playing. I check my mpd, it’s on. Check alsamixer and whooooop-what? No alsamixer? Not good. Oh wait I said, I remember I removed it from runlevel to speed up boot-time. So I /etc/init.d/alsasound start. and then catastrophe strikes! No drivers detected?

Rush back to my kernel menuconfig, Device Drivers -> Sound -> ALSA (check OSS is disabled) -> PCI Devices -> hmm… Yes, I do have Intel/SiS/nVidia/AMD/ALi AC97 Controller enabled. Time to double check if that’s the right one. Read the doc on it, and yep – it’s snd-intel8x0 for sure. Perhaps it’s a module problem? Modprobe snd-intel8x0 gives me FATAL: NO MODULES FOUND. Oh no!

— Cut: I thought I could turn a very geeky issue into a dramatic story but apparently I was wrong —

Ok. So I ended up having to unmask alsa-driver and alsa-headers, then dump ALSA_CARDS=”intel8x0″ into my etc/make.conf, then emerge alsa-driver. How silly, in my opinion, that I should require a non-supported package after a kernel upgrade. I’ve sent the alsa-bugs guys an email asking them what’s going on, and hopefully I’ll get an answer soon about why the in-kernel driver no longer likes my computer.


Gentoo installed (again).

My mum got a new laptop the other day and I’ve just put Gentoo Linux on it. *awaits exclamations of “WHAT!? … you cruel sick person.”*

Well, obviously I would hide everything that’s considered “complex” and keep her happy on a GUI all the time (KDE). That’s the great thing about Gentoo. You can make it exactly how you want it. So I can make it super user-friendly and people won’t tell the difference between it and something like Ubuntu. Or, I could even make it purposely crash randomly if I wanted to emulate The Windows Experience™.

The installation was flawless (I normally do something stupid and end up getting kernel panics), and took about 20 minutes (excluding time waiting for it to download source files and .isos at 5kb/s, and the time waiting for it to compile). Manual kernel config – flawless. No problems with setting up the xorg-server either. The Internet was pretty much plug and play.

Laptop is amd64, nvidia graphics card, 2gb RAM, 120GB HD space.

Congratulations to the Gentoo developers for creating such a great distribution!