<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>m i k e  b r e v o o r t</title>
	
	<link>http://mike.brevoort.com</link>
	<description>life technology etc</description>
	<lastBuildDate>Thu, 04 Feb 2010 14:57:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/MIKEBREVOORT" /><feedburner:info uri="mikebrevoort" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>DOSUG Solr in 5 Minutes Ingnite Presentation</title>
		<link>http://feedproxy.google.com/~r/MIKEBREVOORT/~3/sEBdzy2iL2o/</link>
		<comments>http://mike.brevoort.com/2010/02/04/dosug-solr-in-5-minutes-ingnite-presentation/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 14:57:41 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dosug]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[solr]]></category>

		<guid isPermaLink="false">http://mike.brevoort.com/?p=229</guid>
		<description><![CDATA[On Tuesday (2/2/2010) I participated in the Denver Open Source User Group&#8217;s first Ignite night. My presentation was an quick overview of Solr, the java based open-source search engine.  This was my first Ignite style presentation, and the format is challenging! The presentations were each 5 minutes with a 20 slide deck auto advancing [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmike.brevoort.com%2F2010%2F02%2F04%2Fdosug-solr-in-5-minutes-ingnite-presentation%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmike.brevoort.com%2F2010%2F02%2F04%2Fdosug-solr-in-5-minutes-ingnite-presentation%2F" height="61" width="51" /></a></div><p>On Tuesday (2/2/2010) I participated in the <a href="http://www.denveropensource.org/">Denver Open Source User Group&#8217;s</a> first Ignite night. My presentation was an quick overview of <a href="http://lucene.apache.org/solr/">Solr</a>, the java based open-source search engine.  This was my first Ignite style presentation, and the format is challenging! The presentations were each 5 minutes with a 20 slide deck auto advancing every 15 seconds. I stumbled a bit out of the gate with the cold start but was able to get it back on the rails though I felt as if I was trying to dig myself out of quicksand through the rest of it. Overall it was a lot of fun.</p>
<p>The room was packed, somewhere in the neighborhood of 100 people, and overall the quality of the presentations were very good. You can check out the <a href="http://www.slideshare.net/group/denver-open-source-users-group">slide decks on Slideshare here</a>. Here are my slides:</p>
<p style="text-align: center;"><object type="application/x-shockwave-flash" data="http://static.slideshare.net/swf/ssplayer2.swf?doc=id=3050502&amp;doc=11-brevoort-solr-dosug-ignite-100201194603-phpapp01" width="425" height="348"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=id=3050502&amp;doc=11-brevoort-solr-dosug-ignite-100201194603-phpapp01" ></object></p>
<p>And here is a dry-run of my presentation I recorded while practicing the day of:</p>
<p style="text-align: center;"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/ClhrrPzJWmI&#038;fs=1" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed src="http://www.youtube.com/v/ClhrrPzJWmI&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>


<!-- Begin SexyBookmarks Menu Code -->
<div class="sexy-bookmarks sexy-bookmarks-expand sexy-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="sexy-facebook">
			<a href="http://www.facebook.com/share.php?u=http://mike.brevoort.com/2010/02/04/dosug-solr-in-5-minutes-ingnite-presentation/&amp;t=DOSUG+Solr+in+5+Minutes+Ingnite+Presentation" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="sexy-twitter">
			<a href="http://twitter.com/home?status=DOSUG+Solr+in+5+Minutes+Ingnite+Presentation+-+http://bit.ly/dxXUL1+(via+@mbrevoort)" rel="nofollow" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="sexy-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://mike.brevoort.com/2010/02/04/dosug-solr-in-5-minutes-ingnite-presentation/&amp;title=DOSUG+Solr+in+5+Minutes+Ingnite+Presentation&amp;summary=On%20Tuesday%20%282%2F2%2F2010%29%20I%20participated%20in%20the%20Denver%20Open%20Source%20User%20Group%27s%20first%20Ignite%20night.%20My%20presentation%20was%20an%20quick%20overview%20of%20Solr%2C%20the%20java%20based%20open-source%20search%20engine.%20%20This%20was%20my%20first%20Ignite%20style%20presentation%2C%20and%20the%20format%20is%20challenging%21%20The%20presentations%20were%20each%205%20minutes%20&amp;source=m i k e  b r e v o o r t" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a>
		</li>
		<li class="sexy-friendfeed">
			<a href="http://www.friendfeed.com/share?title=DOSUG+Solr+in+5+Minutes+Ingnite+Presentation&amp;link=http://mike.brevoort.com/2010/02/04/dosug-solr-in-5-minutes-ingnite-presentation/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="sexy-technorati">
			<a href="http://technorati.com/faves?add=http://mike.brevoort.com/2010/02/04/dosug-solr-in-5-minutes-ingnite-presentation/" rel="nofollow" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="sexy-delicious">
			<a href="http://del.icio.us/post?url=http://mike.brevoort.com/2010/02/04/dosug-solr-in-5-minutes-ingnite-presentation/&amp;title=DOSUG+Solr+in+5+Minutes+Ingnite+Presentation" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="sexy-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://mike.brevoort.com/2010/02/04/dosug-solr-in-5-minutes-ingnite-presentation/&amp;submitHeadline=DOSUG+Solr+in+5+Minutes+Ingnite+Presentation&amp;submitSummary=On%20Tuesday%20%282%2F2%2F2010%29%20I%20participated%20in%20the%20Denver%20Open%20Source%20User%20Group%27s%20first%20Ignite%20night.%20My%20presentation%20was%20an%20quick%20overview%20of%20Solr%2C%20the%20java%20based%20open-source%20search%20engine.%20%20This%20was%20my%20first%20Ignite%20style%20presentation%2C%20and%20the%20format%20is%20challenging%21%20The%20presentations%20were%20each%205%20minutes%20&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="sexy-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://mike.brevoort.com/2010/02/04/dosug-solr-in-5-minutes-ingnite-presentation/&amp;title=DOSUG+Solr+in+5+Minutes+Ingnite+Presentation" rel="nofollow" title="Digg this!">Digg this!</a>
		</li>
		<li class="sexy-mail">
			<a href="mailto:?subject=%22DOSUG%20Solr%20in%205%20Minutes%20Ingnite%20Presentation%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22On%20Tuesday%20%282%2F2%2F2010%29%20I%20participated%20in%20the%20Denver%20Open%20Source%20User%20Group%27s%20first%20Ignite%20night.%20My%20presentation%20was%20an%20quick%20overview%20of%20Solr%2C%20the%20java%20based%20open-source%20search%20engine.%20%20This%20was%20my%20first%20Ignite%20style%20presentation%2C%20and%20the%20format%20is%20challenging%21%20The%20presentations%20were%20each%205%20minutes%20%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://mike.brevoort.com/2010/02/04/dosug-solr-in-5-minutes-ingnite-presentation/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>
<!-- End SexyBookmarks Menu Code -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=sEBdzy2iL2o:RRNVpTFBu5I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=sEBdzy2iL2o:RRNVpTFBu5I:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=sEBdzy2iL2o:RRNVpTFBu5I:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=sEBdzy2iL2o:RRNVpTFBu5I:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=sEBdzy2iL2o:RRNVpTFBu5I:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MIKEBREVOORT/~4/sEBdzy2iL2o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mike.brevoort.com/2010/02/04/dosug-solr-in-5-minutes-ingnite-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mike.brevoort.com/2010/02/04/dosug-solr-in-5-minutes-ingnite-presentation/</feedburner:origLink></item>
		<item>
		<title>Annotations with Grails</title>
		<link>http://feedproxy.google.com/~r/MIKEBREVOORT/~3/4yg5C5U3_xs/</link>
		<comments>http://mike.brevoort.com/2009/12/29/annotations-with-grails/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 04:18:13 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Grails]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[solr]]></category>

		<guid isPermaLink="false">http://mike.brevoort.com/?p=215</guid>
		<description><![CDATA[Recently I&#8217;ve been heads down writing a Grails Solr plugin for using Solr to index and search Grails domain objects, content and other documents. I share more on that in the next several day and weeks.  While doing so I implement annotations for the first time. In this example, I create an annotation type that [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmike.brevoort.com%2F2009%2F12%2F29%2Fannotations-with-grails%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmike.brevoort.com%2F2009%2F12%2F29%2Fannotations-with-grails%2F" height="61" width="51" /></a></div><p>Recently I&#8217;ve been heads down writing a Grails Solr plugin for using Solr to index and search Grails domain objects, content and other documents. I share more on that in the next several day and weeks.  While doing so I implement annotations for the first time. In this example, I create an annotation type that lets you annotate a class property to specify a custom Solr index field name.  In usage it looks like this:</p>
<pre class="brush: groovy">
import org.grails.plugins.solr.Solr
class aDomain {
  @Solr(field=&quot;thedomainstitle&quot;)
  String title
}
</pre>
<p>The imported class above is actually an interface that defines the annotation:</p>
<pre class="brush: groovy">
package org.grails.plugins.solr
import java.lang.annotation.*

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Solr {
  String field();
}
</pre>
<p>This is fairly self explanatory. The name of the annotation is &#8220;Solr&#8221; and there is one propery field with a value of String. Almost identical to the java equivalent.</p>
<p>Now to access the annotation value for the field, you simply need the get a reference to the annotation and call the method on it defined above: field(). So with a bit of context below, I define an indexSolr() method for each domain class, loop through each property and check if there is an annotation of Solr defined for the field, if so I set the value of field() to the docKey which is used as the Solr field name for the property.</p>
<pre class="brush: groovy">
application.domainClasses.each { dc -&gt;
  dc.metaClass.indexSolr &lt; &lt; { -&gt;
    //.......
    application.getArtefact(DomainClassArtefactHandler.TYPE, delegate.class.name).getProperties().each {
      //.......
      def theField = delegate.class.declaredFields.find{ field -&gt; field.name == it.name}

      if(theField.isAnnotationPresent(Solr)) {
        docKey = theField.getAnnotation(Solr).field()
      }
      //........
    }
    //........
  }
}
</pre>
<p>Powerful, yet simple.</p>


<!-- Begin SexyBookmarks Menu Code -->
<div class="sexy-bookmarks sexy-bookmarks-expand sexy-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="sexy-facebook">
			<a href="http://www.facebook.com/share.php?u=http://mike.brevoort.com/2009/12/29/annotations-with-grails/&amp;t=Annotations+with+Grails" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="sexy-twitter">
			<a href="http://twitter.com/home?status=Annotations+with+Grails+-+http://bit.ly/7WjVv9+(via+@mbrevoort)" rel="nofollow" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="sexy-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://mike.brevoort.com/2009/12/29/annotations-with-grails/&amp;title=Annotations+with+Grails&amp;summary=Recently%20I%27ve%20been%20heads%20down%20writing%20a%20Grails%20Solr%20plugin%20for%20using%20Solr%20to%20index%20and%20search%20Grails%20domain%20objects%2C%20content%20and%20other%20documents.%20I%20share%20more%20on%20that%20in%20the%20next%20several%20day%20and%20weeks.%20%C2%A0While%20doing%20so%20I%20implement%20annotations%20for%20the%20first%20time.%20In%20this%20example%2C%20I%20create%20an%20annotati&amp;source=m i k e  b r e v o o r t" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a>
		</li>
		<li class="sexy-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Annotations+with+Grails&amp;link=http://mike.brevoort.com/2009/12/29/annotations-with-grails/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="sexy-technorati">
			<a href="http://technorati.com/faves?add=http://mike.brevoort.com/2009/12/29/annotations-with-grails/" rel="nofollow" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="sexy-delicious">
			<a href="http://del.icio.us/post?url=http://mike.brevoort.com/2009/12/29/annotations-with-grails/&amp;title=Annotations+with+Grails" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="sexy-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://mike.brevoort.com/2009/12/29/annotations-with-grails/&amp;submitHeadline=Annotations+with+Grails&amp;submitSummary=Recently%20I%27ve%20been%20heads%20down%20writing%20a%20Grails%20Solr%20plugin%20for%20using%20Solr%20to%20index%20and%20search%20Grails%20domain%20objects%2C%20content%20and%20other%20documents.%20I%20share%20more%20on%20that%20in%20the%20next%20several%20day%20and%20weeks.%20%C2%A0While%20doing%20so%20I%20implement%20annotations%20for%20the%20first%20time.%20In%20this%20example%2C%20I%20create%20an%20annotati&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="sexy-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://mike.brevoort.com/2009/12/29/annotations-with-grails/&amp;title=Annotations+with+Grails" rel="nofollow" title="Digg this!">Digg this!</a>
		</li>
		<li class="sexy-mail">
			<a href="mailto:?subject=%22Annotations%20with%20Grails%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22Recently%20I%27ve%20been%20heads%20down%20writing%20a%20Grails%20Solr%20plugin%20for%20using%20Solr%20to%20index%20and%20search%20Grails%20domain%20objects%2C%20content%20and%20other%20documents.%20I%20share%20more%20on%20that%20in%20the%20next%20several%20day%20and%20weeks.%20%C2%A0While%20doing%20so%20I%20implement%20annotations%20for%20the%20first%20time.%20In%20this%20example%2C%20I%20create%20an%20annotati%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://mike.brevoort.com/2009/12/29/annotations-with-grails/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>
<!-- End SexyBookmarks Menu Code -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=4yg5C5U3_xs:grS5WPkgKZk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=4yg5C5U3_xs:grS5WPkgKZk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=4yg5C5U3_xs:grS5WPkgKZk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=4yg5C5U3_xs:grS5WPkgKZk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=4yg5C5U3_xs:grS5WPkgKZk:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MIKEBREVOORT/~4/4yg5C5U3_xs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mike.brevoort.com/2009/12/29/annotations-with-grails/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://mike.brevoort.com/2009/12/29/annotations-with-grails/</feedburner:origLink></item>
		<item>
		<title>Support ManeGait in Chase’s Facebook Community Giving Campaign</title>
		<link>http://feedproxy.google.com/~r/MIKEBREVOORT/~3/f4ojndRs9w0/</link>
		<comments>http://mike.brevoort.com/2009/11/19/210/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 17:14:26 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mike.brevoort.com/?p=210</guid>
		<description><![CDATA[My company Avalon Consulting LLC has done a lot of charitable work for ManeGait including developing and managing their website. They are an amazing non-profit therapeutic horsemanship center in Colin County, TX.  I encourage you to vote for ManeGait in Chase&#8217;s Facebook Community Giving Campaign!







		
			Share this on Facebook
		
		
			Tweet This!
		
		
			Share this on Linkedin
		
		
			Share this on FriendFeed
		
		
			Share this [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmike.brevoort.com%2F2009%2F11%2F19%2F210%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmike.brevoort.com%2F2009%2F11%2F19%2F210%2F" height="61" width="51" /></a></div><p>My company <a href="http://www.avalonconsult.com">Avalon Consulting LLC</a> has done a lot of charitable work for <a href="http://manegait.org">ManeGa</a>it including developing and managing their website. They are an amazing non-profit therapeutic horsemanship center in Colin County, TX.  I encourage you to vote for ManeGait in Chase&#8217;s <a href="http://apps.facebook.com/chasecommunitygiving/charities/192680?confirm_vote=true">Facebook Community Giving Campaign</a>!</p>
<p><a href="http://manegait.org"><img class="aligncenter size-medium wp-image-211" title="Mane Gate Logo" src="http://mike.brevoort.com/wp-content/uploads/2009/11/mg-logo3-300x98.gif" alt="Mane Gate Logo" width="300" height="98" /></a></p>
<p style="text-align: center;"><a href="http://apps.facebook.com/chasecommunitygiving/charities/192680?src=embed"><img class="aligncenter" src="http://a1.chase.contextoptional.com/images/vote_for_us.jpg?1258646587" alt="" /></a></p>


<!-- Begin SexyBookmarks Menu Code -->
<div class="sexy-bookmarks sexy-bookmarks-expand sexy-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="sexy-facebook">
			<a href="http://www.facebook.com/share.php?u=http://mike.brevoort.com/2009/11/19/210/&amp;t=Support+ManeGait+in+Chase%27s+Facebook+Community+Giving+Campaign" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="sexy-twitter">
			<a href="http://twitter.com/home?status=Support+ManeGait+in+Chase%27s+Facebook+Community+Giving+Campaign+-+http://bit.ly/4cPqTQ+(via+@mbrevoort)" rel="nofollow" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="sexy-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://mike.brevoort.com/2009/11/19/210/&amp;title=Support+ManeGait+in+Chase%27s+Facebook+Community+Giving+Campaign&amp;summary=My%20company%20Avalon%20Consulting%20LLC%20has%20done%20a%20lot%20of%20charitable%20work%20for%20ManeGait%C2%A0including%20developing%20and%20managing%20their%20website.%20They%20are%20an%20amazing%20non-profit%20therapeutic%20horsemanship%20center%20in%20Colin%20County%2C%20TX.%C2%A0%20I%20encourage%20you%20to%20vote%20for%20ManeGait%20in%20Chase%27s%20Facebook%20Community%20Giving%20Campaign%21%0D&amp;source=m i k e  b r e v o o r t" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a>
		</li>
		<li class="sexy-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Support+ManeGait+in+Chase%27s+Facebook+Community+Giving+Campaign&amp;link=http://mike.brevoort.com/2009/11/19/210/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="sexy-technorati">
			<a href="http://technorati.com/faves?add=http://mike.brevoort.com/2009/11/19/210/" rel="nofollow" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="sexy-delicious">
			<a href="http://del.icio.us/post?url=http://mike.brevoort.com/2009/11/19/210/&amp;title=Support+ManeGait+in+Chase%27s+Facebook+Community+Giving+Campaign" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="sexy-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://mike.brevoort.com/2009/11/19/210/&amp;submitHeadline=Support+ManeGait+in+Chase%27s+Facebook+Community+Giving+Campaign&amp;submitSummary=My%20company%20Avalon%20Consulting%20LLC%20has%20done%20a%20lot%20of%20charitable%20work%20for%20ManeGait%C2%A0including%20developing%20and%20managing%20their%20website.%20They%20are%20an%20amazing%20non-profit%20therapeutic%20horsemanship%20center%20in%20Colin%20County%2C%20TX.%C2%A0%20I%20encourage%20you%20to%20vote%20for%20ManeGait%20in%20Chase%27s%20Facebook%20Community%20Giving%20Campaign%21%0D&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="sexy-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://mike.brevoort.com/2009/11/19/210/&amp;title=Support+ManeGait+in+Chase%27s+Facebook+Community+Giving+Campaign" rel="nofollow" title="Digg this!">Digg this!</a>
		</li>
		<li class="sexy-mail">
			<a href="mailto:?subject=%22Support%20ManeGait%20in%20Chase%27s%20Facebook%20Community%20Giving%20Campaign%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22My%20company%20Avalon%20Consulting%20LLC%20has%20done%20a%20lot%20of%20charitable%20work%20for%20ManeGait%C2%A0including%20developing%20and%20managing%20their%20website.%20They%20are%20an%20amazing%20non-profit%20therapeutic%20horsemanship%20center%20in%20Colin%20County%2C%20TX.%C2%A0%20I%20encourage%20you%20to%20vote%20for%20ManeGait%20in%20Chase%27s%20Facebook%20Community%20Giving%20Campaign%21%0D%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://mike.brevoort.com/2009/11/19/210/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>
<!-- End SexyBookmarks Menu Code -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=f4ojndRs9w0:nL_ezqD1-_0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=f4ojndRs9w0:nL_ezqD1-_0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=f4ojndRs9w0:nL_ezqD1-_0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=f4ojndRs9w0:nL_ezqD1-_0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=f4ojndRs9w0:nL_ezqD1-_0:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MIKEBREVOORT/~4/f4ojndRs9w0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mike.brevoort.com/2009/11/19/210/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mike.brevoort.com/2009/11/19/210/</feedburner:origLink></item>
		<item>
		<title>A Fresh Start</title>
		<link>http://feedproxy.google.com/~r/MIKEBREVOORT/~3/fnPHXYeJnHI/</link>
		<comments>http://mike.brevoort.com/2009/11/19/a-fresh-start/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 07:22:46 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mike.brevoort.com/?p=205</guid>
		<description><![CDATA[Tonight I updated the theme on my blog with something that&#8217;s just more clean and fresh using the Green Park 2 theme by Cordobo, and  I added the Wordpress Mobile Pack theme plugin for user-agent based viewing on mobile devices. I replaced how I was pulling in my twitter feeds with the Wickett plugin, set up [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmike.brevoort.com%2F2009%2F11%2F19%2Fa-fresh-start%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmike.brevoort.com%2F2009%2F11%2F19%2Fa-fresh-start%2F" height="61" width="51" /></a></div><p>Tonight I updated the theme on my blog with something that&#8217;s just more clean and fresh using the <a href="http://cordobo.com/green-park-2">Green Park 2</a> theme by <a href="http://cordobo.com/">Cordobo</a>, and  I added the Wordpress Mobile Pack theme plugin for user-agent based viewing on mobile devices. I replaced how I was pulling in my twitter feeds with the <a href="http://wordpress.org/extend/plugins/wickett-twitter-widget/">Wickett</a> plugin, set up <a href="http://www.intensedebate.com/">IntenseDebate</a> for commenting and replaced my share icon set with <a href="http://wordpress.org/extend/plugins/sexybookmarks/">&#8220;Sexy Bookmarks&#8221;</a>. Wordpress has really come a long way! Super impressed by all of the amazing extensions available.</p>
<p>I hope to get back to a frequency of a post a week here. Though I haven&#8217;t posted here regularly, I have made a few contributions to <a href="http://thenextweb.com">thenextweb.com</a> including my latest post on <a href="http://thenextweb.com/2009/11/13/defrag-2009-retrospective/">my takeaways from the Defrag conference</a> here in Denver last week.</p>


<!-- Begin SexyBookmarks Menu Code -->
<div class="sexy-bookmarks sexy-bookmarks-expand sexy-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="sexy-facebook">
			<a href="http://www.facebook.com/share.php?u=http://mike.brevoort.com/2009/11/19/a-fresh-start/&amp;t=A+Fresh+Start" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="sexy-twitter">
			<a href="http://twitter.com/home?status=A+Fresh+Start+-+http://bit.ly/21yPI0+(via+@mbrevoort)" rel="nofollow" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="sexy-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://mike.brevoort.com/2009/11/19/a-fresh-start/&amp;title=A+Fresh+Start&amp;summary=Tonight%20I%20updated%20the%20theme%20on%20my%20blog%20with%20something%20that%27s%20just%20more%20clean%20and%20fresh%20using%20the%20Green%20Park%202%20theme%20by%20Cordobo%2C%20and%C2%A0%C2%A0I%20added%20the%20Wordpress%20Mobile%20Pack%20theme%20plugin%20for%20user-agent%20based%20viewing%20on%20mobile%20devices.%20I%20replaced%20how%20I%20was%20pulling%20in%20my%20twitter%20feeds%20with%20the%20Wickett%20plug&amp;source=m i k e  b r e v o o r t" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a>
		</li>
		<li class="sexy-friendfeed">
			<a href="http://www.friendfeed.com/share?title=A+Fresh+Start&amp;link=http://mike.brevoort.com/2009/11/19/a-fresh-start/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="sexy-technorati">
			<a href="http://technorati.com/faves?add=http://mike.brevoort.com/2009/11/19/a-fresh-start/" rel="nofollow" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="sexy-delicious">
			<a href="http://del.icio.us/post?url=http://mike.brevoort.com/2009/11/19/a-fresh-start/&amp;title=A+Fresh+Start" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="sexy-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://mike.brevoort.com/2009/11/19/a-fresh-start/&amp;submitHeadline=A+Fresh+Start&amp;submitSummary=Tonight%20I%20updated%20the%20theme%20on%20my%20blog%20with%20something%20that%27s%20just%20more%20clean%20and%20fresh%20using%20the%20Green%20Park%202%20theme%20by%20Cordobo%2C%20and%C2%A0%C2%A0I%20added%20the%20Wordpress%20Mobile%20Pack%20theme%20plugin%20for%20user-agent%20based%20viewing%20on%20mobile%20devices.%20I%20replaced%20how%20I%20was%20pulling%20in%20my%20twitter%20feeds%20with%20the%20Wickett%20plug&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="sexy-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://mike.brevoort.com/2009/11/19/a-fresh-start/&amp;title=A+Fresh+Start" rel="nofollow" title="Digg this!">Digg this!</a>
		</li>
		<li class="sexy-mail">
			<a href="mailto:?subject=%22A%20Fresh%20Start%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22Tonight%20I%20updated%20the%20theme%20on%20my%20blog%20with%20something%20that%27s%20just%20more%20clean%20and%20fresh%20using%20the%20Green%20Park%202%20theme%20by%20Cordobo%2C%20and%C2%A0%C2%A0I%20added%20the%20Wordpress%20Mobile%20Pack%20theme%20plugin%20for%20user-agent%20based%20viewing%20on%20mobile%20devices.%20I%20replaced%20how%20I%20was%20pulling%20in%20my%20twitter%20feeds%20with%20the%20Wickett%20plug%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://mike.brevoort.com/2009/11/19/a-fresh-start/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>
<!-- End SexyBookmarks Menu Code -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=fnPHXYeJnHI:PeIqIjVTPgs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=fnPHXYeJnHI:PeIqIjVTPgs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=fnPHXYeJnHI:PeIqIjVTPgs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=fnPHXYeJnHI:PeIqIjVTPgs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=fnPHXYeJnHI:PeIqIjVTPgs:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MIKEBREVOORT/~4/fnPHXYeJnHI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mike.brevoort.com/2009/11/19/a-fresh-start/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mike.brevoort.com/2009/11/19/a-fresh-start/</feedburner:origLink></item>
		<item>
		<title>This is Not Comcastic</title>
		<link>http://feedproxy.google.com/~r/MIKEBREVOORT/~3/hVJQhrV3jyU/</link>
		<comments>http://mike.brevoort.com/2009/10/10/this-is-not-comcastic/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 06:40:34 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[comcast]]></category>

		<guid isPermaLink="false">http://mike.brevoort.com/?p=194</guid>
		<description><![CDATA[I wrote a script that pings the IP of the first node outside of my house into Comcast&#8217;s network.  It pings every two seconds and logs when the connection is up or down based on the ping success.  Last week Comcast came and checked my line and said everything looked great and that [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmike.brevoort.com%2F2009%2F10%2F10%2Fthis-is-not-comcastic%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmike.brevoort.com%2F2009%2F10%2F10%2Fthis-is-not-comcastic%2F" height="61" width="51" /></a></div><p>I wrote a script that pings the IP of the first node outside of my house into Comcast&#8217;s network.  It pings every two seconds and logs when the connection is up or down based on the ping success.  Last week Comcast came and checked my line and said everything looked great and that it may be the onslaught of the cold weather. I&#8217;ve been working through Comcast support via Twitter which has been sporadic but convenient when they respond.  Today I couldn&#8217;t get a response from them (<a href="http://twitter.com/comcastmelissa">@comcastmelissa</a> and <a href="http://twitter.com/comcaststeve">@comcaststeve</a>) and today sucked:</p>
<blockquote>
<pre>Fri Oct 09 08:20:12 MDT 2009 DOWN!
Fri Oct 09 08:23:41 MDT 2009 UP
Fri Oct 09 09:31:39 MDT 2009 DOWN!
Fri Oct 09 09:31:39 MDT 2009 UP
Fri Oct 09 09:32:15 MDT 2009 DOWN!
Fri Oct 09 09:32:26 MDT 2009 UP
Fri Oct 09 09:33:27 MDT 2009 DOWN!
Fri Oct 09 09:33:27 MDT 2009 UP
Fri Oct 09 09:33:48 MDT 2009 DOWN!
Fri Oct 09 09:33:48 MDT 2009 UP
Fri Oct 09 09:34:14 MDT 2009 DOWN!
Fri Oct 09 09:34:14 MDT 2009 UP
Fri Oct 09 09:34:30 MDT 2009 DOWN!
Fri Oct 09 09:34:30 MDT 2009 UP
Fri Oct 09 09:34:56 MDT 2009 DOWN!
Fri Oct 09 09:34:56 MDT 2009 UP
Fri Oct 09 09:36:13 MDT 2009 DOWN!
Fri Oct 09 09:36:13 MDT 2009 UP
Fri Oct 09 09:37:24 MDT 2009 DOWN!
Fri Oct 09 09:37:46 MDT 2009 UP
Fri Oct 09 09:38:42 MDT 2009 DOWN!
Fri Oct 09 09:38:42 MDT 2009 UP
Fri Oct 09 09:39:28 MDT 2009 DOWN!
Fri Oct 09 09:39:51 MDT 2009 UP
Fri Oct 09 09:41:37 MDT 2009 DOWN!
Fri Oct 09 09:41:37 MDT 2009 UP
Fri Oct 09 09:42:43 MDT 2009 DOWN!
Fri Oct 09 09:42:43 MDT 2009 UP
Fri Oct 09 09:44:50 MDT 2009 DOWN!
Fri Oct 09 09:44:50 MDT 2009 UP
Fri Oct 09 09:45:21 MDT 2009 DOWN!
Fri Oct 09 09:45:21 MDT 2009 UP
Fri Oct 09 09:46:02 MDT 2009 DOWN!
Fri Oct 09 09:46:13 MDT 2009 UP
Fri Oct 09 09:47:25 MDT 2009 DOWN!
Fri Oct 09 09:47:25 MDT 2009 UP
Fri Oct 09 09:47:56 MDT 2009 DOWN!
Fri Oct 09 09:47:56 MDT 2009 UP
Fri Oct 09 09:48:22 MDT 2009 DOWN!
Fri Oct 09 09:48:22 MDT 2009 UP
Fri Oct 09 09:50:08 MDT 2009 DOWN!
Fri Oct 09 09:50:08 MDT 2009 UP
Fri Oct 09 09:51:40 MDT 2009 DOWN!
Fri Oct 09 09:51:40 MDT 2009 UP
Fri Oct 09 09:52:06 MDT 2009 DOWN!
Fri Oct 09 09:52:06 MDT 2009 UP
Fri Oct 09 09:52:37 MDT 2009 DOWN!
Fri Oct 09 09:52:37 MDT 2009 UP
Fri Oct 09 09:53:08 MDT 2009 DOWN!
Fri Oct 09 09:53:08 MDT 2009 UP
Fri Oct 09 09:53:44 MDT 2009 DOWN!
Fri Oct 09 09:53:44 MDT 2009 UP
Fri Oct 09 09:54:25 MDT 2009 DOWN!
Fri Oct 09 09:54:25 MDT 2009 UP
Fri Oct 09 09:54:51 MDT 2009 DOWN!
Fri Oct 09 09:54:51 MDT 2009 UP
Fri Oct 09 09:55:38 MDT 2009 DOWN!
Fri Oct 09 09:55:49 MDT 2009 UP
Fri Oct 09 09:57:00 MDT 2009 DOWN!
Fri Oct 09 09:57:00 MDT 2009 UP
Fri Oct 09 09:57:16 MDT 2009 DOWN!
Fri Oct 09 09:57:16 MDT 2009 UP
Fri Oct 09 09:57:42 MDT 2009 DOWN!
Fri Oct 09 09:57:42 MDT 2009 UP
Fri Oct 09 09:57:58 MDT 2009 DOWN!
Fri Oct 09 09:57:58 MDT 2009 UP
Fri Oct 09 09:58:39 MDT 2009 DOWN!
Fri Oct 09 09:59:12 MDT 2009 UP
Fri Oct 09 09:59:28 MDT 2009 DOWN!
Fri Oct 09 09:59:28 MDT 2009 UP
Fri Oct 09 09:59:55 MDT 2009 DOWN!
Fri Oct 09 10:00:17 MDT 2009 UP
Fri Oct 09 10:00:43 MDT 2009 DOWN!
Fri Oct 09 10:00:43 MDT 2009 UP
Fri Oct 09 10:02:24 MDT 2009 DOWN!
Fri Oct 09 10:02:24 MDT 2009 UP
Fri Oct 09 10:02:45 MDT 2009 DOWN!
Fri Oct 09 10:02:45 MDT 2009 UP
Fri Oct 09 10:03:11 MDT 2009 DOWN!
Fri Oct 09 10:03:11 MDT 2009 UP
Fri Oct 09 10:03:37 MDT 2009 DOWN!
Fri Oct 09 10:03:37 MDT 2009 UP
Fri Oct 09 10:04:14 MDT 2009 DOWN!
Fri Oct 09 10:04:25 MDT 2009 UP
Fri Oct 09 10:04:56 MDT 2009 DOWN!
Fri Oct 09 10:04:56 MDT 2009 UP
Fri Oct 09 10:05:12 MDT 2009 DOWN!
Fri Oct 09 10:05:12 MDT 2009 UP
Fri Oct 09 10:05:33 MDT 2009 DOWN!
Fri Oct 09 10:05:55 MDT 2009 UP
Fri Oct 09 10:06:11 MDT 2009 DOWN!
Fri Oct 09 10:06:11 MDT 2009 UP
Fri Oct 09 10:06:27 MDT 2009 DOWN!
Fri Oct 09 10:06:49 MDT 2009 UP
Fri Oct 09 10:07:05 MDT 2009 DOWN!
Fri Oct 09 10:07:05 MDT 2009 UP
Fri Oct 09 10:07:21 MDT 2009 DOWN!
Fri Oct 09 10:07:32 MDT 2009 UP
Fri Oct 09 10:07:48 MDT 2009 DOWN!
Fri Oct 09 10:07:59 MDT 2009 UP
Fri Oct 09 10:08:15 MDT 2009 DOWN!
Fri Oct 09 10:08:37 MDT 2009 UP
Fri Oct 09 10:08:53 MDT 2009 DOWN!
Fri Oct 09 10:08:53 MDT 2009 UP
Fri Oct 09 10:09:14 MDT 2009 DOWN!
Fri Oct 09 10:09:14 MDT 2009 UP
Fri Oct 09 10:10:10 MDT 2009 DOWN!
Fri Oct 09 10:10:11 MDT 2009 UP
Fri Oct 09 10:10:37 MDT 2009 DOWN!
Fri Oct 09 10:10:37 MDT 2009 UP
Fri Oct 09 10:11:38 MDT 2009 DOWN!
Fri Oct 09 10:11:38 MDT 2009 UP
Fri Oct 09 10:13:04 MDT 2009 DOWN!
Fri Oct 09 10:13:04 MDT 2009 UP
Fri Oct 09 10:14:21 MDT 2009 DOWN!
Fri Oct 09 10:14:21 MDT 2009 UP
Fri Oct 09 10:15:07 MDT 2009 DOWN!
Fri Oct 09 10:15:07 MDT 2009 UP
Fri Oct 09 10:15:43 MDT 2009 DOWN!
Fri Oct 09 10:15:43 MDT 2009 UP
Fri Oct 09 10:15:59 MDT 2009 DOWN!
Fri Oct 09 10:15:59 MDT 2009 UP
Fri Oct 09 10:30:30 MDT 2009 DOWN!
Fri Oct 09 10:30:30 MDT 2009 UP
Fri Oct 09 10:30:56 MDT 2009 DOWN!
Fri Oct 09 10:30:56 MDT 2009 UP
Fri Oct 09 10:32:07 MDT 2009 DOWN!
Fri Oct 09 10:32:07 MDT 2009 UP
Fri Oct 09 10:33:18 MDT 2009 DOWN!
Fri Oct 09 10:33:18 MDT 2009 UP
Fri Oct 09 10:33:34 MDT 2009 DOWN!
Fri Oct 09 10:33:34 MDT 2009 UP
Fri Oct 09 10:36:26 MDT 2009 DOWN!
Fri Oct 09 10:36:26 MDT 2009 UP
Fri Oct 09 13:12:12 MDT 2009 DOWN!
Fri Oct 09 13:15:30 MDT 2009 UP
Fri Oct 09 13:52:12 MDT 2009 DOWN!
Fri Oct 09 13:53:08 MDT 2009 UP
Fri Oct 09 14:34:14 MDT 2009 DOWN!
Fri Oct 09 14:35:09 MDT 2009 UP
Fri Oct 09 15:08:11 MDT 2009 DOWN!
Fri Oct 09 15:11:29 MDT 2009 UP
Fri Oct 09 16:26:15 MDT 2009 DOWN!
Fri Oct 09 16:29:22 MDT 2009 UP
Fri Oct 09 17:26:26 MDT 2009 DOWN!
Fri Oct 09 17:26:26 MDT 2009 UP
Fri Oct 09 17:27:17 MDT 2009 DOWN!
Fri Oct 09 17:27:17 MDT 2009 UP
Fri Oct 09 17:29:14 MDT 2009 DOWN!
Fri Oct 09 17:29:14 MDT 2009 UP
Fri Oct 09 17:30:35 MDT 2009 DOWN!
Fri Oct 09 17:30:35 MDT 2009 UP
Fri Oct 09 17:31:21 MDT 2009 DOWN!
Fri Oct 09 17:31:22 MDT 2009 UP
Fri Oct 09 17:31:58 MDT 2009 DOWN!
Fri Oct 09 17:31:58 MDT 2009 UP
Fri Oct 09 17:33:14 MDT 2009 DOWN!
Fri Oct 09 17:33:14 MDT 2009 UP
Fri Oct 09 18:25:03 MDT 2009 DOWN!
Fri Oct 09 18:25:03 MDT 2009 UP</pre>
</blockquote>


<!-- Begin SexyBookmarks Menu Code -->
<div class="sexy-bookmarks sexy-bookmarks-expand sexy-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="sexy-facebook">
			<a href="http://www.facebook.com/share.php?u=http://mike.brevoort.com/2009/10/10/this-is-not-comcastic/&amp;t=This+is+Not+Comcastic" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="sexy-twitter">
			<a href="http://twitter.com/home?status=This+is+Not+Comcastic+-+http://bit.ly/3q1Hj2+(via+@mbrevoort)" rel="nofollow" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="sexy-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://mike.brevoort.com/2009/10/10/this-is-not-comcastic/&amp;title=This+is+Not+Comcastic&amp;summary=I%20wrote%20a%20script%20that%20pings%20the%20IP%20of%20the%20first%20node%20outside%20of%20my%20house%20into%20Comcast%27s%20network.%20%20It%20pings%20every%20two%20seconds%20and%20logs%20when%20the%20connection%20is%20up%20or%20down%20based%20on%20the%20ping%20success.%20%20Last%20week%20Comcast%20came%20and%20checked%20my%20line%20and%20said%20everything%20looked%20great%20and%20that%20it%20may%20be%20the%20onsla&amp;source=m i k e  b r e v o o r t" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a>
		</li>
		<li class="sexy-friendfeed">
			<a href="http://www.friendfeed.com/share?title=This+is+Not+Comcastic&amp;link=http://mike.brevoort.com/2009/10/10/this-is-not-comcastic/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="sexy-technorati">
			<a href="http://technorati.com/faves?add=http://mike.brevoort.com/2009/10/10/this-is-not-comcastic/" rel="nofollow" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="sexy-delicious">
			<a href="http://del.icio.us/post?url=http://mike.brevoort.com/2009/10/10/this-is-not-comcastic/&amp;title=This+is+Not+Comcastic" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="sexy-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://mike.brevoort.com/2009/10/10/this-is-not-comcastic/&amp;submitHeadline=This+is+Not+Comcastic&amp;submitSummary=I%20wrote%20a%20script%20that%20pings%20the%20IP%20of%20the%20first%20node%20outside%20of%20my%20house%20into%20Comcast%27s%20network.%20%20It%20pings%20every%20two%20seconds%20and%20logs%20when%20the%20connection%20is%20up%20or%20down%20based%20on%20the%20ping%20success.%20%20Last%20week%20Comcast%20came%20and%20checked%20my%20line%20and%20said%20everything%20looked%20great%20and%20that%20it%20may%20be%20the%20onsla&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="sexy-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://mike.brevoort.com/2009/10/10/this-is-not-comcastic/&amp;title=This+is+Not+Comcastic" rel="nofollow" title="Digg this!">Digg this!</a>
		</li>
		<li class="sexy-mail">
			<a href="mailto:?subject=%22This%20is%20Not%20Comcastic%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22I%20wrote%20a%20script%20that%20pings%20the%20IP%20of%20the%20first%20node%20outside%20of%20my%20house%20into%20Comcast%27s%20network.%20%20It%20pings%20every%20two%20seconds%20and%20logs%20when%20the%20connection%20is%20up%20or%20down%20based%20on%20the%20ping%20success.%20%20Last%20week%20Comcast%20came%20and%20checked%20my%20line%20and%20said%20everything%20looked%20great%20and%20that%20it%20may%20be%20the%20onsla%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://mike.brevoort.com/2009/10/10/this-is-not-comcastic/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>
<!-- End SexyBookmarks Menu Code -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=hVJQhrV3jyU:t9K26-a9t-E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=hVJQhrV3jyU:t9K26-a9t-E:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=hVJQhrV3jyU:t9K26-a9t-E:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=hVJQhrV3jyU:t9K26-a9t-E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=hVJQhrV3jyU:t9K26-a9t-E:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MIKEBREVOORT/~4/hVJQhrV3jyU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mike.brevoort.com/2009/10/10/this-is-not-comcastic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mike.brevoort.com/2009/10/10/this-is-not-comcastic/</feedburner:origLink></item>
		<item>
		<title>Yammer, Socialcast, Present.ly… and SocialWok</title>
		<link>http://feedproxy.google.com/~r/MIKEBREVOORT/~3/F6TU1o3-Db0/</link>
		<comments>http://mike.brevoort.com/2009/10/10/yammer-socialcast-presently-and-socialwok/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 06:16:25 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[microblogging]]></category>
		<category><![CDATA[social]]></category>

		<guid isPermaLink="false">http://mike.brevoort.com/?p=184</guid>
		<description><![CDATA[I&#8217;ve spent the last several weeks diving into many of the &#8220;enterprise&#8221;/private SaaS microblogging services available (a.k.a Twitter for the enterprise).  Wow it&#8217;s been quite a while since I blogged! I&#8217;ve spend most of my &#8220;sharing&#8221; time on Twitter the last year.
This all began when I was trying out the new &#8220;social&#8221; features of Confluence.  [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmike.brevoort.com%2F2009%2F10%2F10%2Fyammer-socialcast-presently-and-socialwok%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmike.brevoort.com%2F2009%2F10%2F10%2Fyammer-socialcast-presently-and-socialwok%2F" height="61" width="51" /></a></div><p>I&#8217;ve spent the last several weeks diving into many of the &#8220;enterprise&#8221;/private <a href="http://en.wikipedia.org/wiki/Software_as_a_Service">SaaS</a> <a href="http://en.wikipedia.org/wiki/Microblogging">microblogging</a> services available (a.k.a <a href="http://twitter.com">Twitter</a> for the enterprise).  Wow it&#8217;s been quite a while since I blogged! I&#8217;ve spend most of my &#8220;sharing&#8221; time on Twitter the last year.</p>
<p>This all began when I was trying out the new &#8220;social&#8221; features of <a href="http://www.atlassian.com/software/confluence/">Confluence</a>.  I really like confluence, and I like the new features like status updates and following other users, but it still is a bit limited.  So I started poking around and tried out <a href="http://socialtext.com">SocialText</a> and my first impression was that it felt disheveled; it&#8217;s much more than a micro-blogging platform and more comparable to Confluence in fact.  I decided to turn my focus on the more pure play microblogging apps.  So I began a series of twitter searches to see what people were mentioning most with respect to &#8220;enterprise twitter&#8221;, &#8220;micro-blogging&#8221;, etc.  So I decided to take a look at: <a href="http://yammer.com">Yammer</a>, <a href="http://socialcast.com">Socialcast</a> and <a href="http://presentlyapp.com/">Present.ly</a>.</p>
<p>I created accounts in each of these and invited a couple coworkers.  My general first impression of each was as follows.  Yammer was very clean and unintimidating; it felt like you could just jump in and start using it.  Socialcast&#8217;s UI turned me off right away as it &#8220;felt&#8221; a bit dated (a little petty I know, but a first impression none the less).  There seemed to be a little more to it than yammer with the categorizations and the ability to import from a list of outside services (Flickr, YouTube, Digg, Facebook, Slideshare, etc.).  Present.ly was the only one of the three to impose the 140 character status limit but would allow you to attach text or a file, and it was &#8220;busy&#8221;. There were giant question mark icons and @ symbols next to some updates.  Given these first impressions, I picked Yammer for my organizational experiment.  I wanted to see how micro-blogging fit culturally and within the dynamics of my organization.</p>
<p>So we&#8217;re trying out Yammer, but also spent some additional time with Present.ly and Socialcast.  Overall the micro-blogging &#8220;experiment&#8221; is going really well and here&#8217;s my quick take on each service.</p>
<div class="wp-caption alignleft" style="width: 135px"><a href="https://assets2.yammer.com/images/YammerIconApp126x126.jpg?1255141358"><img title="Yammer" src="https://assets2.yammer.com/images/YammerIconApp126x126.jpg?1255141358" alt="Yammer" width="125" height="126" /></a><p class="wp-caption-text">Yammer</p></div>
<p>Overall Yammer has a very low barrier to entry, easy to register and easy to begin contributing.  The feed can display as threaded or mixed chronological (like Twitter).  The threaded view is only a single level threading though.  Yammer comes in three levels: Basic (free), Silver ($3/user/mo) and Gold ($5/user/mo) and only has a SaaS hosting model so there is no longer a behind the firewall option.  Yammer segments your network strictly by email domain and you cannot invite members outside of your domain unless you are at a paid level.  At the Basic level each user &#8220;owns&#8221; their data where with the paid version the user owns the data and you can&#8217;t get an export of the data unless you are at the Gold level.</p>
<p>Yammer&#8217;s desktop client is mediocre and the search capability is basically dysfunctional.  There is a 3rd party Mac OS native application called <a href="http://erikhinterbichler.com/software/gabble/">Gabble</a> that is a big improvement over the official yammer desktop client.  You have a threaded view capability but no search capability.  There&#8217;s a Firefox extension that works much like the Twitter extension that  works well to keep you in the loop announcing &#8220;YAM&#8221; every time a new message was posted and twitter integration allowing twitter updates to flow into Yammer if you add the tag #yam to your tweet.  There&#8217;s <a href="https://www.yammer.com/company/applications">several other extension</a> that I didn&#8217;t try.  Yammer&#8217;s new iPhone app is really, really good.  There&#8217;s a push capability and the ability to post photos.  One of my coworkers said the <a href="http://nullwire.com/yowl">3rd party Android app </a>worked well, but as I tried to find a link for it at <a href="http://nullwire.com">nullwire</a> all of the information is gone and the site is pretty much stripped.</p>
<p>Yammer&#8217;s group capability allows for public or private groups and what is really nice is the ability for each user to specify notification preferences for each group (email, IM or SMS).  The profile has a good mix of data but doesn&#8217;t allow for custom fields.  There&#8217;s also a very nice self directed org chart feature that allows each user to specify who they report to, manage and work with.  I did not try the <a href="https://www.yammer.com/api_doc.html">API</a>.</p>
<div class="wp-caption alignleft" style="width: 290px"><a href="http://www.socialcast.com"><img title="Socialcast" src="http://c1.socialcastcontent.com/801245/assets1.socialcast.com/stylesheets/../images/corporate/logo_newlight.png" alt="Socialcast" width="280" height="53" /></a><p class="wp-caption-text">Socialcast</p></div>
<p>Though I didn&#8217;t pick Socialcast for the experiment, there&#8217;s something about them that makes me want to like them.  Maybe it&#8217;s how responsive and friendly they are (thanks <a href="http://twitter.com/carrieyoung">@carrieyoung</a> <a href="http://twitter.com/socialcast">@socialcast</a>); I don&#8217;t know.  This week <a href="http://blog.socialcast.com/%E2%80%9Ca-whole-new-experience%E2%80%9D-%E2%80%93-the-debut-of-the-latest-socialcast-platform/">Socialcast released a new version</a> that included a a UI overhaul which is MUCH better.  They also launched a <a href="http://blog.socialcast.com/socialcast-introduces-social-business-intelligence%C2%AE-microblogging-analytics/">Social Business Intelligence</a> capability that looks really compelling.  With Socialcast you own your own data and can request a full data export even in the free version.  They offer two <a href="http://www.socialcast.com/enterprise.html">version</a>s: Basic (Free, SaaS) and Enterprise (Behind the firewall virtual appliance, price? offered as SaaS as well?).  Even in the basic version you can &#8220;claim&#8221; your administration rights and then set your theme, upload a custom logo, manage various metadata and view reports.  You can also send a broadcast messages to the entire community.</p>
<p>In Socialcast you can create custom streams based on people or tags/keywords.  There is similar group functionality as in Yammer, but Socialcast doesn&#8217;t have the custom notification settings I liked in Yammer.  The profile is similar to Yammer though you can add custom profile questions.</p>
<p>The desktop app is functional, bland from a UI perspective.  You can&#8217;t seem to filter by custom streams or groups but you can filter by categories or types of messages.  The search works much better than Yammer&#8217;s desktop search.  They have an iPhone optimized mobile site that works well, but no native mobile apps.  They do have a nice Google gadget though that&#8217;s perfect for those organizations using Google Apps.   The REST API looks very capable.</p>
<div class="wp-caption alignleft" style="width: 255px"><a href="http://presentlyapp.com/"><img title="Present.ly" src="http://presentlyapp.com/images/logo_presently_header.png" alt="Present.ly" width="245" height="50" /></a><p class="wp-caption-text">Present.ly</p></div>
<p>I spent the least amount of time using Present.ly though it is a very capable service as well.  There is a free SaaS version and an enterprise behind the firewall version with <a href="http://presentlyapp.com/enterprise/pricing">perpetual licenses by number of users</a>.  Even the free version has a superior array of configurability allowing you to set custom mail servers, LDAP servers, etc.  There&#8217;s a nice array of <a href="http://presentlyapp.com/native_apps">apps</a> including an iPhone, Android, Blackberry and Windows mobile versions.  I did discover that if you upload a video file (in this case an avi) that Present.ly would process it and render in an integrated player &#8211; that was sweet.</p>
<div class="wp-caption alignleft" style="width: 253px"><a href="http://www.socialwok.com/"><img title="SocialWok" src="http://www.socialwok.com/themes/socialwok/images/logo.png" alt="SocialWok" width="243" height="47" /></a><p class="wp-caption-text">SocialWok</p></div>
<p>At the tail end of my research I stumbled upon <a href="http://socialwok.com/">SocialWok</a> &#8211; basically a social app for <a href="http://www.google.com/apps/">Google Apps</a> that runs on Google App Engine.  Since we use Google Apps internally I was excited by the prospect of this app.  With many thousands of companies using Google Apps, already having taken the SaaS cloud plunge, I believe SocialWok is in an incredible sweet spot.  IMO there&#8217;s still some key areas of development to be done, specifically there are not private groups and though the UI is a blatant (and intentional) Google copy it&#8217;s still rough around the edges in places.  However, the core functionality is there and there&#8217;s a solid foundation to build on.  I&#8217;m certainly going to keep my eye on SocialWok.</p>
<p>Overall I learned a lot from my survey of these services.  Yammer was the simplest to use and had a stable of applications and even some 3rd party apps.  They seem to have the most momentum and the largest user base.  Thus you have to pay for data &#8220;ownership&#8221;, the ability to export, etc. Socialcast in my mind is the most exciting given their new Social Business Intelligence capabilities and the strength of their platform as a whole.  Like I said before, for some reason I just like them.  Present.ly seems very capable and would certainly warrant more time if I had it.  SocialWok has reinvented itself exclusively for Google Apps, and they are going to develop the hell out of the niche they are in.</p>
<p>So there are some key differences between each of these services, some others I didn&#8217;t mention and many features and capabilities that I just didn&#8217;t have time to mention.  In truth I just scratched the surface.  The best way to learn about these services is to sign up for account and try them out first hand.  It&#8217;s so easy to get going that it&#8217;s scary.  I can only imagine that there are 1000&#8217;s of rogue yammer communities out there operating under the noses of organizations.  These things can be very difficult to control once they proliferate.  Now I wonder when Twitter will join the party?  With a $1B valuation and very little revenue you would think that enterprise micro-blogging would be a strategic opportunity for growth&#8230;</p>


<!-- Begin SexyBookmarks Menu Code -->
<div class="sexy-bookmarks sexy-bookmarks-expand sexy-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="sexy-facebook">
			<a href="http://www.facebook.com/share.php?u=http://mike.brevoort.com/2009/10/10/yammer-socialcast-presently-and-socialwok/&amp;t=Yammer%2C+Socialcast%2C+Present.ly...+and+SocialWok" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="sexy-twitter">
			<a href="http://twitter.com/home?status=Yammer%2C+Socialcast%2C+Present.ly...+and+SocialWok+-+http://bit.ly/ONR7w+(via+@mbrevoort)" rel="nofollow" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="sexy-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://mike.brevoort.com/2009/10/10/yammer-socialcast-presently-and-socialwok/&amp;title=Yammer%2C+Socialcast%2C+Present.ly...+and+SocialWok&amp;summary=I%27ve%20spent%20the%20last%20several%20weeks%20diving%20into%20many%20of%20the%20%22enterprise%22%2Fprivate%20SaaS%20microblogging%20services%20available%20%28a.k.a%20Twitter%20for%20the%20enterprise%29.%20%C2%A0Wow%20it%27s%20been%20quite%20a%20while%20since%20I%20blogged%21%20I%27ve%20spend%20most%20of%20my%20%22sharing%22%20time%20on%20Twitter%20the%20last%20year.%0D%0A%0D%0AThis%20all%20began%20when%20I%20was%20trying%20o&amp;source=m i k e  b r e v o o r t" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a>
		</li>
		<li class="sexy-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Yammer%2C+Socialcast%2C+Present.ly...+and+SocialWok&amp;link=http://mike.brevoort.com/2009/10/10/yammer-socialcast-presently-and-socialwok/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="sexy-technorati">
			<a href="http://technorati.com/faves?add=http://mike.brevoort.com/2009/10/10/yammer-socialcast-presently-and-socialwok/" rel="nofollow" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="sexy-delicious">
			<a href="http://del.icio.us/post?url=http://mike.brevoort.com/2009/10/10/yammer-socialcast-presently-and-socialwok/&amp;title=Yammer%2C+Socialcast%2C+Present.ly...+and+SocialWok" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="sexy-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://mike.brevoort.com/2009/10/10/yammer-socialcast-presently-and-socialwok/&amp;submitHeadline=Yammer%2C+Socialcast%2C+Present.ly...+and+SocialWok&amp;submitSummary=I%27ve%20spent%20the%20last%20several%20weeks%20diving%20into%20many%20of%20the%20%22enterprise%22%2Fprivate%20SaaS%20microblogging%20services%20available%20%28a.k.a%20Twitter%20for%20the%20enterprise%29.%20%C2%A0Wow%20it%27s%20been%20quite%20a%20while%20since%20I%20blogged%21%20I%27ve%20spend%20most%20of%20my%20%22sharing%22%20time%20on%20Twitter%20the%20last%20year.%0D%0A%0D%0AThis%20all%20began%20when%20I%20was%20trying%20o&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="sexy-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://mike.brevoort.com/2009/10/10/yammer-socialcast-presently-and-socialwok/&amp;title=Yammer%2C+Socialcast%2C+Present.ly...+and+SocialWok" rel="nofollow" title="Digg this!">Digg this!</a>
		</li>
		<li class="sexy-mail">
			<a href="mailto:?subject=%22Yammer%2C%20Socialcast%2C%20Present.ly...%20and%20SocialWok%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22I%27ve%20spent%20the%20last%20several%20weeks%20diving%20into%20many%20of%20the%20%22enterprise%22%2Fprivate%20SaaS%20microblogging%20services%20available%20%28a.k.a%20Twitter%20for%20the%20enterprise%29.%20%C2%A0Wow%20it%27s%20been%20quite%20a%20while%20since%20I%20blogged%21%20I%27ve%20spend%20most%20of%20my%20%22sharing%22%20time%20on%20Twitter%20the%20last%20year.%0D%0A%0D%0AThis%20all%20began%20when%20I%20was%20trying%20o%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://mike.brevoort.com/2009/10/10/yammer-socialcast-presently-and-socialwok/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>
<!-- End SexyBookmarks Menu Code -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=F6TU1o3-Db0:oz32LGUQm8Q:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=F6TU1o3-Db0:oz32LGUQm8Q:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=F6TU1o3-Db0:oz32LGUQm8Q:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=F6TU1o3-Db0:oz32LGUQm8Q:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=F6TU1o3-Db0:oz32LGUQm8Q:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MIKEBREVOORT/~4/F6TU1o3-Db0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mike.brevoort.com/2009/10/10/yammer-socialcast-presently-and-socialwok/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://mike.brevoort.com/2009/10/10/yammer-socialcast-presently-and-socialwok/</feedburner:origLink></item>
		<item>
		<title>Definitive Guide to Grails, Second Edition</title>
		<link>http://feedproxy.google.com/~r/MIKEBREVOORT/~3/d_WQGNzfCz0/</link>
		<comments>http://mike.brevoort.com/2009/01/21/definitive-guide-to-grails-second-edition/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 05:35:28 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Grails]]></category>

		<guid isPermaLink="false">http://mike.brevoort.com/?p=169</guid>
		<description><![CDATA[


Today I received my pre-ordered copy of the Definitive Guide to Grails, Second Edition.  This is the first book I&#8217;ve ever pre-ordered on from Amazon.  The book seems to be a total rewrite of the first edition and is much thicker as well.
Grails has changed significantly since 0.4 (the version the first edition [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmike.brevoort.com%2F2009%2F01%2F21%2Fdefinitive-guide-to-grails-second-edition%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmike.brevoort.com%2F2009%2F01%2F21%2Fdefinitive-guide-to-grails-second-edition%2F" height="61" width="51" /></a></div><div style="float:left">
<iframe src="http://rcm.amazon.com/e/cm?t=mikebrev-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=1590599950&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=FFFFFF&#038;bg1=FFFFFF&#038;f=ifr&#038;nou=1" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
</div>
<p>Today I received my pre-ordered copy of the <a href="http://www.amazon.com/gp/product/1590599950?ie=UTF8&amp;tag=mikebrev-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1590599950">Definitive Guide to Grails, Second Edition</a>.  This is the first book I&#8217;ve ever pre-ordered on from <a href="http://www.amazon.com?tag=mikebrev-20">Amazon</a>.  The book seems to be a total rewrite of the first edition and is much thicker as well.</p>
<p><a href="http://grails.org">Grails</a> has changed significantly since 0.4 (the version the first edition was based); the new book is based on Grails 1.1 that &#8217;s scheduled to be released of beta within a number or weeks.  I&#8217;m knee deep in a project now that&#8217;s using Grails 1.1 beta2 so this book is very timely!</p>
<p>Though I haven&#8217;t read much of the book yet the first thing I noticed was testing is address throughout the entire book, generally near the end of each chapter, demonstrating how to test the features covered in each chapter.   This is fantastic!  Also, I read the chapter on URL Mapping (since my new application relies heavily on custom URL Mappings and I&#8217;ve battled through several Grails 1.1 beta bugs) and the material was comprehensive.   So my early impression of this book is very good; it appears to be very thorough and a significant contribution to the Grails community that was much needed.  Excellent work <a href="http://graemerocher.blogspot.com/">Graeme</a> and <a href="http://javajeff.blogspot.com/">Jeff</a>.</p>


<!-- Begin SexyBookmarks Menu Code -->
<div class="sexy-bookmarks sexy-bookmarks-expand sexy-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="sexy-facebook">
			<a href="http://www.facebook.com/share.php?u=http://mike.brevoort.com/2009/01/21/definitive-guide-to-grails-second-edition/&amp;t=Definitive+Guide+to+Grails%2C+Second+Edition" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="sexy-twitter">
			<a href="http://twitter.com/home?status=Definitive+Guide+to+Grails%2C+Second+Edition+-+http://bit.ly/1zwDzZ+(via+@mbrevoort)" rel="nofollow" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="sexy-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://mike.brevoort.com/2009/01/21/definitive-guide-to-grails-second-edition/&amp;title=Definitive+Guide+to+Grails%2C+Second+Edition&amp;summary=%0D%0A%0D%0A%0D%0AToday%20I%20received%20my%20pre-ordered%20copy%20of%20the%20Definitive%20Guide%20to%20Grails%2C%20Second%20Edition.%20%20This%20is%20the%20first%20book%20I%27ve%20ever%20pre-ordered%20on%20from%20Amazon.%20%20The%20book%20seems%20to%20be%20a%20total%20rewrite%20of%20the%20first%20edition%20and%20is%20much%20thicker%20as%20well.%0D%0A%0D%0AGrails%20has%20changed%20significantly%20since%200.4%20%28the%20versi&amp;source=m i k e  b r e v o o r t" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a>
		</li>
		<li class="sexy-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Definitive+Guide+to+Grails%2C+Second+Edition&amp;link=http://mike.brevoort.com/2009/01/21/definitive-guide-to-grails-second-edition/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="sexy-technorati">
			<a href="http://technorati.com/faves?add=http://mike.brevoort.com/2009/01/21/definitive-guide-to-grails-second-edition/" rel="nofollow" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="sexy-delicious">
			<a href="http://del.icio.us/post?url=http://mike.brevoort.com/2009/01/21/definitive-guide-to-grails-second-edition/&amp;title=Definitive+Guide+to+Grails%2C+Second+Edition" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="sexy-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://mike.brevoort.com/2009/01/21/definitive-guide-to-grails-second-edition/&amp;submitHeadline=Definitive+Guide+to+Grails%2C+Second+Edition&amp;submitSummary=%0D%0A%0D%0A%0D%0AToday%20I%20received%20my%20pre-ordered%20copy%20of%20the%20Definitive%20Guide%20to%20Grails%2C%20Second%20Edition.%20%20This%20is%20the%20first%20book%20I%27ve%20ever%20pre-ordered%20on%20from%20Amazon.%20%20The%20book%20seems%20to%20be%20a%20total%20rewrite%20of%20the%20first%20edition%20and%20is%20much%20thicker%20as%20well.%0D%0A%0D%0AGrails%20has%20changed%20significantly%20since%200.4%20%28the%20versi&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="sexy-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://mike.brevoort.com/2009/01/21/definitive-guide-to-grails-second-edition/&amp;title=Definitive+Guide+to+Grails%2C+Second+Edition" rel="nofollow" title="Digg this!">Digg this!</a>
		</li>
		<li class="sexy-mail">
			<a href="mailto:?subject=%22Definitive%20Guide%20to%20Grails%2C%20Second%20Edition%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22%0D%0A%0D%0A%0D%0AToday%20I%20received%20my%20pre-ordered%20copy%20of%20the%20Definitive%20Guide%20to%20Grails%2C%20Second%20Edition.%20%20This%20is%20the%20first%20book%20I%27ve%20ever%20pre-ordered%20on%20from%20Amazon.%20%20The%20book%20seems%20to%20be%20a%20total%20rewrite%20of%20the%20first%20edition%20and%20is%20much%20thicker%20as%20well.%0D%0A%0D%0AGrails%20has%20changed%20significantly%20since%200.4%20%28the%20versi%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://mike.brevoort.com/2009/01/21/definitive-guide-to-grails-second-edition/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>
<!-- End SexyBookmarks Menu Code -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=d_WQGNzfCz0:Ykjv5xZ-bMk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=d_WQGNzfCz0:Ykjv5xZ-bMk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=d_WQGNzfCz0:Ykjv5xZ-bMk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=d_WQGNzfCz0:Ykjv5xZ-bMk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=d_WQGNzfCz0:Ykjv5xZ-bMk:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MIKEBREVOORT/~4/d_WQGNzfCz0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mike.brevoort.com/2009/01/21/definitive-guide-to-grails-second-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mike.brevoort.com/2009/01/21/definitive-guide-to-grails-second-edition/</feedburner:origLink></item>
		<item>
		<title>Making Relative URLs Absolute with Groovy</title>
		<link>http://feedproxy.google.com/~r/MIKEBREVOORT/~3/F7Pt9TbRyq4/</link>
		<comments>http://mike.brevoort.com/2008/12/21/making-relative-urls-absolute-with-groovy/#comments</comments>
		<pubDate>Sun, 21 Dec 2008 22:47:11 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Grails]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://mike.brevoort.com/?p=165</guid>
		<description><![CDATA[I’m working on a project where I am using Grails as a content delivery layer for an XML based content management system.  The content management system has the ability to publish XHTML content with inline links and images; however the inline img and a tags reference the content as relative paths.  I need the links [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmike.brevoort.com%2F2008%2F12%2F21%2Fmaking-relative-urls-absolute-with-groovy%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmike.brevoort.com%2F2008%2F12%2F21%2Fmaking-relative-urls-absolute-with-groovy%2F" height="61" width="51" /></a></div><p>I’m working on a project where I am using <a href="http://grails.org">Grails</a> as a content delivery layer for an XML based content management system.  The content management system has the ability to publish XHTML content with inline links and images; however the inline img and a tags reference the content as relative paths.  I need the links to internal pages to be absolute from the server root (ie /sub/content.html rather than sub/content.html) and I am hosting all static content like images at <a href="http://aws.amazon.com/s3/">Amazon S3</a> so I need the image links to be absolute to a different DNS name (ie http://media.mywebsite.com/images/image.jpg rather than images/image.jpg).
</p>
<p>Instead of implementing some hacks in the CMS itself, I opted to do the transformation in Grails as the content was rendered allowing greater flexibility.  I created a taglib for rendering the XHTML block that does a <a href="http://groovy.codehaus.org/Regular+Expressions">Groovy replaceAll with regular expressions</a>.  The tag gets called like this: &lt;g:processXHTML content=&#8221;${content.mainBody.text()}&#8221;/&gt; .  My <a href="http://grails.org/doc/1.0.x/guide/6.%20The%20Web%20Layer.html#6.2%20Groovy%20Server%20Pages">GSP</a> has reference to a content variable that is an <a href="http://groovy.codehaus.org/Reading+XML+using+Groovy%27s+XmlSlurper">XMLSlurped</a> xml document with a mainBody tag.  Here is the code for the tag:
</p>
<pre class="brush: java">
/**
 * Given XHTML content will return the same content with any relative a tag hrefs prefixed with a /
 * and any relative images prefixed with the mediaURL
 */

def processIngeniuxXHTML = {attrs -&gt;
  def content = attrs.content
  def rootURL = grailsApplication.config.mediaURL

  if (content) {
    // first look for links within the content that are relative URLS and prefix with a slash so they are
    // resolved from the root rather than the current context
    def regex = /(&lt; \s*a\s+[^&gt;]*href\s*=\s*[\&quot;&#039;])(?!http)([^\&quot;&#039;&gt;]+)[\&quot;&#039;&gt;]/
    def replace = { fullMatch, a, b -&gt;
      if (b[0] != &quot;/&quot;){
        // for some reason it&#039;s not outputing the closing quote so I added it at then end explicitly
        &quot;${a}/${b}\&quot;&quot;
      } else
        &quot;${fullMatch}&quot;
    }

    content = content.replaceAll(regex, replace)

    // second if there are any images referenced with relative URLs, prefix with the DNS for the S3 bucket
    regex = /(&lt; \s*img\s+[^&gt;]*src\s*=\s*[\&quot;&#039;])(?!http)([^\&quot;&#039;&gt;]+)[\&quot;&#039;&gt;]/
    replace = { fullMatch, a, b -&gt;
      if (b[0] != &quot;/&quot;){
        // for some reason it&#039;s not outputing the closing quote so I added it at then end explicitly
        &quot;${a}${rootURL}/${b}\&quot;&quot;
      } else
        &quot;${fullMatch}&quot;
    }

    out &lt; &lt; content.replaceAll(regex, replace)
  }
}
</pre>
<p>And here are the test conditions to demonstrate what&#8217;s expected:</p>
<pre class="brush: java">
void testProcessXHTML() {
  ContentUtilTagLib tl = new ContentUtilTagLib()

  def i = &quot;&quot;&quot;&lt;div&gt;&lt;a href=&quot;Explore/test&quot;/&gt;&quot;&quot;&quot;
  def o = &quot;&quot;&quot;&lt;div&gt;&lt;a href=&quot;/Explore/test&quot;/&gt;&lt;/div&gt;&quot;&quot;&quot;

  tl.processXHTML(content: i)
  assertEquals o, out.toString()
  out.getBuffer().setLength(0)

  i = &quot;&quot;&quot;&lt;div&gt;&lt;a alt=&quot;blah&quot; href=&quot;Explore/test&quot;/&gt;&lt;/div&gt;&quot;&quot;&quot;
  o = &quot;&quot;&quot;&lt;div&gt;&lt;a alt=&quot;blah&quot; href=&quot;/Explore/test&quot;/&gt;&lt;/div&gt;&quot;&quot;&quot;

  tl.processXHTML(content: i)
  assertEquals o, out.toString()
  out.getBuffer().setLength(0)

  i = &quot;&quot;&quot;&lt;div&gt;&lt;a href=&quot;Explore/test&quot;/&gt;&lt;img width=&quot;100&quot; src=&quot;myImage/a.jpg&quot;/&gt;&lt;/div&gt;&quot;&quot;&quot;
  o = &quot;&quot;&quot;&lt;div&gt;&lt;a href=&quot;/Explore/test&quot;/&gt;&lt;img width=&quot;100&quot; src=&quot;http://stub/myImage/a.jpg&quot;/&gt;&lt;/div&gt;&quot;&quot;&quot;

  tl.processXHTML(content: i)
  assertEquals o, out.toString()
  out.getBuffer().setLength(0)

  i = &quot;&quot;&quot;&lt;div&gt;&lt;a href=&quot;/Explore/test&quot;/&gt;&lt;/div&gt;&quot;&quot;&quot;
  o = &quot;&quot;&quot;&lt;div&gt;&lt;a href=&quot;/Explore/test&quot;/&gt;&lt;/div&gt;&quot;&quot;&quot;

  tl.processXHTML(content: i)
  assertEquals o, out.toString()
  out.getBuffer().setLength(0)

  i = &quot;&quot;&quot;&lt;div&gt;&lt;a href=&quot;http://Explore/test&quot;/&gt;&lt;img width=&quot;100&quot; src=&quot;http://anotherhost/myImage/a.jpg&quot;/&gt;&lt;/div&gt;&quot;&quot;&quot;
  o = &quot;&quot;&quot;&lt;div&gt;&lt;a href=&quot;http://Explore/test&quot;/&gt;&lt;img width=&quot;100&quot; src=&quot;http://anotherhost/myImage/a.jpg&quot;/&gt;&lt;/div&gt;&quot;&quot;&quot;

  tl.processXHTML(content: i)
  assertEquals o, out.toString()
  out.getBuffer().setLength(0)

}
</pre>
<p>More related to this project to come&#8230;</p>


<!-- Begin SexyBookmarks Menu Code -->
<div class="sexy-bookmarks sexy-bookmarks-expand sexy-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="sexy-facebook">
			<a href="http://www.facebook.com/share.php?u=http://mike.brevoort.com/2008/12/21/making-relative-urls-absolute-with-groovy/&amp;t=Making+Relative+URLs+Absolute+with+Groovy" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="sexy-twitter">
			<a href="http://twitter.com/home?status=Making+Relative+URLs+Absolute+with+Groovy+-+http://bit.ly/32ip32+(via+@mbrevoort)" rel="nofollow" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="sexy-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://mike.brevoort.com/2008/12/21/making-relative-urls-absolute-with-groovy/&amp;title=Making+Relative+URLs+Absolute+with+Groovy&amp;summary=I%E2%80%99m%20working%20on%20a%20project%20where%20I%20am%20using%20Grails%20as%20a%20content%20delivery%20layer%20for%20an%20XML%20based%20content%20management%20system.%C2%A0%20The%20content%20management%20system%20has%20the%20ability%20to%20publish%20XHTML%20content%20with%20inline%20links%20and%20images%3B%20however%20the%20inline%20img%20and%20a%20tags%20reference%20the%20content%20as%20relative%20paths.&amp;source=m i k e  b r e v o o r t" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a>
		</li>
		<li class="sexy-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Making+Relative+URLs+Absolute+with+Groovy&amp;link=http://mike.brevoort.com/2008/12/21/making-relative-urls-absolute-with-groovy/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="sexy-technorati">
			<a href="http://technorati.com/faves?add=http://mike.brevoort.com/2008/12/21/making-relative-urls-absolute-with-groovy/" rel="nofollow" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="sexy-delicious">
			<a href="http://del.icio.us/post?url=http://mike.brevoort.com/2008/12/21/making-relative-urls-absolute-with-groovy/&amp;title=Making+Relative+URLs+Absolute+with+Groovy" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="sexy-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://mike.brevoort.com/2008/12/21/making-relative-urls-absolute-with-groovy/&amp;submitHeadline=Making+Relative+URLs+Absolute+with+Groovy&amp;submitSummary=I%E2%80%99m%20working%20on%20a%20project%20where%20I%20am%20using%20Grails%20as%20a%20content%20delivery%20layer%20for%20an%20XML%20based%20content%20management%20system.%C2%A0%20The%20content%20management%20system%20has%20the%20ability%20to%20publish%20XHTML%20content%20with%20inline%20links%20and%20images%3B%20however%20the%20inline%20img%20and%20a%20tags%20reference%20the%20content%20as%20relative%20paths.&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="sexy-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://mike.brevoort.com/2008/12/21/making-relative-urls-absolute-with-groovy/&amp;title=Making+Relative+URLs+Absolute+with+Groovy" rel="nofollow" title="Digg this!">Digg this!</a>
		</li>
		<li class="sexy-mail">
			<a href="mailto:?subject=%22Making%20Relative%20URLs%20Absolute%20with%20Groovy%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22I%E2%80%99m%20working%20on%20a%20project%20where%20I%20am%20using%20Grails%20as%20a%20content%20delivery%20layer%20for%20an%20XML%20based%20content%20management%20system.%C2%A0%20The%20content%20management%20system%20has%20the%20ability%20to%20publish%20XHTML%20content%20with%20inline%20links%20and%20images%3B%20however%20the%20inline%20img%20and%20a%20tags%20reference%20the%20content%20as%20relative%20paths.%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://mike.brevoort.com/2008/12/21/making-relative-urls-absolute-with-groovy/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>
<!-- End SexyBookmarks Menu Code -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=F7Pt9TbRyq4:4fW_uxgrOb4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=F7Pt9TbRyq4:4fW_uxgrOb4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=F7Pt9TbRyq4:4fW_uxgrOb4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=F7Pt9TbRyq4:4fW_uxgrOb4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=F7Pt9TbRyq4:4fW_uxgrOb4:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MIKEBREVOORT/~4/F7Pt9TbRyq4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mike.brevoort.com/2008/12/21/making-relative-urls-absolute-with-groovy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mike.brevoort.com/2008/12/21/making-relative-urls-absolute-with-groovy/</feedburner:origLink></item>
		<item>
		<title>NFJS Rocky Mountain Software Symposium Debrief</title>
		<link>http://feedproxy.google.com/~r/MIKEBREVOORT/~3/L9tEVsj4oz4/</link>
		<comments>http://mike.brevoort.com/2008/11/17/nfjs-rocky-mountain-software-symposium-debrief/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 06:45:25 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Grails]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[nfjs]]></category>

		<guid isPermaLink="false">http://mike.brevoort.com/?p=164</guid>
		<description><![CDATA[This weekend I attended the NFJS Rocky Mountain Software Symposium in Lone Tree, CO.  It was hard to pass up a NFJS conference that&#8217;s 15 minutes from home.  Overall the sessions were excellent.  There wasn&#8217;t a single session I attended that sucked or was a waste of time, a first for any conference I&#8217;ve attended.  [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmike.brevoort.com%2F2008%2F11%2F17%2Fnfjs-rocky-mountain-software-symposium-debrief%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmike.brevoort.com%2F2008%2F11%2F17%2Fnfjs-rocky-mountain-software-symposium-debrief%2F" height="61" width="51" /></a></div><p>This weekend I attended the <a href="http://www.nofluffjuststuff.com">NFJS</a> <a href="http://www.nofluffjuststuff.com/conference/denver/2008/11/index.html">Rocky Mountain Software Symposium</a> in Lone Tree, CO.  It was hard to pass up a NFJS conference that&#8217;s 15 minutes from home.  Overall the sessions were excellent.  There wasn&#8217;t a single session I attended that sucked or was a waste of time, a first for any conference I&#8217;ve attended.  I seemed to gravitate toward sessions by <a href="http://kensipe.blogspot.com/">Ken Sipe</a> and <a href="http://blog.thinkrelevance.com/">Stu Halloway</a> followed by Groovy and Grails presentations by <a href="http://javajeff.blogspot.com/">Jeff Brown</a> and <a href="http://www.davisworld.org/blojsom/blog/">Scott Davis</a>.</p>
<p>I gleaned several consistent overarching themes at the conference:</p>
<ul>
<li>Java is essentially Dead (<a href="http://blog.thinkrelevance.com/">Stu Halloway</a> leading this sentiment)</li>
<li>BUT the JVM is alive and well.  In fact the JVM has transitioned from a write once run <span style="text-decoration: underline;">Java</span> anywhere runtime to a dynamic platform for many languages (<a href="http://groovy.codehaus.org/">Groovy</a>, <a href="http://jruby.codehaus.org/">JRudy</a>, <a href="http://www.scala-lang.org/">Scala</a>, <a href="http://clojure.org/">Clojure</a>, Javascript, etc&#8230;. oh yeah and Java)</li>
<li>Not doing Test Driven Development is basically irresponsible, especially with the explosion of dynamic languages</li>
<li>Not doing Continuous Integration is basically irresponsible</li>
</ul>
<p>I learned the <a href="http://javajeff.blogspot.com/">Jeff Brown</a> has developed and is about to announce a new <a href="https://hudson.dev.java.net/">Hudson</a> plugin for building <a href="http://grails.org">Grails</a> projects in Hudson, a big and welcome improvement on <a href="http://mike.brevoort.com/2008/01/21/building-grails-applications-with-hudson/">specifying new ant targets</a>, using the shell script option or whatever.  Jeff also echoed much of what has already been said about the <a href="http://graemerocher.blogspot.com/2008/11/groovy-and-grails-join-spring-family.html">recent Spring Source acquisition of G2</a>:</p>
<ul>
<li>Deeper integration between Grails and Sprint MVC</li>
<li>The Groovy Spring bean builder will be moved into Spring</li>
<li>And of course there will be closer collaboration between the Groovy, Grails, and Spring development teams, though the team will remain distinct.</li>
</ul>
<p>I&#8217;m super excited about <a href="http://git.or.cz/">Git</a> though <a href="http://denverdev.blogspot.com/">Matt McCullough</a> urged me to take a look at <a href="http://www.selenic.com/mercurial/wiki/">Mercurial</a>&#8230;</p>
<p>Anyway, fantastic event and kudos to <a href="http://www.nofluffjuststuff.com">No Fluff Just Stuff</a>.</p>


<!-- Begin SexyBookmarks Menu Code -->
<div class="sexy-bookmarks sexy-bookmarks-expand sexy-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="sexy-facebook">
			<a href="http://www.facebook.com/share.php?u=http://mike.brevoort.com/2008/11/17/nfjs-rocky-mountain-software-symposium-debrief/&amp;t=NFJS+Rocky+Mountain+Software+Symposium+Debrief" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="sexy-twitter">
			<a href="http://twitter.com/home?status=NFJS+Rocky+Mountain+Software+Symposium+Debrief+-+http://bit.ly/4djUP2+(via+@mbrevoort)" rel="nofollow" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="sexy-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://mike.brevoort.com/2008/11/17/nfjs-rocky-mountain-software-symposium-debrief/&amp;title=NFJS+Rocky+Mountain+Software+Symposium+Debrief&amp;summary=This%20weekend%20I%20attended%20the%20NFJS%20Rocky%20Mountain%20Software%20Symposium%20in%20Lone%20Tree%2C%20CO.%C2%A0%20It%20was%20hard%20to%20pass%20up%20a%20NFJS%20conference%20that%27s%2015%20minutes%20from%20home.%C2%A0%20Overall%20the%20sessions%20were%20excellent.%C2%A0%20There%20wasn%27t%20a%20single%20session%20I%20attended%20that%20sucked%20or%20was%20a%20waste%20of%20time%2C%20a%20first%20for%20any%20conferenc&amp;source=m i k e  b r e v o o r t" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a>
		</li>
		<li class="sexy-friendfeed">
			<a href="http://www.friendfeed.com/share?title=NFJS+Rocky+Mountain+Software+Symposium+Debrief&amp;link=http://mike.brevoort.com/2008/11/17/nfjs-rocky-mountain-software-symposium-debrief/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="sexy-technorati">
			<a href="http://technorati.com/faves?add=http://mike.brevoort.com/2008/11/17/nfjs-rocky-mountain-software-symposium-debrief/" rel="nofollow" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="sexy-delicious">
			<a href="http://del.icio.us/post?url=http://mike.brevoort.com/2008/11/17/nfjs-rocky-mountain-software-symposium-debrief/&amp;title=NFJS+Rocky+Mountain+Software+Symposium+Debrief" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="sexy-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://mike.brevoort.com/2008/11/17/nfjs-rocky-mountain-software-symposium-debrief/&amp;submitHeadline=NFJS+Rocky+Mountain+Software+Symposium+Debrief&amp;submitSummary=This%20weekend%20I%20attended%20the%20NFJS%20Rocky%20Mountain%20Software%20Symposium%20in%20Lone%20Tree%2C%20CO.%C2%A0%20It%20was%20hard%20to%20pass%20up%20a%20NFJS%20conference%20that%27s%2015%20minutes%20from%20home.%C2%A0%20Overall%20the%20sessions%20were%20excellent.%C2%A0%20There%20wasn%27t%20a%20single%20session%20I%20attended%20that%20sucked%20or%20was%20a%20waste%20of%20time%2C%20a%20first%20for%20any%20conferenc&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="sexy-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://mike.brevoort.com/2008/11/17/nfjs-rocky-mountain-software-symposium-debrief/&amp;title=NFJS+Rocky+Mountain+Software+Symposium+Debrief" rel="nofollow" title="Digg this!">Digg this!</a>
		</li>
		<li class="sexy-mail">
			<a href="mailto:?subject=%22NFJS%20Rocky%20Mountain%20Software%20Symposium%20Debrief%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22This%20weekend%20I%20attended%20the%20NFJS%20Rocky%20Mountain%20Software%20Symposium%20in%20Lone%20Tree%2C%20CO.%C2%A0%20It%20was%20hard%20to%20pass%20up%20a%20NFJS%20conference%20that%27s%2015%20minutes%20from%20home.%C2%A0%20Overall%20the%20sessions%20were%20excellent.%C2%A0%20There%20wasn%27t%20a%20single%20session%20I%20attended%20that%20sucked%20or%20was%20a%20waste%20of%20time%2C%20a%20first%20for%20any%20conferenc%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://mike.brevoort.com/2008/11/17/nfjs-rocky-mountain-software-symposium-debrief/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>
<!-- End SexyBookmarks Menu Code -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=L9tEVsj4oz4:62Ojyh41T3E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=L9tEVsj4oz4:62Ojyh41T3E:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=L9tEVsj4oz4:62Ojyh41T3E:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=L9tEVsj4oz4:62Ojyh41T3E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=L9tEVsj4oz4:62Ojyh41T3E:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MIKEBREVOORT/~4/L9tEVsj4oz4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mike.brevoort.com/2008/11/17/nfjs-rocky-mountain-software-symposium-debrief/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://mike.brevoort.com/2008/11/17/nfjs-rocky-mountain-software-symposium-debrief/</feedburner:origLink></item>
		<item>
		<title>Rocky Mountain Software Symposium</title>
		<link>http://feedproxy.google.com/~r/MIKEBREVOORT/~3/V4Fd5vXnVLk/</link>
		<comments>http://mike.brevoort.com/2008/11/14/rocky-mountain-software-symposium/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 05:51:35 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Grails]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://mike.brevoort.com/?p=163</guid>
		<description><![CDATA[This weekend I&#8217;m attending the NFJS Rocky Mountain Software Symposium.  Today I attended a few really good sessions specifically Java Memory, Performance and the Garbage Collector presented by Ken Sipe and a very enthusiastic Groovy Metaprogramming tour by Scott Davis.  Though I&#8217;ve been using Groovy for quite a while, primarily inconjuction with Grails, Scott&#8217;s presentation [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fmike.brevoort.com%2F2008%2F11%2F14%2Frocky-mountain-software-symposium%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fmike.brevoort.com%2F2008%2F11%2F14%2Frocky-mountain-software-symposium%2F" height="61" width="51" /></a></div><p>This weekend I&#8217;m attending the <a href="http://www.nofluffjuststuff.com">NFJS</a> <a href="http://www.nofluffjuststuff.com/conference/denver/2008/11/index.html">Rocky Mountain Software Symposium</a>.  Today I attended a few really good sessions specifically Java Memory, Performance and the Garbage Collector presented by <a href="http://kensipe.blogspot.com/">Ken Sipe</a> and a very enthusiastic Groovy Metaprogramming tour by <a href="http://www.davisworld.org/blojsom/blog/">Scott Davis</a>.  Though I&#8217;ve been using Groovy for quite a while, primarily inconjuction with <a href="http://grails.org">Grails</a>, Scott&#8217;s presentation really helped fill some gaps for me.   Ken&#8217;s presentation on JVM memory managemant was a great primer.  I&#8217;m looking forward to profiling a few of the Grails apps I&#8217;m working on vith <a href="https://visualvm.dev.java.net/">VisualVM</a> to see how I can optimize New vs Old space as well as preset the PermGen space to speed up <a href="http://grails.org">Grails</a> start-up.</p>
<p>I&#8217;m looking forward to the coming two days of sessions though I REALLY could have used a weekend.  At least the conference is 15 minutes from home.  I&#8217;ll post my thoughts/reactions to the other session this weekend.</p>
<p>After a nudging from Ken during his presentation to &#8216;increase your digital footprint&#8217; and <a href="http://blogs.atlassian.com/rebelutionary/archives/2008/11/return_of_the_charlie.html">Cannon-Brookes return to blogging</a> (congrats on your <a href="http://blogs.atlassian.com/news/2008/11/come_with_me_on.html">recent position on the Gartner Magic Quadrant for Social Software</a> &#8211; well deserved&#8230;) I&#8217;m renewing my commitment to start blogging again and this time more focused on my &#8220;work&#8221; life, choosing to use Facebook for sharing personal updates.</p>
<p>Congrats to <a href="http://www.springsource.com/g2one">G2 for the Spring Source aquisition</a> and the release today of Grails 1.0.4.  And I just saw that the <a href="http://www.groovygrails.com/gg/2gexperience">Groovy/Grails Experience</a> has been scheduled for February 2009&#8230; in Denver!</p>


<!-- Begin SexyBookmarks Menu Code -->
<div class="sexy-bookmarks sexy-bookmarks-expand sexy-bookmarks-bg-enjoy">
<ul class="socials">
		<li class="sexy-facebook">
			<a href="http://www.facebook.com/share.php?u=http://mike.brevoort.com/2008/11/14/rocky-mountain-software-symposium/&amp;t=Rocky+Mountain+Software+Symposium" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="sexy-twitter">
			<a href="http://twitter.com/home?status=Rocky+Mountain+Software+Symposium+-+http://bit.ly/1GsuP4+(via+@mbrevoort)" rel="nofollow" title="Tweet This!">Tweet This!</a>
		</li>
		<li class="sexy-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://mike.brevoort.com/2008/11/14/rocky-mountain-software-symposium/&amp;title=Rocky+Mountain+Software+Symposium&amp;summary=This%20weekend%20I%27m%20attending%20the%20NFJS%20Rocky%20Mountain%20Software%20Symposium.%C2%A0%20Today%20I%20attended%20a%20few%20really%20good%20sessions%20specifically%20Java%20Memory%2C%20Performance%20and%20the%20Garbage%20Collector%20presented%20by%20Ken%20Sipe%20and%20a%20very%20enthusiastic%20Groovy%20Metaprogramming%20tour%20by%20Scott%20Davis.%C2%A0%20Though%20I%27ve%20been%20using%20Groo&amp;source=m i k e  b r e v o o r t" rel="nofollow" title="Share this on Linkedin">Share this on Linkedin</a>
		</li>
		<li class="sexy-friendfeed">
			<a href="http://www.friendfeed.com/share?title=Rocky+Mountain+Software+Symposium&amp;link=http://mike.brevoort.com/2008/11/14/rocky-mountain-software-symposium/" rel="nofollow" title="Share this on FriendFeed">Share this on FriendFeed</a>
		</li>
		<li class="sexy-technorati">
			<a href="http://technorati.com/faves?add=http://mike.brevoort.com/2008/11/14/rocky-mountain-software-symposium/" rel="nofollow" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="sexy-delicious">
			<a href="http://del.icio.us/post?url=http://mike.brevoort.com/2008/11/14/rocky-mountain-software-symposium/&amp;title=Rocky+Mountain+Software+Symposium" rel="nofollow" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="sexy-yahoobuzz">
			<a href="http://buzz.yahoo.com/submit/?submitUrl=http://mike.brevoort.com/2008/11/14/rocky-mountain-software-symposium/&amp;submitHeadline=Rocky+Mountain+Software+Symposium&amp;submitSummary=This%20weekend%20I%27m%20attending%20the%20NFJS%20Rocky%20Mountain%20Software%20Symposium.%C2%A0%20Today%20I%20attended%20a%20few%20really%20good%20sessions%20specifically%20Java%20Memory%2C%20Performance%20and%20the%20Garbage%20Collector%20presented%20by%20Ken%20Sipe%20and%20a%20very%20enthusiastic%20Groovy%20Metaprogramming%20tour%20by%20Scott%20Davis.%C2%A0%20Though%20I%27ve%20been%20using%20Groo&amp;submitCategory=science&amp;submitAssetType=text" rel="nofollow" title="Buzz up!">Buzz up!</a>
		</li>
		<li class="sexy-digg">
			<a href="http://digg.com/submit?phase=2&amp;url=http://mike.brevoort.com/2008/11/14/rocky-mountain-software-symposium/&amp;title=Rocky+Mountain+Software+Symposium" rel="nofollow" title="Digg this!">Digg this!</a>
		</li>
		<li class="sexy-mail">
			<a href="mailto:?subject=%22Rocky%20Mountain%20Software%20Symposium%22&amp;body=I%20thought%20this%20article%20might%20interest%20you.%0A%0A%22This%20weekend%20I%27m%20attending%20the%20NFJS%20Rocky%20Mountain%20Software%20Symposium.%C2%A0%20Today%20I%20attended%20a%20few%20really%20good%20sessions%20specifically%20Java%20Memory%2C%20Performance%20and%20the%20Garbage%20Collector%20presented%20by%20Ken%20Sipe%20and%20a%20very%20enthusiastic%20Groovy%20Metaprogramming%20tour%20by%20Scott%20Davis.%C2%A0%20Though%20I%27ve%20been%20using%20Groo%22%0A%0AYou%20can%20read%20the%20full%20article%20here%3A%20http://mike.brevoort.com/2008/11/14/rocky-mountain-software-symposium/" rel="nofollow" title="Email this to a friend?">Email this to a friend?</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>
<!-- End SexyBookmarks Menu Code -->

<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=V4Fd5vXnVLk:Wu41zQJB6C4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=V4Fd5vXnVLk:Wu41zQJB6C4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=V4Fd5vXnVLk:Wu41zQJB6C4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/MIKEBREVOORT?a=V4Fd5vXnVLk:Wu41zQJB6C4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/MIKEBREVOORT?i=V4Fd5vXnVLk:Wu41zQJB6C4:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/MIKEBREVOORT/~4/V4Fd5vXnVLk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mike.brevoort.com/2008/11/14/rocky-mountain-software-symposium/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://mike.brevoort.com/2008/11/14/rocky-mountain-software-symposium/</feedburner:origLink></item>
	</channel>
</rss>
