Archives / 2005 / August
  • I should be podcasting

    You know, given my radio and television background, you'd think that I would have been podcasting ages ago. The thing is, I can't think of anything particularly exciting to talk about. I suppose I could do one in conjunction with CoasterBuzz, but God only knows how interesting that might be. I guess it would depend on who I conferenced in, and I wouldn't do it without at least one woman in the mix. That scene is a sausage party as it is.

  • POP Forums getting sexy

    I'm really starting to get excited about POP Forums v8 now. It's finally starting to feel like something I could actually use in production. And the part that gets me most excited is that my goal of making it "hackable" is really coming together, with features that other ASP.NET forums don't have. It truly will be a forum for developers that want to work with look and feel on their own terms.

    It's also fun to solve new problems. There are little things I've always wanted to implement that you'll find in the various PHP forums out there, but never really got around to it. That stuff is coming together quickly.

    And just a side note, I'm really impressed with the generic List<T> collection. I did some performance tests just adding and iterating and it beats the pants off of ArrayList. I realize that's what is supposed to happen, but the tweak monkey in me had to see for myself!

  • OS X on Intel... it's for real

    Actually, the theory is that OS X has been running on Intel CPU's for a long time internally at Apple. But anyway, the build that went out to developers, that was supposed to be tied to special prototype machines with a DRM chip, was hacked and it's all over the Internet now.

    I watched one of the video clips someone did, where the thing boots natively on a laptop with a 1.6 GHz mobile Pentium. It loads really, really fast. I can't wait to see this thing run on actual Apple/Intel hardware next year.

    Yeah, I'll buy one. I've always loved the Apple hardware, and OS X, but being a Windows developer, it's not like I can totally switch. Give me a box that I can run Windows and OS X on, and you've sold me, especially a laptop.

  • Perhaps self-publishing is the answer

    No one is interested in picking up my next book proposal, and they all seem to have a ridiculous number of books in the pipe. A lot of them are the kind with a dozen authors that they can crank out quickly but generally aren't very good at teaching the subject matter. (I've been approached about writing on these... no thanks.)

    I had heard about it before, but forgot about until I heard one of the founders on This Week In Tech. There's a service that speaks my language. It may not offer the really broad distribution that book stores offer, but if you have something you really want to get out there, now you can. If I could sell a dozen or two copies a month, I'd be more than thrilled.

    I still believe in books. I'm not sure I believe that publishers are making the right decisions though on what to publish. I probably wouldn't have published my book unless it was part of a bigger strategy, a real understanding of where it fit. The publishers don't really have the expertise to sit down and look at the big picture in terms of the potential audience, then map out a strategy to give them a sensible offering. The old Wrox did this well, but obviously they made a lot of bad decisions financially.

    Does anyone have any self-publishing experience to share?

  • To delete or not to delete, that's a tough question

    I had a discussion with a "customer" (or I guess technically it's a freeloader ;)) about why the old version of POP Forums didn't allow you to delete a forum. That's a good question.

    The truth is that in terms of the database, there is a mountain of data that is eventually connected to a forum record. It has topics, which in turn has posts, favorite topics, e-mail notification, search word records, moderator associations, moderation log entries... I'm sure I'm forgetting something. That's a whole lot of relational data. Even with the database set up to cascade deletes, that's a whole lot of data. I could do it in a new thread so it didn't time out or hang up the page, but I'd hate to see what happens to a live forum in terms of performance. The biggest pool of data I have involves about 400,000 posts in a single forum, so I don't even have that big of a data pool to test against.

    Despite all of that, you can simply turn a forum off, which for end user means it's essentially not there, but I can see how someone on a shared SQL Server account might have limits and they need to blow away a particular forum.

    It might still happen... but not by the first beta.

  • Editing web.config through the configuration API is less than ideal

    While it's pretty cool that you can programmatically mess with web.config, I'm starting to feel that it's not entirely practical because of the security implications. NETWORK SERVICE needs permission to write to it, or you need to use impersonation. Regardless, this is not xcopy deployment.

    If there's a simple, streamlined way to work around this problem, I'd love to hear about it.

  • Oh my God! The sky is falling on .NET v2!

    What the hell is going on in the .NET community? By reading some blogs lately, you'd think that .NET v2 was going to suck and be a tragic mistake, based entirely on the premise that they won't fix bugs in beta 2 or won't provide feature "A" or make feature "B" the way one person or another wants.

    Has the entire community lost its mind? I mean, we do all develop software for a living, right? I have a hard enough time after weeks of requirements gathering trying to develop and deliver a product that is exactly what a hundred people want, let alone what hundreds of thousands of people want. It feels a lot like all of the VB6 people that felt kicked in the nuts because they weren't getting their way back in 2001.

    I guess this is the down side of having a very public and open beta process. On one hand, you get valuable feedback and improve the product, but on the other you get hundreds of people declaring a worst-case scenario. Then perfectly smart and rational people make it worse by spreading irrational FUD about how Microsoft won't fix whatever, or won't issue a patch or service pack, etc. I wasn't aware that so many developers had access to Crystal Ball .NET!

    The way I see it, I've spent years now with a Visual Studio that "mostly works" and put up with it. Maybe fight it is a better word. VS 2005 is like a breath of fresh air, and if there are quirks in it, or the framework or C#, I'll deal with those quirks. There comes a point where you just have to roll with it or the project will never ship. Never shipping is worse than living with quirks.

    Am I making excuses for Microsoft? Nope. I don't think they should ship crap either. But that's just it... my perspective is such that I don't see crap in the pipe. It's all relative to your perspective. I think some people have lost perspective. On a scale of "good enough" to "outstanding," I think they're a lot close to the latter than the former.

    Must get back to developing software now...

  • Does ASP.NET v2 allow you to do the "wrong" thing?

    A post today from Paul Wilson got me thinking about what the "right" thing to do is in terms of how you organize code in a Web project. One of the replies in particular implied that the allowance to put code right on the page (which you could do before anyway, without Intellisense) reinforces the old script way of doing things. I don't entirely agree.

    One of the goals of my book was to teach former script people (like me) that the world object-oriented programming was worth understanding and implementing. In thinking about the things that cause a mental block for developers in transition, clearly Visual Studio's codebehind model was one of the problems. Not only did we expect the developer to think of objects and classes (oh my!) in more of an abstract sense, but we also wanted them to think about a system of files (assemblies, codebehind, pages) that were also spread apart in an unfamiliar way. The truth is, if you fought against VS, you could do things "the old way" anyway, it was just a pain.

    Now v2 comes along, and we can comfortably put our code right there in the page. The design of an application can still be bad, just as it was in v1.x. I should know... the first port I did of POP Forums put the crap all over the place with no true reuse of code. It was a nightmare, but familiar ground for someone coming from the ASP.old world.

    PHP is huge, and it's not going away. It's easy to learn. ASP.NET, as of v2, is also a lot easier to learn. The simplicity of the physical file layout makes it easier for a beginner to get their head around what's going on. The challenge is to get them to the next level, and this is what I've been telling bloggers, authors and publishers for two years now. I feel like no one is listening. You can't start bantering about design patterns with a transitional developer before they even understand what a class is. One does not go from script person to uber-code monkey. There are interim steps. In a world where we use iterative development every day, you'd think people would get that!

    I guess what I really mean is, don't jump out there and say, "You're doing it wrong, stupid!" Tell people, "This is a better way to do it, and this is why."

  • POP Forums v8... it does exist!

    Tonight I did more meaningful work on POP Forums v8 than I did probably in the last 12 months combined. Yes, it does exist, and in terms of basic functionality, it works. It even has Membership, Role and Profile providers in place.

    I struggled in my mind for a long time about how I would build out the application. On one hand, I could be clever, OOP it to death, and wind up with something that beginners could never alter in a way to suit their own needs. That would be great for me, but not so good for the target audience. The PHP guys have been kicking our asses for years because their forums are fairly easy to hack and slash. That's what I want. The happy medium I've come up with is to build a nice rich class library, but avoid hard-coding UI into it. That means templated controls and UI glue code right in the pages, where the beginners and in-between folks are used to seeing it (and where it's perfectly acceptable in a VS/VWD 2005 world).

    Another thing I've charged myself with is really stepping away from the UI that has been around since UBB and think about how it could be better. POP Forums was the first forum to use a crude rich text editor (that's the honest truth... I searched everywhere for one that did it back in the ASP.old days). Now I want it all to make more sense in the context of human conversations. I don't even know what that means, but I'll let you know if I have any ideas.

    The project is not without its scary stuff. There was no way I was going to totally start over from scratch, so the class library did start from v7.x. Back in those days (October, 2003), I didn't even know what NUnit was, so there were no unit tests. I have written some tests, but they're crude, and mostly done to address changed stuff. I could write more tests to cover more code, but that's a huge undertaking with thousands of lines of code, and of course writing the tests after the fact taints the tests with code monkey bias.

    I don't know if the text parsing engine is 100%, but that was something I rewrote out of unit tests. That has been the bane of my existence since I first tried writing a forum back in 1999. One drastic improvement is that I also hacked apart my less than stellar rich text control and almost started over. The new one is much cleaner, works in Firefox, and is far less bulky than FreeTextBox. It does all of the basic formatting, sans fonts and colors, because as a site owner, frankly I don't want people messing up the color scheme I work so hard to make not suck. ;)

    I wish I knew when it would be done, but it's too hard to say given the day job contract I'm working right now (not to mention coaching high school volleyball). I hit a nice stride tonight, and met a few milestones I was anxious to get to.

  • Is List<T>.IndexOf() broken?

    I was messing around with a List<T> object today and found that IndexOf() never calls T's int IComparable<T>.CompareTo(T t) method. I used to do this with arrays of container objects all of the time in v1.x and it worked like a champ. Is it broken in beta 2?

    EDIT: OK... it calls it for BinarySearch(), but it gives up before getting to the end of the collection. That's still weird!

  • DropDownList still doesn't support optgroups?

    Am I crazy, or am I seeing that you still can't do optgroups in a DropDownList in v2 of ASP.NET? It's one thing making the controls XHTML compliant, quite another having them do everything the XHTML schema will allow. You can't even inherit ListItem to hack out your own version. Lame!

    Not that it's hard to implement, but come on guys... don't take short cuts!

  • Why we still suck at teaching people how to code with ASP.NET

    I use "suck" too much in blog titles.

    I've mentioned here and there that an experience gap and general poor education leads to a developer community that just isn't what it could be. Maybe the thing that bothers me the most is that authors and People Who Know(TM) don't teach very well.

    I tried to do what I could with my book, and I've had almost universally positive feedback. Hey, I'm not that far removed from the people I'm trying to teach, so I feel their pain. I've been trying to post more often in the forums as well, but that happens in brief spurts. I'm doing what I can, when I can.

    I still find stuff from time to time that I have to learn myself, and I find it staggering that Web examples and books always suck at this. The approach is always either too complex or short but lacks explanation. That's seriously annoying. For example, I recently wanted to build some templated controls. One of the books I have (name withheld to protect the guilty) spends five pages of code then 40 pages of explanation to build something so insanely complex that it's nearly worthless as a teaching tool. A Web-based article on MSDN was better, but still introduced complexity irrelevant to explaining the process. Eventually I figured it out, but only because I have a good feel for how stuff is supposed to work in general. I'd hate to be someone with less experience.

    So for those of you generating content intended to teach people, whether it's by book, magazine, Web or whatever, keep it simple, stupid! The first application of new knowledge is rarely an instance of having to design space craft or a new microprocessor.

  • Really irritated with credit card fees for merchants

    When you swipe your credit card to pay for something, you probably don't think much about it. It doesn't really cost you anything directly, if you pay off your balance every month. But the truth is that it does cost you something, because the merchants get screwed and they have to pass that cost on to you.