August 8, 2007 Comments Off
By popular request, Maxim Software Corp. now offers website hosting service to the public. The same servers that we use to host the properties of our ThotSpots Web Media division are now available to you at competitive prices. This service is being offered as a convenience to our consulting clients who seek one-stop-shopping, but is not required. As always, our software developers and website administrators will be happy to work with any website project, regardless of where it is hosted. For more information, write to info@maximsc.com.
August 6, 2007 Comments Off
This is just a quick post to indicate that this blog is now registered on Technorati.
I’m a huge fan of code generators. I’ve seen them used successfully in many different ways. In the Java world, for example, the Xdoclet parser is commonly used to generate object code and ORM mappings based on database schema — a huge timesaver. I’ve also seen creative uses of XSTL transforms and Velocity templates for handily generating all kinds of program code. There are generally two ways to take advantage of code generators. One is for software developers to invoke the code generators on demand, as they program. The other is to incorporate code generators as part of a “daily build” (i.e. some automated build process using Ant, Maven, another build tool, or handcrafted scripts/batch files). Lately, I’ve gotten soured on the latter.
Continue Reading
On Role-Based Security and Segregation of Duties
Jim Fleischmann is a security consultant who audits companies for Sarbanes-Oxley compliance [defined]. He and I recently compared notes. As a software developer who has often worked on role-based security systems, it was wonderful for me to get his perspective on where the rubber meets the road. As you might imagine, his feedback was quite different from the usual feedback I’d get through channels (QA bug reports, customer service support tickets, etc.) The following is my recollection of what we covered. I’ll start with Jim’s observations, and then follow up with my own.
Continue Reading
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
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
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