<?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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>Molecular Voices &#187; David Palmer</title>
	<atom:link href="http://molecularvoices.molecular.com/author/dpalmer/feed/" rel="self" type="application/rss+xml" />
	<link>http://molecularvoices.molecular.com</link>
	<description>where conversation and digital minds meet</description>
	<lastBuildDate>Mon, 07 Jun 2010 14:54:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
<cloud domain='molecularvoices.molecular.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
	<atom:link rel="hub" href="http://superfeedr.com/hubbub" />
			<item>
		<title>Java Becoming a Functional Programming Language?</title>
		<link>http://molecularvoices.molecular.com/2009/java-becoming-a-functional-programming-language/</link>
		<comments>http://molecularvoices.molecular.com/2009/java-becoming-a-functional-programming-language/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 20:41:41 +0000</pubDate>
		<dc:creator>David Palmer</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[functional programming]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Programming paradigms]]></category>

		<guid isPermaLink="false">http://molecularvoices.molecular.com/?p=2456</guid>
		<description><![CDATA[There is a formal proposal to introduce closures to the Java programming language. For those of us who have been in the Java world for a while (10+ years for yours truly) this could really open up a lot of interesting possibilities to express solutions to really complicated problems, the way the functional programmers have [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:3365d23d415395f9b5658ac653912c05d6cc3e2f'><p>There is a <a href="http://www.javac.info/consensus-closures-jsr.html">formal proposal</a> to introduce closures to the Java programming language. For those of us who have been in the Java world for a while (10+ years for yours truly) this could really open up a lot of interesting possibilities to express solutions to really complicated problems, the way the functional programmers have been doing things, which can mean, less and cleaner code.</p>
<p>For example, anonymous functions, and first-class functions would be introduced as well as incorporating some of the more interesting features of languages like ruby (think blocks and yield) and scala will make for more concise code and, as an example, provide the developer with the ability to write your own control structures.</p>
<p>From the (current) <a href="http://www.javac.info/closures-v05.html">specification</a>:</p>
<p>&#8220;<em>Modern programming languages provide a mixture of primitives for composing programs.  Most notably  Scheme, Smaltalk, Ruby, and Scala have direct language support for  parameterized delayed-execution blocks of code, variously called </em><em>lambda</em>, <em>anonymous functions</em>, or  <em>closures</em>. These provide a natural  way to express some kinds of abstractions that are currently quite awkward to express  in Java. For programming in the small, anonymous functions allow one to abstract an algorithm over  a piece of code; that is, they allow one to more easily extract the common parts of  two almost-identical pieces of code. For programming in the large, anonymous functions support  APIs that express an algorithm abstracted over some computational aspect of the algorithm.&#8221;</p>
<p>This is pretty exciting for Java, and as a fan of functional programming, this is a real bonus for the Java platform.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://molecularvoices.molecular.com/2009/java-becoming-a-functional-programming-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Inversion of Control/Dependency Injection with PHP</title>
		<link>http://molecularvoices.molecular.com/2009/inversion-of-controldependency-injection-with-php/</link>
		<comments>http://molecularvoices.molecular.com/2009/inversion-of-controldependency-injection-with-php/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 17:28:37 +0000</pubDate>
		<dc:creator>David Palmer</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://molecularvoices.molecular.com/?p=1579</guid>
		<description><![CDATA[Over the last several years the design paradigm of inversion of control/dependency injection has gone from an interesting design exercise to major league time savings and making complex things less complex (and at the same when done wrong, making complex things even more complex.) Developers in the Java world have enjoyed Spring, the de facto [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:4a0a8ef8c39547c8c4b607eecc67ba936cca4813'><p>Over the last several years the design paradigm of inversion of control/dependency injection has gone from an interesting design exercise to major league time savings and making complex things less complex (and at the same when done wrong, making complex things even more complex.) Developers in the Java world have enjoyed Spring, the de facto library that makes all of the promises of IoC/DI possible and rather straight forward.</p>
<p>However, with the continual maturity of OOP in PHP the concept of inversion of control/dependency injection has been slow to catch on. There have been attempts at providing IoC/DI functionality to PHP but many have just withered away and died. One such framework that may show some significant promise is Flow3, produced by the community of developers who have been slaving away at <a href="http://typo3.com/" target="_blank">Typo3</a>, a long running, incredibly feature-rich open source enterprise CMS. However, to date, <a href="http://flow3.typo3.org/" target="_blank">Flow3</a> is very much like vaporware. Oh sure you can download it, but documentation is scarce to non existent and its missing one thing that I believe would slow its adoption, its similarity to Spring.</p>
<p>Spring got it right, by my estimation. The notion of wiring an application together via an XML file is spot on and truly enables developers to &#8220;write to interfaces&#8221; without ever having to concern themselves with the concrete implementations. The better code design, testing and time savings become very apparent once fully in practice. This shouldn&#8217;t just be something that Java (or .NET) developers enjoy. PHP is a major piece of technology, so with that said, I&#8217;ve taken the time and out of a graduate school project I recently finished devised a rudimentary IoC/DI container written in PHP. Currently it only supports a limited set of features, but uses the same concepts as used by Spring. Enter, <a href="http://code.google.com/p/phpboing/" target="_blank">phpBoing</a>, which right now is quite simple and is just an academic curiosity, but with some work it could grow into a full fledged mature application development framework. No it is NOT meant to be another MVC framework. There are too many of those already, in fact, this system simply provides an object registry that lives in memory, defined through an &#8220;application context&#8221; XML where you can &#8220;inject&#8221; object dependencies via XML syntax, thus enabling you to &#8220;wire&#8221; your PHP applications together in XML (as opposed to doing so in actual PHP code).</p>
<p>In invite you to take a look, stab around at it, and if so inclined, contribute code.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://molecularvoices.molecular.com/2009/inversion-of-controldependency-injection-with-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Appcelerator: RIA Made (pretty) Easy</title>
		<link>http://molecularvoices.molecular.com/2008/appcelerator-ria-made-pretty-easy/</link>
		<comments>http://molecularvoices.molecular.com/2008/appcelerator-ria-made-pretty-easy/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 01:46:44 +0000</pubDate>
		<dc:creator>David Palmer</dc:creator>
				<category><![CDATA[Experience Design]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://molecularvoices.molecular.com/?p=1012</guid>
		<description><![CDATA[We (that is, &#8220;we&#8221; developers) all have our favorite secret weapons when it comes to making the complicated (read: RIA) applications seem easy, stuff like JQuery, YUI, Flex, mootools (hahaha, funny right?) Flash, ZK, Openlazlo, etc. But allow me to introduce a new discovery, Appcelerator. What is it? Well, its not just a collection of [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:cd79e2384981b08c01e45207a7fdd72e3ac00203'><p>We (that is, &#8220;we&#8221; developers) all have our favorite secret weapons when it comes to making the complicated (read: RIA) applications seem easy, stuff like <a href="http://jquery.com">JQuery</a>, <a href="http://developer.yahoo.com/yui/">YUI</a>, <a href="http://www.adobe.com/products/flex/">Flex</a>, mootools (hahaha, funny right?) Flash, <a href="http://www.zkoss.org/">ZK</a>, <a href="http://www.openlaszlo.org/">Openlazlo</a>, etc. But allow me to introduce a new discovery, <a href="http://www.appcelerator.org">Appcelerator</a>.</p>
<p>What is it? Well, its not just a collection of javascripts and CSS snippets, its more like a fully integrated development platform with its own (very ant-like) build system and (perl-like) updating system. Appcelerator, an open source (using the more friendly, flexible and down-to-earth license of Apache) system provides developers (not so much designers) with tools to make RIA applications less of a chore.</p>
<p><span id="more-1012"></span></p>
<p>How it works is that Appcelerator&#8217;s SDK basically &#8220;compiles&#8221; a series of templates (HTML/CSS) and Java code and creates all the appropriate JavaScripts, and a WAR file. Using a message-oriented-architecture all communications between the front-end and back end occurs through discreet &#8220;messages&#8221; which are just serialized chunks of JSON. Appcelerator handles all of the marshaling/unmarshaling for you so your only concern is making the individual pieces of functionality.</p>
<p>Integration is what appears to be Appcelerator&#8217;s real strong point. With the ability to fit in nicely with a Java application, it&#8217;ll be more than happy to be in your Perl, PHP, Ruby, or Python application, as well as your Google Gears application as well. With a full suite of widgets and plugins most common pieces are probably already built for you&#8230; um, so you don&#8217;t have to!</p>
<p>The magic of Appcelerator happens by a dynamic HTML scripting-like language where the developer simply assigns IDs to HTML elements and an &#8220;<code>on</code>&#8221; attribute which defines (for Appcelerator) the action to perform:</p>
<p><code>&lt;div id="my_comment" on="r:app.my.package.response then effect[fade]"&gt;&lt;/div&gt;</code></p>
<p>What that basically says is when the id &#8220;<code>my_comment</code>&#8221; receives a response (<code>r</code>) of <code>app.my.package.response</code> then it will fade in the value.</p>
<p>Pretty cool huh? Yes, its way more sophisticated than just this ridiculously simple example, but the idea is that everything is done through a very human-readable scripting syntax and all of the heavy lifting and tedious code of calling the server, marshaling the objects and dealing with the output is done for you.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://molecularvoices.molecular.com/2008/appcelerator-ria-made-pretty-easy/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Say Good Bye To Database Schemas</title>
		<link>http://molecularvoices.molecular.com/2008/say-good-bye-to-database-schemas/</link>
		<comments>http://molecularvoices.molecular.com/2008/say-good-bye-to-database-schemas/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 16:49:28 +0000</pubDate>
		<dc:creator>David Palmer</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://molecularvoices.molecular.com/?p=543</guid>
		<description><![CDATA[Fast on the heels of Craig&#8217;s last post, I bring you a new tool which is currently undergoing Apache incubation, which has the potential to radically change how you think about databases. Google kick- started this by publishing a paper on their &#8220;BigTable&#8221; system, and just a short while back Facebook released Cassandra out into [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:f8371a9d1bd26f992dfd3586e21e9c6ae1657adc'><p>Fast on the heels of <a href="http://molecularvoices.molecular.com/2008/distributed-services-the-past-present-and-future-of-the-internet/" target="_blank">Craig&#8217;s last post</a>, I bring you a new tool which is currently undergoing Apache incubation, which has the potential to radically change how  you think about databases. Google kick- started this by <a href="http://labs.google.com/papers/bigtable.html">publishing a paper</a> on their &#8220;BigTable&#8221; system, and just a <a href="http://www.25hoursaday.com/weblog/2008/07/14/ProjectCassandraFacebooksOpenSourceAlternativeToGoogleBigTable.aspx">short while back</a> Facebook released <a href="http://code.google.com/p/the-cassandra-project/">Cassandra</a> out into Google Code, but along comes <a href="http://incubator.apache.org/couchdb/" target="_blank">CouchDB</a>.</p>
<p><span id="more-543"></span></p>
<p>CouchDB, like BigTable and Cassandra (and there are others out there) thinks in terms of documents, not tables. This is pretty significant, especially for developers who spend a lot of time building complex web applications where relationships are modeled in highly inflexible table schemes, using tedious joins and look up tables in an effort to artificially create flexibility through normalization. Well CouchDB does away with that entirely. Its not a new idea (see <a href="http://en.wikipedia.org/wiki/Berkeley_DB" target="_blank">Berkley DB</a>) but how they do it is what makes this thing fast, efficient and very compelling. Using the &#8220;<a href="http://en.wikipedia.org/wiki/MapReduce" target="_blank">map reduce</a>&#8221; algorithm means the databases can be distributed over a number of disparate nodes (all on commodity hardware) and the searching is very fast in that you aren&#8217;t looking at everything all at once.</p>
<p>Also interesting with CouchDB is that it incorporates a &#8220;view&#8221; engine, and out of the box uses javascript as the view/query language. It doesn&#8217;t get much more simple than that. Written in <a href="http://www.erlang.org/" target="_blank">Erlang</a>, CouchDB is accessible via a RESTful HTTP interface and there are language bindings for nearly every popular platform.</p>
<p>Check out CouchDB, and relax! We&#8217;ll be hearing more about this in the coming months and years me thinks.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://molecularvoices.molecular.com/2008/say-good-bye-to-database-schemas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>The Main Street Web?</title>
		<link>http://molecularvoices.molecular.com/2008/the-main-street-web/</link>
		<comments>http://molecularvoices.molecular.com/2008/the-main-street-web/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 13:56:48 +0000</pubDate>
		<dc:creator>David Palmer</dc:creator>
				<category><![CDATA[Industry Trends]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[guessing]]></category>
		<category><![CDATA[recession]]></category>

		<guid isPermaLink="false">http://molecularvoices.molecular.com/?p=292</guid>
		<description><![CDATA[Interesting article on ReadWriteWeb today, The Main Street Web. Its an interesting spin in how the Web/Internet/Digital-whatever will save us from a recession. A lot of interesting topics covered, and perhaps a bit on the (foolishly?) optimistic side, but at the same time, the piece actually makes a considerable amount of sense. Especially for outfits [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:6b5df95df6c1f7ad41f6825f933fee696a0d5f31'><p>Interesting article on ReadWriteWeb today, <a href="http://www.readwriteweb.com/archives/the_emerging_main_street_web.php#more" target="_blank">The Main Street Web</a>.</p>
<p>Its an interesting spin in how the Web/Internet/Digital-whatever will save us from a recession. A lot of interesting topics covered, and perhaps a bit on the (foolishly?) optimistic side, but at the same time, the piece actually makes a considerable amount of sense. Especially for outfits like Molecular who make all that stuff (mentioned in this piece) possible.</p>
<p>Read the comments as well, some good discussion (so far) happening.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://molecularvoices.molecular.com/2008/the-main-street-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>XStream, Aliases and Spring</title>
		<link>http://molecularvoices.molecular.com/2008/xstream-aliases-and-spring/</link>
		<comments>http://molecularvoices.molecular.com/2008/xstream-aliases-and-spring/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 15:52:07 +0000</pubDate>
		<dc:creator>David Palmer</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://molecularvoices.molecular.com/2008/xstream-aliases-and-spring/</guid>
		<description><![CDATA[At some point in a complicated development project there will come a time when you need to translate a java object (assuming of course that you are working in java) into XML or back. Sure, we&#8217;ve all gone through the pain of Castor and the performance hits you take associated with that, and there are [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:a4d85888e2873bf6c7dd5a4003186a67dbe7c97b'><p>At some point in a complicated development project there will come a time when you need to translate a java object (assuming of course that you are working in java) into XML or back. Sure, we&#8217;ve all gone through the pain of Castor and the performance hits you take associated with that, and there are other tools, but what is now considered (by many) to be the standard is XStream. I won&#8217;t go into too much detail as to why XStream is as great as it is (two words: pull parsing), but suffice it to say it is, great.</p>
<p>XStream uses an aliasing feature so that you can &#8220;pretty up&#8221; your XML (by default XStream will just use the fully qualified package name for XML node names) which can be weird.</p>
<p>To use the aliasing feature, in your code, you simply do something like:</p>
<p><code>xstream.alias("node-name",MyClass.class);</code></p>
<p>Well, that&#8217;s all cool and all, but its very hard-coded. Wouldn&#8217;t it be cool if you could just wire something like this together in Spring?</p>
<p>There is a way to do this, its quite simple in fact. It just requires you to make an interface that defines a single method, something like: String:getNodeName(). Each class that must be serialized would implement said interface. Now, you just do something like the following in your Spring XML (in this case I created a configuration bean that contains a list of my &#8220;models&#8221; that must be serialized):</p>
<p><code>&lt;bean id="config" class="com.marley.tmac.tools.Configuration"&gt;<br />
    &lt;property id="serializableClass"&gt;<br />
        &lt;list&gt;<br />
            &lt;bean class="com.marley.tmac.models.User"/&gt;<br />
            &lt;bean class="com.marley.tmac.models.UserElement"/&gt;<br />
        &lt;/list&gt;<br />
    &lt;/property&gt;<br />
&lt;/bean&gt;</code></p>
<p>Now, in the class that handles setting up XStream, you would simply have something like:</p>
<p><code>for (YourInterface model : listFromSpring) {<br />
    xstream.alias(model.getNodeName(), model.getClass());<br />
}</code></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://molecularvoices.molecular.com/2008/xstream-aliases-and-spring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Sensitive Properties Files Give You The Willies?</title>
		<link>http://molecularvoices.molecular.com/2007/sensitive-properties-files-give-you-the-willies/</link>
		<comments>http://molecularvoices.molecular.com/2007/sensitive-properties-files-give-you-the-willies/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 21:05:43 +0000</pubDate>
		<dc:creator>David Palmer</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://molecularvoices.molecular.com/2007/sensitive-properties-files-give-you-the-willies/</guid>
		<description><![CDATA[As a good follow-up to Don&#8217;s piece, comes a new (Java) library that can make many of your security nightmares go away (with respect to all of those wonderful JDBC properties files with usernames and passwords for production systems, just sitting there, out in the open, just waiting to be discovered). Jasypt, a library that [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:263eb1d0100cc7f61565cfd70321ada5e7b05c92'><p>As a good follow-up to <a href="http://molecularvoices.molecular.com/2007/simple-environmental-independence-with-spring/">Don&#8217;s piece</a>, comes a new (Java) library that can make many of your security nightmares go away (with respect to all of those wonderful JDBC properties files with usernames and passwords for production systems, just sitting there, out in the open, just waiting to be discovered). <a href="http://www.jasypt.org/"></a></p>
<p><a href="http://www.jasypt.org/">Jasypt, a library that supports encrypting properties</a> files for Spring, Hibernate (and any other properties files you want to protect) will keep curious eyes confused when all they see are RSA encoded strings for what represents actual configuration data.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://molecularvoices.molecular.com/2007/sensitive-properties-files-give-you-the-willies/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Fedora Core 8: The Java Developer&#8217;s OS?</title>
		<link>http://molecularvoices.molecular.com/2007/fedora-core-8-the-java-developers-os/</link>
		<comments>http://molecularvoices.molecular.com/2007/fedora-core-8-the-java-developers-os/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 18:44:15 +0000</pubDate>
		<dc:creator>David Palmer</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://molecularvoices.molecular.com/2007/fedora-core-8-the-java-developers-os/</guid>
		<description><![CDATA[Red Hat&#8217;s non-profit arm, project Fedora just released Core 8, Fedora&#8217;s/Red Hat&#8217;s distribution of Linux. Fedora has long been a very developer-friendly operating system (unlike Ubuntu which lacks any developer tools out of the box) has taken further steps to embrace Java development. Included with FC8 is OpenJDK and IcedTea, the open source version of [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:fb7253e982b6d0fe57402c5e4173ca9ec9ee5c02'><p>Red Hat&#8217;s non-profit arm, project Fedora <a href="http://www.theserverside.com/news/thread.tss?thread_id=47530">just released Core 8</a>, Fedora&#8217;s/Red Hat&#8217;s distribution of Linux. Fedora has long been a very developer-friendly operating system (unlike Ubuntu which lacks any developer tools out of the box) has taken further steps to embrace Java development.</p>
<p>Included with FC8 is <a href="http://openjdk.java.net/">OpenJDK </a>and <a href="http://icedtea.classpath.org/wiki/Main_Page">IcedTea</a>, the open source version of the JDK /JVM and build tools. With Sun setting Java &#8220;free&#8221; OpenJDK and the IcedTea projects have become the de-facto open source Java environment.</p>
<p>Also included with FC8 is Eclipse, Maven, Ant, Tomcat5 (this should probably be 6) and Jetty. So we are talking major hardcore Java development right out of the box.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://molecularvoices.molecular.com/2007/fedora-core-8-the-java-developers-os/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>For Real Hot Deploy For Java</title>
		<link>http://molecularvoices.molecular.com/2007/for-real-hot-deploy-for-java/</link>
		<comments>http://molecularvoices.molecular.com/2007/for-real-hot-deploy-for-java/#comments</comments>
		<pubDate>Wed, 10 Oct 2007 16:20:14 +0000</pubDate>
		<dc:creator>David Palmer</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[class loading]]></category>
		<category><![CDATA[hot deploy]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://molecularvoices.molecular.com/2007/for-real-hot-deploy-for-java/</guid>
		<description><![CDATA[While Java 1.4 promised hot deploy, many implementations of application servers have fallen quite flat on their collective faces in delivering on this promise. Then along comes JavaRebel. A nice little library that actually makes this time consuming and frustrating problem a non-issue. Check out some of the features: Changing, adding and removing class/interface methods [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:62fd09d45a954f580696d960844b907763257025'><p>While Java 1.4 promised hot deploy, many implementations of application servers have fallen quite flat on their collective faces in delivering on this promise. Then along comes <a href="http://www.zeroturnaround.com/download/">JavaRebel.</a> A nice little library that actually makes this time consuming and frustrating problem a non-issue. Check out some of the features:</p>
<ul>
<li>Changing, adding and removing class/interface methods</li>
<li>Changing, adding and removing class fields</li>
<li>Changing, adding and removing class constructors</li>
<li>Overriding existing methods</li>
<li>Creating new classes or renaming old ones (as long as some other class superclass doesn’t change)</li>
<li>Changing method parameter or return types or field type without changing its name</li>
<li>Changing, adding and removing class/interface constant fields is supported, but will not get reinitialized and thus is only useful for primitive types and Strings</li>
</ul>
<p>(taken, liberally, from t<a href="http://www.zeroturnaround.com/javarebel/features/">heir page here</a>)</p>
<p>Yes, there is a performance penalty with this, so DO NOT EVER use something like this is a production environment, but it can make your life as a java developer, especially in a local environment, a bit more productive and a lot less infuriating (but, er, we never get mad at Java, because Java is infallible!)</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://molecularvoices.molecular.com/2007/for-real-hot-deploy-for-java/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Making the Case: Alfresco</title>
		<link>http://molecularvoices.molecular.com/2007/making-the-case-alfresco/</link>
		<comments>http://molecularvoices.molecular.com/2007/making-the-case-alfresco/#comments</comments>
		<pubDate>Fri, 24 Aug 2007 03:47:25 +0000</pubDate>
		<dc:creator>David Palmer</dc:creator>
				<category><![CDATA[Content Management]]></category>

		<guid isPermaLink="false">http://blog.molecular.com/2007/making-the-case-alfresco/</guid>
		<description><![CDATA[With the recent release of Alfresco 2.1, this relatively new entry to the &#8220;enterprise-class&#8221; open source content management system is beginning to show some very real signs of being a major go-to tool for organizations who need all of the enterprise features of your Documentums, or Teamsites or Vignettes, but being completely open source. Alfresco&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<div class='microid-mailto+http:sha1:015d30274da6e734ab5ec159e555dcd2c96ee279'><p>With the recent release of <a href="http://www.alfresco.com/">Alfresco</a> 2.1, this relatively new entry to the &#8220;enterprise-class&#8221; open source content management system is beginning to show some very real signs of being a major go-to tool for organizations who need all of the enterprise features of your Documentums, or Teamsites or Vignettes, but being completely open source.</p>
<p><img src="http://www.alfresco.com/assets/images/header/alfresco-logo-strap.gif" align="right" /><a href="http://www.alfresco.com/products/ecm/screenshots/">Alfresco&#8217;s features</a> are impressive, fully customizable workflow, document management, user roles, remote publishing features, as well as easily integrating other applications to create mashups. Built on a JEE platform, and runs in JBoss, Tomcat, Geronimo, it has real promising of being a mainstay in an Java open source enterprise stack.</p>
<p>While <a href="http://www.opencms.org">OpenCMS</a> is the old timer in the enterprise-class open source CMS, Alfresco is showing remarkable maturity, in particular to documentation (if you&#8217;ve worked with OpenCMS I&#8217;m sure you know about the weakness in the documentation) and its feature set. There is also a well established organization backing up Alfresco, providing professional services and support, as well &#8220;enterprise&#8221; versions of their product, while maintaining a &#8220;<a href="http://www.alfresco.com/products/docs/releases/2.1_community/">community</a>&#8221; edition.</p>
<p>I&#8217;m currently giving it a spin, and am incorporating it into our &#8220;home intranet&#8221; to publish web content to our various project sites, so the back-end content management is completely decoupled from the front-end content delivery (web) tier. So far, it seems to be working like a champ.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://molecularvoices.molecular.com/2007/making-the-case-alfresco/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
	</item>
	</channel>
</rss>
