<?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"
	>

<channel>
	<title>MJWall.com</title>
	<atom:link href="http://www.mjwall.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mjwall.com</link>
	<description>Just a guy and his computer</description>
	<pubDate>Fri, 23 Oct 2009 19:51:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Accessing CLI args and java system properties from a Grails script</title>
		<link>http://www.mjwall.com/2009/10/accessing-cli-args-and-java-system-properties-from-a-grails-script/</link>
		<comments>http://www.mjwall.com/2009/10/accessing-cli-args-and-java-system-properties-from-a-grails-script/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 19:25:38 +0000</pubDate>
		<dc:creator>mjwall</dc:creator>
		
		<category><![CDATA[grails]]></category>

		<guid isPermaLink="false">http://www.mjwall.com/?p=109</guid>
		<description><![CDATA[Quick post so I can remember how to access CLI args and Java system properties inside of a grails script.
Put this following code inside of your_grails_app/scripts/ScriptTest.groovy

target ( default : 'Print args and java system properties' ) {
    //grails script-test arg1 arg2
    println "Grails CLI args"
    println [...]]]></description>
			<content:encoded><![CDATA[<p>Quick post so I can remember how to access CLI args and Java system properties inside of a grails script.</p>
<p>Put this following code inside of your_grails_app/scripts/ScriptTest.groovy</p>
<pre>
target ( default : 'Print args and java system properties' ) {
    //grails script-test arg1 arg2
    println "Grails CLI args"
    println Ant.project.properties."grails.cli.args" 

    //grails -Dprop1anything script-test
    println "Java system properties of prop1"
    println Ant.project.properties.prop1
}
</pre>
<p>So now you can run the following<br />
<code><br />
$grails -Dprop1=anything script-test arg1 arg2<br />
Welcome to Grails 1.1.1 - http://grails.org/<br />
Licensed under Apache Standard License 2.0<br />
Grails home is set to: /Library/Grails/Home<br />
<br />
Base Directory: /Users/mjwall/src/sample1<br />
Running script /Users/mjwall/src/sample1/ScriptTest.groovy<br />
Grails CLI args<br />
arg1<br />
arg2<br />
Java system properties of prop1<br />
anything<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mjwall.com/2009/10/accessing-cli-args-and-java-system-properties-from-a-grails-script/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Grails and Maven with no Maven</title>
		<link>http://www.mjwall.com/2009/01/grails-and-maven-with-no-maven/</link>
		<comments>http://www.mjwall.com/2009/01/grails-and-maven-with-no-maven/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 02:27:07 +0000</pubDate>
		<dc:creator>mjwall</dc:creator>
		
		<category><![CDATA[grails]]></category>

		<category><![CDATA[groovy]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://www.mjwall.com/?p=89</guid>
		<description><![CDATA[According the Grails 1.1 Beta2 Release Notes, Grails 1.1 will have better Maven integration.  I think that is great news allowing more integration between different java projects.  It means this post may not relevant for very long though.
For all it&#8217;s complexity, I like maven.  Sometimes it makes complex tasks easier, but not [...]]]></description>
			<content:encoded><![CDATA[<p>According the <a href="http://www.grails.org/1.1-beta2+Release+Notes">Grails 1.1 Beta2 Release Notes</a>, Grails 1.1 will have better Maven integration.  I think that is great news allowing more integration between different java projects.  It means this post may not relevant for very long though.</p>
<p>For all it&#8217;s complexity, I like maven.  Sometimes it makes complex tasks easier, but not always.  Here is my situation.  There are several java projects already using maven.  I am building a grails project that will be used by some of these projects.  The easiest integration is to package up a war file and deploy it to our local maven repository.  <a href="http://nexus.sonatype.org/">Nexus</a> is great by the way.  The other projects can include my grails project as a dependency.  So what is the best way to do that?  Right, I hear you.  By hand.  However, I need to automate this.</p>
<p>I looked at the <a href="http://forge.octo.com/maven/sites/mtg/grails-maven-plugin/">grails-maven-plugin</a>, but it is too much.  I am not trying to mavenize my project, just deploy it to Nexus.</p>
<p>Luckily, there is as a cleaner answer.   Creating scripts in grails is <a href="http://docs.codehaus.org/display/GRAILS/Command+Line+Scripting">easy</a>.  Those scripts can use the <a href="http://maven.apache.org/ant-tasks/index.html">maven-ant-tasks</a>.  Download the <a href="http://www.apache.org/dyn/closer.cgi/maven/binaries/maven-ant-tasks-2.0.9.jar">jar</a> file and put it in your lib directory.</p>
<p>I&#8217;ll create 2 tasks, one handle the &#8216;maven install&#8217; so I can test locally and one to handle &#8216;maven deploy&#8217;.  We need a pom file, but instead of checking one in, let&#8217;s generate it from the project so it picks up the latest version etc.  (Note, I studied the <a href="http://github.com/russel/gant/tree/master/build.gant">gant</a> build file pretty closely).  Here is an example of MavenInstall.groovy file from the scripts directory</p>
<div style="background-color: #000000; color:#eeeeee"><font face="monospace"><br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;1 </font></span>includeTargets </font><font color="#ff6600">&lt;&lt;</font>&nbsp;grailsScript (&nbsp;<font color="#66ff00">&quot;War&quot;</font>&nbsp;)<br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;2 </font></span><br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;3 </font></span><font color="#aaaa77">final</font>&nbsp;antlibXMLns = <font color="#66ff00">&#8216;antlib:org.apache.maven.artifact.ant&#8217;</font><br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;4 </font></span><font color="#aaaa77">final</font>&nbsp;tempPomFile = <font color="#66ff00">&quot;pom.xml&quot;</font><br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;5 </font></span><br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;6 </font></span>target (preparePom : <font color="#66ff00">&quot;Generate a temporary pom file&quot;</font>)&nbsp;{<br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;7 </font></span>&nbsp;&nbsp;depends(packageApp)&nbsp;&nbsp;<font color="#9933cc"><i>//so config.maven properties are loaded</i></font><br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;8 </font></span>&nbsp;&nbsp;<font color="#33aa00">def</font>&nbsp;writer = <font color="#ff6600">new</font>&nbsp;StringWriter()<br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;9 </font></span>&nbsp;&nbsp;<font color="#33aa00">def</font>&nbsp;builder = <font color="#ff6600">new</font>&nbsp;groovy.xml.MarkupBuilder(writer)<br />
<span style="background-color: #222222"><font color="#ddeeff">10 </font></span>&nbsp;&nbsp;builder.project(xmlns:<font color="#66ff00">&quot;http://maven.apache.org/POM/4.0.0&quot;</font>,<br />
<span style="background-color: #222222"><font color="#ddeeff">11 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;xmlns:xsi&#8217;</font>:<font color="#66ff00">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</font>,<br />
<span style="background-color: #222222"><font color="#ddeeff">12 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;xsi:schemaLocation&#8217;</font>:<font color="#66ff00">&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&quot;</font>)&nbsp;{<br />
<span style="background-color: #222222"><font color="#ddeeff">13 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;modelVersion&#8217;</font>&nbsp;<font color="#66ff00">&#8216;4.0.0&#8242;</font><br />
<span style="background-color: #222222"><font color="#ddeeff">14 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;groupId&#8217;</font>&nbsp;<font color="#66ff00">&#8216;com.mjwall&#8217;</font><br />
<span style="background-color: #222222"><font color="#ddeeff">15 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;artifactId&#8217;</font>&nbsp;grailsAppName<br />
<span style="background-color: #222222"><font color="#ddeeff">16 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;packaging&#8217;</font>&nbsp;<font color="#66ff00">&#8216;war&#8217;</font><br />
<span style="background-color: #222222"><font color="#ddeeff">17 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;version&#8217;</font>&nbsp;grailsAppVersion<br />
<span style="background-color: #222222"><font color="#ddeeff">18 </font></span>&nbsp;&nbsp;}<br />
<span style="background-color: #222222"><font color="#ddeeff">19 </font></span><br />
<span style="background-color: #222222"><font color="#ddeeff">20 </font></span>&nbsp;&nbsp;File temp = <font color="#ff6600">new</font>&nbsp;File(tempPomFile)<br />
<span style="background-color: #222222"><font color="#ddeeff">21 </font></span>&nbsp;&nbsp;temp.<font color="#ffcc00">write</font>&nbsp;writer.toString()<br />
<span style="background-color: #222222"><font color="#ddeeff">22 </font></span>&nbsp;&nbsp;<font color="#33aa00">def</font>&nbsp;pom =ant.<font color="#66ff00">&quot;</font><font color="#ffcc00">${antlibXMLns}</font><font color="#66ff00">:pom&quot;</font>&nbsp;(&nbsp;file : tempPomFile , id : tempPomFile )<br />
<span style="background-color: #222222"><font color="#ddeeff">23 </font></span>&nbsp;&nbsp;echo(<font color="#66ff00">&quot;Temporary pom file written to </font><font color="#ffcc00">${tempPomFile}</font><font color="#66ff00">, don&#8217;t forget to clean up&quot;</font>)<br />
<span style="background-color: #222222"><font color="#ddeeff">24 </font></span>&nbsp;&nbsp;<font color="#ff6600">return</font>&nbsp;tempPomFile<br />
<span style="background-color: #222222"><font color="#ddeeff">25 </font></span>}<br />
<span style="background-color: #222222"><font color="#ddeeff">26 </font></span><br />
<span style="background-color: #222222"><font color="#ddeeff">27 </font></span>target (deletePom : <font color="#66ff00">&quot;Clean up the temporary pom file&quot;</font>)&nbsp;{<br />
<span style="background-color: #222222"><font color="#ddeeff">28 </font></span>&nbsp;&nbsp;<font color="#ff6600">new</font>&nbsp;File(tempPomFile).<span style="background-color: #dd0805"><font color="#ffffff">delete</font></span>()<br />
<span style="background-color: #222222"><font color="#ddeeff">29 </font></span>}<br />
<span style="background-color: #222222"><font color="#ddeeff">30 </font></span><br />
<span style="background-color: #222222"><font color="#ddeeff">31 </font></span>target (getWarName : <font color="#66ff00">&quot;Return the war name defined by the app configs&quot;</font>)&nbsp;{<br />
<span style="background-color: #222222"><font color="#ddeeff">32 </font></span>&nbsp;&nbsp;depends(war)<br />
<span style="background-color: #222222"><font color="#ddeeff">33 </font></span>&nbsp;&nbsp;<font color="#9933cc"><i>// bug in grails clean, doesn&#8217;t seem to delete war from a custom location defined by grails.war.destFile</i></font><br />
<span style="background-color: #222222"><font color="#ddeeff">34 </font></span>&nbsp;&nbsp;<font color="#ff6600">return</font>&nbsp;warName<br />
<span style="background-color: #222222"><font color="#ddeeff">35 </font></span>}<br />
<span style="background-color: #222222"><font color="#ddeeff">36 </font></span><br />
<span style="background-color: #222222"><font color="#ddeeff">37 </font></span>target (<font color="#ff6600">default</font>&nbsp;: <font color="#66ff00">&quot;Install to local maven repository&quot;</font>)&nbsp;{<br />
<span style="background-color: #222222"><font color="#ddeeff">38 </font></span>&nbsp;&nbsp;depends(war)<br />
<span style="background-color: #222222"><font color="#ddeeff">39 </font></span>&nbsp;&nbsp;<font color="#33aa00">def</font>&nbsp;tempPom = preparePom()<br />
<span style="background-color: #222222"><font color="#ddeeff">40 </font></span>&nbsp;&nbsp;ant.<font color="#66ff00">&quot;</font><font color="#ffcc00">${antlibXMLns}</font><font color="#66ff00">:install&quot;</font>&nbsp;(&nbsp;file : getWarName()&nbsp;)&nbsp;{ pom (&nbsp;refid : tempPom )&nbsp;}<br />
<span style="background-color: #222222"><font color="#ddeeff">41 </font></span>&nbsp;&nbsp;deletePom()<br />
<span style="background-color: #222222"><font color="#ddeeff">42 </font></span>}<br />
<span style="background-color: #222222"><font color="#ddeeff">43 </font></span></p>
</div>
<p>Not too scary, but what is going on here?  The default task you will see depends on the war file being built.  A temporary pom is created using the value defined in application.properties.  Then the maven-ant-task for install is run and the pom is deleted.  Pretty simple huh?  It is once you see an example anyway.</p>
<p>How about a maven deploy.  Basically the same thing, except the pom needs to generate a distributionManagement section.  I set up a couple of properties in my Config.groovy at the end called maven.remoteReleaseUrl and maven.remoteSnapshotUrl.  Change the pom generate to include them.  Looks like this</p>
<div style="background-color: #000000; color:#eeeeee"><font face="monospace"><br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;6 </font></span>target (preparePom : </font><font color="#66ff00">&quot;Generate a temporary pom file&quot;</font>)&nbsp;{<br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;7 </font></span>&nbsp;&nbsp;depends(packageApp)&nbsp;&nbsp;<font color="#9933cc"><i>//so config.maven properties are loaded</i></font><br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;8 </font></span>&nbsp;&nbsp;<font color="#33aa00">def</font>&nbsp;writer = <font color="#ff6600">new</font>&nbsp;StringWriter()<br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;9 </font></span>&nbsp;&nbsp;<font color="#33aa00">def</font>&nbsp;builder = <font color="#ff6600">new</font>&nbsp;groovy.xml.MarkupBuilder(writer)<br />
<span style="background-color: #222222"><font color="#ddeeff">10 </font></span>&nbsp;&nbsp;builder.project(xmlns:<font color="#66ff00">&quot;http://maven.apache.org/POM/4.0.0&quot;</font>,<br />
<span style="background-color: #222222"><font color="#ddeeff">11 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;xmlns:xsi&#8217;</font>:<font color="#66ff00">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</font>,<br />
<span style="background-color: #222222"><font color="#ddeeff">12 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;xsi:schemaLocation&#8217;</font>:<font color="#66ff00">&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&quot;</font>)&nbsp;{<br />
<span style="background-color: #222222"><font color="#ddeeff">13 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;modelVersion&#8217;</font>&nbsp;<font color="#66ff00">&#8216;4.0.0&#8242;</font><br />
<span style="background-color: #222222"><font color="#ddeeff">14 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;groupId&#8217;</font>&nbsp;<font color="#66ff00">&#8216;com.mjwall&#8217;</font><br />
<span style="background-color: #222222"><font color="#ddeeff">15 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;artifactId&#8217;</font>&nbsp;grailsAppName<br />
<span style="background-color: #222222"><font color="#ddeeff">16 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;packaging&#8217;</font>&nbsp;<font color="#66ff00">&#8216;war&#8217;</font><br />
<span style="background-color: #222222"><font color="#ddeeff">17 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;version&#8217;</font>&nbsp;grailsAppVersion<br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;20 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;distributionManagement&#8217;</font>&nbsp;{<br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;21 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;repository&#8217;</font>&nbsp;{<br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;22 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;id&#8217;</font>&nbsp;<font color="#66ff00">&#8216;releases&#8217;</font><br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;23 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;name&#8217;</font>&nbsp;<font color="#66ff00">&#8216;Internal Releases&#8217;</font><br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;24 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;url&#8217;</font>&nbsp;config.maven.remoteReleaseUrl <font color="#9933cc"><i>//defined in Config.groovy</i></font><br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;25 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;26 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8217;snapshotRepository&#8217;</font>&nbsp;{<br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;27 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;id&#8217;</font>&nbsp;<font color="#66ff00">&#8217;snapshots&#8217;</font><br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;28 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;name&#8217;</font>&nbsp;<font color="#66ff00">&#8216;Internal Snapshots&#8217;</font><br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;29 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;url&#8217;</font>&nbsp;config.maven.remoteSnapshotUrl <font color="#9933cc"><i>//defined in Config.groovy</i></font><br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;30 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#66ff00">&#8216;uniqueVersion&#8217;</font>&nbsp;<font color="#66ff00">&#8216;true&#8217;</font><br />
<span style="background-color: #222222"><font color="#ddeeff">&nbsp;31 </font></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="background-color: #222222"><font color="#ddeeff">18 </font></span>&nbsp;&nbsp;}<br />
<span style="background-color: #222222"><font color="#ddeeff">19 </font></span><br />
<span style="background-color: #222222"><font color="#ddeeff">20 </font></span>&nbsp;&nbsp;File temp = <font color="#ff6600">new</font>&nbsp;File(tempPomFile)<br />
<span style="background-color: #222222"><font color="#ddeeff">21 </font></span>&nbsp;&nbsp;temp.<font color="#ffcc00">write</font>&nbsp;writer.toString()<br />
<span style="background-color: #222222"><font color="#ddeeff">22 </font></span>&nbsp;&nbsp;<font color="#33aa00">def</font>&nbsp;pom =ant.<font color="#66ff00">&quot;</font><font color="#ffcc00">${antlibXMLns}</font><font color="#66ff00">:pom&quot;</font>&nbsp;(&nbsp;file : tempPomFile , id : tempPomFile )<br />
<span style="background-color: #222222"><font color="#ddeeff">23 </font></span>&nbsp;&nbsp;echo(<font color="#66ff00">&quot;Temporary pom file written to </font><font color="#ffcc00">${tempPomFile}</font><font color="#66ff00">, don&#8217;t forget to clean up&quot;</font>)<br />
<span style="background-color: #222222"><font color="#ddeeff">24 </font></span>&nbsp;&nbsp;<font color="#ff6600">return</font>&nbsp;tempPomFile<br />
<span style="background-color: #222222"><font color="#ddeeff">25 </font></span>}
</div>
<p>Then instead of calling ant.&#8221;${antlibXMLns}:install&#8221;, call ant.&#8221;${antlibXMLns}:deploy&#8221;</p>
<p>Couple of notes.  I did run into problems with my settings.xml file defined in ~/.m2, so I ended up creating one much like I did with the pom.xml.  Only used when deploying, so it is not built for the install.  Finally, because grails can only run one task per script, I DRYed up this whole thing with one file called MavenUtils that included all code for both install and deploy.  Then, my MavenInstall file just loads the MavenUtils and calls install.</p>
<p>Wow, more explanation than I thought it would.  And I guess the title is not entirely accurate.  I am using maven, but not by calling the maven executable directly.  Hopefully the new Maven/Grails integration will make this easier.  Fingers crossed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mjwall.com/2009/01/grails-and-maven-with-no-maven/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Groovy plugin patch for running Grails 1.1 Beta2 on Intellij 8.0.1</title>
		<link>http://www.mjwall.com/2009/01/groovy-plugin-patch-for-running-grails-11-beta2-on-intellij-801/</link>
		<comments>http://www.mjwall.com/2009/01/groovy-plugin-patch-for-running-grails-11-beta2-on-intellij-801/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 21:51:37 +0000</pubDate>
		<dc:creator>mjwall</dc:creator>
		
		<category><![CDATA[grails]]></category>

		<category><![CDATA[groovy]]></category>

		<category><![CDATA[intellij]]></category>

		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.mjwall.com/?p=96</guid>
		<description><![CDATA[My last attempt at running Grails 1.1 beta2 on IntelliJ 8.0.1 didn&#8217;t work out so well.  I ran the EAP version for a while, but had some issues building grails itself, specifically trying to run unit tests.
So, I did some digging through the bug tracker and subversion for the plugin.  I also spent [...]]]></description>
			<content:encoded><![CDATA[<p>My last <a href="http://www.mjwall.com/2008/12/intellij-801-issues-with-grails-11-beta2/">attempt</a> at running Grails 1.1 beta2 on IntelliJ 8.0.1 didn&#8217;t work out so well.  I ran the EAP version for a while, but had some issues building grails itself, specifically trying to run unit tests.</p>
<p>So, I did some digging through the <a href="http://www.jetbrains.net/jira/browse/GRVY">bug tracker</a> and <a href="http://svn.jetbrains.org/idea/Trunk/bundled/groovy/">subversion</a> for the <a href="http://plugins.intellij.net/plugin/?id=1524">plugin</a>.  I also spent some time learning about IntelliJ <a href="http://www.jetbrains.com/idea/documentation/howto_03.html?Where%20to%20Begin?">plugins</a> and reading newsgroups about what others <a href="http://www.jetbrains.net/devnet/thread/279026#279026">have</a> <a href="http://www.nabble.com/Intellij-IDEA-Jetgroovy-and-Grails-1.1-Beta-1-td20817716.html">tried</a>.  The result is a patched version of the plugin that seems to be working.  Here is the <a href="http://www.mjwall.com/files/jetgroovy-21543plus21697.zip">file</a> if you want to try it.  Unzip and replace the contents in your INTELLIJ_HOME/plugins/Groovy directory.  Again, use at your own risk and backup your existing plugins/Groovy directory.  </p>
<p>If you are interested, here are the details.</p>
<ul>
<li>Running on a Mac with java 1.5</li>
<li>Check out code from http://svn.jetbrains.org/idea/Trunk/bundled/groovy</li>
<li>Revert back to revision 21543.  21544 breaks something.  Revision 21538 fixed the initial issue I saw, where the grails-1.1-beta2 library was not recognized, as reported in <a href="http://www.jetbrains.net/jira/browse/GRVY-1933">GRVY-1933</a>.</li>
<li>Add in revision 21697, which fixes <a href="http://www.jetbrains.net/jira/browse/GRVY-1943">GRVY-1943</a> so the app can run.</li>
<li>Setup IntelliJ 8.0.1 build 9164 with the <a href="http://www.jetbrains.com/idea/download/index.html#kit">dev</a> package</li>
<li>Configure IntelliJ to build the plugin.  <a href="http://www.jetbrains.net/confluence/display/GRVY/How+to+build+plugin">These</a> instructions helped.  Groovy module configured to use Groovy-1.6_RC1.  RT module configured to use groovy-1.5.7, cause 1.6 didn&#8217;t work.</li>
<li>Build grammer with ant task, run Make and then run &#8216;Prepare All Plugin Modules for Deployment&#8217;.</li>
<li>Shutdown IntelliJ.</li>
<li>Remove INTELLIJ_HOME/plugins/Groovy directory.  Unzip groovy.zip in INTELLIJ_HOME/plugins directory</li>
<li>
</li>
<li>Restart IntelliJ</li>
</ul>
<p>Hope it works for you and Happy New Year.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mjwall.com/2009/01/groovy-plugin-patch-for-running-grails-11-beta2-on-intellij-801/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Intellij 8.0.1 issues with Grails 1.1 beta2</title>
		<link>http://www.mjwall.com/2008/12/intellij-801-issues-with-grails-11-beta2/</link>
		<comments>http://www.mjwall.com/2008/12/intellij-801-issues-with-grails-11-beta2/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 03:20:11 +0000</pubDate>
		<dc:creator>mjwall</dc:creator>
		
		<category><![CDATA[grails]]></category>

		<category><![CDATA[groovy]]></category>

		<category><![CDATA[intellij]]></category>

		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.mjwall.com/?p=79</guid>
		<description><![CDATA[Grails-1.1-beta2 does not work correctly with the jetgroovy plugin in intellij.  I am able to add a global library for Grails 1.1 beta2, but it not saved in the project facet.  The most apparent problem for me is that the &#8216;Run grails target&#8217; shortcut is not available.  See this thread and this [...]]]></description>
			<content:encoded><![CDATA[<p>Grails-1.1-beta2 does not work correctly with the jetgroovy plugin in intellij.  I am able to add a global library for Grails 1.1 beta2, but it not saved in the project facet.  The most apparent problem for me is that the &#8216;Run grails target&#8217; shortcut is not available.  See <a href="http://www.jetbrains.net/devnet/thread/278936?tstart=0">this</a> thread and this <a href="http://www.jetbrains.net/jira/browse/GRVY-1933?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel">bug</a> for more details.  According to the details, it is fixed.  However, I don&#8217;t see an update to the jetgroovy plugin.  I am running version 8.0.1 of Intellij on Mac OSX.</p>
<p>So I tried the <a href="http://www.jetbrains.net/confluence/display/IDEADEV/Diana+EAP">EAP</a> 9572 version to see if it included the fix that was reported in Jira.  The bundled jetgroovy plugin appears to have the update.  Yippee.  Glad I didn&#8217;t have to build it myself according to the <a href="http://www.jetbrains.net/confluence/display/GRVY/How+to+build+plugin">wiki</a>,</p>
<p>Here is the interesting part that you may care about.  I zipped up the plugins/Groovy folder and replaced the old version in Intellij 8.0.1.  It seems to have fixed it for the stable version as well.  <a href="http://www.mjwall.com/files/jetgroovy.zip">Here</a> is the file until JetBrains has something better.  Use at your own risk, perhaps making a backup of the old plugins/Groovy folder.</p>
<p><strong>UPDATE</strong> It appears there are issues with copying the plugin back to the 8.0.1 release.  Loading the file inside grails-app just hangs.  However, the EAP version is working just fine so far.  Let me know if you have success getting it work in the stable version.</p>
<p><strong>UPDATE 2</strong> See <a href="http://www.mjwall.com/2009/01/groovy-plugin-patch-for-running-grails-11-beta2-on-intellij-801/">this</a> for a patched version that works better.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mjwall.com/2008/12/intellij-801-issues-with-grails-11-beta2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Back to Java</title>
		<link>http://www.mjwall.com/2008/12/back-to-java/</link>
		<comments>http://www.mjwall.com/2008/12/back-to-java/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 14:23:43 +0000</pubDate>
		<dc:creator>mjwall</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.mjwall.com/?p=76</guid>
		<description><![CDATA[All good things must come to an end.  After doing Ruby development professionally for almost 2 years, I decided to change jobs and went back to my Java roots.
So I would like to detail some of the things I have missed noticed in the couple of months I have been back.
Productivity, everything just seems to [...]]]></description>
			<content:encoded><![CDATA[<p>All good things must come to an end.  After doing Ruby development professionally for almost 2 years, I decided to change jobs and went back to my Java roots.</p>
<p>So I would like to detail some of the things I have <span style="text-decoration: line-through;">missed</span> noticed in the couple of months I have been back.</p>
<p><strong>Productivity</strong>, everything just seems to take longer with Java.  Maybe I am just rusty, or maybe is the a combination of some of the other things listed here</p>
<p><strong>Convention</strong>, there are too many choices I have to make and too many things I have to decide that distract me from writing the code.  Before I went to Ruby, I was an ant guy.  Now I am using maven and I think I like it.  The out of the box convention just feels better.  Still not sure about the dependency management though</p>
<p><strong>Not needing an IDE</strong>, Vim and I have been friends for a long time and our friendship grew during my time as a Ruby developer.  Now that I am back to Java, I keep getting pulled toward an IDE again.  I used eclipse in the past, but I thinking I will go with IntelliJ.</p>
<p><strong>Libraries</strong>, I forgot how many libraries there are.  It is nice to have a choice, but it sure adds time.</p>
<p><strong>BDD/TDD</strong>, takes a lot longer.  I keep preaching, but it takes so much more effort the by in is just not there.</p>
<p><strong>IRB</strong>, wow do I miss you.</p>
<p><strong>Class Design</strong> is certainly different(better?)  I think part if it come trying to make to make things more testable and part of it comes from more focus on the DRY principle.</p>
<p>I&#8217;ll post more comments as I go.  Be on the lookout for Grails posts, as I just started rewriting a rest service with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mjwall.com/2008/12/back-to-java/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cruisecontrolrb, git and rails 2.1</title>
		<link>http://www.mjwall.com/2008/08/cruisecontrolrb-git-and-rails-21/</link>
		<comments>http://www.mjwall.com/2008/08/cruisecontrolrb-git-and-rails-21/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 23:44:06 +0000</pubDate>
		<dc:creator>mjwall</dc:creator>
		
		<category><![CDATA[cruisecontrol]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.mjwall.com/?p=25</guid>
		<description><![CDATA[I really love cruisecontrol.rb in a team environment.  The ability to run tests against every commit is great, and it is such fun being the &#8220;build police&#8221;.
Excuse me sir, can I see your license to commit please?
We can have some fun with that one.
This license expired just before the dotcom bubble
You have a languague restriction [...]]]></description>
			<content:encoded><![CDATA[<p>I really love cruisecontrol.rb in a team environment.  The ability to run tests against every commit is great, and it is such fun being the &#8220;build police&#8221;.</p>
<blockquote><p>Excuse me sir, can I see your license to commit please?</p></blockquote>
<p>We can have some fun with that one.</p>
<blockquote><p>This license expired just before the dotcom bubble</p></blockquote>
<blockquote><p>You have a languague restriction here that says you can commit only while wearing vb.net</p></blockquote>
<blockquote><p>I need to see some proof of build collision insurance.</p></blockquote>
<p>But I digress. Sorry, back to the program.</p>
<p>As rails grows, I have some questions.</p>
<ol>
<li>Where the heck is code for cruise control?</li>
<li>Can I use git?</li>
<li>Will it run against rails 2.1 since I am security conscience and have updated after the recent <a href="http://www.ruby-lang.org/en/news/2008/06/20/arbitrary-code-execution-vulnerabilities/">warnings</a> and <a href="http://www.ruby-lang.org/en/news/2008/08/08/multiple-vulnerabilities-in-ruby/">threats</a>?
</li>
</ol>
<p>Let&#8217;s do some research.  The code used to be at <a href="http://rubyforge.org/projects/cruisecontrolrb/">rubyforge</a>.  Looks like the code is still there.  However, according to this <a href="http://rubyforge.org/pipermail/cruisecontrolrb-users/2008-August/000560.html">post</a>, they are moving to github.  The link in that post has an extra *, but sure enough, you can find cruisecontrol.rb at <a href="http://github.com/thoughtworks/cruisecontrol.rb">http://github.com/thoughtworks/cruisecontrol.rb</a>.  Cool, now I know where to get it.</p>
<p>What about git support?  A <a href="http://www.google.com/search?hl=en&amp;q=cruisecontrolrb+git&amp;btnG=Google+Search">google search</a>, turns up <a href="http://github.com/benburkert/cruisecontrolrb/tree/master">benburkert</a>&#8217;s github branch.  Looks promising.  Searching git hub for <a href="http://github.com/search?q=cruisecontrolrb">cruisecontrol.rb</a> shows several forks, but these are all from rubyforge git.  I want it straight from thoughtworks.  Digging a little in the code shows it is already in the thoughtworks master.  There is even a mercurial adapter.  Let&#8217;s give it a try.  Sure enough, it works just fine with</p>
<pre>cruise add projectname -r file:///home/me/src/gitproject -s git</pre>
<p>Run</p>
<pre>cruise help add</pre>
<p>for all the options.</p>
<p>Great, 2 for 2.  Now what about support for Rails 2.1?   Unfortunately, it is not there.  Cruisecontrol.rb currently runs with rails 1.2.3, and a simple version change in environment.rb doesn&#8217;t fix it.  (Didn&#8217;t figure it would but I had to try it right?)   For all of us who have updated to ruby 1.8.7, we are stuck for now.  Ruby 1.8.7 only runs rails 2.1.  My <a href="http://www.mjwall.com/2008/08/multiple-versions-of-ruby-with-stow/">last</a> post about multiple version of ruby doesn&#8217;t really help either.</p>
<p>I did find this post answered by the team about porting cruisecontrol to <a href="http://www.nabble.com/Re:-Plans-to-upgrade-to-Rails-2.1--td18115378.html">merb</a>.  That sounds interesting indeed.</p>
<p>Until then, who is working on a rails 2.1 version of cruisecontrol.rb?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mjwall.com/2008/08/cruisecontrolrb-git-and-rails-21/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Multiple versions of ruby with stow</title>
		<link>http://www.mjwall.com/2008/08/multiple-versions-of-ruby-with-stow/</link>
		<comments>http://www.mjwall.com/2008/08/multiple-versions-of-ruby-with-stow/#comments</comments>
		<pubDate>Sat, 16 Aug 2008 22:48:24 +0000</pubDate>
		<dc:creator>mjwall</dc:creator>
		
		<category><![CDATA[ruby]]></category>

		<category><![CDATA[stow]]></category>

		<guid isPermaLink="false">http://www.mjwall.com/?p=49</guid>
		<description><![CDATA[
What is the best way to support multiple versions of ruby?
Some options:

Multiruby looks like it may do what I want.  I already have it installed, because I am autotest-addicted (first coined by Dr Nic.
Michael Greenly posted this, which would work since I am running ubuntu.
A buddy recommended GNU Stow.


I chose to use stow.  [...]]]></description>
			<content:encoded><![CDATA[<div>
<div>What is the best way to support multiple versions of ruby?</div>
<div>Some options:</p>
<ul>
<li><a href="http://www.zenspider.com/ZSS/Products/ZenTest/#rsn">Multiruby</a> looks like it may do what I want.  I already have it installed, because I am autotest-addicted (first coined by <a href="http://drnicwilliams.com/2008/02/19/one-stop-javascript-unit-testing-for-rails2/">Dr Nic</a>.</li>
<li>Michael Greenly posted <a href="http://blog.michaelgreenly.com/2007/12/multiple-ruby-version-on-ubuntu.html">this</a>, which would work since I am running ubuntu.</li>
<li>A buddy recommended <a href="http://www.gnu.org/software/stow/manual.html">GNU Stow</a>.</li>
</ul>
</div>
<div>I chose to use stow.  Call me old fashion, but I really prefer doing things be hand.  I didn&#8217;t like the thought of having to type ruby1.8.6 vs ruby1.8.7 proposed by Michael Greenly, but I did pick up a few things from his article.  I am interested in the testing against multiple version like multiruby provides.  However, the main reason I want different ruby installs is because different clients have different environments.  So here is how I did it.  For reference, I am using Ubuntu 8.0.4.</div>
<div>
<ol>
<li> <strong>Remove all ubuntu ruby packages.</strong>
<div>Use</p>
<pre>dpkg --list | grep -i ruby</pre>
<p>to find all the packages you have installed.  Then use</p>
<pre>sudo apt-get remove <em>packagename</em></pre>
<p>to remove those packages.  We are going to build all of these by hand.</p></div>
</li>
<li> <strong>Make sure you have the ubuntu build packages</strong>
<div>Run the following to make sure you have packages necessary to build ruby with</p>
<pre>sudo apt-get build-dep ruby1.8</pre>
<p>This will install stuff like autoconf and automake if you don&#8217;t already have them.</p></div>
</li>
<li> <strong>Setup your filesystem for stow.</strong>
<div>Let&#8217;s first make a directory under /usr/local named stow with</p>
<pre>sudo mkdir /usr/local/stow</pre>
<p>We will install everything here and then use stow to create symlinks in /usr/local/bin. Also, change the directory permission for /usr/local/stow so you can install stuff there as your user.  This has the added benefit of alerting you if you configure wrong or try to overwrite something.  We will only need to sudo to run the stow command.  Run the following to see what groups you are in</p>
<pre>groups username</pre>
<p>Hopefully there will be a dev or adm or something similiar.  I will use the adm group.  Run the following to change the group and permissions on /usr/local/stow.</p>
<pre>sudo chgrp -R adm /usr/local/stow</pre>
<p>and</p>
<pre>chmod -R 775 /usr/local/stow</pre>
</div>
</li>
<li> <strong>Install stow</strong>
<div>Download the stow package with from ftp://mirrors.kernel.org/gnu/stow/stow-1.3.3.tar.gz.  Then</p>
<pre>tar -zxf stow-1.3.3.tar.gz</pre>
<p>to extract everything.  Go into the directory and then run the following.</p>
<pre>./configure --prefix=/usr/local</pre>
<p>Then install it with make and sudo make install</p>
<p>I considered installing stow under the stow directory but figured it was overkill</p></div>
</li>
<li> <strong>Install ruby1.8.6</strong>
<div>Get the code with from ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.6-p287.tar.gz.  Unzip and cd into the directory.  Run</p>
<pre>./configure --prefix=/usr/local/stow/ruby-1.8.6-p287</pre>
<p>and then</p>
<pre>make &amp;&amp; make install</pre>
<p>You shouldn&#8217;t need to sudo if you have the permissions correct.  Run</p>
<pre>make install-doc</pre>
<p>if you want ri and rdoc, but it takes a while.</p></div>
</li>
<li> <strong>Install ruby1.8.7</strong>
<div>Much like the 1.8.6 version, get the code with ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.7-p72.tar.gz Unzip and cd into the directory.  Run</p>
<pre>./configure --prefix=/usr/local/stow/ruby-1.8.7-p72</pre>
<p>and then</p>
<pre>make &amp;&amp; make install</pre>
<p>Again run</p>
<pre>make install-doc</pre>
<p>if you want.</p></div>
</li>
<li> <strong>Update your path</strong>
<div>Make sure that /usr/local/bin is on your path.  Since we don&#8217;t have ruby installed anywhere else, you can put it at the end.  You could put it earlier if you have other versions installed.</p>
<pre>echo $PATH</pre>
<p>to see if you already have it.  If not, go to your .bashrc and add it where ever PATH is exported.</p></div>
</li>
<li> <strong>Run stow</strong>
<div>Lets set up ruby 1.8.7.  Change to the /usr/local/stow directory and run</p>
<pre>sudo stow ruby-1.8.7-p72</pre>
<p>All the symlinks are created for you.</p></div>
</li>
<li> <strong>Install rubygems, gems and then stow again</strong>
<div>Running</p>
<pre>ruby -v</pre>
<p>should show you it is version 1.8.7.  You will need to install rubygems now. Get it from http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz and then extract it into a directory. Change into that directory and run</p>
<pre>ruby setup.rb</pre>
<p>Now rubygems is installed in the ruby directory, but you will need run stow again.  Change to /usr/local/stow and run</p>
<pre>sudo stow ruby-1.8.7-p87</pre>
<p>Running the command</p>
<pre>which gem</pre>
<p>should show you have it installed.  You can now install gems like mongrel, rails etc.  When you finish installing gems, be sure to run stow again so it will symlink the executables.</p></div>
</li>
</ol>
</div>
<div>That&#8217;s it. Switching to ruby 1.8.6 is easy.  Go to /usr/local/stow and run</div>
<div>
<pre>stow -D ruby-1.8.7-p22 &amp;&amp; stow -R ruby-1.8.6-p287</pre>
<p>The -D removes all the symlinks.  Run the following to see all the options for stow</p>
<pre>stow -h</pre>
<p>Follow the instructions above to setup rubygems and all the gems again.  Remember to rerun stow so the executable are symlinked.  After you install the gems the first time, switching is simply a matter of stow -D and then stow -R.  Pretty clean and easy.</p></div>
<div>A great thing about stow is I can use it for other packages as well, like mysql or php.  I&#8217;ll note that ruby doesn&#8217;t have a</p>
<pre>make uninstall</pre>
<p>so it is ugly if you want to remove the packages.  With stow, all you have to do is remove the directory.</p></div>
<div>Notes:<br />
<span style="font-size: x-small;">I tried to cover most commands I used.  If you need more unix reference, try something like   <a href="http://www.ee.surrey.ac.uk/Teaching/Unix/index.html">this</a> or <a href="http://freeengineer.org/learnUNIXin10minutes.html">this</a>.  Google is your friend.</span></div>
<div><span style="font-size: x-small;"><br />
In addition to the articles linked above, I also read the following when writing this post <a href="http://blog.danieroux.com/2005/08/07/using-gnu-stow-to-manage-source-installs/">one</a> and <a href="http://www.linux.com/feature/127393">two</a></span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mjwall.com/2008/08/multiple-versions-of-ruby-with-stow/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Moving to Wordpress</title>
		<link>http://www.mjwall.com/2008/07/moving-to-wordpress/</link>
		<comments>http://www.mjwall.com/2008/07/moving-to-wordpress/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 01:20:41 +0000</pubDate>
		<dc:creator>mjwall</dc:creator>
		
		<category><![CDATA[rails]]></category>

		<category><![CDATA[typo]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://wordpress.velocidev/?p=18</guid>
		<description><![CDATA[Alright, I give.  Rails on shared hosting really sucks.  I&#8217;ve seen reports of success with Phusion Passenger, but my host doesn&#8217;t support it yet.  I wrote about my some of this issues I have had.  So welcome to wordpress.  Same theme, mostly, with less crashes.  Maybe this will encourage [...]]]></description>
			<content:encoded><![CDATA[<p>Alright, I give.  Rails on shared hosting really sucks.  I&#8217;ve seen reports of success with <a href="http://modrails.com/">Phusion Passenger</a>, but my <a href="http://refer.asmallorange.com/10815">host</a> doesn&#8217;t support it yet.  I wrote about my some of this <a href="/?p=13">issues</a> I have had.  So welcome to wordpress.  Same theme, mostly, with less crashes.  Maybe this will encourage me to write more.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mjwall.com/2008/07/moving-to-wordpress/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Merb Notes</title>
		<link>http://www.mjwall.com/2008/04/merb-notes/</link>
		<comments>http://www.mjwall.com/2008/04/merb-notes/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 17:55:00 +0000</pubDate>
		<dc:creator>mjwall</dc:creator>
		
		<category><![CDATA[merb]]></category>

		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">urn:uuid:32c1c3bc-e4aa-4a7c-8546-c370aa5f2dfa</guid>
		<description><![CDATA[Since my last post, I have been looking more and more at Merb.  Just some random notes

Looks like Merb 0.9.2 got some fcgi love. That is what I want to try to replace rails on my shared host.
Get on IRC if you need help &#8211; irc.freenode.net#merb.  Really, IRC.
If you can&#8217;t stay on IRC, [...]]]></description>
			<content:encoded><![CDATA[<p>Since my last post, I have been looking more and more at Merb.  Just some random notes</p>
<ul>
<li>Looks like Merb 0.9.2 got some fcgi <a href="http://github.com/wycats/merb-more/commit/b5467e5138b8c18c0c521a5fce5ea529f1a090d6">love</a>. That is what I want to try to replace rails on my shared host.</li>
<li>Get on <span class="caps">IRC</span> if you need help &#8211; irc.freenode.net#merb.  Really, <span class="caps">IRC</span>.</li>
<li>If you can&#8217;t stay on <span class="caps">IRC</span>, go to <a href="http://groups.google.com/group/merb">http://groups.google.com/group/merb</a> for a log</li>
<li>Use these <a href="http://www.gweezlebur.com/2008/3/1/quickie-sake-tasks-for-merb-hackers">sake</a> tasks if you are running the latest.  <code>sudo sake merb:update merb:install</code> will update core, more and plugins</li>
<li>merb-rspec is no longer in plugins, but included in core</li>
<li>Watch this from <a href="http://mtnwestrubyconf2008.confreaks.com/02zygmuntowicz.html">Confreaks</a>.  Worth the investment.</li>
<li>Most tutorials and articles are dated.  <a href="http://crazycool.co.uk/blog/2008/3/17/Adventures+in+Merb/">This</a> one helped though.</li>
</ul>
<p>Looking forward to more from merb&#8230;.</p>
<p><span class="caps">UPDATE</span>:  Having some trouble with typo&#8217;s caching.  Going to repost this article.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mjwall.com/2008/04/merb-notes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New laptop</title>
		<link>http://www.mjwall.com/2008/03/new-laptop/</link>
		<comments>http://www.mjwall.com/2008/03/new-laptop/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 02:19:00 +0000</pubDate>
		<dc:creator>mjwall</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">urn:uuid:70ae40f6-6875-449f-a386-09f1028e873d</guid>
		<description><![CDATA[One more quick post.  Last week I purchased an inexpensive (shall I say cheap) laptop from WalMart.  It is a Toshiba A215-S5808.  I booted once in Vista to burn a cd and them immediately installed Ubuntu 7.10.  Almost all my hardware was recognized, except the wireless and sound.  This post [...]]]></description>
			<content:encoded><![CDATA[<p>One more quick post.  Last week I purchased an inexpensive (shall I say cheap) laptop from WalMart.  It is a <a href="http://www.toshibadirect.com/td/b2c/rdet.jsp?poid=404159&#38;seg=HHO">Toshiba <span class="caps">A215</span>-S5808</a>.  I booted once in Vista to burn a cd and them immediately installed <a href="http://www.ubuntu.com/">Ubuntu 7.10</a>.  Almost all my hardware was recognized, except the wireless and sound.  This <a href="http://www.datanorth.net/~cuervo/blog/linux-on-the-satellite-a215-s7407/">post</a> was very helpful in resolving those issues.  It&#8217;s only been a week, but I keep asking myself, &#8220;Why did I code so long in Windows&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mjwall.com/2008/03/new-laptop/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
