May 2012 Issue of Linux Journal: Programming

Rubies, Pythons and Perls!

It may sound like a new Indiana Jones movie or possibly a cheesy platform-style video game from the 1990s, but the title of this column actually refers to our focus this month—programming! Not that there's anything wrong with daring adventures in remote locations, it's just that all the red tape can be overwhelming. You know that somewhere there was a college intern filing environmental impact study reports, negotiating work visas for multi-country searches and adding venomous predator riders on the insurance policies. Dr Jones just grabbed his hat and found the treasure!

Here in the real world, we prefer to create our own treasures. That's where this issue comes into play. Reuven M. Lerner is actually a bit of a rebel this month, and in an ironic twist, he focuses on Web design frameworks. The worlds of Web design and programming certainly overlap, so we'll give him a pass. Dave Taylor wraps up his Words With Friends series by demonstrating how to calculate word point values. Dave's articles always are fun for me, because scripting is the only sort of programming I ever do (usually out of sysadmin need), and watching him create stuff that I understand is fun.

Kyle and I are system administrators by trade, so it's not a surprise that our columns this month show it. Kyle describes how to use iftop, which is like the monitoring tool top, except for bandwidth usage. If you are struggling to find where all your bandwidth is going, iftop can be invaluable, and in his article, you'll learn how to use it. For my column, it's quite clear where the bandwidth is going—to the thin clients! This month, I finish my three-part series on LTSP and discuss how to scale your thin-client environment. As with most complex problems, there isn't a single solution to LTSP scaling. I talk about a handful of methods and help you choose the best option for your environment.

I'm sure you're thinking, "I thought this was the programming issue!" Rest assured, it is. Alejandro Segovia explores Lua, a multiparadigm programming language. No, he doesn't take us to a Luau, with grass skirts and coconuts, but in his words, he "presents a reusable mechanism through which you can implement an object-oriented model using Lua's built-in constructs." On his heels, Amit Saha follows with a great article on using App Inventor to program for Android. With its drag-and-drop interface, App Inventor nips at the learning curve a bit for Android programming. Whether you want to create a fancy GUI application or a service that runs in the background, Amit's article will be very useful.

Dave Phillips introduces Pure Data (Pd), which is a graphic patching environment for audio production. If that sounds confusing, it's a bit like an old modular patching synthesizer on steroids. If even that sounds confusing, you should read the article. Dave discusses using Pd to program audio. It's pretty cool stuff, and you won't want to miss it.

Amit is back for a second time with an article on parallel programming. It seems everything from pocket watches to Space Shuttles (oh, how we miss Space Shuttles...) have multicore processors, but not all programs take advantage of them. Amit shows how to parallel program in Python and C. Because every modern CPU has more than one core, it makes sense to understand how parallel processing works.

Every programmer needs reliable hardware on which to run their programs. We included Florian Hass' article on highly available iSCSI storage this month, because even the best code will fail if the server fails. Florian shows how to use DRBD and Pacemaker to keep iSCSI available even when systems fail. It's a great read for anyone concerned with reliability and uptime, and aren't we all concerned about that?

We also have the full gamut of Linux Journal goodies this month. I review the ZaReason Valta X79, we have a slew of new product announcements, and we have more tips and tricks than you can shake a stick at. So put on your leather fedora, grab a whip and start on your programming adventure! We'll sit back and worry about all the red tape. Try to avoid venomous spiders though; our "adventure insurance" doesn't cover that.

Available to Subscribers: May 1

______________________

Shawn Powers is an Associate Editor for Linux Journal. You might find him chatting on the IRC channel, or Twitter

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

UEFI coming this year.

Leslie Satenstein's picture

With new computer bios's being provided with UEFI, when will we have UEFI compatible loaders (anaconda for Fedora, and others for SUSE, DEBIAN, UBUNTGU ARC' etc, etc, etc.

Secure boot is not secure if you are able to update the bios. And if you cannot update the bios, I would not buy that brand of mother board, or laptop or desktop.

UEFI is new technology for bios vendors. And therefore will have more bugs than a standard bios.

We should get a downloadable file from the bios vendor to allow us to revert back to legacy bios code.

Interesting, but do you have

Anonymous's picture

Interesting, but do you have anything that us non-linux users can use?

I admit, I have not fully explored all of the meta-languages, so I would find a good tutorial on the breadth and capabilities of each of these tools. If nothing else, it would help me decode the acronym soup you use.

Just a thought,
DAB

Programming Languages

sergio1020881's picture

All programming languages suck, because of this and that.
Java sucks, C ## more or less, python seems to lazy and incomplete, ruby the syntax is horror movie, and others suck.
C is hard is outdated.
When will there be a programming language of ease of use and libraries for everything, the only language that seems tAll programming languages suck, because of this and that.
Java sucks, C ## more or less, python seems to lazy and incomplete, ruby the syntax is horror movie, and others suck.
C is hard is outdated.
When will there be a programming language of ease of use and libraries for everything, the only language that seems to meet this is C##, but learning curve has to be assisted i think, or that is it sucks as well.o meet this is C##, but learning curve has to be assisted i think, or that is it sucks as well.

Programming Languages

sergio1020881's picture

All programming languages suck, because of this and that.
Java sucks, C ## more or less, python seems to lazy and incomplete, ruby the syntax is horror movie, and others suck.
C is hard is outdated.
When will there be a programming language of ease of use and libraries for everything, the only language that seems to meet this is C##, but learning curve has to be assisted i think, or that is it sucks as well.

All progamming languages suck.

Leslie Satenstein's picture

I guess that means that Linux (most code), Windows (most code), which is written in C, sucks.

C# is a complete object oriented programming language, great for the web. C++ is great for creating frameworks, such as GUI, or specialized frameworks for networking, etc.

Assembly language is great, because you can optimize code to your hearts content, and you can make many many programming errors, taking hours to debug.

So lets see, we don't have a mind-reading language yet. What would you suggest?

Here is an idea, look at interpreted languages that give you instant feedback. Try the J language. http://www.jsoftware.com/forums.htm

eBook formats?

carlfink's picture

Hey! Didn't you used to make issues available in multiple eBook formats? I just bought this issue and all I got was the PDF, which is completely unreadable on my smartphone.

Where's the .mobi or .prc version? I did try a Calibre conversion but your layout is too complex and produces gibberish.

Thanks.

You can buy individual issues

Webmistress's picture

You can buy individual issues in ebook formats through Barnes and Noble and Amazon.com, and subscribers have access to all formats.

Katherine Druckman is webmistress at LinuxJournal.com. You might find her on Twitter or at the Southwest Drupal Summit

eBook formats!

carlfink's picture

I'm sure what you write is true. It doesn't answer my point: I bought a single issue that I really have no way to read, since reading PDFs on my computer is unpleasant.

Subscribers are very patient?

carlfink's picture

"Available to Subscribers: October 1"

One might suspect that this is some form of mistake on someone's part, if one were the negative type.

Programming languages for Linux

leslie Satenstein's picture

I do a lot of C, am learning Qt and writing C++, and have considered python.

Today I read about C# being open and free, with Oracle suing Google because Oracle claims the APIs are not free, but copyrighted.

A team has made a cross compiler from java to C# (mono) and the results are amazingly fantastic. Interpretor overheads are between 5% to 10% of java vm.

So, switching all java code to C# could result in tablet battery life doubling.

I think C## is my next language.

Python is bigger linux language

wantingflash's picture

I would choose python to program in. It seems to be the Linux choice. All you have to do is tear into a few deb packages from dotdeb.com and you'll see that almost all of them are done in python.

Webinar
One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Webinar
Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix