Options

I don’t like WordPress. This has been documented somewhere in this blog. I’m too lazy to link it.

Some other people don’t like WordPress either sometimes. I was just bitten by that same caching issue.

You see, I had made the mistake of thinking that enabling the WP-Cache plugin would actually enable caching on my system. I always thought “Man WordPress sucks! My blog is so slow! And nobody reads it anyway so it can’t be because people actually care about what I’m writing!”

But I digress. I enabled the WP-Cache plugin, and it was still slow. I looked a bit further, and the default options of an enabled WP-Cache plugin explicitly disables caching. You have to go into the plugin’s settings page and click “Enable”.

What the hell is that?! You know what that is? That’s a programmer right there. We love options. “Oh well if my toaster could turn inside out I could use it as a space heater in my bathroom.” Nobody wants to do that, but we love the fact that we could. We end up designing software for ourselves instead of our customers.

This is bad! Bad, I tell you! Bad! If i could hit you on the nose with a rolled up newspaper I would! Twice!

Users don’t want options, nerds want options. If you have a techy audience, then consider piling in options. R# has a million, and I think each and every one is delicious.

However, if your users are Johnny down on the warehouse floor, he doesn’t want to know about transactions, offline/online operation, or whether or not the circuit breaker is tripped or not. He wants to do work so he can get home and play with his kids.

And remember, DON’T LISTEN TO YOUR USERS. I love this quote:

Definitely don’t believe what people predict they may do in the future.

External Dependencies and You

I’m having a lot of problems with external dependencies lately. Especially with Castle Project. It’s not because Castle Project is bad. I think it’s more because Visual Studio is stupid.

Visual Studio basically encourages people to put all their external dependencies in the GAC. The problem with this is that when you go to build it on your build server or some other dev’s machine, you have incredibly annoying task of downloading and installing all the MSI’s for all those libraries you used.

My solution, according to “SVN Best Practices” (Best practices rarely are ‘best’), is to have an Externals directory at the root of my SVN, with binaries of the libraries I use in it, in a folder hierarchy like so: http://server/Externals/LibraryName/VersionNumber/*.dll

Then, to each project I add a “/lib” folder in the project path, and add an svn:externals property to that lib directory for each library I need.

You probably already know this. Almost everyone does this (or should do some variant on this). The problem? It’s a damn pain in the ass!

Every single project has to have this lib folder, which is maintained to only include relevant libraries, is a pain in the ass to add. Maybe it’s because there is a lack of tooling. Imagine if VisualSVN or some other too understood this hierarchy and just let you select libraries to add to your lib folder. Wouldn’t that be nice?

I’m annoyed. It’s very annoying. Any thoughts?

I just had a semi-obvious thought: Maybe I should put my lib folder at the solution level in the folder hierarchy. At least at that point I don’t have to maintain 50 different lib folders and their external dependencies. But I hate that too, I hate dependencies above my project file.

ALT.NET Seattle

So, I know ALT.NET Seattle closed 2 day ago, which, in “Internet/Blogger Time” is approximately 1.5 million years ago, but I want to blog about it anyway. Warning: rambling ahead.

Passion.

That sums up a great deal of what the conference was about. People were insanely passionate about the things they were doing, which seems simple enough, but sometimes I feel like nobody really gives a crap. These people loved what they do. They see that there’s a better way to develop software, and they want to show the world how well it works. Since I tend to hop around and wave my hands all over the place when I get excited about software related things, being around people who show such passion (maybe not by hopping around) was really refreshing.

Sessions.

I really enjoyed the session by John Lam on IronRuby. I’m very much not “in the know” on IronRuby, so I had a couple months ago gotten the mistaken impression that nothing really was going on. That was immediately dispelled, and I realize now that I got that impression because there are no binary releases of IronRuby. It’s a sort of implicit warning sign along the lines of “There be dragons here.” This was a theme throughout the conference. I need to get over it I guess. We’ll revisit that.

Anyway, the IronRuby talk was good, although it was a bit deeper than I would have liked to see, personally. Of course everyone else knows about 50 times more about IronRuby and Ruby in general than I do, so I don’t feel personally slighted in the least. It was still really interesting, and I plan on stealing John’s setup of using Vim inside Visual Studio (ViEmu) and FireFox (Vimperator). I’m less convinced about Vimperator, but ViEmu sounds pretty sexalicious.

Agile Coaching

The two sessions that had the most profound influence on me personally was the session “Coaching Agile Teams” hosted by Jim Shore. I have inherited a team, and I am trying very hard to incorporate new technologies and techniques into our development practices while at the same time not overpowering them. It’s a little overwhelming at times, being fresh out of school and suddenly finding myself in charge of our daily software development efforts. It was great to talk to these guys though, and get a few ideas (well 4 pages of ideas) and a little confirmation that I haven’t just completely screwed it all up, heh.

The ideas we talked about, empowering the team, investing in the team’s long term functionality, and similar things, were echoed throughout the second day of the conference in a session (I think by Oren Eini, the wiki is throwing me errors for some reason right now, I can’t confirm) discussing how to convince your team that using these advanced programming practices (IoC, AOP, SOC, TDD, SRP, etc.) is beneficial.

There was a lot of discussion about how frustrating it can by trying to convince someone that there is a better way when they aren’t interested in learning a better way. Of having people in technological positions who are not interested in technology. The frustration was palpable, but I personally got the feeling that all of the frustration is rooted in the tension of people resisting an effort along the lines of: “I want to make your life better by making your work easier in the long run.”

Em-Vee-See

The session on MS’s MVC offering was pretty good. I’m just getting into the whole MVC shebang, and what I was personally interested in coming away with was that if I choose Monorail over MVC, or MVC over Monorail, I wouldn’t get horribly screwed. A comment was made concerning MSMVC’s better integration into the IDE versus Monorail, and Chris Ortman made a comment during the session about how his personal experience was a bit of the opposite with a developer he had bringing him up to speed on MVC.

I approached him afterward for a little elaboration, as we have a web project coming up soon and I’m pretty convinced this is the way to go. His comments were very reassuring, and I came away with the thought that, if anything, the Castle Project may be the *more* supported solution, simply because the mailing lists are so awesome, something I can attest to personally. I also learned that I should probably move away from RC3 of Castle Project (the last binary release) and just use trunk. Sort of goes back to my predisposition against using non-binary releases.

Btw- Check Chris’s Blog for an idea he and some others have for a Developer Exchange program. I love the idea.

Grassroots

I also met a gent by the name of Alan Buck. He seemed pretty cool, local to Washington, and through our discussions he asked if I’d be interested in joining a micro-community of people here in Washington we can reach out to to bounce ideas off of and so forth. I contacted him yesterday, and I’m really excited about the opportunity. I’ll update with what goes down.

Also, does anyone know of any developers in Eastern Washington (read: East of Snoqualmie Pass). There are a crapload of resources for those in Seattle, Redmond, Olympia, etc., but nothing I’ve found for us desert-folk. I’d like to connect with those out there, and I’ve been considering forming an Eastern Washington User Group of some sort. Especially since for like 3-4 months a year we’re cut off (or at least seriously discouraged by such things as avalanches and tire chains) from the west side.

Other: _________

There was a lot else going on. Like how Scott Bellware came off as kind of rude, but then by the end of the show had completely garnered my respect, all without even having to personally interact with him, and how Ben completely blew me off 2 nights in a row (Thanks ben! ;) j/k), or how Steven “Doc” List was an amazing facilitator, or how Jim Shore had this amazing style of being very soft spoken, respectful, and polite while exerting a powerful control over the session. (Doc and Jim Shore have crazy awesome people skills), and umm… yeah. stuff.

It was great. I met amazing people. I didn’t meet anyone I didn’t like (I know, right!?). I can’t wait until the next one. I think I might try to go to Austin. We’ll see.

ALT.NET Seattle

I will be attending ALT.NET Seattle. The list of people that will be there are amazing!

I’m so excited to be around so many amazing people. I’m going to be star struck!

And I get to see Ben, too! Go Coogs!