<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0" xml:base="http://hobbsontech.com">
<channel>
 <title>Hobbs on Tech - Management, CMS, and Multilingual</title>
 <link>http://hobbsontech.com</link>
 <description />
 <language>en</language>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/HobbsOnTech" type="application/rss+xml" /><feedburner:emailServiceId>1345180</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><item>
 <title>Client choice via a la carte menu (using spreadsheet)</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/394729399/client-choice-la-carte-menu-using-spreadsheet</link>
 <description>&lt;p&gt;Sometimes you want to give your client a variety of options to choose from the next phase of a project.&amp;nbsp; For instance, if you are developing a web site for a client, you may wish to discuss a variety of possible features to implement.&amp;nbsp; Since it can often get confusing for both the client and yourself when negotiating different features, one approach is to give the client a spreadsheet where they can try out different combinations of features to figure out what they want to pay for (this is especially useful when both you and the client have far more ideas than will fit in the budget).&amp;nbsp; By also providing the option of tentatively planning for future phases (as well as tentatively indicating items that the client will probably never want), the client can better envision what they will get in the future as well.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;One useful way to present this is in a spreadsheet where the rows represent the features and the columns represent different possible phases -- a particularly straightforward method for the client is to allow them to mark an &amp;quot;X&amp;quot; in columns to indicate what features should be delivered when (see example spreadsheet below).&amp;nbsp; This can be accomplished using the DSUM function in Excel and other spreadsheet programs (the example below uses &lt;a href="http://www.editgrid.com/"&gt;EditGrid&lt;/a&gt;, although it can be downloaded to Excel if you wish).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here is a non-interactive example sheet (you can also &lt;a href="http://hobbsontech.com/content/sample-client-la-carte-spreadsheet"&gt;play with an interactive version of this spreadsheet&lt;/a&gt;, including moving around the selections of features in each column/phase -- WARNING for &lt;b&gt;Firefox users&lt;/b&gt;: if you are using Firebug disable it before going to the interactive version due to a bug in Firebug):&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" style="border: 9px solid rgb(102, 102, 102); height: 290px; width: 85%;" src="http://www.editgrid.com/publish/html_book/user/jdavidhobbs/client-functionality-options?bgcolor=%23ffffff&amp;amp;fgcolor=%23000000&amp;amp;version=2&amp;amp;frame_style=border%3A9px%20solid%20%23666%3Bheight%3A290px%3Bwidth%3A85%25" longdesc="http://www.editgrid.com/user/jdavidhobbs/client-functionality-options" title="An EditGrid spreadsheet created by user/jdavidhobbs"&gt;&amp;nbsp;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/394729399" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/client-choice-la-carte-menu-using-spreadsheet#comments</comments>
 <category domain="http://hobbsontech.com/category/tag/choice">choice</category>
 <category domain="http://hobbsontech.com/category/topic/communications">Communications</category>
 <category domain="http://hobbsontech.com/category/tag/spreadsheet">spreadsheet</category>
 <pubDate>Tue, 16 Sep 2008 20:30:49 -0600</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">61 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/client-choice-la-carte-menu-using-spreadsheet</feedburner:origLink></item>
<item>
 <title>Why Data is Different</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/277793609/why-data-is-different</link>
 <description>&lt;p&gt;But isn't it all data?&amp;nbsp; Although web content certainly is an important type of information available on a web site, Data needs to be treated differently.&amp;nbsp; Here I'm talking about Data with a capital D -- I thought the &lt;a href="http://en.wikipedia.org/wiki/Data"&gt;Wikipedia description&lt;/a&gt; was good: &amp;quot;&lt;b&gt;Data&lt;/b&gt; refers to a collection of organized &lt;a target="_blank" title="Information" href="http://en.wikipedia.org/wiki/Information"&gt;information&lt;/a&gt;, usually the results of &lt;a target="_blank" title="Experience" href="http://en.wikipedia.org/wiki/Experience"&gt;experience&lt;/a&gt;, &lt;a target="_blank" title="Observation" href="http://en.wikipedia.org/wiki/Observation"&gt;observation&lt;/a&gt; or &lt;a target="_blank" title="Experiment" href="http://en.wikipedia.org/wiki/Experiment"&gt;experiment&lt;/a&gt;, or a set of &lt;a target="_blank" title="Premise" href="http://en.wikipedia.org/wiki/Premise"&gt;premises&lt;/a&gt;. This may consist of &lt;a target="_blank" title="Number" href="http://en.wikipedia.org/wiki/Number"&gt;numbers&lt;/a&gt;, &lt;a target="_blank" title="Word" href="http://en.wikipedia.org/wiki/Word"&gt;words&lt;/a&gt;, or &lt;a target="_blank" title="Image" href="http://en.wikipedia.org/wiki/Image"&gt;images&lt;/a&gt;, particularly as &lt;a target="_blank" title="Measurement" href="http://en.wikipedia.org/wiki/Measurement"&gt;measurements&lt;/a&gt; or observations of a set of &lt;a target="_blank" title="Variable" href="http://en.wikipedia.org/wiki/Variable"&gt;variables&lt;/a&gt;.&amp;quot;&amp;nbsp; Here are some of the ways that Data is different:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;People expect Data to be available in different &lt;b&gt;Formats&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Users want to &lt;b&gt;manipulate&lt;/b&gt; the Data.&lt;/li&gt;
&lt;li&gt;You don't totally control your Data, since it is available in different &lt;b&gt;Channels&lt;/b&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;iframe width="600" scrolling="no" height="400" frameborder="0" style="overflow: hidden;" src="http://www.mindmeister.com/maps/public_map_shell/6113507?width=600&amp;amp;height=400&amp;amp;zoom=1"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;There are several implications of this including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Formats.&amp;nbsp; You may wish to standardize the formats that your data is available in.&amp;nbsp; Is all your data always available in csv (if that's what you standardize on)?&amp;nbsp; This includes both the formats themselves (Excel, Stata, etc) and also the method by which the data is requested.&amp;nbsp; For instance, is there one place that users can directly get all your data?&amp;nbsp; Directly doesn't mean some thin layer with links to databases each doing its own thing.&amp;nbsp; An example consistent format would be a web service with a published set of parameters by which the data could be requested.&amp;nbsp; Ideally, all the institutions data would be available from this one web service.&lt;/li&gt;
&lt;li&gt;Manipulation.&amp;nbsp; Sometimes people just want to see your data, but usually they will want to manipulate the data.&amp;nbsp; By providing your data in consistent formats, then it will be easier for your users to utilize your data.&amp;nbsp; Other users will expect that *you* provide the tools for manipulation of your own data.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Channels.&amp;nbsp; Ideally you will work to directly feed data to primary channels.&amp;nbsp; For instance, if you feed data directly to services like Swivel then you both get more use out of your data and also can ensure your data is available in its highest quality (not watered down by other people copying and pasting your data, for example).&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/277793609" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/why-data-is-different#comments</comments>
 <category domain="http://hobbsontech.com/category/topic/cms">CMS</category>
 <category domain="http://hobbsontech.com/category/tag/data">data</category>
 <category domain="http://hobbsontech.com/category/tag/enterprise">enterprise</category>
 <category domain="http://hobbsontech.com/category/tag/interaction-publisher">interaction publisher</category>
 <category domain="http://hobbsontech.com/category/topic/management">Management</category>
 <category domain="http://hobbsontech.com/category/topic/technical">Technical</category>
 <pubDate>Fri, 25 Apr 2008 13:22:08 -0600</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">63 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/why-data-is-different</feedburner:origLink></item>
<item>
 <title>Beware False Precision in Tagging</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/247931823/beware-false-precision-tagging</link>
 <description>&lt;p&gt;The prior post &lt;a href="http://hobbsontech.com/content/taxonomy-mappings-be-careful-when-integrating"&gt;Taxonomy Mappings: Be Careful When Integrating&lt;/a&gt; gave some examples and described the problem of taxonomy mappings.&amp;nbsp; Related to that is false precision in your tags.&amp;nbsp; In thinking about this more, it occurs to me that there are probably two useful rules of thumb to keep in mind whenever tagging/pulling content (whether the content is automatically tagged, or mapped from another taxonomy, or mapped by hand):
&lt;ol&gt;
&lt;li&gt;You can't tag in a course grained taxonomy and pull based on a fine-grained taxonomy (for example, if you have a system that only tags to &amp;quot;Washington, DC Metro Area,&amp;quot; then you won't be able to pull by &amp;quot;Washington, DC&amp;quot; since any content tagged in the system may only be relevant to &amp;quot;Alexandria, VA&amp;quot;).&lt;/li&gt;
&lt;li&gt;You can't tag in a fine-grained taxonomy when you only are using coarse information to determine the tagging (for example, if all you know about a group of content is that they're all animals, you can't tag each of content to frogs, cats, dogs, etc).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In both of these cases, when you pull by the fine-grained taxonomy there is a false sense of precision (and you can get grossly wrong.Another way of stating the rules of thumb above:
&lt;ol&gt;
&lt;li&gt;You have to originally tag (or possibly go through the effort of retro-actively tagging, perhaps through automated concept extraction) all content to at least as fine-grained a taxonomy as you're going to pull from,&lt;/li&gt;
&lt;li&gt;without artificially tagging more precisely than you are accurate.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Of course, by far the most preferable treatment is that all content, across the various systems you want to pull from (onto the same web page, for example) is tagged to the same, fine-grained taxonomy (or at as fine grained as you ever expect to need to pull from).&amp;nbsp;  Otherwise you'll have to resort to taxonomy mappings, or retroactively tag content.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/247931823" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/beware-false-precision-tagging#comments</comments>
 <category domain="http://hobbsontech.com/category/topic/cms">CMS</category>
 <category domain="http://hobbsontech.com/category/tag/integration">integration</category>
 <category domain="http://hobbsontech.com/category/topic/management">Management</category>
 <category domain="http://hobbsontech.com/category/tag/mapping">mapping</category>
 <category domain="http://hobbsontech.com/category/tag/metadata">metadata</category>
 <category domain="http://hobbsontech.com/category/tag/migration">migration</category>
 <category domain="http://hobbsontech.com/category/tag/quality">quality</category>
 <category domain="http://hobbsontech.com/category/topic/technical">Technical</category>
 <pubDate>Sat, 08 Mar 2008 08:01:00 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">58 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/beware-false-precision-tagging</feedburner:origLink></item>
<item>
 <title>Why Short Delivery Cycles for Products</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/231341677/why-short-delivery-cycles-products</link>
 <description>&lt;p&gt;The natural temptation on planning a product's roadmap is to plan far into the future.&amp;nbsp; That temptation arises for reasons such as wanting to please clients by telling them you'll give them what they say they want, wanting to relay the internal technical teams' plans to deliver something far in the future, feeling that you already know the list of features that users want, and not wanting to feel like you're planning all the time.&amp;nbsp; In my experience, that is less successful than trying to only plan and publicize a short time horizon out (and not even promising anything outside that time horizon).&amp;nbsp; Here are some of the reasons:
&lt;ul&gt;
&lt;li&gt;You're always delivering something.&amp;nbsp; In other words, the user regularly sees progress.&lt;/li&gt;
&lt;li&gt;Related to the above bullet, it forces you to think of creative ways of solving your users' problems.&amp;nbsp; If you know you have to deliver something in the next month, then you have to carefully explore the requirements, prioritize, and come up with some unexpected solutions.&lt;/li&gt;
&lt;li&gt;Quick responses to what you release:
&lt;ul&gt;
&lt;li&gt;When something needs to be tweaked that you just released, you can quickly move to the next iteration.&lt;/li&gt;
&lt;li&gt;If your idea turns out to be a real stinker, you can drop it before you spend a lot of time on it.&lt;/li&gt;
&lt;li&gt;If you have an unexpected hit of an idea, you can quickly continue to refine it.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Inevitable slips don't end up cascading tons of other deliverables (if all you promise is delivering 10 features in the next three months, then if three slip it only affects those three -- if you had promised 10 each quarter for the next year, then if three items slip in the first quarter then probably 37 items slip for the year).&lt;/li&gt;
&lt;li&gt;Combats somewhat against almost everyone's natural propensity to procrastinate.&amp;nbsp; If there are always items that need to be publicly delivered, then it's harder to procrastinate than if you have some huge delivable a year out.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;A regular period that people expect a progress report.&amp;nbsp; Some advantages: a) the potential &amp;quot;embarassment&amp;quot; factor makes you pay close attention on a regular basis, and, moreover, b) your clients know they will be engaged in the discussion of your progress.&lt;/li&gt;
&lt;li&gt;The further out you plan, the less accurate you are about the schedule.&lt;/li&gt;
&lt;li&gt;You can respond more quickly to changes in your industry or competition.&amp;nbsp; If you've already publicly planned a year out, then if, for example Web 4.0 hits the scene quickly, you've either got to upset a lot of people that are already expecting a bunch of features that year (by slipping those to make room for Web 4.0 now) or not even consider adding the Web 4.0 features until after the year has passed!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I partially read the following a while ago that helped convince me to push toward short delivery schedules: &lt;a href="http://www.amazon.com/Agile-Iterative-Development-Managers-Software/dp/0131111558"&gt;Agile and Iterative Development: A Manager's Guide&lt;/a&gt; by &lt;a href="http://www.craiglarman.com/wiki/index.php?title=Main_Page"&gt;Craig Larman&lt;/a&gt; and &lt;a href="https://gettingreal.37signals.com/"&gt;Getting Real&lt;/a&gt; by &lt;a href="https://www.37signals.com/"&gt;37signals&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/231341677" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/why-short-delivery-cycles-products#comments</comments>
 <category domain="http://hobbsontech.com/category/tag/agile">agile</category>
 <category domain="http://hobbsontech.com/category/tag/management">management</category>
 <category domain="http://hobbsontech.com/category/topic/management">Management</category>
 <category domain="http://hobbsontech.com/category/tag/product-management">product management</category>
 <category domain="http://hobbsontech.com/category/tag/project-management">project management</category>
 <category domain="http://hobbsontech.com/category/topic/technical">Technical</category>
 <pubDate>Thu, 07 Feb 2008 19:24:45 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">57 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/why-short-delivery-cycles-products</feedburner:origLink></item>
<item>
 <title>Notes from a job search</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/231320376/notes-job-search</link>
 <description>&lt;p&gt;After kicking the job search into high gear over the past three months or so, I'm happy to be joining &lt;a href="http://welchmanconsulting.com/"&gt;Welchman Consulting&lt;/a&gt; as a Senior Consultant later this month.&amp;nbsp;&amp;nbsp; As their web site states: &amp;quot;Welchman Consulting helps organizations develop effective Web Operations Mangement strategies that optimize the quality and impact of their Web sites&amp;quot; (see this &lt;a href="http://www.welchmanconsulting.com/presentations/ZeroWasteV3.ppt"&gt;powerpoint presentation&lt;/a&gt; on Web Operations Management).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This was an interesting job search, so I thought I'd mention things that worked and didn't work, along with some of the most interesting places I interviewed with.&lt;/p&gt;
&lt;p&gt;Some of the places I interviewed (and how I found the job in parentheses):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.google.ch/support/jobs/bin/static.py?page=why-zrh.html"&gt;Google Switzerland&lt;/a&gt; (through a blind resume submission at google.com), where they've started an engineering center (which manages it's own portfolio of global products).&amp;nbsp; I really enjoyed interviewing with Google.&amp;nbsp; The process was an intense game.&amp;nbsp; After thinking I bombed two phone interviews (with excellent questions like &amp;quot;How would you improve gmail?&amp;nbsp; OK, you're about to pitch your idea to Larry and Sergie now: Go!&amp;quot;), I ended up being flown out to Zurich for an interview there.&amp;nbsp; The best part of that interview process was the technical portion of the interview, which was mostly algorithm analysis (involving the &lt;a href="http://en.wikipedia.org/wiki/Fibonacci_number"&gt;Fibonnaci numbers&lt;/a&gt;) and then a sequence of &amp;quot;how would you compute that?&amp;nbsp; How would you compute it faster?&amp;nbsp; faster!&amp;nbsp; faster!?&amp;quot;&amp;nbsp; The worst part was with a product manager about a fussball tournament problem&amp;nbsp; -- I just was not reaching a breakthrough on how to solve the problem and the interviewer just stared at me sweating for 20 minutes (side note: they're a little too nuts about fussball -- during a break some guy got a bit too upset with me about not playing fussball well enough on his team).&amp;nbsp; Anyway, the process was a lot of fine and quite a mental game.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bridgelinesw.com/default.aspx"&gt;iapps/Bridgeline&lt;/a&gt; (from &lt;a href="http://www.potomactechwire.com/"&gt;Potomac Tech Wire&lt;/a&gt;, a local DC mailing list).&amp;nbsp; Iapps has been developing web sites in the DC area for years now, and was recently bought by Bridgeline.&amp;nbsp;&amp;nbsp; I was most impressed by their performance/incentive metrics which seemed reasonable and well-aligned to drive a strong, profitable company.&amp;nbsp; Also, their hosted CMS is quite strong.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ltutech.com/en/"&gt;LTU Technologies&lt;/a&gt; (through a colleague).&amp;nbsp; This is a visual search and filtering company, with offices in D.C. and Paris.&amp;nbsp; With more and more user-generated content, being able to identify offensive images becomes increasingly important.&amp;nbsp; Also, forensics and identifying stolen property are other applications of their technology.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.welchmanconsulting.com"&gt;Welchman Consulting&lt;/a&gt; (met through work).&amp;nbsp; When I met folks at Welchman Consulting, I was immediately impressed by their knowledge and ability to articulate their ideas.&amp;nbsp; I kept an eye on their site and contacted them when I saw a Senior Consultant job announcement.&amp;nbsp; Their focus on Web Operations Management seems timely since so many large organizations now have moved into Content Management Systems but are facing quality/management issues.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tools used and my subjective impression of their effectiveness in my job search (1 being totally unhelpful and 10 being a sure thing):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Blind inquiries to interesting people I found at various institutions: 2&lt;/li&gt;
&lt;li&gt;Joined a couple relevant associations / special interest groups (not totally fair to include these since I didn't dive into actively participating in them!): 2&lt;/li&gt;
&lt;li&gt;Blind sending in resumes through job boards like dice.com, theladders.com, simplyhired, etc: 4&lt;/li&gt;
&lt;li&gt;Using linkedin.com to reach out to colleagues of colleagues at places I was interested in joining: 5&lt;/li&gt;
&lt;li&gt;Sending blind resumes directly to organizations' job submission system: 6&lt;/li&gt;
&lt;li&gt;Various talking directly with friends/colleagues/vendors/clients (good old networking): 8&lt;/li&gt;
&lt;li&gt;Specialized mailing lists (such as &lt;a href="http://www.potomactechwire.com/"&gt;Potomac Tech Wire&lt;/a&gt; and a non-profit CIO list): 8&lt;/li&gt;
&lt;li&gt;Publishing this blog: 9&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Talking about my job search with trusted friends, colleagues, vendors, and clients has found me most of my jobs.&amp;nbsp; Perhaps that's the reason that specialized mailing lists are also helpful: you already know something about the person when they apply (or it would be easy to find out something about them in the small pool).&amp;nbsp; I found starting and maintaining this blog helpful in the job search for a couple reasons: 1) it forced me to think about what it is that I know and am good at and 2) it was a very quick and easy way for potential employers to learn a little bit about my skills (although it is a surprising amount of work to maintain the blog).&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/231320376" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/notes-job-search#comments</comments>
 <category domain="http://hobbsontech.com/category/tag/job-searching">job searching</category>
 <pubDate>Thu, 07 Feb 2008 18:33:21 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">56 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/notes-job-search</feedburner:origLink></item>
<item>
 <title>Interaction Publisher: Mashup Editor Comparison / Roundup</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/225659758/interaction-publisher-mashup-editor-comparison-roundup</link>
 <description>&lt;p&gt;Since posting &lt;a href="http://hobbsontech.com/content/enabling-interaction-publisher"&gt;Enabling the Interaction Publisher&lt;/a&gt;, I've done some more research on mashup builders.&amp;nbsp;&amp;nbsp; I found a lot of excellent resources (see end of this post for a list), but felt that a summary of what's out there would be helpful (this is what I would have liked to see when I researched this).&amp;nbsp; Although lists of tools exist, I wasn't getting a sense of the overall space.&amp;nbsp; Note that I believe that mashup editors are only part of enabling the interaction publisher: the other parts being standardized access to data (particularly all data from one institution) and deeply embedding these types of tools in content management systems (for instance, using topic-driven templates already in your CMS to drive mashups that are driven by those topics).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Some of the particular variables that are probably most relevant in what tool you should use for your particular application / situation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is the expectation that you will quickly have a mashup, or that you are building out an infrastructure for your institution?&amp;nbsp; Does this need to be behind your firewall?&amp;nbsp; Do you need guaranteed uptime?&amp;nbsp; Basically, do you need this to be &lt;b&gt;hosted&lt;/b&gt; (quick and easy, get-me-started-now) or will you build out and manage the infrastructure?&lt;/li&gt;
&lt;li&gt;Do you want the end result of your efforts to be another data feed, a map, or other types of user interactions like data grids?&amp;nbsp; What should the &lt;b&gt;output&lt;/b&gt; be?&lt;/li&gt;
&lt;li&gt;What types of &lt;b&gt;inputs&lt;/b&gt; do you need to pull: structured (if so, generic XML, or just RSS/atom specifically), unstructured (like web pages), or direct database connections?&lt;/li&gt;
&lt;li&gt;How are the mashups built?&amp;nbsp; Do you need totally non-technical people to create, or do you just need to support your power users?&amp;nbsp; What is the &lt;b&gt;mashup building environment&lt;/b&gt; for building the feeds (create-a-flowchart like Yahoo Pipes and Microsoft Popfly?)?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;What are the &lt;b&gt;browser requirements&lt;/b&gt; for people to use / consume your mashups (for instance Microsoft Popfly requires both Silverlight and recent versions of just Firefox and IE)?&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Can a mashup be &lt;b&gt;embedded&lt;/b&gt; into an existing web page? I didn't find enough useful information on this to fill this out meaningfully in the table below, so perhaps this is something to add in the future.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Although I was hoping to put together a fuller spreadsheet of all the tools out there, I selected a subset that was either easy to start using or had very clear documentation (I used all to at least some extent but AquaLogic Pages).&amp;nbsp; At any rate, here's a brief (and admittedly incomplete) table comparing different mashup builders along the criteria listed above (please comment with any corrections/additions):&lt;/p&gt;
&lt;table width="100%" cellspacing="1" cellpadding="1" border="1" align="left"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Mashup Builder&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Hosted?&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;What outputs?&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;What inputs?&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Building Environment&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;&amp;nbsp;Browser Restrictions&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Can be embedded?&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://apatar.com"&gt;Apatar&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;N/A (run from desktop)&lt;/td&gt;
&lt;td&gt;A wide range including: RSS, Text, Salesforce, File, MySQL, Amazon S3&lt;/td&gt;
&lt;td&gt;A wide range including: RSS, Text, Salesforce, File, MySQL, Amazon S3&lt;/td&gt;
&lt;td&gt;Visually create a flowchart&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://www.bea.com/framework.jsp?CNT=index.jsp&amp;amp;FP=/content/products/aqualogic/pages/"&gt;AquaLogic Pages&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;No&lt;/td&gt;
&lt;td&gt;Interactions: Data Table, &lt;br /&gt;Record List, Text, Map,&lt;/td&gt;
&lt;td&gt;RSS, web services, user-created data&lt;/td&gt;
&lt;td&gt;WYSIWYG&lt;/td&gt;
&lt;td&gt;?&lt;/td&gt;
&lt;td&gt;&amp;nbsp;Partially? (only within BEA environment)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://www.dapper.net/"&gt;Dapper&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;Yes&lt;/td&gt;
&lt;td&gt;Feeds: XML, RSS, HTML, JSON.&amp;nbsp; Interactions: Google Gadgets, Google Maps (more)&lt;/td&gt;
&lt;td&gt;web pages or RSS&lt;/td&gt;
&lt;td&gt;Pointing at the parts of the screen you want scraped and/or filling in forms&lt;/td&gt;
&lt;td&gt;Depends on output&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://editor.googlemashups.com/ "&gt;Google Mashup Editor&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;Yes&lt;/td&gt;
&lt;td&gt;Hosted web page (within GME environment)&lt;/td&gt;
&lt;td&gt;RSS, GoogleBase, or user inputs&lt;/td&gt;
&lt;td&gt;&amp;nbsp;coding&lt;/td&gt;
&lt;td&gt;&amp;nbsp;?&lt;/td&gt;
&lt;td&gt;&amp;nbsp;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://www.popfly.com/"&gt;Microsoft Popfly&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;Yes&lt;/td&gt;
&lt;td&gt;Interactions: Gobs, although much of the focus seems to be on playful things like wak-a-mole&lt;/td&gt;
&lt;td&gt;web pages, RSS&lt;/td&gt;
&lt;td&gt;Visually create a flowchart&lt;/td&gt;
&lt;td&gt;Silverlight + Firefox 2 or IE7 (!)&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://services.alphaworks.ibm.com/qedwiki/"&gt;QEDWiki&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;Either (although install option didn't work for me)&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Wiki pages&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;&amp;nbsp;XML, RSS&lt;/td&gt;
&lt;td&gt;WYSIWYG + filling out forms&lt;/td&gt;
&lt;td&gt;&amp;nbsp;?&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://www.strikeiron.com/tools/tools_soaexpress.aspx"&gt;StrikeIron SOA Express for Excel&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;Desktop (extension to Excel)&lt;/td&gt;
&lt;td&gt;&amp;nbsp;Excel sheet&lt;/td&gt;
&lt;td&gt;Web Services, especially StrikeIron services&lt;/td&gt;
&lt;td&gt;Excel&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://pipes.yahoo.com/pipes/"&gt;Yahoo! Pipes&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;Yes&lt;/td&gt;
&lt;td&gt;Feeds + Interactions&amp;nbsp; (Maps / Lists)&lt;/td&gt;
&lt;td&gt;&amp;nbsp;Feeds / CSV / some other specific web sources / limited generic XML (&lt;a href="http://pipes.yahoo.com/pipes/docs?doc=sources#FetchPage"&gt;reference&lt;/a&gt;)&lt;/td&gt;
&lt;td&gt;Visually create a flowchart&lt;/td&gt;
&lt;td&gt;&amp;nbsp;Didn't see official reference, but seems to run on Firefox 2.0, IE6, and Opera 9.24&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;I found the easiest to use were Apatar, StrikeIron SOA Express for Excel, and Yahoo! Pipes (if you just want to play with something to get a feel for mashup editors, I'd recommend starting with these), although each is entirely different.&amp;nbsp; Although QEDwiki has a &lt;a href="http://www.youtube.com/watch?v=63qIq9t9Gqs"&gt;great intro video&lt;/a&gt; and appears to be able to do a lot, I got the least far actually using it.&amp;nbsp; Although I'm sure that someone that knows Dapper inside and out could create a feed from scraping pages, in practice I didn't manage to get it to do the two tests I tried (for example, in trying to scrape country pages from the World Bank site, it wouldn't let me since the different pages were coming from different domains although they were driven from the same CMS).&amp;nbsp; Popfly seemed interesting, but doesn't appear to be geared toward the enterprise and has very specific browser requirements.&amp;nbsp; That said, these were just initial impressions (and initial ease of use may be irrelevant for a particular application) -- the main purpose of this post was to put together the matrix above just getting a feel for the current overall state / scope of mashup editors.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Here are some excellent resources on mashup editors:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://mashable.com/2007/07/08/mashups/"&gt;blog post: Mashups: Mashup Maker Smackdown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.zdnet.com/Hinchcliffe/"&gt;Enterprise Web 2.0 blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nakedopensource.com/category/mashups/"&gt;Mashups category on Naked Open Source blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.sherifmansour.com/?p=187"&gt;blog post: Why Mashups = (REST + &amp;lsquo;Traditional SOA&amp;rsquo;) * Web 2.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.readwriteweb.com/archives/mashup_business.php"&gt;blog post: Mashup Business Models&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.programmableweb.com/"&gt;Programmable Web site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/225659758" height="1" width="1"/&gt;</description>
 <category domain="http://hobbsontech.com/category/topic/cms">CMS</category>
 <category domain="http://hobbsontech.com/category/tag/enterprise">enterprise</category>
 <category domain="http://hobbsontech.com/category/tag/interaction-publisher">interaction publisher</category>
 <category domain="http://hobbsontech.com/category/topic/management">Management</category>
 <category domain="http://hobbsontech.com/category/tag/mashup">mashup</category>
 <category domain="http://hobbsontech.com/category/tag/scraping">scraping</category>
 <category domain="http://hobbsontech.com/category/topic/technical">Technical</category>
 <category domain="http://hobbsontech.com/category/tag/yahoo-pipes">yahoo pipes</category>
 <pubDate>Tue, 29 Jan 2008 20:12:48 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">53 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/interaction-publisher-mashup-editor-comparison-roundup</feedburner:origLink></item>
<item>
 <title>Approaches to Exposing Institutional Data and Other Content</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/217414964/approaches-exposing-institutional-data-and-other-content</link>
 <description>&lt;p&gt;&lt;style type="text/css"&gt;.adr{color:gray; line-height:50%; font-size:x-small}&lt;/style&gt;&lt;/p&gt;
&lt;p&gt;I've been thinking about and researching how an institution can share its data, documents, and other content.&amp;nbsp; Obviously your data and content is already exposed via the web, but providing the data in a more structured way allows more users (both internal and external) to manipulate the data in interesting ways, for example in mashups.&amp;nbsp; There seem to be a few ways to share data from an enterprise with a lot of content:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Straight RSS/Atom.&amp;nbsp; &lt;/b&gt;Although straight RSS/Atom (with no &lt;a href="http://www.disobey.com/detergent/2002/extendingrss2/"&gt;custom extensions / namespaces&lt;/a&gt;) may not be that interesting, it's obviously a useful way to get your content out there.&amp;nbsp; Typically straight RSS/Atom is fairly time-based and might in effect show some history (news items like &amp;quot;John goes to work&amp;quot; and then &amp;quot;John goes home&amp;quot;) rather than some state (like &amp;quot;John is now home&amp;quot;).&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Common repositories / services such as &lt;a href="http://www.swivel.com/"&gt;Swivel&lt;/a&gt; and &lt;a href="http://www.strikeiron.com/"&gt;StrikeIron&lt;/a&gt;.&lt;/b&gt;&amp;nbsp;&amp;nbsp; Rather than exposing your data/content directly to the outside world from your site/servers, you can use an intermediary.&amp;nbsp; Swivel allows users to create their own graphs on fata from either &lt;a href="http://www.swivel.com/official"&gt;official sources&lt;/a&gt; or any user-supplied data.&amp;nbsp; StrikeIron is built into mashup editors like &lt;a href="http://services.alphaworks.ibm.com/qedwiki/"&gt;QEDwiki&lt;/a&gt;, and also has built an extension to Excel to call their services.&amp;nbsp; You probably would want to provide data to these services through an API of your own, but you could get started with Swivel for example by directly uploading the data.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Specialized XML formats for particular types of content.&lt;/b&gt;&amp;nbsp; Examples include &lt;a href="http://www.opensearch.org/Home"&gt;OpenSearch&lt;/a&gt; for search results and &lt;a href="http://sdmx.org/index.php"&gt;SDMX&lt;/a&gt; for statistical data.&amp;nbsp; These specific XML formats both allow a level of sophistication for people specializing in your type of content and allows tools built for this type of data to consume it.&amp;nbsp; This fits in with the following item, which, for historical reasons may or may not be XML-based.&amp;nbsp; &lt;b&gt;&lt;br /&gt;     &lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Institution-to-institution services.&lt;/b&gt;&amp;nbsp; Sometimes you need to provide a point-to-point interface with another institution.&amp;nbsp; In that case, you may need to support all sorts of unusual formats and delivery mechanisms.&amp;nbsp; Hopefully you could leverage your various systems' web services to just transform the data into the formats you need.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;A common API that your institution follows across all types of content.&lt;/b&gt;&amp;nbsp;&amp;nbsp; This one is the most interesting to me and one that I alluded to in &lt;a href="http://hobbsontech.com/content/enabling-interaction-publisher"&gt;my previous post on interaction publishing&lt;/a&gt;.&amp;nbsp; Especially if your institution has various repositories, one possible approach would be to slap up a page that has links to the different instructions for referencing each.&amp;nbsp; But, to make access as easy as possible, a common API with consistent parameters that can be queried against all systems would be preferable (for instance, queries such as &amp;quot;give me all your documents and data on Chad&amp;quot; via url requests like &lt;a href="http://xml.example-domain.com/apis/type=docs,data&amp;amp;country=td" title="http://xml.example-domain.com/apis/type=docs,data&amp;amp;country=td"&gt;http://xml.example-domain.com/apis/type=docs,data&amp;amp;country=td&lt;/a&gt;).&amp;nbsp; Potentially the returned XML could be in a simple format such as RSS extended with a custom namespace (so that other tools such as Yahoo Pipes, and even feedreaders, could easily consume the data).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Microformats.&lt;/b&gt;&amp;nbsp; Probably most useful to future browsers or other tools like the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4106"&gt;Firefox Operator&lt;/a&gt; extension (or for services that crawl sites such as Google), &lt;a href="http://microformats.org/"&gt;microformats&lt;/a&gt; allow you to just change your existing HTML a bit to expose very common types of data like address and calendar events.&amp;nbsp; For example, instead of your HTML having &amp;quot;100 Main Street, Anytown, USA&amp;quot; it would be marked up as &amp;quot;&amp;lt;div class=&amp;quot;adr&amp;quot;&amp;gt; &amp;lt;div class=&amp;quot;street-address&amp;quot;&amp;gt;100 Main Street&amp;lt;/div&amp;gt;, &amp;lt;span class=&amp;quot;locality&amp;quot;&amp;gt;Anytown&amp;lt;/span&amp;gt;, &amp;lt;div class=&amp;quot;country-name&amp;quot;&amp;gt;USA&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;quot; and then define the CSS to show it as you wish.&amp;nbsp; For example (with sloppy CSS):&lt;br /&gt;
&lt;div class="adr"&gt;
&lt;div class="street-address"&gt;100 Main Street&lt;/div&gt;
&lt;p&gt;     &lt;span class="locality"&gt;Anytown&lt;/span&gt;,&lt;br /&gt;
&lt;div class="country-name"&gt;U.S.A.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;     See how this page appears in Firefox Operator (also notice the tagspaces):&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;img alt="Screenshot of how example adr microformat works in Firefox Operator" src="http://hobbsontech.com/files/images/adr-screenshot.gif" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/217414964" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/approaches-exposing-institutional-data-and-other-content#comments</comments>
 <category domain="http://hobbsontech.com/category/tag/api">API</category>
 <category domain="http://hobbsontech.com/category/topic/cms">CMS</category>
 <category domain="http://hobbsontech.com/category/tag/enterprise">enterprise</category>
 <category domain="http://hobbsontech.com/category/tag/interaction-publisher">interaction publisher</category>
 <category domain="http://hobbsontech.com/category/topic/management">Management</category>
 <category domain="http://hobbsontech.com/category/tag/mashup">mashup</category>
 <category domain="http://hobbsontech.com/category/tag/microformats">microformats</category>
 <category domain="http://hobbsontech.com/category/tag/rss">rss</category>
 <category domain="http://hobbsontech.com/category/tag/standard">standard</category>
 <category domain="http://hobbsontech.com/category/topic/technical">Technical</category>
 <category domain="http://hobbsontech.com/category/tag/xml">xml</category>
 <pubDate>Tue, 15 Jan 2008 20:56:56 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">55 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/approaches-exposing-institutional-data-and-other-content</feedburner:origLink></item>
<item>
 <title>Taxonomy Mappings: Be Careful When Integrating</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/214757380/taxonomy-mappings-be-careful-when-integrating</link>
 <description>&lt;p&gt;Sometimes you need to pull content from multiple systems into a single page, and you want to pull from both systems based on some &lt;a href="http://en.wikipedia.org/wiki/Metadata"&gt;metadata&lt;/a&gt;, perhaps by topic.&amp;nbsp; For instance, let's say you have a site that you want to pull data from a document repository and a news archive, and you want the the user to use a pulldown to select the topic they want to filter the content by (for example, by &amp;quot;Politics&amp;quot;, &amp;quot;Entertainment&amp;quot;, &amp;quot;Travel&amp;quot;, &amp;quot;Europe&amp;quot;, and other topics).&amp;nbsp; Sometimes out of the box the two systems will share the same list of topics, but more frequently than not they will not.&lt;/p&gt;
&lt;p&gt;One deceptively simple approach when systems do not share the same list of topics is to have some sort of mapping between the &lt;a href="http://www.ontopia.net/topicmaps/materials/tm-vs-thesauri.html"&gt;taxonomies&lt;/a&gt; of the two systems (for instance, &amp;quot;Travel&amp;quot; = &amp;quot;Vacations&amp;quot;, &amp;quot;Politics&amp;quot; = &amp;quot;Domestic Politics&amp;quot;, &amp;quot;Europe&amp;quot; = &amp;quot;EU&amp;quot;, etc).&amp;nbsp; I fairly frequently hear something like this when discussing integration between different systems: &amp;quot;We have a mapping between these topics, so there shouldn't be any problem.&amp;quot;&amp;nbsp; But just because you have a mapping doesn't mean that it will be satisfactory for combining information from multiple systems.&amp;nbsp; I thought it would be helpful to think through the issues some and write out some examples.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;One taxonomy's controlled vocabulary being more specific than another&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Let's say you've got some content in two systems that you want to pull into one page.&amp;nbsp; Perhaps you want to find out all the fathers in both systems.&amp;nbsp; If the taxonomies available were the following (and you didn't have other metadata on gender, for example), then you could not do this:&lt;/p&gt;
&lt;table width="100%" cellspacing="1" cellpadding="1" border="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;i&gt;&amp;quot;Relationship&amp;quot; values site one&lt;/i&gt;&lt;/td&gt;
&lt;td&gt;&lt;i&gt;&amp;quot;Relationship&amp;quot; values on site two&lt;/i&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Father&lt;/td&gt;
&lt;td&gt;Parent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mother&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sister&lt;/td&gt;
&lt;td&gt;Sibling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Brother&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;A simple and meaningful mapping between the two would be something like this (allowing you to find all the people across systems that are a parent, for example):&lt;/p&gt;
&lt;p&gt;Father or Mother - &amp;gt; Parent&lt;br /&gt; Sister or Brother - &amp;gt; Sibling&lt;/p&gt;
&lt;p&gt;Note that the other direction makes no sense (it's tough to be both a sister and brother, and you wouldn't know which to pick when translating between systems).&amp;nbsp; So, although you may have a mapping between the systems, it does NOT neccessarily enable the types of queries you want to do.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;A slightly more realistic example&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Of course that was a simplified example to illustrate the point, and you usually have overlapping, something like the following (still a forced example though):&lt;/p&gt;
&lt;table width="100%" cellspacing="1" cellpadding="1" border="1"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;i&gt;&amp;quot;Location&amp;quot; in system one&lt;/i&gt;&lt;/td&gt;
&lt;td&gt;&lt;i&gt;&amp;quot;Location&amp;quot; in system two&lt;/i&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SF Bay Area&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Palo Alto&lt;/td&gt;
&lt;td&gt;Silicon Valley&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(other cities in Silicon Valley)&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Richmond&lt;/td&gt;
&lt;td&gt;East Bay&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(other cities in East Bay)&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sausalito&lt;/td&gt;
&lt;td&gt;Marin County&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;(other cities in Marin County)&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;San Francisco&lt;/td&gt;
&lt;td&gt;San Francisco&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;South San Francisco&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Let's say these two systems had a selection of companies tagged to these &lt;a href="http://en.wikipedia.org/wiki/Controlled_vocabulary"&gt;controlled vocabularies&lt;/a&gt;.&amp;nbsp; What kinds of queries would probably be meaningful?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All companies in Silicon Valley&lt;/li&gt;
&lt;li&gt;&amp;nbsp;All companies in East Bay&lt;/li&gt;
&lt;li&gt;All companies in Marin County&lt;/li&gt;
&lt;li&gt;All companies in the San Francisco Bay area&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Obviously, you couldn't query on cities since system two has virtually no cities.&amp;nbsp; But what about San Francisco?&amp;nbsp; Isn't that on both lists?&amp;nbsp; Although at first blush it may seem that you could find all companies in San Francisco across both systems, looking at the list more carefully it becomes apparent that they almost certainly have different meanings: the first taxonomy only has the broad San Francisco Bay Area and then cities, and the second taxonomy is just listing areas within the San Francisco Bay area.&amp;nbsp; So San Fancisco in system 2 &lt;i&gt;probably&lt;/i&gt; includes San Francisco proper as well as, for example, South San Francisco.&amp;nbsp; So you can do this query (but *not* query on all companies in San Francisco):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All companies in San Francisco and the immediate area (including South San Francisco)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Part of the issue is that often you have much larger taxonomies that are more difficult to analyze (for example, for a taxonomy that includes all cities in California, or the US).&amp;nbsp; It would be very difficult to go through and determine the meaning of the different values of the taxonomy.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;What to do?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;In practice, you probably won't be able to deeply analyze all the mappings between your systems, so you'll have a mapping but might only have a feel for how good it is (and in what direction).&amp;nbsp; Perhaps the most dangerous mapping, and one that is hopefully fairly easy to identify, is from a more general taxonomy to a more specific one (the first example above) and should be avoided entirely.&amp;nbsp; Of course if the systems do not even having taxonomies that are close, then this will be obvious and require changes to at least one of the source systems.&amp;nbsp;&amp;nbsp; The second example above (overlapping but not quite lining up) might a type of taxonomy matching that's not be that bad but just require documentation/labeling (just use &amp;quot;San Francisco and South San Francisco&amp;quot; in a pulldown to select areas of the Bay Area) and careful design (obviously don't allow the user to select a city if you need data from both systems, or you could clearly show in the results that the information is just from System 1).&amp;nbsp;&amp;nbsp; But figuring out the relationships between the taxonomies might take a lot of work.&amp;nbsp; Some potential general approaches: be careful and a) where possible try to access globally well-understood and clear values (like zip codes, lat/long, ISO country codes, etc) rather than fall into the trap of just trying to use two taxonomies since they're called the same thing (this is probably easier in something like a location than a topic), b) force all systems to tag to a neutral reference source (this could, with a lot of work in defining rules, be automated with something like &lt;a href="http://www.teragram.com/"&gt;Teragram&lt;/a&gt; for example), or c) seek out a metadata expert since they have some best practices of mapping between flat or networked taxonomies.&amp;nbsp; Also, when you are designing a system in the first place (even before being faced with a new integration), try if possible to use metadata for your content to well-understood values (especially easy for geographic tagging).&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/214757380" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/taxonomy-mappings-be-careful-when-integrating#comments</comments>
 <category domain="http://hobbsontech.com/category/tag/controlled-vocabulary">controlled vocabulary</category>
 <category domain="http://hobbsontech.com/category/tag/enterprise">enterprise</category>
 <category domain="http://hobbsontech.com/category/tag/integration">integration</category>
 <category domain="http://hobbsontech.com/category/topic/management">Management</category>
 <category domain="http://hobbsontech.com/category/tag/mapping">mapping</category>
 <category domain="http://hobbsontech.com/category/tag/metadata">metadata</category>
 <category domain="http://hobbsontech.com/category/tag/taxonomy">taxonomy</category>
 <category domain="http://hobbsontech.com/category/topic/technical">Technical</category>
 <pubDate>Thu, 10 Jan 2008 19:10:21 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">54 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/taxonomy-mappings-be-careful-when-integrating</feedburner:origLink></item>
<item>
 <title>Interesting 2007 and Opportunities for 2008</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/211138052/interesting-2007-opportunities-2008</link>
 <description>&lt;p&gt;The following seemed noteworthy and interesting enough in 2007 to highlight (although most were not new in 2007):
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;APIs and Mashups.&lt;/strong&gt;Ever since the &lt;a href="http://code.google.com/apis/maps/index.html"&gt;Google Maps API&lt;/a&gt; came out, web APIs appeared to have a lot of promise.  This year this really seemed to take off, with more sites publishing APIs (&lt;a href="http://www.programmableweb.com/apilist"&gt;see Programmable Web's list&lt;/a&gt;, although Programmable Web also notes that &lt;a href="http://www.programmableweb.com/apis"&gt;almost 50% of mashups are using Google Maps&lt;/a&gt;) and richer tools for using/mashing them (see &lt;a href="http://pipes.yahoo.com/pipes/"&gt;Yahoo Pipes&lt;/a&gt;, &lt;a href="http://www.popfly.ms/"&gt;Microsoft Popfly&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Microformats.&lt;/strong&gt;  What a great idea: instead of waiting for a grand unified theory of the &lt;a href="http://en.wikipedia.org/wiki/Semantic_Web"&gt;semantic web&lt;/a&gt; to totally transform websites, just make small changes to your existing markup to describe common, high-value information like locations and contact information.  References: &lt;a href="http://www.amazon.com/Microformats-Empowering-Your-Markup-Web/dp/1590598148/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1199331278&amp;amp;sr=8-1"&gt;the book&lt;/a&gt;, &lt;a href="http://www.microformats.org"&gt;microformats.org&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Semantic_Web"&gt;wikipedia page on semantic web&lt;/a&gt;, the firefox &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4106"&gt;Operator&lt;/a&gt; and &lt;a href="http://simile.mit.edu/wiki/Piggy_Bank"&gt;Piggy Bank&lt;/a&gt; extensions, &lt;a href="http://allinthehead.com/retro/301/can-your-website-be-your-api"&gt;Can your website be your API?&lt;/a&gt;,and &lt;a href="http://technorati.com/videos/youtube.com%2Fwatch%3Fv%3DZ9X-vHJ_Z-I"&gt;Bill Gates talking about microformats&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Drupal.&lt;/strong&gt;  Drupal drives this site, and I have been especially impressed by its clean architecture for adding new features/modules and by the strong community supporting it (hence the clean as well as powerful out-of-the-box experience).  I wasn't as impressed when I briefly played with Drupal a year or two ago, so I sense that Drupal really now has a critical mass behind it.  References: &lt;a href="http://hobbsontech.com/content/drupal-after-month"&gt;my post about my first month using Drupal&lt;/a&gt;, &lt;a href="http://www.amazon.com/Pro-Drupal-Development-John-VanDyk/dp/1590597559/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1199331657&amp;amp;sr=8-1"&gt;the Drupal development book&lt;/a&gt;, and &lt;a href="http://www.drupal.org"&gt;drupal.org&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sophisticated analytics for the masses.&lt;/strong&gt;  Although tools like &lt;a href="http://www.omniture.com/products/web_analytics/sitecatalyst"&gt;Omniture SiteCatalyst&lt;/a&gt; are still more sophisticated and customizable, &lt;a href="http://analytics.google.com"&gt;Google Analytics&lt;/a&gt; is really amazing, especially for a free tool: very nice user interface, sensible defaults, campaign tracking, user-defined dashboards, good reverse DNS lookup, and fast.  See the &lt;a href="http://www.epikone.com/blog/"&gt;Analytics Talk blog&lt;/a&gt; for more on Google Analytics.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also see a lot of opportunities for improvement in 2008:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Continued performance improvements.&lt;/strong&gt;  Ajax and more widespread javascript (such as pulldown/popup menus rather than having whole new pages load for many menus) has helped many sites speed up, but let's face it, in general using web sites is fairly slow.  One example site that's particularly slow in the UI is &lt;a href="http://www.rhapsody.com/"&gt;Rhapsody&lt;/a&gt;, which I use every day but the performance has just got to improve (an aside: basic cellphone call quality still isn't at acceptable performance levels in my opinion, but they keep improving year by year).  Hopefully &lt;a href="http://labs.adobe.com/technologies/air/"&gt;Adobe AIR (previously Apollo)&lt;/a&gt; or some other runtime environment like it will help deploy applications that interact directly with local files and with less server trips for a dramatically faster experience for our usrs.  Also see &lt;a href="http://developer.yahoo.com/performance/"&gt;Yahoo's Exceptional Performance resources&lt;/a&gt; for ways to speed up existing pages.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;More sophisticated offshoring models.&lt;/strong&gt;  The naive view of offshoring goes something like this: if someone costs $X per hour in your country and $X/3 per hour in another country, then it would seem to obvious to give the work to the offshore resource.  Sometimes this works.  Highly repeatable tasks are the most obvious (for example call centers).  Also, it often works when you can hand off a specifications document and then wait for the implementation, although this &lt;a href="http://online.wsj.com/article/SB119698754167616531.html"&gt;Wall Street Journal article (subscription required)&lt;/a&gt; on the outsourcing problems of the 787 points out interesting issues there too: like your outsources suppliers outsourcing to their own suppliers, quality control/process issues, and taking for granted expertise/background built inside Boeing when handing off to suppliers.  If the task isn't highly repeatable or very tightly specified, then the overhead of communications/management is very high.  I would also expect that places that are currently considered &amp;quot;offshore&amp;quot; will be developing innovative products themselves (see this blog post: &lt;a href="http://www.readwriteweb.com/archives/india_innovation.php"&gt;State of Innovation in India&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improvements in single sign on and passwords.&lt;/strong&gt;  If I go to Amazon and then B&amp;amp;H now, I have to log on twice.  Worse, if I go to very small sites I have to create a separate username/password (it's one thing to trust Amazon with my password, but why should I trust a very small site with that information?).  I plan on adding &lt;a href="http://openid.net/"&gt;OpenID&lt;/a&gt; for accounts on to this site, and I would encourage others to add it to theirs (many platforms such as Drupal now support this).  OpenID allows the user to decide who they trust to keep/authorize their account information (notably password) and you chose what information to give to different sites.  Once you log in once, you don't need to provide your password again when you go to a site using OpenID.  Hopefully at least smaller sites will start adopting OpenID, but it would be great if this was adopted by larger players as well.  I'm still hoping for a replacement of passwords entirely, perhaps by &lt;a href="http://www.sciencedaily.com/releases/2007/10/071030091438.htm"&gt;graphical methods&lt;/a&gt;, (how archaic is remembering a bunch of passwords, or, worse, if you force users to use &amp;quot;strong&amp;quot; passwords and change them a lot, then they'll just write them down?), but at least reducing the number of accounts you have would help.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mashup building for the masses.&lt;/strong&gt;  Although APIs and mashups have taken a big stride forward, I hope to see some standardization in APIs and enhanced mashup editors that allow less technical people to create their own interesting (not only with maps!) mashups.  See my &lt;a href="http://hobbsontech.com/content/enabling-interaction-publisher"&gt;Enabling the Interaction Publisher post&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/211138052" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/interesting-2007-opportunities-2008#comments</comments>
 <category domain="http://hobbsontech.com/category/tag/api">API</category>
 <category domain="http://hobbsontech.com/category/tag/drupal">drupal</category>
 <category domain="http://hobbsontech.com/category/tag/google-analytics">google analytics</category>
 <category domain="http://hobbsontech.com/category/tag/interaction-publisher">interaction publisher</category>
 <category domain="http://hobbsontech.com/category/tag/mashup">mashup</category>
 <category domain="http://hobbsontech.com/category/tag/microformats">microformats</category>
 <category domain="http://hobbsontech.com/category/tag/offshoring">offshoring</category>
 <category domain="http://hobbsontech.com/category/tag/openid">openid</category>
 <category domain="http://hobbsontech.com/category/tag/performance">performance</category>
 <category domain="http://hobbsontech.com/category/tag/single-sign">single sign on</category>
 <category domain="http://hobbsontech.com/category/topic/technical">Technical</category>
 <category domain="http://hobbsontech.com/category/tag/web-analytics">web analytics</category>
 <pubDate>Fri, 04 Jan 2008 07:39:27 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">52 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/interesting-2007-opportunities-2008</feedburner:origLink></item>
<item>
 <title>Link Repository: Structured Link Checking</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/203090704/link-repository-structured-link-checking</link>
 <description>&lt;p&gt;Especially as a content management system grows to have a large amount of content, it would be nice if you could do &lt;strong&gt;structured link checking.&lt;/strong&gt;  One of the problems with link checking in general is what to do with the reports once you get them.  Of course, for a very small site you can easily scan an entire site with tools like &lt;a href="http://www.elsop.com/"&gt;LinkScan&lt;/a&gt; ($) and &lt;a href="http://home.snafu.de/tilman/xenulink.html"&gt;Xenu Linksleuth&lt;/a&gt; (free, but ads are put in the reports) or even monitor 404 requests and use single page tools like the &lt;a href="http://www.kevinfreitas.net/extensions/linkchecker/"&gt;LinkChecker Firefox extension&lt;/a&gt;.  But with large sites you can end up with reports that are hard to know where to even start fixing links.  This is especially true for CMS-driven sites: the same bad link may appear in only one piece of content that is displayed throughout the site.  Or you could wind up linking from lots of content items to a url (possibly outside your control) that changes.  &lt;/p&gt;
&lt;p&gt;I envision getting a report with a list of the bad links, where a user (with appropriate global rights) could indicate the correct new link which would get reflected in all content items (or left menus or other components surrounding the content) that used that link.   This list could be prioritized by the cumulative page views that contained that bad link, or by the number of pages that contained that link.  Another approach might be to provide a prioritized list of &lt;em&gt;content items&lt;/em&gt; that have bad links (preferably directly linkable to edit mode of that content item.  At any rate, note that we're not talking about &lt;em&gt;pages&lt;/em&gt; here but content items or links -- the user can quickly take action that will correct links on multiple pages.  A long list of pages (specific urls) with bad links are confusing, but, more importantly, aren't as quickly actionable.&lt;/p&gt;
&lt;p&gt;Here is how normal link checking reports look and how more useful reports might look:&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Before / Existing Reports&lt;/strong&gt; (where do you start with a report like this, where content items may drive multiple pages?)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Report indicating bad links where the user can immediately correct them&lt;/strong&gt; (and apply the correction everywhere)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Report indicating which content items have the bad links&lt;/strong&gt;(content items linkable to edit them directly)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://badlinkone.com" title="http://badlinkone.com"&gt;http://badlinkone.com&lt;/a&gt; is referenced on &lt;u&gt;http://example-site.com/page1&lt;/u&gt;, &lt;u&gt;http://example-site.com/page35&lt;/u&gt;, and &lt;u&gt;http://example-site.com/page102&lt;/u&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://badlinktwo.com" title="http://badlinktwo.com"&gt;http://badlinktwo.com&lt;/a&gt; is referenced on &lt;u&gt;http://example-site.com/page1&lt;/u&gt;, &lt;u&gt;http://example-site.com/page1023&lt;/u&gt;, &lt;u&gt;http://example-site.com/page2439&lt;/u&gt;, &lt;u&gt;http://example-site.com/page5192&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Etc.&lt;/td&gt;
&lt;td valign=top&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://badlinkone.com" title="http://badlinkone.com"&gt;http://badlinkone.com&lt;/a&gt; is bad.  &lt;u&gt;Change everywhere now.&lt;/u&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://badlinktwo.com" title="http://badlinktwo.com"&gt;http://badlinktwo.com&lt;/a&gt; is bad.  &lt;u&gt;Change everywhere now.&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Etc.&lt;/td&gt;
&lt;td valign=top&gt;
&lt;ul&gt;
&lt;li&gt;Bad link &lt;a href="http://badlinkone.com" title="http://badlinkone.com"&gt;http://badlinkone.com&lt;/a&gt; is referenced on &lt;u&gt;Content32&lt;/u&gt; and &lt;u&gt;Content507&lt;/u&gt;.  &lt;/li&gt;
&lt;li&gt;Bad link &lt;a href="http://badlinketwo.com" title="http://badlinketwo.com"&gt;http://badlinketwo.com&lt;/a&gt; is referenced on &lt;u&gt;Content32&lt;/u&gt; and &lt;u&gt;Content209&lt;/u&gt;.  &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;One possible way to implement this is to change all the urls into some logical link in your CMS.  Assuming your CMS stores straight HTML rather than a more structured format, then any url the user enters could be changed to a macro (if the user could put in a hard link directly into the HTML without the system changing it, even if there was an option for creating a logical link, most users would probably just skip the logic linking).  For example if the user put in this HTML: &lt;xmp&gt;&lt;a href="http://hobbsontech.com&gt;Hobbs On Tech&lt;/a&gt;&lt;/xmp&gt; then the system would replace it with &lt;xmp&gt;!link(123,"Hobbs On Tech")&lt;/xmp&gt;and put in its link repository that link 123 was &lt;a href="http://hobbsontech.com" title="http://hobbsontech.com"&gt;http://hobbsontech.com&lt;/a&gt;.  When the page was generated then the correct link could be replaced in the HTML (so of course the end user's browser should never see the "123" in the HTML).  If the page linked to was in your CMS, then the macro could be different and just indicate the unique key for the content item being pointed to (this would depend on whether the context that the content appeared in was relevant).  For example: &lt;xmp&gt;!cms_item(123,"Hobbs On Tech")&lt;/xmp&gt;&lt;/p&gt;
&lt;p&gt;Related items that a link repository might help with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Reporting on content use.&lt;/strong&gt;  A link repository would allow other interesting reporting, such as the most linked-to content items in your repository.  &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easily move content.&lt;/strong&gt;  In some cases, it may be easier to move content if you had a link repository.  For instance, you may sometimes need to restructure your site resulting in the links changing.  With a link repository, you could automatically change all the links so that the move did not result in broken links (of course this would work best for intranet sites where there were limited links outside your control to your content).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Of course, this would add complexity (and possible failure points) to a CMS.  Do you think it would be worth it?&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/203090704" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/link-repository-structured-link-checking#comments</comments>
 <category domain="http://hobbsontech.com/category/tag/cms">cms</category>
 <category domain="http://hobbsontech.com/category/topic/cms">CMS</category>
 <category domain="http://hobbsontech.com/category/tag/link-checking">link checking</category>
 <category domain="http://hobbsontech.com/category/tag/link-repository">link repository</category>
 <category domain="http://hobbsontech.com/category/tag/quality">quality</category>
 <category domain="http://hobbsontech.com/category/tag/reporting">reporting</category>
 <category domain="http://hobbsontech.com/category/tag/structured-link-checking">structured link checking</category>
 <category domain="http://hobbsontech.com/category/topic/technical">Technical</category>
 <category domain="http://hobbsontech.com/category/tag/tool">tool</category>
 <pubDate>Wed, 19 Dec 2007 18:25:39 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">51 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/link-repository-structured-link-checking</feedburner:origLink></item>
<item>
 <title>Enabling the Interaction Publisher</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/199026742/enabling-interaction-publisher</link>
 <description>&lt;p&gt;New sites with dynamic, interactive functionality using data from different sources and allowing the user to interact with the data are exciting to see (examples: &lt;a href="http://geo.worldbank.org/"&gt;geo.worldbank.org&lt;/a&gt; and &lt;a href="http://carma.org/"&gt;carma.org&lt;/a&gt;).    But how do we unleash this functionality so that non-programmers can create interaction like this?   We have content management systems that allow more people to easily add content to sites.  But I think we should be driving toward an environment where users can a) take data from a variety of sources and b) create interactive sites based on this data.  Maps are the most prominent example, but interactive tables are also important.    Let's review where we are now:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We have sites already applying Google maps and other interactive functionality to various data sources (examples above).&lt;/li&gt;
&lt;li&gt;Programmers have resources/examples/documentation for creating these types of sites (see &lt;a href="http://www.programmableweb.com/"&gt;Programmable Web&lt;/a&gt; for example).&lt;/li&gt;
&lt;li&gt;Various APIs have been exposed for interacting and using data (&lt;a href="http://www.programmableweb.com/apis"&gt;examples&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;We have tools like &lt;a href="http://pipes.yahoo.com/pipes/"&gt;Yahoo Pipes&lt;/a&gt; that allow advanced users (probably not needing full-blown programmer skills) to create mashups.  That said Yahoo Pipes is now focused on consuming/dealing with RSS feeds (the &lt;a href="http://pipes.yahoo.com/pipes/docs?doc=sources#FetchData"&gt;Fetch Data Module&lt;/a&gt; is supposed to more general XML, I had problems getting it to do so -- if you look at &lt;a href="http://pipes.yahoo.com/pipes/pipe.info?_id=zMfvfDqH3BGwEDesmSjV_Q"&gt;examples using DC crime data&lt;/a&gt;, you see it's RSS with some customization).  In addition, this is a hosted solution, so you're at the mercy of Yahoo if you host a mashup with them (I noted Yahoo Pipes having problems accessing feeds intermittently even in my brief testing).&lt;/li&gt;
&lt;li&gt;There are probably other similar examples of specialized tools, but I know of &lt;a href="http://www.swivel.com/"&gt;Swivel&lt;/a&gt;, which allows you to create your own graphs of data.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here are the types of interactive functionality that I think we should be allowing non-programmers (let's call these folks &amp;quot;Interaction Publisher&amp;quot;, riffing off the role of &amp;quot;Content Publisher&amp;quot;) to create:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Interactive data tables.&lt;/strong&gt;   Interaction Publisher should be able to point at one (or multiple) data source, and indicate which columns/attributes to display in a table.  The Interaction Publisher should also indicate which attributes should be selectable (in pulldowns for example) be the end user.  Of course some theming / design and annotation should be possible.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interactive maps.&lt;/strong&gt;   Interaction Publisher should be able to point at a data source, the attributes containing the locations, and what data to show for each location (along with the extent of the default map and formatting).  Also, please can we get rid of the points / waypoints / circles that indicate arbitrary points that are used to indicate data for a large area (for example, a pointer to the capital for a country), and instead highlight the whole area (for example, the whole country).  Ideally the Interaction Publisher will be able to indicate further interaction with the map (for example, displaying different layers of a map -- if not full-blown layers, then at least indicating different sets of waypoints to display).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom data.&lt;/strong&gt;  The Interaction Publisher should also be able to easily publish their own data/content, and pull their data into an interactive feature (for instance, this could even be a simple search on a little database / resource center the user has).  An extension of this would be including some mechanism for overriding other data sources data points (of course this should somehow be indicated on the map/table so it isn't misleading).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wizard-like functionality.&lt;/strong&gt;  The Interaction Publisher should not have to resort to XPATH, XSL, or programming in PHP / Perl / whatever.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sounds nice -- but how would this be possible?  One possible step is for institutions to expose their &lt;em&gt;data in a consistent manner&lt;/em&gt; (at least each institution exposing its own data in consistently).  This would involve something of a meta-API, where you are consistent about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Attributes that can be queried.&lt;/strong&gt;  Perhaps the list would be just topics and countries, for example.  The topics lists should be something that the outside world will understand rather than an organization-centric list.  If you have multiple topics lists, then it would be preferable if all systems were moved to a single topics list (even if that meant two topics lists per system).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simplicity and consistency in APIs.&lt;/strong&gt;  Perhaps all your XML APIs are at &lt;a href="http://xml.example-domain.com/apis/" title="http://xml.example-domain.com/apis/"&gt;http://xml.example-domain.com/apis/&lt;/a&gt; (with an html page just listing all the APIs there) and then APIs to different systems like &lt;a href="http://xml.example-domain.com/api/documents" title="http://xml.example-domain.com/api/documents"&gt;http://xml.example-domain.com/api/documents&lt;/a&gt; and &lt;a href="http://xml.example-domain.com/api/web" title="http://xml.example-domain.com/api/web"&gt;http://xml.example-domain.com/api/web&lt;/a&gt; with example calls like &lt;a href="http://xml.example-domain.com/api/web/api-version=1&amp;amp;topic=agriculture" title="http://xml.example-domain.com/api/web/api-version=1&amp;amp;topic=agriculture"&gt;http://xml.example-domain.com/api/web/api-version=1&amp;amp;topic=agriculture&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consistent exposure of non-standard attributes.&lt;/strong&gt;  The issue of consistent query parameters was covered above -- this means that all systems are queried on the same parameters.  But of course some systems will need to provide other attributes (such as, say, &amp;quot;Population&amp;quot;).  This could be done in a custom namespace in RSS as the DC crime data (see &lt;a href="http://data.octo.dc.gov/feeds/crime_incidents/crime_incidents_current.xml"&gt;xml&lt;/a&gt;) does in its Atom feed (which Yahoo Pipes, for example, can consume).  This could be documented, and the consumer of the data could handle this.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Custom databases would also preferably comply.&lt;/strong&gt; Perhaps there could be an &lt;a href="http://xml.example-domain.com/api/core/" title="http://xml.example-domain.com/api/core/"&gt;http://xml.example-domain.com/api/core/&lt;/a&gt; for institutionally, centrally supported repositories and &lt;a href="http://xml.example-domain.com/api/special/" title="http://xml.example-domain.com/api/special/"&gt;http://xml.example-domain.com/api/special/&lt;/a&gt; for one-off databases.  This would still allow easy access of data by Interaction Publishers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some potential ways of inching toward the goal of the non-developer Interaction Designer easily being able to publish dynamic, interactive features would be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Start by using javascript libraries.&lt;/strong&gt;  There are several javascript libraries out there (examples: &lt;a href="http://dojotoolkit.org/"&gt;Dojo&lt;/a&gt;, &lt;a href="http://mootools.net/"&gt;mootools&lt;/a&gt;, &lt;a href="http://www.prototypejs.org/"&gt;Prototype&lt;/a&gt; / &lt;a href="http://script.aculo.us/"&gt;Scriptalicious&lt;/a&gt;), but most seem to be too low-level (concentrating on opening/closing panels, transitions, and the like) to be useful for interactive data features.  Possibly a library that has higher level features including interactive table such as &lt;a href="http://extjs.com/"&gt;EXT JS&lt;/a&gt; could be used as a first step.  It would require touching some code, but perhaps a CMS, for example, could include in its documentation with code snippets indicating what needs to be replaced (for example, where to put in the url to the source XML).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create some simple wizards in CMSes.&lt;/strong&gt;  So that we aren't relying on, for example, Yahoo Pipes for hosting our interaction, we may wish to start including simple wizards in our CMSes.  For example, one could be for interactive tables that just had one data source and three columns.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Push for stronger hosted interactive feature builders.&lt;/strong&gt;  For example, Yahoo Pipes perhaps could include some of the features mentioned in this email (for example, a tool for creating interactive maps, or a tool for creating a pulldown of options to drive a Google map.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here's a little chart displaying some of the ideas in this post (also see &lt;a href="http://hobbsontech.com/files/other-post-files/InteractionPublisher.pdf"&gt;pdf version&lt;/a&gt;):&lt;/p&gt;
&lt;p&gt;&lt;a href="http://hobbsontech.com/files/other-post-files/InteractionPublisher.pdf"&gt;&lt;img alt="" src="http://hobbsontech.com/files/images/InteractionPublisher.gif" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I'd really like your comments on this post.  Specifically:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is the role of Interaction Publisher important?&lt;/li&gt;
&lt;li&gt;How could we enable this role?&lt;/li&gt;
&lt;li&gt;What ideas above do you think would work and which would not work?&lt;/li&gt;
&lt;li&gt;Is their a need for a separate generic standard XML from RSS feeds, or should an institution's RSS just be extended to include custom portions?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/199026742" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/enabling-interaction-publisher#comments</comments>
 <category domain="http://hobbsontech.com/category/tag/api">API</category>
 <category domain="http://hobbsontech.com/category/topic/cms">CMS</category>
 <category domain="http://hobbsontech.com/category/tag/cms">cms</category>
 <category domain="http://hobbsontech.com/category/tag/data-grid">data grid</category>
 <category domain="http://hobbsontech.com/category/tag/interaction-publisher">interaction publisher</category>
 <category domain="http://hobbsontech.com/category/topic/management">Management</category>
 <category domain="http://hobbsontech.com/category/tag/maps">maps</category>
 <category domain="http://hobbsontech.com/category/tag/mashup">mashup</category>
 <category domain="http://hobbsontech.com/category/tag/standard">standard</category>
 <category domain="http://hobbsontech.com/category/topic/technical">Technical</category>
 <category domain="http://hobbsontech.com/category/tag/wizard">wizard</category>
 <category domain="http://hobbsontech.com/category/tag/yahoo-pipes">yahoo pipes</category>
 <pubDate>Tue, 11 Dec 2007 22:34:10 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">49 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/enabling-interaction-publisher</feedburner:origLink></item>
<item>
 <title>Selecting a Content Management System (CMS)</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/198148196/selecting-content-management-system-cms</link>
 <description>&lt;p&gt;There are already various sites comparing &lt;em&gt;features&lt;/em&gt; of content management systems (for example &lt;a href="http://www.cmsmatrix.org/matrix"&gt;the CMS matrix&lt;/a&gt;), so this post aims to help set a framework for selecting a Content Management System (CMS).   Aside from standard things to keep in mind when selecting a technology, there are some particularly important items for setting the tone of your CMS selection:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Standardization / Governance.&lt;/strong&gt;  Is one of your objectives to standardize the look and feel of your site, or to try to ensure there's a consistent quality across your site?  If so, then before you start moving into the new system then deciding who will make the decision of what goes up and how the decisions will get made is important.  Sure, an advantage of a CMS is that anyone can publish, but this can lead to inconsistent quality.  I'm not just talking about how workflow: for instance, who makes the call about adding a whole new site section?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Stakeholder buy-in of objectives.&lt;/strong&gt;  This one is of course part of any technology decision, but some key factors in deciding about a CMS are: a) if you've decided to standardize aspects of your site, make sure everyone is bought in (otherwise people will try whatever they can to get out of the standard), b) if people's jobs are going to change (for instance, people that are doing hands-on HTML coding may not be doing that anymore), then is everyone clear on this?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Envision key use cases.&lt;/strong&gt;  After you're in the middle of migrating your content/systems, you may lose sight of why you undertook this in the first place.  Laying out key use cases in advance allows you to both not loose sight of the goals and also let's you more easily claim victory.  Key use cases might be something like &amp;quot;Will be able to allow any staff member to publish a piece of content, resulting in it automatically appearing on the home page as well as the relevant country page, and also appears in country's RSS feed and email alerts&amp;quot;.  Of course, you also should list key use cases that you don't want to go away like &amp;quot;Compare statistics across different areas of the site in a consistent manner.&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Make sure everyone understands the complexity of a move to a new system.&lt;/strong&gt;  See &lt;a href="http://hobbsontech.com/content/why-its-hard-migrate-content"&gt;this post&lt;/a&gt; that lists some of the complexity.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are some of the particular factors to consider when selecting a CMS:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tagging.&lt;/strong&gt;  For a large institution, you may have issues keeping consistent quality in your tagging (and you may wish to consider an automated concept extraction tool to help in the tagging).  At any rate, you will want to think about a method of tagging that will work for everyone (and ensure that your system will support this).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;multilingual/internationalization support.&lt;/strong&gt;  See &lt;a href="http://www.developmentseed.org/blog/2007/aug/20/types-foreign-language-websites-and-how-drupal-supports-them"&gt;this page&lt;/a&gt; that describes different levels of multilingual support.  Some more advanced types of features to consider are &lt;a href="http://hobbsontech.com/content/administrative-title"&gt;Administrative Title&lt;/a&gt; and &lt;a href="http://hobbsontech.com/content/interleaving-languages"&gt;Interleaving Languages&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;distributed or centralized content entry input.&lt;/strong&gt;  This relates to the issue of standardization above.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;community/support.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;multiple site support.&lt;/strong&gt;  If you need to have multiple sites, what kind of functionality do you need?  For instance, does content need to flow between sites?  Do the different sites need to enforce a consistent look/brand?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;integration with other systems or all-in-one.&lt;/strong&gt;  A key decision will be how you are going to integrate with other systems, and, if integration is not as important (for instance for a smaller organization), then ensure that your solution supports the different functionalities you need.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With everything on the web moving so fast now (who knows when &lt;a href="http://en.wikipedia.org/wiki/Web_3"&gt;Web 3.0&lt;/a&gt; will be the next thing we're all moving to), consider moving to a CMS environment that will allow quick innovation and new functionality.  Some specific approaches to this:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Try to pick a CMS that is innovating quickly.&lt;/strong&gt;  Of course, what you really want is to pick what CMS will be a winner in the future, but the best we can do now is pick a CMS that is quickly adding new features.  Looking at lists like &lt;a href="http://extensions.joomla.org/"&gt;Joomla's extensions page&lt;/a&gt; for any CMS that you're interested in should help with this.  Of course, it needs to be easy to add any new modules/extensions when they are released.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ease of upgrading to new versions of the core CMS.&lt;/strong&gt;  Obviously hosted, SaaS solutions have an advantage here.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ease of writing your own new functionality.&lt;/strong&gt;  Would the CMS allow your team to program (in some lightweight language like PHP for example) their own new functionality?  If you don't have the skillset, is there a pool of developers outside your organization who could help?  Is there useful documentation on how to write your own new functionality?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;support to expose/share data.&lt;/strong&gt;  We have RSS as a mainstream feed now, but what about richer XML exposed for more structured data?  More and more, we'll need to support people outside our organizations utilizing our content/data to write functionality on their own sites, combining your data with other organizations' data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;integration with outside systems.&lt;/strong&gt;  If a CMS already has integration with other types of systems (for instance, stats, newsletters, email alerts, membership databases, etc), then it may be easier to move to future leaders in these different spaces.&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/198148196" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/selecting-content-management-system-cms#comments</comments>
 <category domain="http://hobbsontech.com/category/topic/cms">CMS</category>
 <category domain="http://hobbsontech.com/category/tag/cms">cms</category>
 <category domain="http://hobbsontech.com/category/topic/management">Management</category>
 <pubDate>Mon, 10 Dec 2007 10:27:04 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">47 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/selecting-content-management-system-cms</feedburner:origLink></item>
<item>
 <title>Why It's Hard to Migrate Content</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/197271563/why-its-hard-migrate-content</link>
 <description>&lt;p&gt;You know when it's time to move into a new house or apartment, when you look at the stuff you need to move and think &amp;quot;Why in the world do I have this bread machine?  I haven't used this in years and I forgot I even had it.&amp;quot;  Or you dread moving your old clunker of a TV, thinking of the new fancy flat-panel TVs?    Well, it's the same thing with migrating to a new system, for instance into a new content management system.  Only it's harder.  When you're moving and you're pressed for time, you may just start tossing stuff into boxes to be moved, even when you know you don't totally want all the stuff (one reason: you'll need to negotiate with a spouse about getting rid of something, and there's no time for that).  This isn't that big a deal, since it's just moving more of the same stuff.  Or, if you have a huge sectional couch that won't fit in your new place, then perhaps you can just sell it to the next homeowner.  When you're moving content, you have all sorts of extra things to think about including:
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;It's not just content.&lt;/strong&gt;  Content on a site doesn't just live in some abstract ether, but it is linked into a larger site context.  This includes left navigation, headers, footers, and special site behaviors.  Of course moving the site context of a simple site like hobbsontech.com would be relatively easy to move (re-creating the the menus, configuring the overall style, etc), but the more sites you have, the more there would be to do.  This is especially relevant for sites with a lot of custom dynamic functionality.  For instance, if you have comments on your current site's content, then you'd have to figure out how to embed it in the new framework (or just leave it behind).  Chances are you have a lot of functionality distributed throughout your site that may even be hard to inventory.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metadata and taxonomies.&lt;/strong&gt;  You may have to re-create taxonomies in another system, and there may be incompatabilities you have to work through.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Internal references to other pieces of content.&lt;/strong&gt;  Your content probably refers to itself (for instance, a press release may refer to your product description page).  This somehow has to be reflected in a new system.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Structured content.&lt;/strong&gt;  You may have structured content (for instance, a document that has multiple chapters), which you'll need to figure out how to handle in the new system.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Outside references to your content.&lt;/strong&gt;  Other sites, as well as search engines, will have links to your content.  You'll need to have some strategy to deal with the links from external sites.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In the end, a lot of this has to do with the &lt;strong&gt;web&lt;/strong&gt; of information that's involved in the content of a web site.  And this isn't counting the types of technical issues that would come up with any technical migration (differences in size limits for fields, encoding differences, etc.).    Of course there's the issue of why you even have all this stuff to move in the first place (and the more stuff you have the more hassle it is to move).  This blog entry has focused on why it's difficult to move all this content, but of course one of the morals of the story is to have less stuff in the first place.  In the case of the web this would involve better governance of what goes on the web, and clearly defining what the focus of your web site should be.  Hopefully, just like when moving houses, any discussion of moving content would also include discussing what stuff you need in the first place.  Unlike houses, having extra or duplicate stuff doesn't just inconvenience you but &lt;em&gt;it is a disservice to your users&lt;/em&gt;.  I'll leave the issue of the old TV and desiring the new flat panel to a future post (on survivorship bias).&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/197271563" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/why-its-hard-migrate-content#comments</comments>
 <category domain="http://hobbsontech.com/category/tag/cms">cms</category>
 <category domain="http://hobbsontech.com/category/topic/cms">CMS</category>
 <category domain="http://hobbsontech.com/category/topic/communications">Communications</category>
 <category domain="http://hobbsontech.com/category/tag/content">content</category>
 <category domain="http://hobbsontech.com/category/topic/management">Management</category>
 <category domain="http://hobbsontech.com/category/tag/migration">migration</category>
 <pubDate>Sat, 08 Dec 2007 13:06:46 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">45 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/why-its-hard-migrate-content</feedburner:origLink></item>
<item>
 <title>Standardization and Large Web Sites</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/194150851/standardization-and-large-web-sites</link>
 <description>&lt;p&gt;Very large sites supporting a large number of units/stakeholders can easily turn into a hodge-podge of styles, user interface elements, and quality.  One of the toughest discussions with clients, however, is why they can't do more customization (even if one of the core requirements of the system is to help enforce standardization).  What are some of the reasons *not* to standardize:
&lt;ul&gt;
&lt;li&gt;specific business needs of different groups (not to be confused with a group just wanting to differentiate itself somehow, for instance with a different look, that does not help the web visitor at all)&lt;/li&gt;
&lt;li&gt;professional development (for instance a developer might be interesting to do a mashup)&lt;/li&gt;
&lt;li&gt;personal expression (liking particular colors for example)&lt;/li&gt;
&lt;li&gt;experimentation (don't know in advance what's going to &amp;quot;stick,&amp;quot; so try a variety of things)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In my opinion, the first and last reasons are the most compelling (and the third not being a good reason at all for an enterprise-wide system), although one of the problems with experimentation is the frequent expectation that an experiment could quickly be rolled into the normal standardized platform (that's probably a post on its own!).  Here are some reasons *to* standardize:
&lt;ul&gt;
&lt;li&gt;consistent brand for the user (&amp;quot;am I still on the same site?  Is this high quality content?&amp;quot;)&lt;/li&gt;
&lt;li&gt;consistent UI for the user (&amp;quot;do I know how to use the site?&amp;quot;)&lt;/li&gt;
&lt;li&gt;better support for new site admins or transition of support between sites&lt;/li&gt;
&lt;li&gt;single sign-on.  It's confusing for a user to have various accounts with the same institution.&lt;/li&gt;
&lt;li&gt;standard statistics.  Different statistics packages can have entirely different ways of counting something as basic as a page view.  Standardizing no a statistics package can help ensure you're comparing apples to apples in your web analysis.&lt;/li&gt;
&lt;li&gt;better search.  If everyone does their own thing, then there may be more fragmented information which would mean search results aren't as good.&lt;/li&gt;
&lt;li&gt;stability / support.  As anyone who works with software/systems knows, the more functionality or special customization you put into a system, the more effort it takes to maintain it.  Also, the system will probably be less stable.  This one is also very tough to discuss with a client (and another probable future blog post) since they tend to only see their particular need.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some possible methods of standardization:
&lt;ul&gt;
&lt;li&gt;Governance.  There needs to be a group with the power and influence to say &amp;quot;no&amp;quot; to requests that undermine the quality of the user experience of the site at large.  This ideally is not the technology group since there would appear to be a conflict of interest.&lt;/li&gt;
&lt;li&gt;Clearly define exactly what is inside the standard and what is outside.&lt;/li&gt;
&lt;li&gt;Technology.  The content management system used to manage the site can be set up such that users can only make changes that comply with the standard.&lt;/li&gt;
&lt;li&gt;The right level of customization.  Standardization shouldn't be an excuse to totally control every aspect of everyone's sites or to not allow any innovation.&lt;/li&gt;
&lt;li&gt;Hooks into core shared functionalty.  You may decide that a single sign on for users of your site is desirable.  If so, then perhaps the system could be set up with an API such that tools developed and commissioned by other groups could work with the core functionality.&lt;/li&gt;
&lt;li&gt;Standardized access to data.  Ideally, you could define a standard method of each system exposing its core data, that even people outside the institution could utilize for mashups, etc.  By providing the data in a simple XML API, this could facilitate both internal and external usage of data.&lt;/li&gt;
&lt;li&gt;Another potential approach is to have separate branding for the official, blessed content and for the organization-centric content.  For instance, you may have multiple units in your institution all looking at the topic of taxes.  Ideally you would have one official web site that makes sense of your institution's view of taxes overall, and preferably this would pull information from all the units.  The various units still may want their own site, but this is less useful for the end user -- so perhaps these units could have their own sites branded differently (and perhaps all requiring a standard link back to the official site) to clearly indicate it is the view of a particular unit with your institution.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Of course, all of these are easier said than done when trying to get a large number of units into the same system, but perhaps some of these could be initiated even after a large suite of sites have been implemented in a central content management system.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/194150851" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/standardization-and-large-web-sites#comments</comments>
 <category domain="http://hobbsontech.com/category/topic/cms">CMS</category>
 <category domain="http://hobbsontech.com/category/tag/enterprise">enterprise</category>
 <category domain="http://hobbsontech.com/category/tag/governance">governance</category>
 <category domain="http://hobbsontech.com/category/tag/large-web-site">large web site</category>
 <category domain="http://hobbsontech.com/category/topic/management">Management</category>
 <category domain="http://hobbsontech.com/category/tag/standard">standard</category>
 <pubDate>Sun, 02 Dec 2007 19:52:16 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">18 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/standardization-and-large-web-sites</feedburner:origLink></item>
<item>
 <title>Search Engine Optimization Basics</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/193920878/search-engine-optimization-basics</link>
 <description>&lt;p&gt;This post doesn't attempt to cover more obscure aspects of search engine optimization (SEO), but covers the basics that are really easy to overlook when you work on your site.  Also, since Google is the major search player, I just refer to &amp;quot;Google&amp;quot; rather than trying to be more generic.  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 0: Has Google indexed your site at all?&lt;/strong&gt;  &lt;/p&gt;
&lt;p&gt;Go to google.com and do a search on site:your-site-name-here, like &amp;quot;site:http://bhphotovideo.com&amp;quot; to see if byphotovideo.com is indexed by Google.  If there are no results, you're not indexed.  Some ideas to get indexed: a) put in links from sites / pages you already have (for example, your profile on linkedin.com), b) get other sites to link to you (for example, you can comment on other peoples' blogs linking to your site), c) for blogs, use &lt;a href="http://pingomatic.com/"&gt;pingomatic&lt;/a&gt; to automatically update other services of your site, and d) submit your site to Google for indexing (not sure that actually does anything though?).    &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1: What are you trying to accomplish?&lt;/strong&gt;  &lt;/p&gt;
&lt;p&gt;This one sounds so obvious and silly, but it's very easy to overlook.  It's useful to just write down the search phrases you'd like to find your site.  Of course the more specific the better, since generic terms will be very difficult to get high rankings on.  For example, I knew I wanted people to find this site if they typed my name and a little about me (for example, &amp;quot;David Hobbs CMS&amp;quot;).    &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2: Make sure your keywords are in the title and header tags, as well as in the text users will see (and preferably in the domain and url)&lt;/strong&gt;  &lt;/p&gt;
&lt;p&gt;You may not have control over the domain and url (if you are in some content management systems), but you should at least make sure to have the title, header, and main text contain your terms.  &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3: Track your progress.&lt;/strong&gt;  &lt;/p&gt;
&lt;p&gt;Type your search terms into Google and see how high in the rankings you appear.  If you have already gotten good results (first page of results?), it may be time to set your goals higher.  For instance, for this site I'm now interested in shooting for more topic-based search phrases such as &amp;quot;multilingual CMS&amp;quot; (currently the 14th page of results).    Also, you will want to look for &lt;i&gt;dips&lt;/i&gt; in the performance of your search phrases.  This is especially relevant to test before and after any changes you make to your site/system.  If you're working with a client on their site, by having the metrics (and search goals) before you start you'll be able to more objectively discuss the search performance of their site.    Another angle is to look at the terms that people are using to actually find your site.  You may find interest in your site from unexpected angles that you may wish to further enhance (for instance, people are finding my site with phrases such as &amp;quot;annotate excel graph&amp;quot;, so I may put a more generic introduction to that blog entry).    &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Repeat.&lt;/strong&gt;  &lt;/p&gt;
&lt;p&gt;The first step, to get into the Google index at all, involved getting links to your site.  As you proceed, of course you also want to have higher and higher quality sites link to you.  As mentioned in the previous step, your search goals will also probably change, and you'll want to add/reword/reconfigure portions of your site (per Step 2 above) to optimize for those new goals.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/193920878" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/search-engine-optimization-basics#comments</comments>
 <category domain="http://hobbsontech.com/category/topic/management">Management</category>
 <category domain="http://hobbsontech.com/category/tag/seo">SEO</category>
 <category domain="http://hobbsontech.com/category/topic/technical">Technical</category>
 <pubDate>Sun, 02 Dec 2007 06:11:50 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">42 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/search-engine-optimization-basics</feedburner:origLink></item>
<item>
 <title>Drupal after a Month</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/193724712/drupal-after-month</link>
 <description>&lt;p&gt;Now that I've been using Drupal for a month (Drupal is driving this site), I thought it would be a good time to write up my impressions of this open source CMS.  Obviously this is before I know the tool in depth, and also before I become jaded or a zealot.  For reference, over the past seven years I've worked with a couple custom CMS systems, both driving very large and small web sites, and I also have used Wordpress (not a CMS) for two other personal blogs.  Also, my emphasis using Drupal for this site has been as a blog so I haven't fully explored all the CMS features.    I really like Drupal for many reasons including:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Very easy to add features to a site.&lt;/strong&gt;  You download a module, set some parameters, and then you have a new feature (&lt;a href="http://drupal.org/node/70151"&gt;instructions&lt;/a&gt;).  Examples of useful features that I've added easily to this site: feedburner redirects (&lt;a href="http://drupal.org/project/feedburner"&gt;Feedburner module&lt;/a&gt;), CAPTCHA checking for form submission to block robots (&lt;a href="http://drupal.org/project/captcha"&gt;CAPTCHA module&lt;/a&gt;), email forwarding posts (&lt;a href="http://drupal.org/project/forward"&gt;Forward module&lt;/a&gt;), SEO and human-friendly urls (&lt;a href="http://drupal.org/project/pathauto"&gt;pathauto module&lt;/a&gt;), links to digg and other services (&lt;a href="http://drupal.org/project/service_links"&gt;Service Links module&lt;/a&gt;), and full name listing as author for blog posts (&lt;a href="http://drupal.org/project/authorship"&gt;Authorship module&lt;/a&gt;).   That's not counting the really useful core modules that I've enabled for the site like the ability to pull in / aggregate other feeds (&lt;a href="http://drupal.org/handbook/modules/aggregator"&gt;Aggregator module&lt;/a&gt;), comments (&lt;a href="http://drupal.org/handbook/modules/comments"&gt;Comments module&lt;/a&gt;), automatically pinging services such as Technorati (&lt;a href="http://drupal.org/handbook/modules/ping"&gt;Ping module&lt;/a&gt;), search (&lt;a href="http://drupal.org/handbook/modules/search"&gt;Search module&lt;/a&gt;), some web access statistics (&lt;a href="http://drupal.org/handbook/modules/statistics"&gt;Statistics module&lt;/a&gt;), the ability to create different taxonomies/categorizations (&lt;a href="http://drupal.org/handbook/modules/taxonomy"&gt;Taxonomy module&lt;/a&gt;), and the ability to automatically have features of the site turned off under high load (&lt;a href="http://drupal.org/handbook/modules/throttle"&gt;Throttle module&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Built-in performance and throttling.&lt;/strong&gt;  You can set how aggressively you cache, and selectively set which features get turned off under higher load.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upcoming features.&lt;/strong&gt;  Since Drupal has gained some momentum, one feels the inevitability of new features being added as time goes on.  Also, since it looks to be easy to add new modules, you could add a module yourself if you wanted.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nice modularization.&lt;/strong&gt;  I haven't read the documentation on how to develop modules, but, just seeing how modules work when installing them, the pluggability of modules seems very nice.  Once installed/enabled, modules aren't just stovepipes.  For example, when in admin mode the CAPTCHA module shows a message next to every form on your site asking if you want CAPTCHA there.  Also, it appears that modules can easily write to the log screen, and are all controlled from the same core administration screen.  When writing a post, the different options are embedded right on one page (for instance, the pathauto module automatically indicates, and lets you override, the alias it plans on giving your post).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flexible themes.&lt;/strong&gt;  I'm using the Garland theme, and I liked how you can set your own colors and other things are parameterized like your logo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiple taxonomies.&lt;/strong&gt;  You can create easily create your own category lists.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Perhaps above everything else, it just seems that the details have been done very nicely in Drupal.   Overall a site in Drupal appears to be easy to administer.  These are some items that weren't as smooth: a) didn't get the Backup module to work quickly enough (was faster just to use scripts to do it rather than get the module to work), b) still don't fully understand the file upload/download environment (especially for counting the downloads), c) by default you're in raw html editing (yes, you can install a web-based HTML editor, but the ones I tried so far don't seem very useful), and d) getting the transparent logo needed for the Garland theme working quickly.    A note to people currently working in a large, complex enterprise content management environment: I highly recommend playing with Drupal to get the creative juices flowing and also to work in a less constrained environment.  Also, it's nice to work from a clean slate on a new site (although I've already bumped into a place where I wish I had set up the site differently in the first place).  But of course working in an enterprise environment has a host of other requirements that have to be dealt with (for example standardized look across sites, security, single sign on, integration with internal repositories, existing systems, and standardized administration).&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/193724712" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/drupal-after-month#comments</comments>
 <category domain="http://hobbsontech.com/category/tag/cms">cms</category>
 <category domain="http://hobbsontech.com/category/topic/cms">CMS</category>
 <category domain="http://hobbsontech.com/category/tag/drupal">drupal</category>
 <category domain="http://hobbsontech.com/category/tag/modularization">modularization</category>
 <category domain="http://hobbsontech.com/category/topic/technical">Technical</category>
 <pubDate>Sat, 01 Dec 2007 20:40:03 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">40 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/drupal-after-month</feedburner:origLink></item>
<item>
 <title>Client-centric metrics</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/212158499/client-centric-metrics</link>
 <description>&lt;p&gt;Here's an example of a practically-meaningless statistic from a user's perspective (this is from a free version of a monitoring service by &lt;a href="http://host-tracker.com"&gt;host-tracker.com&lt;/a&gt; checking hobbsontech.com, I believe for a valid HTTP response, every thirty minutes since November 21st):&lt;/p&gt;
&lt;p&gt;&lt;img src="http://ext.host-tracker.com/uptime-img/?s=31&amp;amp;t=619497&amp;amp;m=00.09&amp;amp;p=Total&amp;amp;src=lvuc" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Straight off, let me say that for troubleshooting this is useful.  If someone tells me they couldn't get to this site at noon yesterday, I can quickly check to see if the site was &lt;i&gt;totally&lt;/i&gt; down for long enough that the monitoring would catch this.  In a more sophisticated environment, one can quickly check to see if a particular server in a cluster, for example, is bad and needs to be dealt with or taken offline.  But this kind of metric shouldn't be confused with client-centric metrics, and you should try setting your sights on statistics that come closer to the user experience.  Some key things to keep in mind when defining client-centric metrics:&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Don't use averages.  Users don't think in terms of averages, but in extremes (for instance, &amp;quot;yesterday I saw a page with outdated content&amp;quot;).  So, your goals should be in terms like &amp;quot;page loads in less than five seconds within institution's firewall 99% of the time, and within 10 seconds 99.99% of the time.&amp;quot;  Note that all those 9's in the example above are not about simple uptime, but a percentage of time that a metric is met.  Also see &lt;a href="http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html"&gt;Amazon's CTO's description&lt;/a&gt; of measuring at higher percentiles (one reason he gives is to ensure high value clients with more complicated, personalized pages, have good response times).&lt;/li&gt;
&lt;li&gt;Don't use planned maintenance windows as an excuse.  Service downtime experienced during maintenance windows should be calculated as downtime.  Of course, planned maintenance is still important, since you can warn your users of downtime (and you can hopefully pick times that are lower-impact).  But it's still downtime.  Of course, if a server is down but the &lt;i&gt;service&lt;/i&gt; is still available, then you shouldn't ding yourself in your client-centric metrics (and you should congratulate yourself in doing things in a way that allows downtime of server(s) without downtime of the service).&lt;/li&gt;
&lt;li&gt;Try to base your metrics on the way a user experiences your system.  This will usually involve more sophisticated analysis of responses from the server(s).  For example, don't just check for a successful HTTP response from the server (for example, I could create a page that returns a successful HTTP return code but says &amp;quot;This site is down for maintenance&amp;quot;), but check that the page has a valid left navigation, header, and piece of content(s) (perhaps using &lt;a href="http://hobbsontech.com/?q=node/30"&gt;screen scraping&lt;/a&gt; techniques).  Also, aside from a troubleshooting technique, don't consider &lt;i&gt;server&lt;/i&gt; time for generating pages, but the time a user would actually experience in downloading a page (including pulling in all the components of the page, and, if possible, the time to compute/render a page).  If you cache your pages, don't get too hung up on the performance of just cached pages (the end user won't know if it's a cached or dynamic page they are getting, so your metric has to consider the dynamic pages as well).  Another example of client-centric metrics for a large system with a suite of sites:  length of time between content publishing and appearance in all relevant pages.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But probably most important is to identify client-centric metrics as early as possible, and create a method of tracking these.  If possible, you could install a large display outside a manager's office with the metrics in red when you aren't meeting the goals.    Here's a table listing some example before/after types of client-centric metrics:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Not client-centric&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;More client-centric&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Excluding maintenance windows, the server uptime this last week was 99.9%&lt;/td&gt;
&lt;td&gt;99.7% of all pages in the last week loaded completely (good header, footer, and content area)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Excluding maintenance windows, 99.9% of all pages were generated within 1 second by the server&lt;/td&gt;
&lt;td&gt;99.1% of all pages in the last week loaded within 5 seconds inside our firewall&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1,000 content items were published yesterday&lt;/td&gt;
&lt;td&gt;The 1,000 content items published yesterday appeared on all relevant pages within 30 minutes 99.9% of the time.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/212158499" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/client-centric-metrics#comments</comments>
 <category domain="http://hobbsontech.com/category/tag/client">client</category>
 <category domain="http://hobbsontech.com/category/tag/client-centric">client-centric</category>
 <category domain="http://hobbsontech.com/category/topic/management">Management</category>
 <category domain="http://hobbsontech.com/category/tag/metrics">metrics</category>
 <category domain="http://hobbsontech.com/category/topic/technical">Technical</category>
 <category domain="http://hobbsontech.com/category/tag/uptime">uptime</category>
 <pubDate>Wed, 28 Nov 2007 21:45:45 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">36 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/client-centric-metrics</feedburner:origLink></item>
<item>
 <title>Administrative Title</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/193734532/administrative-title</link>
 <description>&lt;p&gt;If you don't speak Thai and get a message like &amp;quot;the Thai news page is totally bonkers,&amp;quot; you won't be able to help troubleshoot very easily since it may be difficult to even *find* that page.  If you have multiple timezones that you're dealing with, you could waste time getting clarifications/etc about which page it is they are talking about (of course a url + screenshot + indication of exactly what's wrong would be great in the first place, but upset users often don't send this level of detail).  Being able to search the Thai site in the backend on &amp;quot;news&amp;quot; may allow you to quickly find that content/page for troubleshooting.    If you have a large site with lots of languages, you may have one common language that all of the institution's staff knows.  For instance, English might be the institutional working language.  In that case, it might be best to always require an English title in addition to the actual title of a piece of content.    Of course, if you *always* had an English version of every piece of content, then you could just use that English version for back end administration.  But chances are you will have content that is *just* in a non-English piece of content.   In that case, having all non-English content tagged with an English title could be helpful (which could automatically get set to the existing title of the English version of the content if the English version exists).    Also, you should probably decide early on if you're going to have other backend features in English or in the different languages.  For example, if you have a common institutional working language, then you should probably have all the names of the sites in the administrative backend in *English* in addition to the site's actual title in the site's language.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/193734532" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/administrative-title#comments</comments>
 <category domain="http://hobbsontech.com/category/topic/cms">CMS</category>
 <category domain="http://hobbsontech.com/category/tag/multilingual">multilingual</category>
 <category domain="http://hobbsontech.com/category/topic/multilingual">Multilingual</category>
 <category domain="http://hobbsontech.com/category/tag/use-case">use case</category>
 <pubDate>Mon, 26 Nov 2007 20:35:38 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">25 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/administrative-title</feedburner:origLink></item>
<item>
 <title>Responding to urgent user issues</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/216438042/responding-urgent-user-issues</link>
 <description>&lt;p&gt;In any system that's actually used (!), you're going to get user reports of problems that need fast response such as access issues (as oppossed to enhancement or bug fix requests).  Unfortunately, a common and very difficult type of problem is an intermittent issue or one that you cannot reproduce.  That said, even in that case, here are some rules of thumb in responding to a user report:
&lt;ul&gt;
&lt;li&gt;Identify whether or not you saw the problem (and never, ever, just close a ticket just because you don't see the issue -- at a minimum contact the user first *before* declaring something couldn't be reproduced).&lt;/li&gt;
&lt;li&gt;If you cannot reproduce the problem, then try to walk through the exact steps with the user on your desktop (or by sharing their desktop).  Of course, the user may resist this since they're already frustrated if they contacted you.  But as we all know a problem may only occur in a very specific situation (that you never do), although it may be the *only* way that particular user does things (so the user feels this always happens).  Of course, if there is another way of doing the same thing, then suggest a workaround.&lt;/li&gt;
&lt;li&gt;Clearly indicate if you *did* something for the problem to go away.&lt;/li&gt;
&lt;li&gt;Ask for confirmation that the *user* thinks the issue is resolved (this one is important but easy to overlook).&lt;/li&gt;
&lt;li&gt;Make it clear that the user can get back to you with any follow-up questions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An example response that isn't very useful to a user: &amp;quot;Try now&amp;quot; and nothing more (the user doesn't know if you did anything, and they might think you don't believe anything was wrong in the first place).&amp;nbsp;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/216438042" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/responding-urgent-user-issues#comments</comments>
 <category domain="http://hobbsontech.com/category/tag/client-centric">client-centric</category>
 <category domain="http://hobbsontech.com/category/tag/communications">communications</category>
 <category domain="http://hobbsontech.com/category/topic/communications">Communications</category>
 <category domain="http://hobbsontech.com/category/tag/help-desk">help desk</category>
 <pubDate>Tue, 20 Nov 2007 15:40:14 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">7 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/responding-urgent-user-issues</feedburner:origLink></item>
<item>
 <title>Screen Scraping</title>
 <link>http://feeds.feedburner.com/~r/HobbsOnTech/~3/216438043/screen-scraping</link>
 <description>&lt;p&gt;This may not seem very &lt;a href="http://www.oreilly.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html"&gt;Web 2.0 (O'Reilly wrote web services is 2.0 but screen scraping is 1.0)&lt;/a&gt;, but I think there are a variety of reasons that &lt;a href="http://en.wikipedia.org/wiki/Screen_scraping"&gt;screen scraping&lt;/a&gt; is still helpful, including:
&lt;ul&gt;
&lt;li&gt;Need to be closer to what the user sees&lt;/li&gt;
&lt;li&gt;Don't have access directly to the database or a web service that will provide you the information you need (or you won't have access soon enough)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example:
&lt;ul&gt;
&lt;li&gt;Testing whether your web pages are looking the way you expect.  Sometimes testing this from the back end just isn't going to cut it, and you need to analyze the HTML to see if the page looks reasonable.&lt;/li&gt;
&lt;li&gt;Writing a report that doesn't already exist on top of some reporting tool (for instance, on top of a defect-tracking system that you don't have access to the code for).&lt;/li&gt;
&lt;li&gt;Creating archived versions of sites.  Sometimes using &lt;a href="http://www.httrack.com/"&gt;HTTRACK&lt;/a&gt;, for example, isn't enough on its own (for example, when you need to pull in full-sized videos from the source system as oppossed to the streamed version on the web).    Also, you can use Perl to wrap around HTTRACK so that you have a standard way of passing options to HTTRACK.&lt;/li&gt;
&lt;li&gt;Seeing which of a large set of your sites are indexed in Google.&lt;/li&gt;
&lt;li&gt;Testing your RSS feeds to determine if they have the right number of content items, etc (I guess this would be more &amp;quot;RSS scraping&amp;quot; than screen scraping).&lt;/li&gt;
&lt;li&gt;Importing from a static site to a CMS (less and less commonly needed nowadays).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Often, if there's a direct DB connection or an RSS feed or some other XML interface that you can use, then it probably makes sense to use that.  Even in that case, the archiving and web page testing cases would probably benefit from screen scraping.&amp;nbsp;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HobbsOnTech/~4/216438043" height="1" width="1"/&gt;</description>
 <comments>http://hobbsontech.com/content/screen-scraping#comments</comments>
 <category domain="http://hobbsontech.com/category/topic/management">Management</category>
 <category domain="http://hobbsontech.com/category/tag/quality">quality</category>
 <category domain="http://hobbsontech.com/category/tag/scraping">scraping</category>
 <category domain="http://hobbsontech.com/category/tag/scripting">scripting</category>
 <category domain="http://hobbsontech.com/category/topic/technical">Technical</category>
 <pubDate>Sat, 17 Nov 2007 22:08:55 -0700</pubDate>
 <dc:creator>hobbs</dc:creator>
 <guid isPermaLink="false">30 at http://hobbsontech.com</guid>
<feedburner:origLink>http://hobbsontech.com/content/screen-scraping</feedburner:origLink></item>
</channel>
</rss>
