How it works Static code analysis Technical paper

Choose a category:

Product Announcement

May 23rd, 2008 by Mark Dixon. Posted in Enerjy

After much thought, we have decided that selling Java development tools is not a viable business model for us. Several recent events have helped us reach this conclusion:

  • At JavaOne this year, free tools completely dominated the sessions. The exhibit hall was sparsely filled, and while we saw lots of interest in free t-shirts and spin-the-wheel games, there wasn’t much interest in the vendors’ products themselves.
  • Our friends at Agitar have begun to wind up operations. It was interesting to watch them go through several iterations of their business model but ultimately they were unable to find anything that gave them a reasonable return.
  • Sales of our own product have been slower than we had anticipated.

Ironically, I was putting together my own budget for next year and realized that there just aren’t any software purchases on there. We’ve bought a few specialized pieces of software - Mathematica for the index work; JProfiler for performance tuning and Atlassian’s Jira and Bamboo - but we’ve moved to free tools for everything else. Atlassian has insane maintenance prices, so if anything happened to Jira or Bamboo, we’d almost certainly replace them with Trac and something like Hudson.The good news is that we are absolutely committed to the Enerjy product and, therefore, with immediate effect, the Enerjy plugin for Eclipse is available at no charge. Our goal is to become the most widely used static code analysis tool in the Eclipse world by providing a wide but pragmatic ruleset and the same level of seamless integration that you’ve come to expect from Enerjy. We have great plans for widening the ruleset and making the configuration wizard smarter to help manage all those extra rules.So, how are we going to stay in business if the product is free? Well, we run a very tight ship here, and we have sufficient funding to continue for the foreseeable future. Moving forward, we have had success in the past providing expert advice to organizations on code quality. With the additional data and experience we have gained from the Enerjy Index, the plugin and Bugpedia we believe that we can offer unique, technology-based consulting services to companies seeking help with code quality issues.To those users who purchased the product after April 1, we will be contacting you to arrange a refund of your purchase price.If you have any questions please post them here or, if you prefer, contact me directly at mark_dixon at enerjy.com.

Glitch Watch - Incorrect debt ratings at Moodys

May 23rd, 2008 by Nigel Cheshire. Posted in Glitch Watch

CPDOsAs if the financial world wasn’t in enough turmoil already, it has been revealed that programmers at debt rating company Moody’s made a “coding error” that overrated several debt products in early 2007. The products affected were targeted at institutional investors, and after the error was corrected, their ratings dropped from the top triple-A designation by “several notches”. It is estimated that institutions that invested in the previously top-rated debt products will have lost up to 60% of their investment.Oh well, it’s only money.

Book Review & Video: Emergent Design by Scott Bain

May 19th, 2008 by Rich Sharpe. Posted in Books, Enerjy.tv, Process Improvement, Software Quality

The first page of the preface of this book made me wince! Not because the book is bad, far from it! The immediacy of Scott’s insight into the pain of software development can only come from someone who has been there and experienced the trials and tribulations of project failure (more than once).I was expecting this to be yet another book on Design Patterns, but it really isn’t. This book attempts to look deeper into questions that cannot be easily answered and suggests a road map to evolve the profession of software development. It concentrates on practices, principles and disciplines that developers should follow when creating software, especially when thinking about how to implement features. It covers a wide range of practices, including analysis, refactoring, testing, and looks at how existing patterns should influence our design decisions.The appendix includes some very good examples of common design patterns. Different styles are applied to each pattern to teach or remind us what type of problem each pattern is used for. UML diagrams, procedural code alternatives, non-software analogies and basic OO code for implementation are included for each pattern.Since so many of us have to deal with legacy code bases, it’s always helpful when a book like this addresses that issue. Scott mentions hearing comments such as “this code is too hard to unit test,” “unit testing takes too much time” and “too many permutations to unit test.” He explains how these all point to design issues, and that leads into a great chapter discussing refactoring.Why should we refactor if the behavior does not change? This and other similar questions are covered too, explaining the concept of technical debt and the frequency of developer burnout: “Decaying, hard to maintain software will disable a development team faster than anything I know.”I would thoroughly recommend this book to any developer, however experienced or inexperienced, who wants to understand more about design patterns and how thinking in a design-driven manner can evolve our profession.I caught up with Scott at SD West, to ask him a few questions about his book.

Glitch Watch - Bingo cashier jailed for exploiting glitch

May 16th, 2008 by Nigel Cheshire. Posted in Glitch Watch

BanburyThe quiet market town of Banbury, Oxfordshire in England is not a place you would expect to see in the news very often. But, according to the Banbury Guardian, a bingo cashier in the town’s Gala bingo hall was jailed this week for stealing approximately $32,000 from her employer.Apparently, the bingo hall uses a swipe card system, called Buzzcard, that allows patrons to load money onto the card and use it to store winnings. When Emma Meechan, the cashier in question, discovered a misfeature in the system that caused about $335,000 to be mistakenly loaded onto some of the cards, she took advantage of the glitch and pocketed some of the money. Meechan was sentenced to serve 8 months behind bars.

Announcing Bugpedia

May 13th, 2008 by Mark Dixon. Posted in Software Quality

I’m excited to announce the launch of a new site, Bugpedia. Creating the Enerjy Index threw out a lot of fascinating data and I was frustrated that I didn’t really have anywhere to put it. For example, if you follow this blog you’ll have seen Rich’s post on our analysis of Cyclomatic Complexity. Well, just for a start I’ve got an updated version of that graph along with similar results for 200 other metrics to share. We thought for a while and came up with the idea of a wiki to contain all the useful information we, or anyone else, had about software code quality and, in particular, bugs. I’m hoping that Bugpedia will become a repository for bug patterns (i.e. common types of bug such as forgetting to close streams in a finally block), specific bugs (e.g. API’s that are often misused) and the tools and techniques you can use to avoid them.I’ve set it up as a wiki because I genuinely need your input. I can’t catalog the world’s bugs on my own! Much of the content on the site currently is about Enerjy because I wrote it and that’s what I know. I’m hoping it won’t stay that way for long though, and so I’ve intentionally left the wiki wide open to make it as easy as possible to contribute. Even if you just want to post a stub article as a placeholder for information you’d like to see, that would be great. I haven’t tried to hide the Enerjy link, but this is not supposed to be an Enerjy corporate site. Enerjy are providing hosting and bandwidth but it’s my site not theirs. I reserve the right to edit or remove content that doesn’t fit with Bugpedia’s mission but I’m not going to censor content that is critical of Enerjy or talks about other tools - commercial or open source. In fact I’m going to be creating some content for FindBugs because I believe it is an important tool in the Java ecosystem and Bugpedia would be incomplete without it. So I’ll mention our tool where it makes sense but I invite you all to do the same and if you see any content that you think is too commercial - well, it’s a wiki, you know what to do!Please go take a look and let me know what you think.

Glitch Watch - 250,000 cell phone subscribers without service

May 9th, 2008 by Nigel Cheshire. Posted in Glitch Watch

Approximately 250,000 cell phone subscribers lost service for most of Tuesday this week in Vermont and neighboring states. According to the Brattleboro Reformer, a “software issue” caused the problem, which caused the loss of Unicel’s cell phone service from about 4:00 am Unicel Logountil 2:30 in the afternoon. Public Relations Manager Miriam Svobodny said the outage affected customers in Vermont, New Hampshire, New York, Maine and parts of Massachusetts. She also said that the breakdown was the largest of its kind in the past 10 years. Apparently, users were still able to make 911 calls during the outage.

Video: New Features in Java 6

May 7th, 2008 by Rich Sharpe. Posted in Enerjy.tv

With JavaOne commencing this week, there will be much persuasion for those not yet upgraded to Java 6 to do so.Although not as rich in features as the move to Java 5 was, Java 6 still has benefits. My favorites include:- A scripting engine (Rhino) for languages such as Javascript- Wildcard inclusion in Java classpaths- JTable sorting, filtering and highlighting in Swing- Zip files no longer have a limit on entries (was 64k) and include long filenames- Java DB included (based on Apache Derby) with support for JDBC 4- GIF support for image I/O- A limited HTTP ServerA few nice API additions include:- Deque (Double Ended Queue), intended to replace Stack in the Collection Framework- NavigableSet and NavigableMap, ideal for dictionary types- Methods such as getFreeSpace() and getUsuableSpace() available on drive partitionsPerformance improvements have been seen on certain environments such as JBoss running on Linux, just by upgrading to Java 6.For a full list of enhancements see this.I spoke with Jason Hunter about some of these new features, Java’s popularity and the much-debated issue of including Closures in Java 7. Here are his thoughts…

Glitch Watch - Volvo recalls 65,000 cars

May 2nd, 2008 by Nigel Cheshire. Posted in Glitch Watch

Ford Motor Company announced this week that it will recall 65,000 Volvo V70 and XC70 cars because of a problem with the software that controls the side-impact air bags. Apparently the recall applies only to cars in Europe. Volvo V70According to Volvo’s spokeswoman Maria Bohlin, the software needs to be “adjusted” because the airbags do not deploy fast enough. She said, “We will send letters to all the owners of the affected cars and tell them to take the car to a mechanic to get this upgrade.”I wonder how long it will be before software upgrades like this can be automatically downloaded to the car with no need to bring them to a “mechanic.”