<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>Random Musings&#187; Reviews</title> <atom:link href="http://www.nslms.com/category/reviews/feed/" rel="self" type="application/rss+xml" /><link>http://www.nslms.com</link> <description></description> <lastBuildDate>Wed, 06 Jul 2011 20:47:34 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3</generator> <item><title>MacBook Pro &#8211; First Impressions</title><link>http://www.nslms.com/2010/03/18/macbook-pro-first-impressions/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link> <comments>http://www.nslms.com/2010/03/18/macbook-pro-first-impressions/#comments</comments> <pubDate>Fri, 19 Mar 2010 02:30:34 +0000</pubDate> <dc:creator>RyanG</dc:creator> <category><![CDATA[Hardware]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[apple]]></category> <category><![CDATA[first impression]]></category> <category><![CDATA[linkedin]]></category> <category><![CDATA[MacBook]]></category> <guid
isPermaLink="false">http://www.nslms.com/?p=440</guid> <description><![CDATA[I just took delivery of my latest new computer from my employer. &#160;This time, instead of another run of the mill IBM compatible laptop or desktop it was a fancy new 17&#34; MacBook Pro. &#160;We&#39;re developing software which we&#39;re supporting in Safari using the Silverlight plugin and I needed to be able to develop and [...]]]></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%2Fwww.nslms.com%2F2010%2F03%2F18%2Fmacbook-pro-first-impressions%2F"><br
/> <img
src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.nslms.com%2F2010%2F03%2F18%2Fmacbook-pro-first-impressions%2F&amp;source=rjgeyer&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br
/> </a></div><p>I just took delivery of my latest new computer from my employer. &nbsp;This time, instead of another run of the mill IBM compatible laptop or desktop it was a fancy new 17&quot; MacBook Pro. &nbsp;We&#39;re developing software which we&#39;re supporting in Safari using the Silverlight plugin and I needed to be able to develop and test in that native environment.</p><p>First, let me give you some background. &nbsp;See, I&#39;m an Apple geek from days of yore. &nbsp;We&#39;re talking Mac II and Quadra days here. &nbsp;I was raised around Apples because my father owned his own business in the desktop publishing industry. &nbsp;Around 1996 or so, I started to defect to &quot;the dark side&quot; and use the Windows OS, and only a few short years later I started dabbling with Linux, which is my current OS of choice.</p><p>Now, I knew that OSX was BSD based, and I knew I&#39;d like it. &nbsp;I also knew that the Apple hardware was pretty stinkin&#39; elegant. &nbsp;But man&#8230;. I had no idea. &nbsp;This feels all so new and exciting, but at the same time comfortable and familiar. &nbsp;In the ~3hrs I&#39;ve had it I&#39;ve installed pretty much an entire Groovy/Grails development tool set as well as installing and configuring things I&#39;ll be using on a daily basis.</p><p>I&#39;m discovering some things which require are requiring a bit of research, but once I find the answer it usually fits some pattern or concept that is very familiar. &nbsp;I&#39;ll likely be blogging about a few of those items as I continue to &quot;move in&quot; to my new machine.</p><p>I&#39;ve also been firing off my thoughts as I have them on Twitter, you can follow the stream below if you&#39;re interested.</p><p>[wpts terms=#mbpfirstimpressions limit=20 lang=en]</p><div
class="shr-bookmarks shr-bookmarks-center"><ul
class="socials"><li
class="shr-blogger"> <a
href="http://www.shareaholic.com/api/share/?title=MacBook+Pro+-+First+Impressions&amp;link=http://www.nslms.com/2010/03/18/macbook-pro-first-impressions/&amp;notes=I%20just%20took%20delivery%20of%20my%20latest%20new%20computer%20from%20my%20employer.%20%26nbsp%3BThis%20time%2C%20instead%20of%20another%20run%20of%20the%20mill%20IBM%20compatible%20laptop%20or%20desktop%20it%20was%20a%20fancy%20new%2017%26quot%3B%20MacBook%20Pro.%20%26nbsp%3BWe%26%2339%3Bre%20developing%20software%20which%20we%26%2339%3Bre%20supporting%20in%20Safari%20using%20the%20Silverlight%20plugin%20and%20I%20n&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=219&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a></li><li
class="shr-comfeed"> <a
href="http://www.nslms.com/2010/03/18/macbook-pro-first-impressions/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a></li><li
class="shr-facebook"> <a
href="http://www.shareaholic.com/api/share/?title=MacBook+Pro+-+First+Impressions&amp;link=http://www.nslms.com/2010/03/18/macbook-pro-first-impressions/&amp;notes=I%20just%20took%20delivery%20of%20my%20latest%20new%20computer%20from%20my%20employer.%20%26nbsp%3BThis%20time%2C%20instead%20of%20another%20run%20of%20the%20mill%20IBM%20compatible%20laptop%20or%20desktop%20it%20was%20a%20fancy%20new%2017%26quot%3B%20MacBook%20Pro.%20%26nbsp%3BWe%26%2339%3Bre%20developing%20software%20which%20we%26%2339%3Bre%20supporting%20in%20Safari%20using%20the%20Silverlight%20plugin%20and%20I%20n&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li
class="shr-linkedin"> <a
href="http://www.shareaholic.com/api/share/?title=MacBook+Pro+-+First+Impressions&amp;link=http://www.nslms.com/2010/03/18/macbook-pro-first-impressions/&amp;notes=I%20just%20took%20delivery%20of%20my%20latest%20new%20computer%20from%20my%20employer.%20%26nbsp%3BThis%20time%2C%20instead%20of%20another%20run%20of%20the%20mill%20IBM%20compatible%20laptop%20or%20desktop%20it%20was%20a%20fancy%20new%2017%26quot%3B%20MacBook%20Pro.%20%26nbsp%3BWe%26%2339%3Bre%20developing%20software%20which%20we%26%2339%3Bre%20supporting%20in%20Safari%20using%20the%20Silverlight%20plugin%20and%20I%20n&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a></li><li
class="shr-mail"> <a
href="http://www.shareaholic.com/api/share/?title=MacBook%20Pro%20-%20First%20Impressions&amp;link=http://www.nslms.com/2010/03/18/macbook-pro-first-impressions/&amp;notes=I%20just%20took%20delivery%20of%20my%20latest%20new%20computer%20from%20my%20employer.%20%26nbsp%3BThis%20time%2C%20instead%20of%20another%20run%20of%20the%20mill%20IBM%20compatible%20laptop%20or%20desktop%20it%20was%20a%20fancy%20new%2017%26quot%3B%20MacBook%20Pro.%20%26nbsp%3BWe%26%2339%3Bre%20developing%20software%20which%20we%26%2339%3Bre%20supporting%20in%20Safari%20using%20the%20Silverlight%20plugin%20and%20I%20n&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=201&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a></li><li
class="shr-posterous"> <a
href="http://www.shareaholic.com/api/share/?title=MacBook+Pro+-+First+Impressions&amp;link=http://www.nslms.com/2010/03/18/macbook-pro-first-impressions/&amp;notes=I%20just%20took%20delivery%20of%20my%20latest%20new%20computer%20from%20my%20employer.%20%26nbsp%3BThis%20time%2C%20instead%20of%20another%20run%20of%20the%20mill%20IBM%20compatible%20laptop%20or%20desktop%20it%20was%20a%20fancy%20new%2017%26quot%3B%20MacBook%20Pro.%20%26nbsp%3BWe%26%2339%3Bre%20developing%20software%20which%20we%26%2339%3Bre%20supporting%20in%20Safari%20using%20the%20Silverlight%20plugin%20and%20I%20n&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=210&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this to Posterous">Post this to Posterous</a></li><li
class="shr-twitter"> <a
href="http://www.shareaholic.com/api/share/?title=MacBook+Pro+-+First+Impressions&amp;link=http://www.nslms.com/2010/03/18/macbook-pro-first-impressions/&amp;notes=I%20just%20took%20delivery%20of%20my%20latest%20new%20computer%20from%20my%20employer.%20%26nbsp%3BThis%20time%2C%20instead%20of%20another%20run%20of%20the%20mill%20IBM%20compatible%20laptop%20or%20desktop%20it%20was%20a%20fancy%20new%2017%26quot%3B%20MacBook%20Pro.%20%26nbsp%3BWe%26%2339%3Bre%20developing%20software%20which%20we%26%2339%3Bre%20supporting%20in%20Safari%20using%20the%20Silverlight%20plugin%20and%20I%20n&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a></li><li
class="shr-digg"> <a
href="http://www.shareaholic.com/api/share/?title=MacBook+Pro+-+First+Impressions&amp;link=http://www.nslms.com/2010/03/18/macbook-pro-first-impressions/&amp;notes=I%20just%20took%20delivery%20of%20my%20latest%20new%20computer%20from%20my%20employer.%20%26nbsp%3BThis%20time%2C%20instead%20of%20another%20run%20of%20the%20mill%20IBM%20compatible%20laptop%20or%20desktop%20it%20was%20a%20fancy%20new%2017%26quot%3B%20MacBook%20Pro.%20%26nbsp%3BWe%26%2339%3Bre%20developing%20software%20which%20we%26%2339%3Bre%20supporting%20in%20Safari%20using%20the%20Silverlight%20plugin%20and%20I%20n&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a></li><li
class="shr-friendfeed"> <a
href="http://www.shareaholic.com/api/share/?title=MacBook+Pro+-+First+Impressions&amp;link=http://www.nslms.com/2010/03/18/macbook-pro-first-impressions/&amp;notes=I%20just%20took%20delivery%20of%20my%20latest%20new%20computer%20from%20my%20employer.%20%26nbsp%3BThis%20time%2C%20instead%20of%20another%20run%20of%20the%20mill%20IBM%20compatible%20laptop%20or%20desktop%20it%20was%20a%20fancy%20new%2017%26quot%3B%20MacBook%20Pro.%20%26nbsp%3BWe%26%2339%3Bre%20developing%20software%20which%20we%26%2339%3Bre%20supporting%20in%20Safari%20using%20the%20Silverlight%20plugin%20and%20I%20n&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=43&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li
class="shr-googlereader"> <a
href="http://www.shareaholic.com/api/share/?title=MacBook+Pro+-+First+Impressions&amp;link=http://www.nslms.com/2010/03/18/macbook-pro-first-impressions/&amp;notes=I%20just%20took%20delivery%20of%20my%20latest%20new%20computer%20from%20my%20employer.%20%26nbsp%3BThis%20time%2C%20instead%20of%20another%20run%20of%20the%20mill%20IBM%20compatible%20laptop%20or%20desktop%20it%20was%20a%20fancy%20new%2017%26quot%3B%20MacBook%20Pro.%20%26nbsp%3BWe%26%2339%3Bre%20developing%20software%20which%20we%26%2339%3Bre%20supporting%20in%20Safari%20using%20the%20Silverlight%20plugin%20and%20I%20n&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a></li></ul><div
style="clear: both;"></div><div
class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a
target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div><div
style="clear: both;"></div></div> ]]></content:encoded> <wfw:commentRss>http://www.nslms.com/2010/03/18/macbook-pro-first-impressions/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Modularizing your Grails Application &#8211; Domain Classes</title><link>http://www.nslms.com/2010/03/10/modularizing-your-grails-application-domain-classes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link> <comments>http://www.nslms.com/2010/03/10/modularizing-your-grails-application-domain-classes/#comments</comments> <pubDate>Thu, 11 Mar 2010 01:39:07 +0000</pubDate> <dc:creator>RyanG</dc:creator> <category><![CDATA[Grails/Groovy]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[grails]]></category> <category><![CDATA[groovy]]></category> <category><![CDATA[linkedin]]></category> <category><![CDATA[modular]]></category> <category><![CDATA[mvc]]></category> <category><![CDATA[reusable]]></category> <guid
isPermaLink="false">http://www.nslms.com/?p=417</guid> <description><![CDATA[This is the second installment of my What Grooves You? series of posts, this time discussing how to modularize your Grails application. While Grails does an awesome job of enforcing MVC once your application reaches a certain size, or you have multiple applications which may have shared components, you&#8217;re going to have to start thinking [...]]]></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%2Fwww.nslms.com%2F2010%2F03%2F10%2Fmodularizing-your-grails-application-domain-classes%2F"><br
/> <img
src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.nslms.com%2F2010%2F03%2F10%2Fmodularizing-your-grails-application-domain-classes%2F&amp;source=rjgeyer&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br
/> </a></div><p>This is the second installment of my <a
href="http://www.nslms.com/2010/02/05/what-grooves-you/">What Grooves You?</a> series of posts, this time discussing how to modularize your Grails application.  While Grails does an awesome job of enforcing <a
href="http://www.grails.org/Developer+-+Spring+MVC+Integration">MVC</a> once your application reaches a certain size, or you have multiple applications which may have shared components, you&#8217;re going to have to start thinking about how your going to modularize the reusable parts of your code.</p><p><span
id="more-417"></span></p><p>I encountered this pretty quickly because the application I am working on is broken out into two distinct parts, a public facing web form for submitting data (the &#8220;Front End&#8221;) and a private back office application for managing those user submissions (the &#8220;Back End&#8221;).  These two parts of the application (for compliance reasons) cannot run on the same internet facing system, and the &#8220;Back End&#8221; must only be available on the internal network.  Of course, both of these applications are going to work with the same database and therefore the same Domain classes.  It would be dangerous and tedious to try to keep the separate domain classes in each project synchronized with one another.</p><h2>What won&#8217;t work</h2><p><b>The RESTful JSON Service</b></p><p>My first thought was to deploy a 3rd application which would be internet visible and act as a proxy for all the database requests.  I could then query that application with REST and handle a JSON payload which would be my domain object.  This actually seemed pretty elegant since I wouldn&#8217;t have to actually share any code between the Front End and Back End applications and I still got a well defined object on either end.  The problem of course is that all I get is the data for my domain class, and I don&#8217;t have access to any of the functionality that GORM gives me &#8220;for free&#8221;.  I&#8217;d have to duplicate search functionality, limits, grouping, sorting, and all sorts of other querying tools in my service.  That seemed like an awful lot of work for functionality that is offered by GORM and works very well!</p><p><b>Just JAR it man</b></p><p>The next obvious conclusion is to just toss my domain classes into a library JAR file and reference that library in both of my other applications.  This way I actually have the whole domain class and access to the dynamic find methods and all that other good stuff.  But, how do you package these?  Do you compile the Groovy classes then package the .class files? Will the data source information have to be set for the domain class(es) in the JAR, or will the data source of the application referencing the library be used?</p><p>Now some more seasoned Java and Hibernate developers might simply laugh at that barrage of questions, but for me it presented a serious barrier to entry.  Fortunately there is a better way.</p><h2>Just plug it in!</h2><p>It didn&#8217;t take me long to discover that putting my reusable code into a <a
href="http://grails.org/doc/latest/guide/12.%20Plug-ins.html" target="_blank">Grails Plugin</a> was the best and most scalable approach. For the sake of demonstration I&#8217;m going to take you through an example comment submission and administration application, kinda like blog comments.</p><p><b>The plugin project</b></p><p>First, let&#8217;s go ahead and create our plugin project.</p><p>[bash]grails create-plugin Modular-DAL[/bash]</p><p>Once you&#8217;ve got your shiny new plugin created, open it up with your favorite IDE (I use <a
href="http://www.springsource.com/products/sts">Spring Source Tool Suite</a>) and add a new domain class that you&#8217;re going to be sharing.</p><p>[bash]grails create-domain-class com.nslms.modular.domain.Comment[/bash]</p><p>Now we specify some properties for our new shared domain class.</p><p
class="filename">Comment.groovy</p><p>[groovy]<br
/> package com.nslms.modular.domain</p><p>class Comment {</p><p> static constraints = {<br
/> name(blank:false)<br
/> email(blank:false)<br
/> comment(blank:false)<br
/> }</p><p> String name<br
/> String email<br
/> String website<br
/> String comment</p><p> Boolean isApproved = false<br
/> }<br
/> [/groovy]</p><p>With our new shared domain class created, we want to package up our plugin so we can load it into the other projects which we&#8217;ll be creating in a moment.</p><p>[bash]grails package-plugin[/bash]</p><p>That&#8217;s it, you&#8217;ve just created a (very small) module of your application which contains a shared domain class.  This could, of course, contain any number of domain classes, controllers, or services, views, javascript, css, etc. that would be used by other parts of your application, or by other applications.</p><p><b>The Front End</b></p><p>Now, lets create an application which will serve as the &#8220;front end&#8221; or externally facing form for collecting data.</p><p>[bash]grails create-app Modular-FrontEnd[/bash]</p><p>Then the very important part of installing the plugin we just created</p><p>[bash]grails install-plugin ../Modular-DAL/grails-modular-dal-0.1.zip[/bash]</p><p>Because you can <a
href="#download-instructions">download</a> the project I created, I&#8217;m not going to go into excruciating detail about the controller and view(s) I setup in my front end, but sufficed to say I am accessing the &#8220;Comment&#8221; domain class that is supplied by the Modular-DAL plugin project!</p><p
class="filename">CommentsController.groovy (snippet)</p><p>[groovy highlight="1,5"]<br
/> import com.nslms.modular.domain.*</p><p>class CommentsController {</p><p> def index = { [comments: Comment.findAllByisApproved(true)] }<br
/> }<br
/> [/groovy]</p><p>The result of the front end app should be a list of comments which are approved (by the backend) and a submission form to allow you to submit new comments.  Kinda like <a
href="http://www.nslms.com/grails/examples/modular/frontend/comments" target="_blank">this</a>.</p><p><b>The Back End</b></p><p>Now we need to create the system which will allow you as the administrator to approve the comments submitted by the unwashed masses.</p><p>[bash]grails create-app Modular-BackEnd[/bash]</p><p>And install the plugin with the shared domain class.</p><p>[bash]grails install-plugin ../Modular-DAL/grails-modular-dal-0.1.zip[/bash]</p><p>Again because you can <a
href="#download-instructions">download</a> the project I created, here&#8217;s just a snippet of the admin controller showing the juicy bits where we use the shared domain class</p><p
class="filename">AdminController.groovy (snippet)</p><p>[groovy highlight="1,5"]<br
/> import com.nslms.modular.domain.*;</p><p>class AdminController {</p><p> def comments = { [comments: Comment.findAllByisApproved(false)] }<br
/> }<br
/> [/groovy]</p><p>The back end app should have a list of all unapproved comments, and a method to approve them.  Kinda like <a
href="http://www.nslms.com/grails/examples/modular/backend/admin/comments" target="_blank">this</a>.</p><p><b>Trying it out</b></p><p>Now if you&#8217;ve followed along and created your own controllers and views, or <a
href="#download-instructions">downloaded</a> my basic project, you&#8217;re going to want to try running both the front end and back end at the same time, persisting data to a common datasource so that you can see the whole thing in action.  If you just use the grails run-app command, you&#8217;ll find very quickly that you can only run one or the other project, but not both at the same time.  This is because they&#8217;ll both be trying to run on the common Tomcat port (8080).  To overcome this, and run both apps at the same time, try the following starting from the Modular-FrontEnd directory.</p><p>[bash]<br
/> grails -Dserver.port=8081 run-app<br
/> cd ../Modular-BackEnd<br
/> grails -Dserver.port=8082 run-app<br
/> [/bash]</p><p>Now you should be able to access both applications at <a
href="http://localhost:8081/FrontEnd">http://localhost:8081/FrontEnd</a> and <a
href="http://localhost:8082/BackEnd">http://localhost:8082/BackEnd</a> respectively.</p><p><b
id="download-instructions">Download The Project(s)</b></p><p>If you want to download the project(s) and follow along, fire up your favorite subversion client and export everything at <del
datetime="2010-12-26T22:17:49+00:00"><a
href="svn://linode.nslms.com/blog/grails/Modular">svn://linode.nslms.com/blog/grails/Modular</a></del> or download it <a
href="http://www.nslms.com/downloads/Modular.zip">here</a>.  A couple things to note if you&#8217;re grabbing my project, it&#8217;s currently setup to use a MySQL database named &#8220;modular&#8221; running on the same system as the application.  If you don&#8217;t already have MySQL setup, give <a
href="http://www.apachefriends.org/en/xampp.html">XAMPP</a> a look to get you started quickly.  Also, I didn&#8217;t include the JDBC driver, go fetch it <a
href="http://www.mysql.com/downloads/connector/j/">here</a> and drop it into the &#8220;lib&#8221; directory of both the FrontEnd and BackEnd applications.  Lastly, these projects are all written with Grails 1.2.1 so you&#8217;ll have to be using 1.2.1 or newer.</p><p><em><strong><span
style="color: #ff0000;">* UPDATE: The example apps have a new home..</span></strong></em></p><p>Grab the projects at</p><p>[bash]<br
/> git clone git://ec2.nslms.com/grails/blog_example_modular<br
/> [/bash]</p><div
class="shr-bookmarks shr-bookmarks-center"><ul
class="socials"><li
class="shr-blogger"> <a
href="http://www.shareaholic.com/api/share/?title=Modularizing+your+Grails+Application+-+Domain+Classes&amp;link=http://www.nslms.com/2010/03/10/modularizing-your-grails-application-domain-classes/&amp;notes=This%20is%20the%20second%20installment%20of%20my%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20this%20time%20discussing%20how%20to%20modularize%20your%20Grails%20application.%20%20While%20Grails%20does%20an%20awesome%20job%20of%20enforcing%20MVC%20once%20your%20application%20reaches%20a%20certain%20size%2C%20or%20you%20have%20multiple%20applications%20which%20may%20have%20shared%20components%2C&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=219&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a></li><li
class="shr-comfeed"> <a
href="http://www.nslms.com/2010/03/10/modularizing-your-grails-application-domain-classes/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a></li><li
class="shr-facebook"> <a
href="http://www.shareaholic.com/api/share/?title=Modularizing+your+Grails+Application+-+Domain+Classes&amp;link=http://www.nslms.com/2010/03/10/modularizing-your-grails-application-domain-classes/&amp;notes=This%20is%20the%20second%20installment%20of%20my%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20this%20time%20discussing%20how%20to%20modularize%20your%20Grails%20application.%20%20While%20Grails%20does%20an%20awesome%20job%20of%20enforcing%20MVC%20once%20your%20application%20reaches%20a%20certain%20size%2C%20or%20you%20have%20multiple%20applications%20which%20may%20have%20shared%20components%2C&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li
class="shr-linkedin"> <a
href="http://www.shareaholic.com/api/share/?title=Modularizing+your+Grails+Application+-+Domain+Classes&amp;link=http://www.nslms.com/2010/03/10/modularizing-your-grails-application-domain-classes/&amp;notes=This%20is%20the%20second%20installment%20of%20my%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20this%20time%20discussing%20how%20to%20modularize%20your%20Grails%20application.%20%20While%20Grails%20does%20an%20awesome%20job%20of%20enforcing%20MVC%20once%20your%20application%20reaches%20a%20certain%20size%2C%20or%20you%20have%20multiple%20applications%20which%20may%20have%20shared%20components%2C&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a></li><li
class="shr-mail"> <a
href="http://www.shareaholic.com/api/share/?title=Modularizing%20your%20Grails%20Application%20-%20Domain%20Classes&amp;link=http://www.nslms.com/2010/03/10/modularizing-your-grails-application-domain-classes/&amp;notes=This%20is%20the%20second%20installment%20of%20my%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20this%20time%20discussing%20how%20to%20modularize%20your%20Grails%20application.%20%20While%20Grails%20does%20an%20awesome%20job%20of%20enforcing%20MVC%20once%20your%20application%20reaches%20a%20certain%20size%2C%20or%20you%20have%20multiple%20applications%20which%20may%20have%20shared%20components%2C&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=201&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a></li><li
class="shr-posterous"> <a
href="http://www.shareaholic.com/api/share/?title=Modularizing+your+Grails+Application+-+Domain+Classes&amp;link=http://www.nslms.com/2010/03/10/modularizing-your-grails-application-domain-classes/&amp;notes=This%20is%20the%20second%20installment%20of%20my%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20this%20time%20discussing%20how%20to%20modularize%20your%20Grails%20application.%20%20While%20Grails%20does%20an%20awesome%20job%20of%20enforcing%20MVC%20once%20your%20application%20reaches%20a%20certain%20size%2C%20or%20you%20have%20multiple%20applications%20which%20may%20have%20shared%20components%2C&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=210&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this to Posterous">Post this to Posterous</a></li><li
class="shr-twitter"> <a
href="http://www.shareaholic.com/api/share/?title=Modularizing+your+Grails+Application+-+Domain+Classes&amp;link=http://www.nslms.com/2010/03/10/modularizing-your-grails-application-domain-classes/&amp;notes=This%20is%20the%20second%20installment%20of%20my%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20this%20time%20discussing%20how%20to%20modularize%20your%20Grails%20application.%20%20While%20Grails%20does%20an%20awesome%20job%20of%20enforcing%20MVC%20once%20your%20application%20reaches%20a%20certain%20size%2C%20or%20you%20have%20multiple%20applications%20which%20may%20have%20shared%20components%2C&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a></li><li
class="shr-digg"> <a
href="http://www.shareaholic.com/api/share/?title=Modularizing+your+Grails+Application+-+Domain+Classes&amp;link=http://www.nslms.com/2010/03/10/modularizing-your-grails-application-domain-classes/&amp;notes=This%20is%20the%20second%20installment%20of%20my%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20this%20time%20discussing%20how%20to%20modularize%20your%20Grails%20application.%20%20While%20Grails%20does%20an%20awesome%20job%20of%20enforcing%20MVC%20once%20your%20application%20reaches%20a%20certain%20size%2C%20or%20you%20have%20multiple%20applications%20which%20may%20have%20shared%20components%2C&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a></li><li
class="shr-friendfeed"> <a
href="http://www.shareaholic.com/api/share/?title=Modularizing+your+Grails+Application+-+Domain+Classes&amp;link=http://www.nslms.com/2010/03/10/modularizing-your-grails-application-domain-classes/&amp;notes=This%20is%20the%20second%20installment%20of%20my%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20this%20time%20discussing%20how%20to%20modularize%20your%20Grails%20application.%20%20While%20Grails%20does%20an%20awesome%20job%20of%20enforcing%20MVC%20once%20your%20application%20reaches%20a%20certain%20size%2C%20or%20you%20have%20multiple%20applications%20which%20may%20have%20shared%20components%2C&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=43&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li
class="shr-googlereader"> <a
href="http://www.shareaholic.com/api/share/?title=Modularizing+your+Grails+Application+-+Domain+Classes&amp;link=http://www.nslms.com/2010/03/10/modularizing-your-grails-application-domain-classes/&amp;notes=This%20is%20the%20second%20installment%20of%20my%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20this%20time%20discussing%20how%20to%20modularize%20your%20Grails%20application.%20%20While%20Grails%20does%20an%20awesome%20job%20of%20enforcing%20MVC%20once%20your%20application%20reaches%20a%20certain%20size%2C%20or%20you%20have%20multiple%20applications%20which%20may%20have%20shared%20components%2C&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a></li></ul><div
style="clear: both;"></div><div
class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a
target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div><div
style="clear: both;"></div></div> ]]></content:encoded> <wfw:commentRss>http://www.nslms.com/2010/03/10/modularizing-your-grails-application-domain-classes/feed/</wfw:commentRss> <slash:comments>30</slash:comments> </item> <item><title>Fitting Grails in an Active Directory and NTLM SSO Groove</title><link>http://www.nslms.com/2010/02/10/fitting-grails-in-an-active-directory-and-ntml-sso-groove/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link> <comments>http://www.nslms.com/2010/02/10/fitting-grails-in-an-active-directory-and-ntml-sso-groove/#comments</comments> <pubDate>Wed, 10 Feb 2010 22:52:11 +0000</pubDate> <dc:creator>RyanG</dc:creator> <category><![CDATA[Grails/Groovy]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[Acegi]]></category> <category><![CDATA[Active Directory]]></category> <category><![CDATA[Authentication]]></category> <category><![CDATA[grails]]></category> <category><![CDATA[groovy]]></category> <category><![CDATA[linkedin]]></category> <category><![CDATA[NTLM]]></category> <category><![CDATA[Spring Security]]></category> <category><![CDATA[SSO]]></category> <guid
isPermaLink="false">http://www.nslms.com/?p=383</guid> <description><![CDATA[This is my first installment in the What Grooves You? series of posts, and it deals with the first thing you&#8217;re going to need to consider if you are deploying your Grails/Groovy applications in the average corporate IT infrastructure, Single Sign On with Active Directory and NTLM. Like it or not, because all of our [...]]]></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%2Fwww.nslms.com%2F2010%2F02%2F10%2Ffitting-grails-in-an-active-directory-and-ntml-sso-groove%2F"><br
/> <img
src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.nslms.com%2F2010%2F02%2F10%2Ffitting-grails-in-an-active-directory-and-ntml-sso-groove%2F&amp;source=rjgeyer&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br
/> </a></div><p>This is my first installment in the <a
href="http://www.nslms.com/2010/02/05/what-grooves-you/">What Grooves You?</a> series of posts, and it deals with the first thing you&#8217;re going to need to consider if you are deploying your Grails/Groovy applications in the average corporate IT infrastructure, Single Sign On with Active Directory and NTLM.  Like it or not, because all of our existing applications are based on Microsoft technologies our users have gotten used to just going to the URL for the application they intend to use and being instantly recognized and authenticated.  Forcing them to sign in again, or worse still forcing them to setup a new username and password for your system would be completely unacceptable!  Below, I&#8217;ll take you through the steps I took to solve this problem, including the detours that cost me time!</p><p><span
id="more-383"></span></p><p>Throughout this post I&#8217;ll be referring to domain objects, controllers, and views which would have been created by running the <a
href="http://www.grails.org/AcegiSecurity+Plugin+-+LDAP+Tutorial">Acegi LDAP tutorial</a>.  So if you want to follow along, go walk through the tutorial, then come back here to see how we tweak it.  Be sure to take the &#8220;optional&#8221; step of creating the views and controllers for the auth domains, you&#8217;ll need it not only in the tutorial, but also for some customization we&#8217;ll be doing later.</p><p>[bash]grails generate-manager[/bash]</p><p>You can also download a copy of the Spring Source STS project I used for this application <a
href="http://www.nslms.com/downloads/GrailsInActiveDirectoryGroove.zip">here</a>.</p><h2>LDAP Single Identity but not Single Sign On</h2><p>As I started searching to figure out how to authenticate my users, everything seemed to point to using the <a
href="http://grails.org/plugin/acegi">Acegi Plugin</a> for Grails, and using it with LDAP, tweaked to talk to Active Directory.  So, I started down this path and followed the <a
href="http://www.grails.org/AcegiSecurity+Plugin+-+LDAP+Tutorial">LDAP tutorial</a> for the Acegi plugin.  Without a lot of trouble I got this working by following the steps in the tutorial, though I did make a couple significant changes to the SecurityConfig.groovy file to make it play nice with Active Directory</p><p
class="filename">SecurityConfig.groovy</p><p>[groovy highlight="14,17,18"]<br
/> security {</p><p> // see DefaultSecurityConfig.groovy for all settable/overridable properties</p><p> active = true</p><p> useLdap = false<br
/> ldapRetrieveDatabaseRoles = false<br
/> ldapRetrieveGroupRoles = true<br
/> ldapServer = &#8216;ldap://&lt;your-domain-controller&gt;&#8217;<br
/> ldapManagerDn = &#8216;&lt;your-service-account-dn&gt;&#8217;<br
/> ldapManagerPassword = &#8216;&lt;your-service-account-password&gt;&#8217;<br
/> ldapSearchBase = &#8216;OU=People,DC=yourdomain,DC=com&#8217;<br
/> ldapSearchFilter = &#8216;(sAMAccountName={0})&#8217;<br
/> ldapSearchSubtree = true<br
/> ldapGroupSearchBase = &#8216;CN=Users,DC=yourdomain,DC=com&#8217;<br
/> ldapGroupSearchFilter = &#8216;member={0}&#8217;<br
/> ldapUsePassword = false</p><p> loginUserDomainClass = &quot;User&quot;<br
/> authorityDomainClass = &quot;Role&quot;<br
/> requestMapClass = &quot;Requestmap&quot;<br
/> }<br
/> [/groovy]</p><p>By setting ldapSearchFilter to &#8216;(sAMAccountName={0})&#8217;, we&#8217;re telling the Acegi plugin to look for the field in Active Directory that stores the username, this means that users can login just like they&#8217;re used to by using their Active Directory user name and password.</p><p>The ldapGroupSearchBase and ldapGroupSearchFilter are set such that any domain user groups that a user is a member of become Acegi &#8220;Roles&#8221; which can be used to determine if a user has authority to do stuff in the application.</p><p>Setting ldapUsePassword to false is important too.  What we&#8217;re telling the Acegi plugin is not to extract the users password from Active Directory.  If you don&#8217;t set this to false, you&#8217;ll get a lovely exception which isn&#8217;t particularly useful, <b><i>java.lang.IllegalArgumentException: Cannot pass null or empty values to constructor</i><i></i></b>.  What this is trying to tell you is that the users password is null, which is correct since the default setting for the Acegi plugin is to try to extract the users password from Active Directory, and we haven&#8217;t told Acegi what attribute Active Directory stores the password in.  By setting ldapUsePassword to false, the plugin provides a bogus password for the user details, and we&#8217;re able to proceed without incident.</p><p>So, great!  If you&#8217;ve made these changes and followed the steps in the tutorial to add a user  to the application domain with the same username as your Active Directory user you can authenticate users with the username and password they&#8217;re already using to login to their computer, we have a single identity for this person.  But remember, our users are used to simply going to a URL and not being prompted to login.  How do we reproduce that experience?</p><h2>NTLM Really Single Sign On</h2><p>Having realized that using Active Directory/LDAP authentication works, but isn&#8217;t an actual single sign on solution I started looking into the other settings in the <a
href="http://www.grails.org/AcegiSecurity+Plugin+-+Customizing+with+SecurityConfig">SecurityConfig.groovy</a> file.  Turns out there is an NTLM option, but no corresponding tutorial!  Here&#8217;s my configuration for using NTLM.</p><p
class="filename">SecurityConfig.groovy</p><p>[groovy]<br
/> security {</p><p> // see DefaultSecurityConfig.groovy for all settable/overridable properties</p><p> active = true</p><p> useNtlm = true<br
/> ntlm.stripDomain = false<br
/> ntlm.defaultDomain = &quot;yourdomain.com&quot;<br
/> ntlm.netbiosWINS = &quot;&lt;your-domain-controller-ip&gt;&quot;</p><p> loginUserDomainClass = &quot;User&quot;<br
/> authorityDomainClass = &quot;Role&quot;<br
/> requestMapClass = &quot;Requestmap&quot;<br
/> }<br
/> [/groovy]</p><p>Nothing really outstanding here, I chose to set ntlm.stripDomain to false, so that the users name is not prefixed by the domain, I.E. DOMAIN\username.  Also ntlm.defaultDomain and ntlm.netbiosWINS are both required, and I found that the ntlm.netbiosWINS works better if you actually give it the IP address of your domain controller, rather than the DNS name.</p><p>With NTLM configured, our Grails app now accepts the users cached authentication from their windows session.  True single sign on!</p><h2>Securing the Security Controllers and BootStrapping</h2><p>Now we&#8217;ve got an application which will use NTLM to authenticate the user, we restrict access using the requestmap, and we add users and their roles using the user and role controllers.  The problem, of course is that if you deploy this application anyone can go right to http://yourdomain.com/sso-app/user and add themselves as a user with any roles they see fit!  So we need to make sure that our security controllers are secured, and that there is an authorized user that can get in to add users and roles.</p><p><b>Securing the Security Controllers</b></p><p>The first thing we&#8217;re going to want to do is secure our authentication controllers.  My preference is to do this with annotations on the controllers, so lets secure the UserController and RoleController with annotations.  Shown below we annotate them to show that the &#8220;ROLE_USER_ADMINISTRATOR&#8221; role is necessary to access any of the pages for either controller.</p><p
class="filename">UserController.groovy</p><p>[groovy highlight="1,3"]<br
/> import org.codehaus.groovy.grails.plugins.springsecurity.Secured;</p><p>@Secured([&quot;ROLE_USER_ADMINISTRATOR&quot;])<br
/> /**<br
/> * User controller.<br
/> */<br
/> class UserController {<br
/> /* Snip */<br
/> }<br
/> [/groovy]</p><p
class="filename">RoleController.groovy</p><p>[groovy highlight="1,3"]<br
/> import org.codehaus.groovy.grails.plugins.springsecurity.Secured;</p><p>@Secured([&quot;ROLE_USER_ADMINISTRATOR&quot;])<br
/> /**<br
/> * Authority Controller.<br
/> */<br
/> class RoleController {<br
/> /* Snip */<br
/> }<br
/> [/groovy]</p><p><b>Enabling the @Secured annotation</b></p><p>Now if you were simply to run the application like this, you&#8217;d find that you can still freely navigate to /user and /role without having to be authenticated, that&#8217;s because we are still configured to use the Requestmap to restrict access to specific parts of our application.  To configure this for use with annotations instead, we only need to make a couple of small changes to the SecurityConfig.groovy file.</p><p
class="filename">SecurityConfig.groovy</p><p>[groovy highlight="14,16,17"]<br
/> security {</p><p> // see DefaultSecurityConfig.groovy for all settable/overridable properties</p><p> active = true</p><p> useNtlm = true<br
/> ntlm.stripDomain = false<br
/> ntlm.defaultDomain = &quot;yourdomain.com&quot;<br
/> ntlm.netbiosWINS = &quot;&lt;your-domain-controller-ip&gt;&quot;</p><p> loginUserDomainClass = &quot;User&quot;<br
/> authorityDomainClass = &quot;Role&quot;<br
/> //requestMapClass = &quot;Requestmap&quot;</p><p> userRequestMapDomainClass = false<br
/> useControllerAnnotations = true<br
/> }<br
/> [/groovy]</p><p>Setting useControllerAnnotations to true gives the @Secured annotations on the user and role controllers meaning.  By setting userRequestMapDomainClass to false we tell the Acegi security plugin to not even query for restrictions in the database, but to use only the static configuration defined by the annotations.  We also delete the requestMapClass line.  I commented it here instead of deleting it so it can be highlighted as a change in the file, but we&#8217;re not quite done with the requestmap yet.  Now that we&#8217;ve configured our application not to use the request map we can delete the controller, domain, and views for it.  Go ahead and delete the following files.</p><ul><li>/grails-app/controller/RequestmapController.groovy</li><li>/grails-app/domain/Requestmap.groovy</li><li>/grails-app/views/requestmap/*</li></ul><p><b>BootStrapping</b></p><p>Now that we have our app secured, and we&#8217;re using annotations to restrict access we need to make sure that some user can successfully login after we first deploy our application.  Otherwise no one will be able to access the pages to add new users!  So we use boot strapping to add a user administrator who can add more users and roles for the application.</p><p
class="filename">BootStrap.groovy</p><p>[groovy]<br
/> class BootStrap {<br
/> def authenticateService</p><p> def init = { servletContext -&gt;<br
/> def role = new Role(authority: &#8216;ROLE_USER_ADMINISTRATOR&#8217;, description:&#8217;User Administrator&#8217;)<br
/> role.save()<br
/> def user = new User(username: &#8216;admin&#8217;,<br
/> userRealName: &#8216;Administrator&#8217;,<br
/> passwd: authenticateService.encodePassword(&#8216;foobar&#8217;),<br
/> enabled: true,<br
/> description: &#8221;,<br
/> email: &#8221;,<br
/> emailShow: false)<br
/> user.addToAuthorities(role)<br
/> user.save()<br
/> }<br
/> def destroy = {<br
/> }<br
/> }<br
/> [/groovy]</p><p>So there you have it, an application which allows users to connect using their cached authentication using NTLM, uses annotations to secure your controllers, and actually allows access to at least one user once it&#8217;s deployed.  Now, there are still some weaknesses.  Particularly the level of permissions you can assign is limited to roles, I.E. &#8220;Administrator&#8221;, &#8220;User&#8221;, &#8220;Reporting User&#8221;, &#8220;User Administrator&#8221;, etc.  Also in a corporate environment, having to go through this configuration for every grails app, and adding users and assigning their roles for each app can be tedious.  I&#8217;ll be looking into improving these things with Acegi ACL&#8217;s and possibly using a centralized database for users and roles in future articles so stay tuned!</p><div
class="shr-bookmarks shr-bookmarks-center"><ul
class="socials"><li
class="shr-blogger"> <a
href="http://www.shareaholic.com/api/share/?title=Fitting+Grails+in+an+Active+Directory+and+NTLM+SSO+Groove&amp;link=http://www.nslms.com/2010/02/10/fitting-grails-in-an-active-directory-and-ntml-sso-groove/&amp;notes=This%20is%20my%20first%20installment%20in%20the%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20and%20it%20deals%20with%20the%20first%20thing%20you%27re%20going%20to%20need%20to%20consider%20if%20you%20are%20deploying%20your%20Grails%2FGroovy%20applications%20in%20the%20average%20corporate%20IT%20infrastructure%2C%20Single%20Sign%20On%20with%20Active%20Directory%20and%20NTLM.%20%20Like%20it%20or%20not%2C%20b&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=219&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a></li><li
class="shr-comfeed"> <a
href="http://www.nslms.com/2010/02/10/fitting-grails-in-an-active-directory-and-ntml-sso-groove/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a></li><li
class="shr-facebook"> <a
href="http://www.shareaholic.com/api/share/?title=Fitting+Grails+in+an+Active+Directory+and+NTLM+SSO+Groove&amp;link=http://www.nslms.com/2010/02/10/fitting-grails-in-an-active-directory-and-ntml-sso-groove/&amp;notes=This%20is%20my%20first%20installment%20in%20the%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20and%20it%20deals%20with%20the%20first%20thing%20you%27re%20going%20to%20need%20to%20consider%20if%20you%20are%20deploying%20your%20Grails%2FGroovy%20applications%20in%20the%20average%20corporate%20IT%20infrastructure%2C%20Single%20Sign%20On%20with%20Active%20Directory%20and%20NTLM.%20%20Like%20it%20or%20not%2C%20b&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li
class="shr-linkedin"> <a
href="http://www.shareaholic.com/api/share/?title=Fitting+Grails+in+an+Active+Directory+and+NTLM+SSO+Groove&amp;link=http://www.nslms.com/2010/02/10/fitting-grails-in-an-active-directory-and-ntml-sso-groove/&amp;notes=This%20is%20my%20first%20installment%20in%20the%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20and%20it%20deals%20with%20the%20first%20thing%20you%27re%20going%20to%20need%20to%20consider%20if%20you%20are%20deploying%20your%20Grails%2FGroovy%20applications%20in%20the%20average%20corporate%20IT%20infrastructure%2C%20Single%20Sign%20On%20with%20Active%20Directory%20and%20NTLM.%20%20Like%20it%20or%20not%2C%20b&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a></li><li
class="shr-mail"> <a
href="http://www.shareaholic.com/api/share/?title=Fitting%20Grails%20in%20an%20Active%20Directory%20and%20NTLM%20SSO%20Groove&amp;link=http://www.nslms.com/2010/02/10/fitting-grails-in-an-active-directory-and-ntml-sso-groove/&amp;notes=This%20is%20my%20first%20installment%20in%20the%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20and%20it%20deals%20with%20the%20first%20thing%20you%27re%20going%20to%20need%20to%20consider%20if%20you%20are%20deploying%20your%20Grails%2FGroovy%20applications%20in%20the%20average%20corporate%20IT%20infrastructure%2C%20Single%20Sign%20On%20with%20Active%20Directory%20and%20NTLM.%20%20Like%20it%20or%20not%2C%20b&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=201&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a></li><li
class="shr-posterous"> <a
href="http://www.shareaholic.com/api/share/?title=Fitting+Grails+in+an+Active+Directory+and+NTLM+SSO+Groove&amp;link=http://www.nslms.com/2010/02/10/fitting-grails-in-an-active-directory-and-ntml-sso-groove/&amp;notes=This%20is%20my%20first%20installment%20in%20the%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20and%20it%20deals%20with%20the%20first%20thing%20you%27re%20going%20to%20need%20to%20consider%20if%20you%20are%20deploying%20your%20Grails%2FGroovy%20applications%20in%20the%20average%20corporate%20IT%20infrastructure%2C%20Single%20Sign%20On%20with%20Active%20Directory%20and%20NTLM.%20%20Like%20it%20or%20not%2C%20b&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=210&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this to Posterous">Post this to Posterous</a></li><li
class="shr-twitter"> <a
href="http://www.shareaholic.com/api/share/?title=Fitting+Grails+in+an+Active+Directory+and+NTLM+SSO+Groove&amp;link=http://www.nslms.com/2010/02/10/fitting-grails-in-an-active-directory-and-ntml-sso-groove/&amp;notes=This%20is%20my%20first%20installment%20in%20the%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20and%20it%20deals%20with%20the%20first%20thing%20you%27re%20going%20to%20need%20to%20consider%20if%20you%20are%20deploying%20your%20Grails%2FGroovy%20applications%20in%20the%20average%20corporate%20IT%20infrastructure%2C%20Single%20Sign%20On%20with%20Active%20Directory%20and%20NTLM.%20%20Like%20it%20or%20not%2C%20b&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a></li><li
class="shr-digg"> <a
href="http://www.shareaholic.com/api/share/?title=Fitting+Grails+in+an+Active+Directory+and+NTLM+SSO+Groove&amp;link=http://www.nslms.com/2010/02/10/fitting-grails-in-an-active-directory-and-ntml-sso-groove/&amp;notes=This%20is%20my%20first%20installment%20in%20the%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20and%20it%20deals%20with%20the%20first%20thing%20you%27re%20going%20to%20need%20to%20consider%20if%20you%20are%20deploying%20your%20Grails%2FGroovy%20applications%20in%20the%20average%20corporate%20IT%20infrastructure%2C%20Single%20Sign%20On%20with%20Active%20Directory%20and%20NTLM.%20%20Like%20it%20or%20not%2C%20b&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a></li><li
class="shr-friendfeed"> <a
href="http://www.shareaholic.com/api/share/?title=Fitting+Grails+in+an+Active+Directory+and+NTLM+SSO+Groove&amp;link=http://www.nslms.com/2010/02/10/fitting-grails-in-an-active-directory-and-ntml-sso-groove/&amp;notes=This%20is%20my%20first%20installment%20in%20the%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20and%20it%20deals%20with%20the%20first%20thing%20you%27re%20going%20to%20need%20to%20consider%20if%20you%20are%20deploying%20your%20Grails%2FGroovy%20applications%20in%20the%20average%20corporate%20IT%20infrastructure%2C%20Single%20Sign%20On%20with%20Active%20Directory%20and%20NTLM.%20%20Like%20it%20or%20not%2C%20b&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=43&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li
class="shr-googlereader"> <a
href="http://www.shareaholic.com/api/share/?title=Fitting+Grails+in+an+Active+Directory+and+NTLM+SSO+Groove&amp;link=http://www.nslms.com/2010/02/10/fitting-grails-in-an-active-directory-and-ntml-sso-groove/&amp;notes=This%20is%20my%20first%20installment%20in%20the%20What%20Grooves%20You%3F%20series%20of%20posts%2C%20and%20it%20deals%20with%20the%20first%20thing%20you%27re%20going%20to%20need%20to%20consider%20if%20you%20are%20deploying%20your%20Grails%2FGroovy%20applications%20in%20the%20average%20corporate%20IT%20infrastructure%2C%20Single%20Sign%20On%20with%20Active%20Directory%20and%20NTLM.%20%20Like%20it%20or%20not%2C%20b&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a></li></ul><div
style="clear: both;"></div><div
class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a
target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div><div
style="clear: both;"></div></div> ]]></content:encoded> <wfw:commentRss>http://www.nslms.com/2010/02/10/fitting-grails-in-an-active-directory-and-ntml-sso-groove/feed/</wfw:commentRss> <slash:comments>28</slash:comments> </item> <item><title>What Grooves You?</title><link>http://www.nslms.com/2010/02/05/what-grooves-you/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link> <comments>http://www.nslms.com/2010/02/05/what-grooves-you/#comments</comments> <pubDate>Fri, 05 Feb 2010 19:44:01 +0000</pubDate> <dc:creator>RyanG</dc:creator> <category><![CDATA[Grails/Groovy]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[grails]]></category> <category><![CDATA[groovy]]></category> <category><![CDATA[learning curve]]></category> <category><![CDATA[linkedin]]></category> <guid
isPermaLink="false">http://www.nslms.com/?p=376</guid> <description><![CDATA[In my &#34;Day Job&#34;, we design and build our applications using Microsoft technologies. In particular, we&#8217;re using C#, Silverlight, and IIS to build and deploy our web applications. This makes good sense because the vendors we use are well versed in the Microsoft technology, and like the IT infrastructure of a lot of medium and [...]]]></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%2Fwww.nslms.com%2F2010%2F02%2F05%2Fwhat-grooves-you%2F"><br
/> <img
src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.nslms.com%2F2010%2F02%2F05%2Fwhat-grooves-you%2F&amp;source=rjgeyer&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br
/> </a></div><p>In my &quot;Day Job&quot;, we design and build our applications using Microsoft technologies.  In particular, we&#8217;re using C#, Silverlight, and IIS to build and deploy our web applications.  This makes good sense because the vendors we use are well versed in the Microsoft technology, and like the IT infrastructure of a lot of medium and large companies Microsoft solutions are at the forefront.  It&#8217;s becoming apparent though that we&#8217;re going to have to consider our options and possibly embrace a different technology stack to properly scale and support the applications we&#8217;re building.</p><p>While I knew that Java servlets and the Spring Framework were the answers, credit goes to my boss <a
href="http://www.linkedin.com/profile?viewProfile=&#038;key=11181889">Scott Ellis</a> for really doing a deep dive into what technologies are on offer, and coming up with using Grails and Groovy as the best solution for us.  Which brings me to the reason for this blog post.  I&#8217;ve been spending some time playing around with Grails and Groovy, and familiarizing myself with the technology and what is on offer.  I intend to do a series of posts here about my discovery process, what problems I encounter, and how I resolve them.</p><p>From the searching I&#8217;ve had to do in order to get answers or better understanding about the challenges I&#8217;ve faced, I think I have a chance to be a real resource to others who are just starting out with Grails and Groovy.  What&#8217;s more I&#8217;m writing from the perspective of a relative newbie to the Java world.  Stay tuned as you follow my journey into Grails and Groovy. <i><b>*Spoiler alert* &#8211; I like it, a LOT!</b></i></p><div
class="shr-bookmarks shr-bookmarks-center"><ul
class="socials"><li
class="shr-blogger"> <a
href="http://www.shareaholic.com/api/share/?title=What+Grooves+You%3F&amp;link=http://www.nslms.com/2010/02/05/what-grooves-you/&amp;notes=In%20my%20%26quot%3BDay%20Job%26quot%3B%2C%20we%20design%20and%20build%20our%20applications%20using%20Microsoft%20technologies.%20%20In%20particular%2C%20we%27re%20using%20C%23%2C%20Silverlight%2C%20and%20IIS%20to%20build%20and%20deploy%20our%20web%20applications.%20%20This%20makes%20good%20sense%20because%20the%20vendors%20we%20use%20are%20well%20versed%20in%20the%20Microsoft%20technology%2C%20and%20like%20the%20IT%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=219&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a></li><li
class="shr-comfeed"> <a
href="http://www.nslms.com/2010/02/05/what-grooves-you/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a></li><li
class="shr-facebook"> <a
href="http://www.shareaholic.com/api/share/?title=What+Grooves+You%3F&amp;link=http://www.nslms.com/2010/02/05/what-grooves-you/&amp;notes=In%20my%20%26quot%3BDay%20Job%26quot%3B%2C%20we%20design%20and%20build%20our%20applications%20using%20Microsoft%20technologies.%20%20In%20particular%2C%20we%27re%20using%20C%23%2C%20Silverlight%2C%20and%20IIS%20to%20build%20and%20deploy%20our%20web%20applications.%20%20This%20makes%20good%20sense%20because%20the%20vendors%20we%20use%20are%20well%20versed%20in%20the%20Microsoft%20technology%2C%20and%20like%20the%20IT%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li
class="shr-linkedin"> <a
href="http://www.shareaholic.com/api/share/?title=What+Grooves+You%3F&amp;link=http://www.nslms.com/2010/02/05/what-grooves-you/&amp;notes=In%20my%20%26quot%3BDay%20Job%26quot%3B%2C%20we%20design%20and%20build%20our%20applications%20using%20Microsoft%20technologies.%20%20In%20particular%2C%20we%27re%20using%20C%23%2C%20Silverlight%2C%20and%20IIS%20to%20build%20and%20deploy%20our%20web%20applications.%20%20This%20makes%20good%20sense%20because%20the%20vendors%20we%20use%20are%20well%20versed%20in%20the%20Microsoft%20technology%2C%20and%20like%20the%20IT%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a></li><li
class="shr-mail"> <a
href="http://www.shareaholic.com/api/share/?title=What%20Grooves%20You%3F&amp;link=http://www.nslms.com/2010/02/05/what-grooves-you/&amp;notes=In%20my%20%26quot%3BDay%20Job%26quot%3B%2C%20we%20design%20and%20build%20our%20applications%20using%20Microsoft%20technologies.%20%20In%20particular%2C%20we%27re%20using%20C%23%2C%20Silverlight%2C%20and%20IIS%20to%20build%20and%20deploy%20our%20web%20applications.%20%20This%20makes%20good%20sense%20because%20the%20vendors%20we%20use%20are%20well%20versed%20in%20the%20Microsoft%20technology%2C%20and%20like%20the%20IT%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=201&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a></li><li
class="shr-posterous"> <a
href="http://www.shareaholic.com/api/share/?title=What+Grooves+You%3F&amp;link=http://www.nslms.com/2010/02/05/what-grooves-you/&amp;notes=In%20my%20%26quot%3BDay%20Job%26quot%3B%2C%20we%20design%20and%20build%20our%20applications%20using%20Microsoft%20technologies.%20%20In%20particular%2C%20we%27re%20using%20C%23%2C%20Silverlight%2C%20and%20IIS%20to%20build%20and%20deploy%20our%20web%20applications.%20%20This%20makes%20good%20sense%20because%20the%20vendors%20we%20use%20are%20well%20versed%20in%20the%20Microsoft%20technology%2C%20and%20like%20the%20IT%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=210&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this to Posterous">Post this to Posterous</a></li><li
class="shr-twitter"> <a
href="http://www.shareaholic.com/api/share/?title=What+Grooves+You%3F&amp;link=http://www.nslms.com/2010/02/05/what-grooves-you/&amp;notes=In%20my%20%26quot%3BDay%20Job%26quot%3B%2C%20we%20design%20and%20build%20our%20applications%20using%20Microsoft%20technologies.%20%20In%20particular%2C%20we%27re%20using%20C%23%2C%20Silverlight%2C%20and%20IIS%20to%20build%20and%20deploy%20our%20web%20applications.%20%20This%20makes%20good%20sense%20because%20the%20vendors%20we%20use%20are%20well%20versed%20in%20the%20Microsoft%20technology%2C%20and%20like%20the%20IT%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a></li><li
class="shr-digg"> <a
href="http://www.shareaholic.com/api/share/?title=What+Grooves+You%3F&amp;link=http://www.nslms.com/2010/02/05/what-grooves-you/&amp;notes=In%20my%20%26quot%3BDay%20Job%26quot%3B%2C%20we%20design%20and%20build%20our%20applications%20using%20Microsoft%20technologies.%20%20In%20particular%2C%20we%27re%20using%20C%23%2C%20Silverlight%2C%20and%20IIS%20to%20build%20and%20deploy%20our%20web%20applications.%20%20This%20makes%20good%20sense%20because%20the%20vendors%20we%20use%20are%20well%20versed%20in%20the%20Microsoft%20technology%2C%20and%20like%20the%20IT%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a></li><li
class="shr-friendfeed"> <a
href="http://www.shareaholic.com/api/share/?title=What+Grooves+You%3F&amp;link=http://www.nslms.com/2010/02/05/what-grooves-you/&amp;notes=In%20my%20%26quot%3BDay%20Job%26quot%3B%2C%20we%20design%20and%20build%20our%20applications%20using%20Microsoft%20technologies.%20%20In%20particular%2C%20we%27re%20using%20C%23%2C%20Silverlight%2C%20and%20IIS%20to%20build%20and%20deploy%20our%20web%20applications.%20%20This%20makes%20good%20sense%20because%20the%20vendors%20we%20use%20are%20well%20versed%20in%20the%20Microsoft%20technology%2C%20and%20like%20the%20IT%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=43&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li
class="shr-googlereader"> <a
href="http://www.shareaholic.com/api/share/?title=What+Grooves+You%3F&amp;link=http://www.nslms.com/2010/02/05/what-grooves-you/&amp;notes=In%20my%20%26quot%3BDay%20Job%26quot%3B%2C%20we%20design%20and%20build%20our%20applications%20using%20Microsoft%20technologies.%20%20In%20particular%2C%20we%27re%20using%20C%23%2C%20Silverlight%2C%20and%20IIS%20to%20build%20and%20deploy%20our%20web%20applications.%20%20This%20makes%20good%20sense%20because%20the%20vendors%20we%20use%20are%20well%20versed%20in%20the%20Microsoft%20technology%2C%20and%20like%20the%20IT%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a></li></ul><div
style="clear: both;"></div><div
class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a
target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div><div
style="clear: both;"></div></div> ]]></content:encoded> <wfw:commentRss>http://www.nslms.com/2010/02/05/what-grooves-you/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Catching the Wave</title><link>http://www.nslms.com/2009/11/06/catching-the-wave/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link> <comments>http://www.nslms.com/2009/11/06/catching-the-wave/#comments</comments> <pubDate>Fri, 06 Nov 2009 18:42:49 +0000</pubDate> <dc:creator>RyanG</dc:creator> <category><![CDATA[Cloud computing]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[linkedin]]></category> <guid
isPermaLink="false">http://www.nslms.com/?p=301</guid> <description><![CDATA[I am something of a Google Zealot, I was using the search engine back before many people knew what it was and haven&#8217;t strayed since. I&#8217;ve been using GMail for the better part of two years, and it handles ALL of my incoming mail, I even forward all of the emails from my self hosted [...]]]></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%2Fwww.nslms.com%2F2009%2F11%2F06%2Fcatching-the-wave%2F"><br
/> <img
src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.nslms.com%2F2009%2F11%2F06%2Fcatching-the-wave%2F&amp;source=rjgeyer&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br
/> </a></div><p>I am something of a Google Zealot, I was using the search engine back before many people knew what it was and haven&#8217;t strayed since.  I&#8217;ve been using GMail for the better part of two years, and it handles ALL of my incoming mail, I even forward all of the emails from my self hosted domains to it.  I use Google Docs for everything, including writing and storing invoices for my consulting work and any of my other &#8220;office&#8221; needs.  And I use Google Voice daily for business phone calls.  We used Google Maps to find and track rental homes, and it helped us find the place we&#8217;re living in now.  Google Analytics keeps a finger on the pulse of the (itty bitty) traffic on this site.  Google Reader is my RSS reader of choice, which I use almost strictly through a gadget on my iGoogle homepage along with tgadget for Twitter.  I sync my iPhone with Google Calendar, and wouldn&#8217;t know what I&#8217;m doing any particular day without it.  You get the idea. <img
src='http://www.nslms.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p><p>So you can imagine that when I heard about Google Wave, I instantly signed up to receive an early invite.  And as you can probably also imagine, I was super disappointed when the first set of invites went out to the public, and I didn&#8217;t get mine!  I watched as many of the people I follow on Twitter announced that they&#8217;d received their invite, and were happily getting started with Google Wave.  Of course, many of them were reporting serious usability issues and disappointments but I was never-the-less anxious to get my peek at it.  After a few short weeks I managed to trade a Google Voice invite for a Google Wave invite.</p><p>Now getting the wave invite was&#8230; Interesting..  Evidently when a user is granted some discretionary invitations they aren&#8217;t sent out immediately when used.  Instead a user &#8220;nominates&#8221; a person to receive a Google Wave account.  Apparently there is some waiting involved, and I suspect some manual human intervention on the part of Google in order to actually send the concrete invitation.  After waiting four days (two of which were the weekend) I actually received the email that my invitation had arrived!</p><p>My initial interaction with Wave was reasonably short.  I watched a couple of the introduction videos, make a few setting changes to my profile, added a couple of people who I knew were on Wave, and logged out.  My first real Wave was from an acquaintance of mine from Twitter who had also recently gotten Wave.  We both admitted that we were excited to have the new tool, but really had very little idea of what it was really intended for!</p><p>After having a couple interactions with a few others later that day, I started to get a feel for the interface and the power of the tool.  See, I&#8217;m currently working on a software project which is reasonably large in scope.  The nature of the company I work for means that we didn&#8217;t have the time, money, or expertise to hire a big enough development team to accomplish the software solution we&#8217;re trying to build.  So, we&#8217;re managing with myself as the lead architect, a business analyst who knows what this thing is supposed to do, and a project manager on our side.  Then we&#8217;re having all of the development work done by an offshore team.</p><p>Very quickly it struck me that Wave lends itself VERY well to this sort of thing, and in fact I think real-time collaboration for creative/design purposes is exactly what this tool is designed for.  In many of the sessions of collaboration that we&#8217;ve had over the phone, having a parallel wave would be invaluable!  Imagine an integration with Google Docs, I can create a wordpressing doc, a presentation, or a spreadsheet and simply attach it to the wave.  Or I can take a screenshot and toss it in there where it is appropriate.  Everyone has visibility to the results.  This thing is DESIGNED for agile, if you ask me.</p><p>That said, this is still a very early version.  In all of the &#8220;buzz&#8221; about Wave it was claimed that it will contact you in any way that is appropriate.  If you&#8217;re at your computer, and logged into Wave, you&#8217;d get the real-time view.  Not logged in?  That&#8217;s okay we&#8217;ll nag you by email.  Not at a computer?  Easy you&#8217;ll get an SMS message.  None of that functionality seems to be there yet though, as there is no place to supply my email address (you&#8217;re supplied with an @googlewave.com address which you can&#8217;t access), or my phone number (should already know my Google Voice number).  And there is the matter of stability.  It certainly has some kinks to be worked out.</p><p>So, now that I&#8217;ve caught the Wave, I&#8217;m looking forward to really starting to use it to my advantage and riding along to see how the tool evolves.  Isn&#8217;t it fun being an early adopter?</p><div
class="shr-bookmarks shr-bookmarks-center"><ul
class="socials"><li
class="shr-blogger"> <a
href="http://www.shareaholic.com/api/share/?title=Catching+the+Wave&amp;link=http://www.nslms.com/2009/11/06/catching-the-wave/&amp;notes=I%20am%20something%20of%20a%20Google%20Zealot%2C%20I%20was%20using%20the%20search%20engine%20back%20before%20many%20people%20knew%20what%20it%20was%20and%20haven%27t%20strayed%20since.%20%20I%27ve%20been%20using%20GMail%20for%20the%20better%20part%20of%20two%20years%2C%20and%20it%20handles%20ALL%20of%20my%20incoming%20mail%2C%20I%20even%20forward%20all%20of%20the%20emails%20from%20my%20self%20hosted%20domains%20to%20it.%20%20I&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=219&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a></li><li
class="shr-comfeed"> <a
href="http://www.nslms.com/2009/11/06/catching-the-wave/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a></li><li
class="shr-facebook"> <a
href="http://www.shareaholic.com/api/share/?title=Catching+the+Wave&amp;link=http://www.nslms.com/2009/11/06/catching-the-wave/&amp;notes=I%20am%20something%20of%20a%20Google%20Zealot%2C%20I%20was%20using%20the%20search%20engine%20back%20before%20many%20people%20knew%20what%20it%20was%20and%20haven%27t%20strayed%20since.%20%20I%27ve%20been%20using%20GMail%20for%20the%20better%20part%20of%20two%20years%2C%20and%20it%20handles%20ALL%20of%20my%20incoming%20mail%2C%20I%20even%20forward%20all%20of%20the%20emails%20from%20my%20self%20hosted%20domains%20to%20it.%20%20I&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li
class="shr-linkedin"> <a
href="http://www.shareaholic.com/api/share/?title=Catching+the+Wave&amp;link=http://www.nslms.com/2009/11/06/catching-the-wave/&amp;notes=I%20am%20something%20of%20a%20Google%20Zealot%2C%20I%20was%20using%20the%20search%20engine%20back%20before%20many%20people%20knew%20what%20it%20was%20and%20haven%27t%20strayed%20since.%20%20I%27ve%20been%20using%20GMail%20for%20the%20better%20part%20of%20two%20years%2C%20and%20it%20handles%20ALL%20of%20my%20incoming%20mail%2C%20I%20even%20forward%20all%20of%20the%20emails%20from%20my%20self%20hosted%20domains%20to%20it.%20%20I&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a></li><li
class="shr-mail"> <a
href="http://www.shareaholic.com/api/share/?title=Catching%20the%20Wave&amp;link=http://www.nslms.com/2009/11/06/catching-the-wave/&amp;notes=I%20am%20something%20of%20a%20Google%20Zealot%2C%20I%20was%20using%20the%20search%20engine%20back%20before%20many%20people%20knew%20what%20it%20was%20and%20haven%27t%20strayed%20since.%20%20I%27ve%20been%20using%20GMail%20for%20the%20better%20part%20of%20two%20years%2C%20and%20it%20handles%20ALL%20of%20my%20incoming%20mail%2C%20I%20even%20forward%20all%20of%20the%20emails%20from%20my%20self%20hosted%20domains%20to%20it.%20%20I&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=201&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a></li><li
class="shr-posterous"> <a
href="http://www.shareaholic.com/api/share/?title=Catching+the+Wave&amp;link=http://www.nslms.com/2009/11/06/catching-the-wave/&amp;notes=I%20am%20something%20of%20a%20Google%20Zealot%2C%20I%20was%20using%20the%20search%20engine%20back%20before%20many%20people%20knew%20what%20it%20was%20and%20haven%27t%20strayed%20since.%20%20I%27ve%20been%20using%20GMail%20for%20the%20better%20part%20of%20two%20years%2C%20and%20it%20handles%20ALL%20of%20my%20incoming%20mail%2C%20I%20even%20forward%20all%20of%20the%20emails%20from%20my%20self%20hosted%20domains%20to%20it.%20%20I&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=210&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this to Posterous">Post this to Posterous</a></li><li
class="shr-twitter"> <a
href="http://www.shareaholic.com/api/share/?title=Catching+the+Wave&amp;link=http://www.nslms.com/2009/11/06/catching-the-wave/&amp;notes=I%20am%20something%20of%20a%20Google%20Zealot%2C%20I%20was%20using%20the%20search%20engine%20back%20before%20many%20people%20knew%20what%20it%20was%20and%20haven%27t%20strayed%20since.%20%20I%27ve%20been%20using%20GMail%20for%20the%20better%20part%20of%20two%20years%2C%20and%20it%20handles%20ALL%20of%20my%20incoming%20mail%2C%20I%20even%20forward%20all%20of%20the%20emails%20from%20my%20self%20hosted%20domains%20to%20it.%20%20I&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a></li><li
class="shr-digg"> <a
href="http://www.shareaholic.com/api/share/?title=Catching+the+Wave&amp;link=http://www.nslms.com/2009/11/06/catching-the-wave/&amp;notes=I%20am%20something%20of%20a%20Google%20Zealot%2C%20I%20was%20using%20the%20search%20engine%20back%20before%20many%20people%20knew%20what%20it%20was%20and%20haven%27t%20strayed%20since.%20%20I%27ve%20been%20using%20GMail%20for%20the%20better%20part%20of%20two%20years%2C%20and%20it%20handles%20ALL%20of%20my%20incoming%20mail%2C%20I%20even%20forward%20all%20of%20the%20emails%20from%20my%20self%20hosted%20domains%20to%20it.%20%20I&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a></li><li
class="shr-friendfeed"> <a
href="http://www.shareaholic.com/api/share/?title=Catching+the+Wave&amp;link=http://www.nslms.com/2009/11/06/catching-the-wave/&amp;notes=I%20am%20something%20of%20a%20Google%20Zealot%2C%20I%20was%20using%20the%20search%20engine%20back%20before%20many%20people%20knew%20what%20it%20was%20and%20haven%27t%20strayed%20since.%20%20I%27ve%20been%20using%20GMail%20for%20the%20better%20part%20of%20two%20years%2C%20and%20it%20handles%20ALL%20of%20my%20incoming%20mail%2C%20I%20even%20forward%20all%20of%20the%20emails%20from%20my%20self%20hosted%20domains%20to%20it.%20%20I&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=43&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li
class="shr-googlereader"> <a
href="http://www.shareaholic.com/api/share/?title=Catching+the+Wave&amp;link=http://www.nslms.com/2009/11/06/catching-the-wave/&amp;notes=I%20am%20something%20of%20a%20Google%20Zealot%2C%20I%20was%20using%20the%20search%20engine%20back%20before%20many%20people%20knew%20what%20it%20was%20and%20haven%27t%20strayed%20since.%20%20I%27ve%20been%20using%20GMail%20for%20the%20better%20part%20of%20two%20years%2C%20and%20it%20handles%20ALL%20of%20my%20incoming%20mail%2C%20I%20even%20forward%20all%20of%20the%20emails%20from%20my%20self%20hosted%20domains%20to%20it.%20%20I&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a></li></ul><div
style="clear: both;"></div><div
class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a
target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div><div
style="clear: both;"></div></div> ]]></content:encoded> <wfw:commentRss>http://www.nslms.com/2009/11/06/catching-the-wave/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>You get what you pay for, or less!</title><link>http://www.nslms.com/2009/09/13/you-get-what-you-pay-for-or-less/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link> <comments>http://www.nslms.com/2009/09/13/you-get-what-you-pay-for-or-less/#comments</comments> <pubDate>Mon, 14 Sep 2009 04:00:25 +0000</pubDate> <dc:creator>RyanG</dc:creator> <category><![CDATA[Photography]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[cheap flash]]></category> <category><![CDATA[flash]]></category> <category><![CDATA[iTTL]]></category> <category><![CDATA[linkedin]]></category> <category><![CDATA[nikon]]></category> <category><![CDATA[Pheonix]]></category> <category><![CDATA[Phoenix DZBIS-112iTTL]]></category> <guid
isPermaLink="false">http://www.nslms.com/?p=223</guid> <description><![CDATA[So you likely know that I recently dropped and broke my Nikon SB600 flash. Disappointed as I was about this, I was already thinking of how I&#8217;d replace it. My searches for Nikon compatible flashes had always included these apparently super affordable Phoenix flashes. Now, of course, I was always very suspicious of these for [...]]]></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%2Fwww.nslms.com%2F2009%2F09%2F13%2Fyou-get-what-you-pay-for-or-less%2F"><br
/> <img
src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.nslms.com%2F2009%2F09%2F13%2Fyou-get-what-you-pay-for-or-less%2F&amp;source=rjgeyer&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br
/> </a></div><p><a
href="http://www.flickr.com/photos/rgeyer/3917686231/"><img
src="http://farm4.static.flickr.com/3518/3917686231_f6e83b6b44_m.jpg" alt="Phoenix Flash" class="alignright" /></a>So you likely know that I recently dropped and broke my <a
href="http://www.nslms.com/2009/09/07/like-a-flash-in-the-pan/">Nikon SB600 flash</a>.  Disappointed as I was about this, I was already thinking of how I&#8217;d replace it.  My searches for Nikon compatible flashes had always included these apparently super affordable Phoenix flashes.  Now, of course, I was always very suspicious of these for a couple of reasons.  First, in all the auctions and other sites selling these I never saw information indicating if this had ANY manual control, and there was never a picture of the rear panel of the unit!  Second, there weren&#8217;t really any reviews of it online.  I found a few, but usually it was on something like Amazon where it was fairly apparent that those reviewing were (at best) uninformed users who wouldn&#8217;t know the difference between a &#8220;good&#8221; flash and a bad one.</p><p>In spite of those facts though, I convinced myself that spending $80 to find out if the thing is any good couldn&#8217;t hurt, right?  Wrong!  The thing got shipped reasonably quickly to me from the eBay seller, and upon opening it up it seemed like it had some potential.  Yes, it was kinda cheapy plastic and felt light, but that is what I expected for something so inexpensive.  The real dissappoinment came when I put it on my camera, and snapped a few shots.  You can see the results <a
href="http://flickr.com/gp/rgeyer/2tZ4ie">here</a>.  Needless to say this thing, even when doing full power pops, can&#8217;t provide enough light to expose a shot properly.  This, in spite of the fact that it&#8217;s a big, imposing looking flash.  They did a lot to try to make it look like an SB800, hinting that it might actually have some decent performance.</p><p><a
href="http://www.flickr.com/photos/rgeyer/3918464666/"><img
src="http://farm3.static.flickr.com/2528/3918464666_4f92a50c0a_m.jpg" alt="Back panel" class="alignleft" /></a>So now, to answer some questions I had about it.  This is strictly intended for use with iTTL.  The back panel just contains a couple switches, one to turn it on, and one to switch &#8220;modes, and a guide for ISO/zoom/distance that this flash supposedly covers.  The switch to change between &#8220;BL&#8221; and &#8220;STD&#8221; has absolutely no influence on the poor performance.  Using a Cactus v2s to pop it seems to do only a very low power pop and the flash does not seem to recharge afterward.</p><p>The zoom is manual which is to be expected, and goes from 28mm to 85mm.  When I zoomed it in to 85mm, and fired it I noticed some artifacts from the lens/diffuser which were distracting <a
href="http://www.flickr.com/photos/rgeyer/3918508030/">see here</a>.</p><p>My plan was to use it along with a Nikon SC-28 iTTL cable to simulate the way I was using my Nikon SB600 when <a
href="http://www.nslms.com/2009/09/06/of-living-insects-and-dying-electronics/">shooting butterflies</a> on the fateful day that I broke it.  I figured that I would lose some convenience having to go with a cable, and zoom the flash manually.  I didn&#8217;t anticipate that the thing wouldn&#8217;t have enough power to expose a frame properly!  So if you&#8217;re wondering if this thing is any good, and maybe thinking you&#8217;re willing to give up a little performance and convenience for a STEAL of a flash, think again.  You do, sadly, get what you pay for.</p><p>For what I did actually do to replace my Nikon SB600, stay tuned.  I went on a bit of an ill advised shopping spree, and have some exciting stuff headed my way!</p><div
class="shr-bookmarks shr-bookmarks-center"><ul
class="socials"><li
class="shr-blogger"> <a
href="http://www.shareaholic.com/api/share/?title=You+get+what+you+pay+for%2C+or+less%21&amp;link=http://www.nslms.com/2009/09/13/you-get-what-you-pay-for-or-less/&amp;notes=So%20you%20likely%20know%20that%20I%20recently%20dropped%20and%20broke%20my%20Nikon%20SB600%20flash.%20%20Disappointed%20as%20I%20was%20about%20this%2C%20I%20was%20already%20thinking%20of%20how%20I%27d%20replace%20it.%20%20My%20searches%20for%20Nikon%20compatible%20flashes%20had%20always%20included%20these%20apparently%20super%20affordable%20Phoenix%20flashes.%20%20Now%2C%20of%20course%2C%20I%20was%20always%20v&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=219&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a></li><li
class="shr-comfeed"> <a
href="http://www.nslms.com/2009/09/13/you-get-what-you-pay-for-or-less/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a></li><li
class="shr-facebook"> <a
href="http://www.shareaholic.com/api/share/?title=You+get+what+you+pay+for%2C+or+less%21&amp;link=http://www.nslms.com/2009/09/13/you-get-what-you-pay-for-or-less/&amp;notes=So%20you%20likely%20know%20that%20I%20recently%20dropped%20and%20broke%20my%20Nikon%20SB600%20flash.%20%20Disappointed%20as%20I%20was%20about%20this%2C%20I%20was%20already%20thinking%20of%20how%20I%27d%20replace%20it.%20%20My%20searches%20for%20Nikon%20compatible%20flashes%20had%20always%20included%20these%20apparently%20super%20affordable%20Phoenix%20flashes.%20%20Now%2C%20of%20course%2C%20I%20was%20always%20v&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li
class="shr-linkedin"> <a
href="http://www.shareaholic.com/api/share/?title=You+get+what+you+pay+for%2C+or+less%21&amp;link=http://www.nslms.com/2009/09/13/you-get-what-you-pay-for-or-less/&amp;notes=So%20you%20likely%20know%20that%20I%20recently%20dropped%20and%20broke%20my%20Nikon%20SB600%20flash.%20%20Disappointed%20as%20I%20was%20about%20this%2C%20I%20was%20already%20thinking%20of%20how%20I%27d%20replace%20it.%20%20My%20searches%20for%20Nikon%20compatible%20flashes%20had%20always%20included%20these%20apparently%20super%20affordable%20Phoenix%20flashes.%20%20Now%2C%20of%20course%2C%20I%20was%20always%20v&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a></li><li
class="shr-mail"> <a
href="http://www.shareaholic.com/api/share/?title=You%20get%20what%20you%20pay%20for%2C%20or%20less%21&amp;link=http://www.nslms.com/2009/09/13/you-get-what-you-pay-for-or-less/&amp;notes=So%20you%20likely%20know%20that%20I%20recently%20dropped%20and%20broke%20my%20Nikon%20SB600%20flash.%20%20Disappointed%20as%20I%20was%20about%20this%2C%20I%20was%20already%20thinking%20of%20how%20I%27d%20replace%20it.%20%20My%20searches%20for%20Nikon%20compatible%20flashes%20had%20always%20included%20these%20apparently%20super%20affordable%20Phoenix%20flashes.%20%20Now%2C%20of%20course%2C%20I%20was%20always%20v&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=201&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a></li><li
class="shr-posterous"> <a
href="http://www.shareaholic.com/api/share/?title=You+get+what+you+pay+for%2C+or+less%21&amp;link=http://www.nslms.com/2009/09/13/you-get-what-you-pay-for-or-less/&amp;notes=So%20you%20likely%20know%20that%20I%20recently%20dropped%20and%20broke%20my%20Nikon%20SB600%20flash.%20%20Disappointed%20as%20I%20was%20about%20this%2C%20I%20was%20already%20thinking%20of%20how%20I%27d%20replace%20it.%20%20My%20searches%20for%20Nikon%20compatible%20flashes%20had%20always%20included%20these%20apparently%20super%20affordable%20Phoenix%20flashes.%20%20Now%2C%20of%20course%2C%20I%20was%20always%20v&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=210&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this to Posterous">Post this to Posterous</a></li><li
class="shr-twitter"> <a
href="http://www.shareaholic.com/api/share/?title=You+get+what+you+pay+for%2C+or+less%21&amp;link=http://www.nslms.com/2009/09/13/you-get-what-you-pay-for-or-less/&amp;notes=So%20you%20likely%20know%20that%20I%20recently%20dropped%20and%20broke%20my%20Nikon%20SB600%20flash.%20%20Disappointed%20as%20I%20was%20about%20this%2C%20I%20was%20already%20thinking%20of%20how%20I%27d%20replace%20it.%20%20My%20searches%20for%20Nikon%20compatible%20flashes%20had%20always%20included%20these%20apparently%20super%20affordable%20Phoenix%20flashes.%20%20Now%2C%20of%20course%2C%20I%20was%20always%20v&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a></li><li
class="shr-digg"> <a
href="http://www.shareaholic.com/api/share/?title=You+get+what+you+pay+for%2C+or+less%21&amp;link=http://www.nslms.com/2009/09/13/you-get-what-you-pay-for-or-less/&amp;notes=So%20you%20likely%20know%20that%20I%20recently%20dropped%20and%20broke%20my%20Nikon%20SB600%20flash.%20%20Disappointed%20as%20I%20was%20about%20this%2C%20I%20was%20already%20thinking%20of%20how%20I%27d%20replace%20it.%20%20My%20searches%20for%20Nikon%20compatible%20flashes%20had%20always%20included%20these%20apparently%20super%20affordable%20Phoenix%20flashes.%20%20Now%2C%20of%20course%2C%20I%20was%20always%20v&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a></li><li
class="shr-friendfeed"> <a
href="http://www.shareaholic.com/api/share/?title=You+get+what+you+pay+for%2C+or+less%21&amp;link=http://www.nslms.com/2009/09/13/you-get-what-you-pay-for-or-less/&amp;notes=So%20you%20likely%20know%20that%20I%20recently%20dropped%20and%20broke%20my%20Nikon%20SB600%20flash.%20%20Disappointed%20as%20I%20was%20about%20this%2C%20I%20was%20already%20thinking%20of%20how%20I%27d%20replace%20it.%20%20My%20searches%20for%20Nikon%20compatible%20flashes%20had%20always%20included%20these%20apparently%20super%20affordable%20Phoenix%20flashes.%20%20Now%2C%20of%20course%2C%20I%20was%20always%20v&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=43&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li
class="shr-googlereader"> <a
href="http://www.shareaholic.com/api/share/?title=You+get+what+you+pay+for%2C+or+less%21&amp;link=http://www.nslms.com/2009/09/13/you-get-what-you-pay-for-or-less/&amp;notes=So%20you%20likely%20know%20that%20I%20recently%20dropped%20and%20broke%20my%20Nikon%20SB600%20flash.%20%20Disappointed%20as%20I%20was%20about%20this%2C%20I%20was%20already%20thinking%20of%20how%20I%27d%20replace%20it.%20%20My%20searches%20for%20Nikon%20compatible%20flashes%20had%20always%20included%20these%20apparently%20super%20affordable%20Phoenix%20flashes.%20%20Now%2C%20of%20course%2C%20I%20was%20always%20v&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a></li></ul><div
style="clear: both;"></div><div
class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a
target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div><div
style="clear: both;"></div></div> ]]></content:encoded> <wfw:commentRss>http://www.nslms.com/2009/09/13/you-get-what-you-pay-for-or-less/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Crashing at a new pad</title><link>http://www.nslms.com/2009/08/23/crashing-at-a-new-pad/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link> <comments>http://www.nslms.com/2009/08/23/crashing-at-a-new-pad/#comments</comments> <pubDate>Sun, 23 Aug 2009 23:24:05 +0000</pubDate> <dc:creator>RyanG</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[linkedin]]></category> <guid
isPermaLink="false">http://www.nslms.com/?p=124</guid> <description><![CDATA[If you&#8217;re reading this, it means that the DNS records have replicated and Random Musings is now fully hosted on my shiny Linode VPS! I&#8217;ve been steadily growing out of my previous hosting solution over on Host My Site. All things being equal they&#8217;ve served me very well, but running WordPress started to demand more [...]]]></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%2Fwww.nslms.com%2F2009%2F08%2F23%2Fcrashing-at-a-new-pad%2F"><br
/> <img
src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.nslms.com%2F2009%2F08%2F23%2Fcrashing-at-a-new-pad%2F&amp;source=rjgeyer&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br
/> </a></div><p>If you&#8217;re reading this, it means that the DNS records have replicated and Random Musings is now fully hosted on my shiny <a
href="http://www.linode.com/">Linode VPS</a>!</p><p>I&#8217;ve been steadily growing out of my previous hosting solution over on <a
href="http://www.hostmysite.com/">Host My Site</a>.  All things being equal they&#8217;ve served me very well, but running WordPress started to demand more memory than they&#8217;d allocate for a shared hosting customer.  Then there&#8217;s the limited functionality of the PHP stack which I was starting to run up against quite regularly.</p><p>I have to say I&#8217;m SUPER pleased with <a
href="http://www.linode.com">Linode</a> so far.  I signed up for it on the 21st, and by today I&#8217;ve got it completely setup hosting web and email for three domains, with another on the way.  I was worried that it would cost me money, but when I account for the other hosting accounts I&#8217;ll be able to close I wind up money ahead.  Sweet!</p><p>Hopefully this change will be seamless to ya&#8217;ll, might notice an increase in speed.  Let me know if you see anything &#8220;odd&#8221;. <img
src='http://www.nslms.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p><div
class="shr-bookmarks shr-bookmarks-center"><ul
class="socials"><li
class="shr-blogger"> <a
href="http://www.shareaholic.com/api/share/?title=Crashing+at+a+new+pad&amp;link=http://www.nslms.com/2009/08/23/crashing-at-a-new-pad/&amp;notes=If%20you%27re%20reading%20this%2C%20it%20means%20that%20the%20DNS%20records%20have%20replicated%20and%20Random%20Musings%20is%20now%20fully%20hosted%20on%20my%20shiny%20Linode%20VPS%21%0D%0A%0D%0AI%27ve%20been%20steadily%20growing%20out%20of%20my%20previous%20hosting%20solution%20over%20on%20Host%20My%20Site.%20%20All%20things%20being%20equal%20they%27ve%20served%20me%20very%20well%2C%20but%20running%20Wordpress%20star&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=219&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a></li><li
class="shr-comfeed"> <a
href="http://www.nslms.com/2009/08/23/crashing-at-a-new-pad/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a></li><li
class="shr-facebook"> <a
href="http://www.shareaholic.com/api/share/?title=Crashing+at+a+new+pad&amp;link=http://www.nslms.com/2009/08/23/crashing-at-a-new-pad/&amp;notes=If%20you%27re%20reading%20this%2C%20it%20means%20that%20the%20DNS%20records%20have%20replicated%20and%20Random%20Musings%20is%20now%20fully%20hosted%20on%20my%20shiny%20Linode%20VPS%21%0D%0A%0D%0AI%27ve%20been%20steadily%20growing%20out%20of%20my%20previous%20hosting%20solution%20over%20on%20Host%20My%20Site.%20%20All%20things%20being%20equal%20they%27ve%20served%20me%20very%20well%2C%20but%20running%20Wordpress%20star&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li
class="shr-linkedin"> <a
href="http://www.shareaholic.com/api/share/?title=Crashing+at+a+new+pad&amp;link=http://www.nslms.com/2009/08/23/crashing-at-a-new-pad/&amp;notes=If%20you%27re%20reading%20this%2C%20it%20means%20that%20the%20DNS%20records%20have%20replicated%20and%20Random%20Musings%20is%20now%20fully%20hosted%20on%20my%20shiny%20Linode%20VPS%21%0D%0A%0D%0AI%27ve%20been%20steadily%20growing%20out%20of%20my%20previous%20hosting%20solution%20over%20on%20Host%20My%20Site.%20%20All%20things%20being%20equal%20they%27ve%20served%20me%20very%20well%2C%20but%20running%20Wordpress%20star&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a></li><li
class="shr-mail"> <a
href="http://www.shareaholic.com/api/share/?title=Crashing%20at%20a%20new%20pad&amp;link=http://www.nslms.com/2009/08/23/crashing-at-a-new-pad/&amp;notes=If%20you%27re%20reading%20this%2C%20it%20means%20that%20the%20DNS%20records%20have%20replicated%20and%20Random%20Musings%20is%20now%20fully%20hosted%20on%20my%20shiny%20Linode%20VPS%21%0D%0A%0D%0AI%27ve%20been%20steadily%20growing%20out%20of%20my%20previous%20hosting%20solution%20over%20on%20Host%20My%20Site.%20%20All%20things%20being%20equal%20they%27ve%20served%20me%20very%20well%2C%20but%20running%20Wordpress%20star&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=201&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a></li><li
class="shr-posterous"> <a
href="http://www.shareaholic.com/api/share/?title=Crashing+at+a+new+pad&amp;link=http://www.nslms.com/2009/08/23/crashing-at-a-new-pad/&amp;notes=If%20you%27re%20reading%20this%2C%20it%20means%20that%20the%20DNS%20records%20have%20replicated%20and%20Random%20Musings%20is%20now%20fully%20hosted%20on%20my%20shiny%20Linode%20VPS%21%0D%0A%0D%0AI%27ve%20been%20steadily%20growing%20out%20of%20my%20previous%20hosting%20solution%20over%20on%20Host%20My%20Site.%20%20All%20things%20being%20equal%20they%27ve%20served%20me%20very%20well%2C%20but%20running%20Wordpress%20star&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=210&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this to Posterous">Post this to Posterous</a></li><li
class="shr-twitter"> <a
href="http://www.shareaholic.com/api/share/?title=Crashing+at+a+new+pad&amp;link=http://www.nslms.com/2009/08/23/crashing-at-a-new-pad/&amp;notes=If%20you%27re%20reading%20this%2C%20it%20means%20that%20the%20DNS%20records%20have%20replicated%20and%20Random%20Musings%20is%20now%20fully%20hosted%20on%20my%20shiny%20Linode%20VPS%21%0D%0A%0D%0AI%27ve%20been%20steadily%20growing%20out%20of%20my%20previous%20hosting%20solution%20over%20on%20Host%20My%20Site.%20%20All%20things%20being%20equal%20they%27ve%20served%20me%20very%20well%2C%20but%20running%20Wordpress%20star&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a></li><li
class="shr-digg"> <a
href="http://www.shareaholic.com/api/share/?title=Crashing+at+a+new+pad&amp;link=http://www.nslms.com/2009/08/23/crashing-at-a-new-pad/&amp;notes=If%20you%27re%20reading%20this%2C%20it%20means%20that%20the%20DNS%20records%20have%20replicated%20and%20Random%20Musings%20is%20now%20fully%20hosted%20on%20my%20shiny%20Linode%20VPS%21%0D%0A%0D%0AI%27ve%20been%20steadily%20growing%20out%20of%20my%20previous%20hosting%20solution%20over%20on%20Host%20My%20Site.%20%20All%20things%20being%20equal%20they%27ve%20served%20me%20very%20well%2C%20but%20running%20Wordpress%20star&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a></li><li
class="shr-friendfeed"> <a
href="http://www.shareaholic.com/api/share/?title=Crashing+at+a+new+pad&amp;link=http://www.nslms.com/2009/08/23/crashing-at-a-new-pad/&amp;notes=If%20you%27re%20reading%20this%2C%20it%20means%20that%20the%20DNS%20records%20have%20replicated%20and%20Random%20Musings%20is%20now%20fully%20hosted%20on%20my%20shiny%20Linode%20VPS%21%0D%0A%0D%0AI%27ve%20been%20steadily%20growing%20out%20of%20my%20previous%20hosting%20solution%20over%20on%20Host%20My%20Site.%20%20All%20things%20being%20equal%20they%27ve%20served%20me%20very%20well%2C%20but%20running%20Wordpress%20star&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=43&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li
class="shr-googlereader"> <a
href="http://www.shareaholic.com/api/share/?title=Crashing+at+a+new+pad&amp;link=http://www.nslms.com/2009/08/23/crashing-at-a-new-pad/&amp;notes=If%20you%27re%20reading%20this%2C%20it%20means%20that%20the%20DNS%20records%20have%20replicated%20and%20Random%20Musings%20is%20now%20fully%20hosted%20on%20my%20shiny%20Linode%20VPS%21%0D%0A%0D%0AI%27ve%20been%20steadily%20growing%20out%20of%20my%20previous%20hosting%20solution%20over%20on%20Host%20My%20Site.%20%20All%20things%20being%20equal%20they%27ve%20served%20me%20very%20well%2C%20but%20running%20Wordpress%20star&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a></li></ul><div
style="clear: both;"></div><div
class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a
target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div><div
style="clear: both;"></div></div> ]]></content:encoded> <wfw:commentRss>http://www.nslms.com/2009/08/23/crashing-at-a-new-pad/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>UNYK Address Book</title><link>http://www.nslms.com/2008/12/22/unyk-address-book/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link> <comments>http://www.nslms.com/2008/12/22/unyk-address-book/#comments</comments> <pubDate>Tue, 23 Dec 2008 01:43:29 +0000</pubDate> <dc:creator>RyanG</dc:creator> <category><![CDATA[Cloud computing]]></category> <category><![CDATA[Rants]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[address book]]></category> <category><![CDATA[contact management]]></category> <category><![CDATA[goosync]]></category> <category><![CDATA[htc]]></category> <category><![CDATA[linkedin]]></category> <category><![CDATA[security]]></category> <category><![CDATA[unky]]></category> <guid
isPermaLink="false">http://www.nslms.com/?p=53</guid> <description><![CDATA[I just received an email today from one of my contacts on LinkedIn. It was an invitation to join this new UNYK Address Book application which is apparently in beta. I think I&#8217;ve made it clear that I&#8217;m a big fan of anything which centralizes my information and allows me to access it through a [...]]]></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%2Fwww.nslms.com%2F2008%2F12%2F22%2Funyk-address-book%2F"><br
/> <img
src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.nslms.com%2F2008%2F12%2F22%2Funyk-address-book%2F&amp;source=rjgeyer&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br
/> </a></div><p>I just received an email today from one of my contacts on <a
href="https://www.linkedin.com/">LinkedIn</a>.  It was an invitation to join this new <a
href="http://www.unyk.com/">UNYK</a> Address Book application which is apparently in beta.</p><p>I think I&#8217;ve made it clear that I&#8217;m a <a
href="http://www.nslms.com/2008/09/09/livin-on-the-web/">big fan</a> of anything which centralizes my information and allows me to access it through a web browser from anywhere, so I checked it out.</p><p>Overall, it looks quite promising.  It will harvest your existing contacts from several different locations (Yahoo!, Google, LinkedIn, Microsoft Outlook, MSN, etc.) and consolidate them.  When you sign up you provide your personal and professional contact information, and this in turn keeps your contact record up to date for anyone who has you in their address book.  Their premise is that everyone will eventually use them to manage their contact information, and therefore your address book will always be &#8220;automatically&#8221; up to date, because all of your contacts will have updated their information with UNYK.</p><p>My first, and perhaps biggest problem with the service is that they don&#8217;t provide an https:// option.  So as I&#8217;m entering all of this personal and professional data, as well as supplying my login credentials for these other services it&#8217;s all going across the wire in plain text!</p><p>My second problem is that I&#8217;m already using <a
href="https://www.goosync.com/">GooSync</a> to store my contacts, and then synchronize them with my HTC phone, which is my life line as far as contact information is concerned.</p><p>There is also some considerable controversy regarding the fact that it will effectively &#8220;spam&#8221; the contacts that you do import inviting them to join UNYK as well.  This is no doubt how the email was sent to me.  I&#8217;m less concerned about this than the previous two points however.</p><p>So in order for me to fully embrace this new UNYK solution, it&#8217;ll have to get a &#8220;secure&#8221; presence, and either integrate (which they seem to already do quite well with several other services) with GooSync, or provide the same functionality (syncing with my HTC).</p><p>Seems like a cool idea, but it&#8217;s not quite mature enough for me to dive in head first.  I&#8217;ll keep an eye out though!</p><p>EDIT:<br
/> Since I was more than a little bit surprised that there was no secure access to login and supply my credential for other services, I did a little further digging.  UNYK insists in their <a
href="http://www.unyk.com/en/Confidentiality">privacy policy</a> that they encrypt any &#8220;sensitive data&#8221; that goes across the wire.  Here it is directly from their site.</p><blockquote><p>How Secure Are Your Web Servers?  	[ ^ ]<br
/> The security of your personal information is important to us. When you enter sensitive information (such as credit card number) on our registration or order forms, we encrypt that information using secure socket layer technology (SSL).<br
/> To learn more about SSL, follow this link http://www.verisign.com/products-services/security-services/ssl/index.html.</p><p>We follow generally accepted industry standards to protect the personal information submitted to us, both during transmission and once we receive it. No method of transmission over the Internet, or method of electronic storage, is 100% secure, however. Therefore, while we strive to use commercially acceptable means to protect your personal information, we cannot guarantee its absolute security.</p><p>If you have any questions about security on our Web site, you can contact us.</p></blockquote><p>So, since it looked like they used a lot of Web 2.0 technologies I thought possibly they were doing some javascript magic to encrypt the stuff going across the wire, I did a little test with <a
href="http://www.wireshark.org/">Wireshark</a> to see what got sent.  I bit the bullet and imported my gmail contacts, and this was the result, with the password obscured by me, of course.</p><pre lang="bash">
POST /Scripts/dotNET/ContactFinderProxy/Services.asmx/ImportWebContacts HTTP/1.1
Host: www.unyk.com
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.17) Gecko/20081021 Firefox/2.0.0.17
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
X-Requested-With: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://www.unyk.com/Diffusion/main.asp?nub=5EDC7952-7D0D-445F-B49A-0E068F4CA09E
Content-Length: 76
Cookie: BIGipServerwebUnyk=185207306.12310.0000; s_cc=true; s_campaign=en-US-0064; s_cp_persist=en-US-0064; s_sq=%5B%5BB%5D%5D; s_vi=[CS]v1|49503BB000004A0E-A02085E000051AD[CE]; InfosCompleted=3; nub=5EDC7952%2D7D0D%2D445F%2DB49A%2D0E068F4CA09E; __qca=1224815862-86415704-76514833; __qcb=1181521546; UNYK=LoginPassword=&#038;LoginUsername=&#038;RememberOption=0
Pragma: no-cache
Cache-Control: no-cache
provider=Gmail&#038;username=qwikrex%40gmail.com&#038;password=*********&#038;useOctazen=true
</pre><p>Clearly not secure.  I do have to admit however that I seem to have been wrong about the mobile sync, they do provide this, though I&#8217;ll have no idea how well it works until they fix the security problem.</p><div
class="shr-bookmarks shr-bookmarks-center"><ul
class="socials"><li
class="shr-blogger"> <a
href="http://www.shareaholic.com/api/share/?title=UNYK+Address+Book&amp;link=http://www.nslms.com/2008/12/22/unyk-address-book/&amp;notes=I%20just%20received%20an%20email%20today%20from%20one%20of%20my%20contacts%20on%20LinkedIn.%20%20It%20was%20an%20invitation%20to%20join%20this%20new%20UNYK%20Address%20Book%20application%20which%20is%20apparently%20in%20beta.%0D%0A%0D%0AI%20think%20I%27ve%20made%20it%20clear%20that%20I%27m%20a%20big%20fan%20of%20anything%20which%20centralizes%20my%20information%20and%20allows%20me%20to%20access%20it%20through%20a%20web&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=219&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a></li><li
class="shr-comfeed"> <a
href="http://www.nslms.com/2008/12/22/unyk-address-book/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a></li><li
class="shr-facebook"> <a
href="http://www.shareaholic.com/api/share/?title=UNYK+Address+Book&amp;link=http://www.nslms.com/2008/12/22/unyk-address-book/&amp;notes=I%20just%20received%20an%20email%20today%20from%20one%20of%20my%20contacts%20on%20LinkedIn.%20%20It%20was%20an%20invitation%20to%20join%20this%20new%20UNYK%20Address%20Book%20application%20which%20is%20apparently%20in%20beta.%0D%0A%0D%0AI%20think%20I%27ve%20made%20it%20clear%20that%20I%27m%20a%20big%20fan%20of%20anything%20which%20centralizes%20my%20information%20and%20allows%20me%20to%20access%20it%20through%20a%20web&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li
class="shr-linkedin"> <a
href="http://www.shareaholic.com/api/share/?title=UNYK+Address+Book&amp;link=http://www.nslms.com/2008/12/22/unyk-address-book/&amp;notes=I%20just%20received%20an%20email%20today%20from%20one%20of%20my%20contacts%20on%20LinkedIn.%20%20It%20was%20an%20invitation%20to%20join%20this%20new%20UNYK%20Address%20Book%20application%20which%20is%20apparently%20in%20beta.%0D%0A%0D%0AI%20think%20I%27ve%20made%20it%20clear%20that%20I%27m%20a%20big%20fan%20of%20anything%20which%20centralizes%20my%20information%20and%20allows%20me%20to%20access%20it%20through%20a%20web&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a></li><li
class="shr-mail"> <a
href="http://www.shareaholic.com/api/share/?title=UNYK%20Address%20Book&amp;link=http://www.nslms.com/2008/12/22/unyk-address-book/&amp;notes=I%20just%20received%20an%20email%20today%20from%20one%20of%20my%20contacts%20on%20LinkedIn.%20%20It%20was%20an%20invitation%20to%20join%20this%20new%20UNYK%20Address%20Book%20application%20which%20is%20apparently%20in%20beta.%0D%0A%0D%0AI%20think%20I%27ve%20made%20it%20clear%20that%20I%27m%20a%20big%20fan%20of%20anything%20which%20centralizes%20my%20information%20and%20allows%20me%20to%20access%20it%20through%20a%20web&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=201&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a></li><li
class="shr-posterous"> <a
href="http://www.shareaholic.com/api/share/?title=UNYK+Address+Book&amp;link=http://www.nslms.com/2008/12/22/unyk-address-book/&amp;notes=I%20just%20received%20an%20email%20today%20from%20one%20of%20my%20contacts%20on%20LinkedIn.%20%20It%20was%20an%20invitation%20to%20join%20this%20new%20UNYK%20Address%20Book%20application%20which%20is%20apparently%20in%20beta.%0D%0A%0D%0AI%20think%20I%27ve%20made%20it%20clear%20that%20I%27m%20a%20big%20fan%20of%20anything%20which%20centralizes%20my%20information%20and%20allows%20me%20to%20access%20it%20through%20a%20web&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=210&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this to Posterous">Post this to Posterous</a></li><li
class="shr-twitter"> <a
href="http://www.shareaholic.com/api/share/?title=UNYK+Address+Book&amp;link=http://www.nslms.com/2008/12/22/unyk-address-book/&amp;notes=I%20just%20received%20an%20email%20today%20from%20one%20of%20my%20contacts%20on%20LinkedIn.%20%20It%20was%20an%20invitation%20to%20join%20this%20new%20UNYK%20Address%20Book%20application%20which%20is%20apparently%20in%20beta.%0D%0A%0D%0AI%20think%20I%27ve%20made%20it%20clear%20that%20I%27m%20a%20big%20fan%20of%20anything%20which%20centralizes%20my%20information%20and%20allows%20me%20to%20access%20it%20through%20a%20web&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a></li><li
class="shr-digg"> <a
href="http://www.shareaholic.com/api/share/?title=UNYK+Address+Book&amp;link=http://www.nslms.com/2008/12/22/unyk-address-book/&amp;notes=I%20just%20received%20an%20email%20today%20from%20one%20of%20my%20contacts%20on%20LinkedIn.%20%20It%20was%20an%20invitation%20to%20join%20this%20new%20UNYK%20Address%20Book%20application%20which%20is%20apparently%20in%20beta.%0D%0A%0D%0AI%20think%20I%27ve%20made%20it%20clear%20that%20I%27m%20a%20big%20fan%20of%20anything%20which%20centralizes%20my%20information%20and%20allows%20me%20to%20access%20it%20through%20a%20web&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a></li><li
class="shr-friendfeed"> <a
href="http://www.shareaholic.com/api/share/?title=UNYK+Address+Book&amp;link=http://www.nslms.com/2008/12/22/unyk-address-book/&amp;notes=I%20just%20received%20an%20email%20today%20from%20one%20of%20my%20contacts%20on%20LinkedIn.%20%20It%20was%20an%20invitation%20to%20join%20this%20new%20UNYK%20Address%20Book%20application%20which%20is%20apparently%20in%20beta.%0D%0A%0D%0AI%20think%20I%27ve%20made%20it%20clear%20that%20I%27m%20a%20big%20fan%20of%20anything%20which%20centralizes%20my%20information%20and%20allows%20me%20to%20access%20it%20through%20a%20web&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=43&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li
class="shr-googlereader"> <a
href="http://www.shareaholic.com/api/share/?title=UNYK+Address+Book&amp;link=http://www.nslms.com/2008/12/22/unyk-address-book/&amp;notes=I%20just%20received%20an%20email%20today%20from%20one%20of%20my%20contacts%20on%20LinkedIn.%20%20It%20was%20an%20invitation%20to%20join%20this%20new%20UNYK%20Address%20Book%20application%20which%20is%20apparently%20in%20beta.%0D%0A%0D%0AI%20think%20I%27ve%20made%20it%20clear%20that%20I%27m%20a%20big%20fan%20of%20anything%20which%20centralizes%20my%20information%20and%20allows%20me%20to%20access%20it%20through%20a%20web&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a></li></ul><div
style="clear: both;"></div><div
class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a
target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div><div
style="clear: both;"></div></div> ]]></content:encoded> <wfw:commentRss>http://www.nslms.com/2008/12/22/unyk-address-book/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Photo Sharing Services</title><link>http://www.nslms.com/2008/09/25/photo-sharing-services/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rss</link> <comments>http://www.nslms.com/2008/09/25/photo-sharing-services/#comments</comments> <pubDate>Thu, 25 Sep 2008 17:47:37 +0000</pubDate> <dc:creator>RyanG</dc:creator> <category><![CDATA[Cloud computing]]></category> <category><![CDATA[Photography]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[digital photo]]></category> <category><![CDATA[facebook]]></category> <category><![CDATA[flickr]]></category> <category><![CDATA[linkedin]]></category> <category><![CDATA[photo sharing]]></category> <category><![CDATA[photo storage]]></category> <category><![CDATA[picasa]]></category> <guid
isPermaLink="false">http://www.nslms.com/?p=38</guid> <description><![CDATA[Since I became a dad, and bought a dSLR I&#8217;ve been trying to figure out the best way to store and share my pictures of my son, and other interesting stuff I shoot. As far as securely storing it locally, I have a sizable RAID setup that handles redundantly storing my pictures on two drives, [...]]]></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%2Fwww.nslms.com%2F2008%2F09%2F25%2Fphoto-sharing-services%2F"><br
/> <img
src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.nslms.com%2F2008%2F09%2F25%2Fphoto-sharing-services%2F&amp;source=rjgeyer&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br
/> </a></div><p>Since I became a dad, and bought a dSLR I&#8217;ve been trying to figure out the best way to store and share my pictures of my son, and other interesting stuff I shoot.  As far as securely storing it locally, I have a sizable RAID setup that handles redundantly storing my pictures on two drives, but it&#8217;s the sharing part that I&#8217;ve had some trouble with.</p><p>Initially, I was using my own web host and the rather nice PHP based <a
href="http://spgm.sourceforge.net/">SPGM photo gallery</a> software.  The problem though, is that it&#8217;s fairly tedious to resize and upload the images (I wrote a whole blog post about it <a
href="http://www.nslms.com/2008/03/06/tools-for-updating-an-online-image-gallery/">here</a>), and I have &#8220;only&#8221; 20GB of storage and 500GB monthly throughput.  When shooting at 10 megapixels I could fill that space up quickly.  Beyond that I knew that some of the web based sharing sites out there had some really cool features for sharing and organizing your photos.</p><p>So, the search begins.  I had some (I thought) fairly simple requirements.  I was hoping to have these requirements met by a free solution, but I was willing to pay a nominal subscription fee if I got everything I was after.  Here&#8217;s the run-down of what was important to me.</p><ul><li>Ability to upload original sized images.  Some services have a limit to the size of each image</li><li>Unlimited storage/uploads</li><li>Sophisticated organization features.  This means unlimited &#8220;albums&#8221; and the ability to have an &#8220;album&#8221; hierarchy and probably some other stuff that the service would surprise me with</li><li>Ability to use my images on my website, blog, forum posts, etc.</li><li>Ability to have a gallery on my site which displays all of the public images from the photo sharing site</li></ul><p>That&#8217;s a fairly short list, and seems as though it should be fairly easy to match but surprisingly it isn&#8217;t.</p><p>So let&#8217;s break down the services I tried and how they stack up.  First, let me say that I did not try every service out there, I ruled some out just based on their feature set, some due to their obscurity etc.  Listed here are just the ones that I either discovered myself, or were directly suggested to me.  If you want to do your own search and want to see all of the services available, here are a couple links that I found useful during my search.</p><p><a
href="http://photo-sharing-services-review.toptenreviews.com/">Top Ten Reviews</a><br
/> <a
href="http://reviews.cnet.com/4520-6451_7-6245099-1.html">CNET Reviews</a></p><h3>Picasa</h3><p>This was a fairly natural choice for me since I&#8217;m a pretty heavy user of Google services.  I use Gmail, Google Reader, Google Analytics, Google Calendar, Blogger (switched from blogger to wordpress), Google Docs, and YouTube.  Additionally, Picasa has a great desktop tool for uploading photos that acts as a great photo management tool on your local system as well.</p><p>Unfortunately, Picasa only allows you to organize your photos into albums with no hierarchy.  Also, while you can upload a photo in it&#8217;s original size, the number of photos you can store is limited by your storage space.  You&#8217;re given 1GB of space for free, and you can buy additional space on a yearly basis.  But again, shooting at 10 megapixels means I&#8217;m going to need a whole lot of storage space, and I suspect that even their 400GB plan for $500 a year would become insufficient sooner or later.</p><h3>Facebook</h3><p>To be honest, Facebook is actually what warmed me up to the idea of using a photo sharing service on the web.  So while it&#8217;s technically not a photo sharing service I thought I&#8217;d talk about what I did and didn&#8217;t like about the photo storage and sharing options it had.</p><p>First, I loved how easy it was to upload pictures and tag the subjects in the photo.  Facebook also had no limit to the number of photos I could upload.  Of course, those photos were downsized to a much more reasonable 604x404px, and their album hierarchy was also flat.  And perhaps the most annoying thing was that I couldn&#8217;t share my pictures on my own web site and the galleries I made public I had to link directly.  For instance I can send you to my public album of <a
href="http://www.new.facebook.com/album.php?aid=3616&#038;l=53ace&#038;id=1344570211">artistic shots</a> but I can&#8217;t send you to a page that shows all of my public albums on Facebook.  If you had a Facebook account, and were added as one of my friends you could see them all, but that&#8217;s cumbersome.</p><h3>Snapfish</h3><p>Frankly, I didn&#8217;t get very far in evaluating this service.  There wasn&#8217;t much public information about the services offered, and it had a requirement of buying some product from them at some specified interval in order to keep your account active.  As such, I never even signed up or tried it.</p><h2>And the winner is&#8230;.</h2><h3>Flickr</h3><p>As it turns out, this had all of the features I wanted, plus some ones I didn&#8217;t realize I wanted until I used them.</p><p>First, the negatives.  With a free account your only allowed to upload 100MB of files each month, and you&#8217;re limited to 3 &#8220;sets&#8221; (Flickr&#8217;s version of an album).  Also, you can&#8217;t technically have a multi-level hierarchy of sets but there are ways to overcome that (more on this later).  Of course, those limitations are removed as soon as you buy a &#8220;Pro&#8221; account which is a paltry $25 per year.  Needless to say I went with that.</p><p>Now the good stuff!  While you can only have a flat hierarchy of sets, you can create &#8220;collections&#8221; which contain sets or other collections.  These can be nested up to 5 deep.  This more than handles my organization needs.  For instance, I&#8217;d like to categorize all of my pictures of my son, then break it down into particular types of events, then the specific event.  Something like &#8220;Baby Pictures -> Firsts -> Crawling, Walking, Solid Food, Etc.&#8221;.</p><p>And if that organization is not enough, you can also tag a photo with keywords that are search able by the community, and act as a sort of metadata for organization.</p><p>Built right in is the ability to use your photo in a variety of sizes on your blog, forums, website, or whatever you like.  Even more exciting is that there are plenty of options for sharing your pictures on other sites, as well as a <a
href="http://www.flickr.com/photos/rgeyer/">public landing page</a> for you.  They even offer an open API which I&#8217;m sure I&#8217;ll find useful eventually!</p><p>So there it is.  After a fair amount of time spent searching I found the solution that works best for me.  Hopefully my comparison can help you if you&#8217;re searching for a photo sharing service.</p><div
class="shr-bookmarks shr-bookmarks-center"><ul
class="socials"><li
class="shr-blogger"> <a
href="http://www.shareaholic.com/api/share/?title=Photo+Sharing+Services&amp;link=http://www.nslms.com/2008/09/25/photo-sharing-services/&amp;notes=Since%20I%20became%20a%20dad%2C%20and%20bought%20a%20dSLR%20I%27ve%20been%20trying%20to%20figure%20out%20the%20best%20way%20to%20store%20and%20share%20my%20pictures%20of%20my%20son%2C%20and%20other%20interesting%20stuff%20I%20shoot.%20%20As%20far%20as%20securely%20storing%20it%20locally%2C%20I%20have%20a%20sizable%20RAID%20setup%20that%20handles%20redundantly%20storing%20my%20pictures%20on%20two%20drives%2C%20but%20it%27s%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=219&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Blog this on Blogger">Blog this on Blogger</a></li><li
class="shr-comfeed"> <a
href="http://www.nslms.com/2008/09/25/photo-sharing-services/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a></li><li
class="shr-facebook"> <a
href="http://www.shareaholic.com/api/share/?title=Photo+Sharing+Services&amp;link=http://www.nslms.com/2008/09/25/photo-sharing-services/&amp;notes=Since%20I%20became%20a%20dad%2C%20and%20bought%20a%20dSLR%20I%27ve%20been%20trying%20to%20figure%20out%20the%20best%20way%20to%20store%20and%20share%20my%20pictures%20of%20my%20son%2C%20and%20other%20interesting%20stuff%20I%20shoot.%20%20As%20far%20as%20securely%20storing%20it%20locally%2C%20I%20have%20a%20sizable%20RAID%20setup%20that%20handles%20redundantly%20storing%20my%20pictures%20on%20two%20drives%2C%20but%20it%27s%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=5&amp;tags=&amp;ctype=" rel="nofollow" title="Share this on Facebook">Share this on Facebook</a></li><li
class="shr-linkedin"> <a
href="http://www.shareaholic.com/api/share/?title=Photo+Sharing+Services&amp;link=http://www.nslms.com/2008/09/25/photo-sharing-services/&amp;notes=Since%20I%20became%20a%20dad%2C%20and%20bought%20a%20dSLR%20I%27ve%20been%20trying%20to%20figure%20out%20the%20best%20way%20to%20store%20and%20share%20my%20pictures%20of%20my%20son%2C%20and%20other%20interesting%20stuff%20I%20shoot.%20%20As%20far%20as%20securely%20storing%20it%20locally%2C%20I%20have%20a%20sizable%20RAID%20setup%20that%20handles%20redundantly%20storing%20my%20pictures%20on%20two%20drives%2C%20but%20it%27s%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a></li><li
class="shr-mail"> <a
href="http://www.shareaholic.com/api/share/?title=Photo%20Sharing%20Services&amp;link=http://www.nslms.com/2008/09/25/photo-sharing-services/&amp;notes=Since%20I%20became%20a%20dad%2C%20and%20bought%20a%20dSLR%20I%27ve%20been%20trying%20to%20figure%20out%20the%20best%20way%20to%20store%20and%20share%20my%20pictures%20of%20my%20son%2C%20and%20other%20interesting%20stuff%20I%20shoot.%20%20As%20far%20as%20securely%20storing%20it%20locally%2C%20I%20have%20a%20sizable%20RAID%20setup%20that%20handles%20redundantly%20storing%20my%20pictures%20on%20two%20drives%2C%20but%20it%27s%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=201&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this to a friend?">Email this to a friend?</a></li><li
class="shr-posterous"> <a
href="http://www.shareaholic.com/api/share/?title=Photo+Sharing+Services&amp;link=http://www.nslms.com/2008/09/25/photo-sharing-services/&amp;notes=Since%20I%20became%20a%20dad%2C%20and%20bought%20a%20dSLR%20I%27ve%20been%20trying%20to%20figure%20out%20the%20best%20way%20to%20store%20and%20share%20my%20pictures%20of%20my%20son%2C%20and%20other%20interesting%20stuff%20I%20shoot.%20%20As%20far%20as%20securely%20storing%20it%20locally%2C%20I%20have%20a%20sizable%20RAID%20setup%20that%20handles%20redundantly%20storing%20my%20pictures%20on%20two%20drives%2C%20but%20it%27s%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=210&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this to Posterous">Post this to Posterous</a></li><li
class="shr-twitter"> <a
href="http://www.shareaholic.com/api/share/?title=Photo+Sharing+Services&amp;link=http://www.nslms.com/2008/09/25/photo-sharing-services/&amp;notes=Since%20I%20became%20a%20dad%2C%20and%20bought%20a%20dSLR%20I%27ve%20been%20trying%20to%20figure%20out%20the%20best%20way%20to%20store%20and%20share%20my%20pictures%20of%20my%20son%2C%20and%20other%20interesting%20stuff%20I%20shoot.%20%20As%20far%20as%20securely%20storing%20it%20locally%2C%20I%20have%20a%20sizable%20RAID%20setup%20that%20handles%20redundantly%20storing%20my%20pictures%20on%20two%20drives%2C%20but%20it%27s%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=%2524%257Btitle%257D%2B-%2B%2524%257Bshort_link%257D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a></li><li
class="shr-digg"> <a
href="http://www.shareaholic.com/api/share/?title=Photo+Sharing+Services&amp;link=http://www.nslms.com/2008/09/25/photo-sharing-services/&amp;notes=Since%20I%20became%20a%20dad%2C%20and%20bought%20a%20dSLR%20I%27ve%20been%20trying%20to%20figure%20out%20the%20best%20way%20to%20store%20and%20share%20my%20pictures%20of%20my%20son%2C%20and%20other%20interesting%20stuff%20I%20shoot.%20%20As%20far%20as%20securely%20storing%20it%20locally%2C%20I%20have%20a%20sizable%20RAID%20setup%20that%20handles%20redundantly%20storing%20my%20pictures%20on%20two%20drives%2C%20but%20it%27s%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a></li><li
class="shr-friendfeed"> <a
href="http://www.shareaholic.com/api/share/?title=Photo+Sharing+Services&amp;link=http://www.nslms.com/2008/09/25/photo-sharing-services/&amp;notes=Since%20I%20became%20a%20dad%2C%20and%20bought%20a%20dSLR%20I%27ve%20been%20trying%20to%20figure%20out%20the%20best%20way%20to%20store%20and%20share%20my%20pictures%20of%20my%20son%2C%20and%20other%20interesting%20stuff%20I%20shoot.%20%20As%20far%20as%20securely%20storing%20it%20locally%2C%20I%20have%20a%20sizable%20RAID%20setup%20that%20handles%20redundantly%20storing%20my%20pictures%20on%20two%20drives%2C%20but%20it%27s%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=43&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on FriendFeed">Share this on FriendFeed</a></li><li
class="shr-googlereader"> <a
href="http://www.shareaholic.com/api/share/?title=Photo+Sharing+Services&amp;link=http://www.nslms.com/2008/09/25/photo-sharing-services/&amp;notes=Since%20I%20became%20a%20dad%2C%20and%20bought%20a%20dSLR%20I%27ve%20been%20trying%20to%20figure%20out%20the%20best%20way%20to%20store%20and%20share%20my%20pictures%20of%20my%20son%2C%20and%20other%20interesting%20stuff%20I%20shoot.%20%20As%20far%20as%20securely%20storing%20it%20locally%2C%20I%20have%20a%20sizable%20RAID%20setup%20that%20handles%20redundantly%20storing%20my%20pictures%20on%20two%20drives%2C%20but%20it%27s%20&amp;short_link=&amp;shortener=google&amp;shortener_key=&amp;v=1&amp;apitype=1&amp;apikey=8afa39428933be41f8afdb8ea21a495c&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a></li></ul><div
style="clear: both;"></div><div
class="shr-getshr" style="visibility:hidden;font-size:10px !important"><a
target="_blank" href="http://www.shareaholic.com/?src=pub">Get Shareaholic</a></div><div
style="clear: both;"></div></div> ]]></content:encoded> <wfw:commentRss>http://www.nslms.com/2008/09/25/photo-sharing-services/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
