Open Source Linux: Web Programming
Author: Christopher A. Jones and Drew Batchelor
Publisher: M&T Books, an imprint of IDG Books Worldwide, Inc.
Price: $39.99 US
Reviewer: Daniel Lazenby
The ability to create easily maintained and easily updated web applications is crucial in today's fast-changing, browser-centric world. Rapidly changing business demands drive the need for rapid web site content updates/changes. Competing artistic factors supply a constant challenge to keep the web site's visual design interesting. Seldom does one individual possess all the talents required to meet each of these challenges. Open Source Linux: Web Programming addresses these types of challenges.
In this book, the reader is guided through an extensible and scalable web application development methodology. The tools used to carry out the methodology include Perl, CGI, HTML and XML. The recommended methodology is based on object-oriented and decoupled functionality concepts. By the time you reach the book's end, you will have developed and examined a series of web applications that apply each design concept or programming convention.
The authors assume the reader possesses at least an intermediate level of experience with computing and programming technologies. With this framework, the book states the concept to be applied or the task to be performed. The rationale for why each concept or task is important is also presented. What you will not find is a list of the steps required to perform the tasks. Extending what you learn to your own applications is where the intermediate to advanced experience comes in. What's presented will generally get you up and running. Other resources are required if you want more specific details.
The book is divided into two sections, “The Modern Internet Application” and “Going Beyond Today's Internet Model”. The first section (and majority of the book) is devoted to programming an Internet application. Each chapter opens with a few paragraphs on what you are going to build and why the way it will be built is important. Systems or functionality programmed in one chapter is often the foundation for systems or additional functionality presented in later chapters. For those who dislike typing, all program listings are available on the CD-ROM.
The first section opens with a quick review of distributed systems and an introduction to the Apache HTTP server. In the chapter titled “Using Perl to Implement CGI on Linux”, the authors present just enough Perl for the reader to understand the forthcoming application programs. A simple Perl-based CGI module that analyzes Apache logs is programmed in this section.
The “Separating Content and Logic with Objects” chapter further explores a modular and dynamic web site design. Decomposing application content, program and business logic and presentation into objects are discussed. Techniques presented facilitate coding an easily maintained site-wide look and feel. Here, “easily maintained” means a non-programmer can update content and change graphics. These designs and techniques result in coding a simple on-line catalog application.
The next three chapters focus on using XML. “Using HTML to Create Well-Structured Objects” walks one through basic XML syntax and structure. Writing XML-driven CGI scripts that translate XML to HTML is the focus of the “Handling XML with a CGI Application Server” chapter. The discussion on XML continues in “Creating a Client-Based Web Content Administrator”. This chapter concludes with the coding of a Perl, CGI, HTML and XML web content administrator application. This application enables a non-technical person to update web page content. All the concepts and coding techniques presented in these chapters may be put to use today.
In the book's second section, the authors pause to look a short distance into the future. They then close the book out with two very critical subjects. This section's opening chapter discusses limitations and issues related to the stateless transaction nature of HTTP and CGI. The authors offer a rationale for moving to a state-based transaction and an open-source XML application server.
Chapter 9, “Developing Java Applets on Linux”, presents Java basics through the construction of simple Java applets. Chapter 10, “Creating a Java/XML Web Application”, pulls together previously presented design principles and techniques to code a network chat and whiteboard application.
The last two chapters cover error handling and web deployment applications. Poor error handling can easily destroy the user's experience. Poor site deployment can ruin the user's experience and negatively impact the application's post-implementation performance and maintainability. An error-handling system is constructed in the “Bulletproofing Your Site with Error Handling” chapter. As in the previous projects, the authors begin by applying object-oriented concepts to the error-handling system. In this example, they decouple error messages from the error codes. Both objects are decoupled from the error handler and the actions to be taken upon an error situation. Nothing stresses an application, or its implementation, more than a real user. Next to the user, nothing can cripple a web site faster than coding techniques incompatible with the implementation strategy.
The chapter entitled “Deploying Your Linux Web Application” reviews how implementation decisions can reach back and negate application development and coding decisions. This chapter briefly discusses the need to consider various factors affecting throughput, scalability, system resource consumption and the need to avoid vendor-specific language extensions. General guidelines for identifying bottleneck and bandwidth problems are suggested.
By the time you reach the end of this book, you will have explored conceptual constructs, models and tools you can use to develop web sites. These sites should be easier to deploy, update and maintain. More importantly, web site content changes will not always require programming expertise to implement.
Daniel Lazenby (email@example.com) first encountered UNIX in 1983 and discovered Linux in 1994.
Practical Task Scheduling Deployment
July 20, 2016 12:00 pm CDT
One of the best things about the UNIX environment (aside from being stable and efficient) is the vast array of software tools available to help you do your job. Traditionally, a UNIX tool does only one thing, but does that one thing very well. For example, grep is very easy to use and can search vast amounts of data quickly. The find tool can find a particular file or files based on all kinds of criteria. It's pretty easy to string these tools together to build even more powerful tools, such as a tool that finds all of the .log files in the /home directory and searches each one for a particular entry. This erector-set mentality allows UNIX system administrators to seem to always have the right tool for the job.
Cron traditionally has been considered another such a tool for job scheduling, but is it enough? This webinar considers that very question. The first part builds on a previous Geek Guide, Beyond Cron, and briefly describes how to know when it might be time to consider upgrading your job scheduling infrastructure. The second part presents an actual planning and implementation framework.
Join Linux Journal's Mike Diehl and Pat Cameron of Help Systems.
Free to Linux Journal readers.Register Now!
- Google's SwiftShader Released
- Interview with Patrick Volkerding
- SUSE LLC's SUSE Manager
- My +1 Sword of Productivity
- Tech Tip: Really Simple HTTP Server with Python
- Murat Yener and Onur Dundar's Expert Android Studio (Wrox)
- Non-Linux FOSS: Caffeine!
- Managing Linux Using Puppet
- SuperTuxKart 0.9.2 Released
- Parsing an RSS News Feed with a Bash Script
With all the industry talk about the benefits of Linux on Power and all the performance advantages offered by its open architecture, you may be considering a move in that direction. If you are thinking about analytics, big data and cloud computing, you would be right to evaluate Power. The idea of using commodity x86 hardware and replacing it every three years is an outdated cost model. It doesn’t consider the total cost of ownership, and it doesn’t consider the advantage of real processing power, high-availability and multithreading like a demon.
This ebook takes a look at some of the practical applications of the Linux on Power platform and ways you might bring all the performance power of this open architecture to bear for your organization. There are no smoke and mirrors here—just hard, cold, empirical evidence provided by independent sources. I also consider some innovative ways Linux on Power will be used in the future.Get the Guide