Posts Tagged ‘tools’

  

Troubleshooting Incidents and Blackboard Architectures

I recently helped with troubleshooting a complex, multiple-day incident that seemed to be a never-ending stream of surprises. Communication between the various teams involved and their management was a challenge, with different theories being discussed in separate discussion threads with only partially overlapping sets of participants. After the dust settled, I took the time to […]

Faster Builds via Concurrency

Recently I have been looking for ways to make a Java build run faster. This is something I seem to do at least once a year, typically as a result of the application’s production code base and automated test suite both growing in size over time. The build had previously already been split into multiple […]

Visualizing Java Package Dependencies

I have recently been examining the overall package structure of a Java enterprise application. I discovered an easy way to visualize the dependencies between packages using two open source tools JDepend and Graphviz and a little glue code. JDepend analyzes compiled Java bytecode and determines dependencies and metrics between Java packages. These analysis results can […]

Software Documentation Templates

I am a believer in minimizing software documentation that lives outside the code. This does not, however, mean no documentation. There are a number of reasons why documentation can be useful, especially for larger organizations: Documentation is more effective than code at communicating high-level or cross-cutting design and operational concerns. Larger organizations or distributed organizations […]

Stop Staring at the Spreadsheet

As a scrum master or technical lead do you find yourself frittering away your time staring at the spreadsheet (or other tool) you use to track progress of the team? Do you keep studying the velocity and burndown or keep tweaking the numbers or formulas? I have heard of this becoming a chronic problem for […]

The Five Commandments of Version Control

Effective use of version control is a fundamental development practice, especially if there is more than one person working on the same code base. Below are the standard rules I use for the proper use of version control in the style of biblical old testament commandments. I like imagining an authoritative voice booming these commandments […]

Avoiding Distractions with Email

This article continues the theme of my previous article on avoiding being disturbed at work by looking at another source of distractions – email. Email is an important form of communication for me at work, but I as previously discussed I cannot afford to let the use of email distract me during my dedicated blocks […]

Using Ivy to Manage Build Dependencies

Ivy is a tool for managing build dependencies within the Ant build tool. In this article I share my experiences using Ivy and provide recommendations on what to do and not do. This article is not a tutorial on using Ivy: for that see the Ivy documentation. Before getting into the specifics of Ivy, the […]

Why You Should Be Using FindBugs

Build automation has been the theme of my recent learning activities, so when I came across multiple positive references to a tool called FindBugs I decided to give it a try. My conclusion: FindBugs is worth using on all Java projects. Read below for the details. FindBugs is a Java static analysis tool that scans […]

Time Reporter Version 2.0 Available

I have just released version 2.0 of my Time Reporter utility. It is available for download from my Software page. The major change in this release is added support for aggregated reporting across different task categories, which I call rollup groups. This required expanding the categories of types to three: base tasks, rollup tasks, and […]

Resume Calculator

I have added a new software utility called Resume Calculator to my Software page. Resume Calculator reads resumes in XML format and calculates the total months and years of experience across specified resume entries. This is useful for responding to formal requests for proposal that require named resources to specify years of experience across various […]

Time Reporter Version 1.1 Available

I have just released version 1.1 of my Time Reporter utility. It is available for download from my Software page. The significant changes in this release are: I added support for time adjustments by which you can explicitly specify an amount of time (positive or negative) to add to a task. I improved handling of […]

How to Add Logging to Ant Builds

The Apache Ant build tool is a great aid in automating builds and deployments. When the build fails, however, diagnosing the problem can be painful – especially if it only occurs intermittently. Logging details of the Ant build can therefore be useful. By default Ant writes informational messages to the console. While this is usually […]

The Power of Search

My appreciation of the power of search, particularly for developing software, has grown over the last few years. The wise use of search can significantly increase your effectiveness as a developer, acting like an amplifier or expansion unit for your brain. Search allows you to navigate faster, remember easier, and know more. I spend most […]

Automated Deploys using SSH and Ant

I am a big proponent of automating the building and deployment of application code: this minimizes the chance of human error and ensures a consistent process is followed. Last year I wrote an article about automatically deploying code via FTP using the Java-based Apache Ant build tool. Since then I have needed to deploy to […]

Version Information WordPress Plugin

I have added a new WordPress plugin called Version Information to my Software page. This plugin displays version and configuration information for WordPress, PHP, MySQL, and the web server. A summary is displayed in the Site Admin dashboard and more details are displayed under a Version Information page under the Site Admin Plugins menu This […]

Development Tools Should Use Text Files

Here is a request to all vendors of development tools: please persist code to text files. Over the last few years, I have encountered an alarming number of tools that do not use text files. Some examples are: A reporting tool that stores report definitions as binary files. A data modeling tool that persists models […]

EnvGen – the Environment-Specific File Generator

I have added a new software utility called EnvGen to my Software page. EnvGen is an Ant task for generating different versions of the same file parameterized for different environments (i.e. development, test, and production). File generation is done using FreeMarker, a template engine with a full-featured templating language. You specify environment-specific properties in a […]

Assembling a Free Development Tool Set

In my article on personal learning by doing, I wrote about the importance of personal development projects for professional development and mentioned that I maintain a complete development environment at home assembled from free, open-source tools. In this article I present the tools that I use and find the most valuable, focused particularly on Java […]

My Experience with Subversion

Subversion is open source version control software that has significantly gained in popularity over the last few years as a replacement for CVS. I have been using Subversion for a while for my personal projects at home. It has generally worked well, but I have encountered a few difficulties along the way. One reason I […]