Monthly Archives:

January 2008

Posted on January 25, 2008 by Joel Potischman

What We Are Reading: The Lost Art of Steam Heating

The Lost Art of Steam Heating, by Dan Holohan

Yes, I'm a 21st century software developer, but I'm also the proud owner of a 19th century brownstone with an early 20th century one-pipe steam heating system. This book is awesome. The applicability to software development is an awful lot higher than you'd think. Some similarities:

  • Every change you make impacts the entire system, not just the piece you touched.
  • The symptom can often be far from the root cause.
  • Get it right and everyone's happy. Get it wrong and it's an awful lot more expensive to operate.
  • When working on an old system, never automatically think you know better than the guy who built it. Sometimes weird stuff is there for a reason, and you're the newbie who doesn't know what he's doing.
  • You can force steam to do just about anything. But the more mechanical parts you add, the more complex and unreliable the system becomes. Build the system the way it wants to work and it will run quietly and reliably for decades.
  • Over time, main vents clog with scale and rust, which is a primary cause of uneven heating, boiler short-cycling, and higher fuel bills. Install main vents 15" from the end of the main, after the last riser, and 6"-10" up on a nipple.

Okay, that last one is just applicable to steam heating, but you get my point.

| Comments (0) | Technorati Tags :

Posted on January 22, 2008 by Javier Julio

Obtaining Original Query Column Order in ColdFusion

Using an undocumented Java method on a ColdFusion query object called getColumnList() returns an array of the original column order specified in the database or SQL statement. Using the built-in [query].columnList returns an alphabetized column list.

Useful Resources

Continue reading "Obtaining Original Query Column Order in ColdFusion" »

| Comments (2) | Technorati Tags :

Posted on January 14, 2008 by Joel Potischman

capitalizationGuide

A quick reference card for the newbies:
  • Camel case - First letter of each word is upper-case:
    ThisIsCamelCase
  • Lower camel case - Same as camel case, but first word is lower-case
    thisIsLowerCamelCase
Those looking for greater precision may further subdivide the capitalization rules on zoological grounds: While the mathematically inclined may prefer Happy coding.
 

| Comments (1) | Technorati Tags :

Posted on January 11, 2008 by Javier Julio

New York's Own ColdFusion User Group

What a surprise to see my friends Ben Nadel and Clark Valberg not only out of nowhere get announced as the new managers of the NYCFUG but at the same time revamping the site with a killer layout! Talk about an incredible first impression. What a way to back up an announcement fellas! You got my full attention.

New York's ColdFusion User Group is in great hands folks. The first meeting should be a hit with Adobe's Adam Lehman talking about the future of ColdFusion. Maybe we can get some early information on CF9. I'll be there representing Arc90 so we look forward to seeing you there!

| Comments (1) | Technorati Tags :

Posted on January 10, 2008 by Tim Meaney

Dear Developer

Dear Developer:

I'm writing you today to express a frustration, perhaps you can help. You likely know me by one of a number of titles: Business Lead, Project Manager, Product Manager, Project Owner. In a well-functioning software company, I have an important role, some might argue the most important of roles. When a project kicks-off, I interact with the 'business', whether that be the market, a client or internal business team. It's my responsibility to articulate the need, the driver for the software endeavor (have you ever attempted to build something not well defined? Good luck.) During this phase of a project, I'm wholly engaged in the effort - organizing people, designing, creating requirements, spec and tickets. You, developer, and I, spend a bunch of time together at this phase and collectively define the effort - the design, interactions, error handing, the software architecture, XML schema, resources, database definitions and others. This effort belongs to the both of us. The whiteboard is full of our sketches, flurries of tickets are created, and a plan is put in place. We commit to dates, shake hands, and then....

...I go back to my office and wait. You have to understand, I was once a developer too, but I hung it up when I realized I would add more value as a definer, communicator and facilitator. But I love software too, I'm as passionate about it as you are. I understand nearly everything that you do, albeit at a more superficial level. My frustration - I can't stay late, open Eclipse and start implementing, but trust me, I wish I could. Just for a moment, put yourself in my shoes. Imagine the feeling I have sitting there waiting for you to build our software. Now of course, I have levers to push, I might be your boss, I might be responsible for rewarding you. But those are nearly irrelevant, building good software isn't effected by that. However, I certainly have the say as to whether your effort is successful or not, in fact, I define that success for you. I can motivate you, recognize your efforts, shine the light on your many successes. Think about it, who has been a more powerful advocate of your work? Why do you think that is? This is why you should even bother being concerned about my opinion on this matter - I'm not just a project manager, I'm your customer - I define your success.

So back to the subject at hand. I sit in my office waiting for tickets to move to QA. I try to hold back from harassing you, I've learned from experience that you're at your best when I stand down. But sometimes I see you leave at a reasonable hour and can't fathom it! If I could, I'd sleep here tonight to bang this out! Everything is teed-up, there's clarity of definition, all that needs to happen is to author those lines of code!

I guess I'm like the football coach. I used to be a great player; nobody cares more about the game than I do. I've spent the week crafting the perfect game-plan for this team, we can't lose. I'm better prepared than the other coach. All you, quarterback, need to do is go out and execute on it and we'll win. So now it's kick-off, and while I can call time-out, yell at you, give a kick-ass half-time speech, pull you out of the game, call a deep pass or a sweep right -- in a sense I'm powerless. I would never have thrown into double coverage, but you did. If I could throw the pads on like I used to, I'd show you how to really play this game...

So what's all this about? What do I want from you? Mostly, I'd like a little empathy next time I ask you a question about how you're implementing something. Not only do I need to understand this stuff in order to champion it, to articulate it and to test it, I'm simply just curious about it.. Remember, it's our software you're building. Pull me into your world, talk me through your decisions, do a code walk-through with me - you'll be surprised how much I understand. I sometimes even have killer implementation ideas, as I bring a different perspective from yours. Overly communicate with me, we're all better off when I completely understand where you stand. Just as your job is made much easier when I fully and clearly define the business need and project goals, mine is made easier when I fully understand where we are in an effort at all times. If you want to know why that's the case - two reasons are: I'm responsible for communicating this to the client or internal business owners (and trust me, there's nothing worse than being caught ignorant on this front) and I'm also responsible for resourcing across many efforts, so I need to know where we stand to make informed calls about who should focus on what. Pay attention to the priority that I set, just as you know the best implementation approach, I have my ear to ground and understand when something apparently small is crucially important, or when something you think is crucial is not. Trust my judgment here by respecting my calls, as I do yours.

Finally, understand my frustrations, they run as deep or deeper than yours.

| Comments (6) | Technorati Tags :

Posted on January 4, 2008 by Javier Julio

Is Touching Better?

When I first came across Smashing Magazine's article titled User Experience of the Future, I pushed it aside. What a mistake. Popular Mechanics did a wonderful video review on the new Microsoft Surface. Touching is better.

| Comments (0) | Technorati Tags :

December 2007 | Main | February 2008