<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>The Loop - Blog</title>
  <id>tag:blog.timperrett.com,2008:mephisto/</id>
  <generator uri="http://mephistoblog.com" version="0.7.3">Mephisto Noh-Varr</generator>
  <link href="http://blog.timperrett.com/feed/" rel="self" type="application/atom+xml"/>
  <link href="http://blog.timperrett.com/" rel="alternate" type="text/html"/>
  <updated>2008-11-06T20:48:54Z</updated>
  <entry xml:base="http://blog.timperrett.com/">
    <author>
      <name>timperrett</name>
    </author>
    <id>tag:blog.timperrett.com,2008-11-06:423</id>
    <published>2008-11-06T20:47:00Z</published>
    <updated>2008-11-06T20:48:54Z</updated>
    <link href="http://blog.timperrett.com/2008/11/6/will-wadl-provide-a-second-wind-for-rest-uptake-in-enterprise" rel="alternate" type="text/html"/>
    <title>Will WADL provide a second wind for REST uptake in enterprise?</title>
<content type="html">
            &lt;p&gt;Any one who has ever implemented a &lt;span class=&quot;caps&quot;&gt;SOAP&lt;/span&gt; consuming client service will appreciate that the tooling for various languages is a very welcome feather in &lt;span class=&quot;caps&quot;&gt;SOAP&lt;/span&gt;&#8217;s cap. Without the &lt;span class=&quot;caps&quot;&gt;WSDL&lt;/span&gt; tooling that web service developers are accustomed to, a large portion of those developers would probably struggle to use the said service as the sher verbosity of the &lt;span class=&quot;caps&quot;&gt;SOAP&lt;/span&gt; entity payload is simply overwhelming.&lt;/p&gt;


	&lt;h2&gt;&lt;span class=&quot;caps&quot;&gt;REST&lt;/span&gt;: A idealist view of the web or serious technology?&lt;/h2&gt;


	&lt;p&gt;When &lt;span class=&quot;caps&quot;&gt;REST&lt;/span&gt; came onto the scene it appeared to be met with two very different view points. The open source communities and web purists rejoiced&#8230; a resource orientated architecture which allowed them to scrap there verbose &lt;span class=&quot;caps&quot;&gt;SOAP&lt;/span&gt; and &lt;span class=&quot;caps&quot;&gt;XML&lt;/span&gt;-RPC service flow. However, from what I saw first-hand, the reaction from enterprise was somewhat different; namely, one of &#8220;So now we have to implement clients by hand? Sod that!&#8221;.&lt;/p&gt;


	&lt;p&gt;For a number of developers, including myself, we could see that &lt;span class=&quot;caps&quot;&gt;REST&lt;/span&gt; was a much better architectural style for distributed computing on the web, but with ever decreasing budgets and squeezed time scales the added overhead of creating totally bespoke services &#8211; and therefore clients &#8211; was one that proved somewhat of a bitter pill to swallow.&lt;/p&gt;


	&lt;h2&gt;&lt;span class=&quot;caps&quot;&gt;WADL&lt;/span&gt;: Here to save the day?&lt;/h2&gt;


	&lt;p&gt;Recently, &lt;a href=&quot;https://wadl.dev.java.net/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;WADL&lt;/span&gt;&lt;/a&gt; is coming to the fore as a structured way for providing description and automated development workflow for using &lt;span class=&quot;caps&quot;&gt;REST&lt;/span&gt; services. &lt;a href=&quot;https://wadl.dev.java.net/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;WADL&lt;/span&gt;&lt;/a&gt; is based around similar principles to &lt;a href=&quot;http://www.w3.org/TR/wsdl&quot;&gt;&lt;span class=&quot;caps&quot;&gt;WSDL&lt;/span&gt;&lt;/a&gt; in that it provides a contract of service between service resource and the client.&lt;/p&gt;


	&lt;p&gt;If &lt;a href=&quot;https://wadl.dev.java.net/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;WADL&lt;/span&gt;&lt;/a&gt; can provide a robust framework for automated tooling with &lt;span class=&quot;caps&quot;&gt;REST&lt;/span&gt;, I really think that we&#8217;ll see &lt;span class=&quot;caps&quot;&gt;REST&lt;/span&gt; pick up a second wind of uptake in the enterprise setting. With players like Yahoo! leading by example, how long will it be before others follow suit?&lt;/p&gt;


	&lt;p&gt;Only time will tell&#8230;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.timperrett.com/">
    <author>
      <name>timperrett</name>
    </author>
    <id>tag:blog.timperrett.com,2008-10-27:407</id>
    <published>2008-10-27T00:58:00Z</published>
    <updated>2008-10-27T00:58:49Z</updated>
    <link href="http://blog.timperrett.com/2008/10/27/adding-jasypt-encryption-to-your-scala-jpa-entity-classes" rel="alternate" type="text/html"/>
    <title>Adding JASYPT encryption to your scala JPA entity classes</title>
<content type="html">
            &lt;p&gt;I&#8217;ve recently been looking at how best to make sensitive user data encrpytable within &lt;span class=&quot;caps&quot;&gt;JPA&lt;/span&gt; models when in use with lift. I came accross &lt;a href=&quot;http://www.jasypt.org/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;JASYPT&lt;/span&gt;&lt;/a&gt; and it seems to be a really nice encryption tool. If you want to add it to your scala &lt;span class=&quot;caps&quot;&gt;JPA&lt;/span&gt; models, do something like this:&lt;/p&gt;


&lt;pre&gt;
&lt;code&gt;

package eu.getintheloop.bloglite.model

import javax.persistence._
import java.util.Date
import org.jasypt.util.password.BasicPasswordEncryptor

@Entity
@Table(){val name=&quot;users&quot;}
class User extends BaseEntity {
  @Id
  @GeneratedValue(){val strategy = GenerationType.IDENTITY}
  @Column(){val insertable = false, val unique = true}
  var id: Long = _

  @Column{val nullable = true}
  var first_name: String = &quot;&quot; 

  @Column{val nullable = true}
  var last_name: String = &quot;&quot; 

  @Column{val unique = true, val nullable = false}
  var username: String = &quot;&quot; 

  @Column{val nullable = false}
  var password_hash: String = &quot;&quot; 

  @Column{val unique = false, val nullable = false}
  var email: String = &quot;&quot; 

  @Column{val unique = false, val nullable = false}
  var is_active: Boolean = false

  def password: String = this.password_hash

  def password_=(in: String) = this.password_hash = encrypt(in)

  def authenticate(in: String): Boolean = {
    new BasicPasswordEncryptor().checkPassword(in, password) 
      &#38;&#38; is_active
  }

  private def encrypt(in: String): String = 
    new BasicPasswordEncryptor().encryptPassword(in)

}

&lt;/code&gt;
&lt;/pre&gt;
          </content>  </entry>
  <entry xml:base="http://blog.timperrett.com/">
    <author>
      <name>timperrett</name>
    </author>
    <id>tag:blog.timperrett.com,2008-10-01:325</id>
    <published>2008-10-01T10:02:00Z</published>
    <updated>2008-10-01T10:03:33Z</updated>
    <link href="http://blog.timperrett.com/2008/10/1/explictially-setting-application-doctype-with-lift" rel="alternate" type="text/html"/>
    <title>Explictially Setting Application DocType with Lift</title>
<content type="html">
            &lt;p&gt;As you might know, I use the &lt;a href=&quot;http://liftweb.net&quot;&gt;lift framework&lt;/a&gt; a &lt;strong&gt;lot&lt;/strong&gt; &#8211; I recently came across a strange issue where I couldnt set my own doctype in the layout template. Maybe this nugget of information will be usefull for someone:&lt;/p&gt;


&lt;pre&gt;
&lt;code&gt;
ResponseInfo.docType = { 
      case _ if S.getDocType._1 =&amp;gt; S.getDocType._2 
      case _ =&amp;gt; Full(DocType.xhtmlStrict) 
    }

/*
Avalible options are:

xhtmlTransitional
xhtmlStrict
xhtmlFrameset
xhtml11
xhtmlMobile

*/
&lt;/code&gt;
&lt;/pre&gt;
          </content>  </entry>
  <entry xml:base="http://blog.timperrett.com/">
    <author>
      <name>timperrett</name>
    </author>
    <id>tag:blog.timperrett.com,2008-09-30:324</id>
    <published>2008-09-30T23:44:00Z</published>
    <updated>2008-09-30T23:44:34Z</updated>
    <link href="http://blog.timperrett.com/2008/9/30/free-your-mind-with-freemind" rel="alternate" type="text/html"/>
    <title>Free your mind with FreeMind</title>
<content type="html">
            &lt;p&gt;Check out this great open source mind mapping tool called &lt;a href=&quot;http://freemind.sourceforge.net&quot;&gt;FreeMind&lt;/a&gt; &#8211; I recently came accross it whilst reading &lt;a href=&quot;http://acupof.blogspot.com/2008/01/background-hibernate-comes-with-three.html&quot;&gt;this article&lt;/a&gt; about hibernate 2nd level caching.&lt;/p&gt;


	&lt;p&gt;A true testament to the power of &lt;span class=&quot;caps&quot;&gt;OSS&lt;/span&gt; and the great software it can produce.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.timperrett.com/">
    <author>
      <name>timperrett</name>
    </author>
    <id>tag:blog.timperrett.com,2008-08-26:171</id>
    <published>2008-08-26T17:57:00Z</published>
    <updated>2008-08-26T18:00:07Z</updated>
    <link href="http://blog.timperrett.com/2008/8/26/world-first-xmpie-dashboard-application-for-apple-iphone" rel="alternate" type="text/html"/>
    <title>World First: XMPie Dashboard Application for Apple iPhone</title>
<content type="html">
            &lt;p&gt;Readers of my blog will know that I love macs. Absolutely anything to do with Apple interests me; to that end, it will not surprise you that I have been doing some iPhone development.&lt;/p&gt;


	&lt;p&gt;For kicks I decided to write a mobile XMPie Dashboard application which would let you control XMPie uProduce whilst out and about. Whilst this is a sheer technology demonstration, its fairly functional and a great example of how with the right knowledge and skill, absolutly anything is possible within the XMPie toolset.&lt;/p&gt;


	&lt;p&gt;Below is a quick screencast demonstrating the application in all its glory!....&lt;/p&gt;


	&lt;p&gt;&lt;br /&gt;
&amp;lt;embed allowfullscreen=&quot;true&quot; type=&quot;application/x-shockwave-flash&quot; src=&quot;http://blip.tv/play/Acn3egA&quot; allowscriptaccess=&quot;always&quot; height=&quot;305&quot; width=&quot;450&quot;&gt;&amp;lt;/embed&gt;
&lt;br /&gt;&lt;/p&gt;


	&lt;p&gt;Im interested in your thoughts, so please comment below if you feel so inclined&#8230;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.timperrett.com/">
    <author>
      <name>timperrett</name>
    </author>
    <id>tag:blog.timperrett.com,2008-08-24:154</id>
    <published>2008-08-24T01:10:00Z</published>
    <updated>2008-08-24T01:10:22Z</updated>
    <link href="http://blog.timperrett.com/2008/8/24/running-resin-alongside-microsoft-iis" rel="alternate" type="text/html"/>
    <title>Running Resin Alongside Microsoft IIS</title>
<content type="html">
            &lt;p&gt;I recently thought that it would be good to run a Servlet container alongside &lt;span class=&quot;caps&quot;&gt;IIS&lt;/span&gt; which is so well embedded in the clients that I deal with as they are mainly .NET types&#8230;&lt;/p&gt;


	&lt;p&gt;Anyone who has read my blog before will now that I have somewhat of a penchant for &lt;a href=&quot;http://caucho.com/products/resin.xtp&quot;&gt;Resin&lt;/a&gt; &#8211; so once again, this was my choice of servlet container. Luckily for me, Caucho are awesome enough to supply an &lt;span class=&quot;caps&quot;&gt;ISAPI&lt;/span&gt; filter which drops right into your &lt;span class=&quot;caps&quot;&gt;IIS&lt;/span&gt; system, making Resin just an other &lt;span class=&quot;caps&quot;&gt;ISAPI&lt;/span&gt; filter! Very sweet.&lt;/p&gt;


	&lt;p&gt;If you too would like to have some Java sweetness on your M$ box, then check out &lt;a href=&quot;http://www.caucho.com/resin/doc/install-iis.xtp&quot;&gt;this walkthrough&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.timperrett.com/">
    <author>
      <name>timperrett</name>
    </author>
    <id>tag:blog.timperrett.com,2008-08-23:146</id>
    <published>2008-08-23T15:05:00Z</published>
    <updated>2008-08-23T15:05:56Z</updated>
    <link href="http://blog.timperrett.com/2008/8/23/i-want-to-be-a-rocket-man" rel="alternate" type="text/html"/>
    <title>I Want To Be A Rocket Man!</title>
<content type="html">
            &lt;p&gt;I just came across this on &lt;span class=&quot;caps&quot;&gt;DIGG&lt;/span&gt;. I wouldn&#8217;t usually blog about this type of thing, but its truly amazing&#8230; can you imagine if they massed produced these one day &#8211; we might be flying to work!&lt;/p&gt;


&amp;lt;object height=&quot;344&quot; width=&quot;425&quot;&gt;&amp;lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/zSnWbBjesRQ&#38;hl=en&#38;fs=1&quot;&gt;&amp;lt;/param&gt;&amp;lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&amp;lt;/param&gt;&amp;lt;embed allowfullscreen=&quot;true&quot; type=&quot;application/x-shockwave-flash&quot; src=&quot;http://www.youtube.com/v/zSnWbBjesRQ&#38;hl=en&#38;fs=1&quot; height=&quot;344&quot; width=&quot;425&quot;&gt;&amp;lt;/embed&gt;&amp;lt;/object&gt;
          </content>  </entry>
  <entry xml:base="http://blog.timperrett.com/">
    <author>
      <name>timperrett</name>
    </author>
    <id>tag:blog.timperrett.com,2008-08-09:144</id>
    <published>2008-08-09T16:54:00Z</published>
    <updated>2008-08-09T16:54:34Z</updated>
    <link href="http://blog.timperrett.com/2008/8/9/hessian-kit-framework-for-objective-c-released" rel="alternate" type="text/html"/>
    <title>Hessian Kit Framework for Objective-C Released</title>
<content type="html">
            &lt;p&gt;This sweet new cocoa framework is now available for &lt;a href=&quot;http://sourceforge.net/projects/hessiankit&quot;&gt;download from Sourceforge&lt;/a&gt; &#8211; if your writing anything for mac that involves client &amp;lt;-&amp;gt; server interplay, then this is certainly worth a look.&lt;/p&gt;


	&lt;p&gt;Small, fast and lightweight. What more could you want?&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.timperrett.com/">
    <author>
      <name>timperrett</name>
    </author>
    <id>tag:blog.timperrett.com,2008-08-08:143</id>
    <published>2008-08-08T11:06:00Z</published>
    <updated>2008-08-08T11:07:04Z</updated>
    <link href="http://blog.timperrett.com/2008/8/8/enterprise-social-messaging" rel="alternate" type="text/html"/>
    <title>Enterprise Social Messaging</title>
<content type="html">
            &lt;p&gt;Here&#8217;s an interesting video that explains &lt;span class=&quot;caps&quot;&gt;ESME&lt;/span&gt; which runs on the lift framework, backend by &lt;span class=&quot;caps&quot;&gt;SAP&lt;/span&gt; NetWeaver. Very, very cool.&lt;/p&gt;


&amp;lt;object height=&quot;344&quot; width=&quot;425&quot;&gt;&amp;lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/wF-j0yTHdXo&#38;hl=en&#38;fs=1&quot;&gt;&amp;lt;/param&gt;&amp;lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&amp;lt;/param&gt;&amp;lt;embed allowfullscreen=&quot;true&quot; type=&quot;application/x-shockwave-flash&quot; src=&quot;http://www.youtube.com/v/wF-j0yTHdXo&#38;hl=en&#38;fs=1&quot; height=&quot;344&quot; width=&quot;425&quot;&gt;&amp;lt;/embed&gt;&amp;lt;/object&gt;

	&lt;p&gt;Enjoy!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.timperrett.com/">
    <author>
      <name>timperrett</name>
    </author>
    <id>tag:blog.timperrett.com,2008-07-28:140</id>
    <published>2008-07-28T14:27:00Z</published>
    <updated>2008-07-28T14:27:41Z</updated>
    <link href="http://blog.timperrett.com/2008/7/28/programatically-adding-applications-to-the-login-items" rel="alternate" type="text/html"/>
    <title>Programatically adding Applications to the Login Items</title>
<content type="html">
            &lt;p&gt;Its taking some kicking around, but here is the fruit of my labour&#8230; using core foundation over the RC bridge.&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;

require 'osx/cocoa'

loginItems = OSX::CFPreferencesCopyValue(
      &quot;AutoLaunchedApplicationDictionary&quot;, 
      &quot;loginwindow&quot;, 
      OSX::KCFPreferencesCurrentUser, 
      OSX::KCFPreferencesAnyHost)

application_path = File.expand_path(&quot;~/path/to/your.app&quot;)
application_hidden = false

loginItems &amp;lt;&amp;lt; OSX::NSDictionary.dictionaryWithObjects_forKeys(
    [ application_path, application_hidden ], 
    [ :Path, :Hide ])

# puts loginItems

OSX::CFPreferencesSetValue(
    &quot;AutoLaunchedApplicationDictionary&quot;, 
    loginItems, 
    &quot;loginwindow&quot;, 
    OSX::KCFPreferencesCurrentUser, 
    OSX::KCFPreferencesAnyHost)

OSX::CFPreferencesSynchronize(&quot;loginwindow&quot;, 
        OSX::KCFPreferencesCurrentUser, 
        OSX::KCFPreferencesAnyHost)

&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;With any luck this might help someone :-)&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.timperrett.com/">
    <author>
      <name>timperrett</name>
    </author>
    <id>tag:blog.timperrett.com,2008-07-25:139</id>
    <published>2008-07-25T10:53:00Z</published>
    <updated>2008-07-25T10:53:56Z</updated>
    <link href="http://blog.timperrett.com/2008/7/25/checking-network-connectivity-with-ruby" rel="alternate" type="text/html"/>
    <title>Checking Network Connectivity with Ruby</title>
<content type="html">
            &lt;p&gt;I&#8217;ve just been playing around with a few things and stumbled accross a really neat ruby lib called &#8216;timeout&#8217;. I used it to make a quick check for network connectivity like so:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;

require 'timeout'
require 'socket'

begin
  timeout(10) do
    TCPSocket.new(&quot;www.rubyforge.org&quot;, 80)
  end
    puts true
rescue
  puts false
end

&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;For so few lines thats a really neat; I thought so at least! :-)&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.timperrett.com/">
    <author>
      <name>timperrett</name>
    </author>
    <id>tag:blog.timperrett.com,2008-07-17:137</id>
    <published>2008-07-17T17:33:00Z</published>
    <updated>2008-07-17T17:34:11Z</updated>
    <link href="http://blog.timperrett.com/2008/7/17/great-guide-for-people-interested-in-scala" rel="alternate" type="text/html"/>
    <title>Great guide for people interested in Scala</title>
<content type="html">
            &lt;p&gt;I just came across a great &lt;a href=&quot;http://www.scala-lang.org/&quot;&gt;Scala&lt;/a&gt; &lt;a href=&quot;http://developers.sun.com/learning/javaoneonline/2008/pdf/TS-5165.pdf&quot;&gt;presentation from JavaOne&lt;/a&gt;. If your not looking at learning &lt;a href=&quot;http://www.scala-lang.org/&quot;&gt;Scala&lt;/a&gt;, then this presentation will give you a whole heap of reasons to get up and do something about it.&lt;/p&gt;


	&lt;p&gt;Download the article &lt;a href=&quot;http://developers.sun.com/learning/javaoneonline/2008/pdf/TS-5165.pdf&quot;&gt;from here&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.timperrett.com/">
    <author>
      <name>timperrett</name>
    </author>
    <id>tag:blog.timperrett.com,2008-07-09:132</id>
    <published>2008-07-09T11:57:00Z</published>
    <updated>2008-07-09T11:58:17Z</updated>
    <link href="http://blog.timperrett.com/2008/7/9/the-website-is-down" rel="alternate" type="text/html"/>
    <title>The Website Is Down!</title>
<content type="html">
            &lt;p&gt;A friend of mine sent this to me &#8211; anyone working in IT will appreciate the funny side of this!!&lt;/p&gt;


&amp;lt;object height=&quot;344&quot; width=&quot;425&quot;&gt;&amp;lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/BcQ7RkyBoBc&#38;hl=en&#38;fs=1&quot;&gt;&amp;lt;/param&gt;&amp;lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&amp;lt;/param&gt;&amp;lt;embed allowfullscreen=&quot;true&quot; type=&quot;application/x-shockwave-flash&quot; src=&quot;http://www.youtube.com/v/BcQ7RkyBoBc&#38;hl=en&#38;fs=1&quot; height=&quot;344&quot; width=&quot;425&quot;&gt;&amp;lt;/embed&gt;&amp;lt;/object&gt;

	&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.timperrett.com/">
    <author>
      <name>timperrett</name>
    </author>
    <id>tag:blog.timperrett.com,2008-07-08:131</id>
    <published>2008-07-08T22:56:00Z</published>
    <updated>2008-07-08T22:57:00Z</updated>
    <link href="http://blog.timperrett.com/2008/7/8/bongtastic-load-testing" rel="alternate" type="text/html"/>
    <title>Bongtastic load testing!!</title>
<content type="html">
            &lt;p&gt;My mind escapes me at this late hour on a Tuesday eve, but Im fairly sure i&#8217;ve blogged about the &lt;a href=&quot;http://www.hpl.hp.com/research/linux/httperf/&quot;&gt;httperf&lt;/a&gt; tool from HP Labs before.&lt;/p&gt;


	&lt;p&gt;Anyway, if I havent, thats a different story, as today, I want to point you good reader to the wonderfull tool that is &lt;a href=&quot;http://bong.rubyforge.org/&quot;&gt;Bong&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://www.hpl.hp.com/research/linux/httperf/&quot;&gt;httperf&lt;/a&gt; has somewhat cryptic command syntax, and bong is a really nice wrapper around it which make leveraging the full power of &lt;a href=&quot;http://www.hpl.hp.com/research/linux/httperf/&quot;&gt;httperf&lt;/a&gt; a breeze.&lt;/p&gt;


	&lt;p&gt;Check out the &lt;a href=&quot;http://bong.rubyforge.org/&quot;&gt;Bong home page&lt;/a&gt; for more info &#8211; I&#8217;ll put up a quick tutorial when its not so late and my brain is functioning properly.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://blog.timperrett.com/">
    <author>
      <name>timperrett</name>
    </author>
    <id>tag:blog.timperrett.com,2008-06-28:129</id>
    <published>2008-06-28T13:02:00Z</published>
    <updated>2008-06-28T13:03:06Z</updated>
    <link href="http://blog.timperrett.com/2008/6/28/how-to-use-photoshop-smart-object" rel="alternate" type="text/html"/>
    <title>How to use Photoshop Smart Object</title>
<content type="html">
            &lt;p&gt;I just stumbled accross &lt;a href=&quot;http://www.mydamnchannel.com/Big_Fat_Brain/You_Suck_At_Photoshop__Season_2/YouSuckAtPhotoshop11SmartObjects_803.aspx&quot;&gt;this article&lt;/a&gt; &#8211; the subject matter certainly puts questions over the sanity of the author, but, never the less it is actually quite a good example (or tutorial if you can go that far) of how to use Smart Objects within Photoshop.&lt;/p&gt;
          </content>  </entry>
</feed>
