Optaros Free and Open Source Software Policy

June 29th, 2005

Today, we published the Optaros Free and Open Source Software Policy. This is something that I have wanted to do since we started the company and I’m pretty excited about it for several reasons.

  • We wanted to have a policy that would be attractive to employees who want to engage with open source projects and communities. We believe that developers who participate in open source projects make better consultants.
  • We needed to make it clear to our customers that we understand both the benefits of working with open source and the resposibilities that come with doing work for hire. In consulting, the client always comes first and nothing in this policy changes that.
  • We wanted to make a commitment to the OSS community that we will be a good citizen. Being a good citizen is measured in deeds, not words, but this policy shows the guidelines we expect our employees to follow.

Creating the policy was the first thing, but we also wanted to publish the policy (and do so under a CC license) to encourage other companies to adopt similar guidelines. Currently, too much open source work in Enterprise IT is done as skunkworks and under-the-radar of management. This puts employees at risks and prevents companies from realizing the benefits they would get if they encouraged and supported their developers’ OSS activities. My hope is that developers and IT management can use this policy to drive similar conversations at other companies.

Using OSS to improve your IT department

June 10th, 2005

Dan Woods has written a great article (IT and Open Source: Uncovering the Essential Processes) that talks about how using open source software improves your IT department. He points out that when IT departments succesfully use open source, they are forced to think about several things that they should have been thinking about already. Dan’s examples include staff skills, hybrid/integratable architectures, governance, evaluation process, support plans, and your company’s relationship to intellectual property.



Responsibly and successfully adopting open source should include considerations in all of these areas.



I’m looking forward to the enterprise-focused OSBR program that Dan is running at OSCON this year.

WTFIGO

June 9th, 2005
WTFIGO Logo

As Java developers, we have plenty of great tools for coding and build time assistance. And several products exist to assist with monitoring applications in runtime. But a gap exists between coding and production where our only tools are log files and Google searches. And as more and more great open source libraries become available, stepping through unfamiliar code becomes a time-consuming and overwhelming way to develop.



To address that gap, I’ve been working on an open source tool, called WTFIGO.

WTFIGO is a collection of development runtime diagnostic tools which assist Java developers building Web applications, particularly using Open Source frameworks. WTFIGO installs in your web application and provides information through a number of web interfaces. There are 4 components to WTFIGO:

Application Dashboard
The application dashboard provides detailed
runtime information about the application and
its components. The application dashboard can
detect the presence of a number of open source
libraries and will provide information as
appropriate. Currently supported libraries
include Spring and Hibernate.
In-page Diagnostics
Diagnostic information can be added to every
page response which includes log messages
related to the request.
Advanced Exception Handling
Informative exception handling messages with
greater contextual information about exceptions
than simple stack traces
Debug widgets
A collection of JSP tags that can be used to
assist in development activities

A feature demo and the first semi-stable technology preview early release alpha version is available at wtfigo.org. Check it out and I’d be thrilled to hear your feedback.

Finding Open Source

June 6th, 2005

Two great, new resources for finding open source software launched recently. SourceLabs announced Swik.net and Ugi Cei unveiled the OSZone.org. Both of these sites provide a searchable index of OSS projects. Both sites are wiki-based and content is community driven. Each provides RSS feeds so you can keep up-to-date with projects. Swik provides the ability to track lots of information about a project such as the mailing lists, bug tracker, and various related link URLs. OSZone is has a more limited (but more consistent) set of information. Both sites support tagging so folksonomies can develop, but OSZone also has a traditional classification hierarchy.


These sites join the O’Reilly/SpikeSource CodeZoo.com, Carlos Perez’s blog/wiki Manageability.org, and Java-Source.net as excellent sites to find projects.

Here is a quick JSP I whipped up today to allow you to control your Log4j configuration at runtime through a web interface. Just save this as log4j.jsp in your web directory and let it rip.


<%@ page import="org.apache.log4j.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head><title>Dynamic Log4J Control</title></head>
<body>
<h1>Dynamic Log4J Control</h1>
<%  String logName=request.getParameter("log");
if (null!=logName) {
Logger log=("".equals(logName) ?
Logger.getRootLogger() : Logger.getLogger(logName));
log.setLevel(Level.toLevel(request.getParameter("level"),Level.DEBUG));
}
%>
<c:set var="rootLogger" value="<%= Logger.getRootLogger() %>"/>
<form>
<table border="1">
<tr><th>Level</th><th>Logger</th><th>Set New Level</th></tr>
<tr><td>${rootLogger.level}</td><td>${rootLogger.name}</td><td>
<c:forTokens var="level" delims="," items="DEBUG,INFO,WARN,ERROR,OFF">
<a href="log4j.jsp?log=&level=${level}">${level}</a>
</c:forTokens>
</td></tr>
<c:forEach var="logger" items="${rootLogger.loggerRepository.currentLoggers}">
<c:if test="${!empty logger.level.syslogEquivalent || param.showAll}">
<tr><td>${logger.level}</td><td>${logger.name}</td><td>
<c:forTokens var="level" delims="," items="DEBUG,INFO,WARN,ERROR,OFF">
<a href="log4j.jsp?log=${logger.name}&level=${level}">${level}</a>
</c:forTokens>
</td></tr>
</c:if>
</c:forEach>
<tr><td></td><td><input type="text" name="log"/></td><td>
<select name="level">
<c:forTokens var="level" delims="," items="DEBUG,INFO,WARN,ERROR,OFF">
<option>${level}</option>
</c:forTokens>
</select> <input type="submit" value="Add New Logger"/></td></tr>
</table>
</form>
Show <a href="log4j.jsp?showAll=true">all known loggers</a>
</body>
</html>

Evaluating Open Source Software

April 19th, 2005

I’ve written an article for LinuxWorld magazine entitled “Evaluating Open Source Software”. Here is the abstract…

As the number of open source software (OSS) projects grows, OSS alternatives are showing up in more and more software evaluations at large organizations. However, evaluating OSS effectively requires that IT professionals use different criteria than the ones they use for commercial software. Organizations that have done so have made better open source decisions.

A PDF of the article, along with other articles from Optaros folks, is available here.

Sleeptracker

April 17th, 2005

After finding this article on Yahoo! news (Smart clock knows when you’re ready to get up) about the SleepSmart prototype I found the SleepTracker alarm watch which is available now. Both of these products work by observing your sleep patterns and waking you up when you are in light sleep rather than deep sleep. I’ve been looking for a product like this ever since college when my EE senior design project involved building an alarm clock (with a keypad!).

The SleepTracker has been ordered and should arrive this week. After that, I guess I won’t be able to use sleepiness as an excuse for my light blogging.

JExamples

April 4th, 2005

Check out JExamples, a tool for searching open source Java projects for examples of code. This is something I’ve been wanting for a while. The search allows you to find code that uses, extends, or implements a Class or invokes a specific method. In this way, it is a more intelligent search than Koders, which only does text matching in source files. Koders has a much larger database, but since they don’t focus on Java, they don’t perform structural analysis of the source files.


Really cool. I’m looking forward to them adding more projects to their index. Now how long until the Eclipse plug-in?

Coding in a blue dream

February 26th, 2005

Dion Almaer had an interesting idea come to him in a dream about an IDE that can observe you as you code and make suggestions based on what had been written by other people writing similar code. I don’t think this is as far out as it seems. I could imagine an IDE plug-in that queries something like the Koders search engine and returns examples from the vast open source commons.

JTidyFilter

February 22nd, 2005

Well, after a comedy of errors, I think I’ve got my server back in a semi-working state on a backup box. I’m keeping my fingers crossed that this will stay up until my fried motherboard is replaced.



I just came across JTidyFilter (via Matt Raible). This is a great little utility for finding HTML errors while you are developing Java web apps. JTidyFilter can be installed as a web-app Filter that checks the responses generated by your application for validation errors. Since it is just a Filter, it is easily removed before you deploy to production. It can also reformat the HTML of the responses, but I can’t imagine many cases where pretty HTML is worth the runtime overhead.