Saucy Salamander Cookbook

Ubuntu Desktop 13.10, also known as “Saucy Salamander” was recently released. This article provides a “no frills” recipe for building a LAMP (Linux, Apache, MySQL, PHP) development environment on Salamander, including OpenJDK and NetBeans IDE. The entire environment is housed in a VirtualBox VM running on Windows 7. We’ll finish up by cloning the VM for a particular project.

Installing Ubuntu Desktop on VirtualBox

Ubuntu is one of the most popular GNU/Linux distributions. The Desktop version, when coupled with an AMP stack, makes a very useful software development platform. In this article I’ll describe the step-by-step process of downloading and installing Ubuntu Desktop in a VirtualBox VM.

Installing Oracle VirtualBox on Windows

There are many good reasons to use virtual machines in both development and production environments. I often use Oracle VirtualBox to develop Linux applications on my Windows laptop and iMac desktop. By storing the VM’s files on an external drive, I’m able to easily transport my entire development environment— operating system, application server, database management system, integrated development environment, development tools, libraries, etc.—from one machine to another.

In this article we’ll install the open source desktop virtual machine manager, Oracle VirtualBox, on Windows 7. In future articles we’ll install Linux, Apache, MySQL, and PHP to build out a full LAMP development environment on the VM.

Dissecting WordPress Themes Part 4: Attachment Hierarchy

You can attach files of pretty much any type to your WordPress posts and pages. Once attached, files can be viewed or downloaded directly from a post or through attachment pages that can be formatted any way you want in your theme. In this article we continue our exploration of the WordPress Template Hierarchy for attachment pages. The attachment page hierarchy builds off of single.php to include levels for generic attachments and several media type patterns based on MIME type and subtype. We’ll visit each of these template files using files of various media types that we upload to the Media Library.

This article will teach you how to attach files. If you want to learn how to attach babies (MIME type human/infant), visit MilkyWayBreastfeeding.com.

Dissecting WordPress Themes Part 1: Creating a Theme

The WordPress Theme is the skeleton and skin of your web site. Like a skeleton, a theme’s template files determine the structure of a site’s pages. And like skin wrapped around the skeleton, a theme’s style sheet determines its aesthetics. In the first article of this series on dissecting WordPress themes, we develop a simple “Trace” theme to aid in understanding the mechanics of the theme architecture and algorithms. We’ll look at what constitutes a valid theme and put together a few simple template files to build a valid HTML page. Regardless of your development language and platform, software development is aided in many ways by using a robust Integrated Development Environment. In this series I’ll be using my favorite open source IDE, NetBeans.

Installing NetBeans IDE on Windows

As a long-time Java/J2EE developer I’ve used NetBeans IDE as my primary development environment for years. But it’s also a capable environment for developing HTML/CSS/PHP applications, especially in the latest 7.3 release. In this article, I’ll describe how to download and install the IDE on Windows. We’ll then check out the IDE by creating Java and PHP projects.

Installing WordPress on the XAMPP Stack

This article provides step-by-step instructions for manually installing a WordPress development/test environment on the XAMPP stack. We’ll install WordPress in such a way as to support multiple “lab” environments for future exploration and testing projects.

Installing XAMPP on Windows

This article describes how to create a basic XAMPP development environment on Windows. Although not suitable for production use, such an environment is very useful for training, software development, and testing Web applications before migrating to your production server.