• « October 2005 | Main | December 2005 »
  • XSLT:Blog[@author = 'M. David Peterson']/Main: November 2005 Archives
              • November 30, 2005

                Subliminal Messages From Firefox

                I've always wanted to start a conspiracy. Its too bad that the potential subliminal message I am refering isn't something with a little more "Suburban Myth" potential.

                What the hell am I blabbering about this time? Take a look:

                subliminal-fx-images-small.png
                (click the image for much larger view of all thea action)

                Now, I'm not seeing any sort of Satanic worship symbols, or any real effort to try and tell me to go and buy a Coke(although, if there is a way to embed such suggestions into the Firefox image I would bet Mozilla would suddenly find itself in a fairly lucrative situation ;) but there is the fact that its telling me to visit www.mozilla-europe.org...

                Hmmmm....

                Why? Whats at www.mozilla-europe.org? What kind of a conspiracy is Mozilla getting itself into here?

                Am I being abused by a subliminal message embeded into the background?

                I want my lawyer! ;)

                ---
                K, nuff' of that...

                Oh, by the way... In case you hadn't noticed, this is the "transition" graphic when a new tab opens in Firefox 1.5. With as many times as I click a link that trys to open a new window (I have it set to open a background tab instead) or hit Ctrl + T to create a new tab instance in Firefox -- I'm telling you Mozilla -- if you don't totally get muffed by someone who rushes to the presses with a "Moz/Fx Is Now AdWare" you could very well find yourself in a fairly lucrative situation. :D

                Mozilla, Please don't stoop that low... ;)

                Posted by m.david at 11:34 PM | Comments (2) | TrackBack

                November 29, 2005

                Civilization Anonymous : " I Said I Didn't Get Up."

                Civilization Anonymous

                Total Game Immersion. With 26 historical world leaders, 85 technologies, and 7 formal religions at their disposal, in many cases a hardcore Civ addict will actually think that he is “one” with the game, often mimicking the behavioral mannerisms, social interactivity and even fashion sense of historical figures throughout time. Genghis Khanism and Julius Caesarism are particularly accute manifestations of this syndrome. A Caesarism sufferer, for instance, can make a “Trekkie” (devotees of Gene Roddenberry' Star Trek franchise) look like a model of the acceptable social norm.

                Prop's to Sylvain for sending me the above link which contains a linked pop-up to a 3-4 minute clip that will leaving you crying after laughing til' it hurts... In fact, I sent my response to who I thought was Sylvain, which included the titled quote, to a somewhat puzzled Uche as I couldnt see straight enough to realize I had clicked his his name instead of Sylvains on my IM client...

                The video is where all the action is at although the site itself is pretty funny as well. But to save you the hassle of dealing with any misbehaving pop-up blockers or from extracing the embedded link such that you can bookmark just the vid, I've included the direct link below.

                http://www.civanon.org/movies/trailer.mov

                Thanks for laugh Sylvain! I was on my way out for coffee but I dont think I need it anymore as I'm most definitely wide awake from the near convulsions I had while watching this quick-flick.

                Ahh.. I'll get the coffee anyway... It's my favorite part of the morning :D

                Posted by m.david at 03:09 PM | Comments (0) | TrackBack

                More Than Just A Quote Of The Day

                ::► Nachrichten | XML Cup Winners Announced at XML 2005; Michael Kay, Norman Walsh Recognized for Contributions to XML ◄::

                "XML has been an exciting field during the last five or six years because it has been the catalyst for so many fascinating developments," says Kay. "It has brought about a convergence of the document and data communities, and joined computer scientists, software producers and software users. XML will be remembered as a field in which a new software development process was begun; an approach that acknowledges the capabilities of individuals as opposed to corporations and in which writing software is essentially a creative endeavor rather than a factory process."

                Posted by m.david at 02:43 PM | Comments (0) | TrackBack

                Don't Reinvent The Basics? Since When Did Sun Have Anything To Do With "Inventing" The Office Software Basics?

                ongoing � Catcalls

                Turning to the office-document space: right now the world has exactly one finished, delivered, standardized, totally-unencumbered, multiply-implemented XML-based office document format. You are the guys who want to introduce another, incompatible one. And I think that’s OK; but restrict your invention to the specialized Microsoft stuff that ODF can’t do, and don’t re-invent the basics. Why is this controversial?

                So I admire Tim Bray probably more than I admire most anybody else on this planet, so I am leaving room for the fact that I could simply be misinterpreting this part of the above statement:

                You are the guys who want to introduce another, incompatible one. And I think that’s OK; but restrict your invention to the specialized Microsoft stuff that ODF can’t do, and don’t re-invent the basics.

                First off:

                You are the guys who want to introduce another, incompatible one.

                I'm quickly running a historical regression test through my brain to see just where it was that things began to break as far as introducing new formats into the already crowded office document types namespace. While MS Office wasn't the first Word Processor, which, if I have my facts correct, the first GUI-based word processor was Bravo, which was followed by Gypsy. Both of these were created, in part, by Charles Simonyi who would later take a position with Microsoft and would eventually drive the development of Microsoft Word and Excel and who until recently(a few years back) continued as Microsoft's Chief Architect. Of course the market for commercial desktop applications didn't become possible until there was a solid base of desktop computers to sell licenses to use such software. With this in mind, it was the early 80's that Wordstar, WordPerfect, and MS Word would hit the market, I believe Word being the last of the three in 1983.

                I will concede that who beat who to market at this stage in desktop computings history would make a great question for Trivial Pursuit, But it would make a horrible basis for any sort of argument against Microsoft's "Pioneer" status in the office document processing software business.

                On the other hand, while StarOffice historically has its roots in the mid to late 80's, it wasn't until 1999 that Sun purchased the rights to StarOffice, so to claim that they had ANYTHING to do with the development of any sort of major office-type software developments anytime before 1999 simply means you haven't done your historical homework.

                Now, even if Tim is not so much refering to Sun and instead to Oasis and their efforts to develop the XML Open Document format, this only makes the gap even smaller as the Oasis effort didnt, from what I remmember, start until the 2002 time frame, and the first draft wasn't made available until the first part of 2004.

                So I geuss my question with this is:

                Just who's re-inventing the basics, and why?

                Sounds a lot more like politics and a lot less like a legitimate argument in favor of the obvious late comer to the game looking for any possible way to seem like the good guy (refering to Sun, not Tim... Tim is a good guy :) when in fact they are the ones responsible for confusing matters more so than anyone else. Thats not to suggest that the OASIS Open Document Format is confusing. In fact, just the opposite! But the mere fact that theres no legacy document formats to support is exactly the reason for the "agile" appearance and has nothing to do with Microsoft being slow. They just have 100's of millions of customer to worry about supporting and OpenOffice/StarOffice... well, definitely not 100's of millions, and even further no real concern for breaking compatibility between document versions... well, this does break compatibility, but when theres only a handful of people to worry about (of which are all anxious supporters of the new format anyway) theres certainly not a whole lot to lose, now is there.

                Now, can we all move on to something more interesting and exciting... Like compound document formats? ;)

                Posted by m.david at 12:34 PM | Comments (0) | TrackBack

                It's People Like This That Give XSLT The Undeserved Rap For Being Difficult

                Internationalexemelization - The Daily WTF

                via a recent link left in a comment by Jez the following Daily WTF (Jez, couldn't agree with you more, btw..) showcases why agility and language have a lot less in common with an agile programmer than one might hope to be the case.

                Now, before you jump all over for my undeserved comment in the title -- please look at the following description preceded then by (to be honest I'm surprised this even ran with blowing the stack, but theres no XML attached to it so its tough to know how deep the recursion could potentially go) what I would term a perfect representation of not only someone who doesnt understand XSLT, but anything even remotely resembling any type of code of ANY sort -- and then let me know if you think maybe, just maybe cases like this speak volumes as to why there are some people who should stop pretending they know how to program and simply move into middle management (although, I'm not sure the middle management folks will want this individual either... and I wouldn't blame them!):

                There are some developers out there who believe that XML is the greatest "innovation" in computer science since electricity. Believing that, apparently, all data and communication are best represented as strings with angle-brackets, they'll go to great strides to ensure that this "technology" is applied liberally throughout systems they build. Undeterred by the inherent constraints of a data interchange format and its related transforms, they'll make sure that XML is not only the driving force behind their projects, but their raison d'�tre.

                Joe works with one such a developer, and presents us i18n.xsl, the end result of his colleague's six straight days of work trying to get his fully-XSL solution to properly display HTML characters.

                
                
                <xsl:template name="Replace">
                  <xsl:param name="string" select="''"/>
                  <xsl:param name="pattern" select="''"/>
                  <xsl:param name="replacement" select="''"/>
                  <xsl:choose>
                  <xsl:when test="$pattern!='' and $string!='' and contains($string, $pattern)">
                    <xsl:value-of select="substring-before($string, $pattern)"/>
                     
                    <xsl:copy-of select="$replacement"/>
                    <xsl:call-template name="Replace">
                      <xsl:with-param name="string" select="substring-after($string, $pattern)"/>
                      <xsl:with-param name="pattern" select="$pattern"/>
                      <xsl:with-param name="replacement" select="$replacement"/>
                    </xsl:call-template>
                  </xsl:when>
                  <xsl:otherwise>
                    <xsl:value-of select="$string"/>
                  </xsl:otherwise>
                  </xsl:choose>
                </xsl:template>
                
                

                <xsl:template name="ReplaceLCWithHTML">
                <xsl:param name="input" select="''"/>
                <xsl:choose>
                <xsl:when test="$input!=''">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string" select="$input"/>
                <xsl:with-param name="pattern" select="'à'"/>
                <xsl:with-param name="replacement" select="'&agrave;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'á"/>
                <xsl:with-param name="replacement" select="'&aacute;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'â'"/>
                <xsl:with-param name="replacement" select="'&acirc;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'è'"/>
                <xsl:with-param name="replacement" select="'&egrave;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'é'"/>
                <xsl:with-param name="replacement" select="'&eacute;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'ê'"/>
                <xsl:with-param name="replacement" select="'&ecirc;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'ì'"/>
                <xsl:with-param name="replacement" select="'&igrave;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'í'"/>
                <xsl:with-param name="replacement" select="'&iacute;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'î'"/>
                <xsl:with-param name="replacement" select="'&icirc;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'ò'"/>
                <xsl:with-param name="replacement" select="'&ograve;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'ó'"/>
                <xsl:with-param name="replacement" select="'&oacute;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'ô'"/>
                <xsl:with-param name="replacement" select="'&ocirc;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'ù'"/>
                <xsl:with-param name="replacement" select="'&ugrave;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'ú'"/>
                <xsl:with-param name="replacement" select="'&uacute;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'û'"/>
                <xsl:with-param name="replacement" select="'&ucirc;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'ý'"/>
                <xsl:with-param name="replacement" select="'&yacute;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'œ'"/>
                <xsl:with-param name="replacement" select="'&oelig;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'ç'"/>
                <xsl:with-param name="replacement" select="'&ccedil;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'™'"/>
                <xsl:with-param name="replacement" select="'&trade;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'¢'"/>
                <xsl:with-param name="replacement" select="'&cent;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'©'"/>
                <xsl:with-param name="replacement" select="'&copy;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'®'"/>
                <xsl:with-param name="replacement" select="'&reg;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'°'"/>
                <xsl:with-param name="replacement" select="'&deg;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'&nbsp;'"/>
                <xsl:with-param name="replacement" select="' '"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'&shy;'"/>
                <xsl:with-param name="replacement" select="' '"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'·'"/>
                <xsl:with-param name="replacement" select="'&middot;'"/>
                </xsl:call-template>
                </xsl:when>
                <xsl:otherwise>
                <xsl:value-of select="$input"/>
                </xsl:otherwise>
                </xsl:choose>
                </xsl:template>

                <xsl:template name="ReplaceUCWithHTML">
                <xsl:param name="input" select="''"/>
                <xsl:choose>
                <xsl:when test="$input!=''">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string">
                <xsl:call-template name="Replace">
                <xsl:with-param name="string" select="$input"/>
                <xsl:with-param name="pattern" select="'À'"/>
                <xsl:with-param name="replacement" select="'&Agrave;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'Á'"/>
                <xsl:with-param name="replacement" select="'&Aacute;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'Â'"/>
                <xsl:with-param name="replacement" select="'&Acirc;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'È'"/>
                <xsl:with-param name="replacement" select="'&Egrave;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'É'"/>
                <xsl:with-param name="replacement" select="'&Eacute;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'Ê'"/>
                <xsl:with-param name="replacement" select="'&Ecirc;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'Ì'"/>
                <xsl:with-param name="replacement" select="'&Igrave;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'Í'"/>
                <xsl:with-param name="replacement" select="'&Iacute;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'Î'"/>
                <xsl:with-param name="replacement" select="'&Icirc;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'Ò'"/>
                <xsl:with-param name="replacement" select="'&Ograve;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'Ó'"/>
                <xsl:with-param name="replacement" select="'&Oacute;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'Ô'"/>
                <xsl:with-param name="replacement" select="'&Ocirc;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'Ù'"/>
                <xsl:with-param name="replacement" select="'&Ugrave;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'Ú'"/>
                <xsl:with-param name="replacement" select="'&Uacute;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'Û'"/>
                <xsl:with-param name="replacement" select="'&Ucirc;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'Ý'"/>
                <xsl:with-param name="replacement" select="'&Yacute;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'Œ'"/>
                <xsl:with-param name="replacement" select="'&OElig;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'Ç'"/>
                <xsl:with-param name="replacement" select="'&Ccedil;'"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'&NBSP;'"/>
                <xsl:with-param name="replacement" select="' '"/>
                </xsl:call-template>
                </xsl:with-param>
                <xsl:with-param name="pattern" select="'&SHY;'"/>
                <xsl:with-param name="replacement" select="' '"/>
                </xsl:call-template>
                </xsl:when>
                <xsl:otherwise>
                <xsl:value-of select="$input"/>
                </xsl:otherwise>
                </xsl:choose>
                </xsl:template>

                Posted by m.david at 12:25 AM | Comments (2) | TrackBack

                November 28, 2005

                OPML, Let Me Count The Ways I Love Thee...

                Building Valid Atom and OPML Is Hard (and It Shouldn't Be)

                Let's see, theres.. no, not that.

                Oh, and there's... oh HELL NO! Definitely not that.

                ---
                [quick-update: see footone one]
                ---

                Huh. I guess that means:

                OPML SUCKS! SUCKS!!!! SUCKS!!!!! SUCKKKKKKKKKKKKKKKKKKKKKSSSSSSSSSSSSSSSSSS!!!!!

                Did I mention OPML SUCKS!?

                I HATE OPML!!!!!!!(I promise, don't ask me how I really feel as I am actually holding myself back at the moment believe it or not. And no, I have no intentions of following this up with a "OK, I was just trying to get a response from the community. This is it. OPML SUCKS!)

                Why do we use it? Is there an OPML format that validates and can be accepted anywhere that accepts spec conforming OPML? What does spec conforming OPML look like? And who's idea was it to embed the positioning crap into the "header" of an OPML file? Does separation of data/content and layout ring a bell to anyone?

                I tell ya, I'm about on the verge to tell you how I really feel but I'm going to hold back and let DonXML chime in for now:

                I’ve mentioned the borked OPML Editor back when I released my OPML. The OPML site would seem the place to go to read the current spec, but Dave Winer’s OPML Editor creates OPML 1.1, but public spec is 1.0, and a spec for 1.1 is nowhere to be found. My OPML file was created with Dave’s tool, but does not validate when run thru the OPML Validator (which validates 1.0 only). So, Robert, how can you expect Bloglines and Newsgator to comply with a “spec” that is only buried in a tool? And even if the public spec was up to date, try reading the spec without looking at the example files. Go on, I’ll wait. Now try to tell me that you can create a valid OPML doc. Unless you have written OPML before, or have seen what Dave expects, you’ll be hard pressed to do it right the first 1000’s times. Odds are you will give up and take a look at what others are producing, and make yours look like theirs. That’s not a spec, that is cut and paste. And to make matters worse, OPML doesn’t use namespaces (that’s a known Dave issue, but the average XML developer might not know that).

                So a few weeks back Uche took it upon himself to pull a bunch of people into the Atom IRC channel to discuss what to use instead. His conclusion:

                XBEL.

                Now there's a format that makes sense. Good spec. Good support. Make sense. And "text" refers to NODES, not ATTRIBUTES, like it should.

                I don't know about you, but if given a choice between a recommendation offered up by Uche and ANYBODY else who offers up OPML as a solution...

                Actually, I would go with Uche's advice over somebody suggesting anything else for that matter. That's how much I respect Uche and any advice he might give. So that should pretty much sum up who I would go with if that person was suggesting OPML as the solution.

                I'll leave it there for now. But each and every time I encounter a situation where I have to deal with some form of OPML its only going to fuel the fire and... well, I'll wait until that happens until blowing my cap again. My desire is not to piss people of with random fits of tirade. But this isn't a tirade against a spec thats difficult to read, but in the end everything turns out to be OK as you can eventually figure it out, or look at a good example, create and XML Schema or RNG file for validation, and be done with it. How do you create a XML Schema or RNG file against 20 or so variations of the same "spec". Thats the point. There's simply know way to be sure what format the OPML you encounter will look like, no namespace to utilize as a way to determine thats its even some form of OPML in the first place, no consistent versioning that can at least send a hit your direction, so instead you have to try built transformation files that try to second guess what to do with each element, attribute, etc..., which sometimes requires rebuilding the tree, and reprocessing it which, in XSLT 1.0, requires a node-set() function of some sort which means is not cross platform... I could go on, but I think this is MORE than plenty...

                I will say that this is just nonsense. Propagating a crappy spec with no fundamental XML-based qualities to speak of is just flat out nonsense.


                [1] : If wondering why this little mini-rant its because I have been recently (like within the last 12 hours) making an attempt to write about this in the client-side XML book... its been one of those topics where you get so frustrated by trying to not only make sense of an XML data format that doesn't make sense, but then try to explain in words how to make sense of it to a fairly broad spectrum of potential readers. Its the third time I've come back to it(and its holding up an important chapter which currently has a big phat hole in it in regards to importing bookmarked Atom and/or RSS x.x data feeds to then index them, cache them, store various pieces in cookies for later comparison against the return value of a HTTP HEAD and potentially GET request to determine what, if anything is new(which reminds me... its so simple to write server side code that can create an MD5HASH of a file for later comparison, or even a simple script that can diff a cached version of file when that file changes and use this to determine if what the client has is the same as the client side file, and if no, return only the diff between the two (in a well formed Atom or RSS file). Shouldnt we just do that? Anyway)... hard to do when you are trying to write transformation files that adapt to who knows how many "versions"(read: interpretations) of the OPML spec exist in the wild) and after readining Don's post I decided to express my true feelings and then simply hope and pray that Simon can see my viewpoint and allow me to focus on either raw Atom or XBEL, or whatever else he feels is best. I fear that I may have to suck it up and just go with it, but we'll. If this turns out to be the case I promise I will do my best to cover it without opinionated smut... but its hard, so I guess we'll just wait and see.

                So now you know :)]

                Posted by m.david at 08:22 PM | Comments (0) | TrackBack

                Follow-up to 'OOP Ain't Agile' Post : OK, So Maybe I Stretched Things Just A Tad

                As I made apparent in my follow-up comments to this post, I kinda, sorta pushed the "OOP isn't agile" a bit further than is actually the case. I did this for two reasons.

                1 - To drive home the point that functional and dynamic languages are by their very nature agile and test driven.
                2 - To try and fish for comments from folks who normally wouldn't comment except to contend against something that was blatantly absurd.

                Sorry. Won't EVER happen again ;-) [fingers we're most definitely crossed when I typed this... made for some interesting typing I should add :D]

                I have copied over comments from Jez, Scott Bellware, [insert: and Joe], both all of which added some fantastic insite and understanding to the conversation. Beyond thanking them both all for taking the time to comment I plan to leave things as is and let both all of their follow-ups speak for themselves.

                Comments below:

                Update: I forgot about Joe's comments(sorry Joe!). I have added them below as well.

                Scott Bellware:

                I think you’ll find that more advanced TDD practice achieves the atomic values that you expressed an appreciation for. To wit, TDD in an OO language is all about using OO in a more atomic fashion and driving more atomic and recomposable designs.

                Most of TDD design work drives at the heart of the reduction of cyclomatic complexity and the reduction of execution path depth as well as the introduction of a greater degree of loose coupling as supported by interaction testing through mocks and dependency injection.

                To refute Agile’s importance to OO, you’d have to refute TDD’s place in Agile, and quite possibly Martin Fowler’s book on refactoring as well as Joshua Kerievsky’s Refactoring to Patterns book as key Agile texts.

                I would personally agree with you that Agile isn’t only applicable to OO, but because OO is prevalent right now in the Agile community, much of the tactical Agile implementation practices have been built to support OO.

                It will be interesting to see what comes of the forays into functional programming at Microsoft. And yes, LINQ and C# 3.0 subsumes C-Omega.

                Jez:

                OK, I was trying to needle you a bit. I was also about to go to bed.

                In your follow up, you’ve largely made my point for me.

                Your opening statement was that agility and OOP were polar opposites - north and south, up and down, hot and cold.

                You’ve moderated not to OOP can be agile, which is fine with me. I take your point that some languages are more friendly, can I put it like that, to agile development. However, programming in Scheme, say, doesn’t automatically mean that someone is “doing” agile development. Do I because agile when I put down my C++ compiler and pick up Saxon8? When you move from XQuery to Java does the way you work suddenly change?

                Agile development is about process, in the widest sense. It’s about your mindset. As a programmer, every decision you take is a design decision and affects, in some way, the finished piece of work. You’re an agile programmer, not a programmer who uses an agile language. Tools and languages can help you, but they can’t make you.

                If the trend you detect toward functional languages in C# plays out as you suspect, then perhaps we will have a big pile of better tools. And that’ll be great, and hopefully we’ll be able to more, more quickly. It won’t automatically makes every programmer an agile programmer, though.

                As an aside, I’m not really qualified to comment on traditional OOP languages are not dynamic languages, but I suspect there’s an army of Smalltalkers who’d disagree :)


                Joe:

                If OOP isn’t agile, what is — procedural programming? Seat-of-the-pants hacking? Punch cards? Don’t mix speed with agility. Building up something fast and changing it fast doesn’t necessarily mean it’s agile.
                Heck, just about any codebase is agile at first based solely on it’s size. But as the codebase grows, OOP and a good IDE will help keep you agile. Have you ever used a good OOP IDE with refactoring tools?

                Posted by m.david at 08:50 AM | Comments (4) | TrackBack

                November 25, 2005

                Let It Snow, Let It Snow, Let It Snow...

                AccuWeather.com - Salt Lake City, UT Watches and Warnings

                THE NATIONAL WEATHER SERVICE IN SALT LAKE CITY HAS ISSUED A HEAVY SNOW WARNING...WHICH IS IN EFFECT FROM 6 PM THIS EVENING TO 12 PM MST SUNDAY. THIS WARNING COVERS ALL THE MOUNTAINS OF UTAH NORTH OF ABOUT BEAVER AND THE WASATCH MOUNTAIN VALLEYS. THE WINTER STORM WATCH FOR THESE AREAS IS NO LONGER IN EFFECT.

                A STRONG COLD FRONT WILL MOVE ACROSS UTAH SATURDAY. AHEAD OF THE
                FRONT...RAIN AND SNOW WILL DEVELOP IN THE MOUNTAINS THIS EVENING
                CHANGING TO ALL SNOW DURING THE NIGHT. THE SNOW WILL THEN
                CONTINUE...HEAVY AT TIMES...ACROSS THE NORTHERN AND CENTRAL UTAH
                MOUNTAINS AND MOUNTAIN VALLEYS THROUGH SATURDAY AND SATURDAY
                NIGHT THEN TAPER OFF SUNDAY.

                ACCUMULATION OF 10-20 INCHES IS EXPECTED IN THE MOUNTAINS OF CENTRAL
                AND NORTHERN UTAH BY SUNDAY MORNING...WITH 6-12 INCHES IN THE
                WASATCH MOUNTAIN VALLEYS. LAKE EFFECT SNOW SHOWERS ARE ALSO EXPECTED
                SATURDAY NIGHT AND SUNDAY MORNING...WHICH WILL ADD TO THE SNOW
                AMOUNTS SOUTH AND EAST OF THE GREAT SALT LAKE...POSSIBLY BY QUITE
                A BIT.

                Bring on the Chowda' BABY!!!! WOOOHOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!!!! :D

                Posted by m.david at 11:49 PM | Comments (0) | TrackBack

                Saxon-B 8.6.1, Saxon-SA 8.6.1, and Saxon 6.5.5 Now Available

                SourceForge.net: saxon-help

                From the above link to Dr. Kays post to the Saxon-help mailing list earlier today:

                I have published three maintenance releases this morning:

                Saxon-B 8.6.1 http://sourceforge.net/project/showfiles.php?group_id=29872

                Saxon-SA 8.6.1 http://www.saxonica.com/download/saxonsa8-6-1.zip

                Saxon 6.5.5 http://sourceforge.net/project/showfiles.php?group_id=29872

                Michael Kay
                http://www.saxonica.com/

                Posted by m.david at 05:44 AM | Comments (0) | TrackBack

                A Holiday Wish To You All

                In driving home from Thanksgiving festivities with my family here in Utah, the following statement popped into my head for some reason and I thought I would quickly share it with you:

                Geeks Don't Dream

                We Imagine, We Believe;

                And Then We Achieve

                To those of you who feel there is simply no chance of happiness in your holiday season, just try and do this one thing that follows below, and then do your best to remember that the space that is currently occupied by tonights darkness will tomorrow be occupied by Light from the Son(sic).

                That one thing?

                Believe in Something.

                Happy Holidays to you all :)

                Oh, and BTW...

                You don't have to believe in God for the last sentence in the above parapgraph to have meaning. Son and Sun can quite easily be interchanged; Either way and whichever way you believe, the light from tomorrow's Sun/Son will make itself known to all of us, and it will do so in a way that makes the most sense to each of us as an individual. This is the wonderful thing about Freedom and Choice:

                We get to make those determinations on our own.

                Not everyone in this world has such luxury, and in fact there could very well be more that don't have that luxury, than do.

                If you are one of the lucky ones(and I count myself most definitely amongst the lucky ones), don't ever forget just how lucky you are to have what you have. Please don't ever disrespect those in whom have given their life such that you can live in the world that you do.

                They believed in something.

                Shouldn't you believe in something too?

                Posted by m.david at 12:11 AM | Comments (0) | TrackBack

                November 23, 2005

                Batik Project(Apache SVG Library) Now Available On .NET Platform?

                Kurt asked me a while back if I wouldn't mind looking into the possibility of recompiling Batik, Apache SVG Library project, using IKVM(ikvmc.exe to be more precise) to then, of course, be made available for the .NET platform. My last attempt was probably 6 months ago and there were several problems that I ran into that seemed large enough to discourage trying to make any attempt at hacking together a fix.

                However, in looking through the latest change log from the latest IKVM 0.22 release I noticed this entry:

                Fixed bug 1310397.

                Which if you visit the link you will see the following summary:

                ---
                Exception compiling Crimson.jar
                I'd like to be able to use Batik, the Apache SVG
                implementation, in .NET. batik.jar compiles without
                error however realised that it is necessary to compile
                Crimson for any application to run as this library is used
                to parse svg (xml) documents. As you will know,
                Crimson is provided as part of the Java runtime but is
                available from the Apache site.

                Compiling this jar generates:

                InvalidOperationException: Type must be declared
                abstract if any of its methods are abstract.

                I'm submitting this issue for your review based on the
                you blog comment that if it can be dne in java...

                Best wishes

                Bill Seddon
                ---

                Given the fact that the bug is now fixed and the trouble ticket closed, I wonder if this will be enough to allow both Crimson and Batik to compile correctly and as such become available to .NET developers?

                That would be sweet! I will make an attempt and see what happens. I'll post back the results here in a bit.

                [UPDATE: Just noticed on the System Requirements page for Batik that:

                Java Virtual Machine A Java 1.3 or greater compatible virtual machine must be present.

                Which means that, technically speaking, the Java Language Conversion Assistant 3.0 (which supposedly will convert a Java language project based on J2EE <= 1.3 although I have had some wierd results that suggest otherwise) could also be a possibility. Not that this is all that crucial given the work of the SVG# project that I posted a link to last two days ago. But having several options to play with certainly can't hurt and could even help given that they are both open source and could easily utilize the generated code-base to fill in any holes temporarily while a more rock-solid platform is built based on pure .NET FCL programming.]

                [UPDATE: While things seem possible there are so many external dependency warnings that have pushed me to the point of wanting to build each piece of Batik from source such that I can gain a much better feel for what's needed and what is not. While its something I would like to do, its not something I have time for at the moment and as such have added to my list of "Cool things to look into as time permits." If and whent it does, I will look deeper into this, unless of course somebody else get's this up and running before then. If that happens to be the case and any of you hear/know about it, would you mind leaving a comment? Thanks!]

                Posted by m.david at 08:07 AM | Comments (0) | TrackBack

                IKVM 0.22 RC1 Now Available

                IKVM.NET Weblog

                It took a little longer than usual, but I finally managed to put together rc1 of IKVM 0.22 based on GNU Classpath 0.19. For the first time, this release also includes binaries built from the GNU Classpath generics branch. Many thanks to Andrew John Hughes for doing the work that makes this possible.

                This is actually old news as Jeroen posted this over a week ago. However, I was just about to sit down and put some work into the latest Saxon.NET bits based on Saxon 8.6 (another post I missed from the beginning of the month -- yikes!) and in doing so checked to see what the latest news on the IKVM front happened to be. The above linked post is the latest :)

                Posted by m.david at 07:51 AM | Comments (0) | TrackBack

                Is The Agile Development Community Barking At The Wrong "Big Dog On Campus"?

                [UPDATE: OK, this graphic speaks VOLUMES:

                badrating1.gif

                So does this entry(where this graphic was pointed out... click the image to view the article that it came from) where you can also find the following two comments:

                Scott Bellware(contains lots of references to other bloggers and what they had to say): "Rather than shape up Visual Studio to be amenable to Test-Driven Development, and in its ignorance of the nature of Test-Driven Development, Microsoft’s marketing people have simply tried to snow job the developer community into swallowing a wholly different definition of Test-Driven Development. And the very text outlining Microsoft’s understanding of Test-Driven Development betrays its almost complete ignorance of why Test-Driven Development is effective and why it is practiced in the way that it is. So, this is for the folks at MSDN. Listen up… you’ve already embarrassed yourself once, and you’ve embarrassed your insider and MVP communities by association this time as well..
                Larkware: "Microsoft really needs to do a couple of things here. First, they need to yank the offending content from MSDN before any more people notice how stupid they look. Second, some of the more prominent Microsoft agile bloggers need to step up to the plate to explain what they're doing to evangelize within the company so that this sort of thing is less likely to happen again in the future. "

                Hey Microsoft, forget what I said in this post... you need to fix this NOW! or your going to start losing more than just your most valuable employees, but also your Most Valuable Professionals as well. Don't fix this and, like this graphic, it will speak volumes as to just how valuable you regard the feedback of both your MVP's as well as without a doubt the most valuable resource you still have left: Your development community. Clock's a tickin']

                Scott Bellware [MVP] : Microsoft Takes it on the Chin Over Test-Driven Development

                On Test-Driven Development and Agile, Microsoft seems to have has lost its way, lost its courage, and lost its ability to innovate. The exodus of Microsoft’s brain trust is just one facet of the current sorry state of affairs of the occupation of its once fertile territories by an army of self-perpetuating, mindless, marketing zombies who are completely cut off from contemporary software tool requirements and are feeding product development with regurgitated goals from product usability tests of days gone by.

                This is an interesting post, and I'm not going to contend the points that Scott has brought to the surface. Getting the entire definition, focus, and point of Test Driven Development this far off and out of focus is ridiculous. Microsoft needs to fix this and fix this fast!

                But this brings up an opportunity to point out what to me as well as many others in whom I have the pleasure to work with seems so blatantly obvious:

                What does Agile Development and OOP have to do with each other?

                Answer:

                NOTHING!

                Agility and OOP are polar opposites. Why are we spending our time worrying about teaching newcomers to OOP how to properly build applications using Object-Oriented coding methodologies when, if we are doing what we SHOULD be doing, should instead focus our time on promoting programming paradigms that at there very core are agile.

                First off, just to be sure we are all on the same page, according to Merriam-Webster agile means:

                ---
                Main Entry: ag·ile
                Pronunciation: 'a-j&l, -"jIl
                Function: adjective
                Etymology: Middle French, from Latin agilis, from agere to drive, act -- more at AGENT
                1 : marked by ready ability to move with quick easy grace
                2 : having a quick resourceful and adaptable character
                - ag·ile·ly /-j&(l)-lE, -"jI(l)-lE/ adverb
                ---

                With this in mind, again I ask:

                What does Agile Development and OOP have to do with each other?

                Answer: See same question and answer from above.

                OOP is, for the most part, a great way to make your code base extensible, while at the same time inheriting all of the capabilities of the underlying objectified hierarchy. This is both good and appealing.

                But doesnt the very foundation in which OOP is built upon, often refered to as "The Three Pillar's of OOP" suggest everything BUT agility?

                When I think of the ability to adapt, I don't think of of a Pillar, I think of something much smaller, much more basic, but ultimately the most important particle that in turn gives substance for a Pillar to be formed in the first place.

                What is it that I think of:

                An Atom. (can anybody see where I am going with this? :)

                In both nature and in computing, Atom's are the foundation of true and pure agility. An Atom can be used to build anything and everything, which in my book is EXACTLY what agility is all about:

                The ability to adapt.

                Just and idea, but instead of focusing our time on pushing OOP in directions it has no ability to ADAPT to, why not instead focus on functional and dynamic programming languages that by their very nature are adaptive. Functional and dynamic languages can easily be used to teach Adaptive Development methodologies without making the students we are teaching desirous to rip out the very foundation of the hair follicles from the frustrations of attempting to build agile software with non-agile development methodologies and languages.

                Now with this in mind lets now focus on what Microsoft it doing right in the field of Agile Development.

                To do this lets quickly look at three individuals (there's quite a few more than this, my apologies to those of you who I didn't include, but for sake of brevity I am focusing on the core individuals behind the development and drive towards a more agile development platform):

                Erik Meijer
                Anders Hejlsberg
                Don Box

                What are these three folks working on in an attempt to bring a more agile development world to the CLI(.NET Platform)?

                COmega

                Linq, XLinq, and DLinq

                Scheme

                To be fair, Linq, XLinq, and DLinq incorporate a lot of what COmega is all about, and to be honest I have no idea if COmega has now been swallowed up in these three technologies, or if it will continue on as the primary "research language", testing out new ideas and development methodologies as the years continue (anybody know the answer to this?)

                But how does Scheme play into this? Read this post to gain a greater understanding, which ultimate leads to Don Box's recent post, "Scheme is Love" which was later followed up by "More on Scheme."

                So whats my point?

                Last year at Chris Sell's Applied XML Dev-Con after a brief "audience participation" poll regarding XQuery and XSLT 2.0, Chris Sell's said kind of outloud and kind of under his breath "It really doesn't matter as in ten years we're all going to be programming in Lisp anyway" which, for those who were unfamiliar with Lisp would have taken it as a joke and just as quickly forgot he even said it.

                But I didn't forget. Nor did I take it as a joke. Chris Sell's (for those of you who don't know(BTW... If you don't know who Chris is you really ought to be ashamed of yourself... REPENT!)) is someone who is VERY close to the development heart of Microsoft. Do you think he might know something that we don't(besides the obvious given his "Legends of Software Development" status)? Yeah, I bet he knows A LOT of things we don't know. Do you think that Don and Chris might be slowly but surely prepping the development community for a time when, as Chris predicted, we will all be developing in Lisp or derivatives like Scheme?

                Now, lets take it back a few notches and recognize that as great as Lisp and Scheme are, not everyone is LITERALLY going to be programming in these languages. But I can guarantee you that with the direction that Erik Meijer and Anders Hejlsberg are taking the C# programming language, encapsulating much of what the Haskell (Functional) programming language is all about, there will be very little difference between Lisp, Scheme, Haskell, and C# in or about the same 10 year time frame that Chris predicted.

                I've mentioned this before, but I will quickly point it out for those of you who might be unaware. Since its very first release the .NET platform has shipped with 'clisp' as a demo/sample for tool developers. Depending on whether you chose the default installation location for the SDK this can usually be found at:

                C:\Program Files\Microsoft.NET\SDK\v1.1\Tool Developers Guide\Samples\clisp

                As I stated in the linked post from above, do you think thats an accident?

                No, it's not.

                Do you think its just possible that Microsoft is preparing for a development future with Agile Development at the core of its focus?

                Yeah, I think they are.

                Like I state in the title:

                Is The Agile Development Community Barking At The Wrong "Big Dog On Campus"?

                My own answer to this is a most resounding YES, they are!

                What "Big Dog On Campus" should they be barking at?

                If they are making OOP the heart of their Agile Development focus, the Big Dog they should be barking at is themselves.

                Posted by m.david at 03:41 AM | Comments (7) | TrackBack

                November 22, 2005

                Index of Bob DuCharme's Transforming XML Columns Now Available

                I just heard word from Bob DuCharme, one of the true "Legends of the XSLT Community", that he has created an index to all of his "Transforming XML" Columns from XML.com. You can find this index here.

                Bob has been writing this column for quite some time and the wealth of information that is available to the XSLT developer is truly remarkable. I have been reading and learning from Bob's column for many years, and I know I'm not the only one. I would definitely bookmark this page and add it to your standard list of reference material for both XSLT 1.0, 2.0, and XPath 1.0 and 2.0. Truly great stuff!

                I am also about to add it to the list of resources in the left hand column of this site so if nothing else you can always access it from there as well.

                Thanks for the info Bob! I've definitely got this page bookmarked and plan to reference it often. :)

                Posted by m.david at 11:55 PM | Comments (0) | TrackBack

                SharpVectorGraphics (aka SVG#) releases 0.4 alpha

                SourceForge.net: SharpVectorGraphics (aka SVG#) releases 0.4 alpha

                Just noticed this post regarding the SVG# project in which is spearheaded by several of my "partners in (legal)Hacking Crimes" in Jeff Rafter(also co-developer along with Karl Waclawek of the SAX.NET project(not to be confused with Saxon.NET, although I doubt much any of you were all that confused)) and DonXML(speaking of Saxon.NET... :)... I had heard rumor from both these folks that something was in the pipeline and, sure enough, here it is.

                SharpVectorGraphics (aka SVG#), the C# SVG implementation has released a new alpha version available at https://sourceforge.net/project/showfiles.php?group_id=46621. Some of the new features and enhancements from v0.3.1 include: Interactivity Events Rendering Updates Rendering to HDC Scripting Source Code Reorganization Improved <use> support Improved Coordinate Handling *Warning: This project now contains unsafe code blocks to support image transparency and hit testing, additionally, security models for scripting support is still under development. This release is fairly complete for single-pass rendering, however scripting and interactivity updates will demonstrate bugs in masking and invalidation. Please give it a try and report findings to the svgdomcsharp-developers mailing list on the https://sourceforge.net/projects/svgdomcsharp/

                I've come to expect nothing but greatness from the likes of these guys, and yet again and as always, they've delivered.

                Excellent work guys!

                Posted by m.david at 03:36 AM | Comments (0) | TrackBack

                November 21, 2005

                Kurt's XML Conference Presentation Is Now Online

                Just got done with an IM conversation with Kurt in which he had me test that his presentation slides from XML 2005 were working correctly in Firefox 1.5. They are, so you may want to check them out if you havent had a chance yet...

                NOTE: If wondering why he did'nt just check himself... Given his role he builds his instance from source, so there's no way of really knowing for sure if what you see is the same thing he intended for you to see without gaining validation as such from external sources.

                Also, given that IE doesn't support the XHTML content-type or the proper XML binding language used for his presentation you need to use Firefox 1.5 to be able to view the slides.

                Posted by m.david at 07:26 PM | Comments (0) | TrackBack

                Sylvain's Blogging XForms

                XForms

                I'll be the first to admit that it's taking me a lot longer than I had planned to get going with XMLBlog.NET, XQueryBlog.com, XFormsBlog.com, and XPathBlog.com. I still plan to, but have set them aside(with basically everything else except a few items I work on to help clear my head) until after both books have gone to press(Q: Does the tech-book industry say "GTP'd" in the same way the software industry states "RTM'd" or do they use "RTM'd" as well... No worries, guess I'll find out soon enough :)

                In the mean time, Sylvain Hellegouarch is starting to blog his experiences with XForms at http://sh.xformsblog.com. Excellent!

                For those of you who do not know Sylvain(repent of your evil ways!) you will learn soon enough that he is an incredible software developer with a high level of enthusiasm that has a tendency to put a smile on your face when you read his thoughts, ideas, and in particular his code. Great stuff!

                From his first entry:

                Hello everyone.

                This should be a place for me in the coming weeks to talk about XForms. I have been playing with XForms for a while and I've been quite frustrated about the difficulty to find content about it. There are some books (such as XForms essentials by Micah Dubinko) but overall it's fairly hard to find a place with examples.

                Enjoy!

                Posted by m.david at 03:56 PM | Comments (0) | TrackBack

                November 18, 2005

                IronPython 0.9.5 Now Available

                IronPython: News item

                via yesterdays announcement from the IronPython GotDotNet workspace:

                We’ve just released the latest version of IronPython – 0.9.5. We’re continuing to drive towards full Python 2.4 compatibility with bug fixes and the implementation of more standard built-in types and modules. With these improvements we now pass 8 more tests in the standard CPython regression test suite. At the same time, we’re also improving .NET/Python interoperability with improved support for subclassing from C# classes and a better experience using Python objects in WPF GUIs.

                IronPython 0.9.5 can be downloaded here.

                In addition to this, according to the Miguel de Icaza's recent "Mono Directions" status report(see section labeled 2.0 Support):

                The core is complete enough that the latest versions of IronPython and Nermerle work with it.

                Given that IronPython 0.9.5 was released yesterday and Miguel's report was from a week or so back I can't say for sure if this statement is still true. If anybody happens to know the answer to this and wouldn't mind leaving a comment it would be much appreciated.

                Enjoy!

                Posted by m.david at 08:33 PM | Comments (0) | TrackBack

                JScript Add-in for Mono-Develop

                Cesar Lopez Nataren�s weblog

                Came back for lunch and noticed this entry on the Monologue(syndicated site of Mono-hackers) site:

                Evan Briones just sent me a screenshot showing his brand new JScript's add-in for MonoDevelop; check it out:

                He offered the help at #mjs on the weekend and two days later he showed me that, yeah!

                Very slick!

                Posted by m.david at 07:58 PM | Comments (0) | TrackBack

                Offline Today, At Salt Lake City Library Playing Catch-Up

                I'm heading off to the Downtown Salt Lake City Library here in a bit such that I can avoid distraction and get caught up on book-related matters... If you send any correspondence it will be after 9 p.m. MST before I am able to respond.

                BTW... Here's a few pic's of the Downtown SLC Library -- truly a spectacle both in person and in pic's:

                [NOTE: All photographs Copyright Timothy Hursley.]

                slc-library.jpg

                slc-library-interior-commons-2.jpg

                slc-library-interior-commons.jpg

                Posted by m.david at 03:48 PM | Comments (0) | TrackBack

                Like It Or Not, Web 2.0 Is Here and It's Here To Stay

                Venture Capital: A new breed of Internet startups is here

                Ask any bonafied hacker what he thinks of the term "Web 2.0" and I doubt much that the word "positive" will be found next to the word "response" if you were later asked to describe the response you were given.

                Well, as it usually does, fate has gone and taken a back-hand to the face of each of us, putting us in our place and showcasing to the world why you will rarely find a good hacker serving a term as a marketing professional at any given XYZ Software Company -- Like oil and water, really... oil and water.

                From one of my hometown newspaper's (Seattle P.I.) come's the above linked article which start's off with:

                The latest buzzword in the technology industry can be a little tough to define. Interactive Web sites that tap the knowledge of users? Collaborative technologies for small teams? Software delivered over the Internet as a service?

                Well, at least it can be said that we gave a solid effort at derailing the Web 2.0 Express... and when you can't beat 'em(marketers) join 'em(their cliche' marketing terms)...[1]

                "All aboard'!"

                [1] Did I just use a cliche' marketing term to describe the act of joining up with a cliche' marketing term.... blahhhh!!! I feel so dirty... blllluuuckk... I'm taking a shower.

                Posted by m.david at 02:34 PM | Comments (0) | TrackBack

                Ray Ozzie's Blogging (again)

                Blog

                via Dare Obasanjo's recent piece I learned that Ray Ozzie is back at it again in regards to blogging. From Ray's MSN Spaces blog he starts his first entry with:

                When I first began blogging back in August of 2002, I explained that I was doing so to learn more about the nature of the link-centered medium, and that blogging might represent a new and more effective model of interaction in the "public space".

                As Microsoft's CTO who will oversee the technical direction and subsequent activitees in regards to their software-based strategies, keeping "in touch" with Microsoft via this space is probably not such a bad idea. Subscribed.

                Posted by m.david at 01:52 PM | Comments (0) | TrackBack

                November 16, 2005

                IRC'd by Atom

                Copia

                Hey, if you can come up with a better title, I will happily change it... in the mean time it's stayin' right where it's at... :>D

                John L Clark and I separately needed a place to hang out and discuss Atom. The Atom Wikis talk of "#atom on freenode IRC network", but that channel was empty when John and I separately checked. In the hopes of reviving such a useful forum he and I now stay logged on there. If you're interested in Atom, consider joining us. I'm currently working on several Atom projects, both billable and non-billable, so I expect I'll be knee-deep on the format, and maybe the protocol, for a while.

                I guess since, technically speaking, one of the projects Uche could be refering to is LLUP (doesn't have to be Atom-based, but all of the work done thus far is Atom-based so, for now anyway, its Atom-based) I guess that means I best get my a$$ on over to Atom IRC channel...

                Maybe you should head on over to? If yes, guess I'll see ya there... (although I seem to be having a connection problem... probably a blocked port... I'll be there soon enough, you go on ahead without me, I'll catch up :D

                Oh, BTW... Sylvain has been developing several cool CherryPy-based sample apps to help newbies get started with the CherryPy framework, one of which, opkee!, happens to be a blogging tool with a focus towards the Atom syndication format. The other, atomixlib, is built on top of Amara to be a pure Python API for Atom. If Python just so happens to be your cup of tea I would add both of these to your pyPhatLittleApps list.

                Enjoy!

                Posted by m.david at 11:41 AM | Comments (2) | TrackBack

                Announce: XSL training and no-charge UBL to PDF formatting announced at XML'2005 (XSL List)

                While this is obviously more suited for the announcements section of this site, given that the main feed has been pretty much all I have had time to keep up with on any sort of regular basis (something that will change... just not right now.) I figured why stick it all the way to the back of the site when I can fill a bit of the void that exists even on the main feed post's. Besides, given the fact that this is from Mr. G. Ken Holman himself it seems only fitting to bring whatever it is he has to say, offer, or otherwise promote to the very front of the line, as this is a spot that he has obviously MORE than earned...

                As such, I will let his post to XSL-List earlier this morning take it from here(BTW... If you need XSL-FO, XSL-T, and/or overall XML training for you and/or your employees and you simply want the very best there is in North America, you basically have two choices: G. Ken Holman and Craine Softwrights and Mulberry Technologies. There are some other good ones as well, and bringing consultants into the picture theres definitely a few more folks I would need to add to the list (see the main page of this site for just such a list) but in regards to training? There's know one like these guys. When you've been working with XML-like markup languages since the early days of SGML like both of these folks have, it would a bit difficult to try and suggest otherwise:

                ---
                In a XML'2005 poster in Atlanta today, Crane Softwrights Ltd. announced the availability of commercial-grade publishing of UBL instances to PDF format with freely-downloadable components[1].

                Using digitally-signed XSL-FO stylesheet manifests, users of the Universal Business Language 1.0 vocabulary[2] can use the Crane UBL XSLT/XSL-FO stylesheets unchanged to produce quality PDF renderings from UBL XML document instances using the Java-based Ibex Signature Edition XSL-FO processor. There are no charges to download and use these components to produce UN Layout Key renderings of instances of UBL's eight document types.

                Also announced is the scheduling of publicly-subscribed XSL training[3] in Denver Colorado the week of March 13-17, 2006: 3 days hands-on XSLT followed by 2 days hands-on XSL-FO. Discounts are available for early registration and for attending both sessions.

                Please let me know if you should have any questions on either of these announcements.

                . . . . . . . Ken

                [1] Follow the "Free resources" link in the home page noted below.

                [2] The OASIS Universal Business Language (UBL) defines a generic XML interchange format for business documents. UBL is designed to provide a universally understood and recognized commercial syntax for legally binding business documents and to operate within a standard business framework such as ISO 15000 (ebXML) to provide a complete, standards-based infrastructure that can extend the benefits of existing EDI systems to businesses of all sizes. UBL is freely available to everyone without legal encumbrance or licensing fees.

                [3] Follow the event links in the "Announcements" section on the home page noted below.

                cc: UBL-dev, UBL TC, XML Dev, XSL List, Yahoo-XSL-FO, XML-L, XML-Doc

                p.s. sorry for the duplicates to subscribers of multiple lists


                --
                Upcoming XSLT/XSL-FO hands-on courses: Denver,CO March 13-17,2006
                World-wide on-site corporate, govt. & user group XML/XSL training.
                G. Ken Holman mailto:gkholman@CraneSoftwrights.com
                Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
                Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
                Male Cancer Awareness Aug'05 http://www.CraneSoftwrights.com/s/bc
                Legal business disclaimers: http://www.CraneSoftwrights.com/legal

                Posted by m.david at 03:30