articles
Articles I have published:
Introduction to Apache Portable Runtime (APR) networking. I use the classic Reactor pattern as an example.
A page from the O’Reilly “What Is” series, this article describes the Jetty servlet container and its underlying API. Jetty is designed with embedding in mind; that is, you can add webapp (servlet, JSP, web services, etc) functionality to a Java application without having to repackage it as a formal WAR.
Use GNU Autoconf to simplify cross-platform builds of your native-code apps. Familiar with the standard ./configure; make; make install routine? Autoconf is what drives the ./configure step.
I’m all for standards, such as J2EE’s container-managed database connection pooling. Sometimes, though, you have to tkae a different path. This article explains how to create a database connection pool inside your application using two Jarkta libraries, commons-pool and commons-dbcp.
Second in a two-part series, this article explains how to use the SAX side of the (Apache) Xerces C++ library to process XML documents.
Want the power of Perl’s regular expressions (regexps) in your C and C++ apps? Use the Perl-Compatible Regular Expressions Library, or PCRE.
First in a two-part series, this article explains how to use the DOM side of the (Apache) Xerces C++ library to process XML documents.
The curl commandline tool is a Swiss-Army knife of URL handling and downloading. Use its backend libCURL library to add file-transfer power to your native-code applications.
Third in a series, this article explains how to create a pre-patched Kickstart tree (that is, one with the updates already applied) and add some change control to your yum cronjobs.
Many C++ STL container objects look and act alike, but they don’t share a parent class. Learn how to extend existing contianers or create new ones using STL’s “concepts,” a kind of loosely-enforced polymorphism.
Watching for changes in a file or directory? Calling poll() can be expensive. Let the File Alteration Monitor, or FAM, watch for you and report results to your code.
Second in a series, this article shows how to customize your Kickstart process and leverage Kickstart for OS upgrades.
Use the Page Controller pattern in your PHP web applications to separate business logic from the HTML.
First in a series, this article is an introduction to the Kickstart automated OS-install tool for Linux. Why click through the installer a few (hundred) times? For Red Hat, Fedora, CentOS, and other RPM-based Linux distros, let Kickstart do the work so you can hang out at the pub.
Apply the Front Controller design pattern to your PHP apps, and in return you’ll get a single entry point through which to apply common services (such as security or page templating).
A review of the developer-oriented features in Linux kernel 2.6.
Learn how to safely use the setuid() and setgid() system calls to make your app change its identity at runtime.
You can’t always use a debugger in production! Add a configurable trace (logging) system to your app so you can track down problems at runtime.
The RPM is the unit of measurement Red Hat Linux and its derivatives (Fedora, CentOS, and so on). Learn how to package your software as an RPM, so you can take advantage of the OS’s package management system.