If I've learned nothing else from American politics, it's that it doesn't take knowledge or insight on a topic to have lots to say on the matter. Thankfully, although this issue's Programming focus isn't even close to my area of expertise, our authors don't have that shortcoming. The worst you should have to put up with is me trying to explain what this issue contains. Feel free to point and laugh.
Kyle Rankin, a fellow sysadmin, works through an interesting conundrum this month. You're all familiar with programs like DBAN for wiping sensitive data, but what if you need to delete information securely on a server thousands of miles away? (Or, in the next room if you're lazy like me.) Kyle shows how to go about taking care of a seemingly difficult chicken/egg scenario. Kyle also shares a “Tale from the Server Room” with Bill Childers and talks about the joy of UPS delivery—more specifically, when servers are unboxed, sometimes things don't go quite as planned.
If you're beginning to worry our Programming issue doesn't contain articles about programming, fear not. Yes, we try to include a little something for everyone, but this issue focuses on programming, and we've got tons of useful stuff for you. Nathanael Anderson starts out with an appealing way to learn multiplatform GNU development: getting a guitar synth to work with Rock Band 3. Unfortunately, there's no programming that can make me any better at Rock Band, but using a real guitar is a step in the right direction!
My friend Adrian Hannah is back this month with a primer on the Make utility. For most users, prepackaged applications are how programs are installed. For programmers, or people on the bleeding edge, it's necessary to compile programs themselves. Adrian shows how to “make” programs from their source code. Sometimes when you are on the bleeding edge, you'll notice that a newer version of an application isn't always better than the previous version. Programmers need to be aware of such things, and Bart Polot and Christian Grothoff show us Gauger, a tool that monitors performance regression. Sometimes an application is slower because it has more features, but sometimes it's just slower because of an erroneous source code change. Gauger helps determine when new versions go bad.
When I took programming in college, I started out learning to program command-line utilities that did little more than solve the problem presented in the curriculum. If programming was a little more interesting back then, I might have stuck with it for longer than the single semester it was required. My problem was that I wanted to make GUI programs. PJ Radcliffe shows how to develop GUI interfaces with Qt4 Designer and Eclipse. Granted, a fancy GUI controlling a cruddy underlying program isn't very useful, but at least for me, a cool-looking program is something I'd like to spend time perfecting. PJ shows how easy it can be to include GUI controls.
If GUI programs aren't for you, that's fine too. Adrian Klaver explores jEdit, which is a very powerful and cross-platform text editor. jEdit has features that make programming much easier, and its cross-platform nature means you can use a consistent interface regardless of the computer you're stuck using. Arnold Robbins is a fan of text as well, and he presents GNU Awk version 4. Awk has been around forever, and although it's still as useful as it's ever been, version 4 offers a few new tricks as well.
If you're a programmer, this issue likely will be one of your favorites of the year. If you're not a programmer, there still are exciting things to read, and you might find that programming is more interesting than you originally thought. I know I learned a lot this month, and I might have to dust off my old C++ course book and figure out how to make a GUI version of “Hello World”. Either way, we hope you enjoy reading this issue as much as we enjoyed putting it together.