Monday, October 19, 2009

Software serna Loves: IrfanView

IrfanView is a free image viewing application. It can also be used to edit images—and in fact has some pretty great editing features—but it’s primary purpose is for viewing. It’s named after its creator, Irfan Skiljan.

What makes IrfanView great?

First of all it’s fast. For all of the image types I’ve tried it on (JPG, GIF, bitmap, PNG, etc.), when you open an image in IrfanView, it opens instantly. There’s no millisecond or multi-second delay, as you wait for the program to initialize itself, or load libraries—just double-click the image, and IrfanView is there, showing it. Even for a very large image, which IrfanView might have to resize for you, it’s still much faster than any other image viewing application I’ve used. If all you want to do is look at an image—and that is probably what you’re doing, much more often than editing—having it load up quickly is a big benefit. In fact, even the “filmstrip” view, built right into Windows Explorer—which caches all of the images ahead of time—is only marginally faster for really big images, even with its cache, and is actually slower for medium or small images.

This makes IrfanView feel “lightweight.” I don’t have to hesitate before opening an image file, even a really big one, because there is no penalty for doing so; I won’t lose a ton of memory, my CPU won’t go crazy, and I won’t have to waste time waiting for the image to appear. If I want to open a Word document, or a Visio drawing, I might have second thoughts, and only open it if I have to, but I don’t have to give such considerations to opening an image.

Earlier, I mentioned resizing, and this is another handy feature built into IrfanView. You can tell IrfanView how you want to view the images that you’re opening, meaning:

  • Fit window to image (also called 1:1 ratio). The image will be shown at its normal size, with no scaling applied; if the image is small the IrfanView window will shrink down to the image’s size, and if it’s very big IrfanView will grow to the size of your screen, and give you scrollbars to see whatever doesn’t fit on the screen.
  • Fit images to desktop. IrfanView will size itself as big as your desktop, and if the image is very small it will be resized bigger to fill the screen, or if it’s very big it will be shrunk to fit on the screen. (Because of the nature of this type of activity, obviously small images can get very distorted when they’re expanded this way; medium-sized pictures—especially photographs—sometimes don’t look too bad. Sizing larger images to be smaller, however, gives very good results.)
  • Fit images to window. Similar in concept to fitting the image to the desktop, but fitting the image to whatever size your IrfanView window is. This is the only option in which IrfanView will not resize its window to the size of your image or your desktop.
  • Fit only big images to desktop, or Fit only big images to window. Similar to the above, in which very big images will be resized to fit the screen (or the window), but small images are left as they are.
There are some other options too, but these are the main ones. Personally, I usually have IrfanView set to “Fit only big images to desktop”; usually, if I’m looking at an image, I’d prefer to see the whole thing at once, but that doesn’t mean that I need smaller images expanded. And, as mentioned, you get very good results when you shrink an image to fit the desktop, it doesn’t become distorted or anything. If I ever change my mind—for example, if I want to see all of the details for a large image, and want to use the 1:1 ratio—it’s a simple menu to change the way I’m viewing the image, and IrfanView will remember the setting the next time I open it. I don’t have to open a Preferences dialog, and make the selection there, and click OK to save my settings; just change the view, and it’s done. Also, because of the speed of the application, there’s not a noticeable performance impact to having IrfanView resize the image.

If I ever want to zoom in or out of a an image, without changing IrfanView’s overall setting for viewing images, I can use the + key to zoom in or the - key to zoom out. (Or, if I want to look at a specific portion of an image, I can select it with the mouse, and then click the selected portion. IrfanView will crop the image to show just that section. It’s not a “permanent” crop—it doesn’t actually edit the image itself—it’s just for your viewing pleasure. You can “reload” the image to see the full thing again.)

This next feature might not seem like such a big deal, but it’s part of the overall lightweight feel IrfanView has: Pressing the Esc key closes the application. To me, there is just something so simple and elegant to pressing the Esc key, and having the application go away. It goes along with what I was discussing earlier, that you don’t have to think before viewing an image in IrfanView. Double-click it, look at it, and hit Esc. In your mind, all you’re doing is “looking at an image”; you’re not “opening a program”, and “selecting a file”, and “closing the program”. If you’re having large images scaled down to fit your desktop, you’re not even “using the scrollbars”. You’re just looking at an image, and IrfanView is not making itself known in the process. You can close any program using the keyboard—Alt+F4 will close any program in Windows—but there’s something holistic about a lightweight image viewing program that lets you simply hit Esc to dismiss it. In fact, maybe “dismiss” is the operative word here—you’re not “closing a program” you’re “dismissing” the image you were looking at.

A similar feature is the ability to do an impromptu slideshow, using the left and right arrow keys on the keyboard. If you have multiple images in a particular folder on your computer, and open one of them in IrfanView, you can use the left and right mouse keys to view the next and previous one. (In other words, double-click the first image and it will appear in IrfanView; press the right arrow key, and IrfanView will show the next image; hit the left arrow key, and the first image will be shown again.) Most image viewing applications have a slideshow feature—and IrfanView does as well— but there’s something so intuitive about the ability to simply view the next image by hitting the arrow key. Personally, I never use the slideshow feature in any image viewing program, even IrfanView, because I find it so much easier to simply scroll through the images myself, at my own pace, instead of after a predetermined number of seconds. (Inevitably, when using that type of slideshow, I find myself having to manually go back and look at an image, because the slideshow moved on before I was done looking, or find myself impatiently waiting for the next image to appear when I don’t care much about the current one.) I suppose if I were doing a tradeshow it might be nice to have images automatically scrolling past the screen as eye candy, or maybe it would be nice to have something like that playing at a party (maybe with pictures from a recent trip), but for my own use, I simply use the left and right keys.

Along the same lines, you can view an image in “full screen” mode—meaning that only the image will be shown, not the rest of your applications and your Windows taskbar and your desktop—by simply hitting Enter. Again, so elegant! When you’re done with full screen mode, hitting Esc again will bring it back to normal. (As with using the regular window, you have options as to how you want the pictures to be scaled (or not scaled) in full-screen mode, but in this case there is no menu, so you really do have to use the Preferences dialog to set this.)

Now, although IrfanView is primarily built for viewing pictures, it has some editing features that I’ll just briefly mention:
  • Of course it can easily crop images, but so can any image manipulation program out there, and most image viewers. (I mentioned the ability to “temporarily crop” an image for viewing, but you can do a “real” crop as well, and save your changes.)
  • It has the ability to do a batch rename of a bunch of pictures. For example, suppose you go on a trip to Florida, you get all the pictures off your camera, and have them in a directory, but they’re all named something like IMG00079.jpg, IMG00080.jpg, IMG00081.jpg, etc. You can use IrfanView’s batch rename function to give them all more meaningful names; maybe Florida_01.jpg, Florida_02.jpg, Florida_03.jpg, etc.
    • For a simple rename of one particular file, another handy keyboard shortcut: simply hit the S key, and IrfanView will bring up the “Save As” window, so you can give the image a new name (or save it in a different format; e.g. you could use this to convert a JPG to a GIF.)
  • You can very easily rotate an image, using the R and L keys (to rotate right and left, respectively), for those cases where you tilted your camera to the side, so your pictures are sideways.
  • There are many settings for adjusting the brightness or contrast of the picture, editing the colour scheme, applying effects like blur, etc.
  • Similar to the batch rename feature, I can also generate a set of “thumbnails.” If I have a number of images in a directory, I can have IrfanView go through that directory, and for each image, it will create a “thumbnail” image—a smaller version of the image. This might be useful if you were creating a website, and you wanted to have small previews of the pictures, and when someone clicks the preview you show them the real, full-sized image.
  • Finally—and I never discovered this feature until I was writing this post!—IrfanView can do screenshots which include the mouse. It’s very easy in Windows to do a screenshot—use the PrtScn key to get the whole desktop, or Alt+PrtScn to get just the active window—but you can’t get the mouse that way. If you want to get a screenshot which shows the user using a particular menu, for example, you can’t do it. So until now, I’ve been using other programs like Snagit for that type of work, but they cost money. I’ve now realized that IrfanView can do it too, and it’s free.

I’ve mentioned the simplicity of the keyboard shortcuts a couple of times; maybe you’re wondering why I think it’s such a big deal that you can rotate an image right in IrfanView by hitting the R key, instead of Ctrl+R or Alt+R. Why I’m so thrilled to be able to close the application using the Esc key, instead of Alt+F4. (Of course, you can still use Alt+F4 if you want to.) The thing is, it really is useful to have the keyboard shortcuts in IrfanView so simple, and every application would—the only reason most applications don’t do this is because they can’t. Almost all applications require a combination of the Alt key or the Ctrl key and some other key for their keyboard shortcuts because the keyboard is usually being used for other things, so you have to differentiate the user typing from the user entering a command. But for an image viewing program, you’re not using the keyboard for anything; any time you hit any key, it’s a command. The thing is, developers are so used to using Alt and Ctrl for keyboard shortcuts that even for other image viewing programs, they do the same thing—Irfan had to think outside the box not to use Alt and Ctrl (in most cases), and I’m glad he did. The only time he resorted to using Ctrl or Alt or Shift is when a shortcut key was already taken, and he had to differentiate. “I’d like to use R to ‘reload’ an image, but I already used R for ‘rotate right’ so I’ll use Shift+R to ‘reload’ instead.”

In summary: IrfanView is a lightweight image viewing program which doesn’t get in the way, and does everything possible to make it easy to view images. And yet, even with its simplicity, it also provides some powerful features for day-to-day image editing. It’ll never be Photoshop, but of course it doesn’t try to be.

It took me a while, on Ubuntu, to find a comparable image viewing application. I didn’t even care about editing—I’d use GIMP if I had to edit anything—I just wanted a lightweight image viewer, that I could dismiss with the Esc key and navigate back and forth with the left and right arrow keys and go to fullscreen mode with the Enter key. (In other words, I wanted IrfanView for Linux.) I finally did find such a program, and it’s GPicView. It’s even more lightweight than IrfanView, in the sense that there are no editing capabilities, although it doesn’t make it any quicker to load than IrfanView. (You use F11 to go full-screen, instead of Enter, but that doesn’t matter—it’s still just one key, rather than a multiple-key combination. It even lets you rotate left and right using the L and R keys, just like IrfanView!)

I highly recommend IrfanView for day-to-day viewing of images. Any time a program can get out of the user’s way, and simply get its job done, it’s well worth the download. The fact that it’s free, lightweight, a small download, and has never caused me any issues after years of use are all additional points in its favour.

Software serna Loves

sernaferna PermaPost

I’ve been thinking about this for a while: I’m going to do a series of posts on software that I enjoy using. There’s a lot of software that I use every single day because I have to, and some is good and some isn’t. For example, I have Microsoft Outlook running at all times; as soon as I boot up my laptop in the morning I open it, and it’s the last thing I close when shutting down. Outlook is a great PIM application, which I use both at home and at work, and I’ll probably continue to stick with it (when I’m on Windows)—but it won’t make this list. This list is for software that goes above and beyond.

There are some programs that are just so well designed, so well done, that I really enjoy using them. These are the programs that I immediately install whenever I get a new computer, because I don’t want to live without them. Maybe they make my life simpler, or maybe they’re just easier to use—or more enjoyable to use—than their counterparts.

In other words, this will be a series of posts in which I unabashedly gush about certain programs.

Here’s the list (which will grow, as I add posts):

Wednesday, October 14, 2009

On Obama’s Nobel Peace Prize

There’s been a lot of discussion lately about the fact that Obama won the Nobel Peace Prize. It’s the rare sort of issue that unites both liberals and conservatives: “Barack won the Nobel Peace Prize?!? He hasn’t done anything!” And I don’t have much to add to that. But I will quote a post on The Nation’s blog, from Katrina Vanden Heuvel:

I think those who argue that the Prize is cheapened are just plain silly. The Prize doesn’t go to only those who have succeeded in their efforts, nor is it a lifetime achievement award. Instead, it is often and wisely given to endorse and encourage those who are working to bring about a better and more peaceful world. As Thorbjorn Jagland, the Committee’s new Chair, said: “It’s important for the committee to recognize people who are struggling and idealistic, but we cannot do that every year. We must from time go into the real of realpolitik. It is always a mix of idealism and realpolitik that can change the world.”
It’s not a prize they give to people who have done something for peace—at least not always—but a prize that is sometimes given to someone who has promise of doing something for peace, which is what they’ve done in this case.

And, to put things in perspective, another quote from that same article:
Finally, for those who are really worried about the devaluing of the Peace Price (and this crowd includes people who’ve been bashing peace for decades), remember that Henry Kissinger is a previous winner. (Or, as Maureen Dowd put it, “Any peace prize that goes to Henry Kissinger but not Gandhi ain’t worth a can of Alpo.”)
Not that I’m arguing that they were right to award the prize to him. I’m reserving judgement on that. I just wanted to reemphasize an alternate point of view. And frankly, Maureen Dowd is right: They never gave the award to Gandhi, and they gave it to frigging Henry Kissinger. Kissinger! Frankly, if they felt that Henry Kissinger deserved a Nobel Peace Prize, then I don’t really have a lot of faith in their judgement.

My point? I have none.

No, wait! My point is this: Take the award away from Obama, and give it posthumously to Gandhi. And take Kissinger’s award, put it in a lead box, coat it in cement, throw it in the ocean, and pretend that it never happened.

Tuesday, October 13, 2009

Blog Comments

I read a couple of blog posts today discussing the topic of comments on blogs. Two sides of a debate, if you will (except I don’t know if anyone’s actually debating the issue).

First there was a post by Jeff Atwood over at Coding Horror, called Finally, a Definition of Programming I Can Actually Understand, in which he’s very much in favour of comments. A representative quote:

As I said in How To Advertise on Your Blog Without (Completely) Selling Out:

It’s an open secret amongst bloggers that the blog comments are often better than the original blog post, and it’s because the community collectively knows far more than you or I will ever know.

Indeed, the best part of a blog post often begins where the blog post ends. If you are offended by that, I humbly submit you don’t understand why blogs work.

A blog without comments is like Amazon without user reviews. Is it really even worth using at that point? The products themselves are commodities; I could buy them anywhere. Having dozens of highly relevant, informed user reviews means I’ll almost always buy stuff from Amazon given the chance. It’s a huge competitive advantage.

Jeff’s making a pretty good case that comments are an integral part of the medium of blogging; that blogs aren’t essays, per se, they’re forms of communication, and if the communication is one-sided, then it’s broken.

On the other side of the coin, we’ve got Joel Spolsky from Joel on Software fame, in an article called Learning from Dave Winer in which he argues that comments are basically just noise. I’ll post another representative quote (which actually starts with its own quote, from Dave Winer):
“…to the extent that comments interfere with the natural expression of the unedited voice of an individual, comments may act to make something not a blog…. The cool thing about blogs is that while they may be quiet, and it may be hard to find what you’re looking for, at least you can say what you think without being shouted down. This makes it possible for unpopular ideas to be expressed. And if you know history, the most important ideas often are the unpopular ones…. That’s what’s important about blogs, not that people can comment on your ideas. As long as they can start their own blog, there will be no shortage of places to comment.”

The important thing to notice here is that Dave does not see blog comments as productive to the free exchange of ideas. They are a part of the problem, not the solution. You don’t have a right to post your thoughts at the bottom of someone else’s thoughts. That’s not freedom of expression, that’s an infringement on their freedom of expression. Get your own space, write compelling things, and if your ideas are smart, they’ll be linked to, and Google will notice, and you’ll move up in PageRank, and you’ll have influence and your ideas will have power.

So on the one hand we have Jeff Atwood with his assertion that comments are an integral part of the medium, and you’ve got Joel Spolsky with his assertion that comments are mostly noise, and don’t add anything to the discussion—that if you really had something to say, you’d get your own blog and say it there. And that the magic of PageRank would take care of adding structure to the conversation.

Long time readers (if any) will probably not be surprised to hear that I’m mostly with Joel on this one. But the conversation got me thinking. In fact, it was Atwood’s post that I read first, and only got to Spolsky’s post because Jeff linked to it. (In fact, my wife’s organization has started a blog, and I was planning to send her the link to Atwood’s post, along with a link to The Corporate Weblog Manifesto. I probably won’t bother anymore; I’ll just send her a link to this post, and say “read the posts that I linked to”.)

So I did some more thinking on the subject. I think it comes down to what kind of a blog you’re trying to create; if you’re trying to build a community, then of course Atwood’s right: comments are an integral part of that, and Atwood makes a good case that spending some time with them is an important way to build that community. Others will have their own blogs, and will also contribute to the discussion that way, but comments allow for a much more immediate way to do that. On the other hand, if your blog is more of a personal thing, and a way to get your own opinions voiced, then Spolsky is right, comments will generate more noise than usefulness.

Which also explains why I am more closely aligned with Spolsky when it comes to my blog. This blog is not intended to be a community; it’s intended for me to spout my own personal opinions, for my own personal use. In fact, all of my blogs are really more for my own benefit than anyone else’s; if nobody ever reads the serna Bible Blog it’s cool with me, because I’ll still be getting my own use out of it. Same with the serna Book Blog. I write all of my blogs as if there are readers, but I don’t really care if there really are. (That’s right: still no stat counter on this or any other of my blogs.) That’s not to say that I discourage comments, but I must say that any time I do get notified of a comment—on any of my blogs—I immediately get a bad feeling in my gut, and only after I’ve read the comment and found it to be positive (and/or helpful) does the feeling go away. When I get an email from Blogger saying “so and so has left a new comment on your post such and such”, my initial reaction is always “oh no, what now…” And that’s despite the fact that most of the comments I get these days are helpful and/or positive.

It extends even to blogs that I read; I rarely read the comments on any blog. I’ll look on Google for other bloggers who are posting about the same topic, but I don’t look down to see what the commenters are saying. Some blogs are better than others, of course. Some have active communities, where the comments will provide useful discussion and a frank exchange of ideas. (Ironically, the majority of comments I get on this blog are in that category—or, at the very least, friendly.) Other blogs will have a maelstrom of noise so powerful that after reading them it’s hard to have intelligent conversation to anyone about anything for thirty minutes after; you find yourself afraid to compliment a fellow employee’s shirt for fear of having someone jump out beside you and tell you you’re a fool and don’t know what you’re talking about and Microsoft sucks.

Perhaps it’s a nature vs. nurture discussion; maybe Jeff Atwood simply “grew up” with friendly blogs that had intelligent conversations happening in the comments, while Joel Spolsky and I “grew up” with blogs frequented by trolls with nothing better to do with their time than telling us that we’re fools.