Archives / 2005 / March
  • .NET v.2.0 makes using custom cultures way easier

    Last year, I did a tutorial on developing custom cultures for your applications, "Globalizing ASP.NET Applications with Non-Standard Languages", showing how one could somewhat easily develop a custom type to use for languages either not supported in v.1.0 of the .NET Framework, or basically, not in existence at all.

    Shawn Steele from Microsoft just gave me the 411 on some new features in Whidbey to make this process even easier, namely through using the System.Globalization.CultureAndRegionInfoBuilder class.  (He also mentioned that in contrast to the method used by my earlier article, MS doesn't recommend deriving custom types from System.Globalization.CultureInfo anymore).

    Shawn's got some cool stuff on it at and  Junfeg Zhang's also got something on it at

    Thanks fellas!

  • Having trouble grasping object-oriented programming? Read Plato.

    Appropriately, I've got a new "philosophy" when it comes to teaching new programmers about object-oriented programming (OOP).  Not being a schooled computer scientist myself, I had a tough time when I was first learning OOP concepts and practices when I took up .NET, and many people learning the ropes of current-day coding apparently share the same frustrations.  Fortunately, I've found a cool way of making the tough concepts easier to grasp, through the teachings of Plato.

    Specifically in his work with his theory about Forms, there are lots of cool analogies directly applicable to OOP one can ascertain from Plato's writing.  Rooted in abstraction, the concept of Forms, in trying to justify existence, effectively demonstrates the relationship between base classes and subclassed types, I find (i.e., my wife is beautiful, my daughter is beautiful, my mother is beautiful, as all are applications of and conform to the Form of Beauty, but none "are" Beauty explicitly, as such carries a higher definition).  The application of Forms in the philosophy of the mind also involves an amount of inheritance and polymorphism - both of which are foundations in which any serious programmer doing modern-day development needs to be well-versed.  Plato also used Forms to evolve the concept of the relationship between the One and the many, likened in OOP to static (shared) instances of types.

    You may agree with it, use it, or dismiss it.  I've found it to help make more clear what can often be a tough roadblock in learning programming.  :)

  • Beyond the glitz and glamour...

    OK, I had my moment of gratuitous self-indulgence when I verbally patted myself on the back for having won an award for "Best Regional News Site" for my work with KUAM.COM

    I'm seriously more proud of my colleague and longtime friend, Mindy Fothergill, who also won Best Documentary for her incredibly personal story "Finding My Roots", in which she, an adoptee who hadn't seen her birthmother since she was 3, made the trek back to Korea to meet her for the first time in 21 years.  Absolutely emotional stuff, and we're phenomenally in awe of her courage to do so.  That I could never do, much less document and broadcast it.

    I've known and worked with Mindy for 5 years, but we know each other like it's been 15.  I'm extremely honored to win this alongside her.

  • KUAM.COM wins "Best Regional News Site" award

    Yeah!  Today was a pretty sweet day, with the news that my labor of love for the past 5 years, my company's site, won the prestigious Edward R. Murrow Award as outstanding regional news site for Guam, Hawaii, California and Nevada.  We represented markets of like size and traffic levels within those areas, so this is a real treat and honor.

    It's always nice to be appreciated for your labors, especially by your peers and people that really know what you go through and the ins and outs of the biz.  We've long been the fan favorite, and this is gravy, baby.  I actually was informed yesterday by a rep from the committee, but it's official today.

    Is that a raise I smell?

  • Why doesn't VH-1 do DVDs?

    One thing that really confounds me as a marketing major, a TV industry professional and lifelong critic of other people's work is why VH-1, despite all it's phenomenal success and acclaim, especialy over the last 4 years, doesn't get more into merchandising its shows and series by making them available on DVD.

    Comedy Central really had revolutionized the practice of cashing in on its shows by selling past seasons of its biggest hits, like "Chapelle's Show", "South Park", and "Reno 911".  And with VH1 currently dominating the market for niche-and-nostalgia series (i.e., "I Love the 80s", "I Love the 70s", "The Fabulous Life Of...", et al.) one would think this would make for a perfect sales opportunity.  Hell, if I were a VH-1 marketer, I'd be foaming at the mouth to be able to take on this project.

    One might think that Brian Grazer, the TV genius who produced the first season of "South Park" and then moved to an executive role at VH1, would be in favor of such a strategy.  Not having the privilege of knowing or talking to Brian, I wouldn't know.  Both networks recycle their programming more than a hobo does underwear, and in Comedy Central's case, it still garners millions of viewers tuning in every watch stuff they've seen a thousand times before AND own on DVD.

    Maybe it's in the works, maybe the third-parties that produce the series and shows on VH1 would demand too much in royalties, maybe there's something else afoot, I admittedly don't know.  Would be nice though.

  • Care for a snowcone from Hades? JSalas uses VS.NET 2003

    It's no secret that I'm not a big fan of the Visual Studio .NET IDE.  Don't get me wrong....I loves me some VS2K5, but I've not really gotten off on its predecessors, what with the forced code-behind model, layers upon layers of files and extra gimmicks that take away from the web development purist I pride myself in being.  Give me ASP.NET Web Matrix, Query Analyzer, and Notepad and I'm one blissful person.  (Also, not being a computer science or engineering major - I have a BBA in Marketing...yikes! - I like writing code, as it makes me feel smart.)

    That having been said, you may throw

    I've been using my copy of VS.NET 2003 extensively over the last few weeks, getting ready for my company's NCAA March Madness Challenge, an online contest using the tournament bracket control available from TourneyLogic.  I don't normally use third-party products, but the control is best used with Microsoft's IDE, and the API was so extensive I couldn't not use it if I was to finish my project in time for the tournament.  And by all that is holy...I like it.

    The one thing I have enjoyed about the IDE since I started messing with the ealy beta versions in 2002 was the ease for XML web services.  But I've enjoyed several aspects of the IDE, more so than I thought I would, beyond IntelliSense.  Go figure.

    Was that a pig I saw flying outside?

  • Rediscovering C#: prepopulated constructors

    One thing I've picked up this week is a rarely-used constructor overload (at least within ASP.NET communities) in C#m in which a class instance's members are pre-populated.  Take for example the following sample NewsStory type:

    public class NewsStory
        // data members
        private string _title;
        private string _author;

        // properties
        public string Title
           get { return this._title; }
           set { this._title = value; }

        public string Author
           get { return this._author; }
           set { this._author = value; }

        // constructors
        public NewsStory(string title,string author)
           this._title = title;
           this._author = author;

        public NewsStory() : this("Man learns new C# constructor trick.","Jason Salas")


    Take note of the latter of the two constructors, in pre-defining a class instance with data.  Obviously, this isn't useful in a case where you'd be running news stories, but can be quite helpful in cases where you'd use fairly consistent numeric data, or date- or time-specific data.  It's come in handy lately for me.  :)

  • I had the TourneyLogic boyz on my radio show

    I had a great time yesterday featuring some new friends of mine, Joel Ross and Brian Anderson from TourneyLogic, on the sportstalk radio show I host.  We rapped about their Tourney Bracket Control (which I'm using for my site's NCAA March Madness online competition), and also about the NCAA's in general (both boys are huge Big Ten fans...makes sense, both being from Michigan).

    It was a blast....serious sports chatter mixed with dev news and some comedy.

    I should have had the MP3 file of our convo up by now for a podcast...BUT like a dumbass, I didn't personally check to see that the producer was rolling on the show.  So for the moment, if you missed my live feed, you're out of luck.  So, I've got to ditch my developer/news anchor/radio show host hats this morning and don a new archaeologist cap...and try to find a backup recorded version somewhere here.  If not, I'll have Joel and Brian on again after the national championship to do a post-mortem report.  AND, I promise to have the dang audio.  :)

    Dammit, if you want something done, ya gotta do it yourself.

  • Integrating Community Server :: Forums with intra-site search tool

    At the moment, I'm working on revamping my site's search tool, which currently returns a resultset consisting of  a nicely-separated collection of full-text indexed news articles from my station's archive, plus a series of multimedia exhibits the URLs for which we hardcode into a database (searchable via keywords, a la AOL).

    This has worked beautifully for us, given that we're a TV/radio/web operation, and can cross-promote the hell out of whatever we do.  People really enjoy the diversity of the results.  Now, I'm taking it a step further.

    The next version is going to finally integrate two other key components: reporter/producer blogs, and also forum posts from the recently-released Community Server :: Forums.  The entire thing is basically a bunch of DataTables, cleanly making distinction between what results came from where.  

    It's pretty fun.

  • Using a DataGrid's OnUpdateCommand event to send e-mail

    Yesterday, I thought about doing something quirky, in wiring up some code to a DataGrid's OnUpdateCommand not to update an existing data store, but basically to turn a DataGrid into an outgoing e-mail client.  Basically, you'd "edit" a row containing info for a user (like an address book, I suppose), display a TextBox, and then insert code to send a message programmatically.  I figured it was totally possible, but just wanted to know if anyone out there was doing anything like this.