When most people think about a company's reusable assets, source code
doesn't usually show up on the list, even though millions of dollars are
spent every year on creating and maintaining code. Most large companies are
managing hundreds of millions of lines of code—the majority of which was
purpose-built to solve a specific application problem.
From my perspective, one of the best parts of being a Web developer is
the instant gratification. You write some code, and within minutes,
it can be used by people around the world, all accessing your
server via a Web browser.
In many cases, scientific research takes you into totally new areas
of knowledge, never before explored by others. This means the
computational work you need to do may be totally new as well. Although
typically such code development still happens in C or FORTRAN, Python
is growing in popularity. This is especially true in physics.
Creed of Python Developers
Pythonistas are eager to extol
the lovely virtues of our language. Most beginning Python
programmers are invited to run import
this from the interpreter right after the canonical
world. One of the favorite quips from running that
It has a tremendously large user base, and countless libraries have been written in it.
Surely it is the perfect language with no flaws at all! Unfortunately,
that is simply not the case.
Previously, I erroneously titled my column as "SIGALRM Timers and
Stdin Analysis". It turned out that by the time I'd finished writing
it, I had spent a lot of time talking about SIGALRM and how to set up
timers to avoid scripts that hang forever, but I never actually got to
the topic of stdin analysis.
I received an interesting message from Angela Kahealani with a challenge:
"Here's what I'd like to see in Work the Shell: a full-blown shell script
template. It should comply with all standards applicable to CLI programs.
Many of my previous articles have looked at software packages
that do scientific calculations and generate scientific results. But,
columns of numbers are nearly impossible to make sense of—at least, by
regular human beings. So what can you do? The answer is visualization.
For Linux users, the command line is a celebrated part of our entire
experience. Unlike other popular operating systems, where the command
line is a scary proposition for all but the most experienced veterans, in
the Linux community, command-line use is encouraged.
Many programming languages include libraries to do more complicated
math. You can do statistics, numerical analysis or handle big
numbers. One topic many programming languages have difficulty with is
symbolic math. If you use Python though, you have access to sympy, the symbolic
As with many of the challenges we tackle, the latest project has sprawled across more articles than I ever expected when I first received the query from a reader. The question seems reasonably simple: given a month, day number and day of the week, calculate the most recent year that matches those criteria.
For those of you playing along at home, you'll recall that our intrepid
hero is working on a shell script that can tell you the most recent year
that a specific date occurred on a specified day of the week—for example,
the most recent year when Christmas occurred on a Thursday.
Rubies, Pythons and Perls!
It may sound like a new Indiana Jones movie or
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.
A short while ago, an article appeared in Linux
Git was the be-all and end-all of source code revision control systems
("Git—Revision Control Perfected" by Henry Van Styn, August 2011).