Martin Streicher Archive

Martin Streicher is the founder of Locomotive, an expert Rails consultancy. Formerly, he was Editor-in-Chief of Linux Magazine from 2002 to 2007. You can contact him at martin.streicher@linux-mag.com and follow him on Twitter.
Helpful Tools for Software Developers
Coding is often just a small part of software development. There are lots of other tasks to attend to. Here are some tools to help with all aspects of the job.
Keep a Paper Trail with Paper Trail
Who did what when and to which? Don't guess. Track changes with this Rails add-on.
Typekit: Banishing Blight from the Browser
A new kind of startup—a font service provider—turns Verdana into Vavoom!
Hijack: Living on the Edge of (Ruby and) Rails, Part 4
Hijack can debug most any running Ruby process. Here's a hands-on introduction.
Living on the Edge of Rails, Part 3
The inside look at Edge Rails rumbles on.
Living on the Edge of Rails, Part 2
Edge Rails has more treats in store for early adopters and lazy developers.
Living on the Edge of Rails, Part 1
What's new in Rails? Lots and lots. Over the next week, peek into Edge Rails and look forward as Rails 3 chugs to release.
Of Spiders and Scrapers: Decomposing Web Pages 101
Not all sites proffer slick RESTful interfaces and XML feeds. In those cases, collecting data requires some good, old-fashioned scraping. This week, let's look at some of the tools and techniques required to scrape a site.
Don’t Repeat Yourself. Use Rails Templates.
Rails is a productive environment -- once you install gems, plugins, and initializers, configure routes, generate code, migrate databases, and tune your environments. Rails templates can automate all of that busy work.
Extend Your Scripting Language with SWIG
SWIG makes it easy to write an extension for your favorite scripting language (or languages). Learn how it works.
Hands-On with Adobe Browserlab
One day, we won't have to worry about browser eccentricities. (I have a dream.) Until then, tools like Browserlab make the horrible realities of Web development tolerable.
Sifting Through Billions and Billions of Bytes
Here are ten or so invaluable resources for software developers.
Building Small Sites with Webby
Webby is ideal for a content archive, a small business or governmental website, and even small catalogs that link to PayPal for commerce. Here, learn how to use Webby to create a site fast.
Rip: A New Way to Package Ruby Software
Tired of juggling Ruby gems? Try Rip. It's a one-size-fits-all, no fuss, powerful package manager.
Google Web Elements: Essential as Fire, Water, Earth, Air
"Build it and they will come?" Try "Embed it and they will stay."
Balsamiq Mockups: Pencil and Paper 2.0
A new tool, Mockups, models graphical user interfaces and Web applications. Here’s a hands-on review.
Sunspot: A Solr-Powered Search Engine for Ruby
Search can make or break your website. Sunspot and Solr give you an intuitive engine that maps directly to your Ruby objects.
The Ugly Truth About the Web
Tired of Arial and Verdana? Add some sizzle to your Web pages with a new open source project that can render any font in a page. (Flash not required.)
Shifting Applications Into Gearman
Gearman enables a new level of software abstraction. With this lightweight infrastructure you can to outsource work to better-suited computers, run tasks in parallel, and combine code written in different computer languages.
Micro-Frameworks: Big Things in Small Packages
Are Rails, CakePHP, Django, and Catalys too big for your taste but you still want the benefits of DRY programming? Maybe it's time to get small with micro-frameworks.
Hey, Don’t Dump. Debug!
Are the "Two Ps" (print statements and prayer) all that comprise your debugging strategy? It's time you were introduced to the Interactive Ruby Debugger.
MySQL: Alive and Kicking
Despite some of the concerns floating around the MySQL Conference this week, there's some good news coming out of the event. The MySQL developers are returned to a "release early, release often" schedule and the pending 5.4 release has a number of features worth keeping an eye on.
The Fast and the Furious On Rails
Protecting the sanity of Rails developers is job #1! Reduce new project setup time and speed the installation of essential gems and plug-ins with new application templates.
Don’t Make Me Write HTML
No one likes writing -- or reading -- HTML. Thankfully there are tools like Markdown, HAML and SaSS to make your hypertext life easier.
Rails 2.3 Makes Finders Fancier
Checking out improvements to Rails' ActiveRecord object, including dynamic scopes and batches.
Lua, Lua, Oh, Oh
Compiled programming languages and scripting languages each have unique advantages, but what if you could use both to create rich applications? Lua is an embeddable scripting language that is small, fast, and very powerful. Before you create yet another configuration file or resource format (and yet another parser to accompany it), try Lua.
A Tour of the Linux File System
Take a tour of the Linux filesystem. Drive down /bin Street, cruise over to /usr Lane, and buy some souvenirs over in /dev Drive.
Flex and PHP
Flex and PHP builds highly-interactive, media-rich and Internet-connected applications that can run in every Web browser.
Piquant Picks for the Penguin
A faster file system, bugs squashed — inquire within, Tony Soprano meets Firefox, and Zander keeps his promise.
Flex, JavaFX, or Silverlight?
Which, if any, rich Internet application is right for you? Why?
The 2006 Holiday Shopping Guide
Have a penguinista in your life? Need the perfect holiday gift? Look no further! Here’s a parcel of presents that’ll please even the pickiest geek. Best of all, none will put your eye out.
“Portland” Ready for Prime Time
Portland Project releases unified interface for desktop graphical environments, included in major Linux community distributions
As the Web expands, so does Linux. And Redmond may not be able to keep up.
The Big Five-O
A whirlwind tour of my history in computing.
Patently Wrong
The United States patent system needs a lobotomy. Or just stiff medicine.
The Guppy and the Whale
Bigger is not always better, unless it is.
Big in Europe
A recent poll of European Union local governments shows increasing adoption of free and open source software. Indeed, uptake of the Penguin is happening everywhere, albeit quietly.
Change Made Easy
Change owner, mode, and group of an entire directory all at once using chown. For example, chown -R a+rw joe:dev dir makes dir and everything in dir world-readable and -writeable, and sets owner to joe and group to dev.
The Woe of the Web
The World Wide Web is fifteen. Like a typical teenager, it’s pimply, ungainly, and still has a lot of growing up to do.
Fingering Processes
If you want to know what process(es) are running a certain application, use pidof. For example, pidof /bin/zsh yields all process ID's running /bin/zsh.
Understanding Open Source Licenses, Part Two
More than the protocols, backbones, and servers that underlie the Internet, open source licenses have facilitated the exchange of source code and ideas. Here's a look at academic and reciprocal licenses and how to use them.
The Boston IT Party
Once again, Massachusetts is in the middle of a revolt. And while the state may not go so far as dumping copies of Word over the side of the Eleanor, like the original Boston Tea Party, it’s the intention that counts.
The “M” in “LAMP”
MySQL 5 promises many new features.
The X File
To run X clients securely, use ssh -Y host. DISPLAY is automatically set to encrypt and tunnel X protocol back to the X server.
The demise of the software industry is being greatly exaggerated.
Exclusive: Interview with Monty Widenius
With MySQL 5 now widely available, the MySQL founder weighs in on the competition, the future of the MySQL database, and how to manage contributed code. Here’s ten questions with the co-founder and CTO of MySQL AB.
Directories Made Easy
Use mkdir -p to create a hierarchy in one fell swoop. For example, mkdir -p a/b/c/d makes directory d in directory c in directory b in directory a.
Fundamentals of Copyright Law
The phrase "open source license" refers to a large number of agreements that license the copyrights inherent in software widely, fairly, and with the fewest restrictions possible. This article -- the first of two -- describes the tenets of copyright and explains the intents of an open source license. The second article in this series explores individual licenses, such as the GNU Public License and the Apache License.
To see the list of groups you're a member of, use id -Gn. id has effectively replaced groups and whoami.
Faster, Simpler Version Control
Tired of CVS? Try darcs. Creating a repository with darcs is as easy as cd ~/myproject; darcs init; darcs add -r *. Use apt-get install darcs to install or see the darcs wiki for source, tools, and more info.
Look at Files in Reverse
To look at a log in reverse (most recent events first), run tac logfile | less. tac reverses the lines of any file. Use tac - to read from stdin.
Move Wisely
If you're not careful, mv can overwrite existing files. Move files wisely with mv --backup=existing -v. To save typing, set VERSION_CONTROL to existing.
MySQL 5.0 Now Available!
MySQL AB, developer of the world's most popular open source database, today announced the general availability of MySQL 5.0, the most sigificant product upgrade in the company's ten-year history. Starting today, MySQL 5.0 can be downloaded under the open source GPL license at http://dev.mysql.com.
Google’s Folio Portfolio
Google’s attempt to index print books has come under fire from publishers. How foolish.
Add Users En Masse
You can quickly create new user accounts or update existing accounts with the newusers command. Create a list of accounts in a passwd-like file and run the command newusers file.
Customized File Metadata
Build your own view of file metadata (permissions, file name, file size, and so on) with the stat command. Use -c (or --format=) to display the fields you want, in the order you want -- perfect for processing with scripts!
Beware Root
Avoid logging in as root. Instead, use sudo to run individual commands as the superuser. As Spider-man says, "With great power comes great responsibility."
Disable A User Account
To temporarily disable a user account, run password -l username. To re-enable an account, use the -u option.
Process Lookup Made Very Easy
Need to find or kill a process? Use the utilities pgrep and pkill. For example, the command pkill -INT -u root sshd sends the INT signal to the sshd process owned by root.
Easy Parsing
If you have a comma-delimited file, use cut -s -d, -f n file to extract the nth field from each line of file. The -s option skips lines without the delimiter.
Compressed File Tools
View and process a gzip-compressed file (such as an archived log file) without expanding it using zcat, zdiff, zmore, zless, zcmp, zgrep, zegrep, and zfgrep.
Download from the Command-Line
wget is an invaluable utility. Use it from the command-line or a shell script to download a web page, an entire web site, a tarball, or just about any http: or ftp: URL. wget can also help debug HTTP and FTP connection problems.
31 Flavors? Yum!
Which would you prefer? Chocolate day in and day out or a new flavor every day of the month? Much maligned, the smorgasbord of Linux distributions is really quite delicious.
Watch a Log File
If you want to watch a log file, use tail -F. The -F option prints new content as it's appended (like -f), but also re-opens a file if it's created anew, as occurs when a log file is rotated.
Perl One-Liner
You don't have to know Perl to use Perl. The command-line perl -p -i -e 's/oldstring/newstring/g' * replaces all occurrences of oldstring with newstring in all files in the current directory and makes backup copies of the original files.
GNOME 2.12 Now Available!
The GNOME project has released version 2.12, "the latest version of the popular, multi-platform free desktop environment, providing all the tools a user needs for everyday work, and a platform for developers to write new software."
Find Any File Fast
Need to find a system configuration file but only remember a part of its name? Use locate. It's faster than running find / ... and much simpler to use. (Run updatedb often to keep the locate file database up-to-date.)
Reference the Directory Stack
If you use pushd and popd to maintain a directory stack, use ~n on the command-line to reference the nth element of the stack with (where n is 0, 1, 2, and so on).
Run a Job at Boot
If you want to run a command every time your machine boots, but don't have access to the init scripts, use cron's @reboot qualifier.
Apple Move Sweet as Pie
Intel processors in the Apple G6? Yawn. Mac OS X on Intel processors? Yahoo!
The Tux Top Ten
The top ten moments in Linux history, open for debate.
Door 1, 2, or 3
Three open source licenses is more than enough.
Do the Mambo
The new Linux Magazine web site is an assembly of open source tools.
Dear Bill
Poor, poor Microsoft. It has gobs of cash, a small army of employees, and the greatest monopoly ever and it’s still boring as hell. Microsofties, bring the flames!
Linus’ Law to the Letter
Open source is more than a mantra; it’s also a best practice.
The Emperor Penguin: An Interview with Linus Torvalds
Perenially pragmatic, Linus Torvalds, Linux's creator, talks abou the kernel, its future, and his favorite pet projects.
Star Talers
Fear, uncertainty, and doubt. Sounds like a Grimm’s fairy tale.
Plumbing the Depths
After almost two decades of working with computers, I want to give it up. Instead, I want to become a plumber. Plumbers have it made.
Deja Vu
Last month, I expressed boredom with the personal computer. Beyond gigahertz, gigabytes, and wireless, I complained, personal computers sold today look and feel a lot like those sold ten years ago.
Same as it Ever Was
Every so often, something truly magical appears and changes the universe forever. Recent marvels like wireless and digital content are just two examples that come to mind. Each changed our expectations of what's possible.
The Reinvention of Novell
With the recent acquisitions of Ximian and SuSE, Novell Chief Executive Officer Jack Messman has transformed a marginalized company into a mover-and-shaker. Look out, Red Hat - and Microsoft - Novell has big plans for Linux.
A Dimming Bulb
Back in 1985, in my last year of graduate school, I was lucky enough to get a "real" office, including a door, a lock and key, a telephone, and a shiny, new Sun 3/110 workstation. After timesharing with the general population on VAX 11s for three years, the Sun machine was a godsend: a bitmapped screen, shell windows, and all the processing power of a 16 MHz 68020. (Man, those were the days!)
Looking for the One
If you ask a Perl aficionado a programming question, he or she is apt to reply "There's more than one way to do it." That response isn't trite or boastful: Perl offers many different ways to solve the same problem.
Free As In Puppy
Riffing on "free as in speech, not free as in beer," critics often quip that Open Source is "free, as in puppy."
High-Powered Lines
In the near future, the city of Cincinnati, Ohio will become the first municipality in the country to receive broadband over power lines (BPL). The service, which promises at least one megabit per second download and upload speeds, can be accessed via any electrical socket using an adapter that closely resembles a large cell-phone charger. The technology is proven, the Federal Communications Commission is endorsing it, and unlike DSL or wireless, BPL can go anywhere that power goes. And BPL is cheap: the basic one mbps service is priced at $29.95 per month.
I See All
I am happy to report that I've finally completed Madame Pearl's "Clairvoyance for Fun and Profit" correspondence course. For the modest tuition of $1,000, I've received hours of expert instruction via webcast, a sheepskin for my office (soon to be parlor), a deck of tarot cards autographed by Madame Pearl herself, and a shiny new iBall, a wireless crystal ball that peers into the future.
High Five for OSDL
As this month's Linux Magazine goes to press, the mainstream media and the technorati (the geek paparazzi) are widely reporting on the Open Source Development Labs' creation of a Linux legal defense fund. Briefly (and you can read more details in our "Report from the Front" on page 8), OSDL's fund will subsidize the legal expenses of any Linux end-user that's threatened by broad intellectual property claims, such as SCO's assertion that code in the Linux kernel infringes its copyrights. OSDL plans to raise $10 million for the fund; the fund's been seeded with $3 million by IBM, Intel, and others.
What is Linux?
If someone asked you to describe Linux, what would you say? If you're pedantic, perhaps you'd say, "Linux is an operating system kernel." If you're practical, maybe you'd explain, "Linux is an operating system where you can inspect and change any of the components." Or, if you're evangelical, perhaps you'd proffer, "It's like Windows, only there's no blue screen of death, and it's free!"
Like the heart and lungs, accounts payable and accounts receivable keep a company pumping. Money goes out; raw materials come in. Products and services go out; money comes in. If more money comes in than goes out, the company prospers. At least that's the theory -- and the goal.
A Novel Novell?
I am guessing that the news about Novell's intention to acquire SuSE came as quite a surprise to all of you. It certainly surprised me.
While email may now and forever be the Internet's ultimate "killer app," there was a time when BBSs or bulletin board systems -- electronic equivalents of the neighborhood message board -- ruled cyberspace. Back then, email systems were sparsely connected, and sending email often required you to remember or discover transmission paths. (Perhaps some of you remember specifying routing instructions in email addresses with %, !s, and @.) Instead, computer hobbyists and nascent Internet users dialed-up services like Usenet and The Well to meet, debate, discuss, and yes, flame.
Better than Panther
After fifteen years, I'm paying for it. Sure, I could be patient, and maybe get it for free later, but I want it now -- and am willing to fork over cash to get it. So, with a satisfying click of the mouse, it's mine.
Total Recall
I woke up today with recall on my mind. No, not the drama playing out in California these days -- the recall I have in mind has much more significance. Hear me out.
The Death of the GPL?
While Red Hat's complaint and IBM's countersuit provided fan-pleasing left and right hooks to SCO on the first morning of the most recent LinuxWorld Expo, the most important story of the show lay underneath the flurry of press releases, swagger, and bluster: for the first time ever, the vaunted GNU Public License (GPL), the constitution of much of the free software world may be put to a legal test.
The Colonel of the Kernel: Q&A with Andrew Morton
2.6 is coming, and Andrew Morton, a modest, humble, approachable, and very capable system software developer is leading the charge. Hand-picked by Linus Torvalds for the task, Morton talks about the next production kernel, the kernel development process, and what would happen if SCO won its case against IBM.
Not the Anti-Tux
This past month, I received much more email than usual. The reason? The Microsoft ad and the Microsoft CD-ROM included with the August issue of Linux Magazine.
Let's say that you're a system administrator responsible for a large set of computer systems -- everything from Linux servers to Macintosh desktops. Like most system administrators, you're very busy, tracking down problems, installing new software, monitoring systems, and helping end-users. Sounds pretty typical, huh?
Oh, Woe is SCO
As this month's issue of Linux Magazine goes to press, the SCO fear and uncertainty dreadnought continues to strip-mine the landscape of Linux. Each day of the last week brought more SCO allegations and threats. SCO even took Linus' approach to developing the kernel to task, practically calling the massively collaborative model near-willful infringement. But while dung spewed from Utah, IBM shrugged it all off. In fact, Big Blue looks Very Cool Blue so far.
Boa Constructor
While the "P" in "LAMP" most often brings to mind Perl or PHP, the other "P," Python, is no third-wheel. Indeed, with powerful language structures that support objects, dynamic data types, and dynamic typing, and a rich trove of core and contributed programming libraries, the variety of applications that can be built with Python is quite astounding. The Python Users page (found online at http://www.python.org/psa/Users.html) lists just a small sampling: there's a content management system framework (Zope); a Quake level editor (Quake Army Knife, or "Quark"); and an entire web site -- PalmStation.com -- written solely in Python.
X is the Spot
Back in 1989, I discovered the X Window System, and almost immediately, I fell in love with it. X was fun to play with and a blast to program for. In fact, I was so enamored of graphical user interfaces and the ins-and-outs of windowing systems, I spent the next three years or so working on little else but X. I even had the privilege of participating as a member of the X Consortium, shuttling regularly back and forth between coasts for X technical conferences and hands-on "interop" sessions. Indeed, to this day, I trace my eventual career in consumer software and computer game development back to the day when I launched X on my Sun 3/60 workstation.
The Internet was originally conceived to improve communication between far-flung researchers. Today, of course, the Internet can be used by anyone, virtually anywhere, to send and receive information of all kinds. Email, newsgroups, web sites, and more recently, blogs, and RSS feeds are all methods to share information.
Extreme Linux
In the past several months, a good number of corporate, government, academic, and research institutions -- Pixar, the Lawrence Livermore National Lab (LLNL), the Centers for Disease Control (CDC), Shell E&P, and others -- have announced the installation of substantial, high performance Linux computing clusters. In the case of LLNL, for example, the largest of its three new clusters (built by Linux Networx) is composed of 252 Pentium 4 processors, capable of a theoretical peak of 857 gigaflops, making it one of the fastest clusters ever built. In the case of Pixar, a 1,024-processor blade cluster (using 2.8 GHz Xeons) from RackSaver is replacing the company's existing Sparc-based render farm.
While email and instant messaging are great ways to stay in touch -- and are nearly ubiquitous -- those "killer apps" are just a little dull. After all, why send email to your brother when you can just as easily reach out and "frag" him?
As this issue of Linux Magazine goes to print, the biggest story in the Linux world is SCO's "not less than" $1 billion law suit against IBM. News of the suit spread quickly over Web, blogs, and wire. InfoWorld ran the headline, "SCO Sues IBM Over Linux," while c|net wrote, "SCO Sues Big Blue over Unix, Linux."
Electronic mail is both a blessing and a curse. On the one hand, email is so convenient: You can send email at any time from almost any computer, and email is great for staying connected to colleagues, friends, and family members, especially if you're separated by time zones or great distances. Moreover, email costs nothing and is easily shared with groups of any size. On the other hand, email can be overwhelming. Today, it's not unusual to receive hundreds of email messages a day. Sure, reading and replying to all of that correspondence has to be done, but filtering and filing all of that email (not to mention fighting spam) can be downright daunting and time-consuming.
Around the Linux World
I've just returned from Linux World in New York, and besides a mild case of jet lag and frostbite, I'm back in the swing of things, trying to herd 50,000 words into something resembling a magazine. (Drop me a line and rate my wrangling skills.) And, in addition to recovering from my trip to the Big City, I'm also trying to form an opinion on this most recent Linux World. Everyone asks, "How was the show?" and, to be honest, I'm not sure what to say.
At Your Service: An Interview with JBoss’ Marc Fleury, Scott Stark and Bill Burke
With over two million downloads in 2002, JBoss is arguably the de facto standard for deploying Java-based Web applications. With its advanced features, microkernel architecture, full implementation of the J2EE stack, and an unbeatable price (it's free, available as source code released under the Lesser Gnu Public License), JBoss -- like Linux and Apache -- has been widely adopted by developers and corporate IT departments.
A Very Happy Marriage
This month's issue of Linux Magazine is our second annual "Java" issue. As we did in March of last year, we've set aside the features of the magazine to explore new and emerging Java technology that you're likely to hear more about -- and if you're a Java programmer, probably code with -- in the months ahead.
The Ultimate Team Organization Software
A successful project depends on six things: smart people, smart planning, lots of hard work, and communication, communication, communication.
Keeping the Web in Web Services
Web Services have unleashed a raft of technologies, but are any effective? A number of developers say no and suggest that the Web already offers everything you need to build a great Web Service. And more.
Out in the Open
One of the many amazing and marvelous facets of the Open Source movement is its volunteer spirit. All across the Internet -- on the Web, and in newsgroups, blogs, and CVS trees -- people from all walks of life, spanning all parts of the globe, contribute their time, energy, and expertise to the cause. It's quite remarkable, and even though I'm exposed to Linux projects every day, I still find the whole Open Source process fascinating.
Crystal Space 3D
In 2001, revenue from the sales of video games exceeded $9 billion, a new record. By the end of October 2002, sales of video games had already surpassed $6 billion, and was expected to eclipse $10 billion by year-end, setting yet another record (a final revenue tally for 2002 was not available as we went to press).
Priced to Move
If you live in the San Francisco Bay Area long enough, your view of the world gets a little warped. "Hot weather" is anything above 75 degrees, "rain" is a four-letter word, and the East Coast might as well be a part of the European Union.
Bigtime Linux
As we wrap us this issue of Linux Magazine and wrap up the year, I keep asking myself a simple question: Is Linux better off now than it was a year ago?
Write Once, Serve Everyone
Web services promise to integrate businesses, connect all kinds of devices, and rally the computer industry around standards. You've heard the hype -- here's what the hubbub's all about.
Creating Web Services with AXIS
Java developers interested in building Web services will find the AXIS toolkit
Java Regular Expressions
Java's string processing capabilities are far better than those found in C, C++, or Visual Basic, but aren't quite as powerful as, say, Perl's. While the Java String class provides convenient methods such as indexOf(), lastIndexOf(), and startsWith(), you still have to write quite a bit of Java code to do something like break a colon-delimited record into a set of fields. Until now.
Hip Wrappers in the House
In March 2002, Sun Microsystems released Version 1.4 of its Java 2 Standard Edition (J2SE) software (http://java.sun.com/j2se/1.4). J2SE is the core of the Java platform. While other Java kits are specialized (e.g., J2ME is targeted at small devices and J2EE provides a range of server and e-commerce solutions), J2SE provides fundamental components that every Java programmer can use.