Home Linux Community Community Blogs

Community Blogs


The Netbook is the coolest toy I've ever seen for Linux. As someone who loves small screens on laptops (who doesn't want a super thin 12" to carry with them to meetings or to pass through security at the airport) but can't stand the insane prices, I've had to stay in the 13" realm for a while. Then along came this idea of a super-cheap 9" laptop with a tiny keyboard that just looked to cool. That is until you tried to use it - typing on that keyboard was unbearable and the large bezel around the screen made it look as cheap as it costs. But then along came these 10" models with only a slightly reduced keyboard size (95% being the norm) which peaked my interest. Only one thing stood in my way: rationalizing the purchase of another laptop. This one was pretty easy: since I ride my bike to work each day I'm afraid to have one of my nice machines in my backpack which would surely be destroyed in the event of any crash no matter how minor. Great, now I can buy one. $350 later I'm pulling out this only semi-cheap looking laptop with a pathetic three-cell battery and no CD-ROM.

What if I could have a cheap ultra-portable Windows laptop which could connect to my company's VPN (64-bit Linux just can't do it) and run Outlook (Exchange 2007 broke Evolution)? This idea kept flirting with my mind, so I decided to keep Windows XP SP3 32-bit on there. For a while. Now, I won't pretend to be a Windows expert, but I'm a pro at 2000 (which I will argue was a really good OS) and was able to really trim down the install into the most per-formant XP to ever see the light of day! Internet Explorer was unusable, Firefox was painful, but surprisingly Safari seemed perfect for the job. Things were going alright for a few days, but I had to keep restarting the machine every half-hour or so because some application I needed just won't start (and don't even get me started on the delay after clicking on the "start" menu). Maybe I just had a bad install, but XP is no good so Windows not an option (although I hear Windows 7 is good on these things, let's see what happens when that comes out).

Let's talk about the Intel Atom processor running these things. It's a 32-bit single-core processor with Hyperthreading (pseudo-fake second-core), no out-of-order execution engine, and very low power requirements. Well the low power part sounds good at least. Hyperthreading was a terrible joke I though Intel kept hidden in the closet until the Core 2 came around, so I never thought I would see this again (apparently those marketing guys have more say than the engineers again, next step 20GHz processors with a 50-stage pipeline). The lack of an out-of-order execution engine also scares me (imagine removing fuel-injection and going back to carburettor); but that would explain XP running slow with the additional branching due to module message passing.

This thing needed a monolithic kernel; this thing needed Linux. Don't bother with those "Netbook Edition" installs if you know what you're doing, the interface is made for people afraid of the word "Linux." I went ahead and installed the latest and greatest Ubuntu Desktop. I've heard several horror stories about old Ubuntu on Netbooks, but Jaunty is up to the task, especially in a corporate environment. VPN's requiring Java won't run on 64-bit Linux (yet), but 32-bit works well (although I have noticed in my environment that it loses connection every 21 minutes). OpenOffice is always a pleasure to work with, but if you install 'Basket' as a OneNote replacement, and you'll have your co-workers envy. Be careful though, if you're like me and have a Solid State Drive (SDD), you'll want to make sure to not use a journaled file system: use ext2. As there are a finite number of writes to the drive, you'll need to cut corners in this area every chance you get (but be sure to backup, we have journaled file systems for a reason). You will see some swapping with the 1GB Netbooks, I haven't seen any when I maxed it out to 2GB. That doesn't mean you shouldn't have a swap drive, but increasing memory will help the lifespan of the SSD.

There's a lot of FUD coming from Microsoft and their partners these days about Linux being a horrible option for the Netbooks (stories of the Linux options being returned more than their Windows counterparts). I'm more inclined to believe the stories about inept salespeople over-promising what these devices are capable of. From my experience, even though it is only a few weeks, Windows is a poor option for these devices, and Linux is the only viable solution (I would love to see some desktop BSD in this area though, competition is good).

So what's the verdict? These things are fun little toys on the cheap which can do a lot for you in both a personal and professional environment. It's not a full featured laptop, and shouldn't be treated like one. But if you want to surf the net, check your email, chat with friends, or run office productivity software you'll be pleasantly surprised. So will I shed a tear if I crash my bike and with it my Netbook? Yes, but it'll probably be from the broken collar bone and road rash. I already have my eyes on a super-thin six-cell Netbook from Asus, and all I need is a good excuse.


Gentoo Easy Upgrade Script

If you just followed my previous blog about Gentoo you'll probably trying to understand what "easy upgrade" is for me and what I've to do for maintaining my system up to date.

If you take a look at the Gentoo Handbook you'll see how you can install and upgrade your system, expecially read Gentoo Upgrading Guide for making these tasks.

Syncing Gentoo portage is basically like the BSD upgrade, for a quick upgrade I've just made a script few years ago with the same commands listed in Upgrade guide, please feel free to contribute or mail me for corrections on the script.

But before the script it's important to understand the golden rule: read what your computer is writing to you, I think it should be applied to everything but expecially read what is saying, that's why I've placed a pause after each command; for example if you need to upgrade portage because it's telling you so then you've to do this so interrupt the script and upgrade portage, then re-run the script again from the step you're.

Comments and suggestions are welcomed:

keypress() {
echo -n "hit any key to continue..."
read -n1 -e -r 2> /dev/null

echo "System Upgrade Script"
echo "--------------------------------------------------------------------------------"
echo -n -e "portage sync ? ([y]/n) "
read key -n1 -e -r 2> /dev/null
if [ "$key" == "n" ]; then
echo "Portage Sync"
emerge --sync

echo "Complete system upgrade (emerge --update --deep --newuse world)"
emerge --update --deep --newuse world
echo "Start : "$START
echo "End : "$STOP

echo "Configuration files upgrade (etc-update)"

echo "Dependencies Clean (emerge --depclean)"
emerge --depclean

echo "Dependencies Check and Rebuild (revdep-rebuild)"

echo "--------------------------------------------------------------------------------"
echo " System Upgrade Completed"
echo "--------------------------------------------------------------------------------"

RSync connection to gentoo hosts is maded only if you need it,  if you need to upgrade your system just make it once a day, it doesn't make sense to flood gentoo servers with rsync requests, and of course you'll be banned if you do so

Hope it helps

Any hints ?


Linux Distribution Chooser

Linux Distribution Chooser is thery intresting thing. I get 90% Gentoo and 90% of Slackware :)

Eye Candy: A Love Story

I'm what you'd call a Linux Veteran.  One who's been using Linux since long before it was considered "cool" or "pretty".  In fact, I recently reminisced  with a friend at being around when the advent of ISO releases was considered new.  I remember installing Slackware 4.0 from a handful of floppy disks on an old 486 DX.  "What's a floppy disk and what's a 486 DX?" you ask.  Wikipedia is your friend, my friend.

Aside from relic grade hardware and floppy disks that can't hold even a fraction of what a cheap flash jump drive can hold today, I do remember early desktop Linux.  Trust me, it wasn't pretty.

With the release of Ubuntu and its countless derivatives, the Linux community has grown exponentially.  People accustomed to modern GNOME, KDE and XFCE releases need to take a look at the ghost of desktop Linux past.  Windows and Mac OS aren't the only ones with a checkered past of ugly (but plenty useful) desktops and GUIs.  Along with being around when Slackware 4.0 was a new release, I was also around when major leaps forward in OSS took place.  I remember when KDE 2.0 was released, I remember when GNOME 2.0 was released and when anti-aliased fonts were considered eye candy.  Also at this time, there was no such thing as XFCE.

As a Linux old timer, I feel that my perception of eye candy in Linux is much more conservative than the  average desktop Linux user of today.  I use Linux as the only operating system on a few of my systems and prefer a near cherry GNOME as my desktop environment.  Things like Compiz do nothing for production in my opinion.  The rotating cube when switching between workspaces and wobbly windows look nice in screenshots and desktop screencasts but I fail to see what this brings to productivity.  Maybe I'm just an old timer but I'll gladly settle for my rather boring composite enabled Metacity and Avant Window Navigator.


Funny compiz

Look at HTML code of

Hint: search after the "style="display:none".

Read more... Comment (0)

SocialNerds Webteam Brainstorming

Hallo Freunde,

das SocialNerds Webteam Brainstorming hat ein Ende. (Infos auf:

Der Brainstormingthread ( wird geschlossen.

Die Beiträge sind via abrufbar.


Making My Own Desktop Manager: Starting at the Beginning

The hardest part of this whole project is the lack of people talking about X Window Managers. There are countless forums post for people asking how to start learning about Window Managers and either get no response or someone just says "read the source code of {insert open-source window manager here}".

While, as a programmer, I probably agree with learning from others' source code; but I also think there is a big gap of information missing from this equation. There are plenty of high-level explanations of the roles of Window Managers and there is source-code. That's about it.

So just to clarify, here are the roles my Window Manager will be responsible for:
  • Listening for events on the root window and all child windows
  • Size and placement of windows when they are first created
  • Show the difference between the focused/active window and all other windows
  • Iconified/Hidden states of windows
  • Resizing windows
  • Moving floating windows
  • Window decoration (If I choose to go down this route?)
  • Launching programs

I decided the next phase would be to write the simplest possible Window Manager. This window manager would allow programs to accept the programs preferred location & size and would also draw a white border around the focused/active window.

The code for this example can also be found in 'simple-wm' in my GitHub project-sandbox. (Including the MakeFile)

#include <X11/Xlib.h>
#include <stdio.h>

#include <stdlib.h>

static Window focused_win;

int handle_xerror(Display *dpy, XErrorEvent *ee) {
   int i=0, alen = sizeof(ee) / sizeof(XErrorEvent);
  for (i=0; i
<alen; i++) {
    fprintf(stderr, "An error occurred: %d\n", ee[i].error_code);
  return 0;

int main()
  printf("opening display\n");
  Display *d = XOpenDisplay(NULL);

   printf("grabbing default screen\n");
  int screen = DefaultScreen(d);
  printf("default screen = %d\n", screen);

  printf("grabbing root window\n");
  Window root = DefaultRootWindow(d);

  // tell root window you'll be capturing it's events
  XSetWindowAttributes a;
  a.event_mask =   StructureNotifyMask|SubstructureNotifyMask|EnterWindowMask|LeaveWindowMask;   // root + child (sub) windows created, window-in, window-out
  XSelectInput(d, root, a.event_mask);

  // handle errors

  // capture those events
  XEvent e;

  // main event loop
  for (;;) {
    XNextEvent(d, &e);

    if (e.type == CreateNotify) {
      printf("Event: create\n");
      XSelectInput(e.xcreatewindow.display, e.xcreatewindow.window, a.event_mask);
      XSetWindowBorderWidth(e.xcreatewindow.display, e.xcreatewindow.window, 1); // always set border to 1px

    else if (e.type == ConfigureNotify) {
      printf("EVENT: configure\n");

    else if (e.type == EnterNotify) {
      printf("EVENT: focus-in\n");
      focused_win = e.xcrossing.window;
      a.border_pixel = WhitePixel(e.xcrossing.display, screen);
      XChangeWindowAttributes(e.xcrossing.display, focused_win, CWBorderPixel, &a);

    else if (e.type == LeaveNotify) {
      printf("EVENT: focus-out\n");
      a.border_pixel = BlackPixel(e.xcrossing.display, screen);
      XChangeWindowAttributes(e.xcrossing.display, e.xcrossing.window, CWBorderPixel, &a);
   return 0;

To see this window manager in action you will need to edit your .xinitrc file to launch and wait for an xterm and run the window manager form here. I realise I could launch the window manager from .xinitrc as a background process, but I want to watch the events as they happen from my logging in the host xterm shell.

So I:

  • Edited the .xinitrc file for my wmtest user (click here for my .xinitrc file)
  • Logged in as that user via SLiM
  • Started simple-wm:
    • $ /path/to/simple-wm/program&
  • Then launched another terminal window on the other side of the screen:
    • $ xterm -geometry 50x50+500+500

Notice how I didn't need to do anything in the code for the xterm window to position correctly at x=500,y=500 and size of 50charsx50chars? If you don't change the values on the ConfigureNotify event, the client window's hints are accepted! Now when I hover over the xterm window, I get a white border! Hover out and the border goes black! :)

To exit the session just type exit on the xterm shell.


mysqldump: error 29 - TEMP SOLUTION

On MYSQL DB with LOTS of tables, you might run into an error with 'mysqldump':

    mysqldump: Got error: 29: File .....


    Add --skip-lock-tables to your command

System: CentOS 64bit with MySQL 5.0.45-log

Malware found on brand new Windows netbook ...

Security vendor Kaspersky Labs found malware on new Windows XP netbook, just out from the factory. The firm is warning users to take extra precautions, and ensure virgin systems are malware free before connecting them to the Internet.

 If You is owner a netbook - be attention ...

Read more... Comment (0)

nmap: checking port listening in one subnet

nmap -vv -p 23

 example above is checking any listening port for telnet in subnet


Config NIS Server/Client on CentOS 5

I created two VMs via VirtualBox, named CentOS_Srv and CentOS_Cli with the IPs and, networking type is bridged.

 1. ENV

OS: CentOS 5.3

Software: ypserv, yp-tools, ypbind, etc

NIS Server:

NIS Client:

2.  Steps

1) Config NFS in the NFS server (use the NIS Server here)

[root@glynnsrv]vi /etc/exports, add the following line:

/home  *(rw,sync)

this allow  all host to mount /home as writable.

2)Make effective

[root@glynnsrv] exportfs -a

3)Start NFS server

[root@glynnsrv]service nfs start

4)Let nfs start when boot

[root@glynnsrv]chkconfig nfs on

 5)Config the firewall


select firewall settings and add NFS service.

6)Config the NFS client

[root@glynn]mv /home /home.bak

[root@glynn]mkdir /home

[root@glynn]vi /etc/hosts localhost localhost glynn glynnsrv

[root@glynn]mount -t nfs glynnsrv:/home /home

Let autofs mount the nfs at boot time:

[root@glynn]vi /etc/auto.master # add the following line:

 /home      /etc/auto.home  --timeout 600

[root@glynn]vi /etc/auto.home # add the following line:

  *    -fstype=nfs,r2

 [root@glynn]chkconfig autofs on

 7) Config NIS Server

a) install needed softwares:

[root@glynnsrv] yum -y install ypserv ypbind yp-tools

b)vi /etc/sysconfig/network



Page 120 of 150

Upcoming Linux Foundation Courses

  1. LFD211 Introduction to Linux for Developers
    09 Feb » 10 Feb - Virtual
  2. LFD411 Embedded Linux Development
    09 Feb » 13 Feb - Mississauga - ON
  3. LFD312 Developing Applications For Linux
    16 Feb » 20 Feb - Atlanta - GA

View All Upcoming Courses

Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board