Comparing RPM versions in the shell

Via Planet Debian I recently read Comparing version numbers in the shell ,which sort of suggests using sort -V to compare package versionnumbers on RPM-derived systems. My reaction to this is kind of mixed,because how good an idea this is depends on what you're trying to dowith this comparison.

If you just want to compare generic version numbers, ' sort -V 'may do what you want. You should read the coreutils documentationfor sort very carefully, especially Details about version sort ,because


My .screenrc

Recently, Wesley David put out a call for people to share their .screenrc files ,even if they aren't particularly exciting. I am a regular but notheavy user of screen and have been for years now, so I have fixedopinions (and well-worn reflexes) but not very much cleverness.

So, here are bits of my .screenrc , annotated with comments.

The most important setting for me is the simplest:

escape ^_a

This makes the screen escape character into what I considersomething


The tradeoffs for us in a SAN versus disk servers

In yesterday's retrospective I didn't say much about whether our overall architecture was theright approach. I think it was for the time, but before discussingthat I want to cover what I see as the broad tradeoffs betweenhaving fileservers using a SAN and having fileservers host the disksthemselves.

Given that we don't do failover in practice and no fileserver usesdisks from more than two backends, one possible design is to justget rid of the SAN by putting the fileservers in, say, SuperMicro'


A retrospective on our Solaris ZFS-based NFS fileservers (part 2)

In yesterday's entry I talked aboutthe parts of our Solaris ZFS fileserver environment that worked nicely over the six years we've run them. Today is forthe other side, the things about Solaris that didn't go so well.You may have noticed that yesterday I was careful to talk specificallyabout the basics of ZFS working well. That is because pretty muchall of the extra frills we tried failed or outright blew up in ourfaces.

The largest single thing that didn't work out anywhere


A retrospective on our overall fileserver architecture et al

My look back at how our fileserver environment has done over the past six years hasfocused on the Solaris fileservers (both the stuff that workednicely and the stuffthat didn't quite work out ).Today I'm widening my focus to how well the whole idea and some ofour overall decisions have worked out.

I think that the safest thing to say is about our overall architectureis that it's worked well for us; taking a proper retrospective lookback at the constraints and so on involved in


A retrospective on our Solaris ZFS-based NFS fileservers (part 1)

We're in the slow process of replacing our original Solaris ZFSfileserver environment with a second generationenvironment . With our currentfileservers enter their sunset period it's a good time to take anuncommon retrospective look back over their six years of operation and talk about what wentwell and what didn't quite do so. Today I'm going to lead with thegood stuff about our Solaris machines.

(I'm actually a bit surprised that it's been six years, but that'swhat


How my new responsive design here works

Encouraged by the commentators (and their suggestions) on myearlier entry about responsive design here ,I sat down and banged out some CSS and revised my markup. Since Iwent through a bunch of iterations (many of them not working) toget my current results, I want to write down everything before Iforget how it all works and why I needed to do things the way Ihave.

Following Aristotle Pagaltzis 's suggestion,the core styling is done with ' display: table... ' settings on


Python 3 has already succeeded in the long run

Somewhat recently there has been a certain amount of commotion andstrong articles about what Python needs to do about the Python 2 versusPython 3 in order to for one or the other or both to grow and besuccessful. People's prescriptions have been all over the map; I thinkI've even seen articles advocating discarding Python 3 as a failedexperiment and going back to Python 2 development as the way forward.Given that I'm strongly down on Python 3 , youmight expect me to agree with the


Things I like about Go

Writing a reasonable sized Go program has wound up giving me abigger exposure to Go , reinforcing some ofmy existing views on it and giving me others. Today I want to talkabout some nice things that I think Go does, things that makeit easier to write code in it than I initially thought it might be.This is an incomplete list and I'm sure I'll find or think of otherthings in the future.

  • := type inference means that much of my code is free of any

I need some responsive website design around here

For reasons that involve increasing usage and lowering costs, workgot an iPad Mini and I wound up as its holder (it may shock you toknow that we didn't really have any tablets around before this).One of the things I've done with it is look at websites, including Wandering Thoughts . In a way this is unfortunate, becausenow I really want to redesign Wandering Thoughts to be responsive.What I really mean by 'responsive' here is that I want the sidebarto go away