<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MicahLogic &#187; Mark Logic</title>
	<atom:link href="http://dubinko.info/blog/tags/commercialism/mark-logic/feed/" rel="self" type="application/rss+xml" />
	<link>http://dubinko.info/blog</link>
	<description>From an XML geek, a reader, a writer, a connector, a man of the people (says keep hope alive)</description>
	<lastBuildDate>Fri, 27 Apr 2012 05:25:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>MarkLogic World 2012</title>
		<link>http://dubinko.info/blog/2012/04/26/marklogic-world-2012/</link>
		<comments>http://dubinko.info/blog/2012/04/26/marklogic-world-2012/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 05:25:44 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[trends]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[marklogic]]></category>
		<category><![CDATA[MLW12]]></category>
		<category><![CDATA[tag]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=970</guid>
		<description><![CDATA[I&#8217;m getting ready to leave for MarkLogic World, May 1-3 in Washington, DC, and it&#8217;s shaping up to be one fabulous conference. I&#8217;ve always enjoyed the vibe at these events&#8211;it has a, well, cool-in-a-data-geeky-way thing going on (like the XML conference in the early 2000&#8242;s where I got to have lunch with James Clark, but that&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m getting ready to leave for <a href="http://marklogicworld.com/">MarkLogic World</a>, May 1-3 in Washington, DC, and it&#8217;s shaping up to be one fabulous conference. I&#8217;ve always enjoyed the vibe at these events&#8211;it has a, well, <em>cool</em>-in-a-data-geeky-way thing going on (like the XML conference in the early 2000&#8242;s where I got to have lunch with James Clark, but that&#8217;s a different story). Lots of people with big data problems will be here, and I always enjoy talking to these kinds of people.</p>
<p>I&#8217;m speaking on Wednesday at 3:30 with Product Manager extraordinaire Justin Makeig about big data visualization. If you&#8217;ll be at the conference, come look me up. And if you won&#8217;t, well, forgive me if I need a few extra days to get back to any email you send this way.</p>
<p>Follow me on Twitter and look for the #MLW12 tag for live coverage.</p>
<p>-m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2012/04/26/marklogic-world-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actually using big data</title>
		<link>http://dubinko.info/blog/2012/04/15/actually-using-big-data/</link>
		<comments>http://dubinko.info/blog/2012/04/15/actually-using-big-data/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 03:20:35 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[bigdata]]></category>
		<category><![CDATA[dataset]]></category>
		<category><![CDATA[manual]]></category>
		<category><![CDATA[ml]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=968</guid>
		<description><![CDATA[I&#8217;ve been thinking a lot about big data, and two recent items nicely capture a slice of the discussion. 1) Alex Milowski recounting working with Big Weather Data. He concludes that &#8216;naive&#8217; (as-is) data loading is a &#8220;doomed&#8221; approach. Even small amounts of friction add up at scale, so you should plan on doing som [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking a lot about big data, and two recent items nicely capture a slice of the discussion.</p>
<blockquote><p>1) Alex Milowski recounting working with <a title="Experiments with Big Weather Data in MarkLogic - Doomed Approach" href="http://www.milowski.com/journal/entry/2012-04-13T15:49:24.758-07:00/">Big Weather Data</a>. He concludes that &#8216;naive&#8217; (as-is) data loading is a &#8220;doomed&#8221; approach. Even small amounts of friction add up at scale, so you should plan on doing som in-situ cleanup. He came up with a slick solution in MarkLogic&#8211;go read his post for details.</p>
<p>2) Chris Dixon on <a title="There are two ways to make large datasets useful" href="http://cdixon.org/2012/04/14/there-are-two-ways-to-make-large-datasets-useful/">Making Large Datasets Useful</a>. Typical approaches like machine learning only solve 80-90% of the problem. So you need to either live with errorful data, or invoke manual clean-up processes.</p></blockquote>
<p>Both worth a read. There&#8217;s more to say, but I&#8217;m not ready to tip my hand on a paper I&#8217;m working on&#8230;</p>
<p>-m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2012/04/15/actually-using-big-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resurgence of MVC in XQuery</title>
		<link>http://dubinko.info/blog/2011/12/08/mvc-in-xquery/</link>
		<comments>http://dubinko.info/blog/2011/12/08/mvc-in-xquery/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 21:27:30 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[trends]]></category>
		<category><![CDATA[XForms]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[XQuery]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=956</guid>
		<description><![CDATA[There&#8217;s been an increasing amount of talk about MVC in XQuery, notably David Cassel&#8217;s great discussion and to an extent Kurt Cagle&#8217;s platform discussion that touched on forms interfaces. Lots of Smart People are thinking in this area, and that&#8217;s a good thing. A while back I recorded my thoughts on what I called MET, or [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s been an increasing amount of talk about MVC in XQuery, notably David Cassel&#8217;s <a title="Models in XQuery" href="http://blog.davidcassel.net/2011/12/models-in-xquery/">great discussion</a> and to an extent Kurt Cagle&#8217;s <a title="The MarkLogic Platform" href="http://xmltoday.org/content/marklogic-platform">platform discussion</a> that touched on forms interfaces. Lots of Smart People are thinking in this area, and that&#8217;s a good thing.</p>
<p>A while back I recorded my thoughts on what I called MET, or the <a title="Model Endpoint Template" href="http://dubinko.info/blog/2009/11/29/model-endpoint-template/">Model Endpoint Template</a> organizational pattern, as used in MarkLogic Application Builder. One difference between 2009 and now, though, is that browsers have distanced themselves even farther from XML, which tends to undercut the eliminate-the-impedance-mismatch argument. In particular, the forms model in HTML5 continues to prefer flat data, which to me indicates that models still play an important role in XQuery web apps.</p>
<p>So I envision the app lifecycle like this:</p>
<ol>
<li>The browser requests a particular page, say the one that lets you configure sorting options in the app you’re building</li>
<li>An HTML page loads.</li>
<li>Client-side script requests the project state from a designated endpoint, the server transforms the XML into a flat list, and delivers it as JSON (as an optimization, the server can package the initial data into the page delivered in the prior step)</li>
<li>Standard form interaction and client-side scripting happens, including manipulation of repeating structures mediated by JavaScript</li>
<li>A standard form submit happens (possibly via script), sending a flat list back to the client, which performs an update to the stored XML.</li>
</ol>
<div>It&#8217;s pretty easy to envision data-mapping tools and libraries that help automate the construction of the transforms mentioned in steps 3 and 5.</div>
<p>Another thing that&#8217;s changed is the emergence of XQuery plugin technology in MarkLogic. There&#8217;s a rapidly-growing library of reusable components, initially centered around Information Studio but soon to cover more ground. This is going to have a major impact on XQuery app designs as components of the app (think visualization widgets) can be seamlessly added to apps.</p>
<p>Endpoints still make a ton of sense for XQuery apps, and provide the additional advantage that you now have a testable, concern-separated data layer for your app. Other apps have a clean way to interop, and even command-line operaton is possible with off-the-shelf-tools like wget.</p>
<p>Lastly, Templates. Even if you use plugins for the functional core of your app, there&#8217;s still a lot of boilerplate stuff you&#8217;d not want to repeat. Something like <a title="mustache.xq" href="http://developer.marklogic.com/code/mustache.xq">Mustache.xq</a> is a good fit for this.</p>
<p>Which is all good&#8211;but is it MVC? This organizational pattern (let&#8217;s call it MET 2.0) is a lot closer to it. Does MET need a controller? Probably. (MarkLogic now ships a pretty good one called rest:rewrite) Like MVC, MET separates the important essences of your application. XQuery will never be Ruby or Java, and its frameworks will never be Rails or Spring, but rather something uniquely poised to capture the expressive power of the language to build apps on top of unstructured and big data. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2011/12/08/mvc-in-xquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5 things to know about MarkLogic 5</title>
		<link>http://dubinko.info/blog/2011/11/01/5-things-to-know-about-marklogic-5/</link>
		<comments>http://dubinko.info/blog/2011/11/01/5-things-to-know-about-marklogic-5/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 19:17:38 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[Mark Logic]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=951</guid>
		<description><![CDATA[MarkLogic 5 is out today. Here&#8217;s five things beyond the official announcement that developers should know about it: If you found the CQ sample useful, you&#8217;ll love Query Console, which does everything CQ does and more (syntax highlighting!) Better Search API support for metadata: MarkLogic has always had support for storing metadata separately from documents. [...]]]></description>
			<content:encoded><![CDATA[<p>MarkLogic 5 is out today. Here&#8217;s five things beyond the <a href="http://developer.marklogic.com/products/marklogic5">official announcement</a> that developers should know about it:</p>
<ol>
<li>If you found the CQ sample useful, you&#8217;ll love Query Console, which does everything CQ does and more (syntax highlighting!)</li>
<li>Better Search API support for metadata: MarkLogic has always had support for storing metadata separately from documents. With new Search API support, it&#8217;s easy to set up, and it works great with databases of binary documents.</li>
<li>The Hadoop connector, while not officially supported in this configuration, works on Mac. I know a lot of developers use Mac hardware. Once you get Hadoop itself set up (following rules like <a title="Configuring Hadoop on Mac" href="http://www.infosci.cornell.edu/hadoop/mac.html">these</a>), everything works great in my experience.</li>
<li>&#8220;Fields&#8221; have gotten more general and more powerful. If you haven&#8217;t set aside named portions of your documents or metadata for special indexing and access, you should look in to this feature&#8211;it will rock your world.</li>
<li>To better understand what your system is doing at any point in time, you can now use the built-in Monitoring Dashboard, which runs in-browser.</li>
</ol>
<div>And let&#8217;s not leave out the Express license, which makes it easier to get started. <a href="http://developer.marklogic.com/products/marklogic-server/5.0">Check it out</a>.</div>
<div>-m</div>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2011/11/01/5-things-to-know-about-marklogic-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MarkLogic in the news</title>
		<link>http://dubinko.info/blog/2011/02/17/marklogic-in-the-news/</link>
		<comments>http://dubinko.info/blog/2011/02/17/marklogic-in-the-news/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 05:24:50 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[area]]></category>
		<category><![CDATA[bay]]></category>
		<category><![CDATA[hiring]]></category>
		<category><![CDATA[marklogic]]></category>
		<category><![CDATA[nbc]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[tv]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=922</guid>
		<description><![CDATA[What&#8217;s that on your TV screen? Why, it&#8217;s MarkLogic, again. Why President Obama Picked the Bay Area And it&#8217;s true, we&#8217;re hiring big time. Maybe your resume should be in that pile&#8230; -m]]></description>
			<content:encoded><![CDATA[<p>What&#8217;s that on your TV screen? Why, it&#8217;s MarkLogic, again.</p>
<p><a href="http://www.nbcbayarea.com/news/local-beat/Why_Pres__Obama_Picked_the_Bay_Area_Bay_Area-116443199.html">Why President Obama Picked the Bay Area</a></p>
<p>And it&#8217;s true, we&#8217;re hiring big time. Maybe your resume should be in that pile&#8230; -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2011/02/17/marklogic-in-the-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Google syntax&#8221; for semantic queries?</title>
		<link>http://dubinko.info/blog/2010/06/09/google-syntax-for-semantic-queries/</link>
		<comments>http://dubinko.info/blog/2010/06/09/google-syntax-for-semantic-queries/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 07:14:42 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[everythingismiscellaneous]]></category>
		<category><![CDATA[intentional web]]></category>
		<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[stuff]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[searchmonkey]]></category>
		<category><![CDATA[semantics]]></category>
		<category><![CDATA[semweb]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=831</guid>
		<description><![CDATA[Thought experiment: are there any commonly-expressed semantic queries&#8211;the kind of queries you&#8217;d run over a triple store, or perhaps a SearchMonkey-annotated web site&#8211;expressible in common type-in-a-searchbox query grammar? As a refresher, here&#8217;s some things that Google and other search engines can handle. The square brackets represent the search box into which the queries are typed, [...]]]></description>
			<content:encoded><![CDATA[<p>Thought experiment: are there any commonly-expressed semantic queries&#8211;the kind of queries you&#8217;d run over a triple store, or perhaps a <a href="http://developer.yahoo.com/searchmonkey/">SearchMonkey</a>-annotated web site&#8211;expressible in common type-in-a-searchbox query grammar?</p>
<p>As a refresher, here&#8217;s some things that Google and other search engines can handle. The square brackets represent the search box into which the queries are typed, not part of the queries themselves.</p>
<p>[term]</p>
<p>[term -butnotthis]</p>
<p>[term1 OR term2]</p>
<p>["phrase term"]</p>
<p>[tem1 OR term2 -"but not this" site:dubinko.info filetype:html]</p>
<p>So what kind of semantic queries would be usefully expressed in a similar way, avoiding SPARQL and the like? For example, maybe [by:"Micah Dubinko"] could map to a document containing a triple like &lt;this document&gt; &lt;dc:author&gt; &#8220;Micah Dubinko&#8221;. What other kinds of graph queries are interesting, common, and simple to express like this? Comments welcome.</p>
<p>-m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2010/06/09/google-syntax-for-semantic-queries/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Balisage contest: solving the wikiml problem</title>
		<link>http://dubinko.info/blog/2010/05/30/balisage-contest-solving-the-wikiml-problem/</link>
		<comments>http://dubinko.info/blog/2010/05/30/balisage-contest-solving-the-wikiml-problem/#comments</comments>
		<pubDate>Sun, 30 May 2010 20:00:48 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[intentional web]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[writing]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=829</guid>
		<description><![CDATA[I wish I could say I had something to do with the planning of this: part of Balisage 2010 is a contest to &#8220;encourage markup experts to review and to research the current state of wiki markup languages and to generate a proposal that serves to de-babelize the current state of affairs for the long [...]]]></description>
			<content:encoded><![CDATA[<p>I wish I could say I had something to do with the planning of this: part of Balisage 2010 is a <a href="http://www.balisage.net/contest.html">contest</a> to &#8220;encourage markup experts to review and to  research the current state of wiki      markup languages and to generate a proposal that serves to  de-babelize the current state of affairs for the long haul.&#8221;  To enter, you must propose a set of concrete steps (organizational,  social, and/or      technological) that will enable wiki content interchange, a real      WYSIWYG editor, and/or wiki syntax standardization.</p>
<p>This pushes all of my buttons. It&#8217;s got structured documents, Web, parser geekery, writing, engineering, and standards. There&#8217;s a bunch of open source prior art, including <a href="http://sourceforge.net/projects/pyxmlwiki/">PyXMLWiki</a>, which I adapted from some fantastic earlier work from Rick Jelliffe.</p>
<p>Sadly, MarkLogic employees aren&#8217;t eligible to enter. Get your write-up done by July 15 and sent to <strong><em>balisage-2010-contest at marklogic dot com</em></strong>. The winner will be announced at Balisage and will take home some serious prize winnings, and also will be strongly encouraged (but not required) to give a brief summary (~10 minutes) of their winning entry.</p>
<p>Can&#8217;t wait to see what comes out of this. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2010/05/30/balisage-contest-solving-the-wikiml-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XProc is ready</title>
		<link>http://dubinko.info/blog/2010/05/11/xproc-is-ready/</link>
		<comments>http://dubinko.info/blog/2010/05/11/xproc-is-ready/#comments</comments>
		<pubDate>Tue, 11 May 2010 16:57:19 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=822</guid>
		<description><![CDATA[Brief note: The W3C XProc specification, edited by my partner-in-crime Norm Walsh, has advanced to Recommendation status. Now go use it. -m]]></description>
			<content:encoded><![CDATA[<p>Brief note: The W3C <a title="XProc" href="http://www.w3.org/TR/xproc/">XProc</a> specification, edited by my <a href="http://norman.walsh.name/2010/04/06/engineering">partner-in-crime</a> Norm Walsh, has advanced to Recommendation status. Now go use it. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2010/05/11/xproc-is-ready/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DMC = developer.marklogic.com</title>
		<link>http://dubinko.info/blog/2010/04/29/dmc/</link>
		<comments>http://dubinko.info/blog/2010/04/29/dmc/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 05:56:57 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[dmc]]></category>
		<category><![CDATA[marklogic]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xquery]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=817</guid>
		<description><![CDATA[The new MarkLogic developer site is up, cleaner, better organized, and more social. Even cooler, it&#8217;s an XSLT-heavy application running on a pre-release version of MarkLogic. The new blog gives some of the details of the new site and transition. So, if you&#8217;re already a MarkLogic developer, this is a great resource. And if you&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p>The new MarkLogic developer site is up, cleaner, better organized, and more social. Even cooler, it&#8217;s an XSLT-heavy application running on a pre-release version of MarkLogic. The new <a href="http://developer.marklogic.com/blog">blog</a> gives some of the details of the new site and transition.</p>
<p>So, if you&#8217;re already a MarkLogic developer, this is a great resource. And if you&#8217;re not, the site itself shows how fast and simple it is to put together a XSLT and XQuery-powered app. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2010/04/29/dmc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recalibrating expectations of XML performance</title>
		<link>http://dubinko.info/blog/2010/04/02/xml-performance/</link>
		<comments>http://dubinko.info/blog/2010/04/02/xml-performance/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 06:56:34 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[commercialism]]></category>
		<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xpath]]></category>
		<category><![CDATA[marklogic]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=376</guid>
		<description><![CDATA[Working at MarkLogic has forced me to recalibrate my expectations around XML-related performance issues. Not to brag or anything, but it&#8217;s screaming fast. Conventional wisdom of avoiding // in paths doesn&#8217;t apply, since that&#8217;s the sort of thing the indexes are made to do, and that&#8217;s just the start. Single milliseconds are now a noteworthy [...]]]></description>
			<content:encoded><![CDATA[<p>Working at MarkLogic has forced me to recalibrate my expectations around XML-related performance issues. Not to brag or anything, but it&#8217;s screaming fast. Conventional wisdom of avoiding <code>//</code> in paths doesn&#8217;t apply, since that&#8217;s the sort of thing the indexes are made to do, and that&#8217;s just the start. Single milliseconds are now a noteworthy amount of time for something showing up in the profiler.</p>
<p>This is what XML was supposed to be like. Now that XML has fallen off the hype cycle, we&#8217;re getting some serious work done. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2010/04/02/xml-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mark Logic User Conference 2010</title>
		<link>http://dubinko.info/blog/2010/02/22/mark-logic-user-conference-2010/</link>
		<comments>http://dubinko.info/blog/2010/02/22/mark-logic-user-conference-2010/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 23:52:39 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[XQuery]]></category>
		<category><![CDATA[chrisanderson]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[econtent]]></category>
		<category><![CDATA[marklogic]]></category>
		<category><![CDATA[michellemanafy]]></category>
		<category><![CDATA[registration]]></category>
		<category><![CDATA[starwars]]></category>
		<category><![CDATA[wired]]></category>
		<category><![CDATA[xquery]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=797</guid>
		<description><![CDATA[Are you coming? Link. It starts on May 4 (Star Wars day!) at the InterContinental Hotel in San Francisco. Guest speakers include Chris Anderson, Editor-in-Chief of Wired and Michelle Manafy, Editor-in-Chief of EContent magazine. Early bird registration ends Feb 28. -m]]></description>
			<content:encoded><![CDATA[<p>Are you coming? <a href="http://www.marklogic.com/UserConference2010/">Link</a>. It starts on May 4 (Star Wars day<a title="May the 4th be with you" href="http://">!</a>) at the InterContinental Hotel in San Francisco. Guest speakers include Chris Anderson, Editor-in-Chief of Wired and Michelle Manafy, Editor-in-Chief of EContent magazine.</p>
<p>Early bird registration ends Feb 28. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2010/02/22/mark-logic-user-conference-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Economic indicators: recruiting picking up again</title>
		<link>http://dubinko.info/blog/2010/01/15/recruiting-picking-up-again/</link>
		<comments>http://dubinko.info/blog/2010/01/15/recruiting-picking-up-again/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 07:31:59 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[marklogic]]></category>
		<category><![CDATA[recruiting]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=778</guid>
		<description><![CDATA[I got a personal email pitch from recruiters at both Facebook and Google, oddly enough both messages within a 3-minute window on a Monday morning. Hiring is on the uptick again, it seems. My team is still looking for the right front end engineer&#8211;someone who knows the JavaScript language in depth, how to use semantic [...]]]></description>
			<content:encoded><![CDATA[<p>I got a personal email pitch from recruiters at both Facebook and Google, oddly enough both messages within a 3-minute window on a Monday morning. Hiring is on the uptick again, it seems. My team is still looking for the right front end engineer&#8211;someone who knows the JavaScript language in depth, how to use semantic HTML and CSS, AND all about browser quirks. Email me. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2010/01/15/recruiting-picking-up-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Failure as the secret to success</title>
		<link>http://dubinko.info/blog/2009/12/21/failure-as-the-secret-to-success/</link>
		<comments>http://dubinko.info/blog/2009/12/21/failure-as-the-secret-to-success/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 05:16:06 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[stuff]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=764</guid>
		<description><![CDATA[Excellent article in Wired, perhaps a good explanation of my career. :-) Dunbar observed that the skeptical (and sometimes heated) questions asked during a group session frequently triggered breakthroughs, as the scientists were forced to reconsider data they’d previously ignored. Which sounds like a fairly typical spec review at Mark Logic. Hint: we&#8217;re hiring&#8211;email me. [...]]]></description>
			<content:encoded><![CDATA[<p>Excellent <a href="http://www.wired.com/magazine/2009/12/fail_accept_defeat/">article</a> in Wired, perhaps a good explanation of my career. :-)</p>
<p style="padding-left: 30px;">Dunbar observed that the skeptical (and sometimes heated) questions asked during a group session frequently triggered breakthroughs, as the scientists were forced to reconsider data they’d previously ignored.</p>
<p>Which sounds like a fairly typical spec review at Mark Logic. Hint: we&#8217;re hiring&#8211;email me.</p>
<p>-m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/12/21/failure-as-the-secret-to-success/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mark Logic Careers</title>
		<link>http://dubinko.info/blog/2009/12/18/mark-logic-careers/</link>
		<comments>http://dubinko.info/blog/2009/12/18/mark-logic-careers/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 06:28:29 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[Mark Logic]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=762</guid>
		<description><![CDATA[Check out the updated careers page, including a quote from YT. If you&#8217;re looking for an amazing place to work, get in touch with me. In particular I&#8217;m looking for top-notch JavaScript/FE/UI people. -m]]></description>
			<content:encoded><![CDATA[<p>Check out the updated careers <a href="http://www.ventureloop.com/pcs/marklogic/careers.html">page</a>, including a quote from YT. If you&#8217;re looking for an amazing place to work, get in touch with me. In particular I&#8217;m looking for top-notch JavaScript/FE/UI people. -m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/12/18/mark-logic-careers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Model Endpoint Template (MET) organizational pattern for XRX apps</title>
		<link>http://dubinko.info/blog/2009/11/29/model-endpoint-template/</link>
		<comments>http://dubinko.info/blog/2009/11/29/model-endpoint-template/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 21:09:08 +0000</pubDate>
		<dc:creator>mdubinko</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[Mark Logic]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[XForms]]></category>
		<category><![CDATA[XQuery]]></category>
		<category><![CDATA[application builder]]></category>
		<category><![CDATA[endpoint]]></category>
		<category><![CDATA[marklogic]]></category>
		<category><![CDATA[met]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[xquery]]></category>
		<category><![CDATA[xrx]]></category>

		<guid isPermaLink="false">http://dubinko.info/blog/?p=730</guid>
		<description><![CDATA[One of the lead bullets describing why XForms is cool always mentions that it is based on a Model View Controller framework. When building a full XRX app, though, MVC might not be the best choice to organize things overall. Why not? Consider a typical XRX app, like MarkLogic Application Builder. (You can download a [...]]]></description>
			<content:encoded><![CDATA[<p>One of the lead bullets describing why <a title="XForms Institute" href="http://xformsinstitute.com">XForms</a> is cool always mentions that it is based on a Model View Controller framework. When building a full <a href="http://en.wikibooks.org/wiki/XRX">XRX</a> app, though, <a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller">MVC</a> might not be the best choice to organize things overall. Why not?</p>
<p>Consider a typical XRX app, like MarkLogic Application Builder. (You can download a your copy of MarkLogic, including Application Builder, under the community license at the <a href="http://developer.marklogic.com/download/">developer site</a>.) For each page, the cycle goes like this:</p>
<ol>
<li>The browser requests a particular page, say the one that lets you configure sorting options in the app you&#8217;re building</li>
<li>The page loads, including client-side <a href="http://sourceforge.net/projects/xsltforms/">XForms via JavaScript</a></li>
<li>XForms requests the project state as XML from a designated endpoint; this becomes the XForms Instance Data</li>
<li>Stuff happens on the page that changes the client-side state</li>
<li>Just before leaving the page, XML representing the updated state is HTTP PUT back to the endpoint</li>
</ol>
<p>The benefit of this approach is that you are dealing with XML all the way through, no impedance mismatches like you might find on an app that awkwardly transitions from (say) relational data to Java objects to urlencoded name/value pairs embedded in HTML syntax.</p>
<p>So why not do this in straight MVC? Honestly, MVC isn&#8217;t a bad choice, but it can get unwieldy. If an endpoint consists of a separate model+view+controller files, and each individual page consists of separate model+view+controller files, it adds up to a lot of stuff to keep track of. In truly huge apps, this much attention to organization might be worth it, but most apps aren&#8217;t that big. Thus the MET pattern.</p>
<p>Model: It still makes sense to keep the code that deals with particular models (closely aligned with Schemas) as a separate thing. All of Application Builder, for example, has only one model.</p>
<p>Endpoint: The job of an endpoint is to GET and PUT (and possibly POST and DELETE) XML, or other equivalent resource bundles depending on how many media types you want to deal with. It combines an aspect of controllers by being activated by a particular URL and views by providing the data in a consistent format.</p>
<p>Template: Since XForms documents already contain MVC mechanics, it not a high-payoff situation to further use MVC to construct the XForms and XHTML wrapper themselves. The important stuff happens within XForms, and then you need various templating mechanisms for example to provide consistent headers, footers, and other pieces across multiple pages. For this, an ordinary templating mechanism suffices. I can imagine dynamic assembly scenarios where this wouldn&#8217;t be the case, but again, many apps don&#8217;t need this kind of flexibility, and the complexity that comes along with it.</p>
<p>What about separation of concerns? Oh yeah, what about it? :-) Technically both Endpoints and Templates violate classical <acronym title="separation of concerns">SOC</acronym>. In an XRX app, this typically doesn&#8217;t lead to the kinds of spaghetti situations that it might otherwise. Endpoints are self contained, and can focus on doing just one thing well; with limited scope comes limited ability to get into trouble. For those times when you need to dig into the XQuery code of an endpoint, it&#8217;s actually helpful to see both the controller and view pieces laid out in one file.</p>
<p>As for Templates, simplicity wins. With the specifics of models and endpoints peeled away, the remaining challenge in developing individual pages is getting the XForms right, and again, it&#8217;s helpful to minimize the numbers of files one XForms page are split across. <a title="You ain't gonna need it" href="http://en.wikipedia.org/wiki/You_ain%27t_gonna_need_it">YAGNI</a> applies to what&#8217;s left, at least in the stuff I&#8217;ve built.</p>
<p>So, I&#8217;ve been careful in the title to call this an &#8220;organizational pattern&#8221;, not a &#8220;design pattern&#8221; or an (ugh) &#8220;architectural pattern&#8221;. Nothing too profound here. I&#8217;d be happy to start seeing XRX apps laid out with directory names like &#8220;models&#8221;, &#8220;endpoints&#8221;, and &#8220;templates&#8221;.</p>
<p>What do you think? Comments welcome.</p>
<p>-m</p>
]]></content:encoded>
			<wfw:commentRss>http://dubinko.info/blog/2009/11/29/model-endpoint-template/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

