Archive | March, 2010

SiteFusion melds the best of web apps and client-server

It’s a dilemma for developers: Web applications are often limited in their possibilities and lack performance, and large web applications can be difficult to maintain. Client-server applications, on the other hand, are often bloated, limited to a single platform, and hard to update and maintain. To get the best of both worlds, turn to SiteFusion, a client-server application framework that lets you code applications in object-oriented PHP to run on a server, but with the user experience of a local, OS-native application.

SiteFusion lets developers quickly and efficiently write both large and small-scale applications that need connectivity to a centralized server. Because the server applications are written in PHP, even novice programmers can quickly produce something that looks professional, while experienced programmers can use a full set of tools behind the scenes.

SiteFusion bypasses the classic limitations of client-server architectures and web applications. There’s no web browser, but rather a XUL-based thin client, so there are no browser incompatibilities, security restrictions, or feature limitations. SiteFusion takes care of client-server synchrony, leaving virtually no division between the two from a programmer’s point of view. While the client core is thin, it implements the Mozilla extension manager, which allows it to dynamically adopt any scripted or binary extensions developers deem necessary without bothering users with questions or procedures. The core and extensions can use multiple and separate update paths, which makes maintenance easier.

Project leader Nikki Auburger says SiteFusion has been in development since 2006, and was at first proprietary software sold by theFrontDoor in the Netherlands. “Last September we decided to release it with an open source license, because we’ve always been strong proponents of the open source philosophy.”

Auburger says the developers based SiteFusion on PHP “because it’s a well-known, accessible, and easy-to-learn language that is aimed toward quick and efficient development while still offering a wide range of possibilities. For the client side we chose XUL because it’s an actively developing UI framework that holds platform independence at its core. Because it also forms the basis of Firefox and Thunderbird it’s bound to have a future, and recent versions have been stable and extensive. If you’re interested in cross-platform OS-native interface design, XUL is pretty much best way there is.

“We chose a regular web server to be the intermediate between the client and the SiteFusion daemon because this allows SiteFusion applications to function from within even the most restricted network environments. That also makes SiteFusion a breeze for sysadmins; only a standard web server is needed to have clients connect to the SiteFusion daemon. Virtually no configuration is required.”

Auburger is clearly proud of the most recent version, which was released last week. “We love our new ability to dynamically push binary components from server to client. This means that you can turn a client that a user installed two years ago into anything you need from the application you wrote yesterday without bothering the user with a single dialog.”

The project is under active development. “We have been releasing roughly every three months, and will probably keep doing so,” Auburger says. “We intend to keep up with XUL development in future releases, and we will be starting an extension repository soon. After that, we’d like to implement a feature that allows programmers to push, update, and use client extensions directly from the repository.

“We welcome feedback and help from anyone familiar with the project. Our forum is the best way to get in touch with us.”

Bursting with reports to deliver? Here’s a tool for you

DocumentBurster is a light, loosely coupled free report-bursting tool that lets you automate high-volume document delivery to customers, vendors, employees, and prospects. You can pay the big money to buy a similar solution from the likes of Oracle, IBM, or BusinessObjects, or you can turn to this open source application.

DocumentBurster can burst PDF reports and deliver the generated documents via e-mail and FTP; however, the design is open, and it should be relatively easy for people to add new targets such as fax, archive, printers, or whatever they might need, according to its developer, Virgil Trasca.

Trasca began working on DocumentBurster a couple of years ago when he saw the need for such a tool. He says, “I work on it during weekends and add features progressively based on users’ feedback. I foresee adding variables support while building an e-mail message so users can send customized messages to different clients. Also I have in plan to add scheduling support.”

Trasca employs the wxWidgets C++ library for the GUI, with Java code on the back end. “Java has an incredible amount of open source libraries which I can use to build my project. wxWidgets lets me build a cross-platform GUI while also working with something different from my day-to-day work. It was a good learning opportunity.”

While so far the project has been a solo effort, Trasca says he’d be happy to collaborate with others. “Currently the project is lacking a little bit in the area of documentation. I need help also for building and testing the tool on other platforms than Windows; both wxWidgets and Java are cross-platform libraries, but I’ve been able to test the project only on Windows.” You can contact him via e-mail or on the project forums.

GParted is such sweet software

What are some good practices for managing a successful project? “You need to keep an open mind while carefully listening to what others have to say,” advises Curtis Gedak. “Keeping your cool and remaining patient is also essential to understanding a perspective that might differ from your own. And remember to recognize the contributions of individuals, and to provide credit for accomplishments where credit is due.” Those words of wisdom – and some pretty useful software – have propelled the project Gedak manages, GParted, to a spot on the weekly Tops Downloads list on SourceForge.net. GParted’s latest release came out last week.

GParted is a disk device partition editor. A physical disk device can be subdivided into one or more partitions on which the operating system can read and write data. GParted enables you to change the partition organization on a disk device while preserving the contents of the partitions. It lets you create, delete, and move partitions, and move free space from one partition to another, among other tasks. GParted supports a broad range of disk devices, including memory cards, USB drives, hard disks, and RAID systems.

The application is developed on GNU/Linux, but it can be used on other operating systems, such as Windows and Mac OS X, by booting machines running those OSes from a GParted Live CD.

Bart Hakvoort, the original author of GParted, placed the GParted project on SourceForge.net in July 2004. Back then, before SourceForge offered integrated hosted applications, the project team decided to host the forum separately using PunBB software, and placed bug reporting and application source code on GNOME servers. The arrangement works well for the developers. “We have been pleased with the project services offered by SourceForge.net,” Gedak says. “The uptime reliability and the multiple download mirrors are a great asset. We do not foresee changing to a different provider.”

However, Gedak does foresee some enhancements to the project code, many of which have been suggested by users, including:

– Support for devices with sector sizes greater than 512 bytes
– Partition alignment rounding to nearest megabyte
– Support for Logical Volume Management (physical volumes initially)
– Improve progress indicators for long-running tasks
– Enable changing UUID identifiers (useful if copying partitions)

The project works toward making new, non-bugfix releases about every couple of months.

Gedak says the project is a big collaborative effort. “We are fortunate to have many volunteers who contribute their knowledge and time. Currently some of the most active people are:

– Steven Shiau, who maintains GParted Live media images
– Jan Claeys, who administers our forum and monitors our IRC channel
– Class413, who moderates our forum and responds to questions
– Cmdr, who shares his knowledge with our forum users
– Francois Dupoux, who provides feedback on development issues
– And myself, Curtis Gedak, who maintains the GParted application code

“We also benefit from several multilingual people on the GNOME Translation Teams who have translated GParted into other languages.”

Keeping all those individuals moving in the same direction is not as difficult a chore as you might think. “Fortunately for me these individuals are self-motivated,” Gedak says, “and they actively identify and tackle challenges on their own. Very little coordination is required; however, when the need arises, we use email as the primary communication tool.”

Gedak says more help on the project is always welcome. “We have some documentation on our web site that is out of date, and the perspective and efforts of another developer would certainly help to improve the application. The best way to get in touch with the project is via e-mail.”

Building a better Firewall Builder

Back in 1999, Vadim Kurland realized he needed a better way to configure a Linux firewall than the then-typical process of issuing cryptic commands or editing a text-based configuration file full of esoteric settings. Fortunately, he had lots of experience with commercial firewalls that he was able to apply to the problem. The result was Firewall Builder, a firewall configuration and management tool that lets administrators build firewall policies using a GUI, then push the configuration to firewall machines. It supports the open source firewall platforms iptables, pf, ipfw, and ipfilter, as well as Cisco ASA (PIX) and IOS access lists, and makes all these very different firewalls appear the same to the administrator.

Firewall Builder is intended for complex configurations, including those where multiple firewalls and routers are used, Kurland says. Administrators create objects that describe their hosts, networks, and services, then re-use the objects in policy and NAT rules on all the firewalls they manage. The program can transfer a generated configuration to each firewall and activate it there, with various safeguards to help keep administrators from locking themselves out of a remote firewall.

The software not only translates high-level policy rules into target firewall configuration language, it also analyzes rules and finds common errors. It can find optimal ways to implement certain rules depending on the chosen firewall platform, and enforces best practices in the firewall policy design.

Firewall Builder isn’t the only tool of its type. Some similar utilities provide a GUI interface for iptables or pf, some can generate configuration scripts from templates, others implement a high-level language that translates into configurations of the target firewall. Firewall Builder provides all of that as an integrated, cross-firewall package that helps administrators plan, manage, and deploy firewall configurations onto multiple machines, both locally and remotely.

The Firewall Builder code is written in C++. Kurland says in the project’s early days its interface was based on GTK+, “but later we switched to Qt to get more robust multi-OS support.” The project released a public beta of version 4.0 last week.

Kurland posted the code to SourceForge.net not long after the site was established, in 2000. “It is important to be part of the community of open source projects and developers – this helps promote the project. SourceForge also provides excellent communication with users by offering online forums, bug tracking system, mailing lists, and the file download service.”

However, the project has grown beyond SourceForge.net’s mission of hosting only open source software. “Firewall Builder is dual licensed and has commercial add-ons, so we moved the code repository to SVN on our own server, but we keep a read-only CVS repository of the older versions on SourceForge and use SourceForge for public bug tracking, online forums, mailing list, and download area for the open source part of the project.

Firewall Builder 4.0 adds the ability to configure firewall clusters. It supports clusters built with heartbeat, vrrp, and OpenAIS, and packages that manage these, such as pacemaker and others, on Linux; CARP and pfsync on OpenBSD; and Cisco PIX failover configurations. It can also generate configuration scripts to manage IP addresses of interfaces, VLANs, bridges, and bonding interfaces on the firewall. Firewall Builder 4.0 can generate a drop-in replacement firewall script for OpenWRT, and has experimental integration with IPCOP. It includes improvements in the GUI and better support for target firewalls.

In future versions the project plans to add support for VPNs and QoS, and possibly support for additional commercial firewalls such as Juniper (formerly Netscreen) devices. Kurland says, “We usually release major new version every couple of years or so and make several bugfix interim releases between that. Hopefully we’ll be able to make major releases more often.”

The project welcomes help with testing and bug reports. “We appreciate all sorts of contributed documentation, guides, and how-tos that we can publish on the project web site.”

Control your model railroad, even over the Internet, with srcpd

About 10 years ago a few model railroad enthusiasts in the German Usenet group de.rec.modelle.bahn began discussing how a model railroad system could be controlled with a computer. They were especially interested in the Linux operating system, which lacked appropriate software at that time, and in working over the Internet. One result was a formal TCP/IP protocol called Simple Railroad Command Protocol (SRCP).

Since every protocol needs a daemon on one side and client programs on the other, project leader Matthias Trute recalls, “a few of us wrote real software for a real model railroad system. And since we were in Europe and in Germany, we chose different systems: Maerklin, NMRA DCC, and a few not-so-widespread systems such as Selectrix. No one outside the model railroad world would know what the differences are. ;=)

“Others wrote nice, smart client programs to manage a model railroad layout or be an engineer on a locomotive. I wrote the daemon, srcpd. The program itself is a multi-threading framework-like software written in C. It uses libxml2 to keep the configuration beast under control. Since there are many railroad systems out there, we defined an internal API so that modules can be written.

“We had no home to host the project, and SourceForge did (and still does!) a great job. We got web space, a source control system, and a mailing list, along with support if something goes wrong. That was all we needed, and it was and still is great.”

The daemon is still under active development. Trute says, “What we need is what almost every open source projects needs: Feedback from our users. What do they like, what do they think, and what do they want to have? Developers and testers are also welcome. They can contact us easily on the mailing list.”