General Development Archive

The Tale of a Developer’s Quest for Sanity

The Yarra engine was designed to be a cross platform C++ gaming engine, using OpenGL for 3D graphics and OpenAL for positional sound. Unlike existing engines, Yarra was primarily designed to allow dynamic adding of programmable objects to a scene graph with handlers to control game flow. This design doesn't suite a majority of software out there, but works great for games. But the article isn't about Yarra, it's about the developers personal experiences working with Windows, MacOSX and BeOS. The article discusses the pro's and con's of each environment, and give sa very subjective opinion about the merits of each.

Five Eclipse Plugins for Discovering Bad Code

"What if you were able to discover potential problems in your code prior to building it? Interestingly enough, there are Eclipse plugins for tools such as JDepend and CheckStyle that can help you discover problems before they are manifested in software. In this installment of Automation for the people, automation expert Paul Duvall provides examples of installing, configuring, and using these static analysis plugins in Eclipse so that you can prevent problems early in the development life cycle."

Two Tools for Building Third-Party Installers

"Bitrock's InstallBuilder and Macrovision's Install Anywhere Enterprise edition are tools for building third-party software installers. InstallBuilder uses Qt widgets, while Install Anywhere requires a Java Virtual Machine, but both are cross-platform, multi-lingual, proprietary tools that are available in downloadable demos. Both, too require minimal expertise to use. When run in wizard mode, Install Anywhere is more basic than InstallBuilder and suffers in comparison, but, when run in Advanced Designer mode, it eclipses its rival with a huge set of options."

Decentralised Installation Systems

In the Free and Open Source communities we are proud of our 'bazaar' model, where anyone can join in by setting up a project and publishing their programs. Users are free to pick and choose whatever software they want... provided they're happy to compile from source, resolve dependencies manually and give up automatic security and feature updates. In this essay, I introduce 'decentralised' installation systems, such as Autopackage and Zero Install, which aim to provide these missing features.

Construct 2.00 Released

Construct 2.00 has been released. "Construct is a Python library for declaratively defined data structures, called 'constructs'. These constructs can both parse data into an object and build an object into data. Constructs handle fields of either byte or bit granularity, structs, unions, sequences, repeaters, adapters, validators, switching, pointers, on-demand (lazy) parsing, and many more. The library defines a large number of primitive constructs, as well a large inventory of file formats and network protocols."

End User Programming Packages: Revolution

Revolution is descended in spirit from Hypercard (HC). When Apple's support for HC withered, Scott Raney developed Metacard (MC), a near clone. Metacard was then bought by Revolution (RR), based in Scotland. Metacard was two quite distinct things: an engine, and an IDE. When Metacard was sold, the MC IDE became public domain. It still exists, is volunteer maintained, and it can be used with the latest RR engine. Some on the RR user mailing list prefer the much simpler MC IDE to the RR IDE, at least for initial project development. Other IDEs are possible, and there is a third party (non-free) IDE called Galaxy.

The D Programming Language

"D is a systems programming language. Its focus is on combining the power and high performance of C and C++ with the programmer productivity of modern languages like Ruby and Python. Special attention is given to the needs of quality assurance, documentation, management, portability and reliability. D is statically typed, and compiles direct to native code. It's multiparadigm: supporting imperative, object oriented, and template metaprogramming styles. It's a member of the C syntax family, and its look and feel is very close to C++'s. See this comparison of D with C, C++, C#, and Java."

The Cocotron: Open-source Cocoa for Windows

The Cocotron is an open source project which implements an Objective-C API very similar to that described by Apple Computer's Foundation and AppKit framework documentation. "The Cocotron Development Tools are a gcc based cross-compiler toolchain which plug into Xcode, once installed they enable Xcode projects written in Objective-C to be compiled for platforms other than Mac OS X, such as Windows, Linux, and Solaris. The CDT is used to compile The Cocotron and non-OS X targets."

Lazy Programming and Evaluation

Lazy programming is a general concept of delaying the processing of a function or request until the results are needed. This concept has numerous applications, from the obvious to the obscure. Thinking in terms of lazy programming can help you rid your code of unneeded computation and restructure programs to be more problem-oriented.