General Development Archive

An Introduction to Ruby on Rails for DB2 Developers

"Ruby on Rails is an open source Web framework causing a lot of excitement among Web developers. By supporting agile development techniques and a philosophy of "convention over configuration," it has enabled many developers to radically reduce the time and pain involved in creating Web applications. Because Rails emerged from the open source world, until recently you had to use MySQL or PostgreSQL to work with it. Now that IBM has released a DB2 adapter for Rails, it's possible to write efficient Web applications on top of your existing DB2 database investment. This article highlights some of the things that makes Rails exceptional, explains how to get going with Rails and DB2, and leads you through your first Web application in Rails."

The Apache Geronimo of the Future

"Wondering what the future holds for Apache Geronimo? You've come to the right article in this series. In this installment, the renegade will explore what's in the proverbial cards for Geronimo, including where the developers of Geronimo are taking the project, the important new features, and the improvements. Follow along, and you might be there with them for the unveiling of the next version of Apache Geronimo."

Builc XML-RPC-Based Service for C++ Programs

"Today the growing popularity of the Internet and its inherent advantages have motivated developers and IT departments to migrate complex C/C++ business and scientific applications to a Web-based environment. XML-RPC is a perfect mechanism to integrate existing C/C++ programs with other client-side technologies. This article is a step-by-step guide to exposing C++ methods as services. It includes sample code snippets for C++ integration using an open source XML-RPC Library."

Exploit 64KB Page Support with DB2 Enterprise 9

"Learn how IBM DB2 9 for Linux, UNIX, and Windows exploits multiple page sizes. With the introduction of the POWER5+ processor architecture, the IBM AIX 5L operating system added support for a new 64-kilobyte page with properties that are similar to the current default 4-kilobyte pages. In addition, AIX 5L Version 5.3 TL04 also introduced a new 16-gigabyte huge-page feature for this hardware architecture. DB2 9 automatically exploits the 64-kilobyte pages to deliver high performance for database applications on this platform. In addition, DB2 also supports the enablement of 16-gigabyte huge pages."

Convert a Windows Executable to a MacOS X, Linux Binary?

"Alky is a tool that allows you to convert a Windows executable to a Mac OS X or Linux binary. We are focused on high-end gaming at the moment, though we will support other applications in the future. Our binary translation layer is already working fully for OS X and Linux support is in progress. Of course, Windows applications use a very different set of libraries from Linux or OS X applications so we are also working on a library called LibAlky that will provide those Windows libraries to the application." One of the project's members is Cody Brocious, one of the developers behind PyMusique.

The Interchange File Format

"The Interchange File Format (IFF) standard is widely regarded as long dead, and indeed, no one uses it anymore, except that nearly everyone uses it sometimes. Many believe the IFF standard is an Amiga graphics standard, and certainly, there have been a great many graphics files saved in the IFF format. However, IFF is not just a graphics format. It has been used for graphics, audio, text, saved games, and more. Electronic Arts actually developed the standard, back when it was a software company and not just a video game company."

High Level Virtual Machine, v0.1

The High Level Virtual Machine aims to build a common infrastructure for the development of dynamic languages (Ruby, Python, Haskell, etc.) targeting the Low Level Virtual Machine. It provides a platform agnostic virtual machine runtime, on top of LLVM, which is able to interpret, jit- or static- compile any supported language. Since all language use the same underlying VM, it's easy to achieve code and data interoperability between different languages. Version 0.1 was released June 13.

Why Software Is Bad and What We Can Do to Fix It

"There is something fundamentally wrong with the way we create software. Contrary to conventional wisdom, unreliability is not an essential characteristic of complex software programs. In this article, I will propose a silver bullet solution to the software reliability and productivity crisis. The solution will require a radical change in the way we program our computers. I will argue that the main reason that software is so unreliable and so hard to develop has to do with a custom that is as old as the computer: the practice of using the algorithm as the basis of software construction. I will argue further that moving to a signal-based, synchronous software model will not only result in an improvement of several orders of magnitude in productivity, but also in programs that are guaranteed free of defects, regardless of their complexity."

Go Beyond what the Desktop Normally Does with Tcl/Tk

Most computer users interact with their workstations primarily through some form of graphical user interface (GUI). In the world of Microsoft Windows, this interface is tightly controlled. The UNIX world, by contrast, offers a veritable smorgasbord of different GUIs with varying degrees of functionality. They range from minimalist window managers, such as twm, to large, capable tools, such as GNOME and KDE (K Desktop Environment). This article shows you how the Tcl/Tk scripting language offers a simple and elegant way to code GUI widgets with minimal effort.

SourceForge Enterprise Edition Released for Free Download

SourceForge has announced the SourceForge Enterprise Edition Download. This is a free, 15 user download version of SFEE. It's packaged together with Subversion and CVS in a VMware image. SFEE is a corporate version of SourceForge.net that lets development teams work together on internal software projects. It's an integrated toolset that lets you monitor project status, find out what your offsite developers are doing, access project information and documentation in a central repository, manage software changes efficiently, and search across your software projects. Check it out and download it from SourceForge.net . There's also a community support site with documentation, discussion forums, add-ons, and sample projects.

Protothreads Library 1.3 Released

Protothreads are an extremely lightweight, stackless, thread-like programming abstraction designed for severely memory constrained embedded systems that may have as little as a few hundred bytes of RAM. Protothreads are designed to replace event-driven C code with sequential programming but without the memory overhead of full multithreading - a protothread requires only two bytes of RAM. Protothreads are implemented in ANSI C, does not require any machine code, and is therefore highly portable. Version 1.3 adds the possibility to determine if a protothread is blocked, has yielded or has ended, and can be downloaded here. Also be sure to read how protothreads work, under the hood.

Learn Object-Oriented Analysis with Generative Analysis

How do you elicit high-quality information from information sources that are subject to deletion, distortion and generalization? According to Jim Arlow, the answer is generative analysis, which is a new approach to learning object oriented analysis that teaches you how to deal with these and other real-world human issues of software engineering. Also, Mike Kelly examines a recent testing experience that should have worked: plenty of scripted test cases, plenty of time developing and testing the scripts. So what went wrong? Plenty.

A C++ Flyweight Pattern for IT Management

Mother Nature likes object-oriented development! C++ programmers often can't afford the luxury of creating a universe of objects; our platforms are intrinsically limited. However, the flyweight design pattern provides an elegant means of sharing objects, with a small price in terms of storage and retrieval. Stephen Morris describes C++ code that uses the flyweight design pattern to solve a knotty problem in networking. Also on the same web site, "Mastering the Requirements Process".