Archives / 2004 / February
  • Hip hip hooray…Guam’s first WAP gateway coming soon…

    I just got word that one of Guam’s telecomm firms is going to jump into the WAP market, and the first-ever WAP gateway is coming soon.


    They’ve asked my company to be a content provider, which I’m stoked about, seeing as how we’ve been hounding them with the very idea for the past 4 years.  I've also got an entire library of MMIT code and XML Web services just for wireless apps, so it's going to be a thrill to finally port them for production.


    I’ve been running a “wireless” portion of our site for about 3 years, which uses the AvantGo subscription-based service to get content on PDAs and such.


    Good things on the way…


  • You know what would be cool? A .NET-centric programmer's keyboard

    I just had a know what would be really kick ass?   If someone out there could develop a keyboard that was totally .NET-centric.  I mean, it's layout of the alphabetic characters would still conform to the current widely-used convention, but it would have other keys to do things like import namespaces, comment blocks of code, automatically write out ToString(), generate class templates, run batched compilation statements, perform certain Visual Studio .NET functions, and other customizable stuff.

    I don't go all the way back to COBOL or those days, although I did start out in BASIC on an Apple IIe in '84, but i do know that people from the assembly language days used a keyboard different from the QWERTY variety that we use today.

    The question is - would anyone really use such a thing?  I'd certainly give it a whirl...


  • Error message in C# 2.0 Generics a little too generic

    I just found something interesting...I get the following error when I naively tried to instantiate a generic object without importing the System.Collections.Generic namespace using the following code:


    "CS0122: 'System.Collections.List' is inaccessible due to its protection level"


    MyGenericClass teams = new MyGenericClass();    // create a new instance of a generic class

    List<Team> choices = teams.someMethod();        // execute a method


    This threw me at first until I declared the namespace in my code using the "Import" directive.  I think this error code should be reworked, as I would have expected (and it would have made debugging a little easier) if I was presented with the "Are you missing a using directive or an assembly reference?" message.


    I can understand how the "List" type trying to be used isn't properly referenced in my above code sample, but the error code I'm being presented with, saying it’s a protection level thing threw me totally at first.


  • Shippable/portable .NET runtime?

    This may be an easy question to answer, it may not...but I don’t immediately know the answer. 

    I’ve been oh-so-forcefully tasked to be on a project committee to develop a content management portal for an interactive DVD my station’s putting out for promotional purposes.  My role in the project is to develop a web service that will “call home” on a scheduled basis and check for any new updates to read-only content (mainly TV listings, promotional announcements, special offers, etc.). 

    I’ve been thinking about including some additional features on the DVD, but unfortunately to be completely automated, they’d need to run ASP.NET scripts, which of course, would require .NET and a web server of some sort (IIS or Cassini).  Is there a way to ship a product on portable media without including the entire CLR or the .NET Framework?  If it’s a miniaturized or minor version of the CLR, that’s fine...kind of how PowerPoint uses its “Pack and Go...” feature, where you can run a slideshow on PC without having the actual program installed.

    I can always downscale and just do static .HTML pages, but it’s going to force me to dedicate time to updating in the future, which I’d rather not do.

    Maybe if this isn’t possible, it’s something the design team could consider for a future release (If it’s even possible/feasible)?


  • Using WebParts to develop sports contests

    One thing I love doing as a sports journalist and web developer is creating demo apps based on sports.  In my opinion, one of the coolest and most logical achievements of web development was when circa 1998 put together a web-based contest, in which users would be presented with a straight-down listing of the top 25 college football teams in the nation, and be asked to rearrange them in the order in which the user thought the teams would finish the season and then submit their ballot in the hopes of some sweet prize. 

    As one would expect, correct ballots would be archived, with the winner assumedly selected at random.

    I've been messing with the pre-PDC Whidbey alpha bits to make this work for ASP.NET, using WebParts.  ESPN’s implementation, based on Java, did everything on the client, which made for a nice drag-and-drop interface, albeit taking nine years to initially load.

    The concept for developing such as service in ASP.NET 2.0 is really simple, as membership isn’t explicitly required (changes don’t need to be tracked over time, which provides the opportunity for people to enter multiple times):

    1. Display a WebPartManager with 25 WebPartZones, listed vertically, each containing a team name, listed in no particular order
    2. Set “WebPartDisplayMode.Design” as the mode for the WebPartManager have the user resort by dragging-and-dropping the teams in their preferred order, re-indexing them each step of the way
    3. Set “WebPartDisplayMode.Normal” and submit the finalized order, citing the index position of each WebPart in the WebParts collection 

    The documentation and gossip on the grapevine at this point don't seem to denounce an excessive use of WebParts within a single page, but even though in this example contains only static text for each team, would that be overkill or negatively affect the page?  One can safely assume that too many WebPart objects (or any type of control, for that matter) would have some sort of compounding impact on performance.

    More to come, including implementation code…



  • The next evolution: migrating from WebForm-based to document-level content publishing

    One of the seminal scenes from the 2002 movie “Minority Report” that really stuck with me is when Colin Farrell enlightens Tom Cruise of the fact that every system’s flaw is its level of human interaction.  I’ve kept this in mind as a constant corollary in my own development work, in eliminating as much manual labor as possible to achieve greater results.

    I've got a printed PowerPoint slide above my desk that has a bulleted list of the major development projects I’m going to accomplish this year for company’s site.  Some of the more interesting are:

    It’s this last objective that’s got me working these days.  One of the big challenges I'm dealing with going into the rest of the year is knowing that running web operations at my station is pretty intense now...and it's only going to get worse.  We're going to be doing a whole lot more than we’re doing now before December, and we likely won't be bringing on anyone to additional to help out, and we definitely can't afford to outsource.  So, keeping the management of our flagship product - our news content - at a high level of quality while freeing ourselves up to work on other things is a key goal for me.

    My theory is to migrate away from using WebForms as a means of entering data into our main news management system, and control the publishing of content publishing at the document level.  I'm not forsaking my web developer roots...just adding on some branches to help us work more efficiently.

    It's moving forward, we're actually taking a step back - and simplifying a problem by making its solution complex.

    Here's the issue: for years, we've been using disparate systems to manage our online news, and being in a mid-market, we don't have the inbound revenue to justify making a major buy or to partner up for the development of an ERP.  So, we've had to manually port content between a third-party newsroom management system and a web-based content manager I built, the latter of which is based on ASP.NET.  This typically requires manual copying-and-pasting of story content contained in RTF documents into a WebForm, which are then posted to our back-end and published for public consumption.

    As news articles are fairly standard animals and inherently read-only (as opposed to a shopping cart or order form), the business rules are pretty simple: predictable format, optional fields, simple validation, variable length.

    The direction in which we're heading now eliminate the middleman, if you will, and puts the content in our database server straight from the documents themselves, using templates, XSLT and field mapping a la BizTalk.  Rather than C-&-P stories and submit forms repeatedly, we simply will upload a series of Word documents into a directory.  An ASP.NET process then reads all the story files within a directory, generates XML for each story and applies HTML formatting, which is inserted nicely into our database by way of a web service.

    Nothing shocking, but unbelievable helpful for us as it doesn’t involve human input.

    This has actually been a long-term goal of mine, starting several years back.  As my station is an NBC affiliate, we get to interact with MSNBC's development team in getting our content on their site.  As such, we use the publishing utilities they provide for affiliates, which are wonderful in their design and execution - very easy to use, and one-click publishing.  And MSNBC has been gracious enough in my conversations with them to provide a high-level overview of how they do what they do, using COM-based systems and heavily leaning into BizTalk.  It's been nice to see how the other guys do it, hence an earlier comment I made about the need for good, thorough ASP.NET case studies.

    The trials and tribulations of being able to develop administrative tools more common to organizations of a much larger scale than us, coupled with a near-zero budget makes this a very interesting project.


  • Book Review: "XML in Office 2003: Information Sharing with Desktop XML"

    XML in Office 2003: Information Sharing with Desktop XML

    By Charles F. Goldfarb & Priscilla Walmsley

    Published by Prentice-Hall


    With the XML advantages in the Office 2003 suite of applications not being glaringly obvious (at least not to me), I gave this book a whirl.  I’m glad I did.


    It’s consistent in its organization – presenting the capabilities of Word, Excel, Access, FrontPage, and Office forms to use, manage and manipulate XML-based data – first from within the applications themselves, and then from more robust subsystems using Office’s embedded Visual Basic for Applications (VBA).  It shows how easy it is to manage data by building great apps with simple scripts.  (Notably missing was a discussion on the applications of XML within PowerPoint, although I’m admittedly unsure if that’s even an issue.)


    The book’s voice is very friendly and non-intimidating, using chapter around 15-30 pages at most, making for a pleasant, quick reading experience.  On this note, I found the Excel chapters and those on WordML especially valuable.  As far as the examples themselves, all were practical and easy to replicate locally, whether by menu or through code.  There’s a healthy lean towards the use of SOAP by making Web services calls for importation of data that’s a great addition.


    The book also has something I found that many modern programming texts don’t – an easy-to-understand explanation of schemas and how to construct them.  All books discussing XML obviously make mention of the use of schema, but the vast majority don’t explain it well.  The authors do a great job of not only explaining schema’s role in an app, but also how to build it, which is something newbies will appreciate.


    Still, in this day of modern distributed applications and datashaping, I also would have liked to see the VBA-based examples complemented/contrasted with .NET programming concepts and code, working against the APIs for each Office app.  Also, one thing I found somewhat annoying was that the code, while complete and hearty, always referenced “in Line 25...and then in Line 30”, without marking the lines of code, forcing the reader to manually count-and-mark the lines.  This was a minor nuisance, but a nuisance nonetheless.


    But the good in this book far outweighs the bad, and the content and examples can be picked up by any level of staffer in the workplace who’s familiar with Office apps.  It’s a great read.



  • Just got my first MSDN subscription

    Wow.  I'm not one to typically be at a loss for words, but I'm nearly speechless at how much cool stuff there is in the MSDN subscription.  I quite simply don't know where to start.  (This is my first ever such subscription, so my joy is a bit amped). 

    I've read numerous times what exactly is included with an MSDN subscription, but the kit I got in the mail delivered to my office today just blows me away.  I'm thinking of re-recording my voicemail greeting to something like, “This is Jas...I'm here at the moment, but going through my MSDN CDs, so leave me a message and I'll get back to you in 6-8 weeks.”

    Lots of fun ahead!


  • New York Yankees = the new Microsoft?

    I've been racking my brain thinking and likewise have gotten much typing in over the last few days with the Alex Rodriguez trade to the New York Yankees.  As a sports journalist, this is the type of business transaction with such dramatic cultural impacts I live for and hope to see at least once in my career.

    I'm quite sure that I'm not the first to coyly correlate the behavior and business savvy (albeit crass capitalism) of George Steinbrenner to Microsoft, so in saying so I won't claim to have penned a completely original thought.  However, it seems logical to assume that if one either shows great potential, had distinguished themselves beyond all their peers, or can effectively fill a gap, both organizations would want you on their squads.

    It's been speculated heavily over the last 96 hours that if you're truly good at what you do, either organization will acquire you at some point and by some means. 

    Not a bad way to make a buck...


  • My $0.02 on Yukon: we need a new Northwind/Pubs sample DB

    I'll go ahead and concede my own ignorance here...I'm not an alpha tester for Yukon, so I'm not exactly in the loop about the goings-on of the latest database server craze.  However, having said that, I'd like to recommend a new sample database to play with besides Northwind and Pubs. 

    I think this would make a nice and very logical extended touch to the platform and give developers something new to play with, and writers something new to demo.  They're both great and mainstays of Microsoft-centric development, but it's time for a change.  Or at least, a new addition to the family.

    I cringe as I say this, but seeing the Northwind DB being used so many times over in countless books, articles and tutorials that - dare I say it - it's become as passe' as using “Hello World” as sample syntax for functions.  So what's my gripe with Northwind and/or Pubs?  Nothing major, really.  I'd just like a new toy to play with as an option.  I guess the following could be objectively said of MS' sample databases for SQL Server and Access:

    Helpful?  Certainly. 
    Easy to understand?  Extremely. 
    Outdated?  Not at all.
    Applicable to practical development?  For sure.
    Overused by the development community?  Without doubt.


  • I'd like to see more ASP.NET case studies this year

    I did a lot of thinking over the weekend on what types of articles I'm planning on writing this year with Whidbey on the way.

    I'm anticipating the usual crop of tutorials, code samples, technical discussions, best practices guides and interesting pieces of work to come out of the ASP.NET community, and that's going to be great.  But one thing that I'd personally be more interested in seeing this year is in-depth case studies about ASP.NET. 

    (Yeah, I know, I know...before you go firing up your browser or crack your knuckles to quickly whip out the URLs to the Microsoft Case Studies page, read on.)

    I wrote some articles of this type before for .NET Magazine (now Windows Server Magazine), and they were really fun, and I believe necessary.  Fawcette Technical Publications mandated they be written in a fashion that wasn't so “rah-rah Microsoft“, being free to be objectively critical of flaws and to openly point out shortcomings.  Such articles basically profile a company that built a solution for someone (or themselves) using, among other things Microsoft technologies.  They'd effectively cover the thought/creative processes the development team went through in engineering the solution, demonstrating the completion of business objectives and generation of innovative technical solutions, without getting too much into the actual code so as to pose a security risk, and without reading like so many graduate theses.

    But in doing so, I wouldn't want to read the product of an approach that's an exhaustive but somehow empty description of a solution that's more self-glorifying than informative - or a not-so-hidden marketing tactic hidden beneath the guise of a feature piece. 

    Now I realize not all coders like reading this type of thing, but it's this type of practical analysis that's really needed now to perfectly complement to the groundbreaking work being done by the world's coders.  And we're well enough beyond the infancy phase of ASP.NET's lifecycle to have lots of worthy subjects willing to share their experiences - developers and their clients - so this is a market I'd love to see take off in the coming months.

    Now, I'm not doing this as a petty means of petitioning myself for work...I'd be interested in seeing good write-ups by anyone about diverse clients out there.  As a writer, I've been fortunate to have done them myself, and like a good musician loves the work of others, I just honestly appreciate good writing.

    But if anyone wants them done, I'm always available.  :) 

    (talk about cheesy)


  • Elden Nelson moves on...and up!

    I saw in the most recent e-mail newsletter for ASP.NET Pro Magazine that now-former editor-in-chief Elden Nelson has left Informant to take on a job at Microsoft as a Developer Audience Product Manager in Microsoft Learning, which apparently is the post-reorg moniker for Microsoft's Training and Certification Group. 

    His skills and enthusiasm and surely needed, as per my earlier thoughts.  Sounds like a really fun gig.

    Elden was a really cool cat who always responded quickly when written, no matter how trivial or incessant the matter, and took the inevitable harsh criticism one gets from publishing a magazine gracefully.  I've always appreciated his witty, referential writing style, as I like to think I take the same approach in my own compositions.  His opening comments every month were certainly a welcome thing to ASP.NET Pro Mag.

    Being in the media biz, I empathize how hard it is to run an ongoing production with an advertising market performing so poorly (we’re not exactly rolling in dough here in the TV industry, either).  I’m pleased to know a gentleman like him is moving to what I’m sure are greener pastures (and $$$!).

    Congrats on the move, Elden! 


  • FrontPage's movement to clean up generated code

    I''m not running FrontPage 2003, so I'm a tad out of the loop when it comes to new enhancements with that app.  I saw this ad after a friend forwarded a blog post to me on how MS is touting that FP2K3 is “cleaning up its code”.  I wonder exactly how “clean“ the code will be.  Without investigating, here are some projections:

    • better indentation
    • removal of non-sensical indexing/naming of tables and DIVs
    • more XHTML 1.0 compliant
    • larger movement towards inline CSS styling rather than tag-based, or attribute-based formatting
    • better color coding for specific syntax types (red for server-side code, blue for HTML & client-side code, grey for comments)
    • getting rid of the incessant tendency to break - not wrap, but break - a line of syntax into another line for some strange reason

    I couldn't immediately find a link on the FrontPage site, so I Googled the topic and found this article by Ron Miller.  Ron sites the following improvements for FP2K3:

    • the ability to produce “industry standard“ code (whatever that means - XHTML?)
    • an inline XML/XSLT editor


  • Creative alternatives to the poor search feature conundrum (low budget or otherwise)

    I previously mentioned that it's often better on today's Web to have no search capabilities at all than to provide weak search capabilities on a site.  I also cited the fact that in lieu of having an enterprise-level search facility myself, I've been forced to develop a variation on a theme to allow for effective search for my company's site.  Here's a little look at what I've been able to pull off.

    My search tool uses a “split-screen page” displaying 3 IFRAMEs loading the following:

    1. An XML web service on a remote server I control returning keyword-driven search content (we tease specific keywords in our broadcasts and shoot back URLs to specific exhibits)
    2. A DataList containing an articles results page that uses FREETEXTTABLE to query our news database for stories (a “classical” search)
    3. Web-wide search results using the Google API for non-news-oriented related content on our site (press releases, bios, calendar, etc.), specific to our site for any pages outside of the scope of our news articles

    Now, this is far from a technical achievement of landmark proportions, and the fact that a single page loads multiple IFRAMEs coming from different places on the Web - and utilizing two separate web service calls to remote servers - isn't exactly the fastest app ever written by man, but it works for us, and that's what important.  A user finds articles related to what they want, we hardwire to the user the topical, timely exhibits that we want them to see, and they also likely find something that may interest them they probably weren't after in the first place.  It's proved to be a win-win-win for us!

    Now I can't take all the credit...I actually borrowed the page layout idea from the cool search feature provides.  I've also always thought AOL was genius for creating its “keyword“ feature, and I thought if I could implement that within the more mainstream environment of the World Wide Web, I could pull off something cool.

    Have you seen any other sites that use alternative, creative or otherwise intriguing search functionality?


  • What do you look for when interviewing candidates for tech positions?

    My company doesn't use a complex HR database to store/call up resumes and CVs submitted by prospective hires.  So most of the time, when people apply for new jobs, they find my company’s “Jobs” page on our site and e-mail me directly with their experience, skill set and references.

    Since we don't have a structured system to run through, filter out and selectively organize candidates, I've gotten into the habit of skipping ahead to the “Skills“ portion first (which is by convention the third or fourth listing), and then reading “Experience“ second.  I give everyone a fair shot, but I really don't place much emphasis on the Objective Statement or References (at least not initially).  I mentally skim for keywords that standout depending on the requirements for the position.

    When the actual interview comes around, I typically have a sit-down, getting-to-know-you session, and just feel someone out for how they enjoy their trade, and who they are as a person, what they've done to date.  If a candidate isn't a match for our corporate culture, this kills their chances right away - such is critical for getting it done in the TV news business. 

    If they're invited back for a second interview, it's time to show your stuff.  I throw a number of completely ambiguous and vague scenarios at them depending on the job (designer, developer, writer, DBA), giving them a time limit and a set of specific goals.  I basically assess one's ability to architect a solution under duress given a spec that's cloudy at best and not much time to pull it off, as that's what we go through daily.  When they'd done, I ask them to explain their logic and why they chose that particular solution, being critical and questioning their design, and forcing them to defend their decision.

    To me, I could care less how much someone knows about raw coding.  If they could sit there and recite the entire System.Data.SqlClient namespace, that's very impressive, but not required.  I'm more interested in gauging someone's ability to think creatively.  The actual code can be looked up, and most people that make it that far into the interview process usually know their stuff anyway.  Or, they could use a platform I'm not completely competent in myself, which would make it unfair for me to pass judgment.

    Certainly, my own experience interviewing with Microsoft and the way the company poses questions and gauges the thought process has influenced the way I interview candidates, and in positive ways. do YOU assess someone's skills when conducting an interview? 

    (It's strange - when applying for jobs I try and structure my own resume such that it'll blow people away, and in practice, it really means little to me.  Hmm.  Something to think about...)


  • Technical pet peeve: no search services are better than weak search services

    The one thing that's really been irking me in using the web lately is poor search utilities.  And this is regardless of the platform the site was developed with.  Nothing get me more steamed these days than browsing to a content-rich site, looking for an article, code snippet, or other content and getting bad and unhelpful search results. 

    On one such site today, I even copy-and-pasted the name of the article I was looking for into a textbox and searched for it to no avail - “Your search returned 0 results”.  Yecch.

    This is the direct result of metasearch services like Google, Dogpile and others taking off - people expect more from individual sites.  And they have every right to.  Those of us not at that level likely can't provide similar functionality as those tools, but we could at least allow a user to search our own content effectively.

    Think about it: search facilities are functionally the easiest things a web developer can build, but realistically one of the most challenging – if not the hardest - things to do right and maintain on a content-rich site.

    My point is that having weak search services - and services in general, for that matter - is poor customer service and therefore detrimental to your image (assuming you're concerned about that sort of thing).  And this is seen in major sites, from major companies, offering content that should be its nature be (1) indexed constantly (2) accessed by a powerful, flexible, intelligent search service.  This is a no-brainer, but why people on today's intelligent web continue to provide hard-to-use and even worse, poorly-performing search facilities amazes me. 

    Having a simple SQL-based LIKE '%searchString%' statement doesn't cut the mustard these days.  You'll arrive with incredibly inflated recordsets and ill-formed results.  Steve Walther has what in my opinion is the best discussion on developing effective search tool in his classic “ASP.NET Unleashed“, showing how easy it us to use to use Full-Text Indexing, and SQL Server's FREETEXT and FREETEXTTABLE functions.  I'm not sure why more people haven't gravitated toward this end, weighing the gains against the efforts.

    And I'm only ragging on those who've continued to have weak search capabilities, because I was there myself once. I used to run the Search utility that shipped with FrontPage several years ago to manage my site's content, but that got really old, really fast.  We now use a simple web form that outputs results off of Google, specific to our site, and we couple this with a database-driven Keyword Search utility based off of a web service we developed that works like those found on AOL or ESPN (we tease keywords to use throughout our broadcasts, so we have a bit more control over the ambiguity of our searches). 

    It used to be written constantly in online marketing journals that the key to winning on the web is having a search utility.  I'd like to add a corollary - if you haven't got great search services, remove them altogether.  Better to be lacking such a feature and have a decent alibi than be sorely inferior with a justifiable motive.   Most people will use search engines anyway.


  • Can custom types returned by web services be subclassed at the client?

    I'm just typing without thinking here...something popped into my head now after reading Juval Lowy's outstanding article “Develop Interface-Based Web services.


    It's been previously documented that a developer can return a class from a web service, in which the WS sends a custom data type a provider-end developer defines back down the wire, and Juval showed how one can develop a polymorphic interface within the same web service framework.  What I'm wondering now is if an actual class structure be inherited from, so that a distant-end dev can derive from a custom type and extend it for her own needs. 


    This would essentially have the web service return an API (either as an unpopulated template or pre-fabricated with some set values), rather than direct data.


    For example, consider the following code for a client consuming an XML Web service:

    // import the namespace for the web service's custom class

    using webserviceNamespace;   


    // inherit from the WS class as a base (does this reference the web proxy class?)

    public class MyClass : webserviceNamespace.CustomClass


          // a private data member

          private string _lastName;


          // a public property

          public string FullName


                get {return base.FirstName + this._lastname;}



          // more OOP fun for other properties, methods, etc.


     ...something like that.


    This might upset some conventional security models, but I can see some instances in which it might be useful.  For example, internally a main provider could release a basic API, which departments would then utilize for their own use, while conforming to a base "standard".  Or, if I as a WS provider developed a "sports" framework and returned an API consisting of properties to hold player info and methods to calculate statistics, multiple clients could subclass the base API and implement it within a variety of different environments.  


    And all the while, I'd have the remote control over the foundation and enjoy the XML web services relationship without having to constantly redeploy an assembly as changes are made.  And I could still require SOAP authentication, ensuring member-only access.


    I'm sure this has been discussed before, but this was one of those “what if...” things that came to me.  If I'm missing something that's painfully obvious or previously discussed ad nauseum, please feel free to throw a big, juicy virtual tomato in my direction.  :)


  • Great desktop quote for developers

    Here’s an amazing quote that I found on a page reviewing the death metal band Morbid Angel.  It’s a great dictum for developers, and a nice thing to look up at when you’re stuck in a debugging rut or working with mortals of lesser intellectual capacity than yourself.


    “To see past the secure foundations of convention and into an entirely new state of being demands the strength, conviction and true sense of purpose possessed only by a chosen few.  They are the innovators, the leaders, the ones who transcend perceived limitations.”


    This works great on a printed PowerPoint slide, and I’ve got many of these all over my office, dealing with a variety of themes and coming from a variety of sources - literature, the Bible, management theorists, notable speeches, music lyrics, TV, movies, etc. 


    What are some of your favorite inspirational/motivational quotes?



  • Do programmers make better managers?

    A theory I’ve maintained ever since I started working at the tender age of 14 is that the people who make the world’s best managers are parents.  I mean in what other “profession” is one constantly exposed to practical organizational challenges like financial management, conflict resolution, promotional campaigns, motivational tactics, strategic planning, and countless others that are directly applicable in the business world?


    It’s that time of year when I do some introspective spring cleaning, and try to reassess what I am to my company, where I stand in our grand scheme, my role in the community, and in what directions I should be headed.  My company doesn’t do performance evaluations, so I do this on my own - a self-assuring 12-step program, if you will, to keep me honest, get my ego in check, and keep me in line.  So on the drive home from work last night, I thought about how my own thought process has changed since I started programming. 


    Whether deliberately or subconsciously, I base most of my real-life business decisions these days on logic, a de facto mental if…then or switch structure.  This is key to my survival in this very transient industry that I'm in.  And the fact that I wear three disparate hats at work (as a development lead/news anchor/sports producer) have forced me to get into the mindset of really respecting time – and learning how not to waste it.  I tend to prioritize things in terms of significance and possible gain(s), in that order. 


    All have certainly helped me make better, timely choices, and I’m without doubt a helluva lot more pessimistically pragmatic than when I started out.  I feel such has made me a more competent professional; however, this doesn’t necessarily make me a better manager of my department, of the resources to which I’m entrusted as an employee, of myself, or even as a co-worker to me colleagues.  So, I’m taking a step back and trying to figure out if this is the best way to go, but I'm certainly impacted in positive ways in the real world because of the logic writing code mandates.  Sort of an internal reorg.


    So how about you?  Do you think people that the art of programming makes a manager any better/worse?


  • Spam has gotten so bad I can’t tell what’s spam anymore

    I just got e-mailed what appears to be an honest request to donate some books on Java.  While it seems to be a legitimate letter, it's written so generically and I get so many variations of this stuff nowadays that I think I'm really starting to lose focus on what's real and what's not.  

    The funny thing is...I'm not a Java guy, and I've never claimed to be.  A strange related example is I got some spam last week posing as an confirmation of purchase, using the same subject header and having the same reply-to address, even using a bogus Order # and receipt ID.  When opened, it , was plainly not sent from our friends in Seattle, being some el cheapo ad for Levitra or some other male enhancement drug. 

    I'm a big advocate of creative marketing and all, even if it borders on the unconventional...but it's truly sick that people are stooping to the level of outright misappropriation.

    Now what I'm getting at isn’t a determination of the unsolicited nature of electronic mail on today’s Internet.  There are certainly tools out there to determine what’s legit and what’s crass capitalism.  My point is the fact that I now have to second-guess about stuff like this is starting to worry me. 


  • Developing a custom validation control for non-Roman character sets (or, "that damn '@' sign")

    I've finally nailed down the reason why some people haven't been able to successfully signup for one or more of the e-mail newsletters my company produces - they're failing validation when using character sets other than those deriving from the Roman alphabet - more specifically, English.  It would seem that languages using other character sets - langauges based on the alphabets/character sets for Japanese, Chinese, Korean, Cyrillic, Persian and Arabic - have a problem recognizing the “@“ sign.

    This had been haunting me for a few days, as people from various places in the world wrote me about why a WebForm I built was throwing an error message, saying their “e-mail address was not in the right format“, when it most certainly was.  I only now caught it, after a local user wrote me, saying she was getting the error message my RegularExpressionValidator was returning, despite her best and repeated efforts of typing her e-mail address.

    I finally caught what was causing it.  I saw that her e-mail header read “Content-Type: text/plain; charset="iso-2022-jp".  My guess is something with the “@” character being parsed wrong, hence breaking the regular expression my validation enforces.  Thus, I'm now thinking of a way to have what would be languages not descendant of the Roman character set be workable in validation routines.

    So much for the relaxing weekend...


  • Why I have to use dial-up Internet access at home

    Yes...'tis joke.  Even though Guam is only 7 miles long by 30 miles wide, I’m out of range for DSL or cable modem Internet access, because our local telco (the only one in the U.S. and its territories to still be run by its local government) hasn’t installed repeaters to provide total islandwide coverage.  Isn’t that pathetic?  As a result of not being able to enjoy broadband access, I’m in the doldrums of slow dial-up.  And on TV, in conferences and during talks I give I'm the biggest advocate of people having fast access to the Web.


    And worse, it’s not even as fast as normal dial-up access should be.  After the worst supertyphoon in Guam’s history ravaged this place in 2002, the phone lines in my neighborhood have never been the same, so if I dial-up one morning and get 34.6Kbps, I thank my lucky stars…that’s a fast connection.


    (As I’m writing this, I’m currently connected at 31.2Kbps, so technically speaking, I’m not even surfing as fast as I was back in 1996 when 33.6K modems were all the rage.)


    By its geographical placement, my house is just 100 yards to the north of the reach of one central office and a about that same length to the south of another CO, so I’m screwed either way.


    I tell people this all the time and they freak out…you would think if there was one person on Guam who’s use of broadband access to the ‘Net would be a no-brainer, it would be me.  For all the things I’m involved in, both locally and internationally, I shouldn’t be able to make do without it.  But I’ve learned to work around it.  For things like videoconferences, desktop sharing and Webcasts, I head into my office, although the scheduling of those things in the U.S. mainland usually means I have to go in at 3AM.  Yecch.  But, I do get to hog my T-1.


    However, it does have some residual, albeit painful, benefits.  It’s provided me with a baseline for UI development, so that our designs don’t completely take years to load on slow connections.


  • Jenna Jameson does "spread" for Jackson Guitars

    Two giants of their respective industries whose body types I've admired for years, Jackson Guitars and Jenna Jameson, recently teamed up, in which the latter did an advertisement pictorial, posing with several models of the former's product line

    (Is it hot in here or did my heat sink break?)

    The pix are tame enough to have as your desktop wallpaper and not get fired, but enticing and creatively/tastefully done that everyone walking by your desk will assuredly stop and check them out, and say, “hey, isn't that...?“

    And if you're still of the mind that the images are too risque, well, I guess that just proves the decline of the Western civilization over the last 50 years.  Get over it.  And just a heads-up: Ozzie and Harriet has been off the air for decades. 

    I don't have any children at the moment but my own baby, my pride and joy, is my 1976 Gibson Flying V.  Man, as a lifelong marketer, this is the type of project that I would sell the wheels off my car while I was driving it - land a well-known celebrity, outside of the normal scope of the industry, but related to it just enough to be relevant, and get her to endorse our stuff.  A classic model, and I'm sure paying off tenfold for whatever Jackson put up to land it.  Great business move.

    I'm quite certain the lovely and business-savvy Miss Jameson has had offers to do similar covers or endorsements for beer or liquor, therefore completing the “Wine, Women and Song” trifecta.


  • I was so young and naive back then...three years ago

    I found an ancient thread I started on the old Wrox P2P community forum (copied below) by randomly browsing today, and reminisced about how I first questioned the legitimacy of ASP.NET's code behind model.

    As it's worked out, I'm a big advocate of code-behind now, and although I don't use it in each and every development scenario (and I admittedly use it less and less for testing in Whidbey thanks to inline IntelliSense), it does really come in handy, and I'm very in favor of it.

    Now what's that phrase about hindsight being 20/20?  :)


    Copied from

    asptoday_discuss thread: Will .NET code-behind survive?

    I've got a general you think that code-behind will be a thriving feature of .NET?  Personally, I like all my code in the same page, so I can see everything that's happening...although I have tried to code-behind model and found it to be very cool, very safe, and very useful in certain situations.  I use a lot of SSI in my classic ASP projects.

    Are you using/will you use it in your own Web projects?


  • Got a book writing offer today...

    Early this morning I got an e-mail from an editor at Wiley who's a friend from former writing gigs with Fawcette Technical Publications, when I was writing for the former .NET Magazine (now Windows Server Magazine).

    I was asked if I'd like to start working on a title for the ASP.NET 2.0 Beta, which I'm totally psyched about.  I remember Wiley was part of IDG Books, which is most famous for the “...For Dummies” series.  I've always wanted to do one of those.

    Now, I've been screwed over by Wiley in the past...I served as technical editor on a book about .NET MyServices that went bust halfway through production, and never recieved payment (a shame, was a good one).  However, Bill Evjen has written some great titles there and is a friend, so I'm open-minded.

    Hopefully, you'll be seeing something I did in formal print in a few months!


  • Why WebMethods can't be static

    Someone threw one of those completely off-topic questions at me during a talk, asking why XML web services can’t be static.  


    Trying to set a static (shared) modifier on a WebMethod, appropriately throws the following:  System.InvalidOperationException: Web Service methods cannot be static


    Not knowing the academic reason off the top of my head, I logically postulated the following:


    A WebMethod, intended to be a remote method invocation, cannot be static, as such does not require the presence of an instantiated object of the Web service's type.  Therefore, doing so goes against the XML Web services model of relying on a proxy class, which, by its nature, needs to be instantiated as a genuine object to call the Web service.  


    I have this answer, which everyone agreed made sense.  Now having my full curiosity to the point where I coulnd't work normally anymore (I'm like that), I tried Googling briefly for the authoritative answer for this, but couldn’t find anything definitive.  


    If anyone has a more concrete explanation, please send it to me.  :)



  • A must-see G.I. Joe tribute site

    My co-worker found an extremely cool site that blew me away –


    As I turn 30 in April, this is classic, drawing on one of the most time-honored traditions in the lives of young men everywhere - collecting G.I. Joes and associated paraphernalia.  Its an incredibly detailed tribute to what's become a part of hundreds of thousands of young men's lives for generations.


    And when I say detailed, well, see for yourself.  The site's content includes everything from the limited-release 3-3/4” action figures, to descriptions of each figures weaponry and accessories, to special gadgets and goodies you got when you sent in the proof-of-purchase symbols.


    The person who put this site together is hardcore!  The volume of the toy collection is just amazing, and is definitely worth a browse for the enthusiast.


    Remember Destro's backpack with the removable pistol?  Do you really know the true story behind Snake Eyes?  Did you know that the U.S.S. Flagg aircraft carrier was 7-1/2’ long?  Did you have all 5 versions of Cobra Commander?


    This site does, and it'll bring those memories rushing back in glorious color.  Bravo, whomever did the site.


    Man, I would have given anything back in the 80's to work at Hasbro...I'd be there until retirement.


  • Can new cultures be added to System.Globalization.CultureInfo?

    I mentioned in a previous blog about a new project I'm working on to allow for bilingual support for the content on some areas of my station's site.  Well, now in addition to supporting Guam's native Chamorro language, I've added Tagalog, the dominant dialect used in the Phillipines, to the project spec. 

    After trying to mentally organize the methods I'll need in the various namespaces and thinking about preparing the resources files, the requirement for UTF-8 to account for encoding for international characters sets and accent marks, I thought it had it down. 

    After letting my “architecture“ sink in during a long pre-Super Bowl XXXVIII nap, I realized that it might not be as easy as I thought.  I'm unsure at this point if I'm going to be able to extend the CultureInfo class to include date and number formatting considerations for each new language, as neither is provided out-of-box.  I naively thought the set of cultures and formatting, encoding, and character sets accompanying them provided by CultureInfo were specific to the .NET Framework, but now I'm hoping it's not an MSIE-specific thing, or worse, a W3C standard, although I know the language codes derive from ISO.  I'm just postulating all this now, without researching (which is my big problem).

    Hopefully, I'll be able to define and add new languages (or figure out some effective alternative) and get this up and running.  Otherwise, it's going to be some looooong nights...


  • Go Patriots!

    As a former resident of the New England area (I spent part of my youth in Cheshire, Connecticutt), Super Bowl XXXVIII was awesome.  So cheers to all of you undoubedtly partying in Maine, Rhode Island, Connecticutt, New Hampshire, and all over!


  • Idea for new XML Web service contest - "Best UI For A Test Page"

    Remember when Microsoft sponsored the Best Student Awards 2001, a XML web services contest for academic markets, and Fawcette Technical Publications sponsored its own competition to see which invidual or organization could create the best web-callable methods?  I've got an idea to take this a step further, now that web services are a little more engrained in the lexicon. 

    I'd like to see someone sponsor a contest, offering a prize or compensation of some sort for the development of the best web service test page.

    Of course, this would be rather foolish, seeing as how the preview page isn't supposed to receive much visibility that much in the first place.  So it would be comical, if anything, to award achievement for design excellence for something hardly ever seen.  This might be akin to holding a competition for “build the prettiest shade of motor oil.“  Ha!  :)

    To get the ball rolling, check out the layout used by XIgnite - amazing design.  I've also seen some test pages from Java shops that blow the mind, although I don't have any links at the moment.

    How about you...have you got any links to share citing outstanding UI concepts for web service test pages, .ASMX or otherwise?



  • My next big project: delivering multiple-dialect output

    As a developer I try and find the fun in all my projects, no matter how mundane or trivial, and regardless of size or scope.  Doing so just makes work more enjoyable.  But I’ve just started on a project that’s truly pleasant to work on – largely due to both its complexity and personal meaning for me.


    I’m building the framework to allow for my company’s content to be delivered through a variety of subsystems and to a plethora of platforms both in English and in Guam’s native tongue and the language of my ancestors, Chamorro.  Much in the way that most content in Canada is expressed both in English and French, and how Hawaii touts both native Hawaiian as well as English, there’s been a strong movement to have most information represented in multiple dialects for the convenience of those who speak either one. 


    If you’ve never heard of Chamorro, I won’t hold it against you…it’s not in the System.Globalization namespace.  And therein lies the challenge.


    Chamorro is heavily influenced by Spanish, and sports a few grammatical differences between the two that make for some idiosyncratic programming issues.  Numbers, dates of the week and months of the year are the same, but verbs, nouns and adjectives, and the ordering thereof, tend to differ, as is typically the case with most languages derived from Spanish as a base language (object-oriented pun definitely intended).  The character encoding requirements are similar enough to the “es-ES” character set the .NET Framework provides, but the culture encoding is my big concern (largely date formatting and a couple other semantic areas).


    From a usability standpoint, it’s a real thrill for me to deliver information electronically to older generations in a format they’re most comfortable with.  It really gives me a sense of accomplishment when we’re able to connect with people in this manner, and makes me happy that I can contribute and give back to the community in this regard.


    In a similar vein, Mike Tanguileg, a Microsoft staffer (or at least he was when I first met him) and a Guam native, put together a sweet web service to translate English words into Chamorro and vice-versa. 


    So, the bilingualism of this whole endeavor marks the first practical project that I’ll be working with resource files and extending the CultureInfo class to include a language not inherently shipping with .NET. 


    Wish me luck!