The Maxim Software staff runs codejacked.com, a blog with productivity tips for Windows and Linux users. The tips are mostly in “power user” territory, but sometimes we can’t help but cover topics of more interest to programmers. So, for those of you who are programmers, be sure to keep an eye on the CodeJacked programming category (www.codejacked.com/category/programming/), or even easier, just sign up for the whole CodeJacked RSS feed.
Here are just a few of the recent articles in the programming category, to give you and idea of what you’ll find there:
Version Control – A Developer’s Best Friend,
RegEx Pattern Matching on Dates,
Automatic Daily MySQL Backups,
Review: SQuirreL, an Agnostic SQL Client, and
Quick Tip: Searching for Program Source Code.
Something to watch out for with initialization code is that “final” has three different meanings depending on where it’s used, and it’s easy to get confused. For example, a common mistake is that setting a Collection to final doesn’t make the contents immutable, only the reference to the collection is immutable.
Stephen Colebourne, the guy behind JodaTime, writes in his Weblog that JSR 310 has been opened with the goal of improving the date & time support in Java.
Continue Reading
“How did you do that?” is a question I get time and again whenever someone sees me select a column of text and manipulate it. The answer is, you hold down the Alt key as you click-and-drag the mouse.
“Okay, but what program are you talking about?”
Lots of ‘em, it turns out. I first noticed this feature in Miscrosoft Word, but all of my favorite programs offer it, including TextPad and Eclipse. This must be one of the best kept secrets of user-interface standards, and it’s a shame, because I swear this little time-saver alone accounts for hours and hours of my productivity every year.
Continue Reading
In my personal blog I wrote about how the blank page syndrome can lead to procrastination. I gave an example of how it’s often difficult to know where to start when faced with a vaguely written bug report or an enhancement request. I suggested that one way to gain clarity is to skip ahead to writing the bug-resolution documentation as if you had already done the work. What will be the instructions to the end user on how to take advantage of this change?
Quoting myself, “Then, as I do the work for real, it gives me an acid test to know if I’m on the right track. In other words, does the software now work as advertised? A side benefit of this end-first exercise is that it often reveals latent issues and questions for which I have no answers. It also helps me to enumerate any assumptions that I’ve been making, which perhaps ought to be validated.”
This is a very much akin to Test-First Development (a.k.a. Test-Driven Development, or TDD for short), of which I am a huge proponent. I’d almost say that what I described above is a poor man’s version of TDD, except that there is no cost to doing TDD. Unit testing tools are free for the asking.
Last week I submitted two patches to the TimeAndMoney open source project on SourceForge (timeandmoney.domainlanguage.com/). One patch has to do with localization of money. The other patch has to do with the persistence of money, via Hibernate, to/from a database (with examples for both MS SQL, and Oracle).
Continue Reading
As usual I wasn’t following instruction while trying to update MySQL on my dev laptop. There’s some decent upgrade documentation on the MySQL site (here if you’re looking for it.) but its a lot to think about all at once and all the warnings didn’t seem to apply to the databases I had. The first thing I didn’t do was backup the database. I figured the installer would see that I had MySQL on the machine and would update things accordingly. I was wrong. The second thing I didn’t do was uninstall the MySQL service that was currently running. So, after the installer failed to configure the service, I was a bit stuck.
Continue Reading
[This originally appeared in my personal blog on 6/29/2005. Reposted by request.]
TDD has become as automatic for me as breathing. It’s a beautiful thing when you get to start a new project from scratch and can write every line of code test-first. These days, however, I’m working on a legacy app with very little in the way of unit tests, and it feels as if I’m working at 5,000 meters above sea level and struggling for every breath of rarefied atmosphere.
Continue Reading
Tapestry won a Duke’s Choice award for innovation at this years JavaOne. “The fourth Duke’s Choice Awards … spotlight some of the most clever, practical, and inspirational Java technology applications on the planet.” Check out Howard’s blog (photos yet to come): http://howardlewisship.com/blog/2006/05/tapestry-dukes-choice.html