Skip to content

Please, stop abusing “tar” with “zxvf”

I can’t stand it anymore, I need to write something about the abuse of tar(1) I constantly see around the web. It hurts my eyes, it bothers me because of its abuse of the UNIX philosophy, and most importantly, it teaches bad practices to new (and older) users of GNU tools.

Most often I notice this usage of tar in instructions given at download pages of open-source software, where a user needs to download a bundle of code and needs instructions how to extract it, build it and install it.

Read more…

Remove a shell loop: xargs unusual usage

I would like to write down an unknown, yet very useful, usage of xargs(1).

In short, if I want to run a command on a list of files stored in a file, I could simply go for:

$ xargs -n1 ls -lh < files.lst

Read more…

Disable Keyboard Shortcuts at gnome-terminal

It is amazing how poor or absent is the documentation at Gnome 2.x, yet it can be operated by anybody without any doubts or second thoughts. Amazing! I’ve just recently needed to disable some Keyboard Shortcuts at the gnome-terminal application. The settings can be found at “Edit | Keyboard Shortcuts…” menu option (how obvious). I very easily spotted the required command I wanted to change. By clicking at the command’s shortcut you’re given with the option of changing this option. But, how can I disable it? Searching the relevant document text, it is only mentioned how somebody can actually view this information! Unbelievable!!!

Image Read more…

Creating Virtual Development Environments

All developers, sooner or later, need to create an isolated and well-known environment for their work, which won’t affect or be affected by the hosting environment where the user works on.

This is a standard case that happens quite often while developing on Python.  There are many elegant solutions for this problem, and one of them is Virtualenv. Read more…

Yocto Project and Embedded Linux

After reading this introductory aritcle about Yocto Project, I became curious a lot to check it out and start playing with it a bit. Especially after I’ve read about the existing QEMU-support and the detailed instructions for Getting Started and Quick Start Guide.

So, I leave here a note to check it out, both Yocto and OpenEmbedded project. The next crucial is having an appropriate good machine to run these guides and deploy the development tools!

Vim’s hanging indent

This tip is not Linux-specific (since is available at so many platforms) but it is surely useful, at least to me, for daily programming or other editing activities that take place on Linux. I leave here this note, since this Vim’s feature is one that I always forget how to access and use it: I want to format paragraphs having a left, hanging indent.

Read more…

Bash Completion Reference for Git

The following staff can be found at Git‘s contrib directory and in Bash‘s completion directory, which of course is copied from the first one. I’ve put it here just for easy and quick reference of the relevant information. Further customization of Bash’s prompt is, of course, desirable. Read more…

Is LDD dangerous?

In this excellent article, the author exposes problems of ldd and loader of Linux. It’s something that I need to check in the future!

Replace is Obsolete?

Certainly, everybody has his habits in every aspect of his life. Editing a text or source file is no different. My case in this post is about using the Replace commands and facilities found at almost every modern editor or IDE. After reading this article, I finally realized how useless is the Global Substitute command found in Vim, the so called :%s//g command, an artifact of the old, line-oriented editors like ed.

In fact, it’s much easier and safer to find first the text to replace, edit it, and then by pressing n (find next) and . (repeat last change) to apply again the last editing change. This way it is possible to inspect each replace and perform this procedure very fast, when the changes are few. Most of the times this is the case. If the changes needed are more, then the global substitute command can be used as a last resort.

Insert a commit in the past (Git)

Another note about Git: how I can easily insert a commit in the past or before another commit. Of course, all such changes to Git’s history must take place only in the local (non-publish) history or repositories.

I had a Git repository and needed to rewrite my local history by inserting a new commit somewhere in the past. Read more…

Running a Git Server

In this article (which I reproduce for future reference) of Linux Magazine two common solutions are presented for running an appropriate Git server.

Although it is possible to run just a plain git server command, many issues arise after this move that need to be arranged. Actually, I have the feeling that this operation of Git is similar to Mercurial‘s internal, local HTTP server. In other words, it’s mostly for quickly exchange and collaborate 2 developers in contact. Furthermore, it provides the groundwork for building other, more robust frameworks for this task, as is Github.

Read more…

Create a filesystem on a file

I was always wondering if it’s possible to create a filesystem on a file instead of a disk partition. Finally, I just discovered that it’s not only possible, it’s really very easy and intuitive procedure. In fact, one could even create a swap partition and mount this one instead of a physical one!

Read more…

Separate commits at Subversion

In this article of Ryan Tomayko I’ve found a nice trick for Subversion. when there are changes at current working directory that belong to at least 2 different changesets. What is easily achieved in Git using the git add -i (or the more straightforward and short git add -p) command, in Subversion another approach is necessary.

Read more…

System Monitor Tool Xymon

In an article I recently read, Monitoring with Xymon, the author presented an excellent and simple in usage and presentation monitor tool, Xymon.

The great thing is that in its web site one can find a live demo of the tool using real data from author’s systems.

I’ll certainly have a look on this project for the future.

KVM General Notes

In an introductory article Carla Schroder gives a brief overview of using virtualization in an Ubuntu system using the KVM technology.

Of worthy notes are the necessary packages (qemu-kvm, libvirt-bin, virt-manager, bridge-utils) of achieving KVM virtualization, some useful commands and further links.

   $ kvm-ok
   $ virsh -c qemu:///system list
   $ virt-manager -c qemu:///system HOST

Further study can be found at:

The rest of the article is simple a guide and demonstration to a GUI tool that I don’t have to repeat here.