Attention: We are retiring the ASP.NET Community Blogs. Learn more >

Jeff Makes Software

The software musings of Jeff Putz

  • Wrox network programming book reincarnated

    Back in late 2003 I suggested a friend pick up Professional .NET Network Programming from Wrox Press. He never did find it, as I think that was the time when Wrox started to go down the tubes, but as it turns out, he found that Apress got their hands on it.

    Looks like it was reorganized a bit, but I'm sure it's still a good read, if for the chapters on the stream classes alone. Check it out.

  • Still annoyed with unit testing Web app components

    I'm sure I remember blogging about this a year ago, but I'm still annoyed with trying to unit test Web components. It's still hard to test something specific to such an application (like when you call HttpContext.Current.Server.MapPath("~/somefolder") for example).

    I know the ASP.NET runtime can be hosted outside of IIS, obviously, but has anyone come up with a really good base class to derive from for Nunit tests?

    Look at me, I'm worrying about this on a Saturday evening. I sure know how to party!

  • Diggin' on ASP.NET v2... today it's configuration

    With a little help from Fredrik's blog post, I finally got around to cleaning up the configuration and data provider parts of POP Forums v8. I seem to have broken a few unit tests here and there, but I can deal with that. Wow... this is stuff I've been away from since last fall, and I just haven't had time to revisit it.

    In the last six months or so I kind of got bored working with v2 because, well, I had stuff to build for real to use in production! It's fun to come back to it though, and I'm starting to get excited about it. I'm actually kind of worried that my book came out before beta 2 did, because I cover a fair amount on Membership and Profile, among other things in there.

    The next thing I'm looking most forward to at this point is the Team System stuff. It will be nice to have a lot of those tools integrated into the product instead of having to have several things running outside and via command prompts and such.

  • Apple: Brilliant minds, stupid lawyers

    In case you didn't see it, Apple won the first round in court to get the sources of leaked information to some Apple fan sites. That's not right.

    Just because it's not The New York Times doesn't make it any less journalism. If The Times posted the same information, nothing would ever come of this. You know I'm right. This nonsense about what is a "bona fide news agency" is ridiculous. If there were any real standards to hold a news outlet to, Fox News would have been sued and disgraced years ago. Indeed, this same standard must be applied to The New York Times, ABCnews and my local Medina County Gazette. The precedent has been set.

    The most disgusting thing about it is that Apple suffered no loss, and more than anything benefited from the publicity. The information wasn't leaked early enough for any competitor to act on it, and just as is the case every time there's a leak, it built hype for the company.

    This is about chest thumping at Apple, sticking it to the guy with no lawyer. That's really lame, Steve. Taking on your fan base is a really stupid idea.

  • Reverse engineering Membership: Help me out

    I've been looking at the code for the new Membership API in .NET v2, using .NET Reflector (I love that tool). It's all very fascinating, but there's one thing I still don't get. How is the Membership class' static Initialize() method ever called? That's the method that creates instances of the providers, and I can't for the life of me understand when it gets called.

  • Working for The Man isn't so bad after all

    When I quit the last day job I had last May, I was fairly bitter toward The Man. I had some odd realization then that The Man had been keeping me down and beating me into submission. Going solo was a liberating experience in that respect, because there was no one to tell me what to do.

    Two weeks ago I picked up a contract job because I need extra money if I'm to avoid getting IRS'd into oblivion. Was I reluctant to take it? You bet. The money thing didn't even concern me as much as I thought I was failing myself in some way, falling just short of generating enough income to pay taxes.

    These last two weeks have changed my perspective. For one thing, I might be working on a W-2 basis, but everything is structured in a traditional contract consultant format. I work when I want, and unlike a contract, I can walk away whenever I want. It's just like any other gig only the checks are made out to me instead of POP World Media, LLC.

    The other thing is that The Man isn't always evil. Heck, this time it's not even a man! The client of the company I'm working for is full of good people that care very much about their business and want experts to help them get where they need to be. One of the execs even ordered a copy of my book, even though he has no idea what it's about! Working for good people makes you work harder and take more pride in what you produce. That's a good feeling.

    It's exciting to work part-time too. I'm finally at that stage in my career where I can work 20 hours a week and still make a nice bit of coin, so combined with what I'm already making from my own business, it's not about the money. Getting paid feels a lot more like a bonus for doing something I like, and this from someone that doesn't do anything free unless it's for charity.

    The bottom line is that The Man, for the better part of the previous six years, was an asshole, and that's what made me hate working for other people. When The Man is good people, it changes everything.

  • Amazon bait-and-switch with shipping

    You've seen it before when you buy Amazon merchandise. "Free super saver shipping." You also see something like, "Usually ships in 24 hours." So you would think that at least snail UPS will take a week from when it ships, like the next business day. Nope.

    I asked them what the deal was on a recent order and they had this to say: "The shipping method selected for this order is our free Super Saver Shipping option.  As stated on our web site, when you choose Super Saver Shipping, you can expect your order to take a few days longer to ship out than if you select our standard shipping option."

    Well if the type of shipping dictates how long Amazon sits on the order (which makes no sense), then they need to stop posting "usually ships in 24 hours" right under the "free super saver shipping." The type of shipping should only affect how long it takes from the time it leaves the DC to the time it arrives at my door, not how long they sit on the order doing nothing. That's lame.

    That's bait-and-switch.

  • The angry VB6 folks are still around!

    Read this post about how VB6 r0x0rz and VB.NET suX0rz. I thought we were beyond this back in 2001.

    Speaking of 2001, that was the year I first got my hands on .NET, bought an MSDN subscription on employment and played with VB6 for the first time. VB6 was really neat stuff because it was comfortable, like VBscript was for ASP. Meanwhile, as I got deeper into ASP.NET and VB.NET, it became more and more clear every day that to use .NET I had to think differently. I struggled with that even after switching to C#, and probably didn't really start to "get it" until early 2003. But hey, college journalism major here. No CS background. Once you go OOP, you don't go back.

    It's true... VB.NET is not VB6. I say, who cares? VB6 had a ton of shortcomings, and its "forgivingness" was the root of exceptionally bad code everywhere. I think VB6 was a liability because people tried to do too much with it, thus its reputation.

    But anyway, the linked post is filled with fun quotes. "It's 'basically' impossible to migrate programs written in earlier versions of Visual Basic to the .NET version." OK, assuming for a moment that's true, why do you need to migrate it at all? Corporations are still maintaining COBOL programs from 20 years ago (twice the age of VB), because they still work.

    "But those product managers aren't the poor bastards faced with rewriting millions of lines of source code to reinvent crucial applications, nor do the Microsofties have to swallow hard while they lose dependable business logic refined over decades." There's a cliche about wheels in there somewhere. :) Oh, and VB1 came out in 1991. Maybe he uses a different metric for decades.

    "...with the release of .NET, I'd be farkled, fubar'd, and frazzled. Like many other developers, I don't have the time, energy, or desire to un-learn the substantial skills I've acquired in over 20 years of coding with Microsoft Basics, and re-learn some new thing that's marketed as Visual Basic, but is, in fact, radically different." Give me a break. Fire up the VB6 IDE and tell me how it's anything like QBasic. Ha! And "un-learn?" Would you forget how to speak English if you learned Spanish? I have to admit that even as an author (I try to work that in whenever I can now!), I am not that clever. Yet, despite my lack of formal training, my lack of cleverness and my general disregard for the hardcore academics of computer science in general, I managed to achieve a commanding position in terms of pay and respect in just a few short years. Not bad for a guy that used to spin top 40 CD's on a really bad Cleveland radio station. If I can do it, certainly someone with "decades" of experience can.

    As for the petition, good God, let COM go. I mean seriously, it was a nightmare. To me it was even a barrier to entry into writing really useful Windows software. Why register controls when I can, uh, just copy them?

    Good times. Bring on the flames.

  • A retrospect on writing a programming book

    It's still so weird to see this bound book here with my name on it. My wife (who kept her last name, and of course has the dedication in the book) noticed that the spine simply says "PUTZ" and that's bound to get at least a few people to look it over. ;)

    I first wrote the proposal, sample chapter and preface for the book back in November, 2003. On December 16, 2003, I sent the proposal out, unsolicited, to every publisher I could find contact information for. I felt that the idea was solid, to write a book that took beginning ASP.NET developers solidly into the realm of object-oriented application development, instead of script-based, one-off page development. I felt that forums everywhere were filled with developers struggling to make that transition, and that market was being ignored.

    I only got two responses back after sending the proposal to a dozen publishers. I won't say who it was, but the first one was absolutely brutal (in a non-helpful kind of way) and unprofessional. I was shocked to get a response with incorrect spelling and poor grammar, and frankly would expect that they wouldn't manage a first-time author very well anyway. This was a major publisher too.

    The second response I got was from Addison-Wesley Professional. This was about the time that they started publishing all of those .NET books with the spiffy checker-board style covers. I felt they were quickly becoming the new Wrox Press in terms of covering .NET subjects in a very complete way. The editor there said she was sending out the proposal to various folks for editorial review, and she'd send the responses in a couple of weeks. At that point, even if no one liked it, at least I wasn't having my dreams crushed by one grammatically challenged guy not in touch with what was going on in the world.

    In mid-January, eight reviews came back. Two of them were anonymous, and not flattering or helpful. The rest were critical, but helped enormously in getting me to think about how to revise the proposal into something more marketable and more focused. Most of the reviewers felt I was on to something, but revisions were in order before moving forward.

    Most intimidating was a review from Alex Homer. It's not that he wrote anything awful, it's just that this is the guy I credit with getting me out of the dark ages of static HTML. It was his ASP books that started me down the path. Now I wanted to write something to sit on the shelf next to his books? That was a little scary to say the least.

    Based on the feedback, I revised the proposal, it went through another round of reviews, and in March I got to read those. While some were contradictory in terms of what each reviewer thought the book should be, they were overall a lot more positive. The executive editor pitched the proposal to the sales and marketing folks, and in April I got a contract. I was going to be an author!

    In early May, I quit the contract job I was working at Progressive to focus on the book. My time there heavily influenced my decision in particular to devote some time to test-driven development. I had some basic familiarity with the subject, but once I saw it in action on the scale that it was being used there, it seemed not only like an important topic, but one that made a pretty obvious case for developing applications in an object-oriented manner. The point of the book was, after all, to get the audience thinking in those terms.

    Editorial reviews began on a rolling basis as I submitted a few chapters at a time. By September, the book was essentially "done" in the broad sense of the word. The following months would lead to more editorial review and revisions, until it was finally ready for production I think in October.

    The copy editing was surprisingly painless. I expected the editors to hack apart everything I had written, but that wasn't the case. They made a lot of things more clear (which makes me look good), and so much of it was stuff I was too close to notice. That was really cool.

    I think it was January that I got the first PDF's of the laid-out book. Tracking down errors at that stage was pretty easy, I assume because whatever automated process they use just makes really obvious mistakes.

    Then today, when I got home from a morning meeting with a client, there was the UPS package at my door. What a great feeling to finally hold the thing in my hands. I'm really pleased with the result. The entire process, however long, was really a great experience. I love that AWP helped me develop the project early on, then run with it once we had a solid outline. It really is a classy organization, and it's an honor to have my name on the same spine as the A-W logo.

    Would I do it again? Absolutely. I have no idea what I'd write about, but I'd love to do another one. I did write a proposal for another book, but it appears the timing is pretty bad as there is a predictable flood of new titles on the way and being developed.

    As of right now, if I never saw another dime for the work (outside of the advance), it would still be a success in my mind. On the other hand, if I'm ever going to write another one, this book better sell well enough that I don't get dissed. :) The way the crazy royalty payments are worked out, I won't see anything more until October for sales in the first half of this year (yep... that's 22 months after I wrote the proposal). While this project has never been about the money, it will be nice to see what at this point just feels like "extra" income in the fall. Oh, and remember, I get an extra $1.20 or so if you buy via my Amazon affiliate link!

    I can cross off one significant thing on my life-long to do list. :)