This is a list of books currently on my To Read shelf... literally. I do not suggest or anti-suggest any of them at this time as I haven't read them yet.
Current Efforts:
Blue Parabola, LLC
HubAustin
web2Project
PHP'ers:
Cal Evans
Eli White
Elizabeth Naramore
Joe LeBlanc
Matthew Turland
Matthew Weier O'Phinney
Planet PHP
Tony Bibbs
Business/mISV:
Bob Walsh
Eric Sink
Joel Spolsky
Micah Baldwin
Paul Graham
Past Projects:
CodeSnipers
HOBY
Judicial Watch
mobile FoxNews.com
NRTW
Great Tools I use:
Drupal
GitHub
NetBeans for PHP
phpUnit
Subversion
Zend Framework
This is not the home of dotProject or web2project. It is the home of CaseySoftware, LLC. Any dotProject support questions should be referred to their support forums.
I have to admit that I've been following fellow CodeSniper Ben Bryant's discussion of XML with just a bit of misplaced glee. I have been working with XML extensively since mid-2001 at organizations ranging from US Goverment Departments to a handful of developers and a maniacal boss with improper desires for XML and have seen it all. No, I'm quite serious, I've seen it all. Or atleast every day, I pray I have.
While I was at the Library of Congress, I had the opportunity to build some XML schemas from scratch. It was a great experience as we had a literal "clean slate" that every developer dreams of along with people who had huge amounts of domain expertise. They were sharp people all the way around and it showed. The Schemas were huge, verbose, complex, but amazingly complete in terms of the data and metadata we were able to capture.
The main problem we faced was that the XML hype was just beginning and the support of the tools was mediocre at best. We found ourselves having to write much of our own infrastructure before we could implement our great ideas. Most of them worked and we managed to develop - what we believe - were the first WebServices within the US Federal government and I believe my name/initials are still in some of the Schemas.
Fast forward a few years and the XML hype machine (aka Microsoft) is going full speed and it turns out that XML is going to solve all your problems with legacy systems in addition to make your coffee and end terrorism. I'll never forget when my boss said "we're going to build 100% XML applications!" I'm not even sure what that means. Do you mean that we'll be able to open up Notepad, draw some nifty brackets, and the system will understand and implement our business logic? This is from an organization that when I left wasn't even using source control. I left a copy of the Joel Test on the wall when I left. Score: 0-1
XML or BPEL might be able to do that someday, but I simply don't see it yet. XML is reasonable for things such as Ant, but we can't even agree on what RSS is, how can we figure out the best way to do real development. But I digress...
Fast forward a bit farther and *some* people have learned where XML is and isn't appropriate.
On a recent project, I was the lead in building a system which would poll a number of different content providers and download all the new content. There are two well established XML standards for this and so from the 5 providers how many XML formats would you expect?
Any guesses? Come on, I know you have one.
How about seven? Yes, five organizations each present the same type of information in seven different ways despite the fact that there are two established standards. This was a perfect place for standardization and collaboration since it's the same TYPE of information with all of the same data represented pretty much the same ways, but alas... And it gets even worse as three of the organizations regularly provide documents missing required elements or ill-formed XML. Simply stunning.
So what did we do? First, we dump the ill-formed XML. Next, it made little sense to build rip each of those apart. Instead we chose a simple name/value pair structure - which is quite similar to one of the standards - and perform an XSL transform to all of the documents using a variation of the Two-Step View. Finally, we rip apart the name value pairs, scrub the data and insert it into the database. This provides the XML to the importer in exactly one way and allows us to support additional XML standards by simply writing a new XSL Transform.
This is where XML serves a great purpose. It allows us to pull together the otherwise disconnected datasets and do something with it. It allows our code to ignore their changing XML structures. If they move a field, we tweak the corresponding XSL and move on with life. If we get a new structure, we tweak some XSL and move on with life.
Would I call the system and "XML Application"? No, but I would say that it makes reasonable use of XML where it makes the most sense.
Not a Drop, a Flood
Thanks for checking out my site. I'm glad you found a nice use for XSLT. I am constantly working with XML as a data interchange format in all 10 or 20 odd projects I am involved in, and this is enabled by my CMarkup C++ class because I can slang XML around with little more overhead than a string. I avoid all the established XML technologies like the plague because I can essentially do transformation, validation, and querying with my class anyway, without overhead or dependencies like making sure you have MSXML version 3.0 or greater for XSLT. The whole industry has seemed like a big hyped up, unstable mess from the beginning, but occassionally you can do cool things with those other tools. Thanks for the example.
Working Around XML
"Would I call the system an 'XML Application'? No, but I would say that it makes reasonable use of XML where it makes the most sense."
Sounds more like "making something work despite the imposed burden of XML". And I don't think that doing that is reasonable.
It would have been less work if XML did not exist at all. Certainly in that case responsibility would be much easier to assign and the code would be much shorter, faster, clearer and more efficient.
Such a gift is XML and its associated standards. May they proliferate forever.
Not Quite
I think without some *attempt* at standardization, it would be even worse than it is now. Now, whether that standardization is done with XML, comma separated values, or byte-offsets, I don't think really matters.
I think XML came at a time when computing costs were down, IT-ification of companies was happening ever faster, and every company was trying to figure out how to tie their Microsoft Excel databases together into their Microsoft Word spreadsheet systems.
XML doesn't kill systems, clueless wannabe-technologists kill systems.
Bosses And XML - Love Match Made In Heaven
"I'll never forget when my boss said 'we're going to build 100% XML applications!'"
I may have had the same boss!
I was hired into the Public Work's department at a major city. The manager in charge was a certified professional engineer (how, I will never know) who thought he was IT-savvy. The project was a disaster - an outside consulting firm with no programming experience did the programming. The boss wouldn't let me program, saying I had arrived too late to contribute to this project.
I dug into the system and code and kept pointing out the incredible errors and vulnerabilities, which just pissed off the boss. Finally one day he said "Well, now we don't need to worry about HTML - all our screens are XML!"
I knew then that it was time to get out, since not only were ALL web pages HTML but there was only a single fragment of xml (an ASP session variable) in the entire app.
How in hell do these managers keep their jobs?
It seems that ignorance upstairs helps. A manager's incompetence is usually visible first to underlings and may NEVER become apparent to his superiors. Often his superiors are unable to judge (since specialization usually increases downward in a hierarchy) but those are the people who hire/fire such managers. So the process is doomed.
Perhaps a manager should be voted on by his workers.
Post new comment