<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="/topics-files/atom2xhtml.xsl" type="text/xsl"?>
<!-- This is a 512 byte XML comment that one must put into XML Atom feeds
such that browsers like Firefox 2.0 and IE7 will obey the XSL stylesheet.
Everybody hates overbearing browsers.
This is a 512 byte XML comment that one must put into XML Atom feeds
such that browsers like Firefox 2.0 and IE7 will obey the XSL stylesheet.
Everybody hates overbearing browsers.
This is a 512 byte XML comment that one must put into XML Atom feeds
such that browsers like Firefox 2.0 and IE7 will obey the XSL stylesheet.
Everybody hates overbearing browsers.
This is a 512 byte XML comment that one must put into XML Atom feeds
such that browsers like Firefox 2.0 and IE7 will obey the XSL stylesheet.
Everybody hates overbearing browsers.
This is a 512 byte XML comment that one must put into XML Atom feeds
such that browsers like Firefox 2.0 and IE7 will obey the XSL stylesheet.
Everybody hates overbearing browsers.
This is a 512 byte XML comment that one must put into XML Atom feeds
such that browsers like Firefox 2.0 and IE7 will obey the XSL stylesheet.
Everybody hates overbearing browsers. -->
<feed xmlns="http://www.w3.org/2005/Atom"
><title
>Blog@Case Topics: xml</title
><link rel="self" href="http://blog.case.edu/topics/xml"
 /><id
>http://blog.case.edu/topics/xml</id
><category term="xml" label="xml"
 /><link rel="related" href="http://blog.case.edu/topics/syndicated%20feeds" title="syndicated feeds"
 /><link rel="related" href="http://blog.case.edu/topics/mainblog" title="mainblog"
 /><link rel="related" href="http://blog.case.edu/topics/web%20services" title="web services"
 /><link rel="related" href="http://blog.case.edu/topics/atom" title="atom"
 /><link rel="related" href="http://blog.case.edu/topics/rest" title="rest"
 /><link rel="related" href="http://blog.case.edu/topics/web" title="web"
 /><link rel="related" href="http://blog.case.edu/topics/linkblog" title="linkblog"
 /><link rel="related" href="http://blog.case.edu/topics/rss" title="rss"
 /><link rel="related" href="http://blog.case.edu/topics/blog@case%20developments" title="blog@case developments"
 /><link rel="related" href="http://blog.case.edu/topics/mediawiki" title="mediawiki"
 /><link rel="related" href="http://blog.case.edu/topics/http" title="http"
 /><contributor
><name
>Gregory Szorc</name
><email
>gregory.szorc@case.edu</email
><uri
>http://blog.case.edu/gps10</uri
></contributor
><contributor
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></contributor
><updated
>2008-01-23T23:58:38Z</updated
><entry
><title
>Using DTD's and Catalogs for XHTML Validation</title
><link href="http://blog.case.edu/gps10/2008/04/06/using_dtds_and_catalogs_for_xhtml_validation"
 /><id
>http://blog.case.edu/gps10/2008/04/06/using_dtds_and_catalogs_for_xhtml_validation</id
><published
>2008-04-06T06:48:18Z</published
><updated
>2008-04-06T19:54:50Z</updated
><category term="PHP" label="PHP"
 /><category term="XML" label="XML"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>If you are like me, whenever you develop web sites or pages, you constantly find yourself validating the generated XHTML using the 
<a href="http://validator.w3.org/">W3C Markup Validator</a> (TIP: the 
<a href="https://addons.mozilla.org/en-US/firefox/addon/60">Web Developer</a> Firefox extension has an option under the "Tools" menu to validate local source, which automatically uploads the source to the validation service). This approach is a good start, but it is far from ideal because it is based on an honor system of sorts. You often forget to validate each change you make and there is always some corner case that you forget. So, what can be done about it? Well, if you find yourself developing in PHP, you can employ the following solution. First, you need the output of your script available to the PHP script itself. If you are using one of the many frameworks out there, chances are you have a $response-&gt;getBody() function or equivalent. If you aren't saving output to a string, use the 
<a href="http://us.php.net/manual/en/ref.outcontrol.php">Output Control</a> functions to capture script output to a string. For example, 
<code>ob_start(); header('Content-Type: application/xhtml+xml'); print '&lt;?xml version="1.0" encoding="iso-8859-1"?&gt; &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;head /&gt; &lt;body&gt; &lt;!-- stuff here --&gt; &lt;/body&gt; &lt;/html&gt;'; $xhtml = ob_get_clean(); Now, you have the XHTML (supposedly XHTML 1.1) in a string variable. Now, we need to plug in the validation part. All you need is PHP's 
<a href="http://us.php.net/manual/en/ref.dom.php">DOM</a> extension with libXML support. This extension has functions built-in to validate XML. But, instructions for optimally configuring it are hard to find (if they even exist). The basic recipe for validating the XHTML/XML response is the following,</code> libxml_use_internal_errors(true); $doc = new DOMDocument(); $doc-&gt;loadXML($body, LIBXML_DTDLOAD | LIBXML_DTDATTR); if (!$doc-&gt;validate()) { &#160;&#160;foreach (libxml_get_errors() as $err) { &#160;&#160;&#160;&#160;print $err-&gt;line . ' : ' . $err-&gt;message . PHP_EOL; &#160;&#160;} } You can actually use any kind of error handling you want. My personal favorite is to split the XHTML string by newlines and then correlate the $err-&gt;line to the actual line in the output so you can print error context and figure out what the offending code is. When you run the above code, you will find that script execution becomes extremely slow or you will get some cryptic error about remote URI's not being accessible. The reason is that the validate() call will fetch the referenced DTD's in your XML. In the above example, it will fetch 
<a href="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd</a> and any files referenced by that document. But, the W3C 
<a href="http://www.w3.org/blog/systeam/2008/02/08/w3c_s_excessive_dtd_traffic">doesn't like</a> people who fetch DTD's all day, so we need a way to avoid the remote file fetching. This is where XML Catalogs come to the rescue (see 
<a href="http://nwalsh.com/docs/articles/xml2003/">#1</a> and 
<a href="http://xmlsoft.org/catalog.html">#2</a> for more about XML Catalogs). Basically, XML catalogs allow you to map remote entities into a local space, mainly your file system. In this case, we will be using XML catalogs to map the XHTML DTD files to your local filesystem so validation doesn't have to go across the internet to access necessary files. The first step is to define mappings of remote URI's to the local filesystem. On my Gentoo Linux install, this file is /etc/xml/catalog. In this file, I add the following mappings: 
<code>&lt;rewriteSystem systemIdStartString="http://www.w3.org/MarkUp/DTD" rewritePrefix="file:///etc/xml/www.w3.org/MarkUp/DTD"/&gt; &lt;rewriteSystem systemIdStartString="http://www.w3.org/TR" rewritePrefix="file:///etc/xml/www.w3.org/TR" /&gt;</code> There is probably a way to do this with the 'xmlcatalog' program distributed as part of libXML, but I am lazy. The above example maps http://www.w3.org/MarkUp/DTD to /etc/xml/www.w3.org/MarkUp/DTD and http://www.w3.org/TR to /etc/xml/www.w3.org/TR. Any remote entity existing under one of the above URL's will be mapped to the corresponding local filesystem location. Once you make these additions, try to run the XML validation in your script again. It will probably fail fast, but this time with a different error message. It will most likely say that it couldn't find /etc/xml/www.w3.org/TR/xhtml11/DTD/xhtml11.dtd. So, you need to add it to your filesystem. Create the necessary directory structure in your local filesystem (e.g. /etc/xml/www.w3.org/TD/xhtml11/DTD). Then, start downloading the missing files needed for validation. The XHTML 1.1 DTD's can be found in 
<a href="http://www.w3.org/TR/xhtml11/xhtml11.tgz">http://www.w3.org/TR/xhtml11/xhtml11.tgz</a>. Once you have that, you will need to find all the modular XHTML files. You can find these inside 
<a href="http://www.w3.org/TR/xhtml-modularization/xhtml-modularization.tgz">http://www.w3.org/TR/xhtml-modularization/xhtml-modularization.tgz</a>. Be sure to place the files in directories that match the mapping you created in your XML catalog file. Now, try running validation again. If it complains about missing files, just fetch them one at a time from w3.org until you get no more errors about missing files. After you have put all of these files on your local file system, calls to validate() should be quick and will immediately tell you if your output conforms to XHTML 1.1. No need to use the W3C service! So, there you have it. An easy and quick method for automatically validating script output for XML compliance! Finally, you will probably want to turn off XML validation on production web sites because it adds unnecessary overhead. But for developing, it is an invaluable asset! Even though the above example was for XHTML 1.1, the same methods can be used to validate any XML that has a DTD, schema, or RelaxNG description available. 
<strong>Update 1, April 6</strong> Added content-type header to help remind people it is needed. Some rewording all around.</div
></content
><author
><name
>Gregory Szorc</name
><email
>gregory.szorc@case.edu</email
><uri
>http://blog.case.edu/gps10</uri
></author
></entry
><entry
><title
>Spotting a Wannabe Web Standards Advocate</title
><link href="http://blog.case.edu/jeremy.smith/2007/12/28/spotting_a_wannabe_web_standards_advocate"
 /><id
>http://blog.case.edu/jeremy.smith/2007/12/28/spotting_a_wannabe_web_standards_advocate</id
><published
>2007-12-28T17:29:07Z</published
><updated
>2008-01-23T23:58:38Z</updated
><category term="html" label="html"
 /><category term="linkblog" label="linkblog"
 /><category term="markup" label="markup"
 /><category term="semantic web" label="semantic web"
 /><category term="web" label="web"
 /><category term="web 2.0" label="web 2.0"
 /><category term="web standards" label="web standards"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>Oldie but goodie &#8212; 
<a title="HOWTO Spot a Wannabe Web Standards Advocate" href="http://hsivonen.iki.fi/wannabe/">HOWTO Spot a Wannabe Web Standards Advocate</a>. They're not numbered, but if they were, I especially like 8, 12, 13, and 21 (the last one).</div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
><entry
><title
>Observer's RSS Feed</title
><link href="http://blog.case.edu/jeremy.smith/2006/12/14/observers_rss_feed"
 /><id
>http://blog.case.edu/jeremy.smith/2006/12/14/observers_rss_feed</id
><published
>2006-12-14T20:51:11Z</published
><updated
>2006-12-14T20:55:29Z</updated
><category term="Web Services" label="Web Services"
 /><category term="linkblog" label="linkblog"
 /><category term="observer" label="observer"
 /><category term="rss" label="rss"
 /><category term="syndicated feeds" label="syndicated feeds"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>Just in time for 
<a href="http://wiki.case.edu/Winter_Break">Winter Break</a>, 
<a title="The Observer" href="http://observer.case.edu/">The Observer's</a> 
<a title="The Observer" href="http://observer.case.edu/feed.xml">RSS feed</a> is back! 
<a title="Jeremy Smith's blog: Observer's Broken Feed" href="http://blog.case.edu/jms18/2006/09/29/observer_broken_feed">Finally</a>! Just one note, can you guys change the 
<code>&lt;link&gt;</code> element from 
<code>http://observer</code> to 
<code>http://observer.case.edu</code>? Not using a 
<acronym title="Fully Qualified Domain Name">FQDN</acronym> doesn't make sense.</div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
><entry
><title
>I Really Want the Course Schedule in XML</title
><link href="http://blog.case.edu/gps10/2006/10/25/i_really_want_the_course_schedule_in_xml"
 /><id
>http://blog.case.edu/gps10/2006/10/25/i_really_want_the_course_schedule_in_xml</id
><published
>2006-10-26T03:54:15Z</published
><updated
>2006-10-26T04:11:23Z</updated
><category term="Case IT" label="Case IT"
 /><category term="XML" label="XML"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>There are few things I want more than Case's course schedule in XML format. Why do I want the course schedule in XML so badly? The very presence of this information is a machine-readable format (we're not talking about convoluted HTML throught the official site) would be the impetus for new services around campus. Here are a few:
<ul>
<li>A new course evaluation system that can easily keep tabs on professors, cross-listed courses, individual students, etc</li>
<li>Classes can easily be imported into all types of calendars.</li>
<li>Using the geographic positions on the Case Wiki, it would be possible for students to input their course schedule and view a map of their daily walking schedule, complete with estimated times.</li>
</ul>I'm sure there would be more, but those are just the ones I can think of now. If you throw in the ability for students to read their DPR in XML, you get all kinds of crazy possibilities. For example, an application that creates a course schedule, but is optimized so you don't have to wake up until 11 or don't have class on Friday. It is simply not enough for data to be on the net. It must be readable in machine form. It is amazing the innovative ideas that stem from just the presence of information. It is a shame we currently don't get to experience those (or at least that many of them) at Case. If only all sites were like the Case Wiki (reasons: 
<a href="http://wiki.case.edu/Special:ExportRDF">1</a>, 
<a href="http://wiki.case.edu/Special:GraphStructure">2</a>, 
<a href="http://wiki.case.edu/Special:WikiFeeds">3</a>, 
<a href="http://wiki.case.edu/Special:Export">4</a>).</div
></content
><author
><name
>Gregory Szorc</name
><email
>gregory.szorc@case.edu</email
><uri
>http://blog.case.edu/gps10</uri
></author
></entry
><entry
><title
>Planet Planet! Powered Planet Case</title
><link href="http://blog.case.edu/jeremy.smith/2006/06/09/planet_case"
 /><id
>http://blog.case.edu/jeremy.smith/2006/06/09/planet_case</id
><published
>2006-06-09T22:13:00Z</published
><updated
>2006-06-09T22:14:29Z</updated
><category term="Blog@Case Developments" label="Blog@Case Developments"
 /><category term="blog@case" label="blog@case"
 /><category term="case blog" label="case blog"
 /><category term="mainblog" label="mainblog"
 /><category term="rss" label="rss"
 /><category term="syndicated feeds" label="syndicated feeds"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>I spent a little bit of time hacking on 
<a title="Planet Planet!" href="http://www.planetplanet.org/">Planet Planet!</a> to see if I could get it to power 
<a title="Planet Case" href="http://planet.case.edu/">Planet Case</a>. I was able to whip out a slightly "weeded" OPML file located at 
<a href="http://planet.case.edu/opml">http://planet.case.edu/opml</a> and generated this site using Planet Planet! &#8212; 
<a title="Planet Case" href="http://planet.case.edu/beta/">Planet Case Beta</a>. Not sure what to do now, though. That's the defacto skin, and I don't particularly care for its organization. I'd like to change that. Also, comment/trackback counts don't propagate through, and getting that to work will take some serious hackery. I don't plan on getting rid of the original 
<a title="Planet Case" href="http://planet.case.edu/">Planet Case</a>, but I may regulate that over to http://planet.case.edu/old or something and replace it with Planet Planet! Planet Planet! will provide a bit more flexibility. I'll be able to weed out some blogs from appearing; I'll be able to include external blogs to participate; better control over the sorting of entries and such. It's just going to take me a little more time than I had hoped because of the comments/trackback counts. If you have any comments, feel free to chime in. If you have any design skills, HTML/CSS prototypes are welcome for the design of the new Planet Case. All right, I've gotta get back to the stuff I put to the side while I spent a couple of hours and indulged myself in this.</div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
><entry
><title
>The Creaking Noises of Moving the Abstraction Layer Upwards</title
><link href="http://blog.case.edu/jeremy.smith/2006/05/05/xml_abstraction_and_microformats"
 /><id
>http://blog.case.edu/jeremy.smith/2006/05/05/xml_abstraction_and_microformats</id
><published
>2006-05-05T18:37:03Z</published
><updated
>2006-05-05T18:35:36Z</updated
><category term="atom" label="atom"
 /><category term="mainblog" label="mainblog"
 /><category term="microformats" label="microformats"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>
<a title="open.itworld.com - Master Foo's Taxation Theory of Microformats" href="http://open.itworld.com/4934/nls_ebiz_mastfoo060502/page_1.html">Master Foo's Taxation Theory of Microformats</a>
<blockquote>"Perhaps we can hide custom XML languages *inside* these standard XML languages, using them as general-purpose semantic containers. We could arrange that XHTML files or ODT files look and feel like ordinary files to XHTML-aware or ODT-aware tools and yet, inside these files we can hide the semantic information we would normally use a custom XML schema for."</blockquote>Directly related to 
<a title="ongoing" href="http://www.tbray.org/ongoing/">Tim Bray's</a> 
<a title="ongoing &#239;&#191;&#189; Don&#226;&#8364;&#8482;t Invent XML Languages" href="http://www.tbray.org/ongoing/When/200x/2006/01/08/No-New-XML-Languages">Don&#226;&#8364;&#8482;t Invent XML Languages</a>. If you find yourself inventing an XML language/dialect/vocabulary/whatever-you-want-to-call-it, 
<strong>stop</strong> and think to yourself, "maybe I can just hide these semantics inside XHTML or Atom" (or possibly ODT or (on an outside shot) RDF, if you must).</div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
><entry
><title
>Lo-REST and Hi-REST</title
><link href="http://blog.case.edu/jeremy.smith/2006/03/19/rest"
 /><id
>http://blog.case.edu/jeremy.smith/2006/03/19/rest</id
><published
>2006-03-19T18:47:13Z</published
><updated
>2006-03-19T23:46:34Z</updated
><category term="HTTP" label="HTTP"
 /><category term="Web Services" label="Web Services"
 /><category term="mainblog" label="mainblog"
 /><category term="rest" label="rest"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>Via 
<a title="Dare Obasanjo aka Carnage4Life" href="http://www.25hoursaday.com/weblog">Dare Obasanjo's</a> post 
<a title="Dare Obasanjo aka Carnage4Life - ETech 2005 Trip Report: Building a New Web Service at Google" href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=83ec4876-7578-418c-8335-a3b0a147037b">ETech 2005 Trip Report: Building a New Web Service at Google</a>, this presentation 
<a title="Launching the Google AdWords API" href="http://buzz.blogger.com/media/minar-etech-2005.ppt">Launching the Google AdWords API</a>:
<dl>
<dt>Lo-REST (also called PoX/HTTP or "Plain old XML over HTTP")</dt>
<dd>the use of HTTP GET (or equiv) for information retrieval/query</dd>
<dt>Hi-REST</dt>
<dd>the use of HTTP PUT and DELETE (or equiv) for doing update.</dd>
</dl></div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
><entry
><title
>Copying and Pasting Structured XML Content Between Web Sites</title
><link href="http://blog.case.edu/jeremy.smith/2006/03/07/copying_and_pasting_structured_xml_content_between_web_sites"
 /><id
>http://blog.case.edu/jeremy.smith/2006/03/07/copying_and_pasting_structured_xml_content_between_web_sites</id
><published
>2006-03-07T17:53:03Z</published
><updated
>2006-03-07T17:53:41Z</updated
><category term="linkblog" label="linkblog"
 /><category term="microformats" label="microformats"
 /><category term="web" label="web"
 /><category term="web 2.0" label="web 2.0"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>
<a title="Created by Camtasia Studio 3" href="http://spaces.msn.com/editorial/rayozzie/demo/liveclip/screencast/webtoweb/WebToWeb.html">Spiffy!</a> (Original blog entry &#8211; 
<a title="Ray Ozzie: Wiring the Web" href="http://spaces.msn.com/rayozzie/blog/cns!FB3017FBB9B2E142!285.entry?_c11_blogpart_blogpart=blogview&amp;_c=blogpart#permalink">Wiring the Web</a> &#8211; and more 
<a title="Live Clipboard Screencasts" href="http://spaces.msn.com/editorial/rayozzie/demo/liveclip/screencast/liveclipdemo.html">screencasts</a>.) It's a way to copy-n-paste structured XML content between web sites.</div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
><entry
><title
>The Beauty of XML and Middleware</title
><link href="http://blog.case.edu/gps10/2005/11/30/the_beauty_of_xml_and_middleware"
 /><id
>http://blog.case.edu/gps10/2005/11/30/the_beauty_of_xml_and_middleware</id
><published
>2005-12-01T02:35:41Z</published
><updated
>2005-12-01T03:02:49Z</updated
><category term="Case IT" label="Case IT"
 /><category term="XML" label="XML"
 /><category term="syndicated feeds" label="syndicated feeds"
 /><category term="web services" label="web services"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>Earlier today, I realized what happens when you don't provide others a way to easily access your information; people invent the wheel again. I was in a 
<a href="http://wiki.case.edu/USG">USG</a> tech meeting and we were talking about calendars, something that has been addressed numerous times on Blog@Case. USG is developing a calendaring system that we hope becomes the principle calendar used to reference student events. Apparently we are talking about getting it integrated with those plasma tv's all around campus, but I'm not sure how that is going to happen. Anyway, we were trying to list all of the student-centered calendars on campus and how they were operated. We weren't sure if the UPB calendar was in a database, so, using my root access on the server, I checked it. While I was there, I noticed some alarming database tables. These tables served to track student group membership, something that USG does already through the 
<a href="http://wiki.case.edu/USG_Finance_System">USG Finance System</a>. I checked their web site, and sure enough they had a basic identity management system set up. Even though USG is the principle authority on this data, someone else has chosen to reproduce the data. Why? Because they don't have access to the data. This is where web services (i.e. middleware) comes to the rescue. The author of UPB's web site apparently does not know about 
<a href="http://usg.case.edu/funding/webservice.php">http://usg.case.edu/funding/webservice.php</a>. This little script allows you to query the USG database for all sorts of information, including a list of student groups on campus as well as detailed information about these student groups, including membership. You can even get a list of future events. All of the data is transferred in XML, so it can be easily read by computers. If every major service at Case offered some kind of 
<a href="http://wiki.case.edu/syndicated_feed">syndicated feed</a>, life would be a better place. I loathe having to log in to Blackboard to check info instead of reading my news reader. I hate having to visit www.case.edu to find the latest news. Most of all, I hate having to visually inspect a handful of calendars to find relevant events. Some day, people will realize that others have a need for the information they possess and will make this information easily available for anyone to read. Publishing information has the unintended consequence that others will use the information in a manner not initially conceived. Think about this scenario: Case course information is published via a web service. Also, your DPR is accessible in XML form. The official course list web site can query the course list service to retrieve information matching a student's request. The DPR service can be queried by the Portal to display your DPR. The unintended consequence is sometime down the road, a student has a senior project that uses the two to create a service that automatically creates your schedule for you by looking for needed requirements on your DPR and cross-referencing this with classes available. It could even optimize your schedule! Another scenario is that course survey results can be accessible in XML form (already a reality if you know about 
<a href="http://zorro.case.edu/screw/">SCREW</a>. Unintended consequence, a programmer with a good background in statistics creates a program that does statistical analysis on these results. This is extremely beneficial for internal benchmarking purposes. And, after these first two unintended consquences occur, then someone else comes along and optimizes your schedule based upon the average rating of the professors teaching the courses. Far from reality? Not really. There are just too many people out there who cling to their belief that data belongs to them and them only. Until these zealots are forced out of their selfish, hoarding ways, we are left complaining about the current state of unorganized information.</div
></content
><author
><name
>Gregory Szorc</name
><email
>gregory.szorc@case.edu</email
><uri
>http://blog.case.edu/gps10</uri
></author
></entry
><entry
><title
>Calendaring Services</title
><link href="http://blog.case.edu/jeremy.smith/2005/11/29/calendaring_services"
 /><id
>http://blog.case.edu/jeremy.smith/2005/11/29/calendaring_services</id
><published
>2005-11-29T19:07:17Z</published
><updated
>2005-11-29T19:13:03Z</updated
><category term="Failures of Technology" label="Failures of Technology"
 /><category term="IT in Higher Ed" label="IT in Higher Ed"
 /><category term="calendar" label="calendar"
 /><category term="mainblog" label="mainblog"
 /><category term="syndicated feeds" label="syndicated feeds"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>
<p>From 
<a title="Survey hey hey!!!" href="http://home.cwru.edu/sis/modpl/forum/threaded?message_id=0001xz">home.cwru.edu: Calendaring Survery</a>:</p>
<blockquote>
<p>I am doing an English 398N project and as part of that project my group has created 
<a href="http://www.surveymonkey.com/s.asp?u=109751543253">a survey</a> to determine the anticipated need and usage of an all-campus event and activity calendar</p>
<blockquote>
<p>Some fellow sophomores and I have started an initiative (caleld the DO campaign) to produce a campus-wide activities calendar, resulting from some brainstorming at the Second Year Insitute. We've already approached VP Glenn Nichols about this and even have a programmer to do the coding. We'd be happy to get in touch with you, if you'd like!</p>
</blockquote>
</blockquote>
<p>It's sad that we have 
<a href="#partialCalendarList">so many "calendars" on campus</a>, and yet, none of them are a good enough service to reach the tipping point where everyone uses them.</p>
<p>Some people, when reading the above, undoubtedly think, "well, what we need is the 
<em>one true</em> calendaring application that everyone will use!" Other people may think, "we'll just make a University mandate that says everyone 
<em>has</em> to use this specific calendar." (Because that always works well &#8212; dictation to your customers and your users instead of providing them with services that they elect to use.)</p>
<p>When I hear about the problem, I think, "well, if all of the different calendars exposed their data, we could just aggregate them into one 'calendaring space.'" "That is, everyone gets to use their own little calendaring application/service/thing-a-ma-bob, and we provide a service that pulls all of them together for display." Basically, if each separate calendaring service exposed its data in an XML format such as RSS or Atom (or even in just a publicly exposed iCal/vCal format), we could build a service that spliced all of that disparate data together and displayed it in a calendar view. (Yea, this is the essence of 
<a title="Jeremy Smith's blog: What's Middleware" href="http://blog.case.edu/jms18/2005/01/20/whats_middleware">Middleware</a>.)</p>
<p>Back in the beginning of this summer when 
<a title="Gregory Szorc's blog" href="http://blog.case.edu/gps10/">Greg</a> first started working for us, he was supposed to do a project with the calendar.case.edu system. I wanted him to do precisely what I describe above &#8212; a calendaring aggregator system. With that framework available, we could both go off and develop plugins for some of the major calendaring apps (like the Oracle Calendar, WebEvents, Exchange, etc.) so that they would emit their data in RSS/Atom. Then, we just aggregate it all together in the calendar aggregator. But, the idea gained no traction and Greg ended up doing something else with the Oracle Calendar (I can't even remember what it was and don't believe it amounted to a deliverable) before he went on to do the 
<a title="Main Page - CaseWiki" href="http://wiki.case.edu/Main_Page">Case Wiki</a> and 
<a title="Case Central Authentication Service" href="https://login.case.edu/">Case Central Authentication Service</a>.</p>
<p>It's too bad the calendar aggregator was never able to get off the ground. Hopefully, the students out there right now talking in the forums can generate an idea like this.</p>
<p style="margin-top: 20px;">
<a name="partialCalendarList" href="#partialCalendarList" id="partialCalendarList">Partial Calendar List</a> (there are so many)</p>
<ul>
<li>
<a title="calendar.case.edu" href="https://calendar.case.edu">calendar.case.edu</a>
</li>
<li>
<a title="WebEvent: Two Weeks starting on November 27, 2005" href="http://www.case.edu/cgi-bin/publish/webevent.pl">WebEvent Calendar</a>
</li>
<li>
<a title="Undergraduate Student Government - Case Western Reserve University" href="http://usg.case.edu/events/">Undergraduate Student Government Event Calendar</a>
</li>
<li>
<a title="University Programming Board" href="http://upb.case.edu/2005/11/?cal">University Programming Board Event Calendar</a>
</li>
<li>
<a title="The Office of Greek Life at Case" href="http://greeklife.case.edu/default.asp?id=57&amp;mnu=57">Greek Life Event Calendar</a>
</li>
<li>
<a title="calendar.pdf (application/pdf Object)" href="http://studentaffairs.case.edu/athletics/club/doc/calendar.pdf">Case Sport Club Calendar</a>
</li>
<li>
<a title="Five-Year Academic Calendar (2004-2009)" href="http://www.case.edu/provost/registrar/calendars/5year.html">Academic Calendar</a>
</li>
<li>
<a title="Men's Basketball Schedule" href="http://www.case.edu/athletics/varsity/winter/mbasketball/schedule.htm">Men's Basketball Schedule</a>
</li>
<li>
<a title="Weatherhead Event Calendar" href="http://weatherhead.case.edu/wsomCalendar/event.cfm">Weatherhead Event Calendar</a>
</li>
<li>
<a title="Case Law School - Lectures" href="http://law.case.edu/lectures/">Case Law School Lectures Calendar</a>
</li>
<li>
<a title="WebCalendar" href="http://library.case.edu/ksl/calendar/view_l.php?id=3">KSL Calendar</a>
</li>
<li>And 
<a title="ITAC Calendar" href="http://www.case.edu/its/itac/calendar.htm">more</a> and 
<a title="UCITE: Events" href="http://www.cwru.edu/cgi-bin/AuroraCGI/ucite/events.cgi">more</a> and 
<a title="Case Medicine: Office of Public Affairs Calendar of Events" href="http://casemed.case.edu/public_affairs/communique/index.cfm">more</a>...</li>
</ul>
</div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
><entry
><title
>Use the Portal as a News Aggregator</title
><link href="http://blog.case.edu/jeremy.smith/2005/11/22/use_the_portal_as_a_news_aggregator"
 /><id
>http://blog.case.edu/jeremy.smith/2005/11/22/use_the_portal_as_a_news_aggregator</id
><published
>2005-11-23T00:53:07Z</published
><updated
>2005-11-23T00:53:06Z</updated
><category term="aggregator" label="aggregator"
 /><category term="mainblog" label="mainblog"
 /><category term="portal" label="portal"
 /><category term="syndicated feeds" label="syndicated feeds"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>I did a naughty thing today. I turned the 
<a href="http://my.case.edu">portal</a> into a news aggregator. I don't recommend doing this. One, it is not trivial to do. I spent a lot of time clicking on widget this and thing-a-majig that. Lots of 
<b>X</b>'s were targetted. At one point in time, I had it so screwed up, it really wasn't even rendering (
<strong>*warning:*</strong> do 
<em>not</em> "View Source" on the portal, especially if you are a web developer... you might not recover). But, after much time finangling with things, I got it to "work." Two, there are some problems parsing the contents of RSS. A lot of the time, the HTML payloads of items ended up displaying the markup in-line with the content (that is why everything is headline's only in the screenshot). It doesn't seem to work with the Atom format. And three, the Portal isn't a news aggregator; so you just shouldn't do it. If you want a news aggregator, use 
<a href="http://bloglines.com">Bloglines</a>. I did it just to see what would happen and if I even could do it. Also, once you remove the extraneous clutter, you really start believing (though, I have been believing this for a while now) that syndicated news feeds have totally and completely eclipsed 
<a title="JSR-000168 Portlet Specification - Final Release" href="http://www.jcp.org/aboutJava/communityprocess/final/jsr168/">JSR168</a> and 
<a title="OASIS Web Services for Remote Portlets (WSRP) TC" href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrp">WSRP</a>. All right, so anyways, here's a screenshot: 
<a href="http://blog.case.edu/jms18/2005/11/22/portal-news-aggregator.png">
<img alt="portal-news-aggregator.png" src="http://blog.case.edu/jms18/2005/11/22/portal-news-aggregator-thumb.png" width="506" height="395" />
</a></div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
><entry
><title
>Mass Communication</title
><link href="http://blog.case.edu/jeremy.smith/2005/11/16/mass_communication"
 /><id
>http://blog.case.edu/jeremy.smith/2005/11/16/mass_communication</id
><published
>2005-11-16T22:07:59Z</published
><updated
>2005-11-16T22:13:48Z</updated
><category term="Email Services" label="Email Services"
 /><category term="Failures of Technology" label="Failures of Technology"
 /><category term="case blog" label="case blog"
 /><category term="mainblog" label="mainblog"
 /><category term="sympa" label="sympa"
 /><category term="syndicated feeds" label="syndicated feeds"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>So 
<a title="Gregory Szorc's blog" href="http://blog.case.edu/gps10/">Greg</a> started the thread with 
<a title="Gregory Szorc's blog: Too Many Newsletters" href="http://blog.case.edu/gps10/2005/11/16/too_many_newsletters">Too Many Newsletters</a>. I responded in 
<a title="Jeremy Smith's blog: Too Many Newsletters Probably Means Alternate Communication Paths Need to be Employed" href="http://blog.case.edu/jms18/2005/11/16/newsletters">Too Many Newsletters Probably Means Alternate Communication Paths Need to be Employed</a>. 
<a title="Aaron Shaffer" href="http://blog.case.edu/axs221/">Aaron Shaffer</a> chimed in with 
<a title="Aaron Shaffer: Mass Communication at Case" href="http://blog.case.edu/axs221/2005/11/16/mass_communication_at_case">Mass Communication at Case</a>. (Just in case you need to catch up on the thread.) I've done some further thinking about this and have brought it up in a meeting. There was much discussion. I am going to mention that discussion here and respond to a couple of things Aaron said. From 
<a title="Aaron Shaffer: Mass Communication at Case" href="http://blog.case.edu/axs221/2005/11/16/mass_communication_at_case">Aaron</a>:
<blockquote>I think all mass communication should be handled by the department of communications here at Case.</blockquote>It is. All mass emails end up going through 
<a title="Marketing &amp; Communications: Case Western Reserve University" href="http://www.case.edu/univrel/marcomm/">Marketing &amp; Communications</a>. I think the problem is, the people sending out the mass emails may not know or may not know how to use the other avenues of communication. (This is what we talked about in the meeting -- ways in which we could promote these other avenues.) Right now, we may have a case of "functional fixedness"; it may be perceived that all there is is email. We need a way to change that. It's going to get easier and easier to send out mass emails. That's one of the goals of one of the projects I am working on. Designated people will be able to sit at an email client of their choosings, send out a mass email, that email will go to a moderation queue, a certain select group of "Mass Communication Custodians" will get notified something is waiting for their approval, and they can approve it for dissemination. It's only going to get easier, which means there will be more of it. What we need is to raise the level of awareness of the other avenues of communication. And, we need to raise the awareness of the tools we have on campus that facilitate them. Leverage the 
<a href="http://blog.case.edu">Blog system</a> for your department or organization's web page so you can have 
<a href="http://wiki.case.edu/XML_feeds">XML feeds</a> and email susbscriptions to your updates like the 
<a title="Information Technology Services at Case" href="http://www.case.edu/its">ITS homepage</a>. Use 
<a title="Case Mailing List Manager" href="https://lists.case.edu/">lists.case.edu</a> to hand create your groups. People will be able to opt-in and opt-out (though, that can be disabled for a given list), but you can prepopulate a list with whomever you want. An email to 
<a href="mailto:listmaster@case.edu">listmaster@case.edu</a> (depending on your requirements) can even have your list automatically prepopulated with our Directory data. I think that in between these:
<ul>
<li>XML feeds for web sites built leveraging the blog system</li>
<li>Email subscriptions to web sites built from the blog system</li>
<li>Hand-edited, opt-out-able Sympa lists</li>
<li>Hand-edited, non-opt-out-able Sympa lists</li>
<li>Pre-populated, opt-out-able Sympa lists</li>
<li>And, Pre-populated, non-opt-out-able Sympa lists</li>
</ul>We have an excellent set of tools at the disposal of those wanting to effectively communicate with groups on campus in ways that won't barrage and irritate them. What is needed is guidance and documentation... lots of documentation. And, whaddya know, we have a 
<a href="http://wiki.case.edu">wiki</a> for documentation. Pages full of screen shots and step-by-step tutorials and informative descriptions on the different technologies should exist. Something like 
<a href="http://wiki.case.edu/Howto:Communicate_with_the_students">http://wiki.case.edu/Howto:Communicate_with_the_students</a> or 
<a href="http://wiki.case.edu/Howto:Reach_the_students">http://wiki.case.edu/Howto:Reach_the_students</a> explaining all of this and detailing the options, when the options are applicable, and why the options are better (in some circumstances) than mass emails. It will probably need broken down into sections like 
<a href="http://wiki.case.edu/Howto:Create_XML_feeds_at_Case">http://wiki.case.edu/Howto:Create_XML_feeds_at_Case</a>, 
<a href="http://wiki.case.edu/Howto:Setup_email_subscriptions_to_my_Case_website">http://wiki.case.edu/Howto:Setup_email_subscriptions_to_my_Case_website</a>, 
<a href="http://wiki.case.edu/Howto:Create_a_mailing_list_for_my_newsletters">http://wiki.case.edu/Howto:Create_a_mailing_list_for_my_newsletters</a>, etc. I may take a stab at it, but I don't know how much time I'll be able to devote to it. I have a 
<a title="Blog@Case: Intermittent Failures" href="http://blog.case.edu/news/2005/11#intermittent_failures">blog/wiki/planet/topics/mysql/subversion server on the fritz</a> with a rapidly depleting supply of any hardware to move it to, the whole project about fixing the mass email system, an authentication web service for 
<a href="http://wiki.case.edu/CAS">CAS</a>, and day-to-day ops to worry about (not to mention all these blog entries 
<b>*whew*</b>). But, I'll see if I can get something jumpstarted.</div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
><entry
><title
>News Aggregators: Not Just for Blogs</title
><link href="http://blog.case.edu/jeremy.smith/2005/10/26/news_aggregators_not_just_for_blogs"
 /><id
>http://blog.case.edu/jeremy.smith/2005/10/26/news_aggregators_not_just_for_blogs</id
><published
>2005-10-26T21:13:01Z</published
><updated
>2005-10-26T21:18:21Z</updated
><category term="Web Services" label="Web Services"
 /><category term="aggregator" label="aggregator"
 /><category term="knowledge management" label="knowledge management"
 /><category term="mainblog" label="mainblog"
 /><category term="syndicated feeds" label="syndicated feeds"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>So, you're an 
<a href="http://wiki.case.edu/ITS">IT Professional</a> at 
<a title="Case Western Reserve University" href="http://www.case.edu/">Case</a>; and you're still a little bewildered about 
<a href="http://wiki.case.edu/xml_feeds">syndicated XML feeds</a>. "Aren't they just for blogs?" you think to yourself. "I don't care what a bunch of whiney LiveJournal users are doing." 
<a href="http://wiki.case.edu/News_Aggregators">News Aggregators</a> aren't just for blogs. They are for information and managing information. For example: 
<a title="Google Blog Search: link:www.case.edu" href="http://blogsearch.google.com/blogsearch_feeds?hl=en&amp;q=link%3Awww.case.edu&amp;btnG=Search+Blogs&amp;num=10&amp;output=atom">Keeping track of people who talk about Case</a> 
<a title="" href="https://its-wiki.case.edu/feed.php">Documentation changes on our internal wiki</a> 
<a title="Google Blog Search: link:my.case.edu" href="http://blogsearch.google.com/blogsearch_feeds?hl=en&amp;q=link%3Amy.case.edu&amp;btnG=Search+Blogs&amp;num=10&amp;output=atom">People talking about my.case.edu</a> 
<a title="Google Search: case western" href="http://news.google.com/news?hl=en&amp;ned=&amp;q=case+western&amp;ie=UTF-8&amp;output=atom&amp;ned=:ePkh8BM9E0LYwQq0w4CVoC0AkpgG2w">Google News on Case Western</a> 
<a title="Google News - Sci/Tech" href="http://news.google.com/news?topic=t&amp;output=atom&amp;ned=:ePkh8BM9E0LYwQq0w4CVoC0AkpgG2w">Google News on Science and Technology</a> 
<a title="Jamie Lewis - CEO and Research Chair" href="http://www.burtongroupblogs.com/jamielewis/atom.xml">The Burton Group</a> 
<a title="CNN.com - Breaking News, U.S., World, Weather, Entertainment and Video News" href="http://www.cnn.com/services/rss/">CNN.com</a> And, of course, 
<a title="Jeremy Smith's blog" href="http://blog.case.edu/jms18/feed.atom">my blog</a>. Give it a whirl. Go to 
<a title="Bloglines" href="http://www.bloglines.com/">Bloglines</a> and subscribe to those items. I'll apologize in advance for the fish scales that will fall out of your eyes and onto your laps after using an aggregator.</div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
><entry
><title
>The Future of the Internet and How It May Relate to the Enterprise</title
><link href="http://blog.case.edu/jeremy.smith/2005/09/23/future_enterprise_decisions"
 /><id
>http://blog.case.edu/jeremy.smith/2005/09/23/future_enterprise_decisions</id
><published
>2005-09-23T19:23:13Z</published
><updated
>2005-09-23T19:25:34Z</updated
><category term="General Information Technology" label="General Information Technology"
 /><category term="Web Services" label="Web Services"
 /><category term="enterprise systems" label="enterprise systems"
 /><category term="folksonomy" label="folksonomy"
 /><category term="information architecture" label="information architecture"
 /><category term="it" label="it"
 /><category term="knowledge management" label="knowledge management"
 /><category term="mainblog" label="mainblog"
 /><category term="middleware" label="middleware"
 /><category term="semantic web" label="semantic web"
 /><category term="software" label="software"
 /><category term="syndicated feeds" label="syndicated feeds"
 /><category term="tagging" label="tagging"
 /><category term="topics" label="topics"
 /><category term="web" label="web"
 /><category term="web 2.0" label="web 2.0"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>More reading material for y'all in 
<a title="7 opposing choices in the future of the Internet" href="http://www.oreillynet.com/pub/wlg/7888">7 opposing choices in the future of the Internet</a>. And, of course, I'll pull relevant quotes here for your perusal and to whet your appetite.
<blockquote>companies used to seek 'all in one' solutions which could, for example, create all your data, manage it, keep it under workflow and versioning, apply access control, publish it, and give you statistics on its use, is there now an emerging trend to use multiple pieces of simpler software that each delivers a specific function?</blockquote>It's the 
<a title="Basics of the Unix Philosophy" href="http://www.faqs.org/docs/artu/ch01s06.html">Unix philosophy</a> (paraphrased: "do one thing and do it 
<strong>well</strong>") applied to the Enterprise. It's about time that started to take hold. I am a firm believer in it &#8212; small loosely-coupled but tightly integrated systems rather than monolithic all-in-one salesmens bread-and-butter systems. (More reading on this lines at 
<a title="Jeremy Smith's blog: The Term " and="" how="" it="" is="" applied="" to="" software="" technical="" or="" href="http://blog.case.edu/jms18/2005/08/10/enterprise_software">The Term "Enterprise" and How It is Applied to Software &#226;&#8364;&#8221; Technical or Social?</a>).
<blockquote>...are we going to see the communal development of one or more 'standardised' taxonomies? ... Arguably, folksonomies are currently so popular (and conversely, standardised global taxonomies rare) because of the lack of (or necessity of) thinking about the bigger picture, and fitting in with the work of others. Folksonomies are built and evolved quickly because of this lack of process and red-tape.</blockquote>He mentions the use of 
<abbr title="Resource Description Framework">RDF</abbr> as ways to help develop machine readable representations of 
<a href="http://wiki.case.edu/folksonomies">folksonomies</a>. I am using the 
<a href="http://wiki.case.edu/Atom">Atom</a> syndication format to do just that with 
<a title="Blog@Case: Topics" href="http://blog.case.edu/topics">Blog@Case: Topics</a> and the still forming 
<a href="http://Topics.case.edu">Topics.case.edu</a>.
<blockquote>could email be on its way out? Or will it be given a new lease of life through the injection of digital signatures, encryption, and new technologies that let us ensure delivery, receipt, and limit maliciousness?</blockquote></div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
><entry
><title
>Screensaver</title
><link href="http://blog.case.edu/jeremy.smith/2005/09/22/screensaver"
 /><id
>http://blog.case.edu/jeremy.smith/2005/09/22/screensaver</id
><published
>2005-09-22T22:23:17Z</published
><updated
>2005-09-22T22:23:21Z</updated
><category term="Blog@Case Developments" label="Blog@Case Developments"
 /><category term="Web Services" label="Web Services"
 /><category term="atom" label="atom"
 /><category term="blog" label="blog"
 /><category term="blog@case" label="blog@case"
 /><category term="mainblog" label="mainblog"
 /><category term="syndicated feeds" label="syndicated feeds"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>So, there's a couple of people working on this 
<a title="Screen Saver - CaseWiki" href="http://wiki.case.edu/Screen_Saver">Screen Saver</a> project that will read RSS streams and display photos contained therein thus comprising the screen saver. It seems a whole lot better than the screen savers currently found in the computer labs that feature the windows icon blinking in and out of existence. So, I thought to myself, "I wonder if pictures uploaded to the 
<a title="Blog@Case" href="http://blog.case.edu/">Case Blog system</a> could be used?" "I suppose they could just monitor 
<a title="Planet Case" href="http://planet.case.edu/">Planet Case's</a> 
<a href="http://planet.case.edu/rss20.xml">XML feeds</a> and parse out 
<code>img</code> tags." But, that seemed entirely undesirable. What would be better is if the blog system collected all of the recently uploaded pictures in one place and provided an 
<a href="http://wiki.case.edu/XML_Feed">XML Feed</a> of those. I don't know... something like 
<a title="Blog@Case Photos" href="http://blog.case.edu/photos">http://blog.case.edu/photos</a>. Ahh... perfect.</div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
><entry
><title
>Case Western Global Security Blog</title
><link href="http://blog.case.edu/jeremy.smith/2005/09/14/case_western_global_security_blog"
 /><id
>http://blog.case.edu/jeremy.smith/2005/09/14/case_western_global_security_blog</id
><published
>2005-09-14T17:07:01Z</published
><updated
>2005-09-14T19:27:41Z</updated
><category term="Weblog Tech" label="Weblog Tech"
 /><category term="atom" label="atom"
 /><category term="blog" label="blog"
 /><category term="blogs in academia" label="blogs in academia"
 /><category term="case" label="case"
 /><category term="case blog" label="case blog"
 /><category term="mainblog" label="mainblog"
 /><category term="rss" label="rss"
 /><category term="semantic web" label="semantic web"
 /><category term="syndicated feeds" label="syndicated feeds"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>This is the first 
<strong>I</strong> have heard of this (others may have heard about it before), but 
<a href="http://www.case.edu">Case Western's</a> 
<a href="http://law.case.edu">Law School</a> has a 
<a title="Institute for Global Security Law and Policy" href="http://law.case.edu/terrorism/">Global Security Law &amp; Policy Blog</a>. I found it via the new 
<a title="Google Blog Search" href="http://blogsearch.google.com/">Google Blog Search</a> for the terms 
<a title="Google Blog Search: Case Western" href="http://blogsearch.google.com/blogsearch?q=Case%20Western">Case Western</a>. Yet another good reason your web site should be publishing 
<a href="http://wiki.case.edu/Syndicated_Feeds">Syndicated Feeds</a> of its content.</div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
><entry
><title
>Topics ToDo</title
><link href="http://blog.case.edu/jeremy.smith/2005/09/08/topics_todo"
 /><id
>http://blog.case.edu/jeremy.smith/2005/09/08/topics_todo</id
><published
>2005-09-09T00:01:11Z</published
><updated
>2005-09-09T00:01:41Z</updated
><category term="Blog@Case Developments" label="Blog@Case Developments"
 /><category term="Programming" label="Programming"
 /><category term="Web Services" label="Web Services"
 /><category term="atom" label="atom"
 /><category term="case wiki" label="case wiki"
 /><category term="folksonomy" label="folksonomy"
 /><category term="mainblog" label="mainblog"
 /><category term="rdf" label="rdf"
 /><category term="syndicated feeds" label="syndicated feeds"
 /><category term="tagging" label="tagging"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>
<h5 style="text-decoration: underline;">blog@case/topics ToDo</h5>
<ul>
<li>hyperlink author to his or her blog</li>
<li>browser sniff for Safari and apply XSLT server side</li>
<li>(optional) figure out how to prevent Safari from going into feed reader mode so we don't have to server-side process the XSLT</li>
<li>pull out listing of authors and display it in a side box</li>
<li>store most active and most active recently topics in RDF files</li>
<li>determine why XHTML within each entry is not getting appropriately rendered by browsers.. then, ya know... fix it</li>
<li>figure out HTML encoding issues with items such as apostrophes (especially, apostrophes)</li>
</ul>
<h5 style="text-decoration: underline;">Topics.case.edu ToDo</h5>
<ul>
<li>sort the merged feed via date stamp</li>
<li>hyperlink author to his or her blog</li>
<li>browser sniff for Safari and apply XSLT server side</li>
<li>(optional) figure out how to prevent Safari from going into feed reader mode so we don't have to server-side process the XSLT</li>
<li>pull out listing of authors and display it in a side box</li>
<li>determine why XHTML within each entry is not getting appropriately rendered by browsers.. then, ya know... fix it</li>
<li>figure out HTML encoding issues with items such as apostrophes (especially, apostrophes)</li>
<li>cache feeds routine</li>
<li>more side boxes
<ul>
<li>pull atom feed from del.icio.us/topic</li>
<li>pull atom feed for wiki search</li>
<li>pull atom feed for blog search (oh wait, there is no blog search... well, once that is done; then do it)</li>
<li>pull technorati feed for keyword search of topic</li>
</ul></li>
<li>Complete redesign of the interface</li>
<li>A front page</li>
</ul>
</div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
><entry
><title
>More Metadata on the Case Wiki -- Now With Google Maps</title
><link href="http://blog.case.edu/gps10/2005/07/28/more_metadata_on_the_case_wiki_now_with_google_maps"
 /><id
>http://blog.case.edu/gps10/2005/07/28/more_metadata_on_the_case_wiki_now_with_google_maps</id
><published
>2005-07-28T20:24:48Z</published
><updated
>2005-07-28T20:37:53Z</updated
><category term="MediaWiki" label="MediaWiki"
 /><category term="Wiki" label="Wiki"
 /><category term="XML" label="XML"
 /><category term="metadata" label="metadata"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>I have been playing around with storing metadata in the 
<a href="http://wiki.case.edu/Main_Page">Case Wiki</a>. I have gone so far as to create a Metadata namespace dedicated to the storing of metadata. I have documented my progress at 
<a href="http://wiki.case.edu/CaseWiki:XML_Embedding_Extension">CaseWiki:XML Embedding Extension</a>. There is no question whether there is a use to easily obtain metadata about objects around the university. The question is whether a wiki is the proper place to collect and store such data. A strong case can be made either way. One of the benefits of storing it in the wiki is I can bring you an enhanced 
<a href="http://wiki.case.edu/CaseWiki:Map">CaseWiki:Map</a>. When you click on a building, you can see a list of what is inside of that building. The list of what is inside a building is extracted from the metadata in real-time. Cool!</div
></content
><author
><name
>Gregory Szorc</name
><email
>gregory.szorc@case.edu</email
><uri
>http://blog.case.edu/gps10</uri
></author
></entry
><entry
><title
>hcard Example</title
><link href="http://blog.case.edu/jeremy.smith/2005/07/26/hcard_example"
 /><id
>http://blog.case.edu/jeremy.smith/2005/07/26/hcard_example</id
><published
>2005-07-26T22:37:59Z</published
><updated
>2005-07-26T22:38:46Z</updated
><category term="Web Services" label="Web Services"
 /><category term="atom" label="atom"
 /><category term="geotagging" label="geotagging"
 /><category term="mainblog" label="mainblog"
 /><category term="microformats" label="microformats"
 /><category term="syndicated feeds" label="syndicated feeds"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>So, this afternoon, I spent some time exploring 
<a title="microformats" href="http://microformats.org/">microformats</a>. More specifically, I was looking for a 
<a title="location-formats - Microformats" href="http://microformats.org/wiki/location-formats">location-based microformat</a> I could use to include in 
<a title="AtomEnabled.org" href="http://atomenabled.org/">Atom</a>, the new 
<a title="IETF Home Page" href="http://www.ietf.org/">IETF</a> 
<a title="The Atom Syndication Format RFC" href="http://www.ietf.org/internet-drafts/draft-ietf-atompub-format-10.txt">draft/soon-to-be,really-close,only-redtape-left RFC</a> syndication format which has a well-defined method for extending the format to include other XML vocabularies (like microformats). Poking around, it seemed the most well-suited format was 
<a title="hcard - Microformats" href="http://microformats.org/wiki/hcard">hcard</a>. So, I went ahead and created a simple XML hcard document &#8212; 
<a title="hcard XML for Jeremy Smith" href="http://blog.case.edu/jms18/examples/mockups/hcard/hcard.xml">hcard XML for Jeremy Smith</a>. That's just the straight XML. 
<a title="hcard Example for Jeremy Smith" href="http://blog.case.edu/jms18/examples/mockups/hcard/">Here</a> is another example with the hcard XML embedded inside some XHTML with a light sprinkling of 
<a title="hcard CSS" href="http://blog.case.edu/jms18/examples/mockups/hcard/hcard.css">some CSS</a> for presentation. I think this has legs. Not sure if embedding it in the presentation XHTML is the way to go. I think it is much better suited inside the machine readable XML (i.e. the 
<a href="http://wiki.case.edu/RSS">RSS</a> or 
<a href="http://wiki.case.edu/Atom">Atom</a> versions of the web resource), but I think that is neither here nor there.</div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
><entry
><title
>Web Services Link Dump</title
><link href="http://blog.case.edu/jeremy.smith/2005/07/26/web_services_link_dump"
 /><id
>http://blog.case.edu/jeremy.smith/2005/07/26/web_services_link_dump</id
><published
>2005-07-26T16:03:03Z</published
><updated
>2005-07-26T16:04:31Z</updated
><category term="HTTP" label="HTTP"
 /><category term="Programming" label="Programming"
 /><category term="Web Services" label="Web Services"
 /><category term="atom" label="atom"
 /><category term="mainblog" label="mainblog"
 /><category term="rest" label="rest"
 /><category term="syndicated feeds" label="syndicated feeds"
 /><category term="xml" label="xml"
 /><content type="xhtml"
><div xmlns="http://www.w3.org/1999/xhtml"
>
<ul>
<li>
<a title="Sam Ruby" href="http://www.intertwingly.net/blog/">Sam Ruby</a> 
<a title="Sam Ruby: REST vs API" href="http://www.intertwingly.net/blog/2005/07/22/REST-vs-API">REST vs API</a>
<blockquote>
<p>At some point, you need to question the wisdom of having an API which abstracts away that which is important.</p>
</blockquote></li>
<li>
<a title="Integrate This" href="http://www.coactus.com/blog/">Mark Baker</a> 
<a title="Integrate This?Blog Archive ? Towards truly document oriented Web services" href="http://www.coactus.com/blog/2005/07/towards-truly-document-oriented-web-services/">Towards truly document oriented Web services</a>
<blockquote>
<p>Web services proponents [realized] that they needed to distance themselves from RPC and its well-deserved reputation as a poor large scale integration architectural style, due to the failure of systems such as 
<a href="http://www.corba.org/">CORBA</a>, 
<a href="http://en.wikipedia.org/wiki/DCOM">DCOM</a>, and 
<a href="http://java.sun.com/products/jdk/rmi/">RMI</a> to see any widespread use on the Internet. So, sometime in 2000/2001, collective wisdom in the space shifted towards a preference for "document oriented" services. Vendors quickly jumped on board with upgraded toolkits, and that was that; documents were the New Big Thing.</p>
<p>Unfortunately, the basic architectural assumptions underlying Web services at the time, didn&#226;&#8364;&#8482;t change nearly enough to distance Web services from the problems of RPC.</p>
</blockquote></li>
<li>
<a title="Bill de hOra" href="http://www.dehora.net/journal/">Bill de h&#195;&#8220;ra</a> 
<a title="Bill de hOra: Atoms in a small world" href="http://www.dehora.net/journal/2005/07/atoms_in_a_small_world.html">Atoms in a small world</a>
<blockquote>
<p>protocol driven extensions will tend to be mutually exclusive of each other and not an 
<a href="http://www.tbray.org/ongoing/When/200x/2004/04/01/WS-Mumble">interdependent monolith</a> as Web Services have turned out to be - that will make them easier to build and get deployed.</p>
</blockquote></li>
<li>
<a title="Understanding XML" href="http://www.understandingxml.com/">Kurt Cagle</a> 
<a title="Understanding XML: How RSS/Atom Is Replacing Web Services" href="http://www.understandingxml.com/archives/2005/07/how_rssatom_is.html">How RSS/Atom Is Replacing Web Services</a>
<blockquote>
<p>While I suspect that this commentary will be poo-pooed by web services vendors, the history of the web makes me suspect I'll be right in the end. RSS syndication has emerged in a largely ad-hoc fashion to fulfill a specific need - syndication - that seems to be an intrinsic characteristic and requirement of the Internet. Syndication in turn is simply a messaging protocol built around a subscription-oriented PUSH model. If you make the syndication format too complex for people to use (as I believe is the case with SOAP) then they will migrate to simpler formats as they become available. Because ATOM is blessed by both the IETF and the W3C and is seen as an open standard (whereas questions remain concerning the precise nature and implementation of SOAP) it will likely continue to gain the mindshare of developers and users alike.</p>
</blockquote></li>
</ul>
</div
></content
><author
><name
>Jeremy Smith</name
><email
>jeremy.smith@case.edu</email
><uri
>http://blog.case.edu/jeremy.smith</uri
></author
></entry
></feed
>