Put Agender on your schedule

Agender is a small, simple scheduler. Mexican developer Gabriel Espinoza says he created Agender about a year ago “because I didn’t want to use a big application like Evolution or Microsoft Works. I started playing with the wxCalendarCtrl from wxWidgets, my favorite GUI toolkit, and after a few weeks I had something that worked.

“wxWidgets is a C++ library, and I prefer C++ over other object-oriented languages because of its portability and its speed. And I like wxWidgets because it isn’t just a GUI toolkit, it handles practically every difference between operating systems, creating real cross-platform apps.”

Espinoza uses the Code::Blocks IDE to develop Agender. “I like it because it uses wxWidgets itself, so the previews of the RAD tool, wxSmith, look like the real thing. The editor is very cool, the folding blocks are nice, and the code completion toolbar helps me find functions quickly. Autocomplete saves me lots of keystrokes; instead of writing if (){}else{} I only have to type ife. And GDB integration is easy to use.

“I use g++ and the MinGW cross compiler, and the makefile is generated with bakefile, so there is support for other compilers. For Windows I use NSIS to create the installer; for every other operating system there is a configure script. I plan to create a binary installer for Linux based on Autopackage.”

In upcoming versions, Espinoza plans drag and drop functions, searching, and alarms. Coming first will be i18n support. “Agender has been already translated to Spanish and maybe soon will be available in German, thanks to my sister.”

Though Agender is small in size – code::blocks says 725 lines of code – Espinoza would welcome help with things like debugging under Windows and making a native build for Mac OS X.

Espinoza says he made Agender free software for several reasons: “fun (even people that aren’t programmers understand that), to be admired (it feel nice when you see there have been new downloads), gratitude (practically all the software I use is free software), and I think free software gives you a name – instead of saying ‘an unknown programmer’ you can say ‘a guy who has a project at SourceForge.net.’

“I put the project on SourceForge because it had the most features of any hosting site. SourceForge also has big traffic from people searching for new software, so that makes Agender available to a big audience. After creating the project I started the web site and added it to Google and freshmeat, and recently sent it to Softpedia, to make the software a little more known.

“I don’t know if people really like Agender,” Espinoza says. “The only people I’m sure are using it are me and two of my sisters.” If you give Agender a try, be sure and send some love his way.

Colorful dominoes game hides an exercise in propositional logic

Some SourceForge.net projects get hundreds of downloads a day. Some are updated monthly by teams of volunteers. And then there are projects like Dominoes on Acid. “I must say I don’t know if I appeal to either dominoes fans or people interested in mathematical logic,” says Matthias Benkmann, the program’s author. “I’m sure about only two fans of the game. The first is myself, and the second is the person who reported a bug two weeks ago, which prompted me to touch the program again after more than five years.”

Dominoes on Acid is a game superficially similar to the classic dominoes game. You get tiles with patterns on each end, and you can connect the ends of two tiles only when they show the same pattern. But instead of the standard two-color tiles spots, the tiles in Dominoes on Acid have (sometimes very complex) multi-colored patterns.

Dominoes on Acid is a solitaire variant of the game. You get a starting tile and an infinite supply of other tiles and have to build from the starting tile until you have reached a point where every branch of your structure ends with a blue-bottomed tile.

“That’s the game part, and if you want you never need to look further,” Benkmann says. “You can play the game and enjoy building colorful patterns with increasing complexity. But for the scientist the real gem is hidden under the hood. Every completed game of Dominoes on Acid corresponds to a strict mathematical proof in classical propositional logic. What makes this mapping so interesting is that you don’t need to understand propositional logic to play the game.”

Benkmann created the games as a programming project for a college computer science class in 2002, and updated it twice shortly thereafter. He considers it feature-complete. He wrote the program in Java “because at that time it was the best available choice for cross-platform development. I use Linux myself, but friends and family use mostly Windows. Some have a Mac. I don’t want to write software that they can’t use. Furthermore Java allowed me to create an applet version of the game that can be played in the browser.”

Between the time he wrote the program and now, Benkmann’s development tools of choice changed. “Back in 2002 I used CVS for version control, the text editor joe for writing my code, GNU make for orchestrating the build, and Sun’s JDK for compiler and VM. I chose CVS because there were no free alternatives (at least not mainstream ones) back then. I chose joe because Emacs and Vi(m) suck. And I chose GNU make because coming from the C/C++ world it was what I was used to. Ant was pretty young and obscure back then.

“From that time until this month I distributed the game and source code in a single JAR archive served from static webspace. No historic versions were available, nor was revision history for the source code. But when someone reported a bug in Dominoes two weeks ago, I decided I needed to have better infrastructure for maintaining and publishing new versions, even if they occur very infrequently, so I decided to invest the time to set up a SourceForge.net project. I chose SourceForge.net because it is well-known and I knew it offered the features I thought I’d need (Mediawiki and git). But mostly it was because I already had an account there and had prior experience with another SF project.

“When I created the SourceForge.net project I converted the Dominoes on Acid repository to git, because git as a distributed VCS/SCM allows me to have my own independent master repository on my computer while offering an equivalent repository publicly on SourceForge.net. If I touch the code again it will be in Eclipse rather than a plain text editor. And I may convert the project to using Apache Ant instead of GNU make for build orchestration.”

For enterprise-scope network management, turn to OpenNMS

When I asked readers to suggest projects to spotlight, one of the first names that came up was OpenNMS, the first enterprise-grade network management application platform developed under the open source model. It’s designed to manage hundreds of thousands of devices. OpenNMS competes head to head with products such as Hewlett-Packard’s OpenView suite and IBM’s Tivoli, often favorably.

OpenNMS helps administrators in four main functional areas:

1) Provisioning – handles moves, adds, and changes for large numbers of devices.
2) Event management – handles both internal and external events, including automating event correlation and trouble ticketing integration.
3) Service monitoring – performs operations from simple ping and port checks up through complex web page sequence monitoring and mail monitoring to insure that network-based services are operational and responding quickly.
4) Data collection – using a number of protocols, including SNMP, WMI, and HTTP, OpenNMS can gather time series data; store, graph, and trend it; and alert administrators when thresholds are reached.

While it does a lot out of the box, what makes OpenNMS unique is that it can be customized easily to suit different environments.

Tarus Balog, who became the principal maintainer of the project in May 2002, says OpenNMS was started about 10 years ago by a group of network management professionals who wanted a non-proprietary, open source “Swiss Army knife” toolset for solving enterprise-scope management problems. Need a feature to behave a little differently? Modify the code. Find a bug? Fix it. Instead of trying to map business processes to the tool, the tool can be molded to the business processes.

Balog says the project started to take off in 2004 with the creation of The Order of the Green Polo. While the OpenNMS project is supported by the commercial company called the OpenNMS Group, the project is managed by the OGP, most of whose members do not work directly for the commercial side.

News about OpenNMS is spread almost entirely by word of mouth. “We have no formal marketing team,” Balog says. “Despite that, if you Google ‘open source network management’ we are the first hit, ahead of the Wikipedia article, so it must be working.”

As the project has grown it has adopted a large number of open source tools and libraries. “We switched from CVS to Subversion, and are currently migrating to git. OpenNMS uses Maven as the build engine, and we leverage other projects such as Spring and Hibernate.”

The project is “working feverishly” to get OpenNMS 1.8 released. “We use an even/odd numbering scheme for releases, so the latest production release, 1.6, is paired with the latest development release, 1.7. We hope that 1.7 will become 1.8 by April. We’ve adopted a lot of Agile programming techniques, and we currently have a two-month minor release cycle that we hope to move to one month in 2010.”

Balog says developers who want to work on OpenNMS should “just jump in. Feel free to visit our Bugzilla, grab a bug, and start contributing. We leverage the mailing lists on SourceForge.net quite heavily. Interested developers should join the opennms-devel list, while anyone interested in OpenNMS should sign up for opennms-announce, a low traffic, moderated list for OpenNMS news. We also have an annual developers conference called Dev-Jam, to be held next at the University of Minnesota in July 2010.

“But you don’t have to be a developer to be a part of OpenNMS. We welcome open source enthusiasts of all levels.”

WordPress Themes