• « June 2005 | Main | August 2005 »
  • XSLT:Blog[@author = 'M. David Peterson']/Main: July 2005 Archives
              • July 29, 2005

                via David Megginson | Aspect-Oriented Programming: Believe the hype?

                Quoderat � Aspects

                In a recent post David Megginson writes:

                I’ve decided it’s time to figure out if aspect-oriented programming is worth, well, figuring out.

                A group of us which includes Russ Miles, the resident AOP expert within x2x2x.org, have recently got together to work on several projects, mostly focused towards the development of LLUP. A spawn from one of the conversations has developed and we have found ourselves discussing Aspect-Oriented Programming in regards to Client-side Javascript as well as extensions of our existing AspectXML project. I was playing around with some code the other day which I pulled into a use-case and published to the group for comments. The feedback was good and as such I plan to spend a bit of time this weekend turning the sample into something more useable and then integrate it into the existing AspectXML code base.

                For those who might have interest I have taken the original post and copied it into the extended portion of this post. Hopefully I will have more to add to it soon, but in the mean time maybe this might help get some creative juices flowing within the community. If you have any feedback I would very interested in hearing about it.

                From my original post to the group:


                A quick thought just came to mind of which I decided to quickly test, although I already knew it would work and work well.

                The UseCase:Problem

                In developing a corporate web presence ABCompany is in a constant state of flux in regards to the products the sell/distribute: They’re an online auction site.

                While the auction categories generally tend to stay the same (of course they change often enough to be concerned with developing a fluid linking system for just the categories, not to mention products (brands, models, style, etc..)) the products are in a constant state of flux. Developing a common and logical system that builds from Wiki-styled linking, Wikis are a perfect example of why a constant state of flux can build links and break them all on the same page within a matter of seconds.

                The one constant within an auction site (and a Wiki for that matter) is things are constant-ly changing. When a resource has sold and has a need to be archived or deleted from the system there needs to be a central way of updating all links that point to the old location. Redirects will work but redirects can quickly become out of control from many fronts, especially if a products moves through several stages within the auction life-cycle:

                • Create entry for product,
                • submit and acquire a link,
                • the auction,
                • the auction closes,
                • the item is archived for further research to discover trends and buying habits,
                • the item is deleted from the system

                Keeping even one section in the system, the main directory, up to date with the various changes in location is bad enough. But in addition to the auction services offered you also have a thriving blogging community of members, each in whom will link to various items of interest, add them to a “wish-list” etc… and in doing so you suddenly find that the 404 is the most common line item in your log files as maintaing where a link points to its not something you see many people put too much concern into.

                The UseCase:Solution

                When a product enters the sytem it is given an ID that will never change and will always be accessible via a master product ID database. What suddenly and instantly becomes the obvious solution is to simply create a directory which is equal to the product ID in which a redirect is set to point the visitor to the current location of this product. However, as mentioned, redirects can get out of hand, and while this solution is less prone to recursive-redirect-hell you still need to implement a solution that will continually update all the links within the auction system to the current location of each product in question.

                Simple sample solution: XML file that represents a page to be built (note:this shoud be an atom feed but for simplicity I will simply build a non-specific XML structure to quickly showcase the solution using an AspectXML/JavascriptAO type approach.

                <?xml version="1.0" encoding="UTF-8"?>
                
                <page style="user:blog.entry" xmlns:join="http:/ABCompany/Auctions:JoinPoint">
                    <entry id="123456" title="This Rocks!">
                        Check out this <join:product.CurrentLink id="123widget">new widget</join:product.CurrentLink> on the ABCompany Collectibles section of the auction site. Cool!
                    </entry>
                </page>
                

                XSLTransformation File for processing:

                <?xml version="1.0" encoding="UTF-8"?>
                <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                    xmlns="http://www.w3.org/1999/xhtml"
                    xmlns:join="http:/ABCompany/Auctions:JoinPoint" exclude-result-prefixes="join">
                
                    <xsl:variable name="joinPoints" select="document('./products/products.CurrentLink.xml')/products"/>
                
                    <xsl:output method="xhtml" indent="yes" include-content-type="yes" media-type="text/html"/>
                    <xsl:template match="/">
                        <xsl:apply-templates/>
                    </xsl:template>
                
                    <xsl:template match="page[@style='user:blog.entry']">
                        <xsl:apply-templates />
                    </xsl:template>
                
                    <xsl:template match="entry">
                        <h1><xsl:value-of select="@title"/></h1>
                        <xsl:apply-templates/>
                    </xsl:template>
                
                    <xsl:template match="text()">
                        <xsl:apply-templates/>
                    </xsl:template>
                
                    <xsl:template match="join:product.CurrentLink">
                        <xsl:apply-templates select="$joinPoints//product[@id = current()/@id]"/>
                    </xsl:template>
                
                    <xsl:template match="product">
                        <a onclick="document.location = '{@currentLocation}'; return true;"><xsl:value-of select="."/></a>
                    </xsl:template>
                
                </xsl:stylesheet>
                

                The XML file with the current location information should be obvious so I wont waste the space.

                Please note that I chose to use the onclick event of the “a” tag instead of “href”. This was for a couple of reasons. First, when mixing namespaces within an HTML document its easy to slip up and cause an element which is normally within the html namespace to be bound to something else all together. When this happens, for various reasons the browser should not react to a click event by redirecting to the href value. Interesting to note that it seems the IE is the only browser that properly handles such a situation. None-the-less, to avoid the problem all together and to add to this solution the benefit of using a completely different javascript call (instead of document.location = ‘uri’;) becomes another benefit and and potential join point area to use a resource id to be located within another namespaced reference file to find the proper javascript function to use. Also note that the use of the before, around, and after values of AOP beome all that more valuable when you have a need to build out a joint point that does not have a 1 to 1 element equality. e.g. instead of an “a” element you may instead build out a form with several hidden elements, a text box, and submit button (just an example, not necessarily a good one).


                Comments?

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

                Correction: Atsushi Eno and Mono's System.Xml; Clarification from my previous post

                monogatari

                A while back I posted an entry regarding Atsushi Eno and Mono's System.Xml implementation. As some of you are aware, my time is limited at the moment while I work on a project that is sorta, kinda, still unannounced. As such I havent been able to keep up with as many blogs as I would like to. However, catching up with Atsushi Eno's blog I came across this correction to my post:

                System.Xml code is not mine

                I came across M.David Peterson thinking that I have written all xml code. It is quite incorrect ;-)

                System.Xml - XmlReader and XmlDocument related stuff are originally from Jason Diamond.
                XmlWriter related stuff are from Kral Ferch.
                System.Xml.Schema - Dwivedi, Ajay kumar wrote non-compilation part of them.
                System.Xml.Serialization - Lluis Sanchez rules.
                System.Xml.XPath - Piers Haken implemented most of our XPath engine.
                After that, Ben Maurer restructured the design for XSLT.
                XPathNavigator is Jason Diamond's work.
                System.Xml.Xsl - It is Ben Maurer who wrote most of the code.

                Well, yes, I wrote most of other part than listed above (what remains ? ;-) I am just a grave keeper. And recently Andrew Skiba from Mainsoft is becoming another code hero in sys.xml area, contributing decent test framework and bugfixes in XML parsers and XSLT.

                While my claim that Atsushi Eno's code kicks a$$ still stands, I thought it best that I make notice to the fact that my initial post was in fact incorrect and, as Atsushi has helped clarify, there are many people who deserve credit for its development.

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

                New O'Reilly Connection Site

                O'Reilly Connection


                Just got an invitation from Russ to join his network at O'Reilly Connections. O'Reilly Connections?

                connectionLogo.gif

                We are launching soon. If you have received an invitation, click here.


                Already a member? Sign In!

                Hey, cool! And, of course, my existing O'Reilly account gains me access even though it seems the service hasn't launched yet.

                If you join, ping me (O'Reilly ID: xmlhacker) so I can add you to my contact list.

                Cheers :)

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

                July 28, 2005

                via Andy Nelson | If there ain't proper signage, get rid of the fineage.

                Andy Nelson: If there ain't proper signage, get rid of the fineage.

                I have no idea who Andy Nelson is. But in reading Bill de hÓra's latest post I ended up here which, after clicking through a few "next blog >>" links I came across this post.

                dicks-1.jpg
                dicks.jpg

                The only reason I am posting this is that I know this parking lot well as I used to spend a considerable amount of my life between the Key Arena in Seattle and a couple of the restaraunts and bars that were nearby. Why that is is of no big importance. I just found the post funny. And the fact that I happen to be REALLY familiar with this parking lot made me feel it was worthy of a post.

                Besides, the fact that this kid took Dicks to court and won puts a big phat smile on my face as I know many people who have been victims of the "impound happy" nature of this particular parking lot in Queen Anne. Good on ya' Andy! :D

                If there ain't proper signage, get rid of the fineage.

                On Monday, I went to King County Superior Court to face Dick's in a brutal impound contest hearing. I came prepared with slick documents like the map pictured above and many pictures. I also studied the law pertaining to impounds very carefully (I hope none of you ever have to read any section of the Revised Code of Washington, or RCW).

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

                via W3C News | Last Call: Extensible Stylesheet Language (XSL) Version 1.1

                Archive of W3C News in 2005

                You know, I'm surprised the W3C hasn't found pressure to rename the Extensible Stylesheet Language (XSL) project the Extensible Stylesheet Language for Formatting Objects (XSL-FO) which is what this announcment is all about... XSL = XSL-FO, at least when it comes to the W3C.

                Hopefully the above clears up any confusion the title of this post brought about...

                Last Call: Extensible Stylesheet Language (XSL) Version 1.1

                2005-07-28: The XSL Working Group has released a Last Call Working Draft of the Extensible Stylesheet Language (XSL) Version 1.1. Version 1.1 updates and enhances the XSL 1.0 Recommendation for change marks, indexes, multiple flows, and bookmarks, and extends support for graphics scaling, markers, and page numbers. Comments are invited through 16 September. Read about the XML Activity.

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

                July 26, 2005

                via Brian Ritchie's Blog | Altova offers free XSLT 1.0/2.0 & XQuery Engine

                Altova offers free XSLT 1.0/2.0 & XQuery Engine

                Altova offers free XSLT 1.0/2.0 & XQuery Engine Still waiting for Microsoft to include XQuery & XSLT 2.0 support? Altova makes the same engines that drive its XMLSpy�, MapForce�, and StyleVision� XML development tools available for use in custom applications – free of charge! Sold!

                Anyone had a chance to play with this and get a feel for both feature support and performance?

                Either way, Yet Another XPath 2.0, XSLT 2.0, and XQuery engine that runs natively within a CLI runtime implementation (.NET, Mono, Portable.NET) is all good in my book... Good going Altova :)

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

                July 25, 2005

                Multiboot OSX | Favorite Linux Distro | Windows XP = It could one day be said "Yeah, I own a Mac"

                Jasbone :: Movies, Music and Technoloy

                Multibooting Intel based Macs - A Step-by-step How to Guide Disclaimer: We have read the NDA from Apple and do not see that this violates it. If we are wrong however someone please let us know and we'll happily remove the following. It is NOT or intention to violate this NDA or to make anyone upset. We are only trying to help others in the community by benefiting from the work we have done

                By Ross Carlson and Joel Wampler

                Quick Guide | Full Guide | Install OS X | Install Windows XP | Install CentOS Linux | Drivers

                In this guide we'll take you through installing multiple operating systems on the Intel based Developer Macintosh machine. This guide was put together by Ross Carlson and Joel Wampler to hopefully get you through building a machine that can run every major operating system currently available. This guide takes about 2 hours total. Let's get started...

                You know, this reminds me... I need to post a thankyou to whomever wrote the TracOnWindows Insallation Guide for the 0.8.4 release. That'll be next... in the mean time...

                Imagine there's no hardware

                MacOS can't run on

                Imagine there's no reason

                and if I were to go on...

                Imagine all the people

                Chasing to beat me down....

                Oooooh oooohhh oooooh oooooh OWWWW....

                Damn, that hurt...

                Posted by m.david at 09:32 PM | TrackBack

                Yeah, but can Ya Yodle?

                Push Button Paradise

                Do I Yahoo? I sure do!

                I have accepted a position with Yahoo! Research, beginning August 29. I will be relocating from Phoenix to the Bay Area. I'll be winding up my consulting business, and probably putting lots of my stuff up on Yahoo auctions soon. Stay tuned.

                As per my previous post, Congratulations Micah!

                [NOTE: In case you're wondering why the "Conspiracy Theories" category, no reason, just couldn't find something that fit just right and this seemed like as good as a choice as any that made no real sense... so it became so. :)]

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

                July 24, 2005

                via Planet Mozilla | Skype Wins Over Yet Another Big Client - This Time Its Firefox

                Planet Mozilla

                Mozilla Firefox and Skype integration

                It looks like Mozilla Firefox is gonna get yet another high profile extension. This time it's Skype. While we have no official announcement Nvu developer Daniel Glazman kind of announced the Skyfox extension in his blog today. Who wants a basic Skype integration into Firefox? was all that Daniel Glazman had to say.

                Skype is a little program for making free calls over the internet to anyone else who also has Skype. It's free and easy to download and use, and works with most computers.

                Good on 'em... Skype flat out works.

                In an update to the original post:

                Update: apparently, a lot of people. Ok. Let it be :-)

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

                XSLTAL - Instant XSLT for everyone

                XSLTAL - Instant XSLT for everyone

                XSLTAL - Instant XSLT for everyone

                Date: 2005-07-22

                Christian Stocker, Bitflux GmbH

                ApacheCon 2005, Stuttgart

                If nothing else, it seems interesting... I'm not a Zope user/developer so I am unsure as to what this really means to someone who is... Anyone care to comment?

                [UPDATE: Please see Bertrand Delacretaz comments for a clearer understanding as to what XSLTAL is all about. Thanks Bertrand!]

                Posted by m.david at 06:20 AM | Comments (2) | TrackBack

                via Push Button Paradise | Future note: So I can be sure to not miss the opportunity to congratulate Micah on Monday...

                Push Button Paradise

                Sat, 23 Jul 2005 Lots on my mind right now Busy, busy, productive, productive week. Big news coming on Monday.

                Future note: Congratulation's Micah!

                Stay tuned to Push Button Paradise to discover all the juicy details :)

                Posted by m.david at 03:46 AM | TrackBack

                July 22, 2005

                via IKVM.NET Weblog | version 0.18 of the IKVM.NET Java VM for .NET has been released

                IKVM.NET Weblog - Friday, July 22, 2005

                0.18 Released

                I released 0.18.0.0 to SourceForge.

                Sweet!

                Please access the above link to Jeroen's Weblog to gain access to the download link for this release.

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

                That 'Oh So Secret' Secret I've been talking about... or rather, not talking about would be more accurate

                Actually, I'm still not gonna say anything official yet but by accessing the following link you should be able to take a wild guess and, unless you thought I just said 'Take a Wild Goose', have a pretty good chance of being spot on the money.

                [NOTE:Why would you think I said 'Take a Wild Goose' anyway? I mean who says 'Take a Wild Goose' anymore? In fact, who said it ever?! Oh well, whatever's clever... you get down with yer' bada$$ Wild Goose self ;)

                Could you do it somewhere else though? People are starting to stare.

                thanks :)

                Oh, and if you honestly have no clue what the above link might suggest I will provide another 'hint' soon...

                Posted by m.david at 12:24 PM | Comments (2) | TrackBack

                via BBC News | UN condemns Zimbabwe slum blitz

                BBC NEWS | Africa | UN condemns Zimbabwe slum blitz

                A major UN report has called for an immediate end to Zimbabwe's slum clearance programme, declaring it to be in violation of international law.

                Hundreds of thousands of homes in the country's shanty towns have been torched and bulldozed in recent months.

                But the UN report, to be released in full later on Friday, says the policy is disastrous and inhumane.

                As per my post from a couple of weeks ago its probably obvious why news regarding Zimbabwe is set as one of my notifications keywords. I really don't even know what to say. Its so difficult to grasp that there is a mentality among cultures, governments, and government leaders that allow the people of Zimbabwe and other African nations to live in these kinds of conditions in the first place.

                And now, suddenly, they are "appalled" by the conditions and decide "lets just bulldoze it all down and start over."

                When the only home you have ever known is a shanty can you imagine how awful it must feel to know that even the one thing you could call home is now just a pile of rubble.

                I don't understand the nature of the human psyche. There was a time when I thought understood the general concepts involved with the decisions we make and the things we do and why.

                I was wrong.

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

                via Michael Rys | Interview with Dr. Michael Rys and Tim Anderson Covering XML and XQuery SQL Server 2005 Topics

                Michael Rys : Interviewed by Tim Anderson

                Interviewed by Tim Anderson

                Tim interviewed me as part of the earlier mentioned wireside chats, and has now published the interview on his website ITWriting.com. We talk about data modeling when relational tables support XML datatypes, use cases for XML in the context of database systems, and the XQuery standard timing w.r.t. the SQL release.

                Definitely worth the listen!

                Posted by m.david at 04:53 AM | Comments (0) | TrackBack

                via Oleg Tkachenko | Mvp.Xml v1.1 released. Now including EXSLT.NET module

                Signs on the Sand: Mvp.Xml v1.1 released. Now including EXSLT.NET module

                I've just finished moving EXSLT.NET code into the Mvp.Xml project infrastructure. Now on EXSLT.NET is a module of the Mvp.Xml library, its namespace is Mvp.Xml.Exslt, its license is CPL and its home page is http://mvp-xml.sourceforge.net/exslt. That's pretty much all changes. Go download Mvp.Xml library v1.1, now including EXSLT.NET module in addition to Common, XInclude.NET and XPointer.NET modules.

                My next move will be converting EXSLT.NET module to .NET 2.0. That should be easy.

                Excellent! Thanks Oleg :)

                Please see Oleg's Post for the proper links for the project and download area.

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

                July 21, 2005

                via [xsl] [ANN] oXygen XSLT Editor/Debugger/Profiler 6.1

                Wow... After almost a week I decided I better check my other Gmail account. I can't believe how much I've missed. Why I have missed it will all make much more sense soon. But until then I thought I better post the <oXygen /> 6.1 announcement from George from Two days ago! Sorry about that George!!!

                Anyway, via XML-Dev and XSL-List George Cristian Bina announced the release of version 6.1 of the XML Editor. The announcement from XSL-List (near identical to XML-Dev) is in the extended portion of this post:

                Hi everybody,

                I am glad to announce that a new release of XML Editor, Schema
                Editor and XSLT Editor/Debugger/Profiler, version 6.1 is available from
                http://www.oxygenxml.com

                The new XSLT directly related features are:
                * XSLT Profiler - available from the XSLT Debugger perspective allows to
                collect profiling information with any of the XSLT processor supported
                in the XSLT Debugger (Saxon 8.4 for XSLT 2.0 and Saxon 6.5.4 for XSLT
                1.0 from Saxonica (http://www.saxonica.com) and Xalan 2.5.1 for XSLT 1.0
                from ASF (http://xml.apache.org/xalan-j/). The profiler shows both an
                invocation tree and a hotspots view that allows to quickly identify and
                locate performance problems in your stylesheets.
                * Automatic detection of XSLT parameters - when you configure a
                transformation scenario the available parameters are automatically
                extracted and presented. To add a parameter just select it and specify a
                value.
                * support for the latest Saxon 6.5.4. If you want to get back to Saxon
                6.5.3 just replace the saxon.jar from oXygen libraries folder.

                Other important features added in version 6.1 are:
                * Easy navigation in the XML Schema and Relax NG editors allowing to
                follow a component reference to its definition.
                * In place editing on schema diagrams for both XML Schema and Relax NG
                editors.
                * Enhanced XML Schema documentation to easily generate documentation
                from complex schemas, see for instance the documentation generated for
                the XML Schema for XSLT 2.0:
                http://www.oxygenxml.com/schemaDoc/xsltAndXsd/XSL2.0Schema.xsd.html
                * Relax NG annotation support - the Relax NG annotations are presented
                when the user edits instance documents against a Relax NG schema.
                * Attributes editor that hows both the entered and possible attributes
                in a table view.
                and more.
                The full list of new features and detailed description is available at
                http://www.oxygenxml.com/index.html#new-version

                Best Regards,
                George
                ---------------------------------------------------------------------
                George Cristian Bina
                XML Editor, Schema Editor and XSLT Editor/Debugger
                http://www.oxygenxml.com

                Posted by m.david at 09:57 AM | Comments (0) | TrackBack

                July 20, 2005

                Valid Atom 1.0 MovableType Template if Anybody is in Need of Such an Item

                I hacked the 'author' / 'name' and 'email' child elements and the 'title' element with hardcoded values as I was in a hurry and didn't have time to locate the MovableType keyword that would properly enter these values dynamically. Beyond that (obviously just need to change these values to the proper values for your own weblog) this will produce a valid Atom 1.0 feed as verified through http://www.feedvalidator.org

                When you've updated your feed don't forget to add your name to the KnownAtomFeeds section of the Atom Wiki.

                Code is in a 'textarea' element in the extended portion of this entry.

                Enjoy!

                [UPDATE: In case you find troubles with the text contained below I've also thrown it into a downloadable text file. (UTF-8 encoded)] [UPDATE: It seems that by putting the 'textarea' with the code inside of it makes the feed invalid... I will have to figure out a better way to do that for the future. In the mean time just use the link above to download the file.]

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

                New IKVM.NET RC and Fantastic Explanation of What Makes Up the Content of the IKVM.Gnu.Classpath.dll

                IKVM.NET Weblog - Tuesday, July 19, 2005

                When we started the Saxon.NET project over a year ago there was an interesting opportunity that was found in the IKVM.NET project. The very first offical release I started to work with the 0.8.0.0 release which, if you take a look at the graph that Jeroen has listed in this post you will notice was released on June 28th, 2004 such that it could be packaged and released with the 1.0 release of Mono. The next graph down shows the source code line count of the Gnu Classpath project which at that point in time was 550,000 lines, or half of what it is today.

                Wow, those were fun days of hacking together a working Saxon.NET build :) I'd like to say I miss them, but I prefer the full nights sleep that comes from working with today's code base rather than the every third day's half a night's sleep I think I averaged back then.

                Good times, good times...

                Anyway, from Jeroen's post:

                Assembly File Size

                Yesterday's release candidate has a much smaller IKVM.GNU.Classpath.dll than the previous release candidate. As I noted this is due to some optimizations in the metadata. Let's look at the file size of IKVM.GNU.Classpath.dll over time:

                You can also download the new Release Candidate via the post from the 18th.

                As always, Thanks Jeroen! And adding to this... to everybody who has helped bring the Gnu Classpath project to where it is today... You've got all my love being sent your way right now :D Cheers to you all!

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

                July 18, 2005

                Dear beta.microsoft.com, Since when does filling out my name, physical address, email address (again), primary email address (again?), and my phone number qualify as filling out a survey?

                I guess if your survey was based on how many people would fill out a form in which they:

                - Were fully aware you already had the above information as you have used it (and had it verify it was still correct - or - answer even more questions stuck to the bottom of the form before being able to pass Go (still waiting for my 2 Benji's on that one) many times when asked to use your passport to sign in.

                - Given the above you were still desperate enough to get your hands on whatever beta was being offered that you filled out the form if not with a slight lingering hope that after hitting submit there would actually be some real questions to answer (how sick is that?)

                - or -

                - To save the added support cost that would be incured answering the question "how come my mouse doesn't work like normal and what am I supposed to click anyway?" (this was for Monad, the Microsoft Command Shell (msh) preview) (:QuickNote: btw - all the MacAttackers yacking it up right now because of the obvious slam on Windows users... you use a Mac, what the hell you laughin' at? Do you even know what a command line is - or - better yet, where you can actually find one? No, the address bar of your browser doesn't count as a command line.:) you decided to make people jump through hoops such that natural selection would take place and reduce the number of people who actually would go to the beta site in the first place, to then be turned off by the "survey" further reducing those willing to continue...

                Actually, thats not such a bad tactic... Maybe I should be commending rather than condemning... Hmmm... I'll have to think about it. If you don't hear back it means we're cool. If you do, then you'll know right away we're nothing even close to such a phrase ;) :D

                Oh, for those interested, via Chris Anderson:

                I'm frustrated that the Monad folks still don't "get it" from a stand point of distributing a beta, but if you have a passport account you can get a copy of the beta through http://beta.microsoft.com. Use the guest ID of "mshPDC", select "Microsoft Command Shell", select "Survey" in the left column, and 48 hours later you should get access. Why can't they just make it a link?

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

                Temporary Server Outage

                It seems that my attempt to update one of my servers (Running Suse 9.1, although that will be coming to a swift end here in the next few hours) with the latest Subversion build required an upgrade to the libapr0 library which in turn required that I upgrade to the Apache 2.54 build. Somewhere in this mix somebody didnt like someone else and I found myself with a dead Apache instance although I could start it, stop it, restart it, and everything seemed just fine. But it definitely wouldn't serve any pages so I've spent the last hour and half frantically downgrading everything which, to much my relief, seemed to work just fine.

                None-the-less, the Subversion 1.0 developers build that this server is running is so outdated that I fear incompatibility issues are lurking just around the corner. If I was some sort of Linux guru I'm sure I would happily be able to get things taken care of without resorting to a complete hard drive/database backup to then wipe that drive clean to prepare it for a new installation, this time implementing Fedora Core 4 to compliment the Win2k3 box sitting beside it. What this means to you is that there may be some flickering of the lights over the next few hours but with as much source code as I have foolishly mounted on top of that SVN 1.0 developer build I really can't take any chances. My apologies in advance if you experience difficulties accessing any of the sites hosted on that server over the next few hours (e.g. XSLTWiki, XMLWiki, Kurts UnderstandingXML, my UnderstandingXSLT, weblog.saxondotnet.org, this site, and a few others.)

                Posted by m.david at 06:35 AM | Comments (0) | TrackBack

                July 17, 2005

                XSLT at the Router-level? | Cisco is ready and willing to stand behind it

                Packet Systems News

                Cisco AON supports both XML and non-XML transformation. Cisco AON achieves Extensible Style Language Transformation (XSLT) with the built-in XSLT-based transformation engine using XSLT style sheets written or procured by the customer, allowing any combination of transformations from XML to other XML or non-XML formats, and vice versa.

                This is actually an older news piece but I have been so far behind on keeping up with the XML/XSLT news as of late as the time I had before to do this simply doesn't exist at the moment. This piece caught my eye though and even though its a few weeks old it is still a very relavent topic so I decided to post it anyway.

                In reading through this there are three questions that pop into mind:

                1 - What version of XSLT are they implementing? My guess is 1.0 but there is no mention of version which leaves me wondering.

                2 - If 1.0 and as close as we are to a 2.0 recommended specification to what extent will this limit the developer who is interested in 2.0 features? In other words, in a hardware product designed to last between 5 and 10 years how realistic is it to expect that in 5 years, (much less 10) a developer will simply be content using, at that point, a 10 year-old technology? I guess a software upgrade can always fix the problem but I would first want to see some sort of "this is something we have keen interest in looking at when a recommended specification appears and customer demand becomes apparent." before I would allow myself to get too excited over this product.

                3 - How does this differ and how is this better than hardware acceleration.

                Beyond these three area's of question I have always found the concept of hardware level XML processing something that make's quite a bit of sense. And if I'm not doomed to a world of watching my buddies build XSLT 2.0-based solutions while I continue forward for another 5-10 years in a 1.0 world then I'm definitely down at seeing just what Cisco has to offer in this space.

                The question regarding hardware acceleration still remains and this would definitely be something I would want some hard facts on before making any buying decisions. But Cisco hasn't become the #1 provider or Back-bone Quality Hardware Routers for nothing so my interest in this is definitely still peaked.

                Guess this is a definite space to watch for the next little while to see what may come in regards to answers to the above questions. If I find anything I will surely fill you in...

                Posted by m.david at 06:27 PM | Comments (0) | TrackBack

                What?! I didn't know XML had 'Secret Powers'!

                Integration Developers News

                Apparently I need to pay more attention to this whole "XML" thing because apparently it has some sort of "Secret Powers" which, if I were the "Fantasy Land" video game playing type, would mean I could summon from deep inside something that would kick everybody else's butt before they even had time to say "Uh oh...". But since I'm not that kind of hacker (takes all kinds of hacker type's to make the hacker world go round) I'll take it to mean this is a clever title to an article that basically reminds me that "when in doubt, use XML."

                Good advice if not all together misleading and slightly overstated.

                There's definitely a line where attempting to solve your problem with some sort of combination of XML, XSLT, XPath, and/or XQuery is definitely not the right thing to do. But there are a lot of good uses for XML that many of us still may not be using it for. This article covers five of them.

                Tips for Unlocking XML’s Secret Powers 7/15/2005 | Print Version

                by Vance McCarthy
                A growing number of devs are finding benefits in learning hands-on XML skills. For example, devs at Quadrix Solutions have found that the more devs know about XML, they have in their hands the best "applications glue" they've ever worked with. Take a look a the 5 steps Quadrix engineers use to unlock the power of XML for integration.

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

                July 15, 2005

                via Tim Bray | ATOM 1.0 = BINGO! Sleeves have already been rolled up so now the shirts flat out coming off... Its time to roll out and begin delivering LLUP!

                ongoing ? Atom 1.0

                It’s cooked and ready to serve. There are a couple of IETF process things to do, but this draft is essentially Atom 1.0. Now would be a good time for implementors to roll up their sleeves and go to work. Here’s a comparison of RSS 2.0 and Atom 1.0, and Sam Ruby is updating the Feed Validator. I’ll update this page regularly with Atom-related news and feeds and pointers, send word if you want yours included. Read on for more.

                First. Congratulations to Sam Ruby, Tim Bray, Paul Hoffman, Scott Hollenbeck, Mark Nottingham, Mark Pilgrim, Robert Sayre and the Ongoing list of contributors presented by Tim Bray.

                As promised I will be moving forward with the LLUP specification with some of the other team members as well as possibly a few others to begin the road that will hopefully bring this specification into being as soon as time allows it as such. I think that, like many, you will find what LLUP has to offer to the world of XML communications via first, Atom, and then through the two main RSS formats as well as some non XML implementation to allow for a broader range of compatibility across the broad spectrum of devices that would be able to implement this small, but significant extension to the world of subscription based publishing.

                For those who have read the draft from last November or at least have heard about some of the things it contains...

                While the general idea is there, that is all old, dead, and buried content that has since been greatly simplified with the ability to implement portions of the spec almost immediatelly with very few lines of code. The next released specification (hopefully in less than a week) will be completely integrated into the Atom specification and used as the reference platform until things have settled a bit and time can be spent on RSS. If it turns out we find people willing to volunteer to help with the RSS stuff now, GREAT!!! But for now I am simply counting on having the resources we have now to then worry about what happens if more resources become available, when they become available.

                For those of you wondering, LLUP stands for "Limited [Lifetime|Length|Location|List] Ubiquitous Protcol" and is defined as:

                A messaging protocol for weblog intercommunication and decentralized messaging of time sensitive and/or geographically specific publications.

                If not immediatelly obvious LLUP spells PULL backwards or, if thought of from the opposite side of a glass door the other side of where the PUSH sticker exists which nicely gives LLUP the slogan, "The Other Side of PUSH" which in and of itself suggests that its both a push and pull mechanism and yet from the other side of the metaphor its neither. The idea is to suggest that, much like email, there is a "layover" in which a message [NOTE: Here's where the email comparison is no longer valid] waiting for delivery must wait such that the senders credentials can be verified and validated against those with "open door" access to the recipient "inbox", those which have been label "hold for verification" allowing the recipient to take a peek a the sender, or subject or keywords before deciding if this is something of interest (this process can be automated but in no way is this automation process part of the spec) or junk, "labeled as SPAM" based on an ongoing communication process between servers in whom compare URI's and IP that continue to collect SPAM ratings and, in essence, black list these URI's and/or IP's (if drastic measures become obvious and necessary) and lets the rest of the system know about it.

                If there is one key thing to take away from LLUP its that there are no messages that are being sent and instead "blips" that act as simple notification mechanisms that content is available. That content is given an id when the publisher first creates it and then stays within the confines of the sending server until such time as a request is sent from a valid recipient to gain access to the content of this feed. In other words, the ability to flood the internet with unsolicited content no longer exists as its the URI of where that content is located that is then used to access that content if and when the recipeient decides to do so.

                What does this mean exactly? For starters the sender of a message becomes responsible for all bandwidth charges incured by its access which pushes the cost of spamming to the spammer instead of the ISP's who then pass those costs down the line to us. If I want to send a message to 10 million of my closests friends I best be prepared to shell out the cash (and have the bandwidth in the first place to handle the load) for the incurred bandwidth costs.

                But that doesnt mean that if a message is sent the content is automatically sought after. Its only after the recipient says "yes, I would like a good deal on Viagra", a decision made based on the subject and/or keyword(s)that would then cause a request to be made to the sending server for the rest of the content.

                Another immediatte benefit is that content that is usually forwarded to 100s upon 1000's of people along with the entire thread of each forward (WITH EMAIL ADDRESSES INTACT!!!) will instead be forwarded by simply sending a "this is SOOOO funny message" referencing the original URI it was sent from. So, what would normally amount to hundreds of thousands to millions of kilobytes of useless data being sent constantly back and forth across the internet now simply becomes a much smaller "blip" to the recipient who then >>> chooses first "do I really want to see this picture" <<< without simply having the content loaded into the email client without will or desire.

                Does this help with viruses? Much like a podcast feed references an mp3 file an LLUP message might contain a link to an mp3 file, a photo, etc... or much worse, a virus. However once viruses have been found, there URI's can be blocked, the MD5HASH signature made public and used to match the MD5HASH signature that is a required (and simple to create and publish the key for) part of downloadable content if an implementation is to specification.

                One of the bigger ares in which LLUP places huge potential is the ability to send message to GeoURI which, for example, could mean that local business can keep a certain area notified of their current inventory, the prices, if they suddenly run out of stock on a sale item, the price of a gallon of gas, movie times (and the ability to 'blip' back a purchase request which in turn 'blips' black a receipt in which you simply 'blip' to a 'blip' reader at the movie gates and, walla, your in your seats and watching your movie.) etc... Sounds a lot like text messaging, which in fact, it is... or it could very easily be implemented on such a system and as such little, if anything would have to be done to the mobile communications infrastructure for this to simply work and work right away.

                For local residents this means a much more productive way to locate merchandise, to compare prices against local food chains, to be notified when Albertsons puts its doughnuts on sale for 99 cents, etc... by specifying a Geographic region (such as a zip code, area code, or a URI based GeoCode that can be published in the format similar to

                > USA.REGION.WESTERNSTATES.WA.PUGETSOUND <

                to have the sender, subject, and keywords of that message available to search through and make a decision against as well as a sense for just how long that price will be available based on the stop and start dates specified, allowing for a system in which when content is no longer valid it can be deleted from the system and not require us to trod through just to find the current items.

                Travelers to new cities will find this type of information easily accssible unbelievably helpful, even sending a 'blip' to Google Maps for directions to a Chinese Restaraunt who just blipped out a special on something you think you were once told by someone you think knew what he was talking about was really good... you think.

                Anyway, this make that kind of scenario possible and really simple.

                From a Government standpoint and from a much more sensitive standpoint the ability to send pinpointed messages to a certain region (these analogies assume that cell phone or wifi providers would implement this type system and specify the GeoCode content they are interested in to then send to their subscribers if and when desired) would take a system like the "Amber Alert" system here in the united states and amplify its effectiveness to a level I doubt could be measured if you considered that if something of this nature were to be sent out (this could apply to bad weather such as flash floods, or tornados, or, without meaning to be disrepectful, sunami warnings) to the entire system of cell phone subscribers and people using their laptops at Starbucks or through other means of systems that are in place in our cars or homes such that in an instant an entire area can be notified in ways never before possible of things of the above suggested nature, potentially ending the hunt for a kidnapper within minutes or less with as many people as would be suddenly and instantly keeping an eye out for suspicous activitees or matching descriptions, etc...

                In regards to the elements and attributes contained in the spec:

                First, to give you a better understanding, the four "L" areas each have elements and attributes that the others dont require as each can server a different purpose, or when used together, a combination of purpose.) This proposed technology brings to the data feed table a combination of possibile extension elements including:

                - a start and stop(expiration) date (or "start publishing this date" "stop publishing on that date")

                - a single recipient element or a recipients element with additional recipient elements as possible children. These elements contain the intended recipient or recipients and are URI based, focused specificially towards using the existing blog implementations and technologies and the foundation in which LLUP builds up. Mechanisms such as the ping/trackback mechanism already in place can be used with LLUP as a way to notify a potential recipient of the data feeds existence.

                - a "referenceID" attribute which is focused on referencing another data feeds id element as a mechanism for suggesting the contained content in the referencing feed is an "response" to the feeds content, should be "integrated" or added into that feeds content (if proper credentials are present), "replace" the refering feeds content (again, with proper credentials, or simply "reference" the content either in its entirety or pieces of the text contained in that feed using standard positioning values at a total character length starting from the beginning, starting character point to the beginning reference point, and, if a third value is present the total number of characters to include in the reference before stopping, otherwise until the end of the charcter sequence.

                - and either a "keyword" element or "keywords" element with a combination of keyword elements for specifying the content contained in the spefified feed.

                ---

                Actually, I will leave things here and simply let the next draft of the summary give you a much better feel for what LLUP is all about. As I said, the first actual test implementation will be using Atom, specifically because of the publishing mechanisms introduced as well as other elements that are part of the Atom spec that could be reused and therefore require less overhead for LLUP...

                More on this in the near future...

                Until then, Congratulations to everyone who helped with the Atom specification development. You all deserve a huge round of applause and a standing ovation!!!

                Cheers :)

                [UPDATE: A while back I made mention to the fact that it was my belief that in many ways blogs would become the center of our lives. But not because of vain "guess how many people read me everyday!" kind of way but instead as the primary point of communication and content publishing, access, etc... In other words, our blogs will eventually contain the ability to be "programmed" such that they would be able to be told by Delta airlines when a flight is late and notifiy your blog with this information. By acessing your blog remotely and securely you can easily gain access to this information, synch your calendar, quickly read your email (that is now in one central and globaly available place.. even your work items will become a part of this, either using your personal blog directly or integrating a trusted relationship with your work blog server and home blog server such that they can stay in synch.

                Actually, if you were to take the Hailstorm project from the early .NET day's and instead of a centralized server focus on individual blog URI's for accessing or updating the necessary content you could probably take that same spec and within a month or two have a pretty sweet blog-based application specication in place an ready to do all the killer stuff it was planned for before the press scared everyone off which caued things to get unplugged. Centralized or Decentralized data is data, right?

                Anyway....

                There is SOOOOO MUCH MORE with all of this.... But, as much as I hate this phrase, so little time, so I must shut down the mouth and get some work done for a while... Cheers :)]

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

                July 14, 2005

                via Tim Bray | Please see the extended area of this post to view my own personal feelings on Tim's comments

                ongoing � The New Public Relations

                You, the information professionals, you can aggregate us or repurpose us or debate with us or debunk us. But this big fat pipe with everyone’s voice roaring through it? It’s not closing.

                A-FUCKING-MEN!

                [NOTE: In an attempt to not throw out "edgy" language that then becomes repeated in syndication (and as such leave potential of offending a visitor to that site) I've decided to try and keep such comments as the above to the extended portion of each post, an area that as far as I know none of the sites that syndicate this blog will print, instead printing the summary and linking to the rest. While I can't promise that I will always remember to do this I think for the most part it should be an easy thing to remember, even in fits of random "rage" :)]

                Anyway, back to the point of the post...

                A-FUCKING-MEN TIM!!!!

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

                July 13, 2005

                via XML-DEV | Ken North announces available of podcasts with Ron Bourret, Dana Florescu, Michael Kay, Jonathan Robie and Michael Rys covering XQuery, native XML databases, SQL/XML databases, XSLT and related topics.

                Fresh from Ken North via XML-DEV:

                WebServicesSummit.com has released two podcasts of a panel discussion with Ron
                Bourret, Dana Florescu, Michael Kay, Jonathan Robie and Michael Rys. The
                discussion topics include XQuery, native XML databases, SQL/XML databases, XSLT
                and related topics.

                The part 1 podcast (MP3 audio) focuses primarily on XQuery (running time:
                34:03). The part 2 podcast covers native XML databases and XML-enabled SQL
                databases. Running time is 22:46.
                http://www.webservicessummit.com/People/XQueryGuruPanel.htm

                Or podcast RSS feeds:

                XML, SOA and web services podcasts
                http://www.WebServicesSummit.com/Channels/XMLWebServicesTechTalk.xml

                SQL/XML and database podcasts
                http://www.SQLSummit.com/Channels/SQLSummitTechTalkAudio.xml

                ---

                I haven't even listened to these myself, instead choosing to sacrifice my time by first posting this such that y'all can benefit from the blessings of such a podcast made available to the masses. That's how much I love you guy's (If that doesn't bring tears to your eyes then you simply and quite obviously can see right through my BS... Good for you! ;)

                Enjoy!

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

                via Longhorn RSS Weblog | Atom 0.3 and the imminent 1.0 find support in Longhorn Beta 2

                Longhorn Team RSS Blog : Longhorn (hearts) Atom, too

                Longhorn (hearts) Atom, too

                Yes, we love Atom, too. :)

                For the past couple weeks, we've been working full-time on implementing the RSS platform features in Longhorn. Of the many interesting features the development team has been checking in, I thought this one might be found interesting: last week, Atom support was checked in by John Lueders (one of the developers on the team). That's both 0.3 and 1.0 (based on the -09 spec) support.

                [UPDATE: To get a REALLY in depth understanding of Atom and all that it brings to the XML data feed table take a look at the posts that are tagged with the 'Atom' keyword on Tim Bray's blog, Ongoing]

                Excellent! It is my personal belief that as time progresses forward the benefits that come from writing your application against a specification that implements both the Publication *AND* Data Feed sides of the XML publication and feed format/subscription specification equation will become extremely apparent.

                And if you take things a bit further...

                Atom has the benefit of being designed by a group of individuals who have proven time and time again they can design fantastic specifications as well as fantastic software that supports these specifications - both of which work and work well. Atom also gains the benefit of working within the walls of th Internet Engineering Task Force, which, while there are certain things that can get a little annoying about an IETF spec (like the format their specifications are published in) when it comes down to it they have developed and implemented a system that, again, works and works well when it comes to the development and promotion of protocol specifications that in and of themselves have proven to, yet one more time, work and work well.

                Now thats not to say that the folks developing the various RSS implemenations don't have similar credentials or that the standards bodies that stand behind each of these specifications don't know a thing or two about how to build a well design specification. But several spots in that last sentence showcase the exact problem that RSS brings along as baggage that Atom, quite simply, does not. The spots?

                'various RSS implemenations'

                AND

                'the standards bodies that stand behind each of these specifications'

                In a nutshell, RSS has become disjointed....

                In fact it has become disjointed at several key points which means you not only have to try to explain to your users why RSS 2.0 is not necessarily the newer, sleeker, more enhanced version of RSS 1.0 and instead make an attempt at trying to explain just what RDF is, why there is a break between the two specifications, what this means to them in regards to what is included in an RSS 1.0 feed that is not in an RSS 2.0 feed and vice versa... etc... etc... etc...

                Obviously this isn't going to happen with each and every person who subscribes to your blogging service or uses an application that you have built that supports all of the RSS versions 0.9x, 1.0, 2.0, as well as Atom. But anyone who has any experience with running the support side of a software company knows exactly the types of headaches that will be incured when even a small portion of their user base starts asking "now whats this and why is it there" and "I just want the latest and greatest and don't see the need to have all these links for RSS 1.0 and RSS 0.9x" etc... etc.. etc...

                Of course there is version 0.3 of the Atom format that no matter the explicit warnings to not use this spec in production and explaining that if anything at all to use it to test with internal alpha code people simply didn't listen. In fact the exact reason you haven't seen ANYTHING on the LLUP front for a while is because LLUP is based completely on ATOM and no matter how tempted I have been on several occasions the bottom line is I simply could not/would not release ANYTHING else related to LLUP until Atom reached a 1.0 approved specification status in which myself and other key members working on this protocol could then focus on something we knew was going to be the official release. To convince people to build something against your specification is hard enough. To then tell them, oops, sorry, now you have to change everything you've built to be conformant sucks! Having the ability to depend upon a decent amount of time passing before worrying about a new specification breaking the LLUP specification is something that I deemed as crucial and therefore simply something that needed to wait. Whats LLUP you ask? Wait until Atom reaches 1.0 and within a few hours you will know exactly what it is and why I feel its an important piece of what I personally believe is the future of web communications. But I digress (as usual ;)

                Getting back to Atom 0.3 <> Atom 1.0... It's pretty standard for new and exciting protocols to gain enough attention and as such nobody really paid much attention to the warnings (which, in reality, I think tend to be there more for legal reasons than anything else) and as a result there will be a bit of time that exists where 0.3 and 1.0 support of the Atom protocols will be required. But the differences that exist between the 0.3 Atom protocol specs and the eventual 1.0 protocol specs are nothing even close to the difference, and the problems because of these differences, between RSS 0.9x, 1.0, and 2.0.

                What makes matters worse is that in the RSS world there is no one agreed upon specification for publishing. While XML-RPC tends to be the most widely adopted its broken in so many places from an application development standpoint that its wonder that it ever really got off the ground in the first place. But I guess something was better than nothing and there was too much uncertainty in the SOAP world to allow anything of much value to come from that camp without being scrutinized as to "why the need for a SOAP wrapper when I can just send the raw XML... etc... etc... etc...". And with REST being nothing more than a "style" instead of a specification you find plenty of REST-style Web-API's from the likes of Technorati, Flickr, Amazon, etc... but not one single common scope between any of them to allow for any type of global acceptance as to an API or directory structure format and naming convention that would allow applications to be built against with some sort of reassurance that if it works here it will also work there.

                So in reality I guess I'm not surprised that XML-RPC rose to the top of the weblog publishing stack. But its my belief (as well as the belief of many others) that this will soon be changing once we find out just how good of a job the Atom folks have done, allowing the ability to quickly and easily develop applications against a clean, simple, and well thought-through combination of protocols that cover both sides of the data feed equation (publishing and feed format/subscription.) Quite simply, when you can choose between developing against a clean and simple format in Atom or the dirty, mucky-water of the various RSS formats and the publishing specs which support them its not going to be that hard of a choice to make. And when more and more people start griping about having to support the various RSS formats you may just find a world with less and less people willing to put up with it and, quite simply, refusing to at all and instead focusing solely on Atom from an application development standpoint, providing read only support for the RSS specs only as long as they absolutely have to.

                Maybe I'm simply way off base. But I don't think so.

                Either way, its good to see MS has showcased the fact that they will be providing complete support for Atom 0.3 and 1.0 as well as when we can expect to see that support. Good going Microsoft!


                Posted by m.david at 04:41 PM | Comments (0) | TrackBack

                July 11, 2005

                The Truth and the Lies That Revolve Around Fate

                Fate doesnt happen the way most of think. It happens but its not the "moment" that was fateful but instead what you do or did after the moment that will determine the final outcome. We control the decisions we make. We control the actions we take. We may not have control over what happens next when considering that others take actions that affect us and limit just how much of our lives we can have complete control over. But why do so many people make statements like "well, I guess it was fate for us not to be together" or even worse "It was fate that brought us together!"

                No, NO, NO IT WASN'T!!!

                Life happens and we choose how to react to it. Its that plain and simple.

                We determine our own fate!

                Every so often and for reasons I can never explain my mind just starts writing out words and if I dont hurry and find a keyboard, pen, or at very least keep reciting it in my head until I do I can drive myself crazy. But thats not unique to just me... its a trait of those of use labeled "the creative type." Not that being creative and being labeled as such is a bad thing/ But there are definitely times I wish my brain would simply shut-up for half a second so I didn't have to think about anything at all.

                The last 16 minutes was definitely one of those moments where if I didnt sit down and start hammering away at the keys my brain would just keep at me until I did. I havent spelled checked this, nor have I even re-read it. And I dont plan to either as what happens next after I do something like that is I spend half my day fixing it... I dont have half an hour today much less half the day so this is it, the end, finished. If it sucks, sorry! It may even turn out to make no sense at all but I think the general idea that I stated above exists in there somewhere, adding the element of a God-like figure trying to explain how things work and how they always have and always will and theres not a damn thing He/She can do about it. If God (however you choose to believe or not believe in such a being) is perfect then He/She more than anyone else can't break the laws of physics as it would go against the whole "perfection" persona... and in this day and age its all about persona baby!

                Hmmm.. that one might have lost me another point... Oh well, maybe I can gain it back after "watching His/Her Back" in the following verse: (but I'm pretty sure theres no point system either so I guess I wont worry much about it.)

                I usually don't ;)

                Anyway, for whatever reason my brain decided it was time to get rid of a few things, and this is the result of that "brain dump":

                Title: It's not Fate's fault, its yours stupid!
                Author: M. David Peterson
                Date: Not for like 6 mont -- oh, oops, I mean: July 11th 2005

                Do you think about fate as if in the past,

                A moment thats gone and never will last,

                to then "sieze the day" or suffer "why now"

                I guess it was fate put me in this spot!

                Why is it that we believe in a God

                that send us down here to learn from our trod

                but when it comes time to trod right along

                we simply blame fate and then we move on.

                If God sent us down to learn for ourselves

                then why would he then play darts with our hearts

                is it just that he sick and twisted and mean

                or is it that we are afraid to come clean.

                To say to them "Hi, I just past this spot,

                and saw you and sat, then wondered and thought

                could this be the one, thats been in my dreams

                Did God set this up, or should I just wait

                For I know that my God will never let down

                the person he planned for me to have found

                And yet, there again, you said it, you see?

                He said "Its not my choice, its your choice today.

                tomorrowm then Wednesday, Thursday, Friday.

                I asked for one thing before I let go

                Devote just one day, remember, then go

                Get on with your life, make a choice for yourself

                Its never been planned to deny thee thyself

                So go live your life and do it today

                cuz' if this doesnt work then why would you stay?

                Go take a vacation and don't do a thing,

                If thats how you'll be then go book your room

                I always get blamed for things you dont do

                and then theres tomorrow and Saturday too.

                On Sunday you'll visit, you'll kneel and you'll pray

                and ask me again "God please send her my way"

                O have and I did, and tomorrow will too

                but not cuz' its planned but instead because you

                Its your choice not mine now go and get on

                Theres another line forming of real things gone wrong.

                Of things that have happened because of the way

                I chose to do nothing but learn and obey

                You see its the science that determines the how,

                the why, and the where, that I must allow

                If I were to break the laws for just you

                then how is that fair for the Atheists too?

                I live by the laws and believe, so do you

                Its how it all works the how, why, and do.

                This isnt the first time, nor will it be last

                but thats not the fault of another "I'll pass"

                I sent you down here to see if you can

                live happy and free and to server other man.

                What this is about is not is it fair

                but did you remember to answer your prayer?

                Thats right, I said yours, your prayed for relief

                Then sat on your butt and screamed at TV's

                For playing again the scene of the crime

                where somebody friend, maybe lover just died.

                And yet you can't see why this happened again

                cuz' you sit there and stare til its reach the end.

                And then you will sleep, or go grab a drink

                and cry to another "Its horrid, this stinks.

                Hey bartender send me one more of those things!"

                I need to forget all about this today

                tomorrow I'll try to remember and think

                of just how this world is awful and bleek.

                Hmm, I wonder if God will send her this week?

                Posted by m.david at 10:57 AM | Comments (0) | TrackBack

                July 09, 2005

                From The Barrel of a Gun | From the Lens of the Photographer | My Father, Zimbabwe, My Roots, My Purpose?

                Amazon.com: Books: From the Barrel of a Gun: The United States and the War Against Zimbabwe, 1965-1980

                I come from a strange and wonderful background that when many people first hear some of the stories they simply look away and assume I'm one of those types who likes to make up extravagant stories about themselves, family members, close relatives, best friends, or people I "swear I know and consider them a good friend if not from the past and as such quite distant." You get to the point where you realize "why do I even bother saying anything? Its not really all that important they know that kind of stuff. So why do you even care? Let people find out for themselves, let them ask the questions if they so desire. But until then, just keep it to yourself."

                This is something I don't think I can keep to myself though... And I'm not sure why. Maybe this post will help me figure it out or maybe it will make the "wonder" worse.

                This is a picture of my father stapled to his credentials certifying "that Mr. I. Peterson is the Press Photographer of the Rhodesia Government and should be accorded normal press privileges please." If you look closely you'll notice that the date stamped in two seperate places is the 24th of October, 1964.

                Any of you familiar with the state of affairs in Southern Africa at that point in history, and in particular to that of Rhodesia where the first half of my family was born and raised, will realize that being "the Press Photographer of the Rhodesia Government" in October of 1964 meant something quite different than the same credentials would have meant in say London, or Sydney, or Los Angeles. All exciting places and during this same time frame they each had their levels of excitement to post to the newspaper headlines without a doubt.

                But not these kind of headlines...

                These headlines, the ones in whom it was my fathers job to keep an ongoing photographic record of anything and everything that was taking place from the inside of the Government looking out. These headlines, if printed at all, were much different, much more awful, and irreversably evil and wrong and horrific criminal acts... And things were just getting started... this was just the very early beginning as its something I can't believe we can truly say to this day has ever come to any real end.

                In this place, in this part of the world, at this time in history things were taking place that would lead to a revolution of change that would darken the eyes of too many to count if it wasn't for the prayers for each of them that they were now in a better place than they were here. Here was a place that was leaving visible physical scars in a people, a countryside, a nation, and our world that have still never quite healed, some still bleeding worse than before and in ways nobody in this country could or would even want to try to understand.

                I am just about to head out the door to pick up a copy from my local Barnes & Noble of the linked book title above.

                From the Amazon.com description:

                Book Description

                In November 1965, Ian Smith's white minority government in Southern Rhodesia (now Zimbabwe) made a unilateral declaration of independence, breaking with Great Britain. With a European population of a few hundred thousand dominating an African majority of several million, Rhodesia's racial structure echoed the apartheid of neighboring South Africa. Smith's declaration sparked an escalating guerrilla war that claimed thousands of lives.

                Across the Atlantic, President Lyndon B. Johnson nervously watched events in Rhodesia, fearing that racial conflict abroad could inflame racial discord at home. Although Washington officially voiced concerns over human rights violations, an attitude of tolerance generally marked U.S. relations with the Rhodesian government: sanctions were imposed but not strictly enforced, and hundreds, perhaps thousands, of American mercenaries joined white Rhodesia's side in battle with little to fear from U.S. laws. Despite such tacit U.S. support, Smith's regime fell in 1980, and the independent state of Zimbabwe was born.

                The first comprehensive account of American involvement in the war against Zimbabwe, this compelling work also explores how our relationship with Rhodesia helped define interracial dynamics in the United States, and vice versa.

                I'm sure you can fill in the blanks to the types of things that were taking place during this long, drawn out, and awful space in Rhodesian time. And to make matters worse 25 years after this war ended theres still no real progress to focus on, no real victory to claim, no real understanding as to why life can't simply be in a state of peace, and comfort, and happiness... just like Mr. Robert Mugabe said they would. 25 years and its seems things may just be getting started all over again... and for what purpose this time? The same damn things...

                I guess you can say my family was lucky. Although I doubt the world in which my father lived in at that time was something he felt all that lucky about living in. I can only imagine the relief he must have felt when, in 1965 and just before hell began to break at the seams of the Rhodesian soil, five visa's for which he had applied for in hope but without expectation arrived from the United States giving my family a chance at a brand new life in which its current value was less than a handful of that broken and crushed and heart breaking soil that he was responsible for documenting roll after roll, canister after canister, gun after gun, and life upon life of those whose fortune wasnt quite the same as my familys just so happened to be on that very special day in my family's history.

                Speaking quite literally it was an overnight excursion that took place from the time these five chances arrived to leave the country he truly loved and take his beautiful wife and three wonderful, beautiful, and amazing daughters on board a ship to a country he knew nothing about other than it was a place where he could raise his family without fear of coming home to find nothing that any true and respectful man on this planet could or would ever even want to even imagine. It may not be the home that he loved but it was a country he now treasured for giving him a new chance to live, and breathe, and love without fear that all of this, all of them, without warning and without cause, could just disappear overnight.

                And he would then be the one responsible for photo-documenting what had just taken place.

                Thank God for the United States of America and for the Men and Women who have devoted their lives to ensuring that we don't have to live in a world like that. We don't have to have those kinds of fears. We can wake up in the morning, go to work, and on the commute home assume quite accurately that our familys are safe at home and looking forward to our return. We may not live in a perfect place where the politicians honesty is as true as their bleached white smile. But by God and can't imagine one other place I would rather want to live than in a country who's has founded its principals on happiness, safety, love, companionship, family, and the freedom to worship the God we believe (or don't believe) in without worry, or fear, or wonder what it is we might have to lose first so we can gain something else last.

                Thank you to each and every one of you who have given me and my family this wonderful country to live in. God bless you for all that you give, all that you have lost, all that you have sacrificed and continue to sacrifice so that a place like this can exist.

                Thank you God for the United States of America and for each and every country like Britain, and Canada, and Australia, and the many hundreds of others who have stood behind us in a time of need and fought with us side by side to protect what other have lost their lives to build.

                Now its our turn to stand by the side of our brothers and sisters in London. I wish these things never had to happen but I thank God I live in a place that is willing to do whatever needs to be done to help do for them what they have already, and without question, done for us.

                Thank you Great Britain and the United Kingdom (and all the others who stood by when we needed you.) Our hearts and prayers are with you as yours were with us.

                Lets hope this is the last time we have ever have to see this, to feel this, to lose this, to cry over all of this. Lets hope this time round something in the hearts of those who hate can somehow change. I guess all that can truly and simply be said is lets just hope. Prayer is a constant.

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

                XSLTBlog welcomes Google, Ed Falk, and Steffen Meschkat to the 'Legends of the XSLT Community' List

                I should have added Google long before now but the addition of AJAXSLT project from developers Ed Falk and Steffen Meschkat pretty much was making me look like a fool for not updating the list before now so I figure its best time I stop such nonsense and get the list updated.

                I've pretty much kept quiet about the legends list but if you have been keeping track I have been slowly but surely adding people... some because they should have always been there and I simply fubbed it up (which is kind of why I kept silent ;) and a few others who have earned a spot on the list for various reasons I either personally felt deserved the recognition or through others suggestions I came to further understand just how much a few people have done and in discovering this added them to the list.

                I need to go through and see who I have officially announced and who I have just slipped on by the security guards while they were busy on some porn si... er, I mean reading from [somebody important, pick one and fill-in-the-blank to make it more fun... See, wasn't that fun? I know I know how to have a good time... you don't have to tell me ;)] blog. Once I have I will make an official post announcing all in whom I have not announced officially already as it seems that should be part of the whole "Legends" gig as well.

                May not be soon... but it'll happen ;)

                Cheers :D

                Oh, and again, Google, Ed, and Steffen.. THANKS! And welcome to your rightful spot as a member of the Legends list :D

                [NOTE: To view the list visit the main page and scroll down the left column]

                Posted by m.david at 09:33 AM | Comments (0) | TrackBack

                July 08, 2005

                via Push Button Paradise | At worst Micah is on to something, at best he's on to something big

                Push Button Paradise

                From Micah's quite recent post:

                ... Of course, there's room for variation in XML: elements can contain attributes, and attributes can use single or double quotes, etc. The take-home point, though, is that a node test as simple as a single character is really doing two things, delimiting the start and end of a range of the bigger document.

                Ok. I'm with you so far.

                What if the document isn't necessarily XML? The pattern of an XPath-like language still makes sense, however the equivalent of a "node test" gets a little messier.

                Well, that's where RegEx...

                Enter TextPath.

                Pardon me?

                TextPath fills the same role for Plain Text (which means Normalized Unicode with uniform line endings) as XPath does for XML and other treelike formats. It consists of a series of steps, separated with '/'; each step consists of a match rules for a starting and ending delimiter. In between the two, an operator '...' means roughly 'skip over a bunch of stuff between these delimiters'. In fact, the part that's skipped over this way is usually the interesting bit the user is looking for. Similarly, in XPath, if you select 'p', you're not interested in the '<p>' and '</p>' port