A Better Image Viewer?

Dear Lazyweb,

I’m looking for a better image viewer. For years I’ve been using qiv because it load images really fast and it’s not a memory hog. Unfortunately it doesn’t work well with dual screens. The images tend to span both monitors and I really can’t pan the image around well.

What I want is something that understands XRandR so images only display on one screen. I would like a full screen mode where I can easily zoom in and pan the image. I want to be able to launch it from the command line. Extras like exif parsing and a thumbnail browser would be really nice.

Back to IceWM

After a few weeks of trying out Fluxbox on a new Fedora 10 desktop, I’m going back to my long time favorite, IceWM.  I guess I’m just too stuck in my ways to change at this point.

What brought me back to IceWM?

  • The command line in the taskbar.  Having it built into the window manager really does make a difference.  Even though I was able to bind CTRL+ALT+SPACE to launch fbrun, it couldn’t launch fast enough.  Often I would start typing before the little window came up and I’d lose a few characters to the last app in focus.  I also miss being able to hit CTRL+ENTER to get the command in a terminal.  I do that often to get the python calculator.  It’s an easy patch, I know.
  • All the built-in keyboard bindings for moving around windows.  I really like being able to quickly move between workspaces, dragging windows along with me.  I also like being able to position windows with the keyboard.  In IceWM you can hit Meta4+NumPad to place the window in that section of the screen.  Add shift to the combination to move it in that direction until it hits something.
  • I also missed the built-in CPU and Network monitors in the IceWM taskbar.  I like to know when my network or CPU usage spikes.  I probably could have found a monitor to put in the slit, but I don’t really like the idea of the slit.  I never was a WindowMaker fan.
  • If you grab the edge of a window in Fluxbox you start to resize the window.  This drove me nuts when I had Firefox all the way on the right, I would reach for its scrollbar and get the window edge instead.  The theme I was using didn’t even have size borders!  I couldn’t find any way to turn that off.

I did like a few things about Fluxbox.

  • I liked the sleek look of the toolbar.  I just wish I could have stuck a few more things into it like CPU and Network graphs or a command line.
  • It worked well with a dual-head setup.  IceWM 1.3.x has better support, but the taskbar still doesn’t span both monitors.  That bugs me a bit.
  • You could set the width of items in the taskbar to a fixed width which made it look really clean.  You could also include only minimized tasks in the taskbar which seemed like a good idea at first.  Then I realized that I’d lose track of windows once they get burried.
  • I really liked being able to switch workspaces by using the scroll wheel on the desktop or toolbar.  I’m still trying to do that in IceWM and it’s not working.

I have been wanting to try out Awesome, but I don’t think Awesome 3 is going to make Fedora for a while.  It’s waiting on XCB support to be includes in the Cairo packages.

Bugzilla cc: Preference

Here’s a tip for Bugzilla users. Have you ever added a comment to a bug or changed something about it and it sneakily added you to the cc: list? Doesn’t that drive you nuts when you’re already cc’ed on the bug through a list subscribed to the bug, or, even worse, you filed the bug. There’s a option under preferences, Automatically add me to the CC list of bugs I change with settings Always, Never, and Only if I have no role on them. Set this to Never so you have to explicitly set this to be included on the bug.

Linux Distro Meme

I don’t want to start responding to all the memes, but this one seems like a way to introduce yourself.

1) Which was your Linux distribution story?

I started using Linux on and off when you had to download Slackware on floppy disk sets. I installed it onto a UMSDOS partition and bought a book on UNIX. That was back in high school, pre-1996. During a summer job one of the techs was using “make menuconfig” to compile a kernel and said it was “Red Hat” so I used that when I started college and was still dual-booting between Win95 and Linux. A few years later I learned about the marvel of Debian and apt-get and switched. I was a strong Debian user for years until I joined Red Hat. Now RHEL5 is my desktop distro. I have it customized with IceWM, mrxvt, and custom builds of xchat and vim. I still have a Debian server running which I never intend to reinstall, just upgrade along the Debian lines. I’m trying to configure a Fedora 10 distro the way I like it so I can build some apps from trunk. I need a replacement for mrxvt, something light and includes a broadcast feature.

2) What is your preferred $your_distribution version?

Red Hat Enterprise Linux 5, until I can recreate my environment on Fedora 10.

3) Write a short story (more like an anecdote) about your past distribution.

As a testament to Linux, I upgraded the hardware on my Debian server from a 233MHz Pentium MMX to a 2.5GHz Celeron without having to reinstall anything. Just a new kernel, a few changes for the IDE to SATA transition and it booted. Total down time, three hours.

collie 0.13 released

I fixed a few bugs and I’m hitting one of them enough to be annoying so I decided to cut a release so I could do an official build. A tarball available for this one.

Changes in this release:

  • KILLED tags should return non-zero too
  • Fixed signal handling so test programs don’t ignore SIGINT
  • Fixed sequence padding in the nanny scheduler
  • Fixed buffering when tag names collide

Introducing qarsh

This tool is a little more dangerous than the other two.  This one is an acronym for Quality Assurance Remote SHell and it is a replacement for ssh in testing environments.  Let me say that again, this is for testing environments on a secured network.  This is NOT something you want to run on a production machine or on an Internet facing server because it is essentially a back door.

How is it different from ssh?

Logs all commands run

Every time you run a command through qarsh, the daemon logs the full command to syslog.  When something goes wrong on the remote system you can look through /var/log/messages to see what commands were run mixed in with system log messages.

No authentication or encryption or related setup required

In a testing environment, authentication and encryption are not important features.  We’re more interested in running command A on host B as user C.  Being able to do that without jumping through hoops allows us to be more productive in our testing.  By leaving these features out, we also save a lot of overhead per connection.

Exits the same way as the remote command

In order to make qarsh more transparent, we made it return exactly the same way as the remote command.  That means a wait() gets the same status back including which signal killed the remote command.

Relays signals to remote commands

We also pass signals forward so when you kill qarsh it in turn kills the remote command.  This makes it easier to clean up a test run which is spread across multiple nodes.  We forward INT, TERM, HUP, USR1, and USR2.

Does not hang when system hangs or reboots

One problem with ssh is that it can take a long time to detect when a remote host reboots and hangs because it waits for TCP to return an error.  This can take 10 minutes or more.  Qarsh uses a secondary daemon to detect when a remote host is no longer responding or has rebooted.

No tty support, don’t try running vi

This is not a complete replacement for ssh as it does not provide tty services needed to run interactive commands.  For system investigation, you should still use ssh.

Where to get it

The source code for this project is in my public_git directory.

git clone git://fedorapeople.org/~nstraz/qarsh.git

Introducing gxpp

Here’s another little tool which I use all the time.  It’s like grep, but for XML documents.  By using XPath expressions you can easily pull information out of XML documents to use in your shell scripts.  It’s great for digging through XML documents for that one fields which you need.

I use it a lot in cluster testing to get a list of node names from cluster.conf.

[root@morph-03 ~]# gxpp '//clusternode/@name' /etc/cluster/cluster.conf
tank-01
tank-03
tank-04
morph-01
morph-03
morph-04

It’s also very useful when used with collie as shown in Collie Gxpp Tricks.  In that wiki page I also talk about gxpd which deletes sections from an XML file and gxpm which makes it easy to insert new sections into an XML document.

The source code for this project is in my public_git directory on fedorapeople.

git clone git://fedorapeople.org/~nstraz/gxpp.git

Introducing collie

Today I would like to introduce to the world, collie, a tool to describe, run, and log test scenarios.  I use this tool every day as part of testing GFS and Cluster Suite.  It allows me to describe complex test scenarios without having to write every error handler or manually capture every line of output.

The source is available via git.fedorahosted.org and I started a mailing list for dicussion.  We have some guides started on the wiki to give some ideas about what you can do with collie.