<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D04NRHo9eSp7ImA9WhRRFE4.&quot;"><id>tag:blogger.com,1999:blog-9952419</id><updated>2011-11-27T15:19:55.461-08:00</updated><category term="sculpture" /><category term="setup" /><category term="technology" /><category term="tools" /><category term="javascript" /><category term="emf" /><category term="pencils" /><category term="ai" /><category term="news" /><category term="development" /><category term="soa" /><category term="art" /><category term="cobol" /><category term="open source" /><category term="api" /><category term="ecs" /><category term="creativity" /><category term="csharp" /><category term="iphone" /><category term="water" /><category term="agile" /><category term="configuration" /><category term="python" /><category term="web 2.0" /><category term="planning" /><category term="rails" /><category term="internet" /><category term="video" /><category term="virtual" /><category term="uml" /><category term="otp" /><category term=".net" /><category term="eclipse" /><category term="productivity" /><category term="code" /><category term="aws" /><category term="bdd" /><category term="prism" /><category term="hardware" /><category term="notes" /><category term="simulation" /><category term="distributed" /><category term="sdlc" /><category term="java" /><category term="ia" /><category term="patterns" /><category term="ajax" /><category term="process" /><category term="note" /><category term="security" /><category term="esb" /><category term="information" /><category term="delivery" /><category term="language" /><category term="monitoring" /><category term="algorithm" /><category term="cloud" /><category term="widgets" /><category term="flex" /><category term="industry" /><category term="companies" /><category term="tip" /><category term="ui" /><category term="photo" /><category term="ddd" /><category term="dns" /><category term="groovy" /><category term="identity" /><category term="jboss esb" /><category term="healthcare" /><category term="color" /><category term="dsl" /><category term="microsoft" /><category term="illustration" /><category term="design" /><category term="editing" /><category term="mozilla" /><category term="fantom" /><category term="boto" /><category term="architecture" /><category term="mixed media" /><category term="release engineering" /><category term="haxe" /><category term="google" /><category term="gmf" /><title>Varying degrees of difficulty...</title><subtitle type="html">A place to keep track of notes and thoughts about technology, process, design, art and general ideas.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.driedtoast.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>79</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/VaryingDegreesOfDifficulty" /><feedburner:info uri="varyingdegreesofdifficulty" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;C0cDQ3c8fip7ImA9WhZVGEs.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-4155321448024767254</id><published>2011-05-31T09:57:00.001-07:00</published><updated>2011-05-31T09:57:52.976-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-31T09:57:52.976-07:00</app:edited><title>Open Shift Express with Identity Cert project</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;p&gt;I decided to test out openshift offering by redhat. It runs python via the wsgi framework approach. So I decided to try and deploy the &lt;a href="https://github.com/driedtoast/identitycert"&gt;Identity Cert&lt;/a&gt; project I'm working on.&lt;/p&gt;  &lt;p&gt;After a couple changes in the application startup / library configuration based on &lt;a href="https://github.com/driedtoast/pytoaster"&gt;PyToaster&lt;/a&gt;. I was ready to deploy. (Still need to incorporate the changes back into pytoaster project from identity cert for next projects I do, also some duplicate code cleanup)&lt;/p&gt;  &lt;p&gt;Here is some of the steps I ended up having to do:&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;In identity cert project, grab a copy: git archive --format zip --output ~/temp/identitycert.zip master&lt;/li&gt;  &lt;li&gt;Create project for open shift:  rhc-create-app -a osidentitycert -t wsgi-3.2.1&lt;/li&gt;  &lt;li&gt;cd osidentitycert&lt;/li&gt;  &lt;li&gt;Add files from identity cert repo: unzip ~/temp/identitycert.zip&lt;/li&gt;  &lt;li&gt;Resolve depends: ./bin/resolvedepends&lt;/li&gt;  &lt;li&gt;Add everything: git add . &lt;/li&gt;  &lt;li&gt;Commit all: git commit -m"initial commit" &lt;/li&gt;  &lt;li&gt;Add to open shift: git push&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;So now its up at: &lt;a href="http://osidentitycert-driedtoast.rhcloud.com/"&gt;http://osidentitycert-driedtoast.rhcloud.com/&lt;/a&gt;. App still needs a bit of work though. Now I have some motivation to complete it.  Some gotchas I had to deal with:&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt; Pathing of files, used os.path.dirname(__file__) to get abs paths&lt;/li&gt;  &lt;li&gt; Debugging of app, have to download app via rhc-snapshot -a osidentitycert (which downloads a tar you look into appname/logs) &lt;/li&gt;  &lt;li&gt; Forgot my url for testing it, used rhc-user-info to find it&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;Overall its still a bit clunky of a service, all command line (would be nice to have a little dashboard for quick url viewing) and debugging is a bit annoying.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/open-shift-express-with-identity-cert-project"&gt;varying degrees of difficulty&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-4155321448024767254?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/4155321448024767254/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=4155321448024767254" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/4155321448024767254?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/4155321448024767254?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/pUeEnNCkkJ4/open-shift-express-with-identity-cert.html" title="Open Shift Express with Identity Cert project" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2011/05/open-shift-express-with-identity-cert.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYNR3g-eyp7ImA9WhZSFko.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-4691516138027114299</id><published>2011-04-01T08:36:00.001-07:00</published><updated>2011-04-01T08:36:36.653-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-01T08:36:36.653-07:00</app:edited><title>Sketchbook pro for Android...</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;p&gt;&lt;div class='p_embed p_image_embed'&gt; &lt;a href="http://posterous.com/getfile/files.posterous.com/driedtoast/IpnkCrraHmExdBvcJDyrwvjtbEEDuptkspmpdHsqadnhxovilfrHbbxrHIDF/-1573925221.jpg.scaled1000.jpg"&gt;&lt;img alt="-1573925221" height="889" src="http://posterous.com/getfile/files.posterous.com/driedtoast/IpnkCrraHmExdBvcJDyrwvjtbEEDuptkspmpdHsqadnhxovilfrHbbxrHIDF/-1573925221.jpg.scaled500.jpg" width="500" /&gt;&lt;/a&gt; &lt;/div&gt; &lt;/p&gt;My first attempt, got to get used to drawing on a phone. Sketchbook from autodesk is probably the best drawing program I've used. Sort of painter meets a touch screen environment.&lt;p&gt;More to come as I get used to it.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/sketchbook-pro-for-android"&gt;varying degrees of difficulty&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-4691516138027114299?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/4691516138027114299/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=4691516138027114299" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/4691516138027114299?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/4691516138027114299?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/ziUWESfq6Co/sketchbook-pro-for-android.html" title="Sketchbook pro for Android..." /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2011/04/sketchbook-pro-for-android.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIDRHgyeyp7ImA9WhZSFks.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-4607562608516311385</id><published>2011-04-01T07:36:00.001-07:00</published><updated>2011-04-01T07:36:15.693-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-01T07:36:15.693-07:00</app:edited><title>Trying out android posterous</title><content type="html">&lt;div class='posterous_autopost'&gt;If this works well I might just start posting more on different things. &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/trying-out-android-posterous"&gt;varying degrees of difficulty&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-4607562608516311385?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/4607562608516311385/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=4607562608516311385" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/4607562608516311385?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/4607562608516311385?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/dHPSAW8IqCw/trying-out-android-posterous.html" title="Trying out android posterous" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2011/04/trying-out-android-posterous.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08ESXY7fyp7ImA9Wx9UF0o.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-3596663847078247204</id><published>2011-02-15T06:23:00.001-08:00</published><updated>2011-02-15T06:23:28.807-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-15T06:23:28.807-08:00</app:edited><title>Workaround for NX Capslock problem</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;p&gt;Create a script for your path, like so:&lt;/p&gt;  &lt;p&gt;#!/bin/sh&lt;br /&gt;xsendkeycode 66 1&lt;br /&gt;xsendkeycode 66 0&lt;/p&gt;  &lt;p&gt;and install lineakd (which contains the xsendkeycode).&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/workaround-for-nx-capslock-problem"&gt;varying degrees of difficulty&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-3596663847078247204?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/3596663847078247204/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=3596663847078247204" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/3596663847078247204?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/3596663847078247204?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/WqaBdPmCMss/workaround-for-nx-capslock-problem.html" title="Workaround for NX Capslock problem" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2011/02/workaround-for-nx-capslock-problem.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUEQnc_eyp7ImA9Wx5aE08.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-6234763796710584754</id><published>2010-11-09T08:28:00.001-08:00</published><updated>2010-11-09T08:30:03.943-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-09T08:30:03.943-08:00</app:edited><title>Setting up the mac via command line</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;p&gt;Thought I would try to play around with setting up a mac via the command line, based on&amp;nbsp;&lt;a href="http://commandlinemac.blogspot.com/2008/12/installing-dmg-application-from-command.html"&gt;http://commandlinemac.blogspot.com/2008/12/installing-dmg-application-from-co...&lt;/a&gt;. &amp;nbsp;Hopefully it makes it easier to get a machine setup.&lt;/p&gt;  &lt;p&gt;Here is the script:&lt;/p&gt;  &lt;p&gt;&lt;script src="http://gist.github.com/669321.js"&gt;&lt;/script&gt;&lt;/p&gt;&lt;br /&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/setting-up-the-mac-via-command-line"&gt;varying degrees of difficulty&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-6234763796710584754?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/6234763796710584754/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=6234763796710584754" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/6234763796710584754?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/6234763796710584754?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/kHZmaCXjjZU/setting-up-mac-via-command-line.html" title="Setting up the mac via command line" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/11/setting-up-mac-via-command-line.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcEQn88eyp7ImA9Wx5aE0w.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-3912779245911938123</id><published>2010-11-09T06:11:00.001-08:00</published><updated>2010-11-09T06:13:23.173-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-09T06:13:23.173-08:00</app:edited><title>simple ssh script fun</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;p&gt;Just playing around with bash to make it a little easier to add keys to different servers.&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 12px; line-height: 21px;"&gt;&lt;script src="http://gist.github.com/669109.js"&gt;&lt;/script&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/simple-ssh-script-fun"&gt;varying degrees of difficulty&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-3912779245911938123?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/3912779245911938123/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=3912779245911938123" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/3912779245911938123?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/3912779245911938123?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/EegrHrlXTl4/simple-ssh-script-fun.html" title="simple ssh script fun" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/11/simple-ssh-script-fun.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMCSX05cCp7ImA9Wx5VFEQ.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-7584549282580966052</id><published>2010-07-01T06:57:00.001-07:00</published><updated>2010-10-07T16:34:28.328-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-07T16:34:28.328-07:00</app:edited><title>Mac oddity - Terminal Fun 1</title><content type="html">&lt;div class="posterous_autopost"&gt;&lt;p&gt;So I was looking at my files today via the terminal and noticed an @ sign next to one of the files. This is sort of odd since the file was just a text file and I downloaded it as part of an open source project.&lt;/p&gt;  &lt;p&gt;Check it:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;&lt;div class="data syntax type-bash"&gt;  &lt;script src="http://gist.github.com/459988.js"&gt;&lt;/script&gt; &lt;/div&gt;&lt;p&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Notice the special apple command "ls -@" to show the details of what that @ means. It indicated extra metadata on the file. Thanks to &lt;a href="http://www.flester.com/blog/2008/01/03/mac-os-x-leopard-ls1-output"&gt;Flester's blog&lt;/a&gt; on the post.&lt;/p&gt;  &lt;p&gt;Some other details of the @ sign is over on &lt;a href="http://www.macosxhints.com/article.php?story=20071029151619619"&gt;mac hints&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I fixed it just by "cat changes.txt &amp;gt; newfile.txt; rm changes.txt; mv newfile.txt changes.txt".&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com/"&gt;Posted via email&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/mac-oddity-terminal-fun-1"&gt;varying degrees of difficulty&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-7584549282580966052?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/7584549282580966052/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=7584549282580966052" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/7584549282580966052?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/7584549282580966052?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/l037vQIytKM/mac-oddity-terminal-fun-1.html" title="Mac oddity - Terminal Fun 1" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/07/mac-oddity-terminal-fun-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQEQH84eCp7ImA9WxFXE0U.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-355778373287457672</id><published>2010-05-20T12:05:00.001-07:00</published><updated>2010-05-20T12:05:01.130-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-20T12:05:01.130-07:00</app:edited><title>Coffee Pot Protocol</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;p&gt;Its been about 12 years since it was proposed, now where is the coffee pot protocol?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://rfc.askapache.com/rfc2324/rfc2324.txt"&gt;http://rfc.askapache.com/rfc2324/rfc2324.txt&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I'm disappointed with the standard bodies on this one.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/coffee-pot-protocol"&gt;varying degrees of difficulty&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-355778373287457672?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/355778373287457672/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=355778373287457672" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/355778373287457672?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/355778373287457672?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/oTntvA6wFFI/coffee-pot-protocol.html" title="Coffee Pot Protocol" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/05/coffee-pot-protocol.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQASX05cCp7ImA9WxFRGUo.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-1737403250263603079</id><published>2010-05-04T04:42:00.001-07:00</published><updated>2010-05-04T04:42:28.328-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-04T04:42:28.328-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="dns" /><category scheme="http://www.blogger.com/atom/ns#" term="internet" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Changing my DNS to google</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;p&gt;From what I can tell, almost all cable internet providers have horrible DNS issues. This lead me to search for a way to set my DNS provider to someone else last night, since it was down yet again (thanks charter). I was able to get to google, so I searched and found &lt;a href="http://code.google.com/speed/public-dns/docs/using.html"&gt;Google Public DNS&lt;/a&gt;.   It's not to bad, set your primary and secondary DNS entries to the 8.8.8.8 and 8.8.4.4 addresses and voila faster DNS lookups. I wouldn't recommend it behind corporate firewalls, etc... but for home use that beats dealing with DNS going down from your ISP. Google gets infrastructure right at least.  &lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/changing-my-dns-to-google"&gt;varying degrees of difficulty&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-1737403250263603079?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/1737403250263603079/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=1737403250263603079" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/1737403250263603079?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/1737403250263603079?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/CdiMjvbFKbI/changing-my-dns-to-google.html" title="Changing my DNS to google" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/05/changing-my-dns-to-google.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEFSHwyeCp7ImA9Wx5VFEQ.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-7368209787340563612</id><published>2010-04-29T07:25:00.001-07:00</published><updated>2010-10-07T16:36:59.290-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-07T16:36:59.290-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="python" /><category scheme="http://www.blogger.com/atom/ns#" term="boto" /><category scheme="http://www.blogger.com/atom/ns#" term="aws" /><title>Share an S3 Bucket with boto</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;p&gt;Here is a simple script for sharing a private S3 bucket with another amazon account.&lt;/p&gt;  &lt;p&gt;You need the canonical user id which is on the bottom of your Account page.&lt;/p&gt;  &lt;p&gt;There is a link to show it (big long uuid looking string).&lt;/p&gt;  &lt;p&gt;&lt;div class="data syntax type-python"&gt;&lt;script src="http://gist.github.com/383660.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/share-an-s3-bucket-with-boto"&gt;varying degrees of difficulty&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-7368209787340563612?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/7368209787340563612/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=7368209787340563612" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/7368209787340563612?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/7368209787340563612?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/_MBXhETo1cM/share-s3-bucket-with-boto.html" title="Share an S3 Bucket with boto" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/04/share-s3-bucket-with-boto.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ABSX09fyp7ImA9WxFSGUg.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-1518720612426764849</id><published>2010-04-22T10:02:00.001-07:00</published><updated>2010-04-22T10:02:38.367-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-22T10:02:38.367-07:00</app:edited><title>Browsers and Memory footprints</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;p&gt;Was getting sick of Firefox 3.6 taking up tons of memory, so I did an experiment with a couple browsers.&lt;/p&gt;  &lt;p&gt;The experiment involved the following:&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt; 24 tabs / sites open at a time (same ones)&lt;/li&gt;  &lt;li&gt;Same bookmark count on all&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;Browsers tested on a MacBook Pro:&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;Safari (latest)&lt;/li&gt;  &lt;li&gt;Firefox 3.6&lt;/li&gt;  &lt;li&gt;Camino 2.0.x&lt;/li&gt;  &lt;li&gt;Chrome beta&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;So based on the criteria the memory footprints were as follows:&lt;/p&gt;  &lt;ul&gt;  &lt;li&gt;Safari - 250 M&lt;/li&gt;  &lt;li&gt;Firefox 3.6 - 350 M (remember the days of mosaic 2m install?)&lt;/li&gt;  &lt;li&gt;Camino 2.0.x - 175 M (better)&lt;/li&gt;  &lt;li&gt;Chrome Beta - 65.5 M (nice, more memory to work with)&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;I using Chrome from now on.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/browsers-and-memory-footprints"&gt;varying degrees of difficulty&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-1518720612426764849?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/1518720612426764849/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=1518720612426764849" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/1518720612426764849?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/1518720612426764849?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/DlLfPFW9YAE/browsers-and-memory-footprints.html" title="Browsers and Memory footprints" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/04/browsers-and-memory-footprints.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAGRHY6fyp7ImA9WxFSGUk.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-6558229142197324018</id><published>2010-04-22T06:58:00.001-07:00</published><updated>2010-04-22T06:58:45.817-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-22T06:58:45.817-07:00</app:edited><title>Next version of Postgres</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;p&gt;Looks like the creator of postgres started up an new database called &lt;a href="http://www.voltdb.com/"&gt;voltdb&lt;/a&gt;. Its based on the concepts from the &lt;a href="http://db.cs.yale.edu/hstore/"&gt;MIT/Yale H-Store&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Its still pretty early yet to see how this will shape out, but definitely something to watch in the db space.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/next-version-of-postgres"&gt;varying degrees of difficulty&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-6558229142197324018?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/6558229142197324018/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=6558229142197324018" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/6558229142197324018?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/6558229142197324018?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/d_QkpEfopbU/next-version-of-postgres.html" title="Next version of Postgres" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/04/next-version-of-postgres.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4FRHYzeyp7ImA9WxFTGE8.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-3874527084042309308</id><published>2010-04-09T07:55:00.001-07:00</published><updated>2010-04-09T07:55:15.883-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-09T07:55:15.883-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ajax" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><category scheme="http://www.blogger.com/atom/ns#" term="architecture" /><category scheme="http://www.blogger.com/atom/ns#" term="ui" /><title>Using javascript as your app framework</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;p&gt;The &lt;a href="http://www.amplesdk.com/"&gt;amplesdk&lt;/a&gt; is very interesting idea that you can use all javascript and markup languages to provide a RIA feel to a web application. This could be used nicely with the new spring 3.0 REST annotations if you want to just serve pages that react to xul, json, etc... via javascript interpretation.&lt;/p&gt;  &lt;p&gt;The ample sdk could be used as a replacement / augmentation of a flex front-end. The approach for each is pretty much the same in relation to the backend application architecture.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/using-javascript-as-your-app-framework"&gt;varying degrees of difficulty&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-3874527084042309308?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/3874527084042309308/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=3874527084042309308" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/3874527084042309308?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/3874527084042309308?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/DwqwbWnx4JE/using-javascript-as-your-app-framework.html" title="Using javascript as your app framework" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/04/using-javascript-as-your-app-framework.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAEQXs-fSp7ImA9Wx5VFEQ.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-5207021231807383915</id><published>2010-04-08T14:25:00.001-07:00</published><updated>2010-10-07T16:38:20.555-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-07T16:38:20.555-07:00</app:edited><title>Iterating through Satellite/Spacewalk channels</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;p&gt;Been having to work with spacewalk lately.&lt;/p&gt;  &lt;p&gt;I wanted to sync the RPM packages up to an S3 bucket, so I wrote a script in python to iterate through the channels and push them.&lt;/p&gt;  &lt;p&gt;This is just a snippet to get a list of channels and print out the rpm path.&lt;/p&gt;  &lt;p&gt;&lt;div class="data syntax type-python"&gt;&lt;script src="http://gist.github.com/360560.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;/p&gt;  &lt;p&gt;The RPC API is at &lt;a href="http://www.redhat.com/docs/en-US/Red_Hat_Network_Satellite/5.3/API_Overview/html/index.html"&gt;http://www.redhat.com/docs/en-US/Red_Hat_Network_Satellite/5.3/API_Overview/h...&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Its fairly easy to use.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/iterating-through-satellitespacewalk-channels"&gt;driedtoast's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-5207021231807383915?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/5207021231807383915/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=5207021231807383915" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/5207021231807383915?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/5207021231807383915?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/biV5owO6S4M/iterating-through-satellitespacewalk.html" title="Iterating through Satellite/Spacewalk channels" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/04/iterating-through-satellitespacewalk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkACRXc_eyp7ImA9Wx5VFEQ.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-1475993423935678163</id><published>2010-04-08T14:08:00.001-07:00</published><updated>2010-10-07T16:39:24.943-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-07T16:39:24.943-07:00</app:edited><title>Deleting S3 Key via boto</title><content type="html">&lt;div class='posterous_autopost'&gt;&lt;p&gt;I've been using the boto library for some AWS management and found there wasn't an example on how to delete a key from s3. &lt;/p&gt;  &lt;p&gt;So I thought I would create a gist for it.&lt;/p&gt;  &lt;p&gt;&lt;div class="data syntax type-python"&gt;  &lt;script src="http://gist.github.com/360538.js"&gt;&lt;/script&gt;  &lt;/div&gt;&lt;/p&gt;  &lt;p&gt;Gives me an excuse to test out posterous gist support as well.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/deleting-s3-key-via-boto"&gt;driedtoast's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-1475993423935678163?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/1475993423935678163/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=1475993423935678163" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/1475993423935678163?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/1475993423935678163?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/5IrA95N66xg/deleting-s3-key-via-boto.html" title="Deleting S3 Key via boto" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/04/deleting-s3-key-via-boto.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UNQ3o4eCp7ImA9WxBbE0Q.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-5575823981721637710</id><published>2010-03-12T05:08:00.001-08:00</published><updated>2010-03-12T05:08:12.430-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-12T05:08:12.430-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="uml" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><category scheme="http://www.blogger.com/atom/ns#" term="architecture" /><title>Inline UML in your java code</title><content type="html">
&lt;div class='posterous_autopost'&gt;&lt;p&gt;&lt;a href="http://plantuml.sourceforge.net/"&gt;PlantUML&lt;/a&gt; is a nice alternative to using a diagram based modeler. It allows you to put UML and interaction details within the comments of your code. And as you navigate the class files in eclipse it displays the diagram associated with the class within the plantuml view. It also has a doclet that allows you to build the images and documentation from ant.&lt;/p&gt;  &lt;p&gt;This approach is quite nice allowing for the documentation to be within the context of the work that is being done.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/inline-uml-in-your-java-code"&gt;driedtoast's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-5575823981721637710?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/5575823981721637710/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=5575823981721637710" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/5575823981721637710?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/5575823981721637710?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/KLlW7a_qxLE/inline-uml-in-your-java-code.html" title="Inline UML in your java code" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/03/inline-uml-in-your-java-code.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIASXo8fCp7ImA9WxBUEU0.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-5268885936194819222</id><published>2010-02-25T04:22:00.001-08:00</published><updated>2010-02-25T04:22:28.474-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-25T04:22:28.474-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="art" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><title>Blue Tarp becomes Art</title><content type="html">
&lt;div class='posterous_autopost'&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;Came across a very fascinating site that portrays blue tarp as center stage. The project &lt;a href="http://doprojects.org/news/about-tokyo-blues"&gt;Toyko Blues&lt;/a&gt; is a dramatic look at tarp. Goes to show how we take the colors and forms we see everyday for granted.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/blue-tarp-becomes-art"&gt;driedtoast's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-5268885936194819222?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/5268885936194819222/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=5268885936194819222" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/5268885936194819222?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/5268885936194819222?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/xS054I1stgQ/blue-tarp-becomes-art.html" title="Blue Tarp becomes Art" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/02/blue-tarp-becomes-art.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEADQng-eSp7ImA9WxBWGUU.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-2724216752273020940</id><published>2010-02-12T06:59:00.001-08:00</published><updated>2010-02-12T06:59:33.651-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-12T06:59:33.651-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mixed media" /><category scheme="http://www.blogger.com/atom/ns#" term="art" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><title>Landscape art, a thing of beauty</title><content type="html">
&lt;div class='posterous_autopost'&gt;&lt;p&gt;Just got sent a link for Matthew Albanese's portfolio. He works with various materials to reproduce natural large scale landscapes in miniature models. Very nice techniques, take a look at his &lt;a href="http://www.behance.net/MatthewAlbanese/frame/366923"&gt;portfolio&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Its definitely painstaking and takes a lot of patience.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/landscape-art-a-thing-of-beauty"&gt;driedtoast's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-2724216752273020940?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/2724216752273020940/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=2724216752273020940" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/2724216752273020940?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/2724216752273020940?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/TjtVP3paBlI/landscape-art-thing-of-beauty.html" title="Landscape art, a thing of beauty" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/02/landscape-art-thing-of-beauty.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MARXo4fCp7ImA9WxBWGU0.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-1497560701003205248</id><published>2010-02-11T08:24:00.001-08:00</published><updated>2010-02-11T08:24:04.434-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-11T08:24:04.434-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cloud" /><category scheme="http://www.blogger.com/atom/ns#" term="setup" /><category scheme="http://www.blogger.com/atom/ns#" term="ecs" /><category scheme="http://www.blogger.com/atom/ns#" term="aws" /><title>Setting up a new AMI image for fedora 11</title><content type="html">
&lt;div class='posterous_autopost'&gt;&lt;p&gt;Since its a bit of a pain to create the fedora 11 ami image for use in EC2, I thought I would share a script.&lt;/p&gt;  &lt;p&gt;First part of the script sets up the variables used through script.&lt;/p&gt;  &lt;blockquote&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/sh&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;EC2_MODULE="2.6.21.7-2.fc8xen-ec2-v1.0" ## set the ec2 module&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;SCRIPT_DIR="/var/awsscripts" ## scripts to setup the amazon stuff, will be copied to the image&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;IMAGE_DIR="/var/awsimage" &amp;nbsp;## directory to store the img file and ami image in&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;RELEASEVER=11&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;ARCH=i386 &amp;nbsp;# x86_64&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;IMAGE_SIZE=2560 &amp;nbsp;## set the image size&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;## amazon stuff&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;EC2_HOME=~/.ec2&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;AWS_USER=&amp;lt;Your account number &amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;AWS_ACCESS_KEY_ID=&amp;lt;Your access key&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;AWS_SECRET_ACCESS_KEY=&amp;lt;Your secret access key&amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;EC2_PRIVATE_KEY=$EC2_HOME/pk-&amp;lt;Your private key name&amp;gt;.pem&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;EC2_CERT=$EC2_HOME/cert-&amp;lt;Your public key name&amp;gt;.pem&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;BUCKET_NAME=&amp;lt; s3 bucket name to store the image &amp;gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;export EC2_HOME AWS_USER AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY EC2_PRIVATE_KEY EC2_CERT BUCKET_NAME&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;IMAGE_NAME=$1 &amp;nbsp; ## passed in to the script&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;BASE_NAME="ami-fedora$RELEASEVER-$ARCH_$IMAGE_NAME"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;IMG_FILE="$BASE_NAME.img"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo "Image file is: $IMG_FILE"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo "Base Name: $BASE_NAME"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;if [ ! -d "$IMAGE_DIR" ]; then&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mkdir $IMAGE_DIR&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;fi&lt;/span&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;In the above, you need to setup your keys and access keys for amazon. This is used later in the script to publish the image to the s3 bucket. It also assumes you have the ami tools downloaded and installed. &amp;nbsp;This also assumes you are using fedora 11 to build the image (I use parallels with fedora 11 on it).&lt;/p&gt;  &lt;p&gt;Now we need to make an img and mount to it and push files to it.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;blockquote&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;## Setup image&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;dd if=/dev/zero of="$IMAGE_DIR/$IMG_FILE" bs=1M count="$IMAGE_SIZE"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;/sbin/mke2fs -F -j "$IMAGE_DIR/$IMG_FILE"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;mkdir "/mnt/$BASE_NAME"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;mount -o loop "$IMAGE_DIR/$IMG_FILE" "/mnt/$BASE_NAME"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;mkdir "/mnt/$BASE_NAME/proc"; chmod 555 "/mnt/$BASE_NAME/proc"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;mkdir "/mnt/$BASE_NAME/etc"; &amp;nbsp;chmod 755 "/mnt/$BASE_NAME/etc"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;mkdir "/mnt/$BASE_NAME/root"; chmod 750 "/mnt/$BASE_NAME/root"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;mkdir -p "/mnt/$BASE_NAME/var/lib/rpm"; chmod 755 "/mnt/$BASE_NAME/var/lib/rpm"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;mkdir -p "/mnt/$BASE_NAME/var/cache"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;mkdir -p "/mnt/$BASE_NAME/var/log"; chmod 755 "/mnt/$BASE_NAME/var/log"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;mkdir -p "/mnt/$BASE_NAME/var/lock/rpm"; chmod 755 "/mnt/$BASE_NAME/var/lock/rpm"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;mkdir -p "/mnt/$BASE_NAME/var/tmp" ; chmod ugo+rwxt "/mnt/$BASE_NAME/var/tmp"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;touch "/mnt/$BASE_NAME/etc/mtab"; chmod 644 "/mnt/$BASE_NAME/etc/mtab"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;for i in console null zero urandom; do /sbin/MAKEDEV -d "/mnt/$BASE_NAME/dev" -x $i; done&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;### ---------------------------------------------------------&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;## setup filesystem&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;FS_STAB="/mnt/$BASE_NAME/etc/fstab"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo "/dev/sda1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; / &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ext3 &amp;nbsp; &amp;nbsp;defaults 1 1 " &amp;gt;&amp;gt; $FS_STAB&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo "none &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/dev/pts &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;devpts &amp;nbsp;gid=5,mode=620 0 0 " &amp;gt;&amp;gt; $FS_STAB&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo "none &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/dev/shm &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tmpfs &amp;nbsp; defaults 0 0 " &amp;gt;&amp;gt; $FS_STAB&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo "none &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/proc &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; proc &amp;nbsp; &amp;nbsp;defaults 0 0 " &amp;gt;&amp;gt; $FS_STAB&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo "none &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/sys &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sysfs &amp;nbsp; defaults 0 0 " &amp;gt;&amp;gt; $FS_STAB&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo "/dev/sda2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /mnt &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ext3 &amp;nbsp; &amp;nbsp;defaults 1 2 " &amp;gt;&amp;gt; $FS_STAB&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo "/dev/sda3 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; swap &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;swap &amp;nbsp; &amp;nbsp;defaults 0 0 " &amp;gt;&amp;gt; $FS_STAB&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;chmod 644 $FS_STAB&lt;/span&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: 13px;"&gt;The above also sets up the fstab file and the directories we will use to add things to. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: 13px;"&gt;Next we setup the yum repo files and the start installing the fedora 11 package.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: 13px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;blockquote&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;## setup repo&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;rm -f ./yum.all.repo&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;DIR="/etc/yum.repos.d"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;SUFFIX="repo"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;for i in "$DIR"/*.$SUFFIX&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;do&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cat ${i} &amp;gt;&amp;gt; ./yum.all.repo&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;done&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;sedscript="s/\$basearch/$ARCH/g"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;sed -i $sedscript ./yum.all.repo&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;sedscript="s/\$releasever/$RELEASEVER/g"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;sed -i $sedscript ./yum.all.repo&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;## setup fedora&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;mount -t proc none "/mnt/$BASE_NAME/proc"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;yum -c yum.all.repo --installroot="/mnt/$BASE_NAME" -y groupinstall Base&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;RPMS="tar wget gzip bzip2 curl ruby *openssh* kernel-xen kernel-xen-devel"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;yum -c yum.all.repo --installroot="/mnt/$BASE_NAME" -y install $RPMS&lt;/span&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;The above also installs some base rpms. Now for the amazon parts such as the module and tools.&lt;/p&gt;  &lt;blockquote&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;## kernel-xen&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;if [ ! -f "ec2-modules-$EC2_MODULE.tgz" ]; then&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; wget "http://ec2-downloads.s3.amazonaws.com/ec2-modules-$EC2_MODULE.tgz"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;fi&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;tar zxvf "ec2-modules-$EC2_MODULE.tgz" -C "/mnt/$BASE_NAME"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;/usr/sbin/chroot "/mnt/$BASE_NAME" cp -R /lib/modules/$EC2_MODULE &amp;nbsp;/lib/modules/2.6.21.7-2.fc8xen&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;/usr/sbin/chroot "/mnt/$BASE_NAME" /sbin/depmod -a&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;wget "http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;cp ec2-ami-tools.noarch.rpm "/mnt/$BASE_NAME/opt/sysadmin/"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;/usr/sbin/chroot "/mnt/$BASE_NAME" rpm -ivh --nosignature /opt/sysadmin/ec2-ami-tools.noarch.rpm&lt;/span&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;Now we start modifying some of the base system files to work in EC2.&lt;/p&gt;  &lt;blockquote&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;## update ssh file&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo " GSSAPIAuthentication yes" &amp;gt;&amp;gt; "/mnt/$BASE_NAME/etc/ssh/sshd_config"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo " Protocol 2" &amp;gt;&amp;gt; "/mnt/$BASE_NAME/etc/ssh/sshd_config"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo " X11Forwarding yes " &amp;gt;&amp;gt; &amp;nbsp;"/mnt/$BASE_NAME/etc/ssh/sshd_config"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo " AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES " &amp;gt;&amp;gt; "/mnt/$BASE_NAME/etc/ssh/sshd_config"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo " AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT " &amp;gt;&amp;gt; "/mnt/$BASE_NAME/etc/ssh/sshd_config"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo " AcceptEnv LC_IDENTIFICATION LC_ALL " &amp;gt;&amp;gt; "/mnt/$BASE_NAME/etc/ssh/sshd_config"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo " PermitRootLogin without-password" &amp;gt;&amp;gt; "/mnt/$BASE_NAME/etc/ssh/sshd_config"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;## replace networking file&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo "NETWORKING=yes" &amp;gt; "/mnt/$BASE_NAME/etc/sysconfig/network"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;## replace ifcfg-eth0 file&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;"DEVICE=eth0" &amp;gt; &amp;nbsp;"/mnt/$BASE_NAME/etc/sysconfig/network-scripts/ifcfg-eth0"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;"BOOTPROTO=dhcp" &amp;gt;&amp;gt; &amp;nbsp;"/mnt/$BASE_NAME/etc/sysconfig/network-scripts/ifcfg-eth0"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;"ONBOOT=yes" &amp;gt;&amp;gt; &amp;nbsp;"/mnt/$BASE_NAME/etc/sysconfig/network-scripts/ifcfg-eth0"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;"TYPE=Ethernet" &amp;gt;&amp;gt; &amp;nbsp;"/mnt/$BASE_NAME/etc/sysconfig/network-scripts/ifcfg-eth0"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;"USERCTL=yes" &amp;gt;&amp;gt; &amp;nbsp;"/mnt/$BASE_NAME/etc/sysconfig/network-scripts/ifcfg-eth0"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;"PEERDNS=yes" &amp;gt;&amp;gt; &amp;nbsp;"/mnt/$BASE_NAME/etc/sysconfig/network-scripts/ifcfg-eth0"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;"IPV6INIT=no" &amp;gt;&amp;gt; &amp;nbsp;"/mnt/$BASE_NAME/etc/sysconfig/network-scripts/ifcfg-eth0"&amp;nbsp;&lt;/span&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-size: 13px;"&gt;Now for general customization and including of amazon scripts, which are described below.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;blockquote&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;## Update more packages&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;yum -c yum.all.repo --installroot="/mnt/$BASE_NAME" -y erase cups &amp;nbsp;## erase printing, can do more customization here as well&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;yum -c yum.all.repo --installroot="/mnt/$BASE_NAME" -y install fuse-devel fuse fuse-encfs fuse-libs fuse-sshfs java-1.6.0-openjdk xen-runtime ruby&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;## update services&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: 13px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;p&gt;&lt;span style="font-size: x-small;"&gt;/usr/sbin/chroot "/mnt/$BASE_NAME" /sbin/chkconfig --level 1345 sshd --add&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;/usr/sbin/chroot "/mnt/$BASE_NAME" /sbin/chkconfig --level 1345 sshd on&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;/usr/sbin/chroot "/mnt/$BASE_NAME" /sbin/chkconfig --level 345 ip6tables off&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;## add scripts to startup&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;cp -R /$SCRIPT_DIR/* "/mnt/$BASE_NAME/$SCRIPT_DIR"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;chmod +x /mnt/$BASE_NAME/$SCRIPT_DIR/*&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;echo "source /$SCRIPT_DIR/awssetup" &amp;gt;&amp;gt; /mnt/$BASE_NAME/etc/rc.local&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;## wrap everything up&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;yum -c yum.all.repo --installroot="/mnt/$BASE_NAME" clean all&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;sync&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;umount &amp;nbsp;"/mnt/$BASE_NAME/proc"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;umount "/mnt/$BASE_NAME"&lt;/span&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;You can add your own little flare to the above section to talk to chef, puppet, or equivalent to install the rest of the server, its up to you.&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: small;"&gt;Now ship it off to amazon, you'll have to register it once you are done.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;blockquote&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;p&gt;&lt;span style="font-size: x-small;"&gt;ec2-bundle-image --image "$IMAGE_DIR/$IMG_FILE" --prefix "$BASE_NAME" --cert "$EC2_CERT" --privatekey "$EC2_PRIVATE_KEY" --user "$AWS_USER" --destination "$IMAGE_DIR" --arch "$&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;ARCH"&lt;/span&gt;&lt;/p&gt;  &lt;span&gt;&lt;span style="font-size: small;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-size: x-small;"&gt;ec2-upload-bundle --manifest "$IMAGE_DIR/$BASE_NAME.manifest.xml" --bucket "$BUCKET_NAME" --access-key "$AWS_ACCESS_KEY_ID" --secret-key "$AWS_SECRET_ACCESS_KEY"&lt;/span&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;Below is the amazon setup script (awssetup) that is referenced above and will be executed on startup, taken from an amazon fedora 8 image, mostly verbatim.&lt;/p&gt;  &lt;blockquote&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/sh&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;# $Rev: 45452 $&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;# This script will be executed *after* all the other init scripts.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;# You can put your own initialization stuff in here if you don't&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;# want to do the full Sys V style init stuff.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;echo "-----VERSION : ""\$Rev: 45452 $""-----"&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;# Stuff we want to do once at launch and never again:&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;if [ -f "/root/firstrun" ]; then&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; # Update AMI tools to the latest version:&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; # [ -x "/usr/local/sbin/update-tools.sh" ] &amp;amp;&amp;amp; /usr/local/sbin/update-tools.sh&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; # Try to find kernel modules matching current kernel:&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;# &amp;nbsp; [ -x "/usr/local/sbin/update-modules.sh" ] &amp;amp;&amp;amp; /usr/local/sbin/update-modules.sh&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; # Some kernels use xvc0 as their serial console device:&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; if [ -c /dev/xvc0 ]; then&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ! grep -q 'co:2345:respawn:/sbin/agetty xvc0 9600' /etc/inittab; then&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo 'co:2345:respawn:/sbin/agetty xvc0 9600 vt100' &amp;gt;&amp;gt; /etc/inittab&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo 'xvc0' &amp;gt;&amp;gt; /etc/securetty&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; kill -1 1&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fi&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; fi&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; # Ensure devpts is mounted to prevent ssh hang-ups&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; mount | grep devpts &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; if [ $? -ne 0 ] ; then&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; devpts="none &amp;nbsp; /dev/pts &amp;nbsp; devpts&amp;nbsp; gid=5,mode=620 0 0"&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ( grep -v "\#" /etc/fstab | grep devpts &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 ) || echo $devpts &amp;gt;&amp;gt; /etc/fstab&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mount -a &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; fi&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; # Randomise the root password as the last operation&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; # We ideally have some more entropy at this stage&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; echo "-----RANDOMISING ROOT PASSWORD-----" |logger -s -t "ec2"&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; dd if=/dev/urandom count=128 2&amp;gt;/dev/null|md5sum|passwd --stdin root &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; rm -f /root/firstrun&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; # Regenerate the host keys at this stage&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; # Having more entropy to work with&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; echo "-----TRIGGERING HOST KEYS REGENERATION-----"|logger -s -t "ec2"&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; echo "Removing existing keys"|logger -s -t "ec2"&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; rm -f /etc/ssh/ssh_host_key.pub /etc/ssh/ssh_host_rsa_key.pub /etc/ssh/ssh_host_dsa_key.pub \&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /etc/ssh/ssh_host_key /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_dsa_key&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; echo "Bouncing sshd to force regeneration"|logger -s -t "ec2"&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; /sbin/service sshd restart&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; echo "Setting sshd to start as a service"|logger -s -t "ec2"&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; /sbin/chkconfig --level 2345 sshd on&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;fi&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;touch /var/lock/subsys/local&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;# Get your chosen keypair credentials&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;/var/awsscripts/get-credentials.sh&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;givenhostname=`curl -s &lt;a href="http://169.254.169.254/latest/meta-data/local-hostname"&gt;http://169.254.169.254/latest/meta-data/local-hostname&lt;/a&gt;`&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;echo "HOSTNAME=$givenhostname" &amp;gt;&amp;gt; "/etc/sysconfig/network"&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;# =*Output ssh host keys to console*=&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;[ -f /etc/ssh/ssh_host_key ] || (ssh-keygen -f /etc/ssh/ssh_host_key -t rsa1 -C 'host' -N '' | logger -s -t "ec2")&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;[ -f /etc/ssh/ssh_host_rsa_key ] || (ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa&amp;nbsp; -C 'host' -N '' | logger -s -t "ec2")&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;[ -f /etc/ssh/ssh_host_dsa_key ] || (ssh-keygen -f /etc/ssh/ssh_host_dsa_key -t dsa&amp;nbsp; -C 'host' -N '' | logger -s -t "ec2")&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;echo "-----BEGIN SSH HOST KEY FINGERPRINTS-----" |logger -s -t "ec2"&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;ssh-keygen -l -f /etc/ssh/ssh_host_key.pub |logger -s -t "ec2"&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub |logger -s -t "ec2"&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;ssh-keygen -l -f /etc/ssh/ssh_host_dsa_key.pub |logger -s -t "ec2"&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;echo "-----END SSH HOST KEY FINGERPRINTS-----" &amp;nbsp; |logger -s -t "ec2"&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;Here is the script for&amp;nbsp;get-credentials.sh that is called in the above script, which is also found in a base amazon image.&lt;/p&gt;  &lt;blockquote&gt;  &lt;p&gt;  &lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;#!/bin/bash&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;# Version : $Rev: 45328 $&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;# root's public keys&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;PUB_KEY_URI=http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;# PUB_KEY_URI=http://169.254.169.254/1.0/meta-data/public-keys/0/openssh-key&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;PUB_KEY_FROM_HTTP=/tmp/openssh_id.pub&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;PUB_KEY_FROM_EPHEMERAL=/mnt/openssh_id.pub&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;ROOT_AUTHORIZED_KEYS=/root/.ssh/authorized_keys&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&amp;nbsp;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&amp;nbsp;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&amp;nbsp;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;# We need somewhere to put the keys.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;if [ ! -d /root/.ssh ] ; then&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mkdir -p /root/.ssh&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; chmod 700 /root/.ssh&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;fi&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&amp;nbsp;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;# Fetch credentials...&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;echo "-----CREDENTIALS RETRIEVAL-----"|logger -s -t "ec2"&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;# First try http&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;echo "Attempting to retrieve public key from [$PUB_KEY_URI]"|logger -t "ec2" -s&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;curl --retry 3 --retry-delay 5 --silent --fail -o $PUB_KEY_FROM_HTTP $PUB_KEY_URI&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;if [ $? -eq 0 -a -e $PUB_KEY_FROM_HTTP ] ; then&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; if ! grep -q -f $PUB_KEY_FROM_HTTP $ROOT_AUTHORIZED_KEYS&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; then&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cat $PUB_KEY_FROM_HTTP &amp;gt;&amp;gt; $ROOT_AUTHORIZED_KEYS&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo "New key added to authrozied keys file from parameters"|logger -t "ec2" -s&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; else&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo "Already have your key"|logger -t "ec2" -s&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; fi&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; rm -f $PUB_KEY_FROM_HTTP&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&amp;nbsp;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;elif [ -e $PUB_KEY_FROM_EPHEMERAL ] ; then&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; echo "Meta-data fetch failed, trying from legacy ephemeral store location [$PUB_KEY_FROM_EPHEMERAL]"|logger -t "ec2" -s&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; # Try back to ephemeral store if http failed.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; # NOTE: This usage is deprecated and will be removed in the future&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; if ! grep -q -f $PUB_KEY_FROM_EPHEMERAL $ROOT_AUTHORIZED_KEYS&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; then&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cat $PUB_KEY_FROM_EPHEMERAL &amp;gt;&amp;gt; $ROOT_AUTHORIZED_KEYS&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; echo "New key added to authrozied keys file from ephemeral store"|logger -t "ec2" -s&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; fi&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; chmod 600 $PUB_KEY_FROM_EPHEMERAL&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&amp;nbsp;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;fi&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&amp;nbsp;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&amp;nbsp;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;if [ ! -f $ROOT_AUTHORIZED_KEYS ]&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;then&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; echo "*!*!*! FATAL ERROR *!*!*! No able to find authorized_keys file [$ROOT_AUTHORIZED_KEYS]"|logger -t "ec2" -s&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;else&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; echo "Setting permissions on $ROOT_AUTHORIZED_KEYS to 0600"|logger -t "ec2" -s&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;nbsp; chmod 600 $ROOT_AUTHORIZED_KEYS&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"&gt;&lt;span style="font-size: x-small;"&gt;fi&lt;/span&gt;&lt;/p&gt;  &lt;p /&gt;    &lt;/blockquote&gt;   &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/setting-up-a-new-ami-image-for-fedora-11"&gt;driedtoast's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-1497560701003205248?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/1497560701003205248/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=1497560701003205248" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/1497560701003205248?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/1497560701003205248?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/zyjexkpz6b0/setting-up-new-ami-image-for-fedora-11.html" title="Setting up a new AMI image for fedora 11" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/02/setting-up-new-ami-image-for-fedora-11.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIDSXw4cCp7ImA9WxBWE00.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-8720719477943518870</id><published>2010-02-04T08:56:00.001-08:00</published><updated>2010-02-04T08:56:18.238-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-04T08:56:18.238-08:00</app:edited><title>Diagram via sentences</title><content type="html">
&lt;div class='posterous_autopost'&gt;&lt;p&gt;Just ran across &lt;a href="http://www.diagrammr.com/"&gt;diagrammr&lt;/a&gt; today. Its quite interesting. You describe the components in an architecture or some sort of relationships and it takes the first and last words as the components and draws a line between them.&lt;/p&gt;  &lt;p&gt;So for instance, you write:&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp; "loadbalancer routes to webserver"&amp;nbsp;&lt;/p&gt;  &lt;p&gt;and&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&amp;nbsp; "webserver routes to appserver"&lt;/p&gt;  &lt;p&gt;There will be 3 boxes, one for loadbalancer, one for webserver and one for the appserver. There will also be lines connecting the 2 of them. I've decided to start to use this for quick diagramming of architectural concepts. Beats drawing lines yourself, give it a try.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/diagram-via-sentences"&gt;driedtoast's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-8720719477943518870?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/8720719477943518870/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=8720719477943518870" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/8720719477943518870?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/8720719477943518870?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/ZGGRHRbk1gQ/diagram-via-sentences.html" title="Diagram via sentences" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/02/diagram-via-sentences.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cFR3c8eCp7ImA9WxBWEEs.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-5200870098326655226</id><published>2010-02-01T13:50:00.001-08:00</published><updated>2010-02-01T13:50:16.970-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-01T13:50:16.970-08:00</app:edited><title>A way to manage a cloud infrastructure</title><content type="html">
&lt;div class='posterous_autopost'&gt;&lt;p&gt;As I was looking for other projects out there to see if I was being redundant with the teaparty project on github, I found &amp;lt;a href="https://scalr.net/"&amp;gt;scalr&amp;lt;a/&amp;gt;. Its a commercial product and has some similar concepts that I was thinking of adding to my own project, but some of the concepts are not really done.&lt;/p&gt;  &lt;p&gt;The application management and role management is a bit weak and the infrastructure is based on crontabs with curl calls to a php app for config registration and such. They could of done a lot better relying on a 3rd party configuration management tool such as cobbler, puppet or chef.&amp;nbsp;&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/a-way-to-manage-a-cloud-infrastructure"&gt;driedtoast's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-5200870098326655226?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/5200870098326655226/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=5200870098326655226" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/5200870098326655226?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/5200870098326655226?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/V4UFyxndi9Y/way-to-manage-cloud-infrastructure.html" title="A way to manage a cloud infrastructure" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/02/way-to-manage-cloud-infrastructure.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UHSXo5eip7ImA9WxBXFkQ.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-6818973423240888907</id><published>2010-01-28T09:20:00.001-08:00</published><updated>2010-01-28T09:20:38.422-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-28T09:20:38.422-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><category scheme="http://www.blogger.com/atom/ns#" term="news" /><title>Redhat creates a new mag online</title><content type="html">
&lt;div class='posterous_autopost'&gt;&lt;p&gt;Redhat is starting a new magazine online about news and information regarding &amp;nbsp;opensource companies and projects. Should be interesting to see this magazine's growth, might just turn into slashdot. E-Zine is called&amp;nbsp;&lt;span style="font-family: arial, sans-serif;"&gt;&lt;a href="http://opensource.com/" target="_blank" style="color: #074d8f;"&gt;opensource.com&lt;/a&gt;. This is definitely a sign of technology companies shifting their business model.&lt;/span&gt;&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/redhat-creates-a-new-mag-online"&gt;driedtoast's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-6818973423240888907?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/6818973423240888907/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=6818973423240888907" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/6818973423240888907?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/6818973423240888907?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/lkJQWofEUXc/redhat-creates-new-mag-online.html" title="Redhat creates a new mag online" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/01/redhat-creates-new-mag-online.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcHSX8zeyp7ImA9WxBXFUw.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-4014496420686773100</id><published>2010-01-26T04:47:00.001-08:00</published><updated>2010-01-26T04:47:18.183-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-26T04:47:18.183-08:00</app:edited><title>Starting using posterous...</title><content type="html">
&lt;div class='posterous_autopost'&gt;&lt;p&gt;Its got a way to simplifying your posting to multiple places such as blogger, twitter, etc...&lt;/p&gt;  &lt;p&gt;Hopefully this helps to simplify a couple things around my notes and such.&lt;/p&gt;  &lt;p&gt;Testing it out with this post.&lt;/p&gt; &lt;p style="font-size: 10px;"&gt; &lt;a href="http://posterous.com"&gt;Posted via web&lt;/a&gt;  from &lt;a href="http://driedtoast.posterous.com/starting-using-posterous"&gt;driedtoast's posterous&lt;/a&gt; &lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-4014496420686773100?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/4014496420686773100/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=4014496420686773100" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/4014496420686773100?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/4014496420686773100?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/fRd11CeD9NE/starting-using-posterous.html" title="Starting using posterous..." /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/01/starting-using-posterous.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UMSHwzfSp7ImA9WxBXEkw.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-4345258786921061338</id><published>2010-01-22T17:46:00.000-08:00</published><updated>2010-01-22T17:48:09.285-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-22T17:48:09.285-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="flex" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><title>Wireframing the flash way</title><content type="html">Finally, an online based wireframing tool and its made in non-other than flex/flash. Check out &lt;a href="http://iplotz.com/"&gt;iplotz&lt;/a&gt;. It allows you to do basic storyboarding for building out website UI specs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-4345258786921061338?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/4345258786921061338/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=4345258786921061338" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/4345258786921061338?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/4345258786921061338?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/e-Kjiga2WHU/wireframing-flash-way.html" title="Wireframing the flash way" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/01/wireframing-flash-way.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAEQXo7cSp7ImA9WxBXEk0.&quot;"><id>tag:blogger.com,1999:blog-9952419.post-4497063690825605522</id><published>2010-01-22T17:00:00.000-08:00</published><updated>2010-01-22T17:05:00.409-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-22T17:05:00.409-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="art" /><category scheme="http://www.blogger.com/atom/ns#" term="pencils" /><category scheme="http://www.blogger.com/atom/ns#" term="sculpture" /><title>Colored Pencil Sculpture</title><content type="html">I got an email with some pictures of colored pencil sculpture art.  It is quite extraordinary.  Most of the pencils are cut into smaller pieces and are sharpened to a fine point. The small pieces of pencils must be pretty difficult to work with. I assume they are put together with a type of wood glue. Take a look at &lt;a href="http://www.jennifermaestre.com/"&gt;Jennifer Maestre's Art&lt;/a&gt;. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Many of the pieces look like sea urchins and inspired by plants.  Have to try this some day.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9952419-4497063690825605522?l=blog.driedtoast.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.driedtoast.com/feeds/4497063690825605522/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9952419&amp;postID=4497063690825605522" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/4497063690825605522?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9952419/posts/default/4497063690825605522?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/VaryingDegreesOfDifficulty/~3/Byv27hC8lcg/colored-pencil-sculpture.html" title="Colored Pencil Sculpture" /><author><name>Daniel Marchant</name><uri>http://www.blogger.com/profile/04423758143249729744</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.driedtoast.com/2010/01/colored-pencil-sculpture.html</feedburner:origLink></entry></feed>

