Archives

Archives / 2005 / September
  • Visa/Mastercard settlement: I get $19!

    I've complained before that Visa and Mastercard screw you with fees. Well, apparently they're settling an antitrust suit.

    I got a settlement notice in the mail indicating I'm entitled to $19! Whoo hoo! I can finally buy that Porche!

  • Content is cheaper, but it still isn't free!

    I've been watching with great interest the podcasts and IPTV projects of the various TechTV alumni. These folks are reaching hundreds of thousands of people every week without a traditional broadcast network, and that's incredibly awesome.

  • POP Forums finally looking like an application

    POP Forums v8 is finally looking something like a functional application. I finally got around to prioritizing the work and feature list so I don't feel so overwhelmed. The plan now is to get it to a state similar to that of v7.x, and from there start working on the newer features. I'll probably put out a preview at that point.

    I have to say that I'm not pleased with the render times using templated controls for topic and post lists, but I could be over-reacting. On one hand, I'm looking at .2 seconds, but for someone running a site without a ton of traffic, that shouldn't even matter. For my own sites I think I want it to be below .1, which is kind of the benchmark I use for everything else I have running right now, and I think to do that I'll need to resort to custom controls. So I might introduce two versions of the UI, one for tweak monkeys and one built for all-out performance that isn't as easy to hack.

    I had a discussion about the importance of creating a Usenet-style UI for threads, and I wonder how important that really is. When you discuss it with geeks, they stand up and say, "oh yeah, I want that." When you discuss it with everyone else, they say, "Usewhat?" It's so weird how the Internet has been with us for such a relatively short period of time, yet the experience gap is enormous, especially from thirty-somethings to early twenty-somethings.

  • Bonus action on my book

    With the poor marketing and positioning of my book, I'm pretty sure I'm going to have to live with the idea that it's never going to meet the sales target I hoped for. That's a real bummer. I should have retained the copyright. Now I know better.

  • The ups and downs of templated data-bound controls

    I've spent way too much time in the last year writing code for back-end stuff. Now spending quality time with UI is causing me headaches.

    Mind you, my problems are relative to my standards, I suppose. Today I was working on the thread display for POP Forums v8. In the past, I would pre-process the data into a DataTable, then bind that to a repeater. I had no problem keeping page rendering times under .10 seconds. Doing that was less pretty, but it very quickly allowed me to build HTML or do empty strings for stuff I didn't want to display.

    Using a templated control is much cooler for the tweak monkey that likes to change layout or whatever, but the databinding can be slow when you have to perform some logic or render some nested control. For example, I put a derived Image control in the template that took the member information as a parameter, and if they had no avatar, it set the image's Visible property to false. That nearly doubled the render time of the page!

    If I just do a straight bind of a List<Post> object to my control, and just display data from those Post objects, no problem. It's very very fast. I need to rethink the approach a little, because I'm just not happy with the performance.

  • News Corp. buys IGN... wow

    The Internet content business has been an interesting one to watch, because not many companies survived. C-Net and IGN are the only real pure-players I can think of. IGN was an interesting one because it grew out of some relatively independent gaming sites.

  • What happened to the Repeater in v2?

    As I mentioned in my last post, I'm trying to implement my own data-bound templated control. Everything went pretty swimmingly, as I modeled it quite a bit after a simplified version of Repeater, even using Reflector to see what it does.

    However, binding data to each instance of the template was taking about .1 seconds, which is of course completely unacceptable. My first thought was that I was doing something wrong. Then I applied the same data to a Repeater, using the same stuff inside the template. It actually performed slightly worse!

    Thinking this was just some kind of crazy fluke, I fired up VS 2003 and tried to do nearly the same thing with a Repeater. Binding data to the old repeater took .001 seconds total, as in, all items combined. WTF?

    I'm at a loss to explain this other than to say it's beta software.

    EDIT: You know... it was something that I was doing. Duh. I hate it when like a moron I do something stupid and then blame it on the software. I was doing some text parsing on the fly that, to say the least, was not particularly efficient.

  • Why is my data-bound templated control so slow?

    I've been working on a templated control, and I'm astounded at how slow it is. I looked at the execution times and narrowed it down to the actual data binding of a particular item...

    TemplateItem item = new TemplateItem();
    item.DataItem = simpleContainerClass;
    ITemplate template;
    if (_postTemplate != null)
    {
        template = _postTemplate;
        template.InstantiateIn(item);
        this.Controls.Add(item);
    }
    item.DataBind();


    This block of code runs once for each item in the collection of data items in the control's CreatChildControls() method. The TemplateItem class is just a container class with one property called DataItem. The last line, the DataBind() method, takes nearly .1 seconds for each item. That's obviously not acceptable.

    Am I missing something here or is there just something slow about using this? I'm using v2 of .NET, by the way.

  • DHTML is a pain in the ass

    I have to say that every time I try to do a little DHTML, I start to curse the world. I found a neat little Javascript function that finds the position of an element, which makes it handy to position another element on the page relative to that one.

    It works like a champ... in IE. It doesn't work in Firefox. The weird thing is that it doesn't throw any kind of error in the Firefox Javascript console either.

    Stuff like this makes it amazing to me that anyone ever gets ajax stuff to work in most browsers.