Many of us grew up with LOGO, the kid-friendly programming language that
guided a little turtle around a screen. Yes, it was simplistic. Yes,
it taught only the very basics of programming concepts, but it also
inspired an entire generation of programmers. The applications you run
every day were written by people who steered a digital turtle around a
screen in third grade.
December 2013's EOF, titled "Mars Needs Women", visited an interesting
fact: that the male/female ratio among Linux Journal readers, and Linux
developers, is so lopsided (male high, female low) that graphing it would
produce a near-vertical line.
In my last article, I started discussing Compojure, a Web framework written
in the Clojure language. Clojure already has generated a great deal
of excitement among software developers, in that it combines the
beauty and expressive elegance of Lisp with the efficiency and
ubiquity of the Java Virtual Machine (JVM).
During the past month or so, I've also been dealing with an aggressive DDOS
(that's a "distributed denial of service") attack on my server, one
that's been a huge pain, as you might expect. What's odd is that with
multiple domains on the same server, it's one of my less-popular sites that
seems to have been the target of the attacks.
The last few months, we've been building a complex shell script
to play elements of the game of Cribbage, demonstrating a variety of
concepts and techniques as we proceed. That's all good, and last month,
the script expanded to include a "shuffle" capability and
the ability to deal out six cards, a typical two-player starting hand.
In an earlier article ("GNU Awk 4.0: Teaching an Old Bird Some New
published in the September 2011 issue of Linux Journal), I
gave a brief history of awk and
gawk and provided a high-level overview
of the many new features in gawk 4.0.
Sublime Text is a proprietary, cross-platform text editor designed
for people who spend huge amounts of time shuffling code around. A
programmer's editor, Sublime Text is a third option to the long-standing
"Vi or Emacs" conundrum. Going beyond the basics of syntax highlighting
and code folding, Sublime offers a litany of innovative and unique
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.