Hate is good 68
Great people make great software. So what makes great people? Who knows…certainly not I. But I do know some traits that good software developers all seem to share. One of them is a healthy disdain for mediocrity.
CJUG West 9/6/07: Aspect-Oriented Programming and Software Design 14
I’m giving a talk at the Chicago Java User’s Group West meeting this Thursday at 6:30 PM. The topic is Aspect-Oriented Programming and Software Design in Java and AspectJ. I’ll briefly describe the problems that AOP addresses and how the principles of object-oriented design influence AOP and vice versa. If you’re in the area, I hope to see you there.
Thread Local: A Convenient Abomination. 54
ThreadLocal variables are a wonderfully convenient way to associate data with a given thread. Indeed, frameworks like Hibernate take advantage of this to hold session information. However, the practice depends upon assumption that a thread is equivalent to a unit-of-work. This is a faulty assumption
Strongly Typed Languages Considered Dangerous 69
Have you ever heard of covariance? Method parameters or returns are said to be covariant if, as you work your way down an inheritance hierarchy, the types of the formal parameters or return type in an overridden method can be sub-types of the formal parameters and return types in the superclass’ version of the method.
Oh, and contravariance is just the opposite.
Announcement: Aquarium v0.1.0 - An Aspect-Oriented Programming Toolkit for Ruby 28
- Create a powerful pointcut language, the most important part of an AOP toolkit.
- Provide Robust support for concurrent advice at the same join point..
- Provide runtime addition and removal of aspects.
- Provide a test bed for implementation ideas for DSL's.
Secure Email with GnuPG 106
So you need to send someone the root password to your webserver? You should just put it in an email and send it to them, right? Well, actually, no…that’s a profoundly bad idea. Here’s how you can use GPG to securely send passwords (and other sensitive information) though email.
Craftsman #51: Brown Bag VIII - Ruby Visitor 34
“A new speaker talks to the team and illuminates the differences between Ruby and Java by implementing the Visitor pattern in both languages.”
Get the PDF.
Or to see all the craftsman articles:
- go to objectmentor.com,
- click the resources tab,
- click published articles link,
- click the Craftsman topic,
- scroll down to #51: Brown Bag VIII – Ruby Visitor.
Not A Task, But An Approach 45
Transitions are tough. It seems that lately I’ve been getting a lot of contact from frustrated people who don’t really have a good handle on the “drive” part of Test Driven Development. A question heard frequently is: “I’ve almost completed the coding, can you help me write the TDD?”
It seems like Test Driven Development is taken backward, that the developers are driven to write tests. The practitioner winces, realizing that he again faces The Great Misunderstanding of TDD.
Which came First? 21
- CCCCDPIPE
What's your unit of measure? 78
A few weeks back while teaching a class a student asked about refactoring. He we skeptical of the whole idea. “We don’t have time to write new functionality let alone fix code that ‘isn’t broken’.”
After some back-and-forth I asked him this question: What’s your unit of measure for estimating how long a refactoring is going to take?