General Development Archive

Thinking Recursively with C++

Algorithms can often be implemented recursively or nonrecursively; the decision rests with the programmer, who might shy away from a recursive solution because the algorithm might not terminate or that performance might be poor. In reality, recursion can allow for very elegant code as well as facilitating an interesting and economical type of code reuse. Software consultant Stephen B. Morris explores this interesting topic with a data-centric application drawn from the field of networking.

Explore Eclipse’s Embedded Rich Client Platform

"Get an introduction to the embedded Rich Client Platform. Learn about the various components that make up eRCP and get some examples on how to use them in your applications. The embedded Rich Client Platform came about as a way to bring the advancements of the Eclipse Rich Client Platform and apply it to the embedded space. The eRCP is made up of the following components: Standard Widget Toolkit, eJFace, eWorkbench, and eUpdate. We will discuss each of these components and use code examples where appropriate."

ROTOR (SSCLI) 2.0 Released

"I'm happy to announce today that ROTOR 2.0 has released to the web. You can download the release here. ROTOR contains most of the CLR and base class libraries found in our commerical product. It is released under the shared source program. There are several new things in this release: generics implementation; Lightweight Code Generation; stub-based dispatch support; new reflection and reflection emit; new C# features like Anonymous Methods, Anonymous Delegates and Generics."

The Speed of Software Halves Every 18 Months?

"Newer software does try to be sexier by doing flashy things such as the talking paperclip. This causes a tendency for the software to bloat to the point of saturation, i.e. until it performs at barely acceptable speeds. But application programming seems to get worse with faster processors. Even with more memory, faster disks and multiple CPUs, your average web application runs slower. Is it possible that the faster hardware has made us worse programmers?"

Reports From PyCON 2006

"Recurring themes at this year's PyCON2006 Python conference, in Dallas, Texas, included quality control techniques for Python, and interoperable content management systems. Guido van Rossum presented some previews of features to be expected in Python 2.5, and Jim Fulton presented the 'State of Zope', with some musings on where to go from here with Zope 2 and Zope 3. Also starring at this conference was the S5 based on the Python docutils package - most of this year's talks were presented with this package, and one of the talks presented the S5 package itself."

Build UNIX Software with Eclipse

"Become more productive with your own code and others by utilizing Eclipse's syntax highlighting, code completion, and other amenities. It runs on any UNIX platform with a JRE (1.4 or newer) and an SWT port, such as Linux, Solaris, AIX, and HP-UX. It's easy enough to start a new project using Eclipse or to import an existing Eclipse project, but how do you bring existing code into the IDE? And what if you need to get an existing project compiling right away without modifying its existing makefile or configure script? Read along for the answer to all of these questions."

Turning the Terminal Into Your Desktop

"There are several possible reasons why you might choose to use the command line interface as your desktop environment. For one thing, it uses less electricity, so you could maximize battery life on your laptop computer. Secondly, it forces you to think about your operating system and directory structure in a totally different way than a GUI does; this could greatly enhance your understanding of GNU/Linux and cause you to be more creative in your technological problem solving. And thirdly, everyone will think you're a supreme computer genius for ditching X11 for the CLI. People passing by your desk will think you're some kind of computer god. Who doesn't want that?"

C++ Modularity with Namespaces and Exception Handling

Did you know that there are three different C++ namespace types? Namespaces, which are simple to learn and apply, offer a clever means of packaging your code and can assist when symbol conflicts occur. And how well does your code handle exceptions? Inserting exception-handling code can make your code more ready for packaging as external functions. Stephen Morris contends that just as namespaces offer an efficient way to package code, the skillful use of exception handling can quickly simplify that code.

AOP Myths and Realities

"What's keeping you from trying out AOP? Whether you think it's only good for low-level functions like tracing and logging, worry that it'll get in the way of unit testing, or would simply rather stick with the object-oriented alternatives, Ramnivas Laddad gives you good reason to reconsider. Follow along as this popular author and speaker digs beneath the surface of 15 myths that hinder the adoption of AOP."

All Hail Shale: Shale Isn’t Struts

"What Shale isn't is a shrink-wrapped, well-documented, well-tested product complete with an automated installer and a polished management interface. now find out what it is, as Brett McLaughlin unveils this mighty - and rightful - heir to the legacy of Struts. In this first of a five-part series, Brett explains what Shale is, how it's different from the Struts framework, and how to install and set it up in your development environment."