March 14, 2007 Comments Off
We at Maxim Software Corporation proudly announced today our acquisition of http://www.codejacked.com, a website of productivity tips for Windows and Linux users. CodeJacked.com is the brainchild of Kyle Pott, a programmer and productivity expert who is now lending his writing skills to lifehack.org (which has to do with productivity, in general, whereas CodeJacked.com is focused on “jacking up” computer-user productivity). CodeJacked.com was briefly dormant while the sale was pending, but regular daily postings resumed last Monday.
Continue Reading
March 8, 2007 Comments Off
Are your Java or C# programmers too busy chopping down trees to sharpen their axes? We can help. There are hundreds of proven, best-practice methods for dramatically shortening turn-around times, reducing senseless rework, obtaining consistently better time-estimates, and generally increasing developer productivity. Let us help you identify and adopt the ones that are most suitable for your situation.
Keep your developers focused on what they do best — directly applying their hard-won knowledge of the problem domain — and allow us to take care of the nagging incidentals. We bring expertise in all of the following areas:
- Build Process Automation
- Deployment Process Automation
- Version Control Integration
- Automated Regression Testing (”Smoke Tests”)
- Project Wikis
- Code Generation & Templating
- Static & Dynamic Source Code Validation
Continue Reading
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
The most powerful tool in the knapsack of a software archeologist/maintainer, is the grep search. Unfortunately the signal-to-noise ratio for grep search results can often be quite low. This happens when the project source files are intermingled with other artifacts such as generated files, raw templates, library/framework documentation files and examples.
One trick to filtering out the noise is to define a shell script that uses Rsync to create/update a searchable shadow copy of the working folder, and then to search that copy…
Continue Reading
[This review originally appeared in my personal blog on Sept 8, 2005. I'm reposting it by request.]
I’m helping out with a study group for “Head First Design Patterns,” which just finished chapter 6. On the whole, it’s a pretty good introduction to software design patterns — way more accessible than the seminal work by the Gang of Four; however, the examples sometimes make my head hurt. I can’t imagine what they’re doing to the heads of the beginners in the group. Coming up with decent examples is the hardest thing to do in expository writing, and I certainly give the authors an E for effort in creativity, but I wish they had been a little less concerned with making their examples “hip” and a little more concerned with making them appropriate.
Continue Reading
Mid last year, Kurt Williams wrote “Beware of Simplicity” in development frameworks. According to him, new and fresh frameworks can only claim to be simple because they are immature. All frameworks are doomed to growing more complex as they grow in features. I can’t argue with that. It seems to me, therefore, that the best frameworks are the ones that do the best job of hiding that complexity — either because of the innate architecture of the framework, or by virtue of the tools and practices that deal with the complexity for you. A framework can have all of the under-the-hood complexity it needs. It’s the day-to-day, in-your-face complexity that I care about.
In the field of cognitive psychology there’s this so-called “Magic Number 7.” Basically, the idea is that humans can only keep 7 disjointed “things”, plus or minus two, in short-term memory at once. To see what I mean, study the following list of words for a minute. Then, turn away and write down as many as you can from memory:
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
The second annual SoCal Code Camp at Cal State Fullerton last weekend was an improvement in many ways. The volunteer speakers were all well prepared, knew their stuff, and gave excellent talks. The only hitch I experienced was once when we had to swap rooms because one topic gathered more interest than expected, and it’s not like they could have done anything to prevent that. For an all-volunteer event with no admission charge, I was blown away (again).
Continue Reading