<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Fabricated Experience</title>
	<atom:link href="http://morphosis7.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://morphosis7.wordpress.com</link>
	<description>Architecture. Networks. Computers. Education.</description>
	<lastBuildDate>Wed, 04 Jan 2012 13:58:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='morphosis7.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Fabricated Experience</title>
		<link>http://morphosis7.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://morphosis7.wordpress.com/osd.xml" title="Fabricated Experience" />
	<atom:link rel='hub' href='http://morphosis7.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Fun with Lego® Mindstorms &#8211; the Color Sorter</title>
		<link>http://morphosis7.wordpress.com/2012/01/04/fun-with-lego-mindstorms/</link>
		<comments>http://morphosis7.wordpress.com/2012/01/04/fun-with-lego-mindstorms/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 13:57:34 +0000</pubDate>
		<dc:creator>Matt Bernhardt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[color sorter]]></category>
		<category><![CDATA[Lego]]></category>
		<category><![CDATA[Mindstorms]]></category>
		<category><![CDATA[robots]]></category>

		<guid isPermaLink="false">http://morphosis7.wordpress.com/?p=498</guid>
		<description><![CDATA[LEGO® Mindstorms is a robotics platform that allows builders to construct and program a variety of different mechanisms using familiar bricks and an easy-to-use computer application that is built upon LabView. I&#8217;ve been exploring this platform for the past few months, including building the model seen in the video below: Lego® Mindstorms Color Sorter This [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=498&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>LEGO® <a href="http://mindstorms.lego.com/en-us/Default.aspx">Mindstorms</a> is a robotics platform that allows builders to construct and program a variety of different mechanisms using familiar bricks and an easy-to-use computer application that is built upon LabView. I&#8217;ve been exploring this platform for the past few months, including building the model seen in the video below:</p>
<p><span style="text-align:center; display: block;"><a href="http://morphosis7.wordpress.com/2012/01/04/fun-with-lego-mindstorms/"><img src="http://img.youtube.com/vi/_G3VUOjO-F0/2.jpg" alt="" /></a></span><br />
<span id="more-498"></span><br />
<a href="https://www.youtube.com/watch?v=_G3VUOjO-F0">Lego® Mindstorms Color Sorter</a></p>
<p>This is the Color Sorter, which is one of about four different machines whose instructions come with the basic set. It was pretty fun to build, and I learned a few new techniques. Most interesting to me was the linkage between the carousel (at left above) and its drive motor (at bottom). It uses two pairs of pieces that I initially didn&#8217;t recognize as gears, the <a href="http://compare.ebay.com/like/230677621810?var=lv&amp;ltyp=AllFixedPriceItemTypes&amp;var=sbar&amp;_lwgsi=y&amp;cbt=y">knob wheel</a>. This allows the motor to be tucked out of the way (and its housing used as a stop for the storage tray), so the carousel can be kept low to the ground. The downside is that this connection isn&#8217;t as rigid as other gears, so there is considerable play in that portion of the model. It isn&#8217;t too much of a factor for this kit, but for something that needs greater precision it might not be usable.</p>
<p>There are two options for future development here that intrigue me:</p>
<ol>
<li>Replace the rotating carousel with something on a linear track. This would easily allow for more colors to be included, even taking into account the limited capabilities of the color sensor (which I believe can only sense six colors: black, blue, green, yellow, red, and white). A linear system would probably also improve the positioning capability addressed above.</li>
<li>Optimize the sorting program, to remove some of the excess rotation found currently. The system works so that each cycle produces a full rotation of the carousel, unless it senses a blue ball. This removes any need to store information about the state of the carousel, as the machine is reliably at the blue position for each new ball. By introducing awareness about the state of the carousel, the machine could operate more quickly with only necessary rotations &#8211; including in both directions.</li>
</ol>
<p><a href="http://morphosis7.files.wordpress.com/2012/01/color-sorter-program.png"><img class="aligncenter size-full wp-image-499" title="Lego® Mindstorms Color Sorter program excerpt" src="http://morphosis7.files.wordpress.com/2012/01/color-sorter-program.png?w=600&#038;h=493" alt="Lego® Mindstorms Color Sorter program excerpt" width="600" height="493" /></a></p>
<p>For now, though, these efforts will have to wait &#8211; I&#8217;ve got another project coming with Mindstorms that I can&#8217;t wait to begin.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/morphosis7.wordpress.com/498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/morphosis7.wordpress.com/498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/morphosis7.wordpress.com/498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/morphosis7.wordpress.com/498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/morphosis7.wordpress.com/498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/morphosis7.wordpress.com/498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/morphosis7.wordpress.com/498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/morphosis7.wordpress.com/498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/morphosis7.wordpress.com/498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/morphosis7.wordpress.com/498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/morphosis7.wordpress.com/498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/morphosis7.wordpress.com/498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/morphosis7.wordpress.com/498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/morphosis7.wordpress.com/498/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=498&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://morphosis7.wordpress.com/2012/01/04/fun-with-lego-mindstorms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88f0684b5f64e35e5ba5d01079ce4c59?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">morphosis7</media:title>
		</media:content>

		<media:content url="http://morphosis7.files.wordpress.com/2012/01/color-sorter-program.png" medium="image">
			<media:title type="html">Lego® Mindstorms Color Sorter program excerpt</media:title>
		</media:content>
	</item>
		<item>
		<title>Further Adventures with 123D Catch (formerly Photofly)</title>
		<link>http://morphosis7.wordpress.com/2011/12/17/further-adventures-with-123d-catch-formerly-photofly/</link>
		<comments>http://morphosis7.wordpress.com/2011/12/17/further-adventures-with-123d-catch-formerly-photofly/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 04:27:01 +0000</pubDate>
		<dc:creator>Matt Bernhardt</dc:creator>
				<category><![CDATA[Essay]]></category>
		<category><![CDATA[123d catch]]></category>
		<category><![CDATA[3d scanning]]></category>
		<category><![CDATA[photofly]]></category>
		<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://morphosis7.wordpress.com/?p=492</guid>
		<description><![CDATA[I wrote last month about some work I&#8217;d done with Autodesk&#8217;s photo-stitching platform, 123D Catch. Since then, I&#8217;ve continued to experiment with the platform &#8211; with mixed results. This post attempts to summarize the lessons that I&#8217;ve learned. More Photographs May Not Mean A Better Model Since July when I first started playing with this [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=492&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I wrote <a href="http://morphosis7.wordpress.com/2011/11/13/3d-scanning-from-photographs/">last month</a> about some work I&#8217;d done with Autodesk&#8217;s photo-stitching platform, <a href="http://www.123dapp.com/catch">123D Catch</a>. Since then, I&#8217;ve continued to experiment with the platform &#8211; with mixed results. This post attempts to summarize the lessons that I&#8217;ve learned.</p>
<p><span id="more-492"></span></p>
<p><strong>More Photographs May Not Mean A Better Model</strong></p>
<p>Since July when I first started playing with this service, I&#8217;ve created around 20 series of photographs for stitching. Subjects have ranged in size from the small (figurines) to medium (myself, twice) to huge (<a href="http://maps.google.com/maps?q=Longaberger+Alumni+House,+Columbus,+OH&amp;hl=en&amp;sll=37.0625,-95.677068&amp;sspn=46.677964,107.138672&amp;vpsrc=0&amp;hnear=Longaberger+Alumni+House,+Columbus,+Ohio+43202&amp;t=h&amp;z=16&amp;iwloc=A">multi-story buildings</a>), with a variety of planar, rough, and bulbous geometries. After all this work, the best result I&#8217;ve seen gotten has still been <a href="http://www.youtube.com/watch?v=VMZNMXL5DjM">the boulder in Utah</a> that was assembled from a mere six images</p>
<p>This is not to say that, for some models, more images won&#8217;t produce better results. My most recent project has been to capture a memorial to Jesse Owens that sits outside Ohio Stadium. My first attempt involved a single pass around the memorial, shooting 24 images in a general circle:</p>
<span style="text-align:center; display: block;"><a href="http://morphosis7.wordpress.com/2011/12/17/further-adventures-with-123d-catch-formerly-photofly/"><img src="http://img.youtube.com/vi/GPsVXqToPro/2.jpg" alt="" /></a></span>
<p>The video above took some tweaking to the alignment, but is generally okay. It wouldn&#8217;t be acceptable for a site model or fabrication, but does capture the memorial at its more diagrammatic. Several days later, I came back to the site and shot many more photographs. I ended up with 67 images that were focused only on one quarter of the overall memorial &#8211; a portion that did not seem to stitch well (the second quadrant in the video above, visible clearly from 0:04 to 0:07). This expanded set of images has produced some good results, particularly in rendering the brick ground plane. By varying the distance from which I shot the memorial (at times very close, at times up to 30 yards away) I have been able, I think, to get a better outcome than by simply walking in a circle.</p>
<p>More challenges remain, however. The resulting geometry is still a long way from being usable in a studio context, even for the simplest massing model. Looking at the jagged output, I&#8217;m actually reminded most of some of the projects that Nick Gelpi undertook during his LeFevre fellowship here at Ohio State. Nick was particularly interested in the deformations introduced by scanning physical objects and prototyping a model from digital representations &#8211; so I can imagine that he would find these twisted representations of the built environment to be fascinating.</p>
<p><strong>Do Not Move. At All.</strong></p>
<p>Challenged by my earlier failure to get a compelling digital model of myself, I asked my friend Lorrie to photograph me again. This time, she took 81 pictures instead of 22. The distances between each image where smaller, leading to greater overlap between picture and its neighbors.</p>
<span style="text-align:center; display: block;"><a href="http://morphosis7.wordpress.com/2011/12/17/further-adventures-with-123d-catch-formerly-photofly/"><img src="http://img.youtube.com/vi/vn6RARQdQZE/2.jpg" alt="" /></a></span>
<p>The good news is that this time I got a nearly-complete model of my torso. The bad news is that I look like I&#8217;ve been splinched &#8211; to borrow a term from Harry Potter about teleportations gone awry. I was not aware of changing my body position &#8211; but it took nearly 10 minutes for Lorrie to photograph me from every direction. It is entirely possible (even probable, given the outcome) that my body changed position during the shooting. I&#8217;ve attempted to correct this issue by starting with a smaller set of images and then adding the rest after an initial pass &#8211; but thus far that has not resolved the issue. I have also tried assigning reference points around my head but have not made much headway.</p>
<p>Several people have commented, here or on YouTube, that it might be necessary to place reference markers on me to facilitate the stitching. That may be my next step, although I tried to improve the shoot by wearing a button-down shirt &#8211; which has more natural details for the stitching algorithm to utilize. Another option might be to scale down each image, in the thought that a 3-4 megapixel image might contain a bit too much noise, particularly if the camera moved at all.</p>
<p>Stay tuned, either here of on my YouTube channel, for more updates as I continue to play with this technology.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/morphosis7.wordpress.com/492/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/morphosis7.wordpress.com/492/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/morphosis7.wordpress.com/492/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/morphosis7.wordpress.com/492/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/morphosis7.wordpress.com/492/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/morphosis7.wordpress.com/492/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/morphosis7.wordpress.com/492/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/morphosis7.wordpress.com/492/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/morphosis7.wordpress.com/492/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/morphosis7.wordpress.com/492/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/morphosis7.wordpress.com/492/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/morphosis7.wordpress.com/492/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/morphosis7.wordpress.com/492/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/morphosis7.wordpress.com/492/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=492&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://morphosis7.wordpress.com/2011/12/17/further-adventures-with-123d-catch-formerly-photofly/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88f0684b5f64e35e5ba5d01079ce4c59?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">morphosis7</media:title>
		</media:content>
	</item>
		<item>
		<title>3D scanning from photographs</title>
		<link>http://morphosis7.wordpress.com/2011/11/13/3d-scanning-from-photographs/</link>
		<comments>http://morphosis7.wordpress.com/2011/11/13/3d-scanning-from-photographs/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 02:49:43 +0000</pubDate>
		<dc:creator>Matt Bernhardt</dc:creator>
				<category><![CDATA[Essay]]></category>
		<category><![CDATA[3d scanning]]></category>
		<category><![CDATA[photofly]]></category>
		<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://morphosis7.wordpress.com/?p=486</guid>
		<description><![CDATA[I&#8217;ve been interested in representing spaces in electronic terms for almost as long as I&#8217;ve been using computers. Some technologies, like VRML or ActiveWorlds or Second Life, tried to provide an interactive 3d experience via the web. Outside the internet there are also a bewildering array of scanning platforms that allow users to capture 3d [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=486&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been interested in representing spaces in electronic terms for almost as long as I&#8217;ve been using computers. Some technologies, like <a href="http://en.wikipedia.org/wiki/VRML">VRML</a> or <a href="http://www.activeworlds.com/">ActiveWorlds</a> or <a href="http://secondlife.com/">Second Life</a>, tried to provide an interactive 3d experience via the web. Outside the internet there are also a bewildering array of scanning platforms that allow users to capture 3d geometry and export CAD-friendly files. These can cost <a href="http://www.faro.com/site/resources/share/947">significant amounts of money</a>, although in the last few years there have been some <a href="http://www.david-laserscanner.com/">intriguing low-cost systems</a>.</p>
<p>It was in this context, then, that I discovered a new service from Autodesk several months ago: Photofly &#8211; which has just (November 10th, 2011) been re-branded with the unwieldy name &#8220;<a href="http://www.123dapp.com/catch">123D Catch</a>.&#8221; This cloud-based service can create textured 3D models from digital photographs. No specialized hardware needed.<span id="more-486"></span></p>
<p>As an example of what this platform can do, I took <a href="http://www.flickr.com/photos/morphosis7/sets/72157628114810026/">six pictures of a boulder</a> I came across recently on a trip. After uploading these pictures to the Photofly servers I got back a pretty decent 3D model of the rock and its immediate surroundings. The Photofly client on my desktop was then able to use the original photographs as keyframes to generate a video of the rock, re-creating the path I walked to take the photographs.</p>
<span style="text-align:center; display: block;"><a href="http://morphosis7.wordpress.com/2011/11/13/3d-scanning-from-photographs/"><img src="http://img.youtube.com/vi/VMZNMXL5DjM/2.jpg" alt="" /></a></span>
<p>As you can see, the rock itself was modeled fairly well. There are gaps in the surrounding landscape, but those can probably be filled fairly easily &#8211; particularly by platforms like DAVID&#8217;s ShapeFusion.</p>
<p>Now, this platform is not without its limitations. Most notably, because you upload your images to the Autodesk cloud you should be careful about what you upload. Not that Autodesk is untrustworthy, but there are bound to be issues whenever you give content to someone else for processing. The system&#8217;s terms of service warn you not to upload anything that is proprietary.</p>
<p>On a more technical note, the system does not work well with reflective or translucent objects, or fine details. It also does not understand the concept of voids, so if at all possible you should avoid shooting the sky in your pictures &#8211; that big mass of blue pixels will be processed like everything else, with an eye toward making a mass. It would be great to have the ability to selectively mask photographs, to avoid problems like these. Because of the math involved, the system is also less tolerant of subjects that move &#8211; even inadvertently.</p>
<p>By way of a comparison, I submitted the same six photographs of the boulder to Microsoft&#8217;s Photosynth platform. The results can be seen below:</p>
<p><a href="http://photosynth.net/embed.aspx?cid=bb955b85-235c-4b1d-ac70-6e684127a704&amp;delayLoad=true&amp;slideShowPlaying=false">http://photosynth.net/embed.aspx?cid=bb955b85-235c-4b1d-ac70-6e684127a704&amp;delayLoad=true&amp;slideShowPlaying=false</a></p>
<p>I would argue that the Photofly results are far more satisfying than Photosynth, although the two systems have differing aims so literal comparisons do miss the point somewhat.</p>
<p>Then, there are times where a scan that seems straightforward goes somehow awry:</p>
<span style="text-align:center; display: block;"><a href="http://morphosis7.wordpress.com/2011/11/13/3d-scanning-from-photographs/"><img src="http://img.youtube.com/vi/2ndyKD5rnIA/2.jpg" alt="" /></a></span>
<p>This was my second attempt at creating a 3d model of my head, based on 22 photographs. The first was an abject failure, with only five pictures being usable. This time around I was able to incorporate almost twice as many pictures, but only after manually identifying a dozen different points across 8-10 pictures. Even so, most of the photoset was unusable.</p>
<p>Looking at the specific areas that were difficult to stitch, one problematic area was the glare from my baldspot (thanks for rubbing that in <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ). Another was my hair. Neither are surprising, given the technology involved. My left ear and nose are also distorted, which is surprising given the number of photographs that included these features and their relative level of detail.</p>
<p>I hope to re-try this experiment with pictures that include greater overlap, and perhaps a different shirt in order to make identifying common points easier. My eventual goal is to generate something that can be fabricated, either via an unfolding process through <a href="http://www.tamasoft.co.jp/pepakura-en/">Pepakura</a> or some sort of rapid prototyping. It would also be interesting to play with rendering styles and generate some sort of grotesque avatar for use on social networking sites &#8211; taking advantage of the <a href="http://en.wikipedia.org/wiki/Uncanny_valley">Uncanny Valley</a>. In a way, these sorts of &#8220;failures&#8221; could actually help this attempt.</p>
<p>I&#8217;ve produced a half dozen other scans over the last few months, but these two I think show the potential and pitfalls of this technology. I can&#8217;t wait to see how both Photofly and Photosynth continue to develop over the next few months.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/morphosis7.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/morphosis7.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/morphosis7.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/morphosis7.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/morphosis7.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/morphosis7.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/morphosis7.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/morphosis7.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/morphosis7.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/morphosis7.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/morphosis7.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/morphosis7.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/morphosis7.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/morphosis7.wordpress.com/486/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=486&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://morphosis7.wordpress.com/2011/11/13/3d-scanning-from-photographs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88f0684b5f64e35e5ba5d01079ce4c59?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">morphosis7</media:title>
		</media:content>
	</item>
		<item>
		<title>Using jQueryUI within Drupal 7</title>
		<link>http://morphosis7.wordpress.com/2011/08/11/using-jqueryui-within-drupal-7/</link>
		<comments>http://morphosis7.wordpress.com/2011/08/11/using-jqueryui-within-drupal-7/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 15:53:43 +0000</pubDate>
		<dc:creator>Matt Bernhardt</dc:creator>
				<category><![CDATA[Essay]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[tabs]]></category>

		<guid isPermaLink="false">http://morphosis7.wordpress.com/?p=472</guid>
		<description><![CDATA[jQuery is crazy powerful &#8211; and the jQueryUI set of plugins is excellent for adding commonly-needed user interface controls like accordions, tabs, carousels, etc. Even better, with the release of Drupal7 we now have jQueryUI included in the core. But how do we actually get to use all this magic? I just had to figure [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=472&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://jquery.com/">jQuery</a> is crazy powerful &#8211; and the <a href="http://jqueryui.com/">jQueryUI </a>set of plugins is excellent for adding commonly-needed user interface controls like accordions, tabs, carousels, etc. Even better, with the release of Drupal7 we now have jQueryUI included in the core. But how do we actually get to use all this magic? I just had to figure this out, so in the hope of paying it forward, I&#8217;d like to share what I did, and how. There may be better ways to do this, but this is what has worked for me &#8211; if you can find a better way, please let me know!<span id="more-472"></span></p>
<p>Credit &#8211; I found <a href="http://jromero.me/blog/jquery-ui-drupal">the post &#8220;jQuery UI in Drupal&#8221; from jromero</a> to be very helpful; I&#8217;d suggest reading it as well. He talks about tabs in the second half.</p>
<h2>What I Needed</h2>
<p>Our site has a &#8220;featured content&#8221; area on the front page, and in several locations inside the site. Click on a thumbnail, see that featured slide. That slide can be many things, a video, an image, HTML, etc. I&#8217;m converting the site from a custom CMS over to Drupal, and I used some hand-rolled javascript originally but want to take more advantage of jQuery and other plugins this time. After playing around with a number of different options, it looks like the <a href="http://jqueryui.com/demos/tabs/">Tabs plugin</a> is the piece I&#8217;m going to use. The look isn&#8217;t what I want, but the markup is &#8211; so I&#8217;m pretty sure I can re-do the CSS styles to make the presentation more what I want.</p>
<h2>What I Did</h2>
<h3>Step 1: Brute Force</h3>
<p>The first thing I did, after much searching, was try to follow jromero&#8217;s tutorial. I made sure I had enabled the PHP filter module in core, and created an article node. Using the &#8220;PHP code&#8221; input filter, I dumped the following into the node body field:</p>
<pre>&lt;?php
drupal_add_library('system', 'ui.tabs');
drupal_add_js('jQuery(document).ready(function(){jQuery("#tabsTest").tabs();});', 'inline');
?&gt;
&lt;div id="tabsTest"&gt;
    &lt;ul&gt;
        &lt;li&gt;&lt;a href="#tabs-1"&gt;Tab 1&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#tabs-2"&gt;Tab 2&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#tabs-3"&gt;Tab 3&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
    &lt;div id="tabs-1"&gt;
        &lt;p&gt;Proin elit arcu...&lt;/p&gt;
    &lt;/div&gt;
    &lt;div id="tabs-2"&gt;
        &lt;p&gt;Morbi tincidunt, dui sit...&lt;/p&gt;
    &lt;/div&gt;
    &lt;div id="tabs-3"&gt;
        &lt;p&gt;Mauris eleifend est et turpis...&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;</pre>
<p>One note about the above &#8211; jromero&#8217;s post uses the id &#8220;tabs&#8221;, but that felt a bit too generic so I&#8217;ve changed it to &#8220;tabsTest&#8221; for this purpose.</p>
<p>This worked as I hoped &#8211; but it isn&#8217;t really sustainable, as I don&#8217;t want to have to train the content managers to switch to PHP mode and drop in lines of code every time the need a tabbed carousel. Not to mention the security implications. So, I needed to offload the javascript into the theme, or a module, or something.</p>
<h3>Step 2: To the Theme!</h3>
<p>The first thing I did was create a simple, one-line javascript file &#8211; &#8220;tabsTest.js&#8221; &#8211; that replicated the contents of the drupal_add_js() call in the third line of the above snippet. Filtering out the Drupal business, the only thing in the file was the line:</p>
<pre>jQuery(document).ready(function(){jQuery("#tabsTest").tabs();});</pre>
<p>I placed this file in my theme, in a js directory &#8211; so the full path was /sites/all/themes/mytheme/js/tabsTest.js</p>
<p>If you&#8217;re somewhat familiar with jQuery (like I am &#8211; not an expert, but beginning to feel comfortable) then I should reinforce something here. This one-line file uses &#8220;jQuery()&#8221; rather than &#8220;$()&#8221; because Drupal uses <a href="http://api.jquery.com/jQuery.noConflict/">.noconflict()</a> to allow other libraries to also be used.</p>
<p>This one-line file was then added to my mytheme.info file using a script[] reference:</p>
<pre>scripts[] = js/testTabs.js</pre>
<p>See the &#8220;<a href="http://drupal.org/node/171205#scripts">Structure of the .info file</a>&#8221; article in the <a href="http://drupal.org/documentation/theme">Drupal Theming Guide</a> for information about where to add this line.</p>
<p>At this point, the PHP code block at the beginning of my article node read like this</p>
<pre>&lt;?php
drupal_add_library('system', 'ui.tabs');
?&gt;</pre>
<p>After saving the new node and clearing all caches (at &#8220;/admin/config/development/performance&#8221;), the tabs still worked &#8211; so I was halfway home.</p>
<h3>Step 3: Editing page.tpl.php</h3>
<p>The last step was to change where the Tabs plugin was called. After trying &#8211; and failing &#8211; to modify my theme&#8217;s template.tpl.php file, I decided to try adding the code to my page.tpl.php file. I moved the drupal_add_library() line to the top of my page.tpl.php file, making it read like this:</p>
<pre>&lt;?php
// $Id: page.tpl.php,v 1.1.2.2.4.2 2011/01/11 01:08:49 dvessel Exp $
?&gt;
&lt;?php
  drupal_add_library('system', 'ui.tabs');
?&gt;
&lt;div id="page"&gt;
...more HTML...</pre>
<p>Yes, this can probably be cleaned up a bit &#8211; but this works, and I&#8217;m happy. This left only HTML in my article node&#8217;s body field, allowing me to switch back to another input format that is friendlier for content editors. After clearing caches again, everything still worked &#8211; and when I created a brand new article node with just the HTML from jromero&#8217;s tutorial (again changing the outer &lt;div&gt;&#8217;s id value to be &#8220;tabsTest&#8221; rather than just &#8220;tabs&#8221;), everything worked.</p>
<p><em>Woohoo!</em></p>
<h3>Step 4: Still To Do&#8230;</h3>
<p>I&#8217;m not out of the woods yet &#8211; I&#8217;d still like to use the Tabs plugin on a view output, or a different node type with a multiple-value &#8220;slide&#8221; field. The presentation will need to be changed. However, as a first step, following these steps has allowed me to actually take advantage of the capabilities of jQueryUI. My hope is that this article is helpful to other developers and site builders who, like me, are transitioning from &#8220;beginning Drupal&#8221; types of tutorials but aren&#8217;t yet so familiar with the inner works of Drupal to instinctively know where to add drupal_add_library() calls, how to instantiate jQuery plugins, etc.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/morphosis7.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/morphosis7.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/morphosis7.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/morphosis7.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/morphosis7.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/morphosis7.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/morphosis7.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/morphosis7.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/morphosis7.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/morphosis7.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/morphosis7.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/morphosis7.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/morphosis7.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/morphosis7.wordpress.com/472/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=472&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://morphosis7.wordpress.com/2011/08/11/using-jqueryui-within-drupal-7/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88f0684b5f64e35e5ba5d01079ce4c59?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">morphosis7</media:title>
		</media:content>
	</item>
		<item>
		<title>Revisiting MergeQuery_mysql</title>
		<link>http://morphosis7.wordpress.com/2011/07/20/revisiting-mergequery_mysql/</link>
		<comments>http://morphosis7.wordpress.com/2011/07/20/revisiting-mergequery_mysql/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 02:45:28 +0000</pubDate>
		<dc:creator>Matt Bernhardt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[mergequery_mysql]]></category>
		<category><![CDATA[white screen of death]]></category>

		<guid isPermaLink="false">http://morphosis7.wordpress.com/?p=466</guid>
		<description><![CDATA[I wrote a few weeks ago about a problem I&#8217;m running into with Drupal when I attempt to run update.php. Specifically, I&#8217;m getting a White Screen of Death, which when I put in the three lines of debugging code reveals the following error message: Class &#8216;MergeQuery_mysql&#8217; not found &#160; As I detailed in the comments [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=466&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I wrote a few weeks ago about a problem I&#8217;m running into with Drupal when I attempt to run update.php. Specifically, I&#8217;m getting a <a href="http://drupal.org/node/158043">White Screen of Death</a>, which when I put in the three lines of debugging code reveals the following error message:</p>
<p><span id="more-466"></span><a href="http://morphosis7.wordpress.com/2011/07/01/drupal-7-problem-class-mergequery_mysql-not-found/">Class &#8216;MergeQuery_mysql&#8217; not found</a></p>
<p>&nbsp;</p>
<p>As I detailed in the comments to the previous post, I was able to get around this problem by copying the site down to my development environment, and running the update.php script there. I could then copy the site back up to the staging server and everything seemed in order.</p>
<p>Tonight, however, I&#8217;ve run into the same problem again. Where before I was trying to upgrade from Drupal 7.0 to 7.4, now I am attempting to upgrade the <a href="http://drupal.org/project/date">Date</a> and <a href="http://drupal.org/project/calendar">Calendar</a> modules to the latest -dev versions. The same scenario plays itself out &#8211; I am able to delete the old versions, uninstall them, etc &#8211; but when I add and enable the new modules, I see a warning in the status report that an upgrade is necessary. When I attempt to run update.php, however, the site goes into a WSOD.</p>
<p>The fact that I am seeing this problem with a module upgrade as well as a core upgrade, and that I do not see the problem with the same operations in my development environment, increases my suspicion that the problem lies with my stack somewhere.</p>
<p>The details of each stack are:</p>
<p><strong>Development</strong></p>
<p>Windows Server 2008, 64-bit<br />
Apache 2.2.19<br />
PHP 5.3.5<br />
MySQL 5.1.37 (on a separate server)</p>
<p><strong>Staging</strong></p>
<p>Windows Server 2008, 64-bit<br />
Apache 2.2.17<br />
PHP 5.2.13<br />
MySQL 5.1.37 (on a separate server)</p>
<p>First up will be an update to PHP, followed by Apache if necessary. Stay tuned for updates&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/morphosis7.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/morphosis7.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/morphosis7.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/morphosis7.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/morphosis7.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/morphosis7.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/morphosis7.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/morphosis7.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/morphosis7.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/morphosis7.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/morphosis7.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/morphosis7.wordpress.com/466/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/morphosis7.wordpress.com/466/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/morphosis7.wordpress.com/466/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=466&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://morphosis7.wordpress.com/2011/07/20/revisiting-mergequery_mysql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88f0684b5f64e35e5ba5d01079ce4c59?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">morphosis7</media:title>
		</media:content>
	</item>
		<item>
		<title>Testing Processing Export</title>
		<link>http://morphosis7.wordpress.com/2011/07/13/testing-processing-export/</link>
		<comments>http://morphosis7.wordpress.com/2011/07/13/testing-processing-export/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 03:38:03 +0000</pubDate>
		<dc:creator>Matt Bernhardt</dc:creator>
				<category><![CDATA[Quick Thought]]></category>
		<category><![CDATA[flocking]]></category>
		<category><![CDATA[object oriented programming]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://morphosis7.wordpress.com/?p=457</guid>
		<description><![CDATA[A friend and I have recently decided to start teaching ourselves Processing as an entry into some visualization work that we want to pursue. We aren&#8217;t following a formal course of study, but thankfully the Processing website has a number of tutorials and encourages people to hack away at their examples. Over many years I&#8217;ve [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=457&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://morphosis7.files.wordpress.com/2011/07/untitled-1.jpg"><img class="aligncenter size-full wp-image-463" title="Six Cars Flocking" src="http://morphosis7.files.wordpress.com/2011/07/untitled-1.jpg?w=600" alt="screenshot of Processing sketch showing six &quot;cars&quot; driving toward a single spot"   /></a></p>
<p>A <a href="http://www.esltechnology.com">friend</a> and I have recently decided to start teaching ourselves <a href="http://www.processing.org/">Processing </a>as an entry into some visualization work that we want to pursue. We aren&#8217;t following a formal course of study, but thankfully the Processing website has a number of tutorials and encourages people to hack away at their examples. Over many years I&#8217;ve come to realize that this is the way I learn best, by tinkering with a vague goal in mind &#8211; so I&#8217;m encouraged that the brains behind the language are encouraging people to learn that way.<span id="more-457"></span></p>
<p>In that vein, I&#8217;d like to share a simple exercise I&#8217;ve managed to put together. This is based loosely on the <a href="http://www.processing.org/learning/objects/">Cars example </a>that Daniel Shiffman uses to introduce Object Oriented Programming (which, in itself, is something I&#8217;ve flirted with but never really made headway on).</p>
<p>EDIT: After some testing, it appears that it may not be possible to post the Processing applet itself on this blog. So, here&#8217;s the sketch source code.</p>
<pre>int carCount = 6;
Car theCars[] = new Car[carCount];
int safeDistance = 25;
int intDistance;
int i;
int j;

void setup() {
  size(512,512);
  for (i = 0; i &lt; carCount; i++) {
    theCars[i] = new Car(color((255/carCount)*i),random(width),random(height));
  }  
}

void draw() {
  background(255);
  for(i = 0; i &lt; carCount; i++) {
    theCars[i].driveSmart();
    theCars[i].display();
  }
}

class Car {
  color c;
  float xpos;
  float ypos;
  float intSpeed;
  float testXpos;
  float testYpos;
  boolean safeToMove;

  Car(color tempC, float tempXpos, float tempYpos) {
    c = tempC;
    xpos = tempXpos;
    ypos = tempYpos;
    intSpeed = random(3);
  }

  void display(){
    noStroke();
    rectMode(CENTER);
    fill(c);
    pushMatrix();
    translate(xpos,ypos);
    rotate(atan2(mouseY-ypos,mouseX-xpos));
    rect(0,0,20,10);
    popMatrix();
  }

  void driveSimple() {
    // chase the mouse in the X axis
    if (xpos &gt; mouseX) {
      xpos = int(xpos - intSpeed);
    } else {
      xpos = int(xpos + intSpeed);
    }
    // chase the mouse in the Y axis
    if (ypos &gt; mouseY) {
      ypos = int(ypos - intSpeed);
    } else {
      ypos = int(ypos + intSpeed);
    }
  }

  void driveSmart() {
    safeToMove = true;

    //where does the car want to move?
    if (xpos &gt; mouseX) {
      testXpos = xpos - intSpeed;
    }else{
      testXpos = xpos + intSpeed;
    }    
    if (ypos &gt; mouseY) {
      testYpos = ypos - intSpeed;
    } else {
      testYpos = ypos + intSpeed;
    }

    //is that too close to other cars?
    println("car "+i);
    for(j=0;j&lt;carCount;j++){
      if(i!=j){
        //we only compare the car's position to other cars, not itself
        //distance is the square root of deltaX^2 plus deltaY^2
        intDistance = int( sqrt( sq(abs(theCars[j].xpos-testXpos)) + sq(abs(theCars[j].ypos-testYpos)) ) );
        if(intDistance&lt;safeDistance){
          safeToMove = false;
        }
      }
      println("car "+i+" distance to car "+j+" = "+intDistance);
    }

    //if we still judge the step to be safe, then take it    
    if (safeToMove == true) {
      //take the step
      xpos = testXpos;
      ypos = testYpos;
    }
  }
}</pre>
<p>In the end, I&#8217;m pretty happy with how easily I was able to move from an introductory lesson on OOP to something like a flocking demonstration. There are certainly still some bugs, such as when the cars get stuck next to each other and neither one can move. I haven&#8217;t implemented behavior limiters such as flock cohesion, or turning radius, etc. But, for the product of a few hours&#8217; work in a language I&#8217;m just learning, this wasn&#8217;t too bad.</p>
<p>I think I&#8217;m ready to begin sketching out a more serious project now &#8211; either one to help visualize an ill-defined community (such as those people at Ohio State who are interested in educational technology, or fans of the Columbus Crew who are active in social media) or something from my soccer stats-freak interests.</p>
<p><em>Interested in playing along? Chris and I are interested in meeting other people around our area (central Ohio) who have a few hours a week to play and hack at Processing. Drop either of us an email, or leave a comment on one of our blogs. Most of our work so far has gone into emails back and forth with comments like &#8220;hey, check out what I was able to do!&#8221; but we are looking for a more organized way of communicating. Chris is thinking a wiki might be the answer.</em></p>
<p><em>(EDIT: added the screenshot at the top, and the Read More link)</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/morphosis7.wordpress.com/457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/morphosis7.wordpress.com/457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/morphosis7.wordpress.com/457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/morphosis7.wordpress.com/457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/morphosis7.wordpress.com/457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/morphosis7.wordpress.com/457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/morphosis7.wordpress.com/457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/morphosis7.wordpress.com/457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/morphosis7.wordpress.com/457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/morphosis7.wordpress.com/457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/morphosis7.wordpress.com/457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/morphosis7.wordpress.com/457/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/morphosis7.wordpress.com/457/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/morphosis7.wordpress.com/457/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=457&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://morphosis7.wordpress.com/2011/07/13/testing-processing-export/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88f0684b5f64e35e5ba5d01079ce4c59?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">morphosis7</media:title>
		</media:content>

		<media:content url="http://morphosis7.files.wordpress.com/2011/07/untitled-1.jpg" medium="image">
			<media:title type="html">Six Cars Flocking</media:title>
		</media:content>
	</item>
		<item>
		<title>Drupal 7 problem: Class &#8216;MergeQuery_mysql&#8217; not found</title>
		<link>http://morphosis7.wordpress.com/2011/07/01/drupal-7-problem-class-mergequery_mysql-not-found/</link>
		<comments>http://morphosis7.wordpress.com/2011/07/01/drupal-7-problem-class-mergequery_mysql-not-found/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 20:01:18 +0000</pubDate>
		<dc:creator>Matt Bernhardt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[mergequery_mysql]]></category>
		<category><![CDATA[upgrade]]></category>
		<category><![CDATA[white screen of death]]></category>

		<guid isPermaLink="false">http://morphosis7.wordpress.com/?p=448</guid>
		<description><![CDATA[This is a quick note of frustration about a problem into which I&#8217;ve been running mercilessly. I have a site on Drupal 7.0, that I have been trying to upgrade to the new 7.4 release. As preparation, I&#8217;ve taken two different development sites through the same upgrade, and the dev sites moved fine. With the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=448&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a quick note of frustration about a problem into which I&#8217;ve been running mercilessly. I have a site on Drupal 7.0, that I have been trying to upgrade to the new 7.4 release. As preparation, I&#8217;ve taken two different development sites through the same upgrade, and the dev sites moved fine. With the real site, however, I run into the following scenario:</p>
<ol>
<li>Make backup</li>
<li>Put site in maintenance mode</li>
<li>Delete all 7.0 files/folders</li>
<li>Unpack all 7.4 files/folders other than the /sites directory</li>
<li>Copy the old connection string to the new default.settings.php file, save as settings.php</li>
</ol>
<p>At this point, the site works, and the status board shows green &#8211; with the warning that some updates need to be done to the schema. So, I go to update.php.</p>
<p>And&#8230;the site breaks. Hard. White Screen of Death hard. Update.php fails, the site root fails, everything.</p>
<p>So, I throw on the three lines of debugging code from http://drupal.org/node/158043 to peek under the hood and see what I can find.</p>
<pre>This is the output:
Notice: require_once() [function.require-once]: 1. h-&gt;opened_path=[E:\sites\knowlton-stage.96\includes\bootstrap.inc] h-&gt;filename=[E:\sites\knowlton-stage.96/includes/bootstrap.inc] in E:\sites\knowlton-stage.96\index.php on line 23
Notice: require_once() [function.require-once]: 1. h-&gt;opened_path=[E:\sites\knowlton-stage.96\includes\errors.inc] h-&gt;filename=[E:\sites\knowlton-stage.96/includes/errors.inc] in E:\sites\knowlton-stage.96\includes\bootstrap.inc on line 1971
Notice: require_once() [function.require-once]: 1. h-&gt;opened_path=[E:\sites\knowlton-stage.96\includes\common.inc] h-&gt;filename=[E:\sites\knowlton-stage.96/includes/common.inc] in E:\sites\knowlton-stage.96\includes\errors.inc on line 73
Notice: require_once() [function.require-once]: 1. h-&gt;opened_path=[E:\sites\knowlton-stage.96\includes\unicode.inc] h-&gt;filename=[E:\sites\knowlton-stage.96/includes/unicode.inc] in E:\sites\knowlton-stage.96\includes\common.inc on line 1557
Fatal error: Class 'MergeQuery_mysql' not found in E:\sites\knowlton-stage.96\includes\database\database.inc on line 826</pre>
<p>I&#8217;ve done what I consider a fair amount of Googling, both within the WSOD error and the MergeQuery_mysql function. Nothing has worked. I have backups, and obviously a dev site &#8211; but I&#8217;m a bit flummoxed as to why I&#8217;m seeing this error. Any input on this would be greatly appreciated.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/morphosis7.wordpress.com/448/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/morphosis7.wordpress.com/448/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/morphosis7.wordpress.com/448/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/morphosis7.wordpress.com/448/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/morphosis7.wordpress.com/448/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/morphosis7.wordpress.com/448/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/morphosis7.wordpress.com/448/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/morphosis7.wordpress.com/448/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/morphosis7.wordpress.com/448/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/morphosis7.wordpress.com/448/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/morphosis7.wordpress.com/448/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/morphosis7.wordpress.com/448/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/morphosis7.wordpress.com/448/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/morphosis7.wordpress.com/448/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=448&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://morphosis7.wordpress.com/2011/07/01/drupal-7-problem-class-mergequery_mysql-not-found/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88f0684b5f64e35e5ba5d01079ce4c59?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">morphosis7</media:title>
		</media:content>
	</item>
		<item>
		<title>Supporting a Dynamic Learning Environment with Custom Application Development</title>
		<link>http://morphosis7.wordpress.com/2011/06/18/supporting-a-dynamic-learning-environment-with-custom-application-development/</link>
		<comments>http://morphosis7.wordpress.com/2011/06/18/supporting-a-dynamic-learning-environment-with-custom-application-development/#comments</comments>
		<pubDate>Sat, 18 Jun 2011 18:46:03 +0000</pubDate>
		<dc:creator>Matt Bernhardt</dc:creator>
				<category><![CDATA[Quick Thought]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[digital library]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[Ohio State]]></category>
		<category><![CDATA[presentation]]></category>

		<guid isPermaLink="false">http://morphosis7.wordpress.com/?p=446</guid>
		<description><![CDATA[Earlier this week, my colleague Lorrie McAllister and I presented some of the work we&#8217;ve been doing with Drupal to a group of developers at Ohio State. We focused on two platforms that we launched this year &#8211; the Digital Library and Community. The slides are here: Supporting a Dynamic Learning Environment with Custom Application [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=446&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Earlier this week, my colleague Lorrie McAllister and I presented some of the work we&#8217;ve been doing with Drupal to a group of developers at Ohio State. We focused on two platforms that we launched this year &#8211; the <a href="https://ksamedia.osu.edu/">Digital Library</a> and <a href="https://ksacommunity.osu.edu">Community</a>.</p>
<p>The slides are here:</p>
<div style="width:425px;"><strong><a title="Supporting a Dynamic Learning Environment with Custom Application Development" href="http://www.slideshare.net/morphosis7/osu-drupal-usersgroup">Supporting a Dynamic Learning Environment with Custom Application Development</a></strong> <iframe src='http://www.slideshare.net/slideshow/embed_code/8341955' width='425' height='348' scrolling='no'></iframe></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/morphosis7.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/morphosis7.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/morphosis7.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/morphosis7.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/morphosis7.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/morphosis7.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/morphosis7.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/morphosis7.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/morphosis7.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/morphosis7.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/morphosis7.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/morphosis7.wordpress.com/446/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/morphosis7.wordpress.com/446/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/morphosis7.wordpress.com/446/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=446&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://morphosis7.wordpress.com/2011/06/18/supporting-a-dynamic-learning-environment-with-custom-application-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88f0684b5f64e35e5ba5d01079ce4c59?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">morphosis7</media:title>
		</media:content>
	</item>
		<item>
		<title>XML data transfers between Drupal sites</title>
		<link>http://morphosis7.wordpress.com/2011/05/06/xml-data-transfers-between-drupal-sites/</link>
		<comments>http://morphosis7.wordpress.com/2011/05/06/xml-data-transfers-between-drupal-sites/#comments</comments>
		<pubDate>Fri, 06 May 2011 12:33:45 +0000</pubDate>
		<dc:creator>Matt Bernhardt</dc:creator>
				<category><![CDATA[Essay]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[feeds]]></category>
		<category><![CDATA[web technology]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://morphosis7.wordpress.com/?p=439</guid>
		<description><![CDATA[With the launch of the KSA Digital Library last month, and even more sites anticipated in the very near future, we can finally begin working on something I&#8217;ve wanted to tackle for a long time &#8211; the use of XML feeds to transfer data between Drupal sites. This post is an attempt to map out [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=439&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>With the launch of the KSA Digital Library last month, and even more sites anticipated in the very near future, we can finally begin working on something I&#8217;ve wanted to tackle for a long time &#8211; the use of XML feeds to transfer data between Drupal sites. This post is an attempt to map out that process for myself, hopefully help others who are thinking about similar questions, and get feedback from those who have already put this in place.<span id="more-439"></span></p>
<h2>Our example: Wexner Center for the Arts</h2>
<p>The clearest example of this process is the one which I&#8217;m tackling as a proof-of-concept. Two of the sites we maintain are the <a href="https://ksamedia.osu.edu">Digital Library</a> and the <a href="http://herrick.knowlton.ohio-state.edu">Herrick Building Archives</a>. The former is a collection of images, videos, documents and other media that learners can use to study buildings, landscapes, and other phenomena. The latter records the history of every structure built on the Columbus campus of Ohio State&#8230;ever.</p>
<p>Now, it isn&#8217;t hard to see how these two sites overlap. To speak in terms of a specific building, check out each site&#8217;s record for the <a href="http://wexarts.org/">Wexner Center for the Arts</a>:</p>
<ul>
<li><a href="https://ksamedia.osu.edu/work/71501">Digital Library record for the Wexner Center</a></li>
<li><a href="http://herrick.knowlton.ohio-state.edu/building/wexner-center-arts">Herrick Archives record for the Wexner Center</a></li>
</ul>
<p>If you look at the bottom of the Herrick record on the Wexner Center, you&#8217;ll see some images of the building that were provided by the <a href="http://library.osu.edu/sites/archives/photos/">OSU Archives</a>. Thus far, those images had to be manually added to each record &#8211; which is a laborious process to maintain, especially given the fact that the school also maintains the Digital Library.</p>
<p>The goal, then, is to allow the Digital Library to serve as the image repository for other KSA websites, with sites like Herrick, our external-facing site, and others able to pull images from the library as needed without needing to duplicate records in multiple places.</p>
<h2>Conceptual workflow</h2>
<p>Before getting into the specifics of modules, the conceptual diagram of this handoff between the Digital Library and Herrick works as follows:</p>
<ul>
<li>The Digital Library assembles a body of media, classifying each with terms from several vocabularies to aid discovery via browsing, and search. There are in the neighborhood of 35,000 such items currently. For any given work there is a pool of media documenting that example (in this case, the Wexner Center)</li>
<li>From the pool of media about the Wexner Center, not every asset should be exported &#8211; sometimes due to rights restrictions, sometimes due to the content of a given asset. So a subset of the potential pool must be curated, and made available from the Digital Library in an XML format for ingestion elsewhere.</li>
<li>The Herrick archives record for the Wexner Center must be pointed toward the Digital Library&#8217;s XML feed for that building, allowing the first harvesting of data.</li>
<li>Because of the variety of sites coming to the Digital Library for information, however, it is possible that the Herrick Archives may not be interested in <em>every</em> image in the XML feed. The ingesting site, then, should have the ability to further curate the pool of supplied records before they are displayed alongside the core Wexner Center record.</li>
</ul>
<h2>Our solution: ????</h2>
<p>My intended solution for this process is to use the <a href="http://drupal.org/project/views">Views</a>, <a href="http://drupal.org/project/feeds">Feeds</a>, and <a href="http://drupal.org/project/flag">Flag </a>modules. On the Digital Library side, we have already built a view, with a feed display, showing all the assets for a given work. I&#8217;ve begun implementing the Feeds module on a development Drupal site, and have built a harvester to take a given work&#8217;s feed into a separate content type.</p>
<p>Still on the development plate:</p>
<ul>
<li>Currently, nodes which are ingested from a feed do not have any node references. I need to tweak this so that they harvest their work node.</li>
<li>When I&#8217;ve tried this process previously, there has been a rampant problem of duplication &#8211; the same nodes being imported repeatedly, potentially every time cron runs.</li>
<li>Looking at the source of the feed out of the Digital Library, I&#8217;m thinking that something will need to be tweaked &#8211; either via overrides or (last result) generating the feed via something other than Views.</li>
<li>Similar to the previous item, I&#8217;m probably going to have to write my own Mapper for the Feeds module, because the content types I&#8217;m importing will be a bit more specific than the generic options provided by default.</li>
</ul>
<p>More as I work it out.</p>
<p><strong>Update 1:</strong> Since publishing this post this morning, I&#8217;ve made a fair amount of progress &#8211; but one lingering issue still remains. Specifically:</p>
<ul>
<li>Node references are still a problem. The feed node in this case is a Building node, which creates Image nodes from the specified RSS feed. I want each created Image node to reference the Building node &#8211; but this has not been possible thus far.</li>
<li>The duplication problem was solved by re-reading the documentation and declaring which of the imported fields need to be unique. Pretty simple, in hindsight.</li>
<li>The feed out of the Digital Library has not, thus far, needed to be tweaked. I&#8217;d still like to do so &#8211; for example to place the image into an &lt;enclosure&gt; tag, or citation information into a &lt;source&gt; tag. So far, however, this hasn&#8217;t stopped progress.</li>
<li>I have been completely stymied in my attempts to write a mapper &#8211; but have worked around this by implementing the <a href="http://drupal.org/project/feeds_xpathparser">Feeds XPath Parser</a> module. This is also what has allowed me to not do more to re-write the feed coming out of the Digital Library. XPath parsing of the feed allows me to get greater access to elements within the feed, such as the source URL. Ultimately, however, XPath doesn&#8217;t help me get access to the feed node on the ingesting side (see the first note in this list)</li>
</ul>
<p>Again, more progress as it happens.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/morphosis7.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/morphosis7.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/morphosis7.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/morphosis7.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/morphosis7.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/morphosis7.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/morphosis7.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/morphosis7.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/morphosis7.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/morphosis7.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/morphosis7.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/morphosis7.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/morphosis7.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/morphosis7.wordpress.com/439/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=439&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://morphosis7.wordpress.com/2011/05/06/xml-data-transfers-between-drupal-sites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88f0684b5f64e35e5ba5d01079ce4c59?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">morphosis7</media:title>
		</media:content>
	</item>
		<item>
		<title>Announcing the new KSA Digital Library</title>
		<link>http://morphosis7.wordpress.com/2011/04/20/announcing-the-new-ksa-digital-library/</link>
		<comments>http://morphosis7.wordpress.com/2011/04/20/announcing-the-new-ksa-digital-library/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 18:51:53 +0000</pubDate>
		<dc:creator>Matt Bernhardt</dc:creator>
				<category><![CDATA[Quick Thought]]></category>
		<category><![CDATA[digital library]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[web technology]]></category>

		<guid isPermaLink="false">http://morphosis7.wordpress.com/?p=432</guid>
		<description><![CDATA[On April 1st, we (Lorrie McAllister and I) launched the new Digital Library for the Knowlton School of Architecture: The library is built in Drupal 6, running on a WAMP stack. The site&#8217;s search functions are handled by a separate Solr server which is running Tomcat. We were able to build the entire project without [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=432&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>On April 1st, we (Lorrie McAllister and I) launched the new Digital Library for the Knowlton School of Architecture:</p>
<p><a title="KSA Digital Library" href="https://ksamedia.osu.edu"><img class="aligncenter size-full wp-image-433" title="KSA Digital Library" src="http://morphosis7.files.wordpress.com/2011/04/entrance-ff-110420.png?w=600&#038;h=678" alt="Entrance page of the KSA Digital Library" width="600" height="678" /></a></p>
<p>The library is built in Drupal 6, running on a WAMP stack. The site&#8217;s search functions are handled by a separate Solr server which is running Tomcat. We were able to build the entire project without building a module of our own (although that may be changing as we roll out new features). There are 55 modules in sites/all/modules, including such usual suspects as CCK, Views, Panels, and Workflow. The theme is based on zen_ninesixty.</p>
<p>This project was definitely a learning experience, and was easily the most complex endeavor I&#8217;ve tackled on the web (significantly larger in scale and complexity than the MatchNight scouting engine). While I&#8217;m very grateful to everyone in the Drupal community for making this platform so robust and powerful, I&#8217;d like to especially note the people at <a href="http://www.lullabot.com/">Lullabot</a>, <a href="http://cyrve.com/">Cyrve</a>, and the singular <a href="http://drupal.org/user/26979">merlinofchaos</a>. While I didn&#8217;t directly interact with any of these people, I found myself using the modules and techniques they developed a great deal.</p>
<p>Lorrie and I are working on a more formal announcement which will review the details of our process and the outcomes. For now, though, I&#8217;m just incredibly happy that the process has reached this point.</p>
<p><a href="https://ksamedia.osu.edu">https://ksamedia.osu.edu</a></p>
<p>KSA News article: &#8220;<a href="http://knowlton.osu.edu/?content=13&amp;article=1526">KSA Digital Library re-released with new features and content</a>&#8220;</p>
<p>(this post also appears, with a slightly different focus, and Lorrie and I&#8217;s co-authored blog, &#8220;<a href="http://adventuresinopened.wordpress.com/">Adventures in Open Education</a>&#8220;)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/morphosis7.wordpress.com/432/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/morphosis7.wordpress.com/432/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/morphosis7.wordpress.com/432/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/morphosis7.wordpress.com/432/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/morphosis7.wordpress.com/432/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/morphosis7.wordpress.com/432/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/morphosis7.wordpress.com/432/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/morphosis7.wordpress.com/432/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/morphosis7.wordpress.com/432/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/morphosis7.wordpress.com/432/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/morphosis7.wordpress.com/432/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/morphosis7.wordpress.com/432/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/morphosis7.wordpress.com/432/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/morphosis7.wordpress.com/432/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=morphosis7.wordpress.com&amp;blog=2740696&amp;post=432&amp;subd=morphosis7&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://morphosis7.wordpress.com/2011/04/20/announcing-the-new-ksa-digital-library/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/88f0684b5f64e35e5ba5d01079ce4c59?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">morphosis7</media:title>
		</media:content>

		<media:content url="http://morphosis7.files.wordpress.com/2011/04/entrance-ff-110420.png" medium="image">
			<media:title type="html">KSA Digital Library</media:title>
		</media:content>
	</item>
	</channel>
</rss>
