Filed under Software

Sunday Selection 2011-12-11

Around the Internet

More shell, less egg It’s alway a joy to see two masters at the top of their craft engaged in a respectful, but determined duel. This is a short commentary on Donald Knuth and Doug McIlroy’s approaches to literate programming. Worth reading even if you’re not a big fan of literate programming.

Selective use of technology I firmly believe that science and technology is a good thing and that our world is better because of them. However I also understand that technology cannot do everything for us. In particular there are a lot of decisions it cannot make for us (yet). I also tend to get a lot of my best work when I am least partially disconnected and can hold at bay the full force of the Internet. All things in moderation.

Why sugar makes us sleepy (and protein wakes us up) As much as many of us would like to live as if we disembodied brains surviving on anything that barely resembled food, that is definitely not the case. Since we are stuck with our flesh-and-blood physical bodies for the foreseeable future, it is a good idea to figure out how it all works and make the most of it.

From the Bookshelf

Do the Work While I’m not entrely a fan of Steven Pressfield’s use of vaguely “spiritual” ideas and terms, this book is still worth reading for everyone. It’s especially useful if you have that big project you’ve been thinking about but never got around to actually starting. At $1.99 for the Kindle edition, it’s a steal.

Video

What we actually know about software development Despite the importance of software development, most developers are acutely unaware of the scientific studies in the area and rely mostly on anecdote. Luckily there is an increasing amount of research in software development (not to be confused with computer science) and it’s worth knowing what we actually know about the field and what is myth.

Tagged , , , ,

Sunday Selection 2011-11-20

Around the Internet

How an MIT postdoc writes 3 books, a PhD defense and 6+ peer-review papers and finishes by 5:30. One of the best and worst things about being in a PhD program is that it is opened: it can take as long as you want it. Though being at a world class research university like MIT or Cornell is certainly a wonderful experience, I’m not at the point in the life where I want to spend more than a few years in one place. I want to do good work, do it in a focused manner without killing myself and hopefully have a life and get done in a reasonable amount of time.

Thrust, Drag and the 10x Effect Managing your time goes hand in hand with managing your energy and your activities. In the software world there’s a claim that the best engineers are often ten times as productive as mediocre ones. This article aims to give you some tools to help you on your way toward being ten times as productive.

Why Emacs? I make no secret of the fact that I think Emacs is the best text-editing environment on the planet. This post gives a very straightforward but informative introduction to the question of “Why Emacs?”

Video

Derek Sivers’ Speech to Berklee College of Music I have a tremendous amount of admiration for Derek Sivers. While this speech is geared towards music majors, most of his lessons and advice can be generalized to your profession and life in general. There’s a lot of wisdom packed into a few minutes.

Software

Readability is an awesome tool in the fight for a reading-focused, cleanly designed web experience. They started as a browser plugin that strips a page of unnecessary clutter and presents just the text in a clean, visually pleasing format. They’ve released upped their game with a payment model for publishers, a rich web application and a review-pending iOS app. If you read a lot on the web you probably want Readability in your toolbar.

Tagged , , , ,

Music from the Command Line

In addition to programming I also love music. If I’m not listening to music I’m probably not working. While I love Pandora, my slightly off-mainstream musical tastes means that I start getting repeats pretty soon. I carry my personal library on my iPod but I don’t like listening on my iPod all day. Also, if the office is empty and my computer has speakers I like to take the headphones off and turn up the music. Last week I realized that my work machine had a 500 GB hard drive in addition to the SSD so I decided to copy my personal library on to it.

I know that there are a number of good music players for Linux but I personally wanted a very lightweight setup and didn’t need any “management” features (I have everything neatly organized into Artist and Album folders anyways). So I decided to use a little gem called MPD – the Music Player Daemon.

MPD is a daemon – it runs in the background and plays your music. It doesn’t provide an interface itself but you can connect to it using a number of clients. I love MPD becuase it’s very UNIX-y and just gets out of your way. You tell it where your music is and point it to a number of files it needs for operation (logs, a database and some state information). You then tell MPD which user to run as and a port on localhost to listen on. Here’s my config file.


music_directory                 "~/Music"
playlist_directory              "~/mpd"
db_file                         "~/mpd/mpd.db"
log_file                        "~/mpd/mpd.log"
pid_file                        "~/mpd/mpd.pid"
state_file                      "~/mpd/mpdstate"

user                            "username"
bind_to_address                 "127.0.0.1"
port                            "6600"

. As you can tell from the screenshots, it’s a lightweight but fully functional client.

This kind of setup probably isn’t cup of tea but I don’t want to convince you that it’s better than whatever current setup you have. For me this is amazing for a number of reasons. Firstly it’s quickly configurable and it stays out of my way after that. Second it’s very lightweight. Ncmcpp comes up in a second, I can quickly go through my library and add a few hours of music and set it to play. Then I can close it and not give it a second thought as I do my work. Since it’s so quick to come up, I can keep the client closed and open it if I do need to do something (like skip a track or see what’s playing). Since I have a terminal (or five) open at any time, it’s a quick process the few times I do have to do it.

Reason three is the client-daemon model. I think there are graphical clients that give you more standard functionality, but since I don’t need any of that, it isn’t forced upon me either. There is however an even lighter client called mpc (that is part of the standard MPD install) which lets you execute some actions like play, pause and skip without even opening a full client. Thus interaction is even faster.

In conclusion, if you’re looking for a simple, efficient music player that will play your music and stay out of your way then MPD is worth a try. If you’re not a command-line afficionado you might like one of the graphical clients. I’ve used Sonata myself in the past and liked it.

Tagged , ,

Sunday Selection 2011-11-13

Around the Web

I hate writers because Real Artists Ship and real writers, you know, write

Structured Procrastination from a comment on my previous post on salvaging dead time.

BE ON FIRE uses simple words and simple drawings to get across an important message.

Video

Automating Inefficiences is a great watch for all the times when programming stops being fun and becomes a drag. Happy Hacking.

Software

Tyrs comes along at a great time when yet another change to the Twitter website makes it even less usable. Need a clean, fast, no frills Twitter client? Love running cool software in a terminal? Get Tyrs.

The Interface Paradox

As much as I love programming and good old-fashioned text-based command lines, I have an interest in ergonmics and futuristic interface. A few days ago a post entitled “A Brief Rant on the Future of Interaction Design” made the rounds on the Internet. It opens with an old, but interesting video and goes to make the argument that our current obsession with flat touchscreens and simple gestures is doing our us all as disservice. Our hands are capable of complex gripping, grasping and touching motions and having all that expressivity confined to a small, two dimensional surface with a limited number of motions is self-defeating. The article makes the damning statement: “Are we really going to accept an Interface Of The Future that is less expressive than a sandwich?”

The article helped me express an uncertainty that’s been floating back and forth in my mind for some time. I use my iPod Touch on a daily basis and I’ve been loving the multitouch trackpad on the new Macbooks. I love the swiping motions for window management and moving things around. At the same time I’ve started drawing by hand again (I loved drawing as a kid) and I realize that putting a pencil to paper is a rather complex but very fulfilling activity. Strangely enough I think that both the pencil and the touch-based iOS interface have a lot in common. In both cases, the actual physical device almost disappears letting you focus on the underlying application. The iPad or iPhone itself is just a thin frame around whatever app you’re using. The pencil is basically just a simple pointer but allows us to create an infinited range of images with it.

However in both cases, the expressiveness offered by the device is not enough. Pencils are not enough to express all the images we might want to create. That’s why we have pens, brushes, chalk, crayons and a variety of papers and canvases. The flat touch interface is also not enough, especially if we are confined to a small surface that fits in one hand. The question then is how we can take the simplicity of our current touch interface and extend them to a larger set of expressions and interactions?

Case in point is the camera interface on the iPhone. For a long time there was a software button that you had to touch to take a picture. But that meant sticking your finger in the middle of the picture. Normal cameras have a better interface: there is shutter button on the top that keeps your hands far from the actual image (even if you’re using a LCD screen instead of a traditional viewfinder). This deficient interface on the iPhone led to the Red Pop, a giant red shutter button and now iOS 5 turns one of the hardware volume buttons into a shutter button.

The Red Pop camera interface for the iPhone

The Red Pop camera interface for the iPhone

Having a fluid, upgradeable, customizable software interface is nice and I like smooth gradients and rounded corners as much as the next guy. But our hands evolved to use actual physical matter and before computer interfaces we built a lot of interesting physical interfaces. Apple has hooked us on the idea of sleek, smooth devices with no extraneous. While it’s great to lose unnecessary knobs and edges the Apple design philosophy might not be best in the long run, especially if your device’s UI doesn’t neatly fit into the touch-drag-swipe system of gestures.

Ultimately it would be great to have “smart matter” physical interfaces – the flexibility and programmability of software with the physical usability that solid matter offers. Imagine some sort of rearranging material (based on some form of nano- or micro-technology maybe?) that can be be a simple smooth shell around your interfaces but can change to form buttons, sliders, knobs or big red shutter buttons as your application requires. But in the years (decades?) between now and then we need other solutions. The range of accessories and extensions available for the iPhone (including the Red Pop, tripods, lenses etc.) seem to suggest that enterprising young device maker could use the iPhone (and it’s successors and competitors) as a computing core to which they can attach their own physical extensions. With a more open and hackable platform (an Android-Arduino hybrid perhaps) we might see a thriving device market as well as an app market. Am I a dreamer? Hell yeah, but as the projects I’ve linked to show, I’m certainly not the only one.

Tagged , , , ,
Follow

Get every new post delivered to your Inbox.

Join 287 other followers