Archive | January, 2010

Field Bird: A lightweight Java IDE

Let’s face it – not everyone is cut out to be a programmer. You have to have a logical mind, and be capable of understanding the syntax and constraints of a computer language. But programming doesn’t have to be drudgery either. For instance, Java developers can simplify programming tasks by turning to Field Bird, a collection of lightweight tools for developing Java and J2EE programs. It can help anyone from the inexperienced Java user who needs help getting started to the more experienced Java hacker who wants point-and-click access to the Java commands and a text editor.

Field Bird has nothing like the scope of Java interactive development environments (IDE) like Eclipse or NetBeans. Instead, its lightweight IDEs for Java and J2EE provide a simple, non-intimidating user interface that doesn’t require a lot of time to learn. A lightweight text editor completes the toolkit. Developer John Biskeborn says he began building the tools when he couldn’t find any other truly simple Java IDE that clearly indicated what it was doing.

Biskeborn has been working on the Java tools off and on for eight years. The most recent version was released last week. And where does the name Field Bird come from? “When I was a kid, I would see a special kind of bird in fields. It had a nice song and seemed to like people. Not knowing what it was, I called it a field bird. I later found out it was a meadowlark. It truly is outstanding in its field. I hope in some way this software is too.”

Virtual darkroom plus virtual light table – it’s darktable!

When I stumble into the kitchen table at midnight, I’ve been known to cry, “It’s a virtual dark room in here!” But that has nothing to do with darktable, which is virtual darkroom software that lets you develop your digital negatives (comparable to UFRaw), and also bundles in the same application a virtual light table to organize your image collections (comparable to F-Spot).

Darktable is well-suited to the hobbyist photographer who values a smooth workflow from viewing and filtering to raw-level development. It sports a simple and pleasant interface and a few unique features, including original graphical interfaces to color correction and monochrome conversion, an equalizer widget with an edge-avoiding wavelet back end, and full 3×32-bits-per-pixel floating point precision, enabling high dynamic range (HDR) input and processing.

Darktable makes heavy use of plugins to expand its capabilities. It’s simple to program your own darkroom image operation – say, a bilateral filter or some fancy hole-filling texture synthesis – with just a few additional lines of code.

German developer and photographer Johannes Hanika says he created darktable because he needed it himself, for his own images. “I wasn’t quite happy with the workflow using existing applications, because it usually involved multiple applications and the command line. Using Windows and commercial products was not an option. So I figured, hey, I’m a programmer, how hard can it be? And since I was going to code it for myself, I thought people might be happy if I shared it.

“I’ve been working on dt for about a year now, using gcc (c99), vi, and Autotools. Parts of the core GTK interface are designed in Glade. The application uses several external libraries, including libraw, because it was threadsafe and feature-complete, and exiv2, because it reads the lens mount information needed for lensfun. I chose GTK over Qt because I like c99 more than c++ and I think usually the applications look better.”

The software is very much a work in progress. “dt is not quite feature complete yet,” Hanika says. “The darkroom mode is usable as it is now, with a few minor rough edges (you can’t set an aspect ratio for crop, for instance), but as everything is a plugin, this can easily be extended in future versions. The more rudimentary parts – light table mode, library management, directory watching, import, export, tagging, and free search by image properties – are the focus of the next release. I also hope to ship a translatable plugin template with the next version.”

Hanika offers a few tips for new users. “The GUI is self-explanatory. A few keyboard shortcuts are documented on the web site. One general hint is to use the mouse wheel. Several widgets use it to scroll, zoom, or change some radius.”

Hanika is happy to accept help with translations and bug fixes. Post your questions and patches to the project’s mailing list.

Keep your journal in a RedNotebook

Writing in a journal or diary, where you may pour your heart out for no one’s eyes but your own, can be an intensely personal experience. Writing longhand in a paper notebook used to be standard practice for journal writing, but most people nowadays type faster than they write, and digital text is easier to search. But finding a journal application that suits your sense of style is just as personal a decision as finding the right notebook in which to write. When Jendrik Seipp couldn’t find what he was looking for in a journal app, he began coding his own, and that became RedNotebook.

RedNotebook is a desktop journal and diary. You can use it to write notes or work logs or keep a regular diary. You can tag entries, and insert files, pictures, and links. Once you’ve entered them, you can search your entries, and export them to plain text, HTML, LaTeX, or PDF. Entries can be formatted with a wiki-style markup language, and the application even provides statistics about your journal.

RedNotebook lets you construct templates for repeating posts, so you can make a template for each day of the week, or named templates for special events such as work meetings or trips. Another fun feature is a word cloud that shows the words and tags you use most often.

The program supports wiki markup not just in journal entries, but everywhere. That means you can write **bold** text in the main text area, and also in the categories on the right side of each page. You can also have links and pictures in the category entries.

Seipp says he chose to write RedNotebook in Python because “I wanted to write a bigger software project with this awesome language. At first I used the wxPython toolkit, but was soon fed up with it, because it was very difficult to use and there wasn’t much documentation about it. I switched to PyGTK for the 0.5 release and am very happy with this decision. The GUI is partly designed with Glade. For programming I mostly use Eclipse with PyDev or Geany. The project uses SVN, because that was the only version control tool I knew at the time. The application itself makes use of PyYAML and txt2tags because those libs make the conversion of the content from disk to GUI to HTML and back a breeze.

“For the future I have planned Zeitgeist integration to give users an auto-generated log of activities. I also plan to implement some kind of encryption. And maybe RedNotebook will even make the switch to real rich text editing.”

Since he began development in August 2008 Seipp has made 40 releases. He says he hosts the product on SourceForge.net because “it is the best-known service for open source software and a starting point for many people’s searches for free software.” He announces new releases at freshmeat.net and gnomefiles.org, and via Twitter.

If you’d like to get involved with the project, you can contact Seipp through RedNotebook’s forum or via e-mail. He says, “RedNotebook needs more translators, and also documentation writers and testers. In addition the project seriously needs someone in charge of creating Windows installers (or the first Mac package) for new versions. If you are a developer, help is needed for the encryption work. Last but not least, if you know your way around CSS, it would be great if you could design some templates for nicer content previews.”

SendmailAnalyzer is enterprise-ready

SendmailAnalyzer is a log analyzer for the Sendmail mail transfer agent (MTA). It can process maillog files nightly or in real time, and generates dynamic statistical reports in HTML with graphic output that let you know at any moment what is going on on your mail servers. It can show hour, day, month, and year views for historical reports, and provides cross-linked navigation to detailed views. In short, it tells you what you need to know for better performance analysis, troubleshooting, and resource management.

The software is easy to install on any *nix server that supports Perl, CGI, and libgd, and highly configurable to match the dozens of possible Sendmail configurations.

SendmailAnalyzer is small and fast, and useful on everything from small enterprise MTAs to those at ISPs that handle millions of email messages per day. It can work on a single MTA server or on a central syslog-dedicated server. It can produce reports for all the major milters (Sendmail filters), such as SpamAssassin, MailScanner, ClamAV, Amavis, RBL Check, and J-ChkMail. In addition to admin-oriented information, it can present IT and customer information such as message direction distribution and per domain reports.

Gilles Darold, the developer behind SysUsage, which we profiled last week, created SendmailAnalyzer seven years ago to help manage the four Sendmail servers at his company, which handle as many as three million email messages per month, and run spam and virus filters. “As a busy sysadmin I only had time to do some grep commands on maillog for troubleshooting, so I looked for a tool to create cumulative and historical reports on email traffic and highlight Sendmail errors. I never found anything very useful, so I built exactly what I wanted.”

Like SysUsage, SendmailAnalyzer is written in Perl, with libgd producing PNG graphics. SendmailAnalyzer doesn’t use a database, just flat files, so there’s no elaborate software to install.

Darold welcomes user input via the project’s home page. “If you find something is missing, just drop me an email and I will include it.” Users who want to help develop the software are invited to add support for more milters and filters.

Clarifying SourceForge.net’s denial of site access for certain persons in accordance with US law

If you follow @sourceforge on Twitter, you may have seen some tweets last week from certain users outside the US complaining that they no longer had access to SourceForge.net. Here’s why.

Since 2003, the SourceForge.net Terms and Conditions of Use have prohibited certain persons from receiving services pursuant to U.S. laws, including, without limitations, the Denied Persons List and the Entity List, and other lists issued by the U.S. Department of Commerce, Bureau of Industry and Security. The specific list of sanctions that affect our users concern the transfer and export of certain technology to foreign persons and governments on the sanctions list. This means users residing in countries on the United States Office of Foreign Assets Control (OFAC) sanction list, including Cuba, Iran, North Korea, Sudan, and Syria, may not post content to, or access content available through, SourceForge.net. Last week, SourceForge.net began automatic blocking of certain IP addresses to enforce those conditions of use.

As one of the first companies to promote the adoption and distribution of free and open source software, and one that still puts open source at the center of its corporate ideals, restrictions on the free flow of information rub us the wrong way. However, in addition to participating in the open source community, we also live in the real world, and are governed by the laws of the country in which we are located. Our need to follow those laws supersedes any wishes we might have to make our community as inclusive as possible. The possible penalties for violating these restrictions include fines and imprisonment. Other hosting companies based in the US have similar legal and technical restrictions in place.

We regret deeply that these sanctions may impact individuals who have no malicious intent along with those whom the rules are designed to punish. However, until either the designated governments alter the practices that got them on the sanctions list, or the US government’s policies change, the situation must remain as it is.