Keith Casey's blog

Where do your responsibilities end?

For those of you who don't know, I live in the Washington, DC Metro area.
For those of you who don't know, snow - ANY snow - completely terrifies and paralyzes the city.

While I was watching the news this morning, I caught an interesting quote. In DC and parts of Maryland, homeowners are *required* to shovel the sidewalks in front of their houses. If they fail to within a certain number of hours, they get a bill from the city for the shoveling along with a $25 fine. While this isn't huge, I thought it was fascinating that although you are allowed to exert no control over it, you are still responsible for the sidewalk's condition. Sounds quite a bit like programming against third-party systems, huh?

Master Plan v0.2

CodeSnipers has been growing pleasantly over the past few months and I believe it's reaching a critical tipping point. After the holidays, there are going to be a series of announcements about new functionality, areas, and ideas that will be coming about in this little community. If all goes well, some of them may happen when they're announced.

Anyway, towards this goal, I'm looking for a few brave people to share their thoughts, bare their souls, and generally start a discussion with the community. I'm not looking for just any people, but people with particular skills:

First, I need a .htaccess/mod_rewrite wizard. I'm not looking for any work to be done, but just to get some questions answered and bounce some opinions around.

[Admin] Holiday Break

In case you haven't noticed, we've been quite quiet for the last 24 hours or so. If you're in the US, you're quite aware that this is Thanksgiving week. If you're not in the US or familiar with the tradition, here are some details.

We will return bright and early this coming Monday (28 Nov) with more posts, information, and the general discussion that you've come to know from us. If you really miss any of us, please feel free to browse any of our Contributor's sites and read up on some of the other things we think and write about.

Interview: Tom Copeland of PMD & Rubyforge

This is the first in a series of interviews we're making available to the CodeSnipers community. We have been working to track down people who we thought had something valuable to say about the software development community, tools, practices, or direction. Some of the names you will recognize immediately, others you've probably never heard of, but all of them have made an impact in one way or another. Without further delay... our first victim... er... is Tom Copeland of the PMD project.

Some of our community may be familiar with the Java tool PMD, but many are not. Could you tell us a bit about PMD and your role in the project?

Sure! PMD is a utility for finding various "opportunities for improvement" in Java source code. It uses static analysis, meaning that it parses and analyses the source code without actually running the program, to find unused code, unnecessary object creation, and bad practices. You can run it using Ant/Maven/command line/various IDEs and generate text, HTML or XML reports.

[Admin] How can we make the site better?

First of all, thank you to everone who has been visting and reading the site. According to last time I checked, CodeSnipers is in the top 50k blogs on Technorati. While I was hoping that people would read the site, share some ideas, and kick around some concepts, I wasn't expecting anything quite this dramatic so quickly. I'd like to publicly thank all of our contributors (their names are on the left under "Regular Contributors") and everyone who has found something useful or interesting on the site and shared their thoughts.

Anyway, the point of this message... The site has been online for approximately 12 weeks and I want to figure out what we're doing right and what we're doing wrong. I and the other contributors have lots of ideas, but I want to hear from the people who actually come and visit the site on a regular basis. So here are my questions for you:

  • What is the site lacking?
  • Have you noticed bugs or oddities?
  • What do you think of the overall design?
  • If the site had exactly *one* new feature, what would you want it to be?
  • Are there particular topics/postings that you wish had more discussion/coverage?
  • Which topics/postings did you particularly appreciate or made you think?
  • Are there particular topics that you wish we'd just stop talking about?
  • Do you want to or know people who would like to contribute?
  • Do you want to give us each a million dollars?

Now, I can't promise that we'll do all of the resulting suggestions... actually, I can't promise that we'll do any of it, but I can promise that we'll all read them and consider which ones make the most sense and are in a direction that works with the overall site. I brought this site online to Connect Developers and I want to know how we can do it better.

Thoughts? Comments? Questions? Concerns?

Thank you for your time.

Web 2.0: Like a slice of lemon wrapped around a large gold brick.

For those of you who aren't familiar with my antics, I'm a regular over at Joel On Software. I participate in the forums, attempt to share something of value occassionally, and generally agitate the natives. I happen to respect what Joel Spolsky says even when I think he's wrong... but when he's right, he normally knocks it out of the park. And he was 100% right in his discussion of the Web 2.0 Hype in Architecture Astronauts Are Back.

I started CaseySoftware, LLC almost a year ago now. I was miserable at a deadend job and saw numerous opportunities arising. As a result, I took the leap and started doing it fulltime. The first thing I noticed was the sheer amount of money being thrown around and much of it at fundamentally stupid ideas. My first impulse was to trumpet the year that I had been doing AJAX and cash in but then I realized something... If our projects and by extension our customers were going to survive the next bust, there had to be something more.

AJAX and making Customers Feel Good

I've been working on a project for one my biggest customers now for many months. The system is huge, has automated a huge amount of work previously done by hand, and quite a bit on its own depending on specific business rules. One of the things it does is pull together various bits and pieces of information and puts it together into a single item for further processing.

The difficulty has been that there are so many rules, so many different conditions, and a variety of other things that affect the output, it gets to be quite difficult to test and preview the items. A few weeks ago, I had an idea... AJAX.

[Admin] Site Tweaking

After having a slight site oddity pointed out to me today, I'm working at fixing it now. If you see anything odd this evening, give it a minute and refresh.

I call myself the "official site breaker" for a reason... ;)

Changing Gears

My first car was a 1983 Honda Civic Wagon. The entire car seemed to weigh 50lbs and get 30 miles to the gallon. It was a great car and latest through almost two years of college. Of course, the one thing I didn't count on was it being a stickshift. I had never driven a stickshift before I got it, so I had the day of and the drive home to figure out how to make it work. I quickly learned that it took a very precise balance between disengaging the clutch and applying less gas to make it operate smoothly and without grinding... I thought about this recently when talking with a friend.

How do you manage your time and work? Do you simply flow from task to task applying the right mixture of fuel and downtime to keep things at a smooth steady pace or do you stall out mid-stride?

Importing Legacy Data

I came across a great post recently about Legacy Data: Import Early, Import Often and it really struck a chord.

The author is completely correct that importing old data is normally considered a last step in the process of a implementing a new project. Most developers love to start with a fresh clean codebase, whiteboard, database, etc and build their projects from the ground up. It is a wonderful feeling starting with a blank slate and actually making something from nothing. Generally, it is much less satisfying to take a (mostly) functional codebase, learn about it, dig through its oddities, and expand or fix the features. I've talked about this tendency before in Scrapping It All vs A Salvage Operation, but I thought it needed some expansion.