Category Archives

348 Articles
Getting Yourself Innovative

Getting Yourself Innovative

I’m very concern of how things happen here. With the emergence of embedded system market, many tools keep coming into the marketplace. Many innovations coinage by new terms like multimedia phone, netbook, etc., arise in concurrent with new technology. But, here in Indonesia, there is also comes true one leakiness: ignoring the GNU/Linux system.

You may say that I’m a FOSS zealot and that bold statement is biased. But, think about this: all of the local brand Netbook can’t be installed with GNU/Linux without glitches. While the foreign sibling such as Acer’s, Lenovo’s, and ASUS’ can be installed with GNU/Linux. Imagine this: there is a Windows preinstalled Netbook, which costs you more, and there is this GNU/Linux Netbook. Which would you select?

There is a big difference between the embedded world and the desktop world; that is it’s architecture and purpose. Embedded system build around in special devices and sometimes using different processor. Not much people would use it as a serious gaming platform, it’s only geared towards productivity. So, the fancy games that Windows wins is not viable there.

Netbook was created as a low-cost device to have common task done. It was not intended for serious gaming nor any set of needs that need high requirement. However, it may be used as a simple productivity tools, PDF reader, a browser, and any light processing task. It was intended for people with high mobility, so it has relatively high uptime and WiFi ability. Because of the screen size, the user experience of a Netbook should differ with desktop or Notebook. With its small screen, the readability of a Netbook, including its menu, icons and fonts must be redesign to meet a high quality which a person can use it well. The minimal requirement of this gadget also making it must stay resource-limited in mind when designing an application. Besides, you must put those on ease. These radical changes of graphical user interface are in the end changer user experience radically. To put it simply, total overhaul of how things work, the innovation behind it, would make the Netbook is experimental in its merits.

Then why would you still insist on trusting your hardware with Windows Embedded?

The one reason is because people trust Windows than other platform. The brand justify your product. Meaning, you are not confident enough to differ with others. Not like that stubborn Apple Corp. nor that EEE PC did. The other reason is because you have no knowledge to do customization since basically your local product actually a rebranded product.

Whatever the reason, you may consider that non-innovative product is not well suited for long term continuity. Invest your time and take a look around for GNU/Linux fabrication. One thing is to specify your hardware to suited for GNU/Linux installation. Provide that as a long time investment and make the service available.

The thing that making GNU/Linux platform weaker than Windows is because the lack of OEM to preinstalled it on their system. The system always considered as an supported system. That’s why it would be a hassle to put it on the hardware. But, as you may see how the world now in favor of the system, many big industry players have consider of using GNU/Linux as a preinstalled platform of choice. This of course a gamble, but the big community behind FOSS making the company that using GNU/Linux looks like celebrity. Thus, making a good PR for the company itself.

Besides, who would resist cost reduction on their production while stay competitive?

With the saturation of technology,  many seeks asylum on innovative ways. Even if the specs are the same, they would differentiate their products with each other. In that war for a piece of cake, innovative is a must.

So, please, brothers and sisters, I plea you to at least to have your product support GNU/Linux so that you can have a community backed you up and free developers to enhance your product lines.

As suggested by Iang, there are handful of developers whom also in favor for making BlankOn, a GNU/Linux distribution based on Ubuntu, eager to make the distribution for Netbook. Why don’t you jump into it also? Check out for the comment for further link.

UPDATE:

Addendum as suggested by Iang.

My Happy KDE 4

My Happy KDE 4

Using KDE 4 (4.2.4) from Debian Unstable. Here’s my configuration:

  • Theme: Bespin (SVN)
  • Window: Skulpture (Debian Unstable)
  • Plasma: XBAR (SVN)
  • GTK2 Engine: Qt4

My KMail in the background and my Amarok 2 in Bespin Style. See how XBAR containing Amarok’s menubar.

KMail + Amarok

Well, XBAR can do that for all of KDE 4 native application. Sadly, my Opera 10 Beta uses Qt 3. I can only put its window decorator off, set it maximize (access those with ALT+F3), and disable menubar (toggle with ALT+F11) making the result like this:

Opera 10 Beta

Hmm.. actually it also play well with Java’s Swing. Take a look at my NetBeans 6.7 Beta:

NetBeans 6.7 Beta

Oh, well, using GTK2-Qt4 engine, my GTK2-based application runs well. Take a look at my pidgin:

Pidgin

I wish Kopete can use proxy well. That is the sole bug that make this marvelous glorious coolest of desktop, KDE4, flawed. Bah, I think I should get to work.  😎

Flicker on Compositing-enabled KDE4

Flicker on Compositing-enabled KDE4

I have Radeon X550 running KDE4 and have a minor issue of flickering on all of my fullscreen applications. So, this morning I googled and found the problem. It was caused by the behaviour of KDE4 (and other compositing manager such as Compiz) to cancel redirection of fullscreen applications to improve performance. This is by the fact that all fullscreen application does not need any effect because it would fill all the screen.

So, this is what [LPAD] suggest:

How to resolve the problem: – open with your favourite editor this configuration file: .kde/share/config/kwinrc -under [Compositing] section add: UnredirectFullscreen=false – If you have no [Compositing] section create it, on the top of the config file, and then add the option under it. – save and exit – Press ALT+F2 to open krunner, then write into it: kwin –replace – No flickering/crashes anymore! 😉

REFERENCE: [LPAD] Masucci, Geovanni. (KDE) Fullscreen applications flickering with effects ON. https://bugs.launchpad.net/ubuntu/+source/kubuntu-default-settings/+bug/327199 (snapshot taken 10 June 2009)

Netbeans Failed to Include Library

Netbeans Failed to Include Library

Getting this while building project for NetBeans 6.7 Beta:

Created dir: $HOME_DIR/Project/uibooth-eaccess/e-access/dist
/usr/lib is a directory or can't be read. Not copying the libraries.
Building jar: $HOME_DIR/Project/uibooth-eaccess/e-access/dist/e-access.jar
Not copying the libraries.

The problem is because I have made a custom library, java’s RXTX that have native library put in the

/usr/lib

. I have put the path in one of the RXTX library in Netbeans configuration. It would runs in Netbeans but not with the manual way. The

dists

will be generated without

lib

and its content (all the necessary jars). Deleting the path would fix the job.

Hopefully Netbeans would includes better support for native library.

Forcing Moore Law

Forcing Moore Law

I was frustrated with KDE4. It was just because I didn’t have any luck on converting all of my apps to Qt 4.x only. All of the KDE4 are awesome: KMail, Yakuake, plasma and stuff, and the sensible run command window. The thing that strucked me down was the fact that I couldn’t use Kopete to connect via proxy. Yeah, the only sole big hole is  that I couldn’t chat. So, I had to give up and installed Pidgin.

Because of that, I was tempted on using LXDE on my PC. It was described as the low resource desktop manager based on GTK2 only. Unfortunately, I was unable to run LXDE with compiz, maybe it needed a tinkering which I was lazy at that time. So, I went to GNOME. Yeah, the plain old GNOME! Uhm, the 2.26 is not old but still with no alpha blending, 3D effects, nor any bling-bling that put your friend’s jaw; just a plain ol’ desktop manager. That’s my default desktop manager now.

The surprised thing about my current desktop manager is that it extremely fast and responsive. It can runs Netbeans 6.7 Beta, Opera, Epiphany with many tabs, Tilda, and active Rhytmnbox but still can rip my CDs with 8 minutes per CD without any glitches! Wow!

I’m using old Pentium D, 2 GB memory, good ol’ ATi x550, 40 GB SEAGATE SCSI UltraWide160. Please note that I don’t mean to advertise, but that’s what I can have in the office through stealing scavenging recycling some servers parts. 🙂 Ahem cough, back to topic, with those ingredients, my computer became an average joe PC when running KDE4. Yes, it was fast, but not blazing fast. It was very attractive and responsive, yet not that fast. If I can describe the differences, it was like comparing when I’m running Windoze 98 and running Windoze XP on my good ‘ol PC.

What is interesting here is new technology comes with more and more CPU clock requirement. If I recall about game programming, there was a time where sprites of a character in a game counts. Now, you can see  a game in one BlueRay with fancy graphics and stuff.

Yes, we evolve as the hardware evolve, including the demands. But, does the evolving ways of computing right now is necessary? Do we need those eyecandy? The basic functionality is the same. The job in M$ Office 1997 is the same as well in M$ Office 2007, only making bold/italic, alignment, and header/footer stuff. But, why some of us put the trouble to upgrade into the latest software just to achieve what the good ol’ software already did?

Other than gaming, is there a need of an average joe/jane to upgrade his/her PC?

Change in Alpha Layer of GIMP 2.6

Change in Alpha Layer of GIMP 2.6

There is a problem in making a part of layer in GIMP becoming transparent; that is GIMP refuses to make selection color to alpha channel. This is because GIMP 2.6 not adding alpha channel by default into a duplicate/new(?) layer. There are two solutions:

  1. You could add an alpha channel to the layer then do things like previous version.
  2. You can add a layer mask and do it from that masking layer. This will complexing things up but will gives you unlimited undos/redos plus your original picture is unharmed, which is a good practice.

REFERENCE:

[FLG]  http://www.flickr.com/groups/gimpusers/discuss/72157612736720804/

    New System Notification for KDE and Usability In Question

    New System Notification for KDE and Usability In Question

    According to [AIS], the main dev of KDE, introduce system notification for KDE 4 series. This feature is introduced in KDE 4.3 and will be stable in KDE 4.4. That means, at least at the end of 2009 we will be having another breakthrough in desktop innovation.

    What is a notification?

    To be sort and humble, notification can be described as informative message spotted to inform the user about something that happen. It is that bubble that popped out informing/alerting the user.

    Some of the implementation: a) in Mac, there is a Growl project that unified all application bubble; b) in Windows, Microsoft have their MFC library; c) in Linux, freedesktop notification in libnotification.

    All of them have the implementation, but only Macintosh that have consistent look. [GROWL] I don’t care about Windows world because it only copy others. In Linux, however, there is a scattered implementation of notification that needs to be unified.

    I believe when you are talking about GNU/Linux operating system, you would see that it talks not only about the library that follows, nor the desktop systems, it also talks about variety of machine. It could be your smartphone, USB video gadget, desktop computer, [ENTER ANY EXOTIC DEVICE HERE], etc. Variety devices comes with many requirement which may applied differ from each other. Thus, each of them may have unique look.

    However, for desktop users, there is an urge to have visual notification that optimally used. According to [MARK], the notification should follow these:

    1. They should stay unobstrusive and need no handling from user. They can be queued to stay unobstrusive.
    2. They should be trackable even if the notification is gone.
    3. Any action required must involve the application part, i.e. the application window/dialog box popped or come forth.

    Because of this proposal, the Ubuntu product starting 9.04 version have their own notification system that divided into two parts, the notification bubble called notify-osd and notification tracker applet that tracks notification.

    However, there is a disagreement between their proposed idea and other developer perspective. One notable disagreement is about the actionless notification. On [MARK] comment, Gregg, also pointed out that there are cases when it is natural for us to click on the notification whenever those particular events occur. For instance, if an email comes in, the application would popping the notification to the user. It will makes the user click the notification bubble, making the application focused and displaying the message. Another example is chat client application that bubbling the message whenever a friend type something.

    Because of that, the proposal that [AIS] propose is the good will of KDE people to have notification free from any desktop library is a way to go. That is by using D-BUS. DBUS is a inter-application communication system that being defined by Freedesktop. It was first implemented by GNOME people and later by KDE people. It will have the Ubuntu proposal, yet have the ability to express their ways of user usability. Eventually, it will bring goodness to both desktop world and others.

    What can be said about this lengthy post?

    The world is on the usability study that much, but our, Indonesian, IT are lacking of it. Well, I can really assure you, at least the application I participated to develop, will have user usabilty goodness in it.

    REFERENCE: [AIS] Aseigo. http://aseigo.blogspot.com/2009/05/findlibknotificationitem-1.html [GROWL] Growl. http://growl.info/ [MARK] Shuttleworth, Mark. 2008. http://www.markshuttleworth.com/archives/253

    Creating DKIM on Debian 5.0

    Creating DKIM on Debian 5.0

    DKIM is a technique based on Yahoo!’s DomainKey. Some may say that it look alike SPF (Sender Policy Framework), but the two is different. DKIM is authenticating the email sent by checking the signature againts the domain’s public key. On the contrary, SPF check the MTA (mail server) that sends the email againsts the domain’s list of MTA. For the simplicity, let’s say that the sending domain is UI and the receiving domain is GMail, so DKIM works like this:

    1. User foo send an email
    2. The UI mailserver signed the email and send it to GMail mailserver
    3. GMail then querying the DNS and search for the public key for the sending domain.
    4. After that, GMail checks signature and the data.
    5. If it is alright, then GMail deliver the message to the recipient’s mailbox.

    DKIM uses two encyption algorithms: RSA-1 (or just RSA) or RSA256. Those are public and private key pair authentication. The magic is what get encrypted by the private key can only be decrypted by public key and vice versa. But, you can’t decrypt using the same key that used to encrypt the data.

    This mechanism is differ from SPF. For mailserver that implements SPF, it would just ask the DNS about a list of legal mailserver that have the right to send email originating from that particular domain.

    Let’s us set Postfix to use DKIM. I assume that the mailserver is already functional and running.

    There are two applications in Debian repository that serve the same purpose. The first is DKIM-Proxy which is a stand alone service that get injected and then inject back. It would run two processes which one would handle incoming traffic (verifying the email) and the later would do the signing. Both have their own socket to communicate with the mailserver.

    The second is DKIM-Milter (or dkim-filter as Debian named it). It uses Sendmail‘s Milter protocol. So, it would run just like a plugin in Postfix. From my experimentation, I choose this because of the convinience for me. But, who knows you would choose the other.

    Now, let’s install DKIM-Milter:

    # apt-get install dkim-filter

    The installation includes dkim-genkey tool to generate configurations including the DNS setting. Use the tool to generate DNS entry and private key:

    # dkim-genkey -d ui.ac.id -s mail

    The parameter:

    • -d ui.ac.id means we would like to sign mails from ui.ac.id
    • -s mail sets the selector’s name is “mail“. Selector is an entry in DNS that holds public key that will be used by other mail servers to verify the signature signed by origin mail server. Well, I decide not to define this further to simplify things. You could google it.

    The command will generate two files: mail.txt which contains DNS entry and mail.private which is the private key that would be used to sign the letter. Here’s the example of mail.txt:

    mail._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=MIGfMA0GCS...AB" ; ----- DKIM mail for ui.ac.id

    The public key entry is being cut to save space pertaining aesthetic aspect in this blog post. I would put the private key into /etc/dkim directory. The directory is non-existence, so we have to create it first.

    
    

     

    # mkdir /etc/dkim
    # mv mail.private /etc/dkim
    

    Now, the DNS part. I would refined the entry to add “t=y” and remove the comments. I’m also appending our domain after _domainkey (watch for the dot after “id”). So, it would be just like this:

    mail._domainkey.ui.ac.id. IN TXT "v=DKIM1; g=*; t=y; k=rsa; p=MIGfMA0GCS...AB"

    And put that in your DNS database and reload it.

    Default installation do not run the DKIM-Milter. We need to set the DKIM-Milter in order to run. First, edit /etc/dkim-filter.conf file. Here’s the relevant things that I’ve change to suite my need: (just find the line)

    Domain      ui.ac.id 
    KeyFile     /etc/dkim/mail.private
    Selector    mail
    Mode        sv
    
    Amazing thing about Debian is it has a great documentation style, so you can read the comments on the configuration file for further information. To have a functional DKIM-Milter, edit /etc/default/dkim-filter file to set where it should listen/respond to. To simplify things, I choose to have network socket than the UNIX socket. Unix socket slightly better in performance, but it must be set so that the chrooted Postfix and the DKIM-Milter service can both read and write it. I uncomment this:
    SOCKET="inet:12345@localhost" # listen on loopback on port 12345
    Last piece that should be configured is the Postfix configuration to use the DKIM-Milter. Edit /etc/postfix/main.cf file and add these lines:
    
    

     

    smtpd_milters = inet:localhost:12345
    non_smtpd_milters = inet:localhost:12345
    
    Lastly, restart Postfix and DKIM-Milter service:
    # invoke-rc.d dkim-filter restart
    # invoke-rc.d postfix restart
    
    

    We are using the friendly GMail for testing. Here’s what we do in one of our testing subdomain before we set the DKIM: Before DKIM

    After we set the DKIM:
    After DKIM

    Now GMail knows our test subdomain. To check if our verification also works, we send the a mail from GMail to our test domain and would have these on the header:

    Authentication-Results: groups.ui.ac.id; dkim=pass (1024-bit key)
    header.i=@gmail.com; dkim-asp=none
    

    There are things that I’m not covering, like the multiple selector and using 3rd party like Verisign to accomplish that, handling subdomains, using both DKIM and DomainKey, setup UNIX socket, etc. Don’t worry, for a single domain, the tutorial may run well.

    Reference: Coker, Russel. 2008. Installing DKIM and Postfix in Debian. http://etbe.coker.com.au/2008/09/18/installing-dkim-postfix-debian/ Postfix. 2009. Postfix before-queue Milter support. http://www.postfix.org/MILTER_README.html Sendmail Consortium, The. 2009. http://www.sendmail.org/dkim