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

<channel>
	<title>kiss the sun and walk on air</title>
	<atom:link href="http://osi.fotap.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://osi.fotap.org</link>
	<description>my thoughts and my life. yes, another blog on the internet. who would have thought.</description>
	<lastBuildDate>Tue, 18 Aug 2009 01:32:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>adding a prefix to git svn repositories</title>
		<link>http://osi.fotap.org/2009/01/07/adding-a-prefix-to-git-svn-repositories/</link>
		<comments>http://osi.fotap.org/2009/01/07/adding-a-prefix-to-git-svn-repositories/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 19:06:24 +0000</pubDate>
		<dc:creator>osi</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://osi.fotap.org/?p=85</guid>
		<description><![CDATA[i finally took the plunge and started using git to manage my code. since we use subversion at work, i&#8217;m using git-svn to collaborate with them.
initially, i just followed the simple starting instructions, which don&#8217;t use the &#8211;prefix option to git svn init.
it wasn&#8217;t long before i saw someone&#8217;s suggestion to add a svn prefix [...]]]></description>
			<content:encoded><![CDATA[<p>i finally took the plunge and started using git to manage my code. since we use subversion at work, i&#8217;m using git-svn to collaborate with them.</p>
<p>initially, i just followed the simple starting instructions, which don&#8217;t use the <em>&#8211;prefix</em> option to <code>git svn init</code>.</p>
<p>it wasn&#8217;t long before i saw someone&#8217;s suggestion to add a <strong>svn</strong> prefix to the remote branch names.. as a way of segregating the namespace, and to easily allow me to have local branches that have the same name.</p>
<p>i searched around, but there weren&#8217;t any explicit instructions on how to add the prefix post-init. well, you can. here&#8217;s how.</p>
<p>in your <em>.git/config</em>, there will be a block for the SVN configuration:</p>
<blockquote>
<pre>
[svn-remote "svn"]
	url = http://example.com/your/repo/root
	fetch = trunk:refs/remotes<strong>/svn</strong>/trunk
	branches = branches/*:refs/remotes<strong>/svn</strong>/*
	tags = tags/*:refs/remotes<strong>/svn</strong>/tags/*
</pre>
</blockquote>
<p>what you will want to do is edit this file and add the <strong>/svn</strong> entries that i have in bold.</p>
<p>then, re-run <code>git svn fetch</code>. this will populate the new branches. thanks to the metadata git-svn keeps, its aware that there are already local commits that correspond to specific SVN revisions.</p>
<p>finally, you can delete all of the old branches using something like <code>git branch -d -r | grep -v svn | xargs -n 1 git branch -d -r</code></p>
<p>then sit back and bask in your new prefixed life <img src='http://osi.fotap.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://osi.fotap.org/2009/01/07/adding-a-prefix-to-git-svn-repositories/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>creating attached maven artifacts with gmaven</title>
		<link>http://osi.fotap.org/2008/12/12/creating-attached-maven-artifacts-with-gmaven/</link>
		<comments>http://osi.fotap.org/2008/12/12/creating-attached-maven-artifacts-with-gmaven/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 17:49:24 +0000</pubDate>
		<dc:creator>osi</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://osi.fotap.org/?p=84</guid>
		<description><![CDATA[We have been using the wonderful flex mojos to build some of our actionscript code.

i needed to publish a jar containing the asdocs, but alas, the asdoc plugin doesn&#8217;t contain an equivalent to the javadoc:jar goal from the javadoc plugin.

needing something immediately, GMaven to the rescue!
the below profile will generate an attached jar when running [...]]]></description>
			<content:encoded><![CDATA[<p>We have been using the wonderful <a href="http://code.google.com/p/flex-mojos">flex mojos</a> to build some of our actionscript code.
</p>
<p>i needed to publish a jar containing the asdocs, but alas, the asdoc plugin doesn&#8217;t contain an equivalent to the <a href="http://maven.apache.org/plugins/maven-javadoc-plugin/jar-mojo.html">javadoc:jar</a> goal from the javadoc plugin.
</p>
<p>needing something immediately, <a href="http://groovy.codehaus.org/GMaven">GMaven</a> to the rescue!</p>
<p>the below profile will generate an attached jar when running <code>mvn -P release</code></p>
<p><span id="more-84"></span></p>
<pre class="textmate-source"><span class="text text_xml"><span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">profiles</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
    <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">profile</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
        <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">id</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>release<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">id</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
        <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">build</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">plugins</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">plugin</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                    <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">groupId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>info.flex-mojos<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">groupId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                    <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">artifactId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>asdoc-mojo<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">artifactId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                    <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">executions</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                        <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">execution</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">phase</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>package<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">phase</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">id</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>attach-asdocs<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">id</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">goals</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                                <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">goal</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>asdoc<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">goal</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">goals</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                        <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">execution</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                    <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">executions</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">plugin</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">plugin</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                    <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">groupId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>org.codehaus.groovy.maven<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">groupId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                    <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">artifactId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>gmaven-plugin<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">artifactId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                    <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">version</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>1.0-rc-3<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">version</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                    <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">executions</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                        <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">execution</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">id</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>package-asdoc<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">id</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">phase</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>package<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">phase</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">goals</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                                <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">goal</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>execute<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">goal</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">goals</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">configuration</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                                <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">classpath</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                                    <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">classpath</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                                        <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">groupId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>org.codehaus.plexus<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">groupId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                                        <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">artifactId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>plexus-archiver<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">artifactId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                                    <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">classpath</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                                    <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">classpath</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                                        <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">groupId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>org.apache.maven<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">groupId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                                        <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">artifactId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>maven-archiver<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">artifactId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                                    <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">classpath</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                                <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">classpath</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                                <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">source</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                                    import org.codehaus.plexus.archiver.Archiver;
                                    import org.codehaus.plexus.archiver.jar.JarArchiver;
                                    import org.apache.maven.archiver.MavenArchiver;
                                    import org.apache.maven.archiver.MavenArchiveConfiguration;

                                    File asDocJar = new File(project.build.directory, "${project.build.finalName}-asdoc.jar")

                                    if( asDocJar.exists() ) asDocJar.delete()

                                    archiver = new MavenArchiver()
                                    archiver.archiver = new JarArchiver()
                                    archiver.outputFile = asDocJar
                                    archiver.archiver.addDirectory( new File(project.build.directory, "site/asdocs") )

                                    archive = new MavenArchiveConfiguration()
                                    archive.addMavenDescriptor = false

                                    archiver.createArchive( project, archive )

                                    helper = session.lookup("org.apache.maven.project.MavenProjectHelper")

                                    // need to attach to the *original* project
                                    // http://jira.codehaus.org/browse/MGROOVY-172
                                    project.class.getDeclaredField("original").accessible = true
                                    helper.attachArtifact( project.original, "zip", "asdoc", asDocJar )
                                <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">source</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">configuration</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                        <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">execution</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                    <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">executions</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
                <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">plugin</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">plugins</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
        <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">build</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>

        <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">dependencies</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">dependency</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
              <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">groupId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>org.codehaus.plexus<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">groupId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
              <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">artifactId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>plexus-archiver<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">artifactId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
              <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">version</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>1.0-alpha-7<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">version</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">dependency</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">dependency</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
              <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">groupId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>org.apache.maven<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">groupId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
              <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">artifactId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>maven-archiver<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">artifactId</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
              <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">version</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>2.3<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">version</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
            <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">dependency</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
        <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">dependencies</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
    <span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">profile</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
<span class="meta meta_tag meta_tag_xml"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_localname entity_name_tag_localname_xml">profiles</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_xml">&gt;</span></span>
</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://osi.fotap.org/2008/12/12/creating-attached-maven-artifacts-with-gmaven/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>running an x server during a bamboo (or other sort of automated) build</title>
		<link>http://osi.fotap.org/2008/10/29/running-an-x-server-during-a-bamboo-or-other-sort-of-automated-build/</link>
		<comments>http://osi.fotap.org/2008/10/29/running-an-x-server-during-a-bamboo-or-other-sort-of-automated-build/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 21:33:47 +0000</pubDate>
		<dc:creator>osi</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://osi.fotap.org/?p=83</guid>
		<description><![CDATA[so, you have your continuous integration system up and running. you&#8217;re using Bamboo from Atlassian since they rock. however, you have a need to run some tests that require an X server to be running (like flexunit tests).
if you were using Hudson, there&#8217;s a plugin that will start/stop Xvnc for you. there&#8217;s demand for a [...]]]></description>
			<content:encoded><![CDATA[<p>so, you have your continuous integration system up and running. you&#8217;re using <a href="http://www.atlassian.com/software/bamboo/">Bamboo</a> from Atlassian since they rock. however, you have a need to run some tests that require an X server to be running (like <a href="http://docs.flex-mojos.info/flex-compiler-mojo/test-run-mojo.html">flexunit</a> tests).</p>
<p>if you were using Hudson, there&#8217;s a <a href="http://hudson.gotdns.com/wiki/display/HUDSON/Xvnc+Plugin">plugin</a> that will start/stop Xvnc for you. there&#8217;s <a href="http://jira.atlassian.com/browse/BAM-1859">demand</a> for a Bamboo plugin, but nothing yet.</p>
<p>however, you don&#8217;t really need a plugin! if you&#8217;re using maven 2.0, drop these three lines into <strong>~/.mavenrc</strong>:</p>
<pre>
vncserver -kill :0
vncserver :0
export DISPLAY=:0
</pre>
<p>(be sure to run <strong>vncserver</strong> once as the user Bamboo runs as to set a password first).</p>
<p>then, when maven is launched, it will destroy the existing X session, start a new one, and set the display property properly. should anything go awry, you can always connect a VNC client to see the screen prior to the next build starting.</p>
<p>while it&#8217;d be nice to have it more automagic like what Hudson has, its easy enough to string a solution up <img src='http://osi.fotap.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://osi.fotap.org/2008/10/29/running-an-x-server-during-a-bamboo-or-other-sort-of-automated-build/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>electroserver 4.06</title>
		<link>http://osi.fotap.org/2008/10/25/electroserver-406/</link>
		<comments>http://osi.fotap.org/2008/10/25/electroserver-406/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 04:15:35 +0000</pubDate>
		<dc:creator>osi</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[electroank]]></category>

		<guid isPermaLink="false">http://osi.fotap.org/?p=82</guid>
		<description><![CDATA[today we released electroserver 4.06! from the release announcement:

You can now get through firewalls, opening your applications to the widest audience ever using the new HTTP connection option. If a client can&#8217;t successfully establish a socket connection with the server due to firewall security then HTTP connection can be used and it will just work. [...]]]></description>
			<content:encoded><![CDATA[<p>today we released <a href="http://electro-server.com/documentation/blog/2008/10/get-through-firewalls-with.html">electroserver 4.06</a>! from the release announcement:</p>
<blockquote><p>
You can now get through firewalls, opening your applications to the widest audience ever using the new HTTP connection option. If a client can&#8217;t successfully establish a socket connection with the server due to firewall security then HTTP connection can be used and it will just work. As a developer, the only difference in the way that you use the API is you will call createHttpConnection instead of createConnection. All other calls and events are identical!
</p></blockquote>
<p>the implementation wasn&#8217;t bad at all. due to the usage of <a href="http://mina.apache.org">mina</a> on the backend, it was very simple to plug in alternate frontend that wraps our existing protocol. i hacked and back-ported pieces of the mina 2.x branch http client code for a very simple http implementation that wraps the electroserver binary protocol as the request/response payloads. it was really just an extra link in the chain before the existing logic that expected the binary protocol on the wire directly. add in some support for storing messages for clients and voila. </p>
<p>due to how mina itself works, <a href="http://cometdaily.com/2007/11/06/comet-is-always-better-than-polling/">comet / long poll</a> support also &#8220;fell right out&#8221; of the implementation. this means that for message receipt, if there is an open channel, using http is just as performant as electroserver&#8217;s native binary protocol.</p>
<p>there was also another funny bug that i fixed that involved making a <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/locks/ReentrantLock.html">reentrantlock</a> <em>fair</em>. this was the first time i had personally witnessed the needed to use this option, but when dealing with the need to process things in-order where messages can arrive via multiple threads, its a lifesaver.</p>
]]></content:encoded>
			<wfw:commentRss>http://osi.fotap.org/2008/10/25/electroserver-406/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mac-friendly IntelliJ IDEA keyboard shortcuts</title>
		<link>http://osi.fotap.org/2008/08/13/mac-friendly-intellij-idea-keyboard-shortcuts/</link>
		<comments>http://osi.fotap.org/2008/08/13/mac-friendly-intellij-idea-keyboard-shortcuts/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 00:07:22 +0000</pubDate>
		<dc:creator>osi</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://osi.fotap.org/?p=81</guid>
		<description><![CDATA[I just read elharo&#8217;s IDEA criticisms, and since keyboard shortcuts are his main one, I thought I&#8217;d share the set I&#8217;ve been using for years in IDEA.
Like him, when I started using it on the Mac, they drove me nuts. Since this was back when Eclipse sucked mightily on the Mac, I remapped them all. [...]]]></description>
			<content:encoded><![CDATA[<p>I just read elharo&#8217;s <a href="http://www.cafeaulait.org/oldnews/news2008August12.html">IDEA criticisms</a>, and since keyboard shortcuts are his main one, I thought I&#8217;d share the set I&#8217;ve been using for years in IDEA.</p>
<p>Like him, when I started using it on the Mac, they drove me nuts. Since this was back when Eclipse sucked mightily on the Mac, I remapped them all. </p>
<p>You can download the file <a href="http://fotap.org/~osi/files/Modified%20OS%20X.xml">here</a>. Place it in your <em>~/Library/Preferences/IntelliJIDEA<strong>xx</strong>/keymaps</em> folder and restart IDEA.</p>
]]></content:encoded>
			<wfw:commentRss>http://osi.fotap.org/2008/08/13/mac-friendly-intellij-idea-keyboard-shortcuts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>making concurrent programming easier!</title>
		<link>http://osi.fotap.org/2008/08/12/making-concurrent-programming-easier/</link>
		<comments>http://osi.fotap.org/2008/08/12/making-concurrent-programming-easier/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 04:59:05 +0000</pubDate>
		<dc:creator>osi</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[electrotank]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://osi.fotap.org/?p=80</guid>
		<description><![CDATA[my job involves a lot of concurrency, since we specialize in infrastructure for multiplayer games.
i have a lot of ideas on how to simplify the programming model we expose to plugin developers, some of which i&#8217;ll be expanding upon at a later date.
but, to help achieve those goals, paul hammant turned me on to a [...]]]></description>
			<content:encoded><![CDATA[<p>my job involves a lot of concurrency, since <a href="http://electro-server.com">we</a> specialize in infrastructure for multiplayer games.</p>
<p>i have a lot of ideas on how to simplify the programming model we expose to plugin developers, some of which i&#8217;ll be expanding upon at a later date.</p>
<p>but, to help achieve those goals, <a href="http://paulhammant.com">paul hammant</a> turned me on to a library <a href="http://www.jroller.com/mrettig/">mike rettig</a> has ported from <a href="http://code.google.com/p/retlang/">.net</a>, <a href="http://code.google.com/p/jetlang/">jetlang</a>.</p>
<p>it reminds me a lot of the old <a href="http://excalibur.apache.org/event/">excalibur event</a> code that the avalon team worked on years ago.. trading sinks and sources for publishers and subscribers, the end goal is the same. i tried to revive the event code a month ago or so, but it felt to large.. not all of the functionality was really needed.</p>
<p>jetlang does it right.. its simple and focused, and will be an excellent base to build upon.</p>
<p>mike <a href="http://www.jroller.com/mrettig/entry/java_concurrency_library_release">posted</a> about a 0.1.3 release today. i&#8217;m fairly happy with the api, and i think mike is too. next thing i want to tackle is a maven build, to help bring it to a wider audience. then, time to build stuff on top of it!</p>
<p>anyways, <a href="http://code.google.com/p/jetlang/">go check it out</a>. <a href="http://groups.google.com/group/jetlang-dev">post a message</a> to the mailing list with your thoughts.</p>
]]></content:encoded>
			<wfw:commentRss>http://osi.fotap.org/2008/08/12/making-concurrent-programming-easier/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>open source for the win</title>
		<link>http://osi.fotap.org/2008/08/04/open-source-for-the-win/</link>
		<comments>http://osi.fotap.org/2008/08/04/open-source-for-the-win/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 04:10:48 +0000</pubDate>
		<dc:creator>osi</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[past]]></category>

		<guid isPermaLink="false">http://osi.fotap.org/?p=79</guid>
		<description><![CDATA[my former employer, pace systems group just got acquired for $21m. alas, i never got any stock, so no making out like a bandit for me.
however, what i found interesting was:
Why ePACE?  Olin indicates that a key attraction was the fact that the solution is based on an open source platform running on the [...]]]></description>
			<content:encoded><![CDATA[<p>my former employer, <a href="http://pace2020.com">pace systems group</a> just got <a href="http://members.whattheythink.com/home/080730sherburne-efi-acquisition-epace.cfm">acquired for $21m</a>. alas, i never got any stock, so no making out like a bandit for me.</p>
<p>however, what i found interesting was:</p>
<blockquote><p>Why ePACE?  Olin indicates that a key attraction was the fact that the solution is based on an open source platform running on the Linux operating system.</p></blockquote>
<p>as the lead architect of the system, reading this makes me proud. its using some very battle-tested technologies. <a href="http://avalon.apache.org/">apache avalon</a> as the component backbone (i bet its still running in the phoenix container!), <a href="http://cocoon.apache.org">cocoon</a> for the webapp, and all served up with <a href="http://jetty.mortbay.org">jetty</a>. we moved to an appliance model early on, shipping a <a href="http://debian.org">debian</a>-based machine that was turn-key</p>
<p>congratulations to the whole pace team, you guys did great!</p>
<p>edit: <a href="http://printceoblog.com/2008/07/efi-buys-pace-systems">another good article</a> (especially the comments) on the deal .. highlights what some of the customers liked about pace, and the industry in general.</p>
]]></content:encoded>
			<wfw:commentRss>http://osi.fotap.org/2008/08/04/open-source-for-the-win/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>svn 1.5.1 breaks maven release plugin?</title>
		<link>http://osi.fotap.org/2008/07/30/svn-151-breaks-maven-release-plugin/</link>
		<comments>http://osi.fotap.org/2008/07/30/svn-151-breaks-maven-release-plugin/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 03:12:39 +0000</pubDate>
		<dc:creator>osi</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://osi.fotap.org/?p=78</guid>
		<description><![CDATA[this morning i upgraded from subversion 1.5.0 to 1.5.1 via macports.
this afternoon, i tried to do a release of some software at work.. and the maven release plugin was failing! its a very odd error:

[INFO] Tagging release with the label release-0.4...
[INFO] Executing: svn --non-interactive copy --file /tmp/maven-scm-1130425261.commit . https://example.com/workstuff/release-0.4
[INFO] Working directory: /Users/osi/Documents/workstuff/trunk
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] [...]]]></description>
			<content:encoded><![CDATA[<p>this morning i upgraded from subversion 1.5.0 to 1.5.1 via macports.</p>
<p>this afternoon, i tried to do a release of some software at work.. and the maven release plugin was failing! its a very odd error:</p>
<p><code><br />
[INFO] Tagging release with the label release-0.4...<br />
[INFO] Executing: svn --non-interactive copy --file /tmp/maven-scm-1130425261.commit . https://example.com/workstuff/release-0.4<br />
[INFO] Working directory: /Users/osi/Documents/workstuff/trunk<br />
[INFO] ------------------------------------------------------------------------<br />
[ERROR] BUILD FAILURE<br />
[INFO] ------------------------------------------------------------------------<br />
[INFO] Unable to tag SCM<br />
Provider message:<br />
The svn tag command failed.<br />
Command output:<br />
svn: Commit failed (details follow):<br />
svn: File '/workstuff/tags/release-0.4/pom.xml' already exists<br />
</code></p>
<p>very weird. i tried executing that same command at the prompt, and got the same error. i did a <strong>svn up</strong>, and then it worked.. hrm. thankfully, macports makes it very easy to drop back to 1.5.0, and after i did that, maven was able to release no problem.</p>
<p><strong>UPDATE:</strong> using <em>2.0-beta-9</em> of the maven-release-plugin has a workaround for this issue.</p>
]]></content:encoded>
			<wfw:commentRss>http://osi.fotap.org/2008/07/30/svn-151-breaks-maven-release-plugin/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>dynamically installing agents in java 6</title>
		<link>http://osi.fotap.org/2008/06/27/dynamically-installing-agents-in-java-6/</link>
		<comments>http://osi.fotap.org/2008/06/27/dynamically-installing-agents-in-java-6/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 20:59:41 +0000</pubDate>
		<dc:creator>osi</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[instrumentation]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://osi.fotap.org/?p=77</guid>
		<description><![CDATA[so, you&#8217;ve found java.lang.instrument.Instrumentation. neat, huh?
now, rather than having to start your agent via the command line, wouldn&#8217;t it be neat to do what they suggest in the package javadocs and load an agent dynamically at runtime?
i had a hell of a time finding details on exactly how to do this. install an agent in [...]]]></description>
			<content:encoded><![CDATA[<p>so, you&#8217;ve found <a href="http://java.sun.com/javase/6/docs/api/java/lang/instrument/Instrumentation.html">java.lang.instrument.Instrumentation</a>. neat, huh?</p>
<p>now, rather than having to start your agent via the command line, wouldn&#8217;t it be neat to do what they suggest in <a href="http://java.sun.com/javase/6/docs/api/java/lang/instrument/package-summary.html">the package javadocs</a> and load an agent dynamically at runtime?</p>
<p>i had a hell of a time finding details on exactly how to do this. install an agent in another vm? sure. current vm? nah.</p>
<p>in randomly following links last night, i came across a <a href="http://iq80.com/2007/10/java-getpid.html">blog post from dain</a>, and it mentioned a getPid() routine that <a href="http://openjpa.apache.org/">OpenJPA</a> uses. this tickled my memory, and i went looking for the class that uses it. i found the <a href="http://fisheye6.atlassian.com/browse/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/InstrumentationFactory.java?r=trunk">InstrumentationFactory</a> from the OpenJPA code. jackpot!</p>
<p>what they do, is use the <a href="http://java.sun.com/javase/6/docs/technotes/guides/attach/index.html">Attach API</a> that Sun added in Java 6 to dynamically load an agent. They had to do a trick in order to figure out the current PID, but with that, no problem!</p>
<p>i did need to make some tweaks to their code to have it load in my environment. if you&#8217;re working in an environment with dynamic class loaders, when the class is loaded as an agent, it will be a new instance and thus not visible to the factory as-is. to get around this, split the factory into two pieces. the agent, and the factory. the factory does not use the agent at all, it always accesses it reflectively. then, after the agent has been loaded, use <code>Class.forName("your.agent.class.name", true, ClassLoader.getSystemClassLoader() )</code> to get the instance. reflectively load the stored instrumentation and bingo!</p>
]]></content:encoded>
			<wfw:commentRss>http://osi.fotap.org/2008/06/27/dynamically-installing-agents-in-java-6/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>and now for something completely different</title>
		<link>http://osi.fotap.org/2008/05/31/and-now-for-something-completely-different/</link>
		<comments>http://osi.fotap.org/2008/05/31/and-now-for-something-completely-different/#comments</comments>
		<pubDate>Sat, 31 May 2008 15:28:19 +0000</pubDate>
		<dc:creator>osi</dc:creator>
				<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[changes]]></category>
		<category><![CDATA[electrotank]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[radar]]></category>

		<guid isPermaLink="false">http://osi.fotap.org/?p=76</guid>
		<description><![CDATA[yesterday was my last day at radar networks. i had been there for 31 months. (incidentally, i&#8217;ll be 31 years old in a few months as well).  
i&#8217;ve learned a lot working there; it was the first venture-funded startup i had worked for. i got to see the team grow from around 5 to [...]]]></description>
			<content:encoded><![CDATA[<p>yesterday was my last day at <a href="http://www.radarnetworks.com/">radar networks</a>. i had been there for 31 months. (incidentally, i&#8217;ll be 31 years old in a few months as well).  </p>
<p>i&#8217;ve learned a lot working there; it was the first venture-funded startup i had worked for. i got to see the team grow from around 5 to the current 20-something. my co-workers and teammates were all immensely skilled in areas different than i, so it was a great experience to witness how they did what they did. we worked like mad to get <a href="http://twine.com">twine</a> launched. i now leave it in their capable hands to allow it to grow and mature. keep an eye on it, there are a lot of cool ideas that should be surfacing in the next few months.</p>
<p>the completely different thing is going to work for a gaming company, <a href="http://www.electro-server.com/">electrotank</a>. i&#8217;m not much of a gamer myself (aside from lots of <a href="http://www.mariokart.com">mario kart</a>. comment if you&#8217;ve got it on the wii as well so we can play!), </p>
<p>it will be an opportunity to learn about an entirely different industry. what i&#8217;ll be doing is of course what i&#8217;m good at, helping architect/design/build the back-end systems for maintainability and scaling. their core product is built on <a href="http://mina.apache.org">apache mina</a>, so this will also allow me to spend more time with the community than i had in the past year.</p>
<p>i wish all my past radar colleagues the best, look forward to meeting all my new teammates, and tackling the fun challenges ahead!</p>
]]></content:encoded>
			<wfw:commentRss>http://osi.fotap.org/2008/05/31/and-now-for-something-completely-different/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

