February 2008 - Posts
As I mentioned a little more than a week ago, I was getting close to a point where I felt POP Forums v8 was ready for public consumption. Well, the time has come! You can download the bits here:
I've decided that I will charge a license fee for the app, but only if you see value in using it. For that reason, you can download all of the code up front, before you decide whether or not to buy. As a company of two people, naturally I can't provide a giant support structure around the product, so I think it's a fair arrangement to charge for it only after you've seen what you're getting into.
This is the first beta, though it has been running on a production site since November. A number of minor bugs have been squashed, and I'm very happy with the performance thus far.
I've been asked several times why I have this available at all, in a crowded market, and the truth is that I built it for my own use first. That has been the case since way back in 1999 with the old ASP version. Selling it is the gravy. With that said, you better believe that I want the potatoes to be top notch, because my own communities depend on them.
Yes, it does exist. After talking about it for nearly four years, I feel like it's something almost ready for release into the wild. I want to share some of my plans here, and will keep you updated in the near future on where the bits are.
First, the licensing plan. POP Forums has always been something I built for me first, and selling it or giving it to others was a secondary goal. This creates two important conditions. The first is that it has to meet my own standards, so I hope that the quality of the app is high. The second is that if I sell it, and only a dozen people ever buy it, that's still found money. So for that reason, v8 will require a license to use, but you'll get to see everything. In fact, you'll be able to download the code up front, pick it apart, try it out and see if it's right for you. If you like it, you'll pay for the license, and that will be that. If it's not for you, I hope you'll evaluate other products and find one that meets your needs.
Second, the first beta will not quite be feature complete. There are three features, or rather, two features and one major refactoring, that will come between the first and second betas. The second beta will be it, as far as features go. I'll do my best to integrate any feedback into the code prior to that release.
What's left before the first public beta? Well, it needs to be cleaned up a little in terms of CSS. I'd like to try and get the documentation comments all rolled together too so those who love to mess with the class library have something to see.
Obviously, this is the first place to look for further information, but I look forward to sharing this with you. I haven't set a timeline, but I'm hoping to get it out in the next few weeks, if not sooner. We've been running the app on PointBuzz now for several months with virtually no issues (the UI is tweaked a bit to match that site).
I've written time and time again about how annoyed I get when developers spend incredible amounts of time putting others down under the guise of some nonsense academic debate. It annoys me to no end. Well sit back and block off your afternoon, because here's a post from someone called Stevey that brings it to an entirely new level.
You pretty much know as soon as the word "n00b" is used that you're in for a steaming pile of crap, and this post is no different. To suggest that developers in the 5 to 10 year experience range are "junior" is laughable, ignorant and probably compensating for something. Give me a break. If you cut out the thousands of words surrounding platform religion, you're left with ridiculous assertions that younger developers are writing paragraphs of comments in their code. Who ever did this? I didn't even do it in Apple Basic in 1989. And what's the nonsense about code density and compression? Crap. If you're writing solid code, and breaking down the problem sufficiently, inexperienced developers can read it and understand it. Even analysts can understand it.
While I've been into programming in one form or another since I first touched a TRS-80 circa 1984, I didn't get my first actual programming job, where that's all I did, until 2001, at the ripe old age of 28. ASP.old was the platform, and .NET was in beta. Being object oriented to me at the time meant being fascinated with things (or things on people), not some kind of code thing. Wrox Press got me up to speed while most online communities were useless.
By 2004, I began writing a book because I felt that the things I was learning weren't being presented in a meaningful way to people who were coming up the ranks the way I was. Blogging was taking off, including on weblogs.asp.net, but the amount of useful content that helped me was not high. And who was I to write a book after really only writing code professionally for less than three years?
I'll tell you who I was... someone who wanted to share the excitement of the learning process with others. Even with my fancy salary, a book credit and some entry level ninja skills, the learning will not stop. I work with someone who is brilliant, and I mentor a few people who are less experienced than me. At the end of the day, we collectively kick ass and deliver a sweet product. It's on time, it's quality, and we're free of the bullshit class system that Stevey spends a ridiculous amount of energy pontificating about.
Platforms and language are irrelevant. Taking what we learn and sharing it with others makes us all better. If these nerds would just put a fraction of this energy into actually advancing the technology and coaching the people who use it, more problems would be solved, and we'd all be better for it. (The open source community, by the way, is the absolute worst when it comes to this. They preach free love and get more bogged down in these "discussions" than anyone else.)
So if you're a code monkey with a blog, ask yourself if what you're posting today helps the art and science of programming by helping others, or if you're just being a blow-hard with an opinion. If it's the latter, remember what they say about opinions.
You know how sometimes you think you're pretty sure you know what the sum total of your database shenanigans are in any given ASP.NET page, but you want to make sure? Well, under load it's hard to do a SQL trace and really see what the hell is going on. Because I have all the SQLness funneling through a handful of helper methods in POP Forums (which is so close to a public beta that I can smell it), I figured it'd be easy enough to output the various calls to the Trace in ASP.NET, along with some execution times. Easy it was.
But there was one piece of weirdness I couldn't understand. The database call to update user session data, fired from an HttpModule's AuthenticateRequest event, seemed to be firing three times, every page. My first clue that something was strange should have been that the execution times were exactly the same, for all three entries in the Trace output.
Still, I stepped through the code first, putting a conditional breakpoint to make sure I was only tracking the page request and not the CSS and graphics (since the runtime serves all of the above on the local dev server app). Yep, just one call. Then I did fire up the SQL trace, and sure enough, just one call to the database. But when I looked at the ASP.NET page trace (via trace.axd), the call appeared three times.
The bottom line is that the database call isn't being made in triplicate, even if it is appearing in Trace three times. Still, I'd love to know what's going on in the interaction between the ASP.NET Trace and the HttpModule. I'd even like to step into the framework code, but so far, I have no idea how to do that, even though I think I have it enabled. I'd really like to just browse the framework code, but I still don't know how or if that's possible. It's a useless feature, frankly, if I can't make it work.