Monday, July 31, 2006

Watch KUAM's 2006 Micro Games recap special

My main man Double D finished his 30-minute special recapping the 2006 Micronesian Games from Saipan, CNMI and it aired last night. We're doing a rare thing - letting people download the entire show (not just clips) via our VOD framework. It's really been a hit with the online community, so check it out!

Streaming | Download | Google Video | YouTube

Why I use Ruby on Rails now

As a former two-time Microsoft MVP for Visual Developer/ASP.NET, I got an expected amount of flack for my enthusiasm about using Ruby on Rails. Apparently, I'm not alone.

Firstly, I didn't completely abandon ASP.NET. C# is still my favorite language, and my main site is still based entirely on ASP.NET v.1.1, C#, and SQL Server. All my RoR devleopment now is for internal tools and administrative utilities, mainly because scaffolds makes the repetitive and often painfully necessary job of ADO.NET. I'm also doing some off-domain development for smaller sections of our site. So just for the record, I'm still using .NET. Just not exclusively.

So stop asking.

I guess I should start learning this .NET 2.0 stuff...

I got a HUGE book donation for my company this morning including Professional ASP.NET 2.0 Server Control and Component Development and Pro AJAX and the .NET 2.0 Platform. Now, I've been pretty forthright in admitting that after playing with the initial alpha bits, I never really caught the v.2.0 bug. I decided to stick with ASP.NET 1.x and get the most out of it for my site. But given all of the tomes of info that have been coming down the pipe in printed form, I might have to give it a look.

Saturday, July 29, 2006

Ruby on Rails - not ready for primetime?

I found this very intriguing and well-thought out blog post by Google engineer Cedric, in which he dialectically predicts the reasons Ruby on Rails won't be a hit with mainstream developer audiences. He's absolutely right. (Like Cedric, I'm a dev working with - and loving - RoR, so this isn't a bash piece.)

The main thing I see holding new age web frameworks like RoR and Django back is a lack of formal, structured marketing, a key cog that the latter platform's creator, Adrian Holovaty, admits in an RoR podcast. Like it or hate it, you've got to respect Microsoft's marketing push. The billions they've invested in community evangelism and peer development is what pushed ASP.NET to the front of the framework pack at a Mercurial rate. I enjoy open source concepts and projects, but it's the "born of the community" tag that so often runs fear through the blood of many a CIO. Viral marketing is great (and these days, necessary), but so is the tactical variety.

That there continue to be concerns of the legitimacy of open source platforms and products reinforces this belief. Heck, even the mighty PHP can't fully escape the stigma of being open source...a major contributing factor evident in that not a significant number of large, enterprise-level web platforms run PHP as their framework. At least not that many when compared to those running .NET or J2EE backends.

It's all about plausible deniability. The business world wants to have a formal organization that it can hold responsible, point fingers at or take to court in the event something goes wrong. And they feel better about working with, either directly or indirectly, with a known, trusted partner. There are smart, coherent, collected people driving the direction of the development of the framework. Certainly this is starting to take shape with RoR, but in fragmented fashion.

Thursday, July 27, 2006

Roll call for Microsoft devs using Ruby on Rails

More and more I'm finding blogs, forum posts and other forms of documentation from Microsoft-centric developers who've caught the Ruby on Rails bug. I'm one of them, so I'm putting this out as a open roll call for anybody out there who's normally hacking in Visual Studio and now enjoying agile, rapid, MVC development to append your name and URL(s) just for kicks. Let's see how far this goes.

OpenSSL required for Ruby 1.8.2 in Windows?

I was running into non-catastrophic problems when trying to run Ruby 1.8.2 on a Windows XP box, after I'd disabled the OpenSSL support in the installation wizard. Executing any commands in DOS would run, but only after clearing an error dialog saying Windows couldn't find SSLEAY32.dll.

It was a nuisance, so reinstalling Ruby and turning OpenSSL on (even though I don't need it for production purposes) cleared it right up.

"Metal Daze" rockin' out on Guam

I got a chance to catch local 80's metal tribute band (don't you dare say 'cover') Metal Daze a couple of months ago and they totally rocked. In this day and age of Dropped D tuning, Cookie Monster vocals, sampling like all get out and a lack of guitar solos, it's phenomenal to see people my age continue to carry the torch from the glory days of hard music. The band itself is comprised of all-star musicians from various bands, particularly featuring the tight low-end of Andy Svec and the the lead work of Sarge Eclavea, owner of the Pacific's most prodigious left hand. I remember watching Sarge gig when he was a kid with the Betel Nuts at Barney's and he still amazes.

The band's library of songs is impressive...not just the perfunctory "Round and Round", "Enter Sandman", "Crazy Train" and "Rock You Like A Hurricane" that you'd expect from other 80's bands. These guys go DEEP. I'm talking stuff only true metalheads would appreciate. Vintage Dokken, Rush, G&R, Living Color, etc. They also do a sick Metallica medley. This is real rock.

They're playing a special two-night gig at The Trench on July 27 and August 3 starting at 9:30. Check 'em out...it's a great time.

Why not just say 'Microsoft'?

It always cracks me up when I get voicemail or e-mail messages extolling the merits of a "rewarding and unique job opportunity perfectly matching your skills at a large, world-reknowned, cutting-edge software company in Redmond...". Why not just say Microsoft?!?!?!? I mean, who else could it be? Boeing? Probably not.

HR advocates talk endlessly about the importance of being honest in the interviewing process...some reciprocation would be nice, too.

My latest reading list

I've been fortunate to have the last few technical books I've read be donated to me and the user group I head up, and I've got some reviews to add to my collection soon about some Ruby and Ruby on Rails titles. But until then, I mad emy firdst Amazon order in awhile. So for those of you who care, here's what I'll be reading soon enough....
I'm also keen on getting copies of Wally's book about AJAX and .NET v.2.0 and Adrian's book on Django, which I've mentioned before.

If anyone's got impromptu praise/warnings about any of these, feel free to comment.

Tuesday, July 25, 2006

Ruby on Rails IDE for ASP.NET devs

I just discovered Michael Leung's RIDE-ME (Ruby on Rails IDE Minus Eclipse), which is a slick IDE in the vein of Visual Studio. For this reason, it's specifically geared for ASP.NET developers looking to adopt RoR in their web development projects. Check out some cool screencasts to see how you can get projects up and running in no time. This is great for devs like me, Rob and many others who've fallen in love with RoR. (The Softies On Rails blog is particularly cool.)

Very nice work, Michael.

Sunday, July 23, 2006

Retooling our 'jobs' page

Borrowing the idea from the recently-revamped ESPN jobs site, which integrates with Disney's corporate jobs engine, I'm currently retooling my station's jobs page to the more brandable "KUAM Careers". Assuming by the time it launches no one's parked that domain or others like it, it's going to have it's own space on separate web servers due to the fact that it'll be running Ruby on Rails, and won't be an extension of the C#-based CMS I built.

Whereas today's /Jobs page lets candidates review open positions and descriptions, the new system I'm building will maintain Word, PDF and RTF-submitted versions of resumes, and allow talent-oriented job seekers to send in their resume tapes as Quicktime or WMVs. We normally get a ton of traffic to our Jobs page seasonally, so this'll help us out a lot.

Because it's so complex, we're also toying with the idea of opening such a system up to other companies within our enterprise.

Look for it soon!

Is Mobile ESPN on its last legs?

It would seem that my fascination with Mobile ESPN isn't shared by everyone. Merrill Lynch has speculated that grossly underperforming sales are a major signal to Disney to kill the product.
[Analysts] estimate ESPN will sign up 30,000 subs over the course of this financial year, well short of estimates of 240,000. Meanwhile, ESPN says they have no plans to shut it down.
I'm one of the people that would really use this until it blew up. But let's face it: the coverage isn't nationwide, the handsets ain't the greatest in the market, and the service is somewhat overpriced, but it's still cool. The marketing has gotten particularly agggresive in the last two quarters, which apparently isn't doing enough of a good job, so we'll see.

Saturday, July 22, 2006

Book review: "Murach's C# 2005"

"Murach's C# 2005"
by Joel Murach

"Murach's C# 2005" is an excellent guide in using the latest version of C#, most effective for existing .NET 1.x developers looking to migrate their skill set up to v.2.0 code and concepts. The intent of the work isn't to teach C# from scratch, but more to give an overview of the major features .NET 2.0 offers. The book also serves a dual purpose - introducing the Visual Studio 2005 IDE and demonstrating how to make it work the best for you.

It sports chapters on working with ADO.NET for database programming, XML, I/O, Windows Forms controls, proper OOP fundamentals (inheritance, polymorphism), creating/using business objects within custom libraries, and deployment. In particular, the deployment chapter is particularly good, showing how to properly package and ship an complete application with an embedded database.

Joe Murach writes in a very friendly, succinct manner through very well-ordered chapters, making for a very welcome atmosphere for the busy developer looking to update their programming palette. The technical foundations are well-explain in concise fashion, and almost all have accompanying code and/or illustrations or screenshots. The book is a very quick read. Physically, it exhibits all the appreciated traits of the Murach library: it's printed on heavy, durable paper and bound with a sturdy spine that will sustain the quick flip-through or serious pounding in the middle of a project.

In criticism, I feel the book is a bit mis-titled – and in this instance, that's not necessarily a bad thing. The emphasis, rather than on the nuances of the updated language, is more on using VS2K5 to build Windows apps. I would have liked more information on developing MDI applications, as this is what most devs will ultimately work towards building. Also, while Chapter 23 - "How to Work with XML Files" was a good start, I found it to be a tad incomplete, lacking some of the more essential concepts like XSLT and integrating XML with ADO.NET.

But those minor concerns aside, this is a great book that you'll be able to read through quickly and visually, empowering you with the skills you'll need to build great .NET 2.0 desktop applications.


Friday, July 21, 2006

MySpace as movie promo page? Ah, no.

Remember that universally-accepted e-commerce dictum of having traffic be driven to your web storefront largely because of good design (CSS, color scheme, fonts) and savvy marketing (good domain name, proper URL promotion)? The basic principle was that skimping on online work would kill your business, with people getting a negative image of your company based on the implied low-budget nature of your web presence.

Well, I nearly fell out of my chair when I saw a TV commercial for "John Tucker Must Die" and noticed the URL plugging the movie pointing to MySpace. I wasn't planning on seeing the flick, and after the spot, I'm even more movitated to steer clear from whatever cineplex is spinning it. My first impression was of a movie so bad, it didn't even want to fork out a miniscule amount of dough for even a Flash-driven domain and site. Geez, even the cheesiest horror flicks have decent sites. This in my mind, redefined piss-poor product promotion - an effort so low-budget that it's an insult to low-budget.

However, out of curiosity I browsed over to the MySpace page and was duly impressed at the slick marketing concept - John Tucker's profile page with his various lady callers as friends in his network. Freakin' genius. It's incredibly clever how they've weaved the storyline into how most kids today enjoy social behavior, and the leveraging of MySpace's social networking function by adding friends. Really, really, clever. I'm pissed I didn't think of this first. (And this crow I'm now forced to eat ain't half bad.)

Chalk this one up as great, creative thinking. But what bothers me is that I'm sure other not-so-forward-thinking marketers are going to take the MySpace-as-promo-site approach and actually half-ass it. Let's hope people see this for what it really is, and not a zero-cost alternative to actually putting good push behind a product.

Bravo, Fox.

Cold Fusion's not dead...see MySpace

It just dawned on me that MySpace, currently the Web's hottest commodity for the masses, is a Cold Fusion app. In lieu of objective data, deductive reasoning leads me to believe today's dominant server-based web development frameworks are ASP, PHP, ASP.NET, JavaServer Pages/servlets, various flavors of rolled Java apps, and Ruby on Rails - in that order. CF was considered a major player many moons ago, but never really became the huge powerhouse others have, due largely to cost. When it got bought by Macromedia, it mired in obscurity.

And suddenly out of nowhere it made a huge return to prominence as the underlying supporting a monolithic app.

Could this signal a change in the preference for developer's choice in apps? Maybe, if MM plays its cards right and markets effectively.

Pre-order Adrian's book on Django

Due to the insanity of my development load with the election upon us, I've had to step away from my Web 2.0/LAMP endeavors for a few months and as such I've been out of the loop. So having some rare free time today I wanted to see the progress of Adrian's book about his Django framework for agile web development. I was pleased to see that it's in production, but bummed to learn that it's not in print yet. Soon, hopefully.

Do the right thing and pre-order a copy. Make yourself more Google-attractive. I am.

Shopping around for a new Mac

Reader who'ven been chekcing out my blog over the past six months are going to freak at the news that I'm price hunting for a 17" MacBook Pro, running Intel Core Duo so I can dual-boot with Windows XP and continue to do my Win32 and ASP.NET work. But longtime readers of mine will recall how I got my start on computers with an Apple IIe, so ot's a homecoming of sorts. I've talked to a few people locally about the config, including a couple nice dudes at the local Mac shop.

One passer-by dweeb at the latter establishment easvesdropped on my conversation and rolled his eyes at the prospect of me using the machine for anything but Mac work, but it's the best thing for me. Plus, my expanding projects with Ruby on Rails (known bug) and Django (best on Linux) makes working with LAMP setups a pain.

Here's to venturing into the Great Unknown. Again.

Book review: "Beginning XML with DOM and AJAX"

"Beginning XML with DOM and AJAX"
By Sas Jacobs, published by APress

The book is an excellent introduction into XML, what in today's world of distributed, multi-platform applications development, is an unavoidable and critical technology. An essential amount of foundation is provided on the basics of XML and XHTML (DTDs schema, structuring rules, web vocabularies, etc.), it also delves into CSS, DOM scripting, remoting via XMLHTTP for AJAX interfaces, server-side XML in ASP.NET 2.0 and PHP, and using XML in Flash applications. Each chapter has a good amount of web-based resources to check out. Even experienced developers will find something useful in this book.

Author Sas Jacobs features a great discussion about using some of the lesser-known niche features of CSS with XML, and provides healthy, practical examples you can replicate or download and instantly implement in your own web projects.

My favorite chapter, and the one I've broke the spine on for my own copy, is Chapter 7 – "Advanced Client-Side XSLT Techniques". There you'll find the necessary information for building sophisticated (if not universally supported by all browsers) web UIs through integrated transformations. This includes demonstrating how to use extension functions/objects, generating JavaScript through XSLT, and dynamic client-side sorting. Most of these are MSIE-dependent, but the chapter also takes into consideration proper testing for graceful degradation in Firefox, Mozilla, Safari, etc. For similar reasons, I likewise got a lot out of the "DOM Scripting" discussion.

In criticism, I would have liked the chapter on XSLT - in my opinion the section most people reading this book will need the most - to be longer. It's rather rudimentary even and doesn't cover some of the more time-saving features of XSLT. Also, I found the "Web Vocabularies" to be extraneous; interesting but not warranting an entire chapter in today's WWW. The book would also benefit from an appendix of the resources mentioned for various tools, URLs and technologies available to speed XML-related development.

But beyond these minor concerns, which I'm sure will be modified in forthcoming revised versions, the book remains a must-have resource for introductory programming, and a useful tool for more intermediate developers.


Monday, July 10, 2006

My new subsite's up

This is a few days late, seeing as how we launched our election coverage last Friday. But, we met our deadines, and we put all our interactive elements online. I hate design work, so I spent a lot of time grumbling and cussing at all the CSS tweaks I had to make.

What made this project fun was that this is the first subsite I did entirely in XSLT, combining client-side transformations with some server-side extension objects and bringing in dynamic data by tapping my own RSS feeds for news and our blog.

Now I can concentrate on what I really enjoy doing...building our election night results framework. Now THAT'S fun.

At any rate, enjoy!

Raw text of my 'Directions' interview

Directions Magazine is doing their (semi)annual Internet issue in August, and I'm one of the people that's being interviewed for the piece. This is typically a report on what local developers are doing and what new technologies have popped up. My friend Leo Babauta is penning it, which is cool because he's a great writer. He sent me a questionaire, which I responded to but is undoubtedly going to be chopped up during editing. So for your amusement, here's the raw version of my responses before the article goes to print.

1) Tell me about your National Edward R. Murrow award ... what is it awarded for, when did your site win it, and why was your site given the award?

Sabrina Salas Matanane and I found out we'd won the 2006 National Murrow Award for Best News Web Site for Small Markets on June 21, a day before for the official announcement was made. This was a major accomplishment for our company and for local communications in general. The nod recognizes a news organization's excellence in distributing content to the masses through hypermedia, rewarding innovative ways to produce news online. That we won such an award on a national scale really elevates us to an entirely new competitive landscape.

We previously won the Regional Murrow for Best News Web Site for the second straight year this past April, and we've won a total of five regional Murrows over the last three years for our reporting, so to add something this prestigious to our trophy case is very satisfying.

We're proud to be from Guam, and to represent our island to the world and before our peers is a real honor. We're included in a very distinct circle - other web sites that won include CourtTV.com and WashingtonPost.com, so to have our domain mentioned in the same breath as organizations on that level is incredibly rewarding.

We really feel at KUAM that if anyone represents Guam on a national stage, it should be us. We're not the people who brought the Web to Guam, we're the people who made it work. Our job from Day 1 was to create the best possible online experience - to be "Guam's best source online for news, information and entertainment - anytime, anywhere, on any device". That's the mission statement I drafted at the onset and it's been our guiding principle ever since. To this day, I have that very phrase hanging above my desk to remind me precisely why we're in business and exactly who we're working for.

KUAM.com has gotten a ton of accolades for its tight integration with its broadcast brethren KUAM-TV and KUAM Radio, our sleek design philosophy, and our family of next-gen delivery services. Collectively it constitutes the most powerful, most flexible collection of media properties on Guam. People have really latched on to our "On Air. Online. On Demand." concept, and there's a high degree of usage between all three platforms. People watch a broadcast and then jump on the Web to check out an exhibit we've done. It's not a gimmicky sales ploy, it's a real commitment to bringing people the news. Users realize this - and that makes for unbeatable consumer retention and loyalty.


2) Tell me about the development of the KUAM website ... I know you have been the major developer of the website ... how did you get it going, how has it evolved?

My primary role is to direct all our efforts involving interactive media - pretty much everything under the sun having to do with accessing KUAM through non-traditional means. What I do is think about new and helpful ways to let people access content across devices asynchronously. Functionally, I oversee six main areas of development: KUAM.com, KUAM Broadband, KUAM Wireless, KUAM Alerts, KUAM Web Tools, and KUAM Desktop. We're constantly expanding our foundation to accommodate a growing amount of capable devices and rapidly increasing amounts of storage, bandwidth, and processing power, feeding people's insatiable appetite for information.

Our work is centered on combating a universal dilemma facing mainstream media. The major fallacy of ANY news operation is the requirement to maintain coordinated access - people wanting to find out what happened in the world today via a telecast or radio program have to be within range of an originating signal, tuned into a certain channel or frequency at a specific time, remaining attentive for some duration, and using a certain device. That all makes for a very poor distribution model because once you're off the air, your connection to someone is severed. You won't be able to captivate them until the next time. Magazines and newspapers are naturally portable and have phenomenal circulation, but they're too out of touch, too reactionary. Even "classical" web access (through a web browser application running on a desktop PC or laptop) has fallen out of style due to its cumbersome, coupled nature.

So my gig is keeping us on the cutting-edge: finding out what's out there, determining if it can be a good fit for us, and then making it work. We invest heavily in developing constant connectivity between our Harmon studios and the world, expressing our broadcast products through the Web, leveraging multimedia, and making access convenient.

Since 2000 our news stories have been available as text and in various audio/video versions; several years ago we introduced RSS syndication, which has really taken off and has been a huge success for us in maintaining exposure. And this past year we introduced access at the atomic level for video on demand (VOD) - letting people see the day's events at a glance in KUAM Video Player, and then empowering them with the ability to jump ahead to a single story that really like, bypassing all the things that don't concern them. They can optionally download clips individually, copying them onto a digital device for later playback or sharing them with the community. The a la carte method of content delivery doesn't force an entire show down someone's throat; a presentation becomes more valuable because a user has ownership of it by being able to control what they see, when they see it, in whatever order they see fit. Users can still watch entire newscasts, beginning to end, in our webcast archive.

Either way, even when we're off the air we still maintain a strong presence in someone's life.

Constant connectivity.


3) How has the site grown in popularity?

We're fortunate to always have had a huge, devout following. I'm a marketing guy by trade, and one of the reasons I came to KUAM was because of the strength of the brand. Mention our call letters and everyone instantly knows who you're talking about and what we do. KUAM.com by association is the region's most-known web presence. People e-mail me all the time and say the first site they ever visited when they got on the Internet was KUAM.com, or they went out and bought a computer just to check out all the cool interactive exhibits we mentioned during our newscasts, or that they visit our site as many as twelve times per day to get caught-up. The loyalty of the community we've built is an incredible competitive advantage for us, and one we don't take for granted.

In the early days of KUAM.com (circa 1997-1999), the web site functioned more as an online corporate brochure, providing contact information, reporter bios, and the company's history. What I picked up on immediately was that there wasn't a strong presence with news, nor was there any real interactive element to the site. It was pretty much static and read-only. So news and functionality were the components that I wanted to commodify and exploit online.


4) Tell me about the news business evolving as the Internet has grown in popularity ... how critical is a web presence for a news company, and how do you see the news industry changing because of this, now and in the coming years?

Our online endeavors (web and otherwise) are truly what separate us from the rest of the pack. KUAM.com is a major factor in what makes us the most dominant force in Guam media, and our National Murrow certainly validates that.

At the macro level, the Internet and the public World Wide Web is evolving into a media platform of its own. Even companies that previously prided themselves on being web portals are now morphing into legitimate media properties. Services like the iTunes Music Store, Google Video, YouTube.com and various methods of content rehydration by Yahoo! are changing the way people get information, and really setting a baseline for younger demographics who accept today's delivery mechanisms as the standard. I'm old enough that my media expertise pre-dates the Web, so I'm continually amazed at some of the things people are doing out there.

Serious news organizations at any scale these days can't afford not be accessible online. Add to that the stipulation for media companies to be REALLY good at being online. The media industry can be pretty unforgiving - with any mass communications product or service, if you're not absolutely rock solid when you first launch, you're written off for all time. You can't introduce an unorthodox method of doing something and then expect an audience to just get used to it over time. People aren't that stupid.

So news organizations need to have massive archives of stories in multiple formats with strong, unmetered search facilities, maintain a presence in the wireless space, timely publishing, and a high degree of interactivity. We're in a unique industry because (1) people are always going to want our content and (2) all of our stuff's available for free.

And you can't be afraid to report news online before you go to air with them - TV continues to be world's ultimate platform, so breaking items online won't be cannibalizing your own core product. You can't live in fear of scooping yourself - you need to constantly augment your distribution chain. Your users will appreciate that.

The business is constantly changing, and that's why I enjoy being in it so much; it's unbelievably challenging. With improvements to infrastructure, reduced costs for consumer technology and an increasing number of software tools to produce content, it's really easy and cheap to become part of "the media". Mainstream entities are relying on participatory journalism a lot more to add to their reporting.


5) Tell me about how Guam companies can use the Internet to grow, to better serve their customers and to reach new customers. How important do you think this is?

I'll be the first to admit that we're very atypical in terms of our attitude towards integrating new media with our workflow. And that's honestly very unfortunate. We're a lot more liberal in terms of trying something our online, and pretty much every show, segment, series, or special we produce these days has a corresponding URL. The obvious benefits are the extended market reach to a worldwide audience, the always-open/always-on advantage of a web enterprise, and the operational economies of scale realized from not having to use costly and unreliable human resources.

Technologically, we've pioneered a lot of new and exciting technologies on Guam that other organizations are starting to creatively emulate in their own uses. It's great to be first to do something cool, but there are a lot of headaches that come with breaking new ground, too. Again, for companies like us it's important to have active participation in the bleeding-edge space.


6) A lot of companies are afraid of using the web because they don't have a strong grasp of the technology ... how do you recommend they deal with this?

In my opinion, that we continue to ask this very question in 2006 is ridiculous. It's never been easier to get established and technically relevant online. This being an election year, look at how many local candidates have URLs. Even if they're not the greatest feats of design to ever hit the Web, this proves which ones get it. It used to be that businesspeople just saw the Web as being something you could throw a couple hundred or even several thousands of dollars at to save your operating and marketing costs. The dollar amount now typically required for developing, maintaining and expanding a professional web presence are a pittance compared to what they used to be in the DotCom Boom era.

Being technically incompetent isn't an excuse - you've just got to have the right attitude. Personally, I feel my greatest contribution to KUAM's success over the last seven years isn't technical at all - it's behavioral. Anytime you introduce a new technology product within an organization, the larger challenge is going to be the social engineering involved with getting the people to embrace/evangelize it, more so than the technical complexities behind the product itself. I've gotten the company to adopt a mentality of wanting to publish everything to the World Wide Web.

And the entire enterprise has to get completely into and behind your web efforts. This is key. Our site is the product of some very hardworking, very smart, very talented, very focused people who've really put their heart and soul into this for the last seven years. Sabrina, executive producer/assistant GM Marie Calvo-Monge, creative director Jamil Justice, senior reporter Mindy Fothergill and I enjoy a unique synergy when it comes to thinking about webbifying our broadcast products. Sure, I'm the guy who ultimately writes the code, but it's a total team effort.


7) Feel free to add any other comments you'd like regarding this topic.

There is a growing amount of really revolutionary web and software development work being done locally with companies like iCON, Data Management Resources and KUAM, and Guamcell is very proactive at distributing diverse content. But tragically, it pretty much starts and ends with that group. I want to see more pioneering work done in translating processes and publishing information online.

We took the homegrown approach to winning on the Web. We wrote our entire codebase and content management system from scratch, and did it all in-house, and developed strategic partnerships for niche applications. It's not for everybody, but it's worked out nicely for us. :-)

I still haven't bought a PSP yet

Subscribers to my blog will recall that I was torn between purchasing a video iPod or Playstation Portable. I made up my mind to go with Sony on this one, seeing as how the PSP does more. However, after price shopping this weekend for one (Kay-Bee has them for like $30 cheaper than everywhere else), I have yet to pick one up.

I'm still miffed that game developers haven't put out more volleyball titles - or at least those that concentrate on actually playing the indoor game without things like 80's-esque T&A or goofy power-ups. I just want to play some decent 6-on-6. But, there were some sweet UMDs available at Play-N-Trade at the Micronesia Mall.

Maybe tonight.

Irritation, thy name is comment spam

I certain web app I manage that has several thousand users has been really inundated with comment spam over the past 60 hours. I mean, like HUNDREDS of crap messages. It's freakin' ridiculous. I never wanted to have to enforce CAPTCHAs, but it looks like I'm going to have to.

Oh well, building the thing in GDI+ is going to be half the fun.

Friday, July 07, 2006

I'll be podcasting with SASD in mid-July

I got a note from my friend Michael Mahemoff in the UK of Software As She's Developed and AjaxPatterns.org, asking me to join him for a podcast on some new patterns he's working on. While I won't give all of them away (and while I don't truly understand some of them at this point), we will be talking about Lazy Registration, Host-Proof Hosting, and my favorite, Unique URLs. Good stuff. He's the guy who really put HTTP streaming on the mpa as an alternaitve to constant content delivery.

I'll also be talking about an Ajax utility I built for KUAM.com - our LiveSearch box, which is a tag cloud that hooks into our internal search engine and uses polling for auto-refresh - and how I pulled it off using .NET, XSLT and JSON.

So keep your aggregators subscribed for the podcast, and check out Michael's RSS feed and wiki. He's always got a ton of helpful material out there for bleeding-edge developers.

Monday, July 03, 2006

My first Memeorandum frontpage link

I recall being giddy earlier this year when a story I broke on the local sex industry was the lead story on our 6pm newscast, the first time I'd secured the featured spot in seven years. With a little less enthusiasm I just discovered through a Technorati search that in the early part of June my blog was linked off Memeorandum relative to a roumoe about Google buying Monster I commented on, the first time I'd gotten recognition on that site, too.

Cool! Nice way to start the day.

Sunday, July 02, 2006

The coolest XSLT example I ever saw

I came across something today that I originally found in 2001 when I got into what would become my favorite developmental technology, XSLT. When scrounging around on XMLPitStop, I found the (in)famous Stock Sorter example, which at the time blew me away. It uses a couple of XSLT stylesheets and embedded DOM scripting to provide client-side sorting and inline CSS to do dynamic element styling. What's remarkable is that it uses data islands, which died out real fast.

I was just amazed that all this could be done on the client. Although it's in serious need of revision (it sadly only works in MSIE 5+), it's still cool to look at and play with.

Hey, ESPN! Show Scates some love

One thing that really irked me as a sportswriter, but more importantly a sports fan, was how ESPN naively neglected to mention UCLA volleyball guru Al Scates in its list of the Top Coaches of All-Time. Assumedly such a list would perfunctorily include Vince Lombardi, Red Auerbach, Dean Smith, Bear Bryant, Mike Kryzewski, John Wooden, Scotty Bowman, Phil Jackson, Bill Walsh, Joe Torre, Don Shula, and others. And I was also pleasantly surprised to see Anson Dorrance and Dan Gable receive recognition, showing that non-mainstream sports got consideration, too.

But insultingly left out was The Great Scates, who with all due respect to Wooden, is a Westwood wizard in his own right.

Next season will be his 45th year on the job - for tenure alone, he's approaching Eddie Robinson status. But his success with the Bruins is unprecedented - almost 1,200 career victories while winning nearly 85% of his games. His teams have appeared in 25 national championship games, winning 19 titles for UCLA. His winning percentage is among the highest in college sports - period. Hell, the man coached Karch Kiraly. He's a living legend. And that Coach Scates isn't on the list is pure blasphemy.

Now I'm a realist, so I accept that in an American sports world so enamored about all things football, basketball, baseball and hockey (in that order), and even extended to include golf, auto racing, tennis, horseracing, and - maybe - soccer, volleyball isn't most people's cup of tea. Even beach volleyball, overwhelmingly the fan favorite when compared to its indoor counterpart, hasn't risen above its status as athletic fetish - appealing only to a certain breed of person. Making the sport more appealing to the masses is something marketing and volleyball officials are and have been addressing for a decade.

But to ignore the contributions and achievements of a true giant in the sport is just irresponsible journalism, making the list incomplete and of less value. Do the right thing: give the man his due credit. He's certainly earned it.

Relive Jason Ring's collegiate years

I was browsing around on YouTube, looking for some good indoor volleyball clips, and came across this awesome montage of former U of Hawaii middle blocker/opposite and now AVP star Jason Ring. There are several you can find, including some international matches featuring Russia and Cuba.



Anyway, we on Guam used to get programming from Hawaii's K5 station piped up here (albeit a week behind), so my friends and I would watch the best years of UH volleyball, including the magical 1996 season. And in those days, as a starter on Guam's top vball club, I was totally into the whole scene. At one point in my life, I had aspirations to be the next Jason to play middle at UH, following Olive and then Ring, but it didn't work out. Obviously.

At least we can enjoy cool clips like this.

Saturday, July 01, 2006

The best laid plans...

Well, all isn't going according to plan with my integrated wireless contest, but we're still kicking butt and lots of people are participating in our promo. Unfortunately, the XML I'm getting is behind an HTTPS URL, which .NET XmlDocument object's don't like because they can't inherently establish a trust relationship with the remote server. We had planned to move the feed to a non-secure URL to alleviate this, but I guess things got too tough at the last minute. Dang. Our concept of the data being truly "live" is right out the window. And I don't have the time to hack out the workaround.

As I'm writing this, we're in the middle of our 40-minute voting period while the modeling contestants vie for people's affection. More than 100 people have voted so far, and I'm having to manually save/reupload the XML file to my server to get the results to update properly. No bother...we're still accomplishing our goals.

It's just requiring a little more manual input than I had planned. So much for "work smarter, not harder".

Damn you, VH1

One of the downsides of living on Guam is the caveat that 40% of the world doesn't know we exist, and of those that do, 80% don't know we're a United States territory. Add VH1 to that list. I was trying to check out some videos on VSpot, but I got slapped with a nasty error message saying "Music videos are accessible in the U.S. only. Man, that sucks - especially because they've got such an expansive archive of music.

At least the non-videos work.

Summing non-linear XML data using XSLT extension objects

Literally seconds after publishing my last blog post detailing an XSLT process I'd worked up for a big integrated wireless polling app, I got several e-mails from subscribers to my RSS feed asking specifically about how I pulled off summing up the data. Well, I aim to please, so here goes:

I refer to values within the same XML element as "linear", because in XSLT you can move through them and do mathematical expressions like sum() very easily. This isn't always the case with what I call "non-linear" data, that which might not be summed up right away. You need some place to store, calculate, and later retrieve the data to properly work with it.

Take this medal count app I did that uses this XML data structure for example. The tallies for gold, silver and bronze medals is linear, in that you can total up the full medal count with a statement like:

@gold + @silver + @bronze

(I actually do just this on the medal count page.)

Now consider the plight of non-linear data structures. XML documents that have maybe singular values per element can't as easily be totalled directly within XSLT as I did above. This means you can't just put the element's values in a for-each block and roll up the totals. Have a look at this XSLT stylesheet. Pay particular attention to the custom method being called at the bottom of the document within the template using the "sumTotals" mode. As is noted in the comment, the value of the current node's VOTES element is passed as a parameter to a server-side method, contained in a class in a .NET library. This method is called for each matching node and stores values on the server, with a separate method returning the overall value later.

VoteUtils:AppendVoteTallies(votes)

Here's the class definition:

public class VoteCounter
{
/* DATA MEMBERS */
int _counter = 0;

/* METHODS */
public void AppendVoteTallies(string tally)
{
this._counter += Convert.ToInt16(tally);
}

public int GetFinalVoteTally()
{
return this._counter;
}
}

Within the .NET library that the XSLT stylesheet references via the "urn:VoteCounter" namespace, an extension object is added to the server-side transformation and a new VoteCounter object is instantiated. When this is done, the integer variable "counter" is set to 0:

XsltArgumentList args = new XsltArgumentList();
args.AddExtensionObject("urn:VoteCounter",new VoteCounter());

Quite simply, invoking the method in XSLT increments "counter" and stores it for later retrieval, which I do for calculating the percentages and width of graphics to create a bar chart in the web client:

VoteUtils:GetFinalVoteTally()

It's a pretty slick way of combining logic on the client and server to get exactly what you want from your data...even if it's not structured the way you'd like it to be.

Collaboration is a good thing

I've always considered it an honor to work with talented professionals, in any capacity - business, sports, technology, music, etc. Having the privilege of being able to create with passionate, driven, focused people is really fun. I've been able to enjoy such synergy within the last 48 hours, as I'm prepping for a big (and last-minute) collaborative promotion tonight at Guam's July Block Party.

I work with the guys at iCON from time to time, mainly on Flash or wireless apps. This time, it's something really cool, if not outright groundbreaking. I came up with the idea of having users vote for their favorite model contestant(s) via mobile phones at this year's July Block Party. The notion was that users would be able to watch models parade back and forth on the stage during the show tonight, and have the option to send a text message to vote for the People's Choice Award (admittedly a bastardization of American Idol's method of voting.)

I've done polling applications before, so this wasn't too much of a stretch; but the distributed nature of the data and media over which it would be generated made this a really fun challenge. The iCON boys manage the SMPP server that's facilitating the casting of votes via mobile devices, and also control the MySQL database storing the vote tallies. My friends at Guamcell setup a vanity number that any local mobile customer could text to. I whipped together an AJAX polling interface calling a .NET service that pulls from iCON's feed and programmatically transforms it via an XSLT process I wrote using a couple of custom extension objects for timestamping and non-linear vote summations. Since the processing is asynchronous and I'm polling the server every couple of seconds, the bar chart's growth effect achieves the impression of real-time animation. This is going to look great on the multiple 20-foot monitors down at the show!

I think the thing I enjoyed the most from this project was the clean separation of duties. Guamcell took care of the telecomm end, iCON handled the data source and I did presentation. We each operated in our own space, gave each room to create, and did our respective things independently. I got to use my favorite technology, XSLT, exclusively without worrying about anything else like the database or input devices. Most of all, we all did this with the intent of creating something really cool that no one out here's done before - giving people a whole new way to experience interactive media. Mission totally accomplished.

Thanks guys...the pleasure was truly all mine.

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]