Binary jokes are always fun, and although technically I could say “welcome to issue <BINARY_NUMBER>” every month, it's more fun with nice round numbers like 256. Plus, this is our Programming issue, and there are 10 types of programmers: those who understand binary, and those who don't.
Reuven M. Lerner starts things off by not only pointing out why we should use databases for data manipulation, but also how and why we should focus on doing so efficiently. Databases, SQL databases specifically, often are a performance bottleneck in applications, but that doesn't mean databases aren't incredibly useful and efficient. If we use them correctly, they will do what they do best: manipulate data for us.
Kyle Rankin guides us into the murky world of 3D printing software. With the popularity of 3D printing on the rise, so goes the proprietary interests in the technology. Trying to keep the world of 3D printing as open as possible is challenging, but thankfully there's still hope. Kyle covers a few open-source options for printing and design sharing, and sets the stage for his concluding article next month, when he'll provide an Octoprint tutorial.
My column this month is helpful as well, but in a very different way. I was on vacation in the Smoky Mountains when I wrote this article, and rest and relaxation were on my mind. So I decided it was a good time to help everyone relax, nerd style. Whether you're a casual puzzle-gamer or a hardcore Orc-slayer, I tried to cover some of my favorite options for wasting away your vacation time behind a screen. (Note: any wasting of time at work should not be blamed on me, but rather on “burn-in testing” for your workstation hardware!)
Logic programming is vital for many applications from artificial intelligence to creating mazes for video games. Sergii Dymchenko introduces Picat this month, which is a programming tool for testing and programming with logic. If you're familiar with tools like Prolog, Picat will be a pleasant step up, but even if you've never dealt with tabled logic before, Sergii's article will help you (and your programs) think like a Vulcan in no time. It's only logical!
Hash tables are incredibly powerful programming constructs, especially for storing unsorted (or unsortable) data. Ideally, the hash tables will make it easy to retrieve the data in your program and help manage seemingly unmanageable chunks of data as efficiently as possible. Conceptually it can be hard to wrap your brain around, but Mihalis Tsoukalos helps us understand and implement hash tables in our programs. If you're finding yourself needing arrays full of arrays in order to handle your variables, be sure to read his article!
Steven Buczkowski takes us into the world of Slurm. (For you Futurama fans, I assure you no Wormulon queens were abused in the making of this article.) Specifically, Steven explains how jobs are managed in a Slurm cluster and how utilizing a MySQL database for controlling those jobs is an ideal and efficient way to do it. If you've moved from manually load-balancing your jobs to a full-blown cluster environment, Steven's article will help jumpstart your methodology.
If you're not a programmer (or not a Futurama fan), this issue still has plenty to keep you entertained and informed. We have new product announcements, tech tips and tons of features for any open-source enthusiast—programmer or not. And if you're not careful, this issue might turn you into a programmer as well! Heck, if you got my binary joke earlier, you're already on your way to the twisted mindset of a programmer!