I like the idea of life hacking. I'm not sure it's a term that you'll find in the dictionary (although perhaps—dictionaries have some odd things in them now), but the idea of improving life by programmatically changing things is awesome. I think that might be why I'm such an open-source fan. When it's possible to change the things you don't like or improve on something just because you can, it makes computing far less mystical and far more enjoyable.
This month's issue starts off with Reuven M. Lerner discussing machine learning. Whether you consider it creepy or incredible (or possibly somewhere in between), sites like Amazon.com do an amazing job of determining what sorts of things you might want to buy. All those years of companies data mining for the off chance they'd connect you to something you might want to buy has turned into a very specific automation to pair buyers with items they likely want. And it works so well it's scary. Reuven talks about the science behind the magic.
Kyle Rankin follows with part two of his series on server hardening. My go-to response for “what is the best upgrade for a server?” used to be “RAM”. Now, that answer has been superseded by “hardening”. Kyle is a system administrator by trade, and he shares his skills with us in this ongoing series.
I decided to address a different problem this month: figuring out how to graph data. It's been on my back burner for years, and this seemed to be the perfect time to suss out the specifics on graphing data. If you've ever been confused and intrigued by MRTG and RRDTools, check out my look at Cacti this month. I learned a lot, and hopefully you will too.
During the past few years, I've learned to write just enough code to be dangerous. That sounds like a silly quip, but really, if you're writing code for a production environment, mistakes can be dangerous. Since I was never formally taught, it means my attempts are likely ridden with security holes and inefficient code. Susan Sons talks about code triage this month. Looking at other peoples' code is often overwhelming and seldom fun. Susan talks about how to do a relatively quick look at existing code to try to identify problems or poor programming choices. It's a great article, but it forced me to realize just how much I shouldn't be writing mission-critical code!
Jan Newmarch teaches us about 6LoWPAN in this issue. With devices around the house connecting to the Internet of Things at an increasing rate, low power connectivity is an important topic to understand. Jan discusses how to utilize the low power standards in existing equipment and how to plan your IoT implementations correctly from the start. Dibyendu Roy follows with a look at how to implement assembly code into GCC on devices that aren't strictly Intel-based. Assembly code is extremely fast, and by using chunks of it in your higher-level programs, you can really benefit on several fronts. Thankfully assembly code exists for multiple platforms and can be integrated inline. Dibyendu shows how.
If you're not happy with the world as it is, it's up to you to change the world. As open-source advocates, that's something we've been doing for years. With the advent of the Internet of Things, we have an opportunity to change the way our physical world works, and Linux is leading the way. This issue is full of insightful information about new technology, improvements on old tech and all the other things you expect from Linux Journal. Whether you're here for the new product announcements or want to see what weird new app I've found, we hope this issue has something for everyone.