Arch Linux
February 9th, 2010
Every now and then I like to set up a Linux instance in VMware to try out new software or to have a sandbox for development. Lately, I’ve found that Arch Linux has some nice features that make it perfect for that kind of setup.
First, it’s unobtrusive. you get a bare basics environment and nothing else. The base install includes little other than the essential packages and lets you build from there. It’s minimal and lightweight with install ISO’s weighing in at around 360MB and the netinstall ISO’s just under 180MB.
When you need more than the base install, Arch Linux has a package system called pacman, which is a breeze to use. Installing a package often involves little more than executing “sudo pacman -S <package name>”. And since it’s is on a rolling release cycle, there’s no need to wait for the next release of Ubuntu to get the latest packages. Configuration is done via text files; adding services to run at start up requires just an edit to /etc/rc.conf. If you need to build packages, Arch Linux provides the Arch Build System, which is a ports-like build system. If you can script in bash, you can build a package.
Good documentation is also available straight from their site. You don’t need to troll through dozens of forums to figure out how to get something installed, you go straight to their wiki, where there are guides on everything from the basic installation procedure to setting up Linux containers. The wiki also hosts translations of these guides in a variety of languages, which I imagine would be helpful for non-native English hackers.
Arch Linux reminds me a lot of my first Linux distro, Slackware. Both are minimalist, functional, and allow the user to maintain a lot of control over the system. There isn’t much hidden behind the curtain. Arch Linux, however, throws in a packaging system and more current packages. Getting it set up and running couldn’t be easier. For that, it earns a place in my toolbox.
Stitching Mandolux Wallpapers
November 4th, 2009
I’ve got two 24″ monitors that I use side-by-side in TwinView mode in my home office, so when I look for desktop background images I hit up Mandolux. Mandolux offers free and original wallpaper in a variety of sizes for even the largest displays.
The only wrinkle in all of this is that Mandolux splits the larger widescreen backgrounds into separate left- and right-hand images. However, since I run my display in TwinView mode, my desktop is essentially a single 3840 x 1200 display ( two 1920’s side by side). For the Mandolux wallpapers to display correctly on my background I need to merge the two images into one. I could manually stitch the two images together with an image editing program like GIMP, but since I downloaded a dozen of the background images to try out, doing it manually sounded dauntingly tedious.
That’s when I remembered that the ImageMagick suite of tools includes the ‘montage’ tool. The ImageMagick tools can be installed with the following command under Ubuntu:
sudo apt-get install imagemagick
Then, to stitch the images together I ran the following command:
montage mandolux-ga2k6-*-1920.jpg -tile x1 -geometry +0+0 mandolux-ga2k6-3840.jpg
in a directory containing mandolux-ga2k6-l-1920.jpg and mandolux-ga2k6-r-1920.jpg (left and right side images, respectively). It is also worth noting here that the first filename precedes the second filename alphabetically, so the files are laid out from left to right in that order.
The result is mandolux-ga2k6-3840.jpg, which is a file with both images merged into into one 3840 x 1200 image.
Arcade Gaming with MAME, Part 1
December 15th, 2008
For recreating the video arcade game experience on the PC, MAME (Multiple Arcade Machine Emulator) is the standard. It works by recreating the hardware circuitry of older arcade machines and loading the game software within this emulated environment. Everything from the CPU, video, sound, and RAM chips is emulated. Under MAME, a wide variety of arcade machines are emulated, from the old Williams machines that ran Joust to the newer CPS3 systems that run the Street Fighter III series. Emulation support for new systems is also added from time to time.
While the official release of MAME is built for Windows, various other flavors of MAME are released for a variety of platforms. One such flavor is SDLMAME, which is easy to build in just about any *NIX environment that supports the SDL library. Another feature of SDLMAME is that it follows the official MAME releases closely: updates to MAME are quickly added to SDLMAME.
Read the rest of this entry »
Ubuntu Upgrade Fail
November 4th, 2008
When I finally got around to upgrading my Ubuntu install to 8.10 (“Intrepid Ibex”) earlier this week, I ran into an issue with my keyboard. Yeap. My keyboard.
My left-arrow key no longer worked. My right arrow-key didn’t work. My up-arrow key became Print-screen. The first thing I did was hit the Ubuntu forums, where I found about a dozen “solutions” which either didn’t work or were just plain hacks. I finally found one that worked for me:
- Open up /etc/modprobe.d/blacklist with your favorite text editor. Make sure you open it up with root privileges.
- Add the following line into that file. Save, close, and reboot.
blacklist evdev
Apparently, this was a known issue in the release candidate, but they went ahead and did a general availability release by just documenting a temporary solution in a forum. Breaking keyboard functionality (it worked perfectly in 8.04) is not the way to win new users, especially when the distribution is billed as user-friendly. I’d rather they push their release date back than have a show-stopper like this make it’s way out the door.
Torrenting Remotely with Transmission
October 4th, 2008
Transmission is now officially my favorite Bittorrent client. It’s small and light on system resources, yet retains many of the features that initially drew me to Azureus. But the feature that I find most useful is that Transmission allows you to control a running instance from the command-line on the terminal. This makes managing my torrents remotely via SSH very easy without the need to either setup a VNC session or installing a web-interface plugin (e.g. Azureus’ HTML WebUI).
Transmission is a suite of four tools:
- transmission: The GTK+/Mac OS X graphical frontend.
- transmissioncli: The command-line interface.
- transmission-daemon: Runs in the background and takes commands from transmission-remote.
- transmission-remote: Command-line tool to send commands to either transmission-daemon or the graphical frontend.
To start torrenting remotely we first need to startup an instance of Transmission. We can do this by entering the following in terminal instance:
transmission-daemon
Typically there will be no response printed to the terminal. We can verify that tranmission-daemon has by entering the following command to get a list of all programs running under your current user account:
ps ux
If you see a line like the following in the results:
ivan 25599 0.1 0.3 60348 7896 ? Ssl Sep30 6:07 transmission-daemon
… you should be ready to use Transmission!
- To start a torrent, enter
transmission-remote --add <path to .torrent file>. - Wait a few seconds and enter
transmission-remote --listto list the status of current torrents handled by transmission-daemon. - To stop a torrent, enter
transmission-remote -t x --stop, where x is the numerical ID of the torrent shown in the left most column of the--listresponse. To restart the torrent, entertransmission-remote -t x --start. - Removing a torrent is similar. Enter
transmission-remote -t x --remove.
As long as transmission-daemon is running, you can log out from your terminal session without affecting the running torrents. They will continue to download and seed even when you are not logged on. When you are finally finish torrenting, issue the following command to terminate transmission-daemon:
killall transmission-daemon
This will terminate all instances of transmission-daemon currenting running under your current user login.
