The Power of KDE

One of the most advacned development tools of any environment is KDE’s UI scripting environment (aka DCOP) and a GUI scripting tool by the name of Kommander.

Kommander may be a revolution in application development, unlike any other tool created for scripting. What Kommander does is essentially extends the power of RDE to scripting. Language support include Bash, sh, Csh, Zsh, straight DCOP, or even Javascript. linux.com has a two part series on Kommander that should be required reading for anyone who is starting to do development on the Linux/KDE platform.

What is amazing is that the bulk of execution time is actually done by the KDE application binaries themselves; meaning that Kommander applications run almost as fast as stright C++/KDE/QT apps. Peviosuly I have talked about kdialog and its uses as a GUI interface for commandline scripts. Kommander takes this functionality to the Nth power.

Couple other quick KDE tutorials are:

Free as in Employed

This article from heise.ds (German site, English translation) has put to print something that many of us in the Open Source world have been thinking for a while.  That Open Source Software (OSS) may be useful as a tool for keeping development jobs in country.  Like it or not, most of the innovation that has occurred in the computer world sense before the dot com boom is a direct or indirect result of OSS.   I think this can mainly be attributed to few usage restrictions, lots of available code that already exists, and generally small number of legal hassles involved in the OSS world.  Who would have thought that the “evil open source world” (to quote Mr. Gates) would end up being the savor of the America’s tech industry?

Lockdown

Werner Puschitz has published an article on securing Linux on production environments.  It talks about simple things like stopping unneeded services and also covers more advanced subjects like configuring specialized PAM authentication techniques like locking down a users account during certain times of the day or number of failed logins.  Pretty useful article for anyone configuring Linux machines and making sure they are safe.

Watch “24”, anytime

I Cringely has a spectacular article about the benefits of combining the benefits of Open Source Software, Wireless Internet access, PVR and VoIP.  This is the kind of technological innovation that changes the way the world works!  The last line explains it all:

That’s the big lesson here, not that some guys up in Canada can run their own Star Trek marathon, but that Open Source software is leading to digital devices being used in large volumes in ways their designers never envisioned. This takes control of the network out of the hands of the providers and into the hands of the users. And the outcome doesn’t have to be some socialistic information economy. On the contrary, it means that whole new business models will appear to take advantage of the fact that all types of communications and all types of content will be able to reach all parts of the market with almost no friction.

KDE on the command Line, Part #1

One of the strengths of Linux is the ability of the operating system to work in either graphical user interface mode (aka GUI), like Windows 2000; or command line mode; like DOS.  The reason this is an advantage is that in many cases the addition of GUI components to the interface just add unneeded bulk.  Who needs a GUI on a web server?  The other advantage comes from extensive amount of fine grain flexibility that is possible with the command line.  Something that is simply not possible in a GUI.  For example the grep program (a text processing utility in Unix) has thousands of possible options.  Imagine trying to make a usable  GUI program with literally thousands of options.

One noticeable problem exists.  Historically working on the command line meant that you functionally lost the use of GUI tools when not in GUI mode.  For example, you want to read an entry in your GUI address book but only have command line access to your computer.  One would think you would be out of luck.  In addition, some applications gave you no way to control GUI programs from the command line

However, the superb design and tremendous flexibility of KDE has created an incredible bridge between these two worlds.  For example, want to use your KDE trash can while using the command line?  Try this:

kfmclient move <url> trash:/

kfmclient is a tool for opening and accessing file from the command line.  kfmclient automatically uses your KDE preferences to handle command translation.  Here is another example.  Say you want to open a file with your default KDE application handler (whatever that may be.)

kfmclient exec file:/home/weis/data/test.html

or specify your own program to open the file with (even non KDE programs)

kfmclient exec file:/home/weis/data/test.html mozilla

Why is this useful?  Because kfmclient understands KDE kio and dcop information you can specify anything that you would normally do in Konqueror.  This works particularly well for bash scripting.  Say you want to have a program that opens your remote computers /etc/groups file, over ssh, with THAT computer users default editor?  Here is a quick two line bash program for just such a case:

#!/bin/bash
kfmclient exec fish://192.168.1.25:/etc/groups

It will even open up the username/password dialog for you (don’t forget to check the “remember password” check box to have kwallet store the username and password.)  I gotta go for now, but this is just the tip of the iceberg.

kio-kde

One of the benefits of KDE is that is has the the most powerful IO interface of any desktop environment I have ever seen.  KIO allows for a pluggable interface to outside resources in a simple and powerful way.  The best part about it is that is works system wide. For example, long before Windows was working on a DB file system; a enterprising KDE developer had created kio_sql. This allows every KDE application to have access to any database as if it were just part of the file system.  You can open table data just like you open a test file.

One very cool KIO module is kio-locate. Locate is a system wide indexer for Unix OSes.  On the command line you can type “locate bob” and it will return every file with the name bob in it INSTANTLY.  Want to open your websites index.html file but you don’t remember where it is?  With kio-locate you simply start your web development environment, click file->open… and in the file selection dialog type locate:index.html… and you will see every file named index.html that you have access to on the system.  Its like having a file name meta data search available in every KDE application.  Check out this screeny to get an idea of what I mean.

There are literally dozens of KIO interfaces for everything you can imagine.  kio_rar (for access to your rar files without unrar’ing them), kio_burn (gives every KDE application drag-&-drop file burning capabilities), kio-sword (browse the bible like its a file system), and the one I use most often ipodslave (aka: kio-ipod), which gives all of my KDE applications access to my ipod (i.e. any music player can play from it, and all applications can save files to it.)

People who finish quicker than me

Remember when you were young and wanted to test how quickly you could finish Super Mario Brothers?  How about Contra?  Well, archive.org has a  list of video’s by people beating video-games in record  time.  Talk about amazing.  How about Half-Life beaten (hard setting) in 48 minutes!  Metroid (old Nintendo edition) completed in 22 minutes!  Mario Brothers (NES edition) five minutes.  Metal Gear Solid (extreme mode), one hour and 18 minutes. … seriously!  Watch the full video’s and be amazed!

Disk Imaging

Ghost 4 Unix (aka g2u) is a disk imaging tool for Unix OSes. Basically its a custom FreeBSD distro on a disk with local and network disk writing tools. It supports both IDE and SCSI; and work with every known x86 operating system. Work on same-to-same size disks and smaller-to-larger size disks.

Linux Command #1

Here is a Linux command that I am always trying to remember.  It checks to see which applications/services are using/keeping busy a given file system.  Its particularly useful when you want to find out why you cannot unmount a given file system.   If, for example, you want to check and see why you cannot unmount your USB pen drive from /mnt/usb you would type:

/usr/sbin/lsof +D /mnt/usb