<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Deploying assets to Amazon S3 with Ant</title>
	<atom:link href="http://www.ghidinelli.com/2009/09/02/deploying-assets-amazon-s3-ant/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ghidinelli.com/2009/09/02/deploying-assets-amazon-s3-ant</link>
	<description></description>
	<lastBuildDate>Thu, 01 Jun 2017 18:51:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Coder34</title>
		<link>http://www.ghidinelli.com/2009/09/02/deploying-assets-amazon-s3-ant/comment-page-1#comment-58541</link>
		<dc:creator>Coder34</dc:creator>
		<pubDate>Thu, 22 Oct 2009 21:40:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=774#comment-58541</guid>
		<description>TiVo cut off the original before the trailer. ,</description>
		<content:encoded><![CDATA[<p>TiVo cut off the original before the trailer. ,</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dominic</title>
		<link>http://www.ghidinelli.com/2009/09/02/deploying-assets-amazon-s3-ant/comment-page-1#comment-58245</link>
		<dc:creator>Dominic</dc:creator>
		<pubDate>Sun, 27 Sep 2009 21:53:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=774#comment-58245</guid>
		<description>I should say , &#039;Juicer&#039;. It uses YUI-Compressor and also adds cache-busters to image urls within stylesheets (i.e. adds ?{lastmodifieddate} ). 

http://cjohansen.no/en/ruby/juicer_a_css_and_javascript_packaging_tool</description>
		<content:encoded><![CDATA[<p>I should say , &#8216;Juicer&#8217;. It uses YUI-Compressor and also adds cache-busters to image urls within stylesheets (i.e. adds ?{lastmodifieddate} ). </p>
<p><a href="http://cjohansen.no/en/ruby/juicer_a_css_and_javascript_packaging_tool" rel="nofollow">http://cjohansen.no/en/ruby/juicer_a_css_and_javascript_packaging_tool</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian</title>
		<link>http://www.ghidinelli.com/2009/09/02/deploying-assets-amazon-s3-ant/comment-page-1#comment-58244</link>
		<dc:creator>Brian</dc:creator>
		<pubDate>Sun, 27 Sep 2009 20:32:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=774#comment-58244</guid>
		<description>@Dominic - glad it helped!  Why did you choose Juice over, say, YUI-compressor?</description>
		<content:encoded><![CDATA[<p>@Dominic &#8211; glad it helped!  Why did you choose Juice over, say, YUI-compressor?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dominic</title>
		<link>http://www.ghidinelli.com/2009/09/02/deploying-assets-amazon-s3-ant/comment-page-1#comment-58243</link>
		<dc:creator>Dominic</dc:creator>
		<pubDate>Sun, 27 Sep 2009 18:23:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=774#comment-58243</guid>
		<description>@brian, just a shout of appreciation for this post. Got me up and running with Ant and also a few things with s3 sync that I needed.

My script does:

- Prompt for svn revision to deploy
- Prompt for environment
- Write the build date to a settings file that the application uses
- Compress the js and css using Juice, naming the minified css and js files, production${builddate}.css/js
- Sync to s3
- Sync to my app server

In my templates, I call the production css/js like src=&quot;#jsDomain#/production#buildDate#.js&quot;

Its working really nicely, a few keystrokes and my app is deployed for any revision I choose. This post helped a lot. Thanks.

@Marc, sorry I misspelled your name :&#124;</description>
		<content:encoded><![CDATA[<p>@brian, just a shout of appreciation for this post. Got me up and running with Ant and also a few things with s3 sync that I needed.</p>
<p>My script does:</p>
<p>- Prompt for svn revision to deploy<br />
- Prompt for environment<br />
- Write the build date to a settings file that the application uses<br />
- Compress the js and css using Juice, naming the minified css and js files, production${builddate}.css/js<br />
- Sync to s3<br />
- Sync to my app server</p>
<p>In my templates, I call the production css/js like src=&#8221;#jsDomain#/production#buildDate#.js&#8221;</p>
<p>Its working really nicely, a few keystrokes and my app is deployed for any revision I choose. This post helped a lot. Thanks.</p>
<p>@Marc, sorry I misspelled your name <img src='http://www.ghidinelli.com/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: marc esher</title>
		<link>http://www.ghidinelli.com/2009/09/02/deploying-assets-amazon-s3-ant/comment-page-1#comment-58223</link>
		<dc:creator>marc esher</dc:creator>
		<pubDate>Sat, 26 Sep 2009 01:51:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=774#comment-58223</guid>
		<description>@Dominick, that&#039;s exactly where we&#039;re headed with it. thanks for sharing.</description>
		<content:encoded><![CDATA[<p>@Dominick, that&#8217;s exactly where we&#8217;re headed with it. thanks for sharing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dominic</title>
		<link>http://www.ghidinelli.com/2009/09/02/deploying-assets-amazon-s3-ant/comment-page-1#comment-58222</link>
		<dc:creator>Dominic</dc:creator>
		<pubDate>Sat, 26 Sep 2009 00:11:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=774#comment-58222</guid>
		<description>@Mark

We are doing something like this:

if(mode = production)
include production css and js (singular compressed files)
else
include dev css and js (lots of uncompressed files)
end if

Even during dev we have this &#039;mode&#039; in production (for the reasons brian points out), but allow that mode to be overwritten with an url argument, e.g. &amp;debug=1. Works pretty well.</description>
		<content:encoded><![CDATA[<p>@Mark</p>
<p>We are doing something like this:</p>
<p>if(mode = production)<br />
include production css and js (singular compressed files)<br />
else<br />
include dev css and js (lots of uncompressed files)<br />
end if</p>
<p>Even during dev we have this &#8216;mode&#8217; in production (for the reasons brian points out), but allow that mode to be overwritten with an url argument, e.g. &amp;debug=1. Works pretty well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: brian</title>
		<link>http://www.ghidinelli.com/2009/09/02/deploying-assets-amazon-s3-ant/comment-page-1#comment-57865</link>
		<dc:creator>brian</dc:creator>
		<pubDate>Thu, 03 Sep 2009 18:08:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=774#comment-57865</guid>
		<description>Haha... so I didn&#039;t actually answer your question with my blabbering? :)

I don&#039;t use the individual files locally on a day to day basis - I use the concatenated ones.  If I change one of those underlying JS files then I recompile them.  If I was doing this day in and day out like you&#039;re suggesting, I would probably have a separate target that just took my local files and rebuilt the concatenated versions into a statically named file for during development.  Then you could use your normal deployment scripts to adjust which files to use based upon the environment.

It&#039;s important to work with the compiled scripts most of the time because there are problems that can crop up with minimizing and concatenation.  You won&#039;t see them if you&#039;re normally working with separate files.

I don&#039;t know of a good solution beyond what you&#039;re proposing: a more complex bit of Ant search and replace.</description>
		<content:encoded><![CDATA[<p>Haha&#8230; so I didn&#8217;t actually answer your question with my blabbering? <img src='http://www.ghidinelli.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I don&#8217;t use the individual files locally on a day to day basis &#8211; I use the concatenated ones.  If I change one of those underlying JS files then I recompile them.  If I was doing this day in and day out like you&#8217;re suggesting, I would probably have a separate target that just took my local files and rebuilt the concatenated versions into a statically named file for during development.  Then you could use your normal deployment scripts to adjust which files to use based upon the environment.</p>
<p>It&#8217;s important to work with the compiled scripts most of the time because there are problems that can crop up with minimizing and concatenation.  You won&#8217;t see them if you&#8217;re normally working with separate files.</p>
<p>I don&#8217;t know of a good solution beyond what you&#8217;re proposing: a more complex bit of Ant search and replace.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: marc esher</title>
		<link>http://www.ghidinelli.com/2009/09/02/deploying-assets-amazon-s3-ant/comment-page-1#comment-57864</link>
		<dc:creator>marc esher</dc:creator>
		<pubDate>Thu, 03 Sep 2009 17:58:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=774#comment-57864</guid>
		<description>Brian,
  OK, so I understand how you&#039;re changing the path to where the files live. But what about the files themselves? For example, let&#039;s say you and your team have a handful of javascript files that you all work on all the time. These aren&#039;t open source projects that only change once in a while... they&#039;re files you work on every day. So in your html, you have

[script src=&quot;/path/to/my/JSFileIChangeEveryDay_1.js&quot;]
[script src=&quot;/path/to/my/JSFileIChangeEveryDay_2.js&quot;]
[script src=&quot;/path/to/my/JSFileIChangeEveryDay_3.js&quot;]
[script src=&quot;/path/to/my/JSFileIChangeEveryDay_4.js&quot;]
[script src=&quot;/path/to/my/JSFileIChangeEveryDay_5.js&quot;]

And on production, you want to have these files all concatenated, so you put that in your build script and it creates a new file: JSFilesIChangeEVeryDay_Combined.js  or whatever

Now, your HTML needs to change on production, so that it points to your new combined file instead of each individual js file.

My question is: how are you managing the changing of your HTML during deployments? Or aren&#039;t you?

See, I&#039;m on the verge of instituting a very similar thing as you&#039;ve described, and in my head, I see me simply using ANT to do a find/replace in our main layout file which looks for the big chunk of text that includes all the single JS files and replaces them with a single include for the combined JS file. But if there are other approaches to doing that, I&#039;d love to hear them.</description>
		<content:encoded><![CDATA[<p>Brian,<br />
  OK, so I understand how you&#8217;re changing the path to where the files live. But what about the files themselves? For example, let&#8217;s say you and your team have a handful of javascript files that you all work on all the time. These aren&#8217;t open source projects that only change once in a while&#8230; they&#8217;re files you work on every day. So in your html, you have</p>
<p>[script src="/path/to/my/JSFileIChangeEveryDay_1.js"]<br />
[script src="/path/to/my/JSFileIChangeEveryDay_2.js"]<br />
[script src="/path/to/my/JSFileIChangeEveryDay_3.js"]<br />
[script src="/path/to/my/JSFileIChangeEveryDay_4.js"]<br />
[script src="/path/to/my/JSFileIChangeEveryDay_5.js"]</p>
<p>And on production, you want to have these files all concatenated, so you put that in your build script and it creates a new file: JSFilesIChangeEVeryDay_Combined.js  or whatever</p>
<p>Now, your HTML needs to change on production, so that it points to your new combined file instead of each individual js file.</p>
<p>My question is: how are you managing the changing of your HTML during deployments? Or aren&#8217;t you?</p>
<p>See, I&#8217;m on the verge of instituting a very similar thing as you&#8217;ve described, and in my head, I see me simply using ANT to do a find/replace in our main layout file which looks for the big chunk of text that includes all the single JS files and replaces them with a single include for the combined JS file. But if there are other approaches to doing that, I&#8217;d love to hear them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Managing CDNs in your Application &#187; ghidinelli.com</title>
		<link>http://www.ghidinelli.com/2009/09/02/deploying-assets-amazon-s3-ant/comment-page-1#comment-57860</link>
		<dc:creator>Managing CDNs in your Application &#187; ghidinelli.com</dc:creator>
		<pubDate>Thu, 03 Sep 2009 17:15:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=774#comment-57860</guid>
		<description>[...] to actually generate the files, one of the targets for my Ant script is &#8220;localdeploy&#8221; and my development.properties file has all Windows paths that point to [...]</description>
		<content:encoded><![CDATA[<p>[...] to actually generate the files, one of the targets for my Ant script is &#8220;localdeploy&#8221; and my development.properties file has all Windows paths that point to [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: brian</title>
		<link>http://www.ghidinelli.com/2009/09/02/deploying-assets-amazon-s3-ant/comment-page-1#comment-57859</link>
		<dc:creator>brian</dc:creator>
		<pubDate>Thu, 03 Sep 2009 17:00:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.ghidinelli.com/?p=774#comment-57859</guid>
		<description>@Jim - thanks for the link!

@Marc - I saw you presented on automation at CFUN, wish I could have seen that.  I am definitely an Ant novice just getting enough done so I can move on.  I&#039;d love to know more.

Since my code plugin is a total fail in the comments, I&#039;m going to post my response as a post...
</description>
		<content:encoded><![CDATA[<p>@Jim &#8211; thanks for the link!</p>
<p>@Marc &#8211; I saw you presented on automation at CFUN, wish I could have seen that.  I am definitely an Ant novice just getting enough done so I can move on.  I&#8217;d love to know more.</p>
<p>Since my code plugin is a total fail in the comments, I&#8217;m going to post my response as a post&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
