General Development Archive

Create Custom Data Charting Tools Using Perl, GD

This article describes techniques you can use to create new levels of usefulness in your dynamically generated charts with Perl and GD. Cook up some automatically generated graphs for your organizational meetings or live enterprise directory data. Annotate the charts with readable text that delivers more information than the standard pie chart. Using the power of GD and Perl, you can link various data and images together to create sophisticated charts that will help bring visual interest to your applications.

C++ Polymorphism; Vector Programming with GCC

There is an interesting but rarely mentioned technique in a C++ context: signature-based polymorphism, a more permissive variation of subtype polymorphism, usually called duck typing. Two objects having nothing in common can share an implicit interface and be commonly manipulated by such an interface with no inheritance involved. Part I and Part II. Also, making use of SIMD units such as MMX, SSE, or AltiVec is usually a tradeoff of portability for speed. Recent versions of GCC include an extension that allows you to write vector code without sacrificing portability. Take a look at how to use it.

Thoughts About the Best Introductory Language

"What makes programming languages are suitable or unsuitable as introductory languages? Which languages are better learnt first and at which order? And why what the masses think is the most suitable introductory programming language is not in fact that. This paper examines several approaches to which programming language is the best, and afterwards gives several useful relations for which languages should come first. Finally it gives a final verdict, defends it and then gives some other good food for thought."

High Availability with Open Source

In the article High Availability with Open Source, Josh Kuo looks at three of the popular Open Source projects to implement High Availability redundancy (failover): Heartbeat, keepalived, and CARP. The article talks about where each of these three excels and some implementation ideas. Josh also mentions the DRBD utility to sync two remote filesystems to aid in an advanced High Availability setup.

Create Eclipse-Based Applications Using GEF

"This article walks through the steps for using the Graphical Editing Framework. Rather than finishing each step in its entirety, we'll use a subset of your application's model and get that working first. For example, we might initially ignore connections or focus on just a subset of the types of graphical elements in your application. Next, learn what other technologies are available to add graphical editing to your applications. In the past, stand-alone GEF used to be the only option for graphical editing in Eclipse, but this has changed as Eclipse has evolved."

Computing Pioneer John Backus Dies at 82

John Backus, whose development of the Fortran programming language in the 1950s changed how people interacted with computers and paved the way for modern software, has died. He was 82. Backus died Saturday in Ashland, Oregon, according to IBM, where he spent his career. Prior to Fortran, computers had to be meticulously 'hand-coded' - programmed in the raw strings of digits that triggered actions inside the machine. Fortran was a 'high-level' programming language because it abstracted that work - it let programmers enter commands in a more intuitive system, which the computer would translate into machine code on its own.

Creating a Read-Only Mirror of Your SVN Repository

"Say, you've got an SVN for your OpenSource project and would like to mirror it to some remote location that hosts opensource projects (such as SourceForge.net or dev.java.net). I'll skip the phase of an account and project registration and assume you've already got your credentials and SVN repo url. I also assume you are on Debian or Ubuntu and your SVN is up and running under Apache httpd."

NTFS-3G 1.0 Released

The open source, freely available, stable read/write NTFS driver, NTFS-3G 1.0 has just been released. The driver, released half year ago for beta testing, made progress, thanks to ten or even hundreds of thousands testers, early adopters, and developers. In consequence of the open communications and positive experiences, NTFS-3G is available for over 60 Linux distributions today, including most major ones. Moreover it was ported to new operating systems like FreeBSD, BeOS, Haiku, and Mac OS X.

Techniques for Memory Debugging

"Exercise good memory-related coding practices by creating a comprehensive program to keep memory errors under control. Memory errors are the bane of C and C++ programming: they're common, awareness of their importance for over two decades hasn't eradicated them, they can impact applications severely, and few development teams have a definite plan for their management. The good news, though, is that they needn't be so mysterious."

MS Ex-Chief Architect Aims to Revolutionize Programming

After helping develop the Xerox Alto's Bravo word processor and leading Microsoft Office development for years, Charles Simonyi left Microsoft in 2002 to found his own company, Intentional Software. His company's novel goal: to ease software-development headaches by abstracting the software's requirements away from the code itself, similar to the way that WYSIWYG word processors abstract the document from the formatting tags that underlie it. "Software as we know it is the bottleneck on the digital horn of plenty," he says. "It takes up tremendous resources in talent and time. It's disappointing and hard to change. It blocks innovation in many organizations." Code should be abstracted into models that are easier for end customers to visualize and to modify, he argues. This article, written by Dreaming in Code author Scott Rosenberg, provides an overview of Simonyi's life, ideas, and current initiatives.

Autopackage Struggling to Gain Acceptance

14 months ago, the Autopackage project was small and active, and members sounded optimistic about its success. Now, although the alternative installer project continues, progress has almost come to a halt. The #autopackage channel on irc.oftc.net sits vacant most days, the developer blogs cover almost anything except the project, and commits to the source code repository have become rare. Formally, the project is still alive, but the major contributors all agree that it is faltering. So what happened?

XML for Perl Developers

"This series is a guide to those who need a quick XML-and-Perl solution. In a surprisingly large number of cases, you only need one tool to integrate XML into a Perl application, XML::Simple. Part 1 tells you where to get it, how to use it, and where to go next. Once you whet your appetite for working with XML in Perl, the other two articles in this series will help you sharpen your new skills further."