<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Aeroplane Software: Sakai Consulting</title>
	
	<link>http://aeroplanesoftware.com</link>
	<description>Your Own Personal Sakai Ace</description>
	<lastBuildDate>Fri, 17 Jul 2009 14:43:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/aeroplanesoftware" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Toward Real Extensibility in Sakai</title>
		<link>http://aeroplanesoftware.com/toward-real-extensibility-in-sakai/</link>
		<comments>http://aeroplanesoftware.com/toward-real-extensibility-in-sakai/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 14:42:09 +0000</pubDate>
		<dc:creator>zach</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[For Developers]]></category>
		<category><![CDATA[Sakai]]></category>
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://aeroplanesoftware.com/?p=65</guid>
		<description><![CDATA[At the Sakai conference in Boston, I sat on a great panel with other developers and discussed what it would really take to make Sakai the platform for innovation that we want it to be. The audience was active in the conversation as well. We heard a lot of analogies to other systems. Here are [...]]]></description>
			<content:encoded><![CDATA[<p>At the Sakai conference in Boston, I sat on a great panel with other developers and discussed what it would really take to make Sakai the platform for innovation that we want it to be. The audience was active in the conversation as well. We heard a lot of analogies to other systems. Here are a few ideas I picked up from the session.</p>

<p>The platform should allow contributions with very low startup costs or friction. The startup cost for contributing code to Sakai right now is huge. Even if you figure out how to setup your development environment, the project directory structure, the <code>pom.xml</code> file, the <code>web.xml</code> file, your API, your component pack, your tool registration file, and how to access Sakai components, you still have to have direct administrative access to the instance(s) of Tomcat where Sakai runs so you can load the app. The ideal would be that a part-time contributor could publish some code, as little as a single text file, and any Sakai site maintainer could try it out. Someone in the audience whose name I didn&#8217;t catch said we need &#8220;the Hypercard of Sakai.&#8221; This should be technically possible. The trick is to figure out the runtime environment: either it runs in the JVM with Sakai and must be scrupulously sandboxed, or it runs anywhere on the web and publishes a UI for Sakai to consume.</p>

<p>We can learn a lot from the extension hooks provided in other open source projects. jQuery is a great example. A <a href="http://docs.jquery.com/Plugins/Authoring">jQuery plugin</a> is just a single JavaScript file that loads with the main jQuery library and &#8220;sprinkles on&#8221; new functions that are then available to the hosting page. A jQuery plugin can be loaded from anywhere on the web with a single URL.</p>

<p>One of my new favorite frameworks is Grails. A Grails application is a standard Java webapp, so in that sense you still have to get it over the &#8220;wall&#8221; of your data center to run it, but the mechanism for adding features to the framework for other developers to use is ingenious: a Grails plugin has the exact same structure as a Grails application. You install it over the network with a single command, and it is simply overlaid at runtime onto your application. To contribute a plugin, you sign up for credentials to their Subversion repository, and then commit anything you like to your private space. It&#8217;s just like <code>contrib</code> in the Sakai community, with the important difference that whatever you contribute is automatically in the directory, and is discoverable and usable by <em>any</em> Grails user with a single command.</p>

<p>We could also learn a lot from the <a href="http://developers.facebook.com/">Facebook application platform</a>. Once again, the barriers are low: you register as a Facebook developer and they send you an API key. When you develop a Facebook app, it runs on your own servers, using whatever technology stack you choose, and Facebook provides the APIs to access their data and the hooks to surface your app within their system. I think this could be a great model for extending Sakai, though I believe we will still want to provide the option to host contributed code on our servers.</p>

<p>Dr. Chuck&#8217;s <a href="http://www.cloudcollab.com/">work</a> with learning tools interoperability takes the Facebook idea further, allowing you to embed applications anywhere on the web, not just inside some &#8220;official&#8221; boundary.</p>

<p>Finally, Sakai&#8217;s next generation kernel will be build on Apache Sling, which will enable applications with (optionally) no server-side code whatsoever; You can build an app entirely on the client, and use Sling&#8217;s RESTful content APIs to interact with institutional data.</p>

<p>The future is bright, but as I said in the panel discussion, I think it&#8217;s too early to give up on Sakai 2.x. There are a number of technical pathways toward real extensibility in the systems we use today.</p>
]]></content:encoded>
			<wfw:commentRss>http://aeroplanesoftware.com/toward-real-extensibility-in-sakai/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sakai Permissions In-Depth</title>
		<link>http://aeroplanesoftware.com/sakai-permissions-in-depth/</link>
		<comments>http://aeroplanesoftware.com/sakai-permissions-in-depth/#comments</comments>
		<pubDate>Tue, 12 May 2009 15:48:37 +0000</pubDate>
		<dc:creator>zach</dc:creator>
				<category><![CDATA[For Developers]]></category>
		<category><![CDATA[Sakai]]></category>

		<guid isPermaLink="false">http://aeroplanesoftware.com/?p=61</guid>
		<description><![CDATA[
Actions in Sakai are identified by a text label, like “content.read” for ability to read content or “site.add” for the permission to create a new worksite with the Worksite Setup tool. These identifiers are called functions or locks. Sakai associates a group of functions with a role, and a group of roles with a realm [...]]]></description>
			<content:encoded><![CDATA[<p>
Actions in Sakai are identified by a text label, like “content.read” for ability to read content or “site.add” for the permission to create a new worksite with the Worksite Setup tool. These identifiers are called functions or locks. Sakai associates a group of functions with a role, and a group of roles with a realm (realms are also known as authz groups). A realm is peered with a worksite to define the roles (and functions) available on that site. A worksite has a one-to-one relationship with a realm, unless the site also has groups defined, in which case there is a realm for each group.
</p>

<p>
For example, a course worksite might have three roles: instructor, TA, and student. A hypothetical set of available permissions is described in this table:

</p>

<table class="inline">
    <tr class="row0">
        <td class="col0 rightalign">                 </td><th class="col1"> instructor </th><th class="col2 leftalign"> TA  </th><th class="col3"> student </th>

    </tr>
    <tr class="row1">
        <th class="col0 leftalign"> read documents  </th><td class="col1 leftalign"> yes        </td><td class="col2"> yes </td><td class="col3 leftalign"> yes     </td>
    </tr>
    <tr class="row2">

        <th class="col0"> write documents </th><td class="col1 leftalign"> yes        </td><td class="col2"> yes </td><td class="col3 leftalign"> no      </td>
    </tr>
    <tr class="row3">
        <th class="col0 leftalign"> submit grade    </th><td class="col1 leftalign"> yes        </td><td class="col2 leftalign"> no  </td><td class="col3 leftalign"> no      </td>

    </tr>
</table>

<p>

These permissions are assigned to a site “XYZ” with a realm called ”/site/XYZ”.
</p>

<p>
Sakai also has special user realms that are used behind the scenes for any permission request. These special realms have two special roles, ”.anon” and ”.auth”. When the user is logged in, the permissions (functions) from the .auth role will be applied. When the user is anonymous (not logged in), the permissions from the .anon role will be applied. A logged in user will carry with him a personal user realm, a realm for his user type, and a realm for all users of any type.
</p>

<p>
Whenever a Sakai user attempts to visit a page or perform an action, deep in the code all the user realms are gathered together with the site realm for the entity under request. A check is performed: “Does the user have this lock in ANY of this collection of realms?” Remember that the user has at least one role in each of the realms. The way roles are used is not intuitive: if the user has role X in <em>any</em> of the collection of realms, then the permissions for the X role in <em>all</em> of the realms are applied.

</p>

<p>
An example is in order. Let&#039;s say a user is a student in some course site. The student role in that site does not have permission to upload new files. However, if the user has a user realm with “content.new” in the .auth role, then that permission is granted in the course site, or indeed any site.
</p>

<p>
Sakai has one more special realm that applies at all times: !site.helper This realm is useful to Sakai administrators who want to ensure that particular permissions are available to particular roles without regard to how any other realms are configured. For example, if you want to guarantee that users with the instructor role will have permission to create new announcements in their sites no matter how their particular site realms are configured, you would make sure !site.helper has an instructor role in it, and add “annc.new” to that role. Remember the rule: when permission is computed, if the user has the instructor role in <em>any</em> of the collection of realms, then the permissions for the instructor role in <em>all</em> of the realms are applied.
</p>

<p>
Sakai&#039;s permission rules allow for another scenario: the user realms and !site.helper do not normally have users added to them, but if an administrator does add users to a role in one of the special realms, those users have the permissions of that role wherever they go in Sakai. For example, if I create a maintain role in !site.helper and then add Bob as a member of that role within !site.helper, then Bob gets the maintain permissions in any project site he should care to visit. Whether this is a feature or a security problem is open to debate. What it boils down to is that !site.helper and the user realms must be handled with care.
</p>

<h3><a name="account_type" id="account_type">Account Type</a></h3>

<p>
There is an optional field on every Sakai user record called “TYPE”. If this field has a value, Sakai will look for a user realm with an id of the form !user.template.&lt;type&gt; and that realm will be used for the permissions of its .auth role for every permissions lookup performed on behalf of that user.
</p>

<p>
Out of the box, Sakai defines a few user realms, but they&#039;re not used for much. A “guest” user cannot create a new worksite, while a “registered” user can.
</p>
]]></content:encoded>
			<wfw:commentRss>http://aeroplanesoftware.com/sakai-permissions-in-depth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What if a Hard Drive is Only a Cache?</title>
		<link>http://aeroplanesoftware.com/what-if-a-hard-drive-is-only-a-cache/</link>
		<comments>http://aeroplanesoftware.com/what-if-a-hard-drive-is-only-a-cache/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 23:01:23 +0000</pubDate>
		<dc:creator>zach</dc:creator>
				<category><![CDATA[For Developers]]></category>
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://aeroplanesoftware.com/?p=57</guid>
		<description><![CDATA[When computers like the MacBook Air started coming equipped with solid state drives (SSDs), I thought the technology is cool, but it seemed like a drag to have to give up 50% or more of the storage capacity we&#8217;ve grown accustomed to in our hard drives. My laptop has 250GB of capacity. As of this [...]]]></description>
			<content:encoded><![CDATA[<p>When computers like the MacBook Air started coming equipped with solid state drives (SSDs), I thought the technology is cool, but it seemed like a drag to have to give up 50% or more of the storage capacity we&#8217;ve grown accustomed to in our hard drives. My laptop has 250GB of capacity. As of this writing I&#8217;m using up around 138GB of it. I started looking for ways to economize on space. I went digging around for junk I could throw away, and I found that this is a near-impossible task for a few reasons:</p>

<ol>
<li>There is plenty of stuff on here that <em>might</em> be junk, but I don&#8217;t know whether or not my computer needs it to run.</li>
<li>There is plenty of stuff that I <em>know</em> my computer does not need to run, but what if <em>I</em> need it someday? </li>
<li>Even if I did have a good method, sorting out the useful from the not useful would be a tedious, full-time chore.</li>
</ol>

<p>That&#8217;s when it hit me: storage is cheap and networks are near-ubiquitous. Google&#8217;s Gmail service lets you keep all your messages for perpetuity, so why not extend this model to every file or document you&#8217;ve ever used? If your computer worked like this, your hard drive would only store the system files and documents that you need <em>right now</em> and push disused items into &#8220;suspended animation&#8221; in the cloud.</p>

<p>Computers work like this already on a small scale. If your CPU can&#8217;t find the data it wants in its level 2 cache, it goes and grabs it from main memory. Main memory can create the illusion that it is (for all intents and purposes) infinite by using space on the disk for infrequently-accessed data. You take a performance penalty when you have to hit the disk, but it&#8217;s worth it for the breathing room it gives your applications.</p>

<p>Now imagine that your high-performance hard drive is nothing more than a &#8220;level 5&#8221; cache. All the system files and documents that you are actively using will be immediately available, and if you want something you haven&#8217;t touched in 12 months, your computer will transparently pull down a compressed copy from the cloud. You would notice a lag, especially if the file is large, but in exchange you receive these benefits:</p>

<ol>
<li>Your storage will be infinite, for all intents and purposes. Amazon S3 shows that this could be affordable.</li>
<li>You will never have to throw anything away unless you really, really want to. In the beginning, Gmail didn&#8217;t have a delete feature, and it freaked people out so they put it in.</li>
<li>You will never have to do housekeeping on your files. They key here is a first-rate index.</li>
<li>You will only upgrade your hard drive if you want better performance, not because you ran out of space.</li>
<li>You would have access to all your files from any device connected to the network.</li>
</ol>

<p>Caching techniques are some of the purest of pure computer science, and way over my head, but they can be very sophisticated, including pre-emptive fetching. It should be possible for the &#8220;cloud cache&#8221; to appear to be able to read your mind.</p>

<p>If you want more evidence that this would work, consider this:</p>

<ul>
<li>Imagine that you have a huge video library, and could not imagine storing it in the cloud. Now go to <a href="hulu.com">http://hulu.com</a>. Surprise, your video library <em>is</em> in the cloud. A download is nothing other than a local cache miss.</li>
<li>Your browser already uses a small fraction of your hard drive for caching. We could just turn it up.</li>
<li>For an example of an application of an always-full hard drive, look at Apple&#8217;s <a href="http://www.apple.com/macosx/features/timemachine.html">Time Machine</a>. Once your backup drive is full, it quietly moves the oldest material off (in this case, to oblivion, but you get the idea).</li>
</ul>

<p>If only I were pursuing a PhD, I could work on this. *chuckle* Someone else is going to have to do it. </p>
]]></content:encoded>
			<wfw:commentRss>http://aeroplanesoftware.com/what-if-a-hard-drive-is-only-a-cache/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IMS Learning Impact</title>
		<link>http://aeroplanesoftware.com/ims-learning-impact/</link>
		<comments>http://aeroplanesoftware.com/ims-learning-impact/#comments</comments>
		<pubDate>Thu, 22 May 2008 17:03:13 +0000</pubDate>
		<dc:creator>zach</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[IMS]]></category>
		<category><![CDATA[Sakai]]></category>
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://aeroplanesoftware.com/?p=47</guid>
		<description><![CDATA[Last week I was at IMS Learning Impact 2008 just up the road in Austin. The Sakai Foundation generously sponsored me to go, since I have been involved with Sakai&#8217;s support for IMS Common Cartridge for a couple of years. Michael Korcuska&#8217;s blog post about the event is here.

I have been guilty of moving exclusively [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I was at IMS Learning Impact 2008 just up the road in Austin. The <a href="http://sakaiproject.org/index.php?option=com_content&amp;task=view&amp;id=297&amp;Itemid=507">Sakai Foundation</a> generously sponsored me to go, since I have been involved with Sakai&#8217;s support for IMS Common Cartridge for a couple of years. Michael Korcuska&#8217;s blog post about the event is <a href="http://sakaiblog.korcuska.net/2008/05/14/common-cartridge-is-cool-lti-is-even-cooler/">here</a>.</p>

<p>I have been guilty of moving exclusively in Sakai circles, and it was great to break out into a broader cross-section of stakeholders in education technology. The IMS crowd is small but high-output; These folks know what is going on and are responsible for getting things done in their respective organizations. IMS has a large vendor representation, but this wasn&#8217;t a trade show at all. These are decision-makers coming together to promote standards for their mutual benefit. It&#8217;s funny to be an open-source guy at an event like this. &#8220;<em>Oh</em>, it&#8217;s a profit deal!&#8221;</p>

<p>IMS has put together a suite of documentation and testing tools to help developers produce and consume valid Common Cartridges, which should be a great help for smoothing and speeding adoption. Kevin Riley of IMS said that when they started testing Common Cartridges, the greatest source of errors was actually in misinterpretations of IMS Content Packages, which have been around for quite some time but have never had a similar validation system to ensure conformance to the spec.</p>

<p>When I started working on importing cartridges for Sakai, it was for Blackboard 5.5, and as there was no public specification, I only got it working by reverse-engineering whatever course cartridges I had on hand. It worked, but I have spent the subsequent four years responding to and patching for edge cases. I can only know about special cases as they pop up, and that has been one long headache. The great thing about having the Common Cartridge specification is that it will be possible to build an importer that will handle every allowable permutation of Common Cartridge from the get-go. And when we eventually (soon?) add Common Cartridge <em>export</em> capability to Sakai, the various validations will guarantee that our cartridges are proven correct before they ever go out the door.</p>

<p>The various publishers are eager to have one format to publish their content digitally. Pearson Education can already offer any of their cartridges in Common Cartridge format by request. Open University and Elsevier are also producing a ton of content this way.</p>

<p>The Common Cartridge mascot is a chicken. It took me until just this minute to get the joke: systems won&#8217;t support the format unless there are plenty of cartridges, and no one wants to produce cartridges if the systems don&#8217;t support it. Chicken and egg, duh! Well, the chicken has hatched, and the eggs are coming. It&#8217;s time to start making some omelets!</p>

<p>There was some talk that the Common Cartridge spec is too little too late, because the pace of change in technology has left it in the dust. I admit to being frustrated that it seems like it&#8217;s been &#8220;almost ready&#8221; for at least two years. It&#8217;s true that there have been plenty of exciting developments in technology that CC does not take into account (wikis, blogs, mashups, social networks), but the content it <em>does</em> support is not exactly obsolete: documents, images, videos, recordings, hyperlinks, discussion topics, assessments. After all, we still use books don&#8217;t we? There is still plenty of steam left in these &#8220;old-fashioned&#8221; media.</p>

<p>IMS has plans to incorporate tools as a content type for a future version of the spec. Hopefully that will allow Common Cartridges to tap into the cutting edge for many years to come.</p>
]]></content:encoded>
			<wfw:commentRss>http://aeroplanesoftware.com/ims-learning-impact/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Winding Journey of Java DB</title>
		<link>http://aeroplanesoftware.com/the-winding-journey-of-java-db/</link>
		<comments>http://aeroplanesoftware.com/the-winding-journey-of-java-db/#comments</comments>
		<pubDate>Thu, 01 May 2008 18:33:01 +0000</pubDate>
		<dc:creator>zach</dc:creator>
				<category><![CDATA[For Developers]]></category>
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://aeroplanesoftware.com/?p=45</guid>
		<description><![CDATA[Java SE 6 has finally arrived on the Mac with a recent update, so I was over on Sun&#8217;s website reading about all the new stuff and Java DB caught my eye. This is a small, all-Java database that can be embedded in applications on a desktop, a server, or a mobile device. The reason [...]]]></description>
			<content:encoded><![CDATA[<p>Java SE 6 has finally arrived on the Mac with a recent update, so I was over on Sun&#8217;s website reading about <a href="http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/beta2.html">all the new stuff</a> and Java DB caught my eye. This is a small, all-Java database that can be embedded in applications on a desktop, a server, or a mobile device. The reason I find this interesting is Java DB and I go back a few (technology) lifetimes.</p>

<p>Java DB is based on Apache Derby, which is an open source project that <a href="http://db.apache.org/derby/derby_proposal.html">IBM spun out</a> from a product called Cloudscape, which they acquired as part of the <a href="http://www.news.com/IBM-to-purchase-Informix-unit-for-1-billion/2100-1001_3-256317.html">purchase of Informix</a>, which <em>itself</em> had <a href="http://www.news.com/Informix-buys-mobile-database-maker-Cloudscape/2100-1001_3-223113.html">acquired Cloudscape</a> as a two-year-old startup with around 50 employees in the go-go year of 1999.</p>

<p>Way back then, I was in the process of looking for my very first developer job (with no qualifications, I might add). A few projects later, and my team had selected Cloudscape as our best bet for a cross platform client-server system to teach struggling kids how to read. This was back when you had to shell out $50k to use the software. In an act of surprising optimism, they put me on the project as the database lead! The first thing I did was buy a shelf-load of books about databases. I was so green I wrote my own connection pool! Java development on Mac OS classic was hell, but Cloudscape blew my mind because you could use objects as a column type, and invoke methods on them <em>from inside a SQL statement</em>. A glance <a href="http://developers.sun.com/javadb/reference/docs/index.jsp">at the docs</a> suggests it doesn&#8217;t work this way anymore, though they do have an XML column type.</p>

<p>It&#8217;s good to know that some good software can survive the corporate churn-and-burn. Who knows, maybe I&#8217;ll use Java DB née Derby née Cloudscape again in the near future.</p>

<p><img src="http://aeroplanesoftware.com/wordpress/wp-content/uploads/2008/05/cloudscapelogonew1.gif" alt="CloudscapeLogoNew.GIF" border="0" width="279" height="121" /><h5 id="image_courtesy_of_the_wayback_machine">image courtesy of <a href="http://web.archive.org/web/*/http://cloudscape.com">the Wayback Machine</a></h5></p>
]]></content:encoded>
			<wfw:commentRss>http://aeroplanesoftware.com/the-winding-journey-of-java-db/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Business Value of SOA</title>
		<link>http://aeroplanesoftware.com/the-business-value-of-soa/</link>
		<comments>http://aeroplanesoftware.com/the-business-value-of-soa/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 16:13:08 +0000</pubDate>
		<dc:creator>zach</dc:creator>
				<category><![CDATA[Found on the Web]]></category>
		<category><![CDATA[Technologies]]></category>

		<guid isPermaLink="false">http://aeroplanesoftware.com/?p=43</guid>
		<description><![CDATA[Having heard about SOA (Service Oriented Architecture) for a long time without having any idea what it is, I was happy to discover this talk by Anne Thomas Manes which finally sheds light on the subject for me.

Key points for me:


SOA aims to tackle the problem of too much cost and redundancy in enterprise IT
If [...]]]></description>
			<content:encoded><![CDATA[<p>Having heard about SOA (Service Oriented Architecture) for a long time without having <em>any idea</em> what it is, I was happy to discover <a href="http://www.infoq.com/presentations/anne-thomas-manes-business-soa">this talk by Anne Thomas Manes</a> which finally sheds light on the subject for me.</p>

<p>Key points for me:</p>

<ul>
<li>SOA aims to tackle the problem of too much cost and redundancy in enterprise IT</li>
<li>If you develop a capability, it should be reusable across your applications</li>
<li>You want to avoid building monolithic applications</li>
<li>SOA is something you <em>do</em> not something you <em>buy</em></li>
<li>Having an Enterprise Service Bus does not mean you have SOA</li>
<li>SOA requires an organizational lifestyle change; You have to apply the principles across all the projects in the organization</li>
<li>SOA is a long-term proposition, on the order of 10 or 20 years</li>
</ul>

<p><br/></p>

<p>Those last two sort-of make my eyes bug out. Do you know anyone in technology that makes 20-year plans? My feeling is that our organizational hierarchies simply prohibit cross-cutting changes like this in the enterprise. Either the CEO is demanding this from every division, or it won&#8217;t go forward.</p>

<p>I do think the principles are interesting. IT is such a young industry that we are learning for the first time what it looks like to have 40 years of cruft in your infrastructure. Certainly anything that begins to scrape away the barnacles should be good for the organization.</p>
]]></content:encoded>
			<wfw:commentRss>http://aeroplanesoftware.com/the-business-value-of-soa/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bollywood Blackboard!</title>
		<link>http://aeroplanesoftware.com/bollywood-blackboard/</link>
		<comments>http://aeroplanesoftware.com/bollywood-blackboard/#comments</comments>
		<pubDate>Mon, 21 Apr 2008 17:48:05 +0000</pubDate>
		<dc:creator>zach</dc:creator>
				<category><![CDATA[Found on the Web]]></category>
		<category><![CDATA[Fun Stuff]]></category>
		<category><![CDATA[bollywood blackboard sakai]]></category>

		<guid isPermaLink="false">http://aeroplanesoftware.com/?p=42</guid>
		<description><![CDATA[Oh, this just makes my day.


  Here&#8217;s a small series of humorous episodes related to recent Blackboard and Open Source Learning Management Systems.
  The mashups are made with snippets of classic Hindi Bollywood films, overlaid with user created subtitles, from a fun online tool called BombayTV from Grapheine.
  The role of Blackboardwala [...]]]></description>
			<content:encoded><![CDATA[<p>Oh, this just makes my day.</p>

<blockquote>
  <p>Here&#8217;s a small series of humorous episodes related to recent Blackboard and Open Source Learning Management Systems.
  The mashups are made with snippets of classic Hindi Bollywood films, overlaid with user created subtitles, from a fun online tool called BombayTV from Grapheine.
  The role of Blackboardwala is played by none other than Amitabh Bacchan, of course.</p>
</blockquote>

<p><a href="http://metamedia.typepad.com/metamedia/2008/04/the-adventures.html">http://metamedia.typepad.com/metamedia/2008/04/the-adventures.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aeroplanesoftware.com/bollywood-blackboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 2.5 coming soon</title>
		<link>http://aeroplanesoftware.com/wordpress-25-coming-soon/</link>
		<comments>http://aeroplanesoftware.com/wordpress-25-coming-soon/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 18:16:26 +0000</pubDate>
		<dc:creator>zach</dc:creator>
				<category><![CDATA[Technologies]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://aeroplanesoftware.com/2008/03/26/wordpress-25-coming-soon/</guid>
		<description><![CDATA[Matt Mullenweg gives us a preview of the soon-to-be-released WordPress 2.5.

http://wordpress.org/development/2008/03/wordpress-25-rc2/

They&#8217;ve been working with the web geniuses at Happy Cog and the results look awesome.

WordPress is seriously firing on all cylinders. It&#8217;s a Good Thing.
]]></description>
			<content:encoded><![CDATA[<p>Matt Mullenweg gives us a preview of the soon-to-be-released WordPress 2.5.</p>

<p><a href="http://wordpress.org/development/2008/03/wordpress-25-rc2/">http://wordpress.org/development/2008/03/wordpress-25-rc2/</a></p>

<p>They&#8217;ve been working with the web geniuses at <a href="http://www.happycog.com/">Happy Cog</a> and the results look <em>awesome</em>.</p>

<p>WordPress is seriously firing on all cylinders. It&#8217;s a Good Thing.</p>
]]></content:encoded>
			<wfw:commentRss>http://aeroplanesoftware.com/wordpress-25-coming-soon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Screencast: the Sakai App Builder Plugin for Eclipse</title>
		<link>http://aeroplanesoftware.com/new-screencast-the-sakai-app-builder-plugin-for-eclipse/</link>
		<comments>http://aeroplanesoftware.com/new-screencast-the-sakai-app-builder-plugin-for-eclipse/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 16:06:28 +0000</pubDate>
		<dc:creator>zach</dc:creator>
				<category><![CDATA[For Developers]]></category>
		<category><![CDATA[Screencasts]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Sakai]]></category>

		<guid isPermaLink="false">http://aeroplanesoftware.com/2008/02/11/new-screencast-the-sakai-app-builder-plugin-for-eclipse/</guid>
		<description><![CDATA[My new eleven-minute screencast is about how to use Aaron Zeckoski&#8217;s App Builder plugin for Eclipse to jumpstart your new Sakai tool projects.

It&#8217;s also a great learning tool, since you have a working tool in less than two minutes and you can start playing around with modifications.

As before, new videos are posted here: http://aeroplanesoftware.com/sakai-training-videos
]]></description>
			<content:encoded><![CDATA[<p>My new eleven-minute screencast is about how to use Aaron Zeckoski&#8217;s App Builder plugin for Eclipse to jumpstart your new Sakai tool projects.</p>

<p>It&#8217;s also a great learning tool, since you have a working tool in less than two minutes and you can start playing around with modifications.</p>

<p>As before, new videos are posted here: <a href="http://aeroplanesoftware.com/sakai-training-videos">http://aeroplanesoftware.com/sakai-training-videos</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aeroplanesoftware.com/new-screencast-the-sakai-app-builder-plugin-for-eclipse/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Getting Started with Sakai: Setting Up Eclipse</title>
		<link>http://aeroplanesoftware.com/getting-started-with-sakai-setting-up-eclipse/</link>
		<comments>http://aeroplanesoftware.com/getting-started-with-sakai-setting-up-eclipse/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 19:59:51 +0000</pubDate>
		<dc:creator>zach</dc:creator>
				<category><![CDATA[For Developers]]></category>
		<category><![CDATA[Screencasts]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Sakai]]></category>

		<guid isPermaLink="false">http://aeroplanesoftware.com/2008/02/01/getting-started-with-sakai-setting-up-eclipse/</guid>
		<description><![CDATA[I have just posted part two of my series of screencasts on how to get started developing for Sakai. This one is all about setting up the Eclipse IDE. Tasty!

Here is your link.
]]></description>
			<content:encoded><![CDATA[<p>I have just posted part two of my series of screencasts on how to get started developing for Sakai. This one is all about setting up the Eclipse IDE. Tasty!</p>

<p><a href="http://aeroplanesoftware.com/sakai-training-videos/">Here is your link.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aeroplanesoftware.com/getting-started-with-sakai-setting-up-eclipse/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 0.913 seconds. --><!-- Cached page generated by WP-Super-Cache on 2009-11-12 02:32:08 -->
