<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-256954733201794633</id><updated>2012-01-06T09:00:16.299Z</updated><category term='Windows XP'/><category term='DIY'/><category term='Amazon'/><category term='Offer'/><category term='Apple'/><category term='Mac Ports'/><category term='SciTE'/><category term='Power'/><category term='Web'/><category term='BitTorrent'/><category term='Backup'/><category term='FLAC'/><category term='git'/><category term='Camera'/><category term='FTP'/><category term='ORM'/><category term='Networking'/><category term='Mac'/><category term='Quicktime'/><category term='Case'/><category term='Edinburgh Fringe'/><category term='vim'/><category term='Apache'/><category term='Impress'/><category term='X11'/><category term='Virtual Machine'/><category term='Time Machine'/><category term='mySQL'/><category term='CSS'/><category term='Sony'/><category term='Subversion'/><category term='Rails'/><category term='Screen'/><category term='Visio'/><category term='Photography'/><category term='OpenOffice'/><category term='Perl'/><category term='memory'/><category term='Word'/><category term='Parallels'/><category term='Regular expression'/><category term='yaml'/><category term='Tag Editor'/><category term='Firefox'/><category term='iTunes'/><category term='flickr'/><category term='Sound'/><category term='GPS'/><category term='Bash'/><category term='JavaScript'/><category term='Blog'/><category term='Blu-Ray'/><category term='Discount'/><category term='Cryptography'/><category term='Microsoft'/><category term='Podcasts'/><category term='Samba'/><category term='GNU'/><category term='Security'/><category term='Leopard'/><category term='Programming'/><category term='OS X'/><category term='GUI'/><category term='avahi'/><category term='Audio'/><category term='Lightroom'/><category term='macbook'/><category term='O&apos;Reilly'/><category term='Storage'/><category term='Book'/><category term='Facebook'/><category term='Rake'/><category term='Filesystem'/><category term='Social Networking'/><category term='Mail'/><category term='Shoes'/><category term='Debian'/><category term='MP3'/><category term='Applescript'/><category term='Audiobook'/><category term='MS'/><category term='Sinatra'/><category term='Java'/><category term='Capitalisation'/><category term='Screensaver'/><category term='Spotlight'/><category term='VLC'/><category term='Google'/><category term='Boot'/><category term='Snow Leopard'/><category term='PHP'/><category term='Icon'/><category term='Ruby'/><category term='Linux'/><category term='Regexpr'/><category term='AAC'/><category term='Ubuntu'/><category term='Darwin Ports'/><category term='mini-itx'/><category term='Text Editor'/><category term='Ant'/><category term='Books'/><title type='text'>Munky Morgy</title><subtitle type='html'>Windows, Linux, Mac OS X, Java and Ruby Tips and Tricks</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default?start-index=101&amp;max-results=100'/><author><name>A Person</name><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>221</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-6300733934614483493</id><published>2010-05-14T18:54:00.002+01:00</published><updated>2010-05-14T19:18:17.562+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Sinatra'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>So long and thanks for all the fish</title><content type='html'>I have not made many posts for a while on this blog. Out of frustration with posting code samples and interest of writing sinatra web applications I have setup on &lt;a href="http://www.webfaction.com/?affiliate=morgy"&gt;webfaction&lt;/a&gt; please view &lt;a href="http://amaras-tech.co.uk"&gt;http://amaras-tech.co.uk&lt;/a&gt; from now on my new posts will &lt;a href="http://amaras-tech.co.uk/people/morgan/article"&gt;be here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Also my sourceforge/opensource projects will be &lt;a href="http://amaras-tech.co.uk/software"&gt;moved here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-6300733934614483493?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/6300733934614483493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=6300733934614483493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6300733934614483493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6300733934614483493'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/05/so-long-and-thanks-for-all-fish.html' title='So long and thanks for all the fish'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-6979501700544696719</id><published>2010-03-23T14:57:00.000Z</published><updated>2010-03-23T14:58:17.075Z</updated><title type='text'>Github embeded example</title><content type='html'>&lt;script src="http://gist.github.com/341255.js"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-6979501700544696719?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/6979501700544696719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=6979501700544696719' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6979501700544696719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6979501700544696719'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/03/github-embeded-example.html' title='Github embeded example'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-8820018899483800339</id><published>2010-03-17T19:30:00.008Z</published><updated>2010-03-18T18:37:38.739Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='Filesystem'/><title type='text'>GIT setup on webfaction</title><content type='html'>&lt;a href="http://git-scm.com/"&gt;git&lt;/a&gt; is a popular revision control system which allow users to make local commits to capture their work in progress before it is pushed to the central repository. Most webfaction servers do not currently have git installed so you will have to compile it your self fairly trivial if you follow the instructions.&lt;br /&gt;&lt;br /&gt;The intended work-flow is to keep committing local changes while you work on you r website and when you are happy with it you push to a secure git repo. Then make your webapp pull from the central secure repo.&lt;br /&gt;&lt;br /&gt;&lt;pre class='prettyprint'&gt;$ shh username@username.webfaction.com&lt;br /&gt;$ cd ./bin&lt;br /&gt;#//Check out the latest version, currently it is 1.7.0.2&lt;br /&gt;$ wget http://kernel.org/pub/software/scm/git/git-1.7.0.2.tar.gz&lt;br /&gt;$ tar zxf git-1.7.0.2.tar.gz&lt;br /&gt;$ cd git-1.7.0.2&lt;br /&gt;$ ./configure --prefix=$HOME &amp;&amp; make &amp;&amp; make install&lt;br /&gt;&lt;br /&gt;#//Clean up the original stuff leaving the compiled binaries in ~/bin&lt;br /&gt;$ cd ~/bin&lt;br /&gt;$ rm -rf git-1.7.0.2*&lt;br /&gt;#//This bring the total from 80MBs down to 14MBs&lt;br /&gt;&lt;br /&gt;$ mkdir ~/repo/projectname.git&lt;br /&gt;$ cd ~/repo/projectname.git&lt;br /&gt;$ git --bare init&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now local stuff to connect it&lt;br /&gt;&lt;pre class='prettyprint'&gt;$ cd /path/to/your/local/repository/&lt;br /&gt;$ git init #Assumes it is not already a git repo&lt;br /&gt;$ touch README.md&lt;br /&gt;$ git add README.md&lt;br /&gt;$ git commit -a -m '*Added README.md'&lt;br /&gt;#//Now try to connect to server, will request your ssh password or not if you have key based ssh auth setup&lt;br /&gt;$ git push ssh://user@user.webfactional.com/~/repo/projectname.git&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You will see this error&lt;pre class='prettyprint'&gt;$ bash: git-receive-pack: command not found&lt;br /&gt;$ fatal: The remote end hung up unexpectedly&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This is because of an oddity in the way the .bash_profile and .bashrc are setup.&lt;br /&gt;ssh only loads the .bash_profile.&lt;br /&gt;&lt;br /&gt;.bash_profile&lt;pre class='prettyprint'&gt;# .bash_profile&lt;br /&gt;  &lt;br /&gt;  # Get the aliases and functions&lt;br /&gt;  if [ -f ~/.bashrc ]; then&lt;br /&gt;     . ~/.bashrc&lt;br /&gt;  fi&lt;br /&gt;    &lt;br /&gt;  ## MOVE THIS TO .bashrc THENthey Will both be the same&lt;br /&gt;  # User specific environment and startup programs&lt;br /&gt;  #PATH=$PATH:$HOME/bin&lt;br /&gt;  #export PATH&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;.bashrc&lt;pre class='prettyprint'&gt;# .bashrc&lt;br /&gt;&lt;br /&gt;# Source global definitions&lt;br /&gt;if [ -f /etc/bashrc ]; then&lt;br /&gt;        . /etc/bashrc&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# User specific environment and startup programs&lt;br /&gt;PATH=$PATH:$HOME/bin&lt;br /&gt;export PATH&lt;br /&gt;# User specific aliases and functions&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;NB: The following may be added so you can use the 'git push' shortcut (it actually runs git push origin master).&lt;br /&gt;&lt;pre class='prettyprint'&gt;$ git remote add origin ssh://user@server-ip-or-address/~/repo/projectname.git&lt;br /&gt;&lt;br /&gt;$ git push origin master&lt;br /&gt;$ git push&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Based on &lt;a href="http://devioustree.co.uk/2009/07/23/setting-up-git-on-webfaction/"&gt;http://devioustree.co.uk/2009/07/23/setting-up-git-on-webfaction/&lt;/a&gt;&lt;br /&gt;and &lt;a href="http://docs.webfaction.com/software/git.html"&gt;http://docs.webfaction.com/software/git.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-8820018899483800339?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/8820018899483800339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=8820018899483800339' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8820018899483800339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8820018899483800339'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/03/git-setup-on-webfaction.html' title='GIT setup on webfaction'/><author><name>A Person</name><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>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-1945481778945937648</id><published>2010-03-17T15:27:00.003Z</published><updated>2010-03-17T15:41:43.631Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Mail'/><title type='text'>Webfaction and google apps</title><content type='html'>First register (for free) with &lt;a href="http://www.google.com/apps/intl/en/group/index.html"&gt;standrad google apps&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Create the random subdomain (under domains) that google gives you.&lt;br /&gt;Then under DNS overides choose the new subdomain and complete the CNAME record to be google.com&lt;br /&gt;&lt;br /&gt;Check that this has taken affect. when you press the I have done this button google then checks. If you hae not done this it will assume that you do not own the domain and not allow you to continue.&lt;br /&gt;&lt;br /&gt;For easy access to your mailbox, create a new subdomain (under domains) mail.yourdomain.com. Then under DNS overides set the CNAME to ghs.google.com&lt;br /&gt;&lt;br /&gt;Then under domains for yourdomain.com create these MX records&lt;br /&gt;&lt;pre&gt;Domain                Priority&lt;br /&gt;ASPMX5.GOOGLEMAIL.COM   30&lt;br /&gt;ASPMX4.GOOGLEMAIL.COM   30&lt;br /&gt;ASPMX3.GOOGLEMAIL.COM   30&lt;br /&gt;ASPMX2.GOOGLEMAIL.COM   30&lt;br /&gt;ALT2.ASPMX.L.GOOGLE.COM 20&lt;br /&gt;ALT1.ASPMX.L.GOOGLE.COM 20&lt;br /&gt;ASPMX.L.GOOGLE.COM      10 &lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-1945481778945937648?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/1945481778945937648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=1945481778945937648' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1945481778945937648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1945481778945937648'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/03/webfaction-and-google-apps.html' title='Webfaction and google apps'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-242553231322883278</id><published>2010-03-14T00:43:00.003Z</published><updated>2010-03-14T00:59:33.469Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Sinatra'/><title type='text'>Setting Up on WebFaction</title><content type='html'>&lt;a href="http://www.webfaction.com?affiliate=morgy"&gt;WebFaction&lt;/a&gt; is quite popular among the Python and Django community, recently it has simplified Rails and other Ruby web frameworks.&lt;br /&gt;&lt;br /&gt;Unlike other Web hosts they do not bundle a domain name, but these can be bought quite cheaply from &lt;a href="http://www.gandi.net/"&gt;www.gandi.net&lt;/a&gt;. I would then forward the MX records to google and get a gmail handler for your mail. You do not have to get a domain straight away by default you can use username.webfactional.com&lt;br /&gt;&lt;br /&gt;First I had to install Passenger (I think this is also called Rack), I set the name to passenger.&lt;br /&gt;&lt;br /&gt;This means that if you ssh/sftp/ftp into your account you will see ~/webapps/passenger/ &lt;br /&gt;&lt;br /&gt;Then I entered the Websites section then created a new  subdomain devel.username.webfactional.com and set this to be type:passenger location:/&lt;br /&gt;&lt;br /&gt;I had to wait sometime before these setting became active.&lt;br /&gt;There article can then be followed for setting up a basic &lt;a href="http://blog.webfaction.com/introducing-passenger"&gt;Sinatra over passenger &lt;/a&gt;(Rack).&lt;br /&gt;&lt;br /&gt;NB: for a sinatra app you only need to install Passenger (not rails) and gem install sinatra (plus sequel / activerecord etc).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-242553231322883278?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/242553231322883278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=242553231322883278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/242553231322883278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/242553231322883278'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/03/setting-up-on-webfaction.html' title='Setting Up on WebFaction'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-1497211578198629404</id><published>2010-03-13T22:07:00.003Z</published><updated>2010-03-13T22:11:59.050Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Sinatra'/><title type='text'>Sinatra set_cookie started failing</title><content type='html'>I recently started getting this error [1] in my Sinatra web application (after upgrading from 0.9.4 to 0.9.6) &lt;br /&gt;&lt;pre class='prettyprint'&gt;[1] undefined method `set_cookie' for &lt;/pre&gt;&lt;br /&gt;Basically instead of &lt;pre class='prettyprint'&gt;set_cookie("foo", "bar")&lt;/pre&gt;We now have to use:&lt;pre class='prettyprint'&gt;response.set_cookie("foo", "bar")&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gittr.com/index.php/archive/sinatra-cookie-handling-in-0-9-4/"&gt;Source gitr&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-1497211578198629404?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/1497211578198629404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=1497211578198629404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1497211578198629404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1497211578198629404'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/03/sinatra-setcookie-started-failing.html' title='Sinatra set_cookie started failing'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-5542234929504796962</id><published>2010-03-11T23:52:00.003Z</published><updated>2010-03-11T23:57:45.767Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='Text Editor'/><title type='text'>VIM and whitespace</title><content type='html'>To view white space characters (except spaces)&lt;br /&gt;&lt;pre&gt;:set list&lt;/pre&gt;&lt;br /&gt;To stop tab insertion and uses spaces&lt;br /&gt;&lt;pre&gt;set expandtab&lt;/pre&gt;&lt;br /&gt;To set all types of tabs to 3 spaces &lt;br /&gt;&lt;pre&gt;set tabstop=3&lt;br /&gt;set softtabstop=3&lt;br /&gt;set shiftwidth=3&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Further Info &lt;a href="http://vimcasts.org/episodes/tabs-and-spaces/"&gt;vimcasts.org 2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-5542234929504796962?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/5542234929504796962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=5542234929504796962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5542234929504796962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5542234929504796962'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/03/vim-and-whitespace.html' title='VIM and whitespace'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-1907011817641704762</id><published>2010-03-09T23:10:00.002Z</published><updated>2010-03-09T23:18:07.415Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Rake'/><category scheme='http://www.blogger.com/atom/ns#' term='ORM'/><title type='text'>RubyGem version error: activesupport(1.4.4 not = 2.3.2)</title><content type='html'>I have been getting this error [1] when trying to set up a ORM lesson for ActiveRecord. Specifically trying to use active record inside of a Rake file.&lt;br /&gt;&lt;br /&gt;[1]RubyGem version error: activesupport(1.4.4 not = 2.3.2)&lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint"&gt;$ gem list&lt;br /&gt;*** LOCAL GEMS ***&lt;br /&gt;&lt;br /&gt;abstract (1.0.0)&lt;br /&gt;actionmailer (2.3.5)&lt;br /&gt;actionpack (2.3.5)&lt;br /&gt;activerecord (2.3.5)&lt;br /&gt;activeresource (2.3.5)&lt;br /&gt;activesupport (2.3.5)&lt;br /&gt;acts_as_taggable (2.0.2)&lt;br /&gt;compass (0.8.17)&lt;br /&gt;erubis (2.6.5)&lt;br /&gt;feed-normalizer (1.5.1)&lt;br /&gt;haml (2.2.17)&lt;br /&gt;hoe (2.3.3)&lt;br /&gt;maruku (0.6.0)&lt;br /&gt;mbleigh-acts-as-taggable-on (1.0.5)&lt;br /&gt;mysqlplus (0.1.1)&lt;br /&gt;ncurses (0.9.1)&lt;br /&gt;rack (1.0.1)&lt;br /&gt;rails (2.3.5)&lt;br /&gt;rake (0.8.7)&lt;br /&gt;rubyforge (1.0.4)&lt;br /&gt;sequel (3.8.0, 3.7.0)&lt;br /&gt;simple-rss (1.2)&lt;br /&gt;sinatra (0.9.4)&lt;br /&gt;sqlite3-ruby (1.2.5)&lt;br /&gt;syntax (1.0.0)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;activesupport 2.3.5 does seem to be present. but it was fixed by running:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;$ gem install activesupport&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-1907011817641704762?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/1907011817641704762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=1907011817641704762' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1907011817641704762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1907011817641704762'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/03/rubygem-version-error-activesupport144.html' title='RubyGem version error: activesupport(1.4.4 not = 2.3.2)'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-5615395035050960429</id><published>2010-02-28T16:34:00.008Z</published><updated>2010-02-28T17:04:44.742Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>HTML CSS id vs class</title><content type='html'>Working on some websites again, been away from HTML and CSS for a while and having to remind myself the difference between ids and class's.&lt;br /&gt;&lt;br /&gt;id is for unique elements on a page. There should only ever be one of each id  on a page.&lt;br /&gt;&lt;pre class='prettyprint'&gt;&lt; d i v id="navigation"&gt;&lt; / d i v&gt;&lt;/pre&gt;&lt;br /&gt;class is for many elements which you want to apply a custom style&lt;br /&gt;&lt;pre class='prettyprint'&gt;&lt; p r e  id="prettyprint"&gt;Code1&lt; / p r e&gt;&lt;br /&gt;&lt; p r e  id="prettyprint"&gt;Code2&lt; / p r e&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;CSS for id:&lt;br /&gt;&lt;pre class='prettyprint'&gt;div#navigation {background-color: white;}&lt;/pre&gt;&lt;br /&gt;CSS for class:&lt;br /&gt;&lt;pre class='prettyprint'&gt;div.prettyprint {background-color: white;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Original Source :&lt;br /&gt;&lt;a href="http://www.tizag.com/cssT/cssid.php"&gt;http://www.tizag.com/cssT/cssid.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-5615395035050960429?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/5615395035050960429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=5615395035050960429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5615395035050960429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5615395035050960429'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/02/html-css-id-vs-class.html' title='HTML CSS id vs class'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-2627917822339778519</id><published>2010-02-24T14:51:00.003Z</published><updated>2010-02-24T15:04:10.732Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='MS'/><title type='text'>Disable Visio Auto Connect</title><content type='html'>I think it was in Visio 2007 a new feature called auto connect was added which adds blue triangles on the side of visio objects (Shown in image below) and if pressed will auto connect to some other object/shape. This can get quite furstrating as they are very easy to accidentally click.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QKwj7jUsK7o/S4U9edoIBpI/AAAAAAAAAEM/o4Lo6ReNRdk/s1600-h/Visio_Objects_connecting.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 204px;" src="http://1.bp.blogspot.com/_QKwj7jUsK7o/S4U9edoIBpI/AAAAAAAAAEM/o4Lo6ReNRdk/s320/Visio_Objects_connecting.png" alt="" id="BLOGGER_PHOTO_ID_5441823318305408658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To switch off this feature choose:&lt;br /&gt;Visio -&gt; Tools -&gt; Options -&gt; General Tab&lt;br /&gt;Deselect the 'Enable AutoConnect' option&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QKwj7jUsK7o/S4U9exznV1I/AAAAAAAAAEU/Qk9hsi01Zdc/s1600-h/Visio_Auto_Connect.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 274px; height: 320px;" src="http://2.bp.blogspot.com/_QKwj7jUsK7o/S4U9exznV1I/AAAAAAAAAEU/Qk9hsi01Zdc/s320/Visio_Auto_Connect.png" alt="" id="BLOGGER_PHOTO_ID_5441823323722307410" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-2627917822339778519?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/2627917822339778519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=2627917822339778519' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2627917822339778519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2627917822339778519'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/02/disable-visio-auto-connect.html' title='Disable Visio Auto Connect'/><author><name>A Person</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_QKwj7jUsK7o/S4U9edoIBpI/AAAAAAAAAEM/o4Lo6ReNRdk/s72-c/Visio_Objects_connecting.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-5398748473487335286</id><published>2010-02-23T11:04:00.003Z</published><updated>2010-02-23T11:09:21.175Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='Text Editor'/><title type='text'>.vimrc tweaks</title><content type='html'>Improving the Status line in Vim, get current file, directory, position etc.&lt;br /&gt;&lt;br /&gt;~/.vimrc&lt;br /&gt;&lt;pre class='prettyprint'&gt;&lt;br /&gt;"Setup the Status line&lt;br /&gt;set showcmd             " shows the command in the status line&lt;br /&gt;set ch=2                " make command line 2 lines high&lt;br /&gt;set ls=2                " status line always on&lt;br /&gt;&lt;br /&gt;set statusline %&lt;%f\ %h%m%r%=%{getcwd()}\ \ \ %-14.(%l,%c%V%)\ %P&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-5398748473487335286?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/5398748473487335286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=5398748473487335286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5398748473487335286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5398748473487335286'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/02/vimrc-tweaks.html' title='.vimrc tweaks'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-2089118615883339371</id><published>2010-02-10T21:51:00.002Z</published><updated>2010-02-10T21:53:59.895Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><title type='text'>Java right click menu example</title><content type='html'>I have just setup a new github project for &lt;a href="http://github.com/munkymorgy/java_examples/"&gt;java examples&lt;/a&gt; first source file is the basic structure of a right click menu.&lt;br /&gt;&lt;a href="http://github.com/munkymorgy/java_examples/blob/master/PopupMenu.java"&gt;&lt;br /&gt;PopupMenu.java&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-2089118615883339371?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/2089118615883339371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=2089118615883339371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2089118615883339371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2089118615883339371'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/02/java-right-click-menu-example.html' title='Java right click menu example'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-2658932541348731085</id><published>2010-02-06T23:00:00.005Z</published><updated>2010-02-06T23:22:56.801Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Sinatra'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Sinartra limit blog posts displayed on a page</title><content type='html'>To limit the number of database elements returned in &lt;a href="http://api.rubyonrails.org/classes/ActiveRecord/Base.html"&gt;ActiveRecord&lt;/a&gt; is trivial but there is a little bit of work involved with getting the links setup to jump forward and backwards.&lt;br /&gt;&lt;br /&gt;I have decided to use these [1,2,3] URLs to navigate the list of blog posts&lt;br /&gt;[1] /blog : always the latest&lt;br /&gt;[2] /blog/older : The next page of blog posts&lt;br /&gt;[3] /blog/older/integer : a page of blog posts starting at integer the links provided will increment this by a fixed amount, but the route can accept any value.&lt;br /&gt;&lt;br /&gt;NB: as allways I have inserted some extra space in to the code to get it to display rather than render, you may have to delete spaces after &lt;.&lt;br /&gt;&lt;br /&gt;My app.rb:&lt;br /&gt;&lt;pre class='prettyprint'&gt;require 'rubygems'&lt;br /&gt;require 'sinatra'&lt;br /&gt;require 'active_record'&lt;br /&gt;&lt;br /&gt;$blogpath = "blog"&lt;br /&gt;$blogs_per_page = 10&lt;br /&gt;&lt;br /&gt;ActiveRecord::Base.establish_connection(&lt;br /&gt;  :adapter   =&gt; 'sqlite3',&lt;br /&gt;  :database  =&gt; './db/blog.db'&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;class Posts &lt; ActiveRecord::Base&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;get '/blog/?' do&lt;br /&gt;   @offset = 0&lt;br /&gt;   @posts  = Posts.find(:all, :order =&gt; "id DESC", :limit =&gt; $blogs_per_page)&lt;br /&gt;   erb :'blog/all'&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;get '/blog/older/?' do&lt;br /&gt;   #This probably should be a redirect to /blog/older/$blogs_per_page&lt;br /&gt;   @offset = $blogs_per_page&lt;br /&gt;   @posts  = Posts.find(:all, :order =&gt; "id DESC", :limit =&gt; $blogs_per_page, :offset =&gt; @offset)&lt;br /&gt;   erb :'blog/all'&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;get '/blog/older/:offset/?' do&lt;br /&gt;   @offset = params[:offset].to_i&lt;br /&gt;   @posts  = Posts.find(:all, :order =&gt; "id DESC", :limit =&gt; $blogs_per_page, :offset =&gt; @offset)&lt;br /&gt;   erb :'blog/all'&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The views/blog/all.erb&lt;br /&gt;&lt;pre class='prettyprint'&gt;&lt; %# This section adds control on top  %&gt;&lt;br /&gt;&lt; p&gt;&lt;br /&gt;&lt; a href="/&lt;%=$blogpath%&gt;"&gt; latest &lt;%=$blogpath%&gt;&lt; /a&gt; &lt;br /&gt;&lt;br /&gt;&lt;% if @offset&gt;($blogs_per_page-1) %&gt;&lt;br /&gt; | &lt; a href="/&lt;%=$blogpath%&gt;/older/&lt;%=@offset-$blogs_per_page%&gt;"&gt; newer &lt;%=$blogpath%&gt;&lt; /a&gt;&lt;br /&gt;&lt;%end%&gt;&lt;br /&gt;&lt;br /&gt; | &lt; a href="/&lt;%=$blogpath%&gt;/older/&lt;%=@offset+$blogs_per_page%&gt;"&gt; older &lt;%=$blogpath%&gt;&lt; /a&gt; &lt;br /&gt;&lt; /p&gt;&lt;br /&gt;&lt;br /&gt;&lt;%# This section lists all the Posts passed to it %&gt;&lt;br /&gt;&lt;% for post in @posts %&gt; &lt;br /&gt;  &lt; h2&gt;&lt; a href="/&lt;%=$blogpath%&gt;/&lt;%=post.id%&gt;"&gt; &lt;%= post.title %&gt;&lt; /a&gt;&lt; /h2&gt;&lt;br /&gt;  &lt; p&gt;&lt;%=post.body%&gt;&lt; /p&gt;&lt;br /&gt;&lt;% end %&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-2658932541348731085?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/2658932541348731085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=2658932541348731085' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2658932541348731085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2658932541348731085'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/02/sinartra-limit-blog-posts-displayed-on.html' title='Sinartra limit blog posts displayed on a page'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-1178078703699474791</id><published>2010-02-06T14:54:00.005Z</published><updated>2010-02-06T22:59:25.058Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Hyperlink to submit html forms</title><content type='html'>Some times you need a hyperlink to submit hidden form data. Example taken from &lt;a href="http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml"&gt;javascript-coder&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;pre class='prettyprint'&gt;&lt;xmb&gt;&lt; form name="myform" action="handle-data.php"&gt;&lt;br /&gt;Search: &lt; input type='text' name='query' /&gt;&lt;br /&gt;&lt; a href ="javascript: submitform()"&gt;Search&lt; / a&gt;&lt;br /&gt;&lt; / form&gt;&lt;br /&gt;&lt; script type="text/javascript"&gt;&lt;br /&gt;function submitform()&lt;br /&gt;{&lt;br /&gt;  document.myform.submit();&lt;br /&gt;}&lt;br /&gt;&lt; / script&gt;&lt;/xmb&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This is a suggestion from &lt;a href="http://www.velocityreviews.com/forums/t160562-form-with-a-link-instead-of-a-button.html"&gt;VelocityReviews&lt;/a&gt;, just change the look of the button:&lt;br /&gt;&lt;pre&gt;&lt; input type="submit" value="Submit" style="Border: none; background: none"&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I ended up using a hyperlink to an URL that could then be intelligently parsed in my sinatra route, I would have had to have seperate get and post routes any way if I wantyed to stop the form appending ?lots=of&amp;variab=les to the URL.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-1178078703699474791?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/1178078703699474791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=1178078703699474791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1178078703699474791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1178078703699474791'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/02/hyperlink-to-submit-html-forms.html' title='Hyperlink to submit html forms'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-1414814160475699633</id><published>2010-02-05T08:53:00.009Z</published><updated>2010-02-05T11:41:22.756Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Sinatra'/><title type='text'>Sinatra layouts vs templates</title><content type='html'>I must have missed this on my first pass of the &lt;a href="http://www.sinatrarb.com/book.html#layouts"&gt;Sinatra (sinatrarb) book&lt;/a&gt;. There is a very nice way to create a site template, called a layout.&lt;br /&gt;&lt;br /&gt;Just create a file in views called layout.erb (or layout.haml if using haml) output &lt;span style="font-weight:bold;"&gt;yield&lt;/span&gt; where you want the body of the templates to be inserted. Class @variables can also be used.&lt;br /&gt;This allows the basic layout of your site Headers, Footers and navigation panes to be controlled independently, a change in layout.erb is instantly applied across your whole site.&lt;br /&gt;&lt;br /&gt;layout.erb&lt;br /&gt;&lt;pre class='prettyprint'&gt;&lt; h t m l&gt;&lt;br /&gt;   &lt; h e a d&gt;&lt;br /&gt;      &lt; t i t l e&gt;&lt;%= @title %&gt;&lt; / t i t l e&gt;&lt;br /&gt;   &lt; / h e a d&gt;&lt;br /&gt;   &lt; b o d y&gt;&lt;br /&gt;      &lt;%= yield %&gt;&lt;br /&gt;   &lt; / b o d y&gt;&lt;br /&gt;&lt; / h t m l&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;you app.rb (NB: no refference to layour.erb is made)&lt;br /&gt;&lt;pre class'prettyprint'&gt;get '/about/?' do&lt;br /&gt;   @title = "About"&lt;br /&gt;   erb :about&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;/views/about.erb&lt;br /&gt;&lt;pre class'prettyprint'&gt;&lt;xmp&gt;&lt;p&gt;Example about page&lt;/p&gt;&lt;/xmp&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-1414814160475699633?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/1414814160475699633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=1414814160475699633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1414814160475699633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1414814160475699633'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/02/sinatra-layouts-vs-templates.html' title='Sinatra layouts vs templates'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-8194268783099549570</id><published>2010-01-31T18:14:00.006Z</published><updated>2010-03-19T12:36:23.453Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Sinatra'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><title type='text'>SASS with Sinatra</title><content type='html'>Have started looking onto how to use use stylesheets with Sinatra. The easiest way way is to have a top level folder called Public with your main.css file.&lt;br /&gt;&lt;br /&gt;This can be referenced from all pages as&lt;br /&gt;&lt;pre class='prettyprint'&gt;&lt; h t m l&gt;&lt;br /&gt;   &lt; h e a d&gt;&lt;br /&gt;      &lt; t i t l e&gt; example &lt; / t i t l e&gt;&lt;br /&gt;      &lt; l i n k href="/main.css" rel="stylesheet" type="text/css" /&gt;&lt;br /&gt;   &lt; / h e a d&gt;&lt;/pre&gt;&lt;br /&gt;Standard stylesheets have no have variables, they say they do but I could not get them to work. So I have started to look at compass which is a framwork for CSS! it based on haml which is another templating language like erb.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.github.com/chriseppstein/compass/getting-started"&gt;The Main Compass page.&lt;/a&gt; &lt;a href="http://wiki.github.com/chriseppstein/compass/sinatra-integration"&gt;Integrating it with Sinatra.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also see &lt;a href="http://github.com/chriseppstein/compass-sinatra"&gt;github&lt;/a&gt; for a basic example of using Sinatra and Compass.&lt;br /&gt;&lt;br /&gt;Example of some SASS:&lt;br /&gt;&lt;pre&gt;!cdark =    rgb(145, 129, 107)&lt;br /&gt;!cdarker =  rgb(125,  91,  95)&lt;br /&gt;!clight =   rgb(141, 189, 168)&lt;br /&gt;!clighter = rgb(23 , 206, 143)&lt;br /&gt;&lt;br /&gt;body &lt;br /&gt;   background-color: #{!cdark}&lt;br /&gt;&lt;br /&gt;p&lt;br /&gt;   color: #{!clight}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Compass uses SASS and is built on the blueprint layout system.&lt;br /&gt;&lt;a href="http://wiki.github.com/joshuaclayton/blueprint-css/tutorials"&gt;Blueprint Tutorials.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-8194268783099549570?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/8194268783099549570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=8194268783099549570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8194268783099549570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8194268783099549570'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/01/sass-with-sinatra.html' title='SASS with Sinatra'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-386407804956250790</id><published>2010-01-23T14:06:00.005Z</published><updated>2010-01-23T15:14:59.100Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP'/><title type='text'>Java and Ant setup on Windows XP</title><content type='html'>Setting up a Windows XP machine for creating/testing java builds. These programs are required:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/javase/downloads/widget/jdk6.jsp"&gt;Java JDK&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ant.apache.org/bindownload.cgi"&gt;ant&lt;/a&gt;, for more automated builds (like make and rake)&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/jsmooth/files/"&gt;JSmooth&lt;/a&gt;, creates .exe from jar files.&lt;br /&gt;&lt;a href="http://download.cnet.com/ZipGenius-Standard-Edition/3000-2250_4-10179818.html"&gt;Zip Genius&lt;/a&gt;, for unpacking the .tar.gz source files.&lt;br /&gt;&lt;br /&gt;Download and install the Java SDK.&lt;br /&gt;&lt;br /&gt;Download ant, put contnets of .zip in C:/Program Files/ant/&lt;br /&gt;Now go to Control Panel -&gt; System -&gt; Advanced tab and press the set Environment Variables&lt;br /&gt;&lt;br /&gt;Create these two new variables&lt;table&gt;&lt;tr&gt;&lt;td&gt;Variables&lt;/td&gt;&lt;td&gt;Value&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;JAVA_HOME&lt;/td&gt;&lt;td&gt;C:\Program Files\Java\jdk1.6.0_18&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ANT_HOME&lt;/td&gt;&lt;td&gt;C:\Program Files\ant\apache-ant-1.8.0RC1&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;Edit Path to include ant bin and java JDK bin,&lt;br /&gt;C:\Program Files\ant\apache-ant-1.8.0RC1\bin;C:\Program Files\Java\jdk1.6.0_18\bin;&lt;br /&gt;&lt;br /&gt;JSmooth and zip Genius should download and install like standard windows programs&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;NB: I Kept getting this error when trying to run ant&lt;br /&gt;&gt; ant&lt;br /&gt;Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\li&lt;br /&gt;b\tools.jar&lt;br /&gt;&lt;br /&gt;JAVA_HOME does not point to the bin folder but the folder above 'C:\Program Files\Java\jdk1.6.0_18' quotes not to be included.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-386407804956250790?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/386407804956250790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=386407804956250790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/386407804956250790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/386407804956250790'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/01/java-and-ant-setup-on-windows-xp.html' title='Java and Ant setup on Windows XP'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-9041742119812105917</id><published>2010-01-23T09:24:00.005Z</published><updated>2010-01-23T09:39:41.978Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snow Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Storage'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Filesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Boot'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><title type='text'>VMware Fusion Disk Usage</title><content type='html'>The disk images for the operating systems are sparse, i.e. they expand as necessary. They unfortunately do not shrink automatically when you delete data.&lt;br /&gt;&lt;br /&gt;For a windows image you have to install the VMware tools to shrink the disk.&lt;br /&gt;VMware guide &lt;a href="http://www.vmware.com/support/ws5/doc/ws_disk_shrink.html"&gt;&lt;br /&gt;http://www.vmware.com/support/ws5/doc/ws_disk_shrink.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The VMware Tools are installed by: Start your virtual Operating system -&gt; Move mouse to the top of the screen and select 'Virtual Machine' -&gt; 'Install VMware Tools'&lt;br /&gt;&lt;br /&gt;VMware Tools location &lt;br /&gt;C:\Program Files\VMware\VMware Tools\VMwareControlPanel&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QKwj7jUsK7o/S1rBbEK8yfI/AAAAAAAAADw/vUnFkpJfzJc/s1600-h/Screen+shot+2010-01-22+at+18.53.45.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_QKwj7jUsK7o/S1rBbEK8yfI/AAAAAAAAADw/vUnFkpJfzJc/s320/Screen+shot+2010-01-22+at+18.53.45.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5429864971468851698" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-9041742119812105917?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/9041742119812105917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=9041742119812105917' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/9041742119812105917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/9041742119812105917'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/01/vmware-fusion-disk-usage.html' title='VMware Fusion Disk Usage'/><author><name>A Person</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_QKwj7jUsK7o/S1rBbEK8yfI/AAAAAAAAADw/vUnFkpJfzJc/s72-c/Screen+shot+2010-01-22+at+18.53.45.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-5521549304576749133</id><published>2010-01-21T20:44:00.006Z</published><updated>2010-01-21T21:03:51.455Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java String Search and Replace</title><content type='html'>Java by default by default only searches for regular expressions and replaces with strings. The method below allows String search and string replace.&lt;br /&gt;&lt;br /&gt;Why is regular expression search an issue ? if search for [ex] it will match 'e' and 'x' but not '[ex]' if you have control over thestring you could excape the special characters with '\[ex\]' but if you are loading from a config file and you know it is plain text then it would be nice if there was a simple search and replace function example supplied below:&lt;br /&gt;&lt;pre class='prettyprint'&gt;public String replaceString(String input, String find, String replace, boolean casesensitive){&lt;br /&gt; String input_case_adjusted = input;&lt;br /&gt; if (casesensitive == false) {&lt;br /&gt;  //For Case Insensitive searchs&lt;br /&gt;  //Lowercase everything (but replace in the original string)&lt;br /&gt;  input_case_adjusted = input.toLowerCase() ;&lt;br /&gt;  find                = find.toLowerCase() ;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; int    startPosition = input_case_adjusted.indexOf(find);&lt;br /&gt; String start         = "";&lt;br /&gt; String end           = "";&lt;br /&gt;  &lt;br /&gt; if (startPosition &gt;= 0) {&lt;br /&gt;  if (startPosition &gt; 0) {&lt;br /&gt;     start = input.substring(0, startPosition);&lt;br /&gt;  }&lt;br /&gt;  end = input.substring(startPosition + find.length());&lt;br /&gt;   &lt;br /&gt;  return start + replace + end;&lt;br /&gt; } else {&lt;br /&gt;  return input;&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-5521549304576749133?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/5521549304576749133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=5521549304576749133' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5521549304576749133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5521549304576749133'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/01/java-string-search-and-replace.html' title='Java String Search and Replace'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-8219055131022911911</id><published>2010-01-17T18:56:00.004Z</published><updated>2010-01-21T21:02:54.570Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java case insensitive regular search and replace</title><content type='html'>Java's Search and replace function on strings is:&lt;br /&gt;&lt;pre class='prettyprint'&gt;new_string = old_string.replaceFirst(regularExpresionFind, textReplace);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;To make this non-case sensitive / case insenitive:&lt;br /&gt;&lt;pre class='prettyprint'&gt;new_string = old_string.replaceFirst("(?i)" + regularExpresionFind, textReplace);&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-8219055131022911911?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/8219055131022911911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=8219055131022911911' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8219055131022911911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8219055131022911911'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/01/java-case-insensitive-regular-search.html' title='Java case insensitive regular search and replace'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-2724312290297269694</id><published>2010-01-09T15:45:00.003Z</published><updated>2010-01-09T15:49:32.716Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tag Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Audio'/><category scheme='http://www.blogger.com/atom/ns#' term='MP3'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP'/><category scheme='http://www.blogger.com/atom/ns#' term='MS'/><title type='text'>Audio File Tag Editor</title><content type='html'>The best MP3 tag editor I can find is &lt;a href="http://www.mp3tag.de/en/"&gt;Mp3tag&lt;/a&gt; (supports most audio files). The feature that I find most useful is its ability to parse the file name and writing it into the tags and vice versa. Unfortunately it is windows only.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-2724312290297269694?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/2724312290297269694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=2724312290297269694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2724312290297269694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2724312290297269694'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/01/audio-file-tag-editor.html' title='Audio File Tag Editor'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-7302572272998677190</id><published>2010-01-02T17:28:00.003Z</published><updated>2010-01-02T17:37:08.175Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Filesystem'/><title type='text'>Happy New Year, Have some Tabs</title><content type='html'>&lt;a href="https://sourceforge.net/projects/fileexplorer/"&gt;File Explorer&lt;/a&gt; (my souceforge project) now has tabbed browsing and  right click open folders in new window or new tab.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QKwj7jUsK7o/Sz-EIyacFTI/AAAAAAAAADo/NfFZNFONDVw/s1600-h/Screen+shot+2010-01-02+at+17.35.41.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 226px; height: 320px;" src="http://1.bp.blogspot.com/_QKwj7jUsK7o/Sz-EIyacFTI/AAAAAAAAADo/NfFZNFONDVw/s320/Screen+shot+2010-01-02+at+17.35.41.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5422197762883851570" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-7302572272998677190?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/7302572272998677190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=7302572272998677190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7302572272998677190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7302572272998677190'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2010/01/happy-new-year-have-some-tabs.html' title='Happy New Year, Have some Tabs'/><author><name>A Person</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_QKwj7jUsK7o/Sz-EIyacFTI/AAAAAAAAADo/NfFZNFONDVw/s72-c/Screen+shot+2010-01-02+at+17.35.41.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-1296420576592536313</id><published>2009-12-19T21:15:00.008Z</published><updated>2009-12-20T19:37:46.187Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Sinatra'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Sinatra Second Blog attempt</title><content type='html'>Example of how to setup a basic Sinatra web application.&lt;br /&gt;&lt;br /&gt;This Sinatra app uses erb for the templating and active record for the database ORM. To get the cod eto show up I have had to change "&lt; a" to &lt;-a tags and insert extra space in other tags, unfortunately this means they are not quite cut and paste. To simplify The setup I have created a ./create_db.rb file.&lt;br /&gt;&lt;br /&gt;./create_db.rb&lt;br /&gt;&lt;pre class="prettyprint"&gt;require 'rubygems'&lt;br /&gt;require 'sequel'&lt;br /&gt; &lt;br /&gt;# Connect to the database&lt;br /&gt;DB = Sequel.sqlite('./db/blog.db')&lt;br /&gt;&lt;br /&gt;unless DB.table_exists? :posts&lt;br /&gt;  DB.create_table :posts do&lt;br /&gt;    primary_key :id&lt;br /&gt;    varchar :title&lt;br /&gt;    text :body&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  # populate the table&lt;br /&gt;  DB[:posts].insert(:title =&gt; 'Post Man Pat', :body =&gt; "has a black and white cat" )&lt;br /&gt;  DB[:posts].insert(:title =&gt; 'Sandwiches',  :body =&gt; "Peanut butter and Marmite, Yum")&lt;br /&gt;  DB[:posts].insert(:title =&gt; 'Leaves', :body =&gt; "Grow on trees")&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;class Posts &lt; Sequel::Model&lt;br /&gt;end&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The Main Application. ./app.rb&lt;br /&gt;&lt;pre class="prettyprint"&gt;require 'rubygems'&lt;br /&gt;require 'sinatra'&lt;br /&gt;require 'active_record'&lt;br /&gt;&lt;br /&gt;#Load extra functions&lt;br /&gt;require 'url_logic'&lt;br /&gt;&lt;br /&gt;ActiveRecord::Base.establish_connection(&lt;br /&gt;  :adapter   =&gt; 'sqlite3',&lt;br /&gt;  :database  =&gt; './db/blog.db'&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;class Post &lt; ActiveRecord::Base&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;$blogpath = "article"&lt;br /&gt;&lt;br /&gt;get '/' do&lt;br /&gt; erb :index&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;#Setup paths for blog&lt;br /&gt;get '/article/?' do&lt;br /&gt;  @posts = Post.all()&lt;br /&gt;  erb :readallblog&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;#view a post&lt;br /&gt;get '/article/:id/?' do&lt;br /&gt;  @posts = Post.find(params[:id])&lt;br /&gt;  erb :showoneblog&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;#edit a post&lt;br /&gt;get '/article/:id/edit/?' do |id|&lt;br /&gt;  @posts = Post.find(params[:id])&lt;br /&gt;  erb :editblog&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;#Update post&lt;br /&gt;put '/article/:id/?' do&lt;br /&gt;  @posts = Post.find(params[:id])&lt;br /&gt;  @posts.title =  params['post']['title']&lt;br /&gt;  @posts.body  =  params['post']['body']&lt;br /&gt;  @posts.save&lt;br /&gt;  erb :showoneblog&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#create a Post&lt;br /&gt;post '/article/?' do&lt;br /&gt;   Post.create( &lt;br /&gt;      :title =&gt;params['post']['title'] ,&lt;br /&gt;      :body =&gt; params['post']['body']&lt;br /&gt;   )&lt;br /&gt;   @posts = Post.all()&lt;br /&gt;   erb :readallblog&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;#delete an article&lt;br /&gt;delete '/article/?' do&lt;br /&gt;   @posts = Post.find(params['post']['id'])&lt;br /&gt;   @posts.delete&lt;br /&gt;   @posts = Post.all()&lt;br /&gt;   erb :readblog&lt;br /&gt;end&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;./views/readallblog.erb&lt;br /&gt;&lt;pre class="prettyprint"&gt;readBlog All Posts&lt;br /&gt;&lt;%# $blogpath is global set in the main controller%&gt;&lt;br /&gt;&lt;% for post in @posts %&gt;&lt;br /&gt;  &lt; h 1&gt;&lt;-a href="/&lt;%=$blogpath%&gt;/&lt;%=post.id%&gt;"&gt;&lt;%=post.id%&gt;:&lt;%= post.title %&gt;&lt; / a&gt;&lt;/ h 1&gt;&lt;br /&gt;  &lt;%=post.body%&gt;&lt;br  /&gt;&lt;br /&gt;  &lt;-a href="/&lt;%=$blogpath%&gt;/&lt;%=post.id%&gt;/edit"&gt;edit&lt; / a&gt;&lt;br /&gt;&lt;% end %&gt;&lt;br /&gt;&lt;br /&gt;&lt; f orm method="post" action="/&lt;%=$blogpath%&gt;/"&gt;&lt;br /&gt;  &lt; i nput name="_method" type="hidden" value="post" /&gt;&lt;br /&gt;  &lt; d iv&gt;&lt;br /&gt; Title&lt; i nput type="text"  name="post[title]" value="title"/&gt;&lt;br  /&gt;&lt;br /&gt; Body&lt; i nput type="text"   name="post[body]"  value="body"/&gt;&lt;br  /&gt;&lt;br /&gt; &lt; b utton type="submit"&gt;Create&lt;/button&gt;&lt;br /&gt;  &lt; / d iv&gt;&lt;br /&gt;&lt; / f orm&gt;&lt;/pre&gt;&lt;br /&gt;./views/showoneblog.erb&lt;br /&gt;&lt;pre class="prettyprint"&gt;Show Single Post&lt;br /&gt;&lt;br /&gt;&lt; h 1&gt;&lt;%=@posts.id%&gt;:&lt;%= @posts.title %&gt;&lt; / h 1&gt;&lt;br /&gt;  &lt; p &gt;&lt;%= @posts.body%&gt;&lt;br  /&gt;&lt;br /&gt;    &lt;-a href="/&lt;%=$blogpath%&gt;/&lt;%=@posts.id%&gt;/edit"&gt;edit&lt; / a&gt; &lt;/p&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;./views/blog&lt;pre class="prettyprint"&gt;Edit Single Post&lt;br /&gt;&lt;br /&gt;&lt; h 1&gt;&lt;%=@posts.id%&gt;:&lt;%= @posts.title %&gt;&lt; / h 1&gt;&lt;br /&gt;&lt;%=@posts.body%&gt;&lt;br /&gt;&lt;br /&gt;&lt; f orm method="post" action="/&lt;%=$blogpath%&gt;/&lt;%=@posts.id%&gt;/"&gt;&lt;br /&gt;  &lt; i nput name="_method" type="hidden" value="put" /&gt;&lt;br /&gt;  &lt; d iv&gt;&lt;br /&gt; Title&lt; i nput type="text"  name="post[title]" value="&lt;%=@posts.title%&gt;"/&gt;&lt;br  /&gt;&lt;br /&gt; Body&lt; i nput type="text"  name="post[body]"   value="&lt;%=@posts.body%&gt;"/&gt;&lt;br  /&gt;&lt;br /&gt; &lt; b utton type="submit"&gt;Update&lt;/button&gt;&lt;br /&gt;  &lt; / div&gt;&lt;br /&gt;&lt; / f orm&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Hopefully this has covered creating new, editing and retrieving database entries using &lt;a href="http://api.rubyonrails.org/classes/ActiveRecord/Base.html"&gt;ActiveRecord&lt;/a&gt;. I have probably missed some of the tricks to simplify writing Sinatra apps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-1296420576592536313?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/1296420576592536313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=1296420576592536313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1296420576592536313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1296420576592536313'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/12/sinatra-second-blog-attempt.html' title='Sinatra Second Blog attempt'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-6152779285285383000</id><published>2009-12-15T18:35:00.006Z</published><updated>2009-12-19T21:16:14.625Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Snow Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Darwin Ports'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac Ports'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Sinatra'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Sinatra First Blog attempt</title><content type='html'>After getting Xcode for Snow leopard correctly installed and restarting. The basic sinatra works correctly.&lt;br /&gt;&lt;br /&gt;hi.rb&lt;br /&gt;----&lt;pre class="prettyprint"&gt;require 'rubygems'&lt;br /&gt;require 'sinatra'&lt;br /&gt;get '/hi' do&lt;br /&gt;  "Hello World!"&lt;br /&gt;end&lt;/pre&gt;&lt;br /&gt;Command line:&lt;pre&gt;$ gem install sinatra&lt;br /&gt;$ ruby hi.rb&lt;/pre&gt;&lt;br /&gt;Then checkout &lt;a href="http://127.0.0.1:4567"&gt;127.0.0.1:4567&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Turning it an almost blog, with some erb and an sqlite 3 database.&lt;br /&gt;Assuming you have macports installed you can do (or look up installing sqlite3):&lt;br /&gt;$ sudo port install sqlite3&lt;pre&gt;cd Sinatra_dir&lt;br /&gt;sqlite3 blog&lt;br /&gt;#you are now in the sqlite command prompt&lt;br /&gt;sqlite&gt; create table posts (title text, body text );&lt;br /&gt;sqlite&gt; insert into posts  values('title1','Very long article');&lt;br /&gt;sqlite&gt; insert into posts  values('Sinatra Blog Post','text text text text text');&lt;/pre&gt;&lt;br /&gt;hi.rb&lt;br /&gt;----&lt;pre class="prettyprint"&gt;require 'rubygems'&lt;br /&gt;require 'sinatra'&lt;br /&gt;require 'active_record'&lt;br /&gt; &lt;br /&gt;ActiveRecord::Base.establish_connection(&lt;br /&gt;   :adapter =&gt; 'sqlite3',&lt;br /&gt;   :dbfile =&gt;  'blog.db'&lt;br /&gt;) &lt;br /&gt;class Post &lt; ActiveRecord::Base&lt;br /&gt;end&lt;br /&gt; &lt;br /&gt;get '/news/?' do&lt;br /&gt;  @posts = Post.all()&lt;br /&gt;  erb :index&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now create ./views/index.erb&lt;br /&gt;----&lt;pre class="prettyprint"&gt;HelloWorld!&lt;br /&gt; &lt;br /&gt;&lt;% for post in @posts %&gt;&lt;br /&gt; &lt; h 1&gt;&lt;%= post.title %&gt;&lt; / h 1&gt;&lt;br /&gt; &lt; p &gt;&lt;%= post.body%&gt;&lt; / p&gt; &lt;br /&gt;&lt;% end %&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;$ ruby hi.rb and goto &lt;a href="http://127.0.0.1:4567"&gt;127.0.0.1:4567&lt;/a&gt;.&lt;br /&gt;If all goes well you should see some thing like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QKwj7jUsK7o/SyffkbY7XwI/AAAAAAAAADg/muTpF4fBjP0/s1600-h/SinatraBlog-first.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 207px;" src="http://2.bp.blogspot.com/_QKwj7jUsK7o/SyffkbY7XwI/AAAAAAAAADg/muTpF4fBjP0/s320/SinatraBlog-first.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5415542893856907010" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-6152779285285383000?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/6152779285285383000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=6152779285285383000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6152779285285383000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6152779285285383000'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/12/sinatra-firt-blog-attempt.html' title='Sinatra First Blog attempt'/><author><name>A Person</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_QKwj7jUsK7o/SyffkbY7XwI/AAAAAAAAADg/muTpF4fBjP0/s72-c/SinatraBlog-first.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-3790455953930137518</id><published>2009-12-14T20:46:00.003Z</published><updated>2009-12-14T20:51:17.021Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Darwin Ports'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>whereis alternative to which</title><content type='html'>whereis is a nice alternative to which for finding the location of unix programs.&lt;br /&gt;&lt;br /&gt;$ which ruby&lt;br /&gt;&gt; /usr/local/bin/ruby&lt;br /&gt;&lt;br /&gt;$ whereis ruby&lt;br /&gt;&gt; /usr/bin/ruby&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-3790455953930137518?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/3790455953930137518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=3790455953930137518' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3790455953930137518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3790455953930137518'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/12/whereis-alternative-to-which.html' title='whereis alternative to which'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-1216743974819198806</id><published>2009-12-14T19:50:00.006Z</published><updated>2009-12-15T09:17:11.711Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snow Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='Darwin Ports'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac Ports'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>Problems with Snow Leopard and Ruby Gems</title><content type='html'>UPDATE 2 (update 1 at the bottom with some extra ruby version info)&lt;br /&gt;When you install Xcode make sure is is the latest version. I must have at some point installed the old Leopard version. then when things did not work reinstalled that same old version. I found xcode321_10m2003 in my downloads folder not the older one I had put in a software folder. You may still need to update Ruby to a new version.&lt;br /&gt;&lt;br /&gt;Make sure you have the latest Xcode.&lt;br /&gt;&lt;hr  /&gt;&lt;br /&gt;I have been trying to get the very simple Sinatra (a light ruby on Rails) setup working following the verysimple instructions on &lt;a href="http://www.sinatrarb.com/"&gt;http://www.sinatrarb.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Make a file called hi.rb with this inside:&lt;br /&gt;&lt;pre&gt;require 'rubygems'&lt;br /&gt;require 'sinatra'&lt;br /&gt;get '/hi' do&lt;br /&gt; "Hello World!"&lt;br /&gt;end&lt;/pre&gt;&lt;br /&gt;Then run these commands:&lt;br /&gt;&lt;pre&gt;$ gems install sinatra&lt;br /&gt;$ ruby hi.rb&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;They fail with:&lt;br /&gt;&lt;pre&gt;hi.rb:2:in `require': no such file to load -- rubygems (LoadError)&lt;br /&gt;from hi.rb:2&lt;/pre&gt;&lt;br /&gt;After removing the require 'rubygems', is it actually still required ?&lt;br /&gt;&lt;pre&gt;hi.rb:3:in `require': no such file to load -- sinatra (LoadError)&lt;br /&gt;from hi.rb:3&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;To fix this I ran through the instructions at &lt;a href="http://hivelogic.com/articles/compiling-ruby-rubygems-and-rails-on-snow-leopard/"&gt;http://hivelogic.com/articles/compiling-ruby-rubygems-and-rails-on-snow-leopard/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Their instructions worked well until the mysql gem which I do not require at the moment but do like to get my set up the same as the tutorial. I found the following line on stackoverflow.&lt;br /&gt;&lt;pre&gt;$ sudo env ARCHFLAGS="-arch x86_64" gem install mysqlplus&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Finally got the basic sinatra working by calling:&lt;br /&gt;&lt;pre&gt;$ /usr/local/bin/ruby hi.rb&lt;/pre&gt;Even though which ruby returns /usr/local/bin/ruby, so why does ruby hi.rb not just work!&lt;br /&gt;&lt;br /&gt;What is going on just thought I would check to see if calling the other ruby breaks it, but it works fine.&lt;br /&gt;&lt;pre&gt;$ /usr/bin/ruby hi.rb&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;UPDATE&lt;br /&gt;For completeness and to answer Spyro7's Question:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;$ /usr/local/bin/ruby -v&lt;br /&gt;&gt; ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.2.0]&lt;br /&gt;&lt;br /&gt;$ /usr/bin/ruby -v&lt;br /&gt;&gt; ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-1216743974819198806?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/1216743974819198806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=1216743974819198806' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1216743974819198806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1216743974819198806'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/12/problems-with-snow-leopard-and-ruby.html' title='Problems with Snow Leopard and Ruby Gems'/><author><name>A Person</name><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>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-7392129081598449007</id><published>2009-12-13T09:45:00.005Z</published><updated>2009-12-13T10:03:20.165Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Audio'/><category scheme='http://www.blogger.com/atom/ns#' term='iTunes'/><category scheme='http://www.blogger.com/atom/ns#' term='MP3'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Rediscovering Airfoil</title><content type='html'>Apple produces quite a cheap way to stream audio into another room/Hifi all you need is an airport express plug it into an amp or a powered set of speakers then iTunes can transmit over wifi to these external speakers.&lt;br /&gt;&lt;br /&gt;There is a nice piece of software called &lt;a href="http://www.rogueamoeba.com/airfoil/"&gt;airfoil&lt;/a&gt; by &lt;a href="http://www.rogueamoeba.com/"&gt;rogueamoeba&lt;/a&gt; which is available for $25 (25 us dollars). It allows you to stream certain application or all audio to these external speakers. You can also select which speakers to transmit to.&lt;br /&gt;&lt;br /&gt;There is a new application which I have not seen before, &lt;a href="http://www.rogueamoeba.com/airfoil/speakers.php"&gt;Airfoil Speakers&lt;/a&gt; this allows a Mac or Windows PC to be turned in to a receiving Airport express!&lt;br /&gt;&lt;br /&gt;There is also an Airfoil Speakers for the iPod Touch! So you get wireless headphones capability&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-7392129081598449007?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/7392129081598449007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=7392129081598449007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7392129081598449007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7392129081598449007'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/12/rediscovering-airfoil.html' title='Rediscovering Airfoil'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-2943355707070692416</id><published>2009-12-10T08:17:00.013Z</published><updated>2009-12-10T20:10:13.660Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snow Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Storage'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Filesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><title type='text'>Mac OS X NTFS Drivers speed test</title><content type='html'>I have had to transfer some data from one USB NTFS formatted drive to another USB NTFS formatted drive. These are the results using the different Mac NTFS drivers available.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://macntfs-3g.blogspot.com/"&gt;NTFS-3G&lt;/a&gt; (With &lt;a href="http://code.google.com/p/macfuse/"&gt;MAC FUSE&lt;/a&gt;) Caching disabled:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QKwj7jUsK7o/SyCvSjnaprI/AAAAAAAAADI/qDf3qDFMA28/s1600-h/Screen+shot+2009-12-10+at+07.55.11.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 276px; height: 269px;" src="http://3.bp.blogspot.com/_QKwj7jUsK7o/SyCvSjnaprI/AAAAAAAAADI/qDf3qDFMA28/s320/Screen+shot+2009-12-10+at+07.55.11.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5413519485432407730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;NTFS-3G with caching enabled:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QKwj7jUsK7o/SyEvGOzuVpI/AAAAAAAAADY/fZ0N1qDCqHg/s1600-h/Screen+shot+2009-12-10+at+17.23.52.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 203px; height: 265px;" src="http://2.bp.blogspot.com/_QKwj7jUsK7o/SyEvGOzuVpI/AAAAAAAAADY/fZ0N1qDCqHg/s320/Screen+shot+2009-12-10+at+17.23.52.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5413660011176810130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.tuxera.com/products/tuxera-ntfs-for-mac/"&gt;Tuxera NTFS for Mac (25 Euro)&lt;/a&gt; (based on NTFS-3G) Caching enabled:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QKwj7jUsK7o/SyCv88kLO1I/AAAAAAAAADQ/XzsIgCxqf4A/s1600-h/Screen+shot+2009-12-10+at+07.54.33.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 221px; height: 233px;" src="http://1.bp.blogspot.com/_QKwj7jUsK7o/SyCv88kLO1I/AAAAAAAAADQ/XzsIgCxqf4A/s320/Screen+shot+2009-12-10+at+07.54.33.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5413520213684206418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also missing, For comparison HFS+ test:&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;NTFS-3G (No Caching)&lt;/td&gt;&lt;td&gt;  183 MB/Minute&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;NTFS-3G (Cached)    &lt;/td&gt;&lt;td&gt;  610 MB/Minute &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;TUXERA  (Cached) to HFS &lt;/td&gt;&lt;td&gt;  1000 MB/Minute&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;TUXERA  (Cached)    &lt;/td&gt;&lt;td&gt; 1223 MB/Minute &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;NTFS-3G (Cached) to HFS&lt;/td&gt;&lt;td&gt; 1391 MB/Minutes &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;HFS+ SATA to USB    &lt;/td&gt;&lt;td&gt; 1464 MB/Minures &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-2943355707070692416?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/2943355707070692416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=2943355707070692416' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2943355707070692416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2943355707070692416'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/12/mac-os-x-ntfs-drivers-speed-test.html' title='Mac OS X NTFS Drivers speed test'/><author><name>A Person</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QKwj7jUsK7o/SyCvSjnaprI/AAAAAAAAADI/qDf3qDFMA28/s72-c/Screen+shot+2009-12-10+at+07.55.11.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-3101798234054904996</id><published>2009-12-09T20:09:00.003Z</published><updated>2009-12-09T20:20:51.293Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snow Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Storage'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Filesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='macbook'/><title type='text'>Mac OX Speed test your (USB) Hard Drive</title><content type='html'>Just tried xbench to speed test my harddrives, very surprised that it still works as it looks like the last time it got any updates was for OS 10.3 a few years ago.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.xbench.com/"&gt;&lt;br /&gt;http://www.xbench.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Results from my main Hard Drive Mac OS X:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QKwj7jUsK7o/SyAFUPPvCvI/AAAAAAAAADA/mDSSp1SsNsk/s1600-h/Screen+shot+2009-12-09+at+20.14.31.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 316px;" src="http://2.bp.blogspot.com/_QKwj7jUsK7o/SyAFUPPvCvI/AAAAAAAAADA/mDSSp1SsNsk/s320/Screen+shot+2009-12-09+at+20.14.31.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5413332597347388146" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Aaargh, it refuses to test USB drives the only reason I was trying it out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-3101798234054904996?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/3101798234054904996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=3101798234054904996' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3101798234054904996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3101798234054904996'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/12/mac-ox-speed-test-your-usb-hard-drive.html' title='Mac OX Speed test your (USB) Hard Drive'/><author><name>A Person</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_QKwj7jUsK7o/SyAFUPPvCvI/AAAAAAAAADA/mDSSp1SsNsk/s72-c/Screen+shot+2009-12-09+at+20.14.31.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-5363689747138753391</id><published>2009-12-07T15:24:00.004Z</published><updated>2009-12-07T15:44:26.862Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>201st Post: Finally fixed wrapping text in pre tags</title><content type='html'>pre tags are used in html to maintain the display of whitespace as it is written in the html. This lends itself nicely to code snippets but unfortunately means that it does not wrap text nicely by default.&lt;br /&gt;&lt;br /&gt;By adding this [1] to the embedded or external style sheets you can get text to behave nicely inside pre tags.&lt;br /&gt; &lt;br /&gt;[1]&lt;pre&gt;pre {&lt;br /&gt; white-space: pre-wrap; /* css-3 */&lt;br /&gt; white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */&lt;br /&gt; white-space: -pre-wrap; /* Opera 4-6 */&lt;br /&gt; white-space: -o-pre-wrap; /* Opera 7 */&lt;br /&gt; word-wrap: break-word; /* Internet Explorer 5.5+ */&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Original source:&lt;br /&gt;&lt;a href="http://labnol.blogspot.com/2006/10/html-css-trick-for-displaying-code.html"&gt;http://labnol.blogspot.com/2006/10/html-css-trick-for-displaying-code.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-5363689747138753391?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/5363689747138753391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=5363689747138753391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5363689747138753391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5363689747138753391'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/12/201st-post-fixed-wrapping-text-in-pre.html' title='201st Post: Finally fixed wrapping text in pre tags'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-119965912788937344</id><published>2009-12-05T21:12:00.006Z</published><updated>2009-12-05T21:46:08.285Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snow Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Storage'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Filesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><title type='text'>Snow Leopard Get Summary</title><content type='html'>OS X has a very use shortcut for getting info on files which is cmd-i or the 'apple key' and 'i' will bring up an info window. If you select more than 1 file you get an info window for each! probably not what you wanted.&lt;br /&gt;&lt;br /&gt;On OS X 10.6 if you hold down the control 'ctrl' key as well as cmd-i (ctrl-cmd-i) then you get a neat summary of those files. Very useful for getting the disk spaced used by multiple files.&lt;br /&gt;&lt;br /&gt;if only one file is selected ctrl-cmd-i and cmd-i perform the same function, why is ctrl-cmd-i not the default!&lt;br /&gt;&lt;br /&gt;If you would like to have a multiple file summary by default try this:&lt;br /&gt;Open your system preference is your usual way, I use quick silver so just pres ctrl-space type sys and enter.&lt;br /&gt;&lt;br /&gt;Go to the Keyboard item. Key board shortcuts then press then plus in the bottom left of the main panel. &lt;br /&gt;&lt;br /&gt;Add a shortcut for application finder. command is 'Get Summary Info' then in the keyboard command type the shortcut you want, in this case cmd-i.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QKwj7jUsK7o/SxrS3jUvNMI/AAAAAAAAACw/mgD63gQERkk/s1600-h/Screen+shot+2009-12-05+at+21.37.08.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 286px;" src="http://2.bp.blogspot.com/_QKwj7jUsK7o/SxrS3jUvNMI/AAAAAAAAACw/mgD63gQERkk/s320/Screen+shot+2009-12-05+at+21.37.08.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5411869754055931074" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;NB: You may also need to uncheck the Show Info option in Keyboard shortcuts-&gt;Service-&gt;Files and Folders-&gt;Show Info.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QKwj7jUsK7o/SxrUfmFODPI/AAAAAAAAAC4/hInqXweE8cI/s1600-h/Screen+shot+2009-12-05+at+21.44.54.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 286px;" src="http://1.bp.blogspot.com/_QKwj7jUsK7o/SxrUfmFODPI/AAAAAAAAAC4/hInqXweE8cI/s320/Screen+shot+2009-12-05+at+21.44.54.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5411871541502545138" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-119965912788937344?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/119965912788937344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=119965912788937344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/119965912788937344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/119965912788937344'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/12/snow-leopard-get-summary.html' title='Snow Leopard Get Summary'/><author><name>A Person</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_QKwj7jUsK7o/SxrS3jUvNMI/AAAAAAAAACw/mgD63gQERkk/s72-c/Screen+shot+2009-12-05+at+21.37.08.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-5275630761277284263</id><published>2009-12-05T19:13:00.003Z</published><updated>2009-12-05T19:19:00.955Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Storage'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Mail'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Google Tasks</title><content type='html'>Just discovered that google have added a Task list function into gmail.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mail.google.com/mail/help/tasks/"&gt;http://mail.google.com/mail/help/tasks/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This will probably become my main todo list. I do not think that it will replace all the notes I am keeping with &lt;a href="http://www.evernote.com/"&gt;Evernote&lt;/a&gt; though (Evernote has a very functional free mode).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-5275630761277284263?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/5275630761277284263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=5275630761277284263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5275630761277284263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5275630761277284263'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/12/google-tasks.html' title='Google Tasks'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-7080883134714811364</id><published>2009-12-05T15:42:00.003Z</published><updated>2009-12-05T16:02:28.425Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Screensaver'/><category scheme='http://www.blogger.com/atom/ns#' term='Photography'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP'/><category scheme='http://www.blogger.com/atom/ns#' term='MS'/><title type='text'>Windows XP Picture Screen Saver</title><content type='html'>Windows XP comes with a slideshow screensaver which can be pointed at a folder and displays the picture one at a time. For me it refused to display most of my pictures out of about 2000 only 12 would be shown. &lt;br /&gt;&lt;br /&gt;On my search to fix this I was unable to find the spec for the photos allowed through the Windows screen saver, I did however discover that google has a screensaver that comes packaged with picasa. This also has and pan &amp; Zoom effect just like the mac screen saver.&lt;br /&gt;&lt;br /&gt;Get from :&lt;br /&gt;&lt;a href="http://pack.google.com/screensaver.html"&gt;http://pack.google.com/screensaver.html&lt;/a&gt;&lt;br  &gt;&lt;br /&gt;All you actually need is Picasa, so you can uncheck every thing else if you want.&lt;br /&gt;Once installed you do not have set picasa up just choose the new screensaver from the standard place.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QKwj7jUsK7o/SxqDDfzPaaI/AAAAAAAAACo/kX8oJvuxM70/s1600-h/Picasa-Sceensaver.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 192px;" src="http://1.bp.blogspot.com/_QKwj7jUsK7o/SxqDDfzPaaI/AAAAAAAAACo/kX8oJvuxM70/s320/Picasa-Sceensaver.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5411781998338337186" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-7080883134714811364?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/7080883134714811364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=7080883134714811364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7080883134714811364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7080883134714811364'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/12/windows-xp-picture-screen-saver.html' title='Windows XP Picture Screen Saver'/><author><name>A Person</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_QKwj7jUsK7o/SxqDDfzPaaI/AAAAAAAAACo/kX8oJvuxM70/s72-c/Picasa-Sceensaver.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-8655408169860619144</id><published>2009-11-26T20:33:00.002Z</published><updated>2009-11-26T20:38:50.338Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Tame the firefox by blocking flash</title><content type='html'>My web browser firefox keeps hogging the cpu 30-40% sometimes going crazy and taking 140% I believe that this is mainly due to embeded flash content. I have just started using the &lt;a href="http://flashblock.mozdev.org/"&gt;FlashBlock&lt;/a&gt; pluggin hoping it will help tame Firefox's cpu usage.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://flashblock.mozdev.org/"&gt;&lt;br /&gt;http://flashblock.mozdev.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-8655408169860619144?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/8655408169860619144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=8655408169860619144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8655408169860619144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8655408169860619144'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/11/tame-firefox-by-blocking-flash.html' title='Tame the firefox by blocking flash'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-5615858406502952079</id><published>2009-11-23T19:09:00.003Z</published><updated>2009-11-23T19:38:18.494Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snow Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><title type='text'>Snow Leopard Shortcut to Home in Finder</title><content type='html'>Snow Leopard by default does not have a 'Mac OS X' Icon on the desktop but there is a keyboard short-cut to launch a new finder window open with your home directory.&lt;br /&gt;&lt;br /&gt;cmd-shift-h (Shortcut to Home)&lt;br /&gt;cmd-shift-a (Shortcut to Applications)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-5615858406502952079?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/5615858406502952079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=5615858406502952079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5615858406502952079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5615858406502952079'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/11/snow-leopard-shortcut-to-home-in-finder.html' title='Snow Leopard Shortcut to Home in Finder'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-8833816773370695520</id><published>2009-11-18T17:04:00.002Z</published><updated>2009-11-18T17:11:14.377Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>Scripting pinning Subversion Externals</title><content type='html'>How to control Subversion externals with scripts (bash):&lt;br /&gt;&lt;br /&gt;Command Line setting 1 External&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;cd ./ProjectB/Reuse/A&lt;br /&gt;svn propset svn:externals "Generic -r 19049 http://svnl/ReuseA/something" .&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Command Line setting multiple Externals&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;cd ./ProjectC/Reuse&lt;br /&gt;echo "A     -r 16234 http://svnl/ReuseA/something"  &gt; svn.externals&lt;br /&gt;echo "B      -r 18086 http://svnl/ReuseB/something"   &gt;&gt; svn.externals&lt;br /&gt;svn propset svn:externals . -F svn.externals&lt;br /&gt;#Optional&lt;br /&gt;rm svn.externals&lt;br /&gt;svn update&lt;br /&gt;cd -&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-8833816773370695520?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/8833816773370695520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=8833816773370695520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8833816773370695520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8833816773370695520'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/11/scripting-pinning-subversion-externals.html' title='Scripting pinning Subversion Externals'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-3727261083647100079</id><published>2009-11-18T16:59:00.005Z</published><updated>2009-11-18T17:04:36.339Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><title type='text'>Subversion find all externals</title><content type='html'>When working in a subversion repository it is some times (often) nesecary to pin the externals. This requires the often tricky task of finding them all first, made easier with this command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ svn propget svn:externals -R&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Which will recursively list all you externals from the current directory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-3727261083647100079?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/3727261083647100079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=3727261083647100079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3727261083647100079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3727261083647100079'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/11/subversion-find-all-externals.html' title='Subversion find all externals'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-8990700836098168279</id><published>2009-11-03T18:09:00.004Z</published><updated>2009-11-18T16:59:49.807Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='MP3'/><category scheme='http://www.blogger.com/atom/ns#' term='AAC'/><category scheme='http://www.blogger.com/atom/ns#' term='Audiobook'/><category scheme='http://www.blogger.com/atom/ns#' term='FLAC'/><title type='text'>CD to Computer Music File</title><content type='html'>For audio conversion on Windows I use &lt;a href="http://cdexos.sourceforge.net/"&gt;CDex&lt;/a&gt;. The file name string I prefer is:&lt;br /&gt;%1\%Y-%2\%1-%Y-%2-%7-%4&lt;br /&gt;&lt;br /&gt;On Mac OS X Snow Leopard I prefer to use &lt;a href="http://sbooth.org/Max/"&gt;Max&lt;/a&gt;. The file name string I use is:&lt;br /&gt;{fileFormat}/{albumArtist}/{albumDate}-{albumTitle}/{trackArtist}-{albumDate}-{albumTitle}-{trackNumber}-{trackTitle}&lt;br /&gt;&lt;br /&gt;My prefered output formats are:&lt;br /&gt;[1] FLAC for archive/media server copies.&lt;br /&gt;[2] 112kbps &lt;a href="http://en.wikipedia.org/wiki/Advanced_Audio_Coding"&gt;AAC&lt;/a&gt; for portable media.&lt;br /&gt;&lt;br /&gt;[1] FLAC is a lossles codec and represent exactly what is on the cd, this is a great  free codec with players available on most platforms. It will compress a 700MB cd on average to 400MB.&lt;br /&gt;&lt;br /&gt;[2] &lt;a href="http://en.wikipedia.org/wiki/Advanced_Audio_Coding"&gt;AAC&lt;/a&gt; is high quality (Superior to MP3) lossy audio codec. Setting to 112kbps with a variable rate codec means that I actually get files sizes expected from a constant bit rate 128kbps codec. The loss in sound quality is not that important when listening with headphones.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-8990700836098168279?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/8990700836098168279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=8990700836098168279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8990700836098168279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8990700836098168279'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/11/cd-to-computer-music-file.html' title='CD to Computer Music File'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-7541331219609971846</id><published>2009-11-02T06:09:00.005Z</published><updated>2009-11-02T06:17:38.168Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snow Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='Darwin Ports'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU'/><category scheme='http://www.blogger.com/atom/ns#' term='SciTE'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac Ports'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>mac ports since OS X Snow Leopard upgrade</title><content type='html'>Since upgrading to Snow Leopard I have noticed that &lt;a href="http://www.macports.org/"&gt;Mac Ports (Previously called Darwin Ports) &lt;/a&gt;started giving me lots of errors. So I manually downloaded and installed the latest version, &lt;a href="http://distfiles.macports.org/MacPorts/MacPorts-1.8.1-10.6-SnowLeopard.dmg"&gt;from here.&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;I then had to run through the insructions here [1] to clean every thing up:&lt;br /&gt;[1] &lt;a href="http://trac.macports.org/wiki/Migration"&gt;http://trac.macports.org/wiki/Migration&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ port installed &gt; myports.txt&lt;br /&gt;$ sudo port clean all&lt;br /&gt;$ sudo port -f uninstall installed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The look through myports.txt and install any you need.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ sudo port install fping scite&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-7541331219609971846?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/7541331219609971846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=7541331219609971846' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7541331219609971846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7541331219609971846'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/11/mac-ports-since-os-x-snow-leopard.html' title='mac ports since OS X Snow Leopard upgrade'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-5352314641004984537</id><published>2009-10-28T19:49:00.002Z</published><updated>2009-10-28T19:53:08.993Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snow Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='Photography'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Lightroom'/><category scheme='http://www.blogger.com/atom/ns#' term='Camera'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><title type='text'>Hugin for panoramas</title><content type='html'>&lt;a href="http://sourceforge.net/projects/hugin/"&gt;hugin&lt;/a&gt; seems to be quite a good open source program for joining photos together for panoramas etc.&lt;br /&gt;&lt;br /&gt;My first attempt joining 3 photos.&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/morgan_prior/4053838128/" title="morganp-20091028-Hugin-3-EdinClouds by munky morgy, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2570/4053838128_2f2c922467.jpg" width="500" height="161" alt="morganp-20091028-Hugin-3-EdinClouds" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-5352314641004984537?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/5352314641004984537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=5352314641004984537' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5352314641004984537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5352314641004984537'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/10/hugin-for-panoramas.html' title='Hugin for panoramas'/><author><name>A Person</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2570/4053838128_2f2c922467_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-7129905897795184306</id><published>2009-10-21T03:44:00.002+01:00</published><updated>2009-10-21T03:51:51.413+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Capitalisation'/><category scheme='http://www.blogger.com/atom/ns#' term='Impress'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenOffice'/><title type='text'>OpenOffice Annoying auto correct</title><content type='html'>I often have to document small snippets of code and other case sensitive things so often find it very annoying when my editors decide to auto correct these things for me.&lt;br /&gt;&lt;br /&gt;Currently I have been trying to use OpenOffice Impress to prepare a slide show.&lt;br /&gt;&lt;br /&gt;To disable auto sentence capitalisation: OpenOffice main toolbar 'Tools' --&gt; 'AutoCorrect Options ...' --&gt; 'Options' tab and deselect 'Capitalize first letter of every sentence'&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QKwj7jUsK7o/St53BwbOVLI/AAAAAAAAACg/5ZSAkAiNNWQ/s1600-h/OpenOffice-Capaitailse.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 311px;" src="http://2.bp.blogspot.com/_QKwj7jUsK7o/St53BwbOVLI/AAAAAAAAACg/5ZSAkAiNNWQ/s400/OpenOffice-Capaitailse.png" alt="" id="BLOGGER_PHOTO_ID_5394880275699094706" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-7129905897795184306?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/7129905897795184306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=7129905897795184306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7129905897795184306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7129905897795184306'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/10/openoffice-annoying-auto-correct.html' title='OpenOffice Annoying auto correct'/><author><name>A Person</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_QKwj7jUsK7o/St53BwbOVLI/AAAAAAAAACg/5ZSAkAiNNWQ/s72-c/OpenOffice-Capaitailse.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-3513379523297463014</id><published>2009-10-15T13:33:00.004+01:00</published><updated>2009-10-15T13:39:34.384+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='SciTE'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP'/><title type='text'>Edit with SciTE right click menu option</title><content type='html'>If you are a windows scite user there is a dll which you can use to give you an "edit in SciTE" right click menu option.&lt;br /&gt;&lt;br /&gt;download from: &lt;a href="http://www.burgaud.com/scite-context-menu/"&gt;http://www.burgaud.com/scite-context-menu/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;instructions for Windows XP: all included in the readme&lt;br /&gt;&lt;br /&gt;copy the correct dll 32 or 64bit to your scite directory probably "C:\Program Files\wscite".&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;start -&gt; run -&gt; cmd&lt;br /&gt;cd "C:\Program Files\wscite"&lt;br /&gt;regsvr32 wscitecm.dll&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-3513379523297463014?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/3513379523297463014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=3513379523297463014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3513379523297463014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3513379523297463014'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/10/edit-with-scite-right-click-menu-option.html' title='Edit with SciTE right click menu option'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-5355320381963628517</id><published>2009-10-11T11:57:00.006+01:00</published><updated>2009-10-11T12:37:17.137+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><title type='text'>Rails Simple Pages</title><content type='html'>Ruby on Rails good for handling data models and folowing an MVC framework but there seems to be a lack of documentation for adding simple pages, I did find asmallguide on the&lt;a href="http://blog.hasmanythrough.com/2008/4/2/simple-pages"&gt; has_many :through blog&lt;br /&gt;&lt;/a&gt; with only a few omissions that some one new to rails might not know.&lt;br /&gt;&lt;br /&gt;First setup the routes so that when entering &lt;a href="http://127.0.0.1:3000/about"&gt;http://127.0.0.1:3000/about&lt;/a&gt; it knows which controller to use.&lt;br /&gt;&lt;br /&gt;config/routes.rb&lt;br /&gt;&lt;pre class="prettyprint"&gt; map.root :controller =&gt; 'home'&lt;br /&gt; map.home ':page', :controller =&gt; 'home', :action =&gt; 'show', \&lt;br /&gt;   :page =&gt; /about|contact/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now setup the controller. &lt;br /&gt;&lt;br /&gt;app/controllers/home_controller.rb&lt;br /&gt;&lt;pre class="prettyprint"&gt;class HomeController &lt; ApplicationController&lt;br /&gt;   def index&lt;br /&gt;     # render the landing page&lt;br /&gt;   end&lt;br /&gt;&lt;br /&gt;   def show&lt;br /&gt;     render :action =&gt; params[:page]&lt;br /&gt;   end&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now create the 'home' folder. so we have a apps/views/home to put about.html or about.html.erb in.&lt;br /&gt;&lt;br /&gt;Linking to this page can now be don via:&lt;br /&gt;&lt;pre class="prettyprint"&gt; link_to 'About', home_path('about') &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This tutorial was very closely based on &lt;a href="http://blog.hasmanythrough.com/2008/4/2/simple-pages"&gt;'Has many :through simple pages'&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-5355320381963628517?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/5355320381963628517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=5355320381963628517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5355320381963628517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5355320381963628517'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/10/rails-simple-pages.html' title='Rails Simple Pages'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-2933052558475443136</id><published>2009-10-03T18:23:00.004+01:00</published><updated>2009-10-03T21:36:02.485+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><title type='text'>Rails Menus using Partials</title><content type='html'>I have struggled to find a good tutorial on this, probably would not need it if I knew Rails better though. I would like to make a menu which is used through out my Ruby on Rails site, partials seem to be the correct thing to use.&lt;br /&gt;&lt;br /&gt;under&lt;br /&gt;app/views/&lt;br /&gt;create a new folder 'shared'&lt;br /&gt;and create a new file called _menu.rhtml.&lt;br /&gt;&lt;span style="font-family: courier new;" &gt;'app/views/shared_menu.rhtml'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;which contains the menu something like (sorry for the extra spaces only way I could stop it rendering):&lt;br /&gt;&lt;pre class="prettyprint"&gt;&lt;code&gt;&lt; id="menu"&gt;&lt;br /&gt;&lt; class="menubar"&gt;&lt;br /&gt;    &lt; class="menubar"&gt;&lt; href="http://127.0.0.1:3000/"&gt;Home&lt; / a&gt;&lt; / l i&gt;&lt;br /&gt;    &lt; class="menubar"&gt;&lt; href="http://www.blogger.com/Posts"&gt;Posts&lt; / a&gt;&lt; /l i &gt;&lt;br /&gt;    &lt; class="menubar"&gt;&lt; href="http://www.blogger.com/Tags"&gt;Tags&lt; / a&gt;&lt; / l i&gt;&lt;br /&gt;&lt; / u l&gt;&lt;br /&gt;&lt; / d i v&gt;&lt;/code&gt;&lt;/pre&gt;Then add &lt;%= render(:partial =&gt; "shared/menu") %&gt; to all default layouts. in:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;'views/layouts/*.html.erb'&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-2933052558475443136?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/2933052558475443136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=2933052558475443136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2933052558475443136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2933052558475443136'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/10/rails-menus-using-partials.html' title='Rails Menus using Partials'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-1725742763339737443</id><published>2009-10-03T13:24:00.003+01:00</published><updated>2009-10-03T13:29:41.059+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Mail'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Firefox redirect mailto links to gmail</title><content type='html'>If you use Firefox as your browser and gmail as a web based email client then this is a really nice setting that was added in firefox 3. In firefox open the preferences, Applications tab and find 'mailto' in the 'Content Type'. Then just select 'Use Gmail' as the 'Action'.&lt;br /&gt;&lt;br /&gt;Now when click on email links on web pages an new tab will open and start composing an email from your currently logged in gmail account.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/morgan_prior/3976258279/" title="Firefox-mailto-gmail by munky morgy, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3532/3976258279_32d2bb9f64_o.png" alt="Firefox-mailto-gmail" height="603" width="615" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-1725742763339737443?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/1725742763339737443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=1725742763339737443' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1725742763339737443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1725742763339737443'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/10/firefox-redirect-mailto-links-to-gmail.html' title='Firefox redirect mailto links to gmail'/><author><name>A Person</name><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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-6701299245301910558</id><published>2009-10-02T21:10:00.003+01:00</published><updated>2009-10-02T21:35:58.994+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Ruby on Rails</title><content type='html'>I found this [1] tutorial to be a very good introduction to ruby on rails 2.0.&lt;br /&gt;&lt;br /&gt;[1] &lt;a href="http://akitaonrails.com/2007/12/12/rolling-with-rails-2-0-the-first-full-tutorial"&gt;http://akitaonrails.com/2007/12/12/rolling-with-rails-2-0-the-first-full-tutorial&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I only really followed it far enough to get a working blog with comments, That next step would be to get a working many to many relationship setup for tagging. There is a lot of confusion over how todo tagging with many different gems and plugins. Since the introduction of rails 2.x there much better ways to do the many to many relationships and except in the case of tag clouds setting up tags are relatively straight forward.&lt;br /&gt;&lt;br /&gt;This [2] was the best tutorial I found for setting up many to many relationships and [3] was very good for describing the different relationships.&lt;br /&gt;&lt;br /&gt;[2] &lt;a href="http://dagobart.wordpress.com/2008/06/18/for-purpose-of-reference-doing-many-to-many-relationships-in-rails/"&gt;http://dagobart.wordpress.com/2008/06/18/for-purpose-of-reference-doing-many-to-many-relationships-in-rails/&lt;/a&gt;&lt;br /&gt;[3] &lt;a href="http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association"&gt;http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-6701299245301910558?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/6701299245301910558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=6701299245301910558' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6701299245301910558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6701299245301910558'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/10/ruby-on-rails.html' title='Ruby on Rails'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-8624345084871014741</id><published>2009-10-02T20:52:00.003+01:00</published><updated>2009-10-02T21:07:20.668+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snow Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Screen'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>Some tips for ~/.inputrc</title><content type='html'>If you use the command line alot on Unix, Linux or Mac (I know it is a unix) you might be interested in some options that you can set in your ~/.inputrc file.&lt;br /&gt;&lt;br /&gt;If the file does not exist you can just create it.&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ cd ~&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ vim ~/.inputrc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;My favourite option is (just enter it any where in the file):&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;set completion-ignore-case on&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This makes tab completion non-case sensitive, since discovering this I have cut down massively on the amount of backspace I have to type to get the tab completion I wanted.&lt;br /&gt;&lt;br /&gt;Another option that may be useful is:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;set match-hidden-files off&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Which stops tab completion using hidden files, but since I edit my .bashrc .inputrc etc alot I often do want to tab complete hidden files.&lt;br /&gt;&lt;br /&gt;For more info on options just have a look at:&lt;br /&gt;&lt;a href="http://unixhelp.ed.ac.uk/CGI/man-cgi?readline"&gt;man readline&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-8624345084871014741?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/8624345084871014741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=8624345084871014741' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8624345084871014741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8624345084871014741'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/10/some-tips-for-inputrc.html' title='Some tips for ~/.inputrc'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-6953927907507737184</id><published>2009-09-27T01:34:00.002+01:00</published><updated>2009-09-27T02:12:23.049+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Photography'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Storage'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Lightroom'/><title type='text'>Lightroom temp files</title><content type='html'>Lightroom stores its previews in '.lrdata' folders. You can turn on an option telling lightroom to delete previews  after 30days. I however use a lightroom catalogue for each shoot which means some catalouge are not opened for a really long time so the previews never get deleted.&lt;br /&gt;&lt;br /&gt;to find the files and the space they take you can just run these commands.&lt;br /&gt;$ cd ~/Pictures&lt;br /&gt;$ find . -iname "*.lrdata" | xargs -I{} du -sh {}&lt;br /&gt;&lt;br /&gt;To Remove the files&lt;br /&gt;$ cd ~/Pictures&lt;br /&gt;$ find . -iname "*.lrdata" | xargs -I{} rm -r {}&lt;br /&gt;&lt;br /&gt;I worte a small ruby script to help me do this:&lt;br /&gt;&lt;a href="http://github.com/munkymorgy/munkymorgy_scripts_generic/blob/master/lightroom_remove_previews.rb"&gt;lightroom_remove_previews.rb&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It has a hradcoded path to my Pictures folder so you would have to modify that. When calling the script it has 2 main options, --report and --remove, which call the the two main commands described above.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-6953927907507737184?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/6953927907507737184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=6953927907507737184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6953927907507737184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6953927907507737184'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/09/lightroom-temp-files.html' title='Lightroom temp files'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-5060668533325404912</id><published>2009-09-26T12:34:00.006+01:00</published><updated>2009-09-26T12:54:21.688+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Regexpr'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Regular expression'/><title type='text'>Regular Expressions Backreference (Grouping)</title><content type='html'>One of my favourite features of regular expressions is backreferencing, I  always think it is called grouping though.&lt;br /&gt;&lt;br /&gt;Simply place () round brackets around part of the expression your interested in and use \1 backslash one to reference the first group. \2 for the second.&lt;br /&gt;&lt;br /&gt;For example to strip every thing but the information you want out of a file belonging to a tv series.&lt;br /&gt;Match: (.*)[-. ](S\d\d)-(EP\d\d).*&lt;br /&gt;Replace with : \1-\2-\3&lt;br /&gt;&lt;br /&gt;The notation used in the expression:&lt;br /&gt;. :Any Character&lt;br /&gt;* :0 or more of previous character (.* will match anything)&lt;br /&gt;[] :Match any charater in the set (- only works as a literal if it is first)&lt;br /&gt;\d :Match one Decimal number&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.regular-expressions.info/brackets.html"&gt;http://www.regular-expressions.info/brackets.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-5060668533325404912?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/5060668533325404912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=5060668533325404912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5060668533325404912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5060668533325404912'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/09/regular-expressions-backreference.html' title='Regular Expressions Backreference (Grouping)'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-7123489339032634197</id><published>2009-09-18T07:52:00.002+01:00</published><updated>2009-09-18T07:55:20.762+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Photography'/><category scheme='http://www.blogger.com/atom/ns#' term='Lightroom'/><title type='text'>Adobe Lightrrom 2.5 Update</title><content type='html'>The latest Update for lightroom 2 is available (LR2.5):&lt;br /&gt;&lt;a href="http://download.adobe.com/pub/adobe/lightroom/mac/2.x/LTRM2_WWEFG_mac_2_5.dmg"&gt;&lt;br /&gt;Lightroom 2.5 Direct Download&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.adobe.com/support/downloads/detail.jsp?ftpID=4569"&gt;Standard download link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-7123489339032634197?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/7123489339032634197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=7123489339032634197' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7123489339032634197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7123489339032634197'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/09/adobe-lightrrom-25-update.html' title='Adobe Lightrrom 2.5 Update'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-8848629510119438622</id><published>2009-09-16T01:14:00.003+01:00</published><updated>2009-09-16T01:39:16.274+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snow Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Storage'/><category scheme='http://www.blogger.com/atom/ns#' term='Darwin Ports'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Filesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='MS'/><title type='text'>New NTFS driver for Mac OS X</title><content type='html'>There is a recent driver out for Read/Write support of NTFS drives under Mac OS X.&lt;br /&gt;&lt;a href="http://downloads.sourceforge.net/catacombae/NTFS-3G_2009.4.4-catacombae.dmg?use_mirror="&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is now an NTFS-3G item in the system preferences. I would recommending unchecking the "File system Caching enabling". This with disk caching the mutliple read writes to the same data can be much faster but can corrupt the disk if the buffer is not flushed before removal. Ejecting or unmounting the disc is the way you tell the computer you want to flush the buffers and remove the disk. BUT I occasionally forget to do this for external discs and I dont want to lose all my data. On the plus side I do not work (edit data) on external discs just transfer/Archive data or play/read files so I do not see any performance loss.&lt;br /&gt;&lt;br /&gt;The new driver also has a force button for when windows did not shut it disc down correctly. So you can force OS X to load the disc any way, this was a real pain in my old version of the driver.&lt;br /&gt;&lt;br /&gt;Release Notes Updates can be found here:&lt;br /&gt;&lt;a href="http://macntfs-3g.blogspot.com/"&gt;http://macntfs-3g.blogspot.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-8848629510119438622?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/8848629510119438622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=8848629510119438622' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8848629510119438622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8848629510119438622'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/09/new-ntfs-driver-for-mac-os-x.html' title='New NTFS driver for Mac OS X'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-8926407239527497816</id><published>2009-09-16T00:48:00.001+01:00</published><updated>2009-09-16T00:50:01.546+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>Find Out Ubuntu Version Name</title><content type='html'>To find out your Ubuntu version name just run:&lt;br /&gt;&lt;br /&gt;&lt;code style="font-family: courier new;"&gt;$ cat /etc/lsb-release&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-8926407239527497816?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/8926407239527497816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=8926407239527497816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8926407239527497816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8926407239527497816'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/09/find-out-ubuntu-version-name.html' title='Find Out Ubuntu Version Name'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-6139992614483463402</id><published>2009-09-16T00:22:00.003+01:00</published><updated>2009-09-16T00:33:03.914+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Storage'/><category scheme='http://www.blogger.com/atom/ns#' term='Time Machine'/><category scheme='http://www.blogger.com/atom/ns#' term='Power'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='Backup'/><title type='text'>Drobo &amp; Drobo Share £356</title><content type='html'>Just saw this on Amazon and think it is a great price for the device.&lt;br /&gt;&lt;a href="https://www.amazon.co.uk/dp/B0021AEYUY?tag=morgue-21&amp;amp;camp=2902&amp;amp;creative=19466&amp;amp;linkCode=as4&amp;amp;creativeASIN=B0021AEYUY&amp;amp;adid=1VXDJC7STQ8SC37VARCQ&amp;amp;"&gt;Drobo + DroboShare (Network Attach) £356&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.drobo.com/products/drobo.php"&gt;Drobo&lt;/a&gt; is a 4 Drive bay raid system (1 Disk redundancy) that automagically adds new/bigger drives into the system. As long as you only replace one drive at a time. The &lt;a href="http://www.drobo.com/products/droboshare.php"&gt;Drobo Share&lt;/a&gt; adds NAS, takes the Drobos usb interface and makes the drive avaliable on the Network.&lt;br /&gt;&lt;br /&gt;I still think the &lt;a href="http://www.drobo.com/products/drobopro/"&gt;Drobo Pro&lt;/a&gt; version will be much better investment in the long term as it has 8 bays and can do double disk redundancy but does cost £970 with out drives and is not NAS (Network Attached Storage)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-6139992614483463402?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/6139992614483463402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=6139992614483463402' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6139992614483463402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6139992614483463402'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/09/just-saw-this-on-amazon-and-think-it-is.html' title='Drobo &amp; Drobo Share £356'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-7285297813216849377</id><published>2009-09-12T09:40:00.004+01:00</published><updated>2010-03-03T08:26:34.484Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='iTunes'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><category scheme='http://www.blogger.com/atom/ns#' term='Audiobook'/><category scheme='http://www.blogger.com/atom/ns#' term='Book'/><title type='text'>Make Audiobooks</title><content type='html'>I have recently got some audiobook CDs and have been looking for the best way to convert them for use with iPods. iTunes (Apple) have defined a special format for Audiobooks, it is the *.m4b format. It is really just the m4a format but with last a for audio changed to b for books. This Format uses AAC, quite superior compared to the mp3 codec but not as portable.&lt;br /&gt;&lt;br /&gt;When imported the m4b format should automatically be set to book-markable or remember position. When listening to music you normally want to start at the beginning of the song, when listening to a book you normally want to start from exactly the same position you left off.&lt;br /&gt;&lt;br /&gt;I found the best method for me is to convert all CDs into Wave files, as the best tool available rencodes into the AAC format and you do not want to do lossy conversion more than once as the audio quality will degrade. Once you have got all your wave files together I recommend using &lt;a href="http://www.splasm.com/audiobookbuilder/"&gt;Audiobook Builder&lt;/a&gt; ($10 paypal, then auto-email codes to you).&lt;br /&gt;&lt;br /&gt;With Audio Book builder I normally change the genre to 'Audiobook', search amazon for an image of the book cover and have to add the year manually in itunes, itunes does then update the file.&lt;br /&gt;&lt;br /&gt;[Note added 03/03/2010] &lt;br /&gt;Audiobook Maker does not look like it is compatible with Snow Leopard&lt;br /&gt;[/Note]&lt;br /&gt;If you already have a bunch of MP3s this tool is free &lt;a href="http://audiobookmaker.sourceforge.net/"&gt;Audiobook Maker&lt;/a&gt; (only imports MP3s) and then converts to m4b, but you are doing conversion to mp3 then to aac so you get two types of conversion loss, probably do not notice with speech though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-7285297813216849377?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/7285297813216849377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=7285297813216849377' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7285297813216849377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7285297813216849377'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/09/make-audiobooks.html' title='Make Audiobooks'/><author><name>A Person</name><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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-7894399462873215213</id><published>2009-09-12T09:22:00.003+01:00</published><updated>2009-09-12T09:27:57.615+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Snow Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Quicktime'/><title type='text'>Quicktime X playing avi</title><content type='html'>I have just installed DivX 7 (thought they were upto 10 but never mind) on OS X Snow Leopard and it seems to have given me all the codecs to play DivX XviD encoded media. This did not work last time I tried. The trim function in the new quicktime even works although have to export to either .mov or .m4v.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.divx.com/en/mac"&gt;http://www.divx.com/en/mac&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;NB: I still recommend &lt;a href="http://www.videolan.org/vlc/download-macosx.html"&gt;VLC&lt;/a&gt; as the best player for Mac OS X&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-7894399462873215213?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/7894399462873215213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=7894399462873215213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7894399462873215213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7894399462873215213'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/09/quicktime-x-playing-avi.html' title='Quicktime X playing avi'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-364056737096227976</id><published>2009-09-10T23:29:00.002+01:00</published><updated>2009-09-10T23:44:04.300+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Storage'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Filesystem'/><title type='text'>Omni Disk Sweeper</title><content type='html'>Just tried Omni Disk Sweeper for identifying large files eating up my disk space. It is very easy to use and just spotted 20Gigs of file I do not need and had forgotten all about.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.omnigroup.com/applications/omnidisksweeper/"&gt;http://www.omnigroup.com/applications/omnidisksweeper/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-364056737096227976?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/364056737096227976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=364056737096227976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/364056737096227976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/364056737096227976'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/09/omni-disk-sweeper.html' title='Omni Disk Sweeper'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-7757938278569865946</id><published>2009-08-31T16:48:00.007+01:00</published><updated>2010-08-23T10:29:35.707+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Filesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>Recursively Search for file with text</title><content type='html'>Using the find command below in Unix/Linux/OS X terminal you can search from a given path recursively looking in all files for text that matches 'find this text'.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ find  ./searchPath/ | xargs -I {} grep -iHn 'find this text' {}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;or &lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ grep -R -iHn 'find this text' *&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;grep Options:&lt;br /&gt;-i makes it incase sensitive&lt;br /&gt;-H outputs the filename before the matching line.&lt;br /&gt;-n outputs the matching line number before the matching line.&lt;br /&gt;-R Recursive from current location&lt;br /&gt;&lt;br /&gt;[UPDATE 1]&lt;br /&gt;Ignore Subversion folders&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ find ./ -not -name *'.svn'* | xargs -I {} grep -iHn 'find this text' {}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-7757938278569865946?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/7757938278569865946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=7757938278569865946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7757938278569865946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7757938278569865946'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/08/recursively-search-for-file-with-text.html' title='Recursively Search for file with text'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-5339975563840989525</id><published>2009-08-22T14:18:00.005+01:00</published><updated>2009-08-22T14:32:31.834+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Podcasts'/><title type='text'>Directory to Podcast</title><content type='html'>Just finished (largelgy based on an example) a small simple php script to take files from a folder and turn into a podcast feed. &lt;a href="http://github.com/munkymorgy/munkymorgy_scripts_generic/blob/cdbffd2f16626b0698c7b65e265b3e69aaceea4a/FolderToPodcast/index.php"&gt;Directory to Podcast PHP script&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This may be useful if you want to setup a cron script/server application on a home server to download your latest podcast shows. Using this script you can then reserve the downloaded files as a local podcast feed.&lt;br /&gt;&lt;br /&gt;This is useful at home as your server can download at none bandwidth critical times, when your isp applies limits or around 9pm when the internet is going really slow. When your main machine is switched on the podcasts will download very quickly over your local network.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-5339975563840989525?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/5339975563840989525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=5339975563840989525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5339975563840989525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5339975563840989525'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/08/directory-to-podcast.html' title='Directory to Podcast'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-4602597129170058205</id><published>2009-08-11T21:16:00.003+01:00</published><updated>2009-08-11T21:24:07.793+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Rails'/><title type='text'>require_gem is now gem</title><content type='html'>I have been working through the &lt;a href="http://skionrails.wordpress.com/tutorials/how-to-write-a-blog-in-15-minutes/"&gt;Ruby on Rails 2 Create a blog in 15 minutes&lt;/a&gt; and it only took me a few hours, but was much quicker and gave me a better understanding of rails than finishing the book on rails I was reading.&lt;br /&gt;&lt;br /&gt;After this I had wanted to add tags like most blogs and photo site now have. So I am currently working through a &lt;a href="http://www.workingwithrails.com/railsplugin/4751-acts-as-taggable"&gt;act_as_taggable tutorial&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The main point I want to make is that at some point the require_gem command has been replaced with gem.&lt;br /&gt;&lt;br /&gt;incorrect: &lt;span style="font-family: courier new;"&gt; require_gem 'acts_as_taggable'&lt;/span&gt;&lt;br /&gt;Correct: &lt;span style="font-family: courier new;"&gt; gem 'acts_as_taggable'&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-4602597129170058205?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/4602597129170058205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=4602597129170058205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/4602597129170058205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/4602597129170058205'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/08/requiregem-is-now-gem.html' title='require_gem is now gem'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-8298605207046381808</id><published>2009-08-03T21:43:00.003+01:00</published><updated>2009-08-03T21:49:10.147+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Icon'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><title type='text'>Easy Create DMG Files with background images</title><content type='html'>I just discovered this [1] helper application for creating DMG file for distributing your Mac Applications.&lt;br /&gt;&lt;br /&gt;[1] &lt;a href="http://www.nscoding.co.uk/"&gt;iDMG http://www.nscoding.co.uk/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Easily define Icons and Background images.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-8298605207046381808?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/8298605207046381808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=8298605207046381808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8298605207046381808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8298605207046381808'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/08/easy-create-dmg-files-with-background.html' title='Easy Create DMG Files with background images'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-6257433150907864733</id><published>2009-08-03T17:59:00.005+01:00</published><updated>2009-08-03T21:35:36.739+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Icon'/><category scheme='http://www.blogger.com/atom/ns#' term='Shoes'/><title type='text'>Changing Icons for Shoes Rasins Programs</title><content type='html'>How to change Icons for compiled shoes applications. There is no configuration options in shoes for this but with some free tools you can change the included icons.&lt;br /&gt;&lt;br /&gt;For Mac OS X dmg file if you open the .app as folder by right-click Show Package Contents, through an alternative file browser or go into it in the terminal and replace Shoes.icns and &lt;a href="http://stackoverflow.com/questions/646671/how-do-i-set-the-icon-for-my-applications-mac-os-x-app-bundle"&gt;/Resources/Shoes.icns&lt;/a&gt; with your  Mac Icon .icns of choice. &lt;a href="http://munkymorgy.blogspot.com/2009/07/create-icons-icns-for-os-x.html"&gt;My guide on creating these and replacing them in a xCode java application.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For windows you can use a free tool called &lt;a href="http://icofx.ro/"&gt;IcoFX&lt;/a&gt; (but license says you are never allowed to charge for an application which include icons created with this tool) to create Windows icons .icn. Using the &lt;a href="http://icofx.ro/help/resourceeditor.html"&gt;IcoFX resource editor&lt;/a&gt; you can then change the included icon for a .exe.&lt;br /&gt;&lt;a href="http://icofx.ro/help/resourceeditor.html"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-6257433150907864733?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/6257433150907864733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=6257433150907864733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6257433150907864733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6257433150907864733'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/08/changing-icons-for-shoes-rasins.html' title='Changing Icons for Shoes Rasins Programs'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-8721880450323912375</id><published>2009-07-31T14:51:00.004+01:00</published><updated>2009-07-31T14:57:07.751+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Word'/><category scheme='http://www.blogger.com/atom/ns#' term='Visio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='MS'/><title type='text'>Word Visio Stop capitilisation</title><content type='html'>Finally got around to switching off first letter capitalisation (capitalization) For word 2007 and visio 2003.&lt;br /&gt;&lt;br /&gt;The options are in the AutoCorrect Menus if you know how to find them. Microsofts instructions for Visio are here:&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/290586"&gt;http://support.microsoft.com/kb/290586&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Basically, Visio -&gt; Tools -&gt; AutoCorrect Options, DeSelect "Capitalize first letter of sentences"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/morgan_prior/3774372593/" title="StopVisio2003ManglingYourText by munky morgy, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3470/3774372593_c236664b4b.jpg" width="413" height="457" alt="StopVisio2003ManglingYourText" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For Word 2007 I had to make the mistake then select the smart tag to get to the Auto correct options. but then the options were very similar to Visio.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/morgan_prior/3775176872/" title="StopWord2007ManglingYourText by munky morgy, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3512/3775176872_382aa94f43.jpg" width="444" height="500" alt="StopWord2007ManglingYourText" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-8721880450323912375?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/8721880450323912375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=8721880450323912375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8721880450323912375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8721880450323912375'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/07/word-visio-stop-capitilisation.html' title='Word Visio Stop capitilisation'/><author><name>A Person</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3470/3774372593_c236664b4b_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-1803055566340226754</id><published>2009-07-30T22:29:00.005+01:00</published><updated>2009-08-03T18:07:43.894+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Icon'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><title type='text'>Create Icons *.icns for OS X</title><content type='html'>To create icons for your OS X Applications, first create a master 512pixel x 512pxel master image. create smaller versions if required ie if you want the smaller logos to be different.&lt;br /&gt;&lt;br /&gt;The size options you can create for are:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;512x512&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;256x256&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;128x128&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;32x32&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;16x16&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Once you have your images, my logo is simple so I only created one 512 master copy,  from photoshop save as a tiff with transparency and Image compression:no compression, Layer Compression:discard all layers and save a copy.&lt;br /&gt;&lt;br /&gt;Then open (you need the developer tools xcode):&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/Developer/Applications/Utilities/Icon Composer.app&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then drag you 512x512 tiff on to the largest square I then let it auto scale this image for the smaller options. Then just go File Save As. and you *.icns file is created.&lt;br /&gt;&lt;br /&gt;A very helpful tutorial was.&lt;br /&gt;&lt;a href="http://tutorialdog.com/how-to-create-icons-for-mac-os-x/"&gt;http://tutorialdog.com/how-to-create-icons-for-mac-os-x/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A generic guide to integrating the icns into your mac app is:&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/646671/how-do-i-set-the-icon-for-my-applications-mac-os-x-app-bundle" target="_blank"&gt;http://stackoverflow.com/&lt;wbr&gt;questions/646671/how-do-i-set-&lt;wbr&gt;the-icon-for-my-applications-&lt;wbr&gt;mac-os-x-app-bundle&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Because I am working on a project setup by xCode I can just replace the file in:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ProjectRoot/resources_macosx/projectName.icns&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-1803055566340226754?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/1803055566340226754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=1803055566340226754' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1803055566340226754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1803055566340226754'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/07/create-icons-icns-for-os-x.html' title='Create Icons *.icns for OS X'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-2993640470044909221</id><published>2009-07-29T22:14:00.003+01:00</published><updated>2009-07-29T22:32:56.454+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='FTP'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>File Release on SourceForge</title><content type='html'>Recently SourceForge made an untested 'Upgrade' which broke my main method of making file release. it would have been ok if the new systems put in place worked but they do not!&lt;br /&gt;&lt;br /&gt;Webdav has been disabled as a method for upload. The recommend options in order that they seem to recommend are Web interface [1], scp [2], rsync [3] and sftp [4].&lt;br /&gt;[1] Does not work at all.&lt;br /&gt;[2] Can not create new folders or delete files.&lt;br /&gt;[3] Keep a copy of all versions of files, I only want to keep the latest version.&lt;br /&gt;[4] Works but you need to know where to look and require a good client (&lt;a href="http://cyberduck.ch/"&gt;CyberDuck for OS X&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;You need to be a SourceForge member to view this help page!&lt;br /&gt;&lt;a href="https://sourceforge.net/apps/trac/sourceforge/wiki/Release%20files%20for%20download"&gt;https://sourceforge.net/apps/trac/sourceforge/wiki/Release%20files%20for%20download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So SFTP it is then,&lt;br /&gt;&lt;br /&gt;Server : frs.sourceforge.net&lt;br /&gt;Username  : jsmith,fooproject&lt;br /&gt;or command line&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;$ sftp jsmith,fooproject@frs.sourceforge.net&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will take you to:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;/home/groups/f/fo/fooproject&lt;/span&gt;&lt;br /&gt;you actually want to be here for file releases:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;/home/frs/project/f/fo/fooproject/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Project webpage is here:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;/home/groups/f/fo/fooproject/htdocs&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-2993640470044909221?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/2993640470044909221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=2993640470044909221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2993640470044909221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2993640470044909221'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/07/file-release-on-sourceforge.html' title='File Release on SourceForge'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-4331586487446137687</id><published>2009-07-29T12:47:00.005+01:00</published><updated>2009-07-29T22:35:32.410+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='MS'/><title type='text'>Windows DNS</title><content type='html'>On Linux and Mac OS X systems if you need/want to hard wire a computer name to an IP address so that scripts can work reliably on startup, before DNS has really kicked in, you can easily add a line to the /etc/hosts file.&lt;br /&gt;&lt;br /&gt;I just discovered that this is also easy on Windows (XP  at least). Just add a line to the file:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;c:\WINDOWS\system32\drivers\etc\hosts&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Some thing like&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;192.168.1.1 router&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then you can just type http://router in to your browser to be taken to your router login page.&lt;br /&gt;Thanks to &lt;a href="http://twitter.com/philip_roberts"&gt;@philip_roberts&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-4331586487446137687?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/4331586487446137687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=4331586487446137687' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/4331586487446137687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/4331586487446137687'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/07/windows-dns.html' title='Windows DNS'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-1854899658174205592</id><published>2009-07-19T16:41:00.004+01:00</published><updated>2009-07-19T16:56:30.048+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='macbook'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>Mac OS X and sshd</title><content type='html'>To ssh into a mac you need to turn this service on which is very easy.&lt;br /&gt;&lt;br /&gt;From the terminal (&lt;span style="font-family: courier new;"&gt;/Applications/Utilities/Terminal.app&lt;/span&gt;)&lt;br /&gt;$ ssh localhost&lt;br /&gt;&gt;ssh: connect to host localhost port 22: Connection refused&lt;br /&gt;&lt;br /&gt;Now go to '/Applications/System Preferences.app' -&gt; 'Sharing' then enable 'Remote Login'&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/morgan_prior/3734832525/" title="Sharing by munky morgy, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2529/3734832525_045076deff_o.png" width="500" height="419" alt="Sharing" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now Try ssh again:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;$ ssh localhost&lt;br /&gt;Password:&lt;br /&gt;Last login: Sun Jul 19 16:31:39 2009 from localhost&lt;br /&gt;$ &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-1854899658174205592?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/1854899658174205592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=1854899658174205592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1854899658174205592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1854899658174205592'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/07/mac-os-x-and-sshd.html' title='Mac OS X and sshd'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-1630416013719009294</id><published>2009-07-19T01:22:00.005+01:00</published><updated>2009-07-19T01:39:25.276+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Darwin Ports'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><title type='text'>OSX eat my GNU</title><content type='html'>Trying to setup snapback2 bbackup software but started running into issues because the os x commands are based on the BSD variants not the more standard GNU versions used on most Unix's and Linux's.&lt;br /&gt;&lt;br /&gt;Tried some manual installs but eventually after hitting a few dead ends found the package in port (mac ports formerly darwin ports).&lt;br /&gt;&lt;br /&gt;1) Assuming Mac Ports is already installed (if not do that first, to tired to give instructions for that)&lt;br /&gt;2) &lt;span style="font-family:courier new;"&gt;$ sudo port install coreutils&lt;/span&gt;&lt;br /&gt;NB: since os x 10.5 sudo only works if you have a password set.&lt;br /&gt;3) Get that pesky BSD cp out the way&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ sudo mv /bin/cp /bin/cp-osx&lt;/span&gt;&lt;br /&gt;4) link to the new shiny GNU&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ ln -s /opt/local/bin/gcp /bin/cp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5) test old version&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ cp-osx --version&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;/bin/cp-osx: illegal option -- -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;usage: cp [-R [-H | -L | -P]] [-fi | -n] [-pvX] source_file target_file&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;cp [-R [-H | -L | -P]] [-fi | -n] [-pvX] source_file ... target_directory&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note The excellent handling when requesting the version!&lt;br /&gt;&lt;br /&gt;6) Now the new version:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$cp --version&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;cp (GNU coreutils) 7.4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;Copyright (C) 2009 Free Software Foundation, Inc.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;License GPLv3+: GNU GPL version 3 or later &lt;/span&gt;&lt;http: org="" licenses="" html=""&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;This is free software: you are free to change and redistribute it.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;There is NO WARRANTY, to the extent permitted by law.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;Written by Torbjörn Granlund, David MacKenzie, and Jim Meyering.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This can be repeated for any other GNU commands you would like to map from /opt/local/bin/ to /bin. Most are prepend with g but if it is a 3rd party script that you are trying to get working it is often easier to make the default the gnu version.&lt;br /&gt;&lt;br /&gt;&lt;/http:&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-1630416013719009294?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/1630416013719009294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=1630416013719009294' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1630416013719009294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1630416013719009294'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/07/osx-eat-my-gnu.html' title='OSX eat my GNU'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-7999421449647122544</id><published>2009-07-18T18:15:00.004+01:00</published><updated>2009-07-24T17:18:02.022+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>CocoaDialog DialogBoxes for scripts</title><content type='html'>I just discovered &lt;a href="http://cocoadialog.sourceforge.net/"&gt;CocoaDialog&lt;/a&gt;, this allows scripts (Ruby, Perl, Bash) to ask for user input in a pretty way. Will be useful for creating double click runnable script/programs&lt;br /&gt;&lt;br /&gt;Download .dmg and copy CocoaDialog.app to /Applications/&lt;br /&gt;&lt;br /&gt;test run from bash terminal (/Applications/Utilities/Terminal.app)&lt;br /&gt;&lt;code&gt; $ /Applications/CocoaDialog.app/Contents/MacOS/CocoaDialog standard-inputbox --title "Your Name" --informative-text "Enter your name" &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Example should show this:&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/morgan_prior/3732042591/" title="CocoaDialog-standard-inputbox by munky morgy, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3518/3732042591_ce7101c729_o.png" alt="CocoaDialog-standard-inputbox" height="230" width="508" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pressing ok will return:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;enteredText&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pressing cancel will output:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&gt;2&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-7999421449647122544?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/7999421449647122544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=7999421449647122544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7999421449647122544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7999421449647122544'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/07/cocoadialog-dialogboxes-for-scripts.html' title='CocoaDialog DialogBoxes for scripts'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-3206559603114470574</id><published>2009-07-17T18:29:00.015+01:00</published><updated>2009-07-20T12:00:35.773+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Samba'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Filesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='Time Machine'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='Backup'/><category scheme='http://www.blogger.com/atom/ns#' term='macbook'/><title type='text'>Setting up Time Machine on any NAS</title><content type='html'>Start by opening the Time Machine option pane, "/Applications/System Preferences.app" then choose Time Machine under "Systems"&lt;br /&gt;&lt;br /&gt;I would also like to point out something I find very odd which is that Time Machine needs to target a particular partition (Drive letter in windows speak, or volume in mac speak). So for a network drive I would create a new network share called timemachine_computerName&lt;br /&gt;&lt;br /&gt;[ADDED 20/07/2009 ]&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Most of the following is to setup the new network share so that it will work with time machine. I have program &lt;/span&gt;&lt;a style="font-style: italic;" href="http://munkymorgy.is-a-geek.net/nemAmaras/Software/TimeMachineAnyNetworkDrive.php"&gt; TimeMachineAnyNetworkDrive &lt;/a&gt;&lt;span style="font-style: italic;"&gt; which will setup most of this for you. then just copy the sparsebundle from your home directory to the networkshare and try time machine again.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;First problem is apple does not allow any NAS (Network attached storage) device to be used by default, only their premium priced time capsule!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/morgan_prior/3731622277/" title="01NO-NAS by munky morgy, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2508/3731622277_3e92c25522_o.png" alt="01NO-NAS" height="350" width="500" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To allow non-apple network drives run this command (from the terminal):&lt;br /&gt;&lt;code&gt;defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/morgan_prior/3731622377/" title="02NAS_ALLOWED by munky morgy, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3428/3731622377_74eee82537.jpg" alt="02NAS_ALLOWED" height="333" width="500" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Selected NAS but after first attempt the backup fails.&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/morgan_prior/3731622501/" title="03-NAS-DENIED by munky morgy, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3452/3731622501_d03518aa75.jpg" alt="03-NAS-DENIED" height="333" width="500" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What we need to do is create a sparse dmg which gives timemachine all the required file system functions on any filesystem. For this we use the hdiutil command.&lt;br /&gt;NB: The &lt;span style="font-weight: bold;"&gt;hdiutil command will only work on local (internal and external) drives &lt;/span&gt;not network drives.&lt;br /&gt;&lt;br /&gt;So we create the sparsebundle (dmg) locally then copy to the remote drive, when copied through the command interface I got a few errors so I copied through finder (graphical interface).&lt;br /&gt;&lt;br /&gt;The Sparse bundle name needs to be computerName_MAC.&lt;br /&gt;All the following are typed from the terminal (/Applications/Utilities/Terminal.app) $ inputs &gt; output from the terminal.&lt;br /&gt;&lt;br /&gt;To check the computer name you can just run:&lt;br /&gt;&lt;code&gt; $ hostname -s &lt;/code&gt;&lt;br /&gt;&lt;code&gt; &gt; Queeg500 &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The Mac address of the first wired port EN0 is normally used. Every network socket/wifi will have its own MAC. To find your MAC&lt;br /&gt;&lt;br /&gt;&lt;code&gt; $ ifconfig en0 | grep ether &lt;/code&gt;&lt;br /&gt;&lt;code&gt; &gt;  ether 00:1b:63:a6:7e:5b&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sparsebundles takeup only the size of the data they contain, but the size property limits the maximum size. Here we limit to 200Gigabytes.&lt;br /&gt;&lt;code&gt;cd ~&lt;br /&gt;hdiutil create -verbose -size 200g -fs HFS+J -type SPARSEBUNDLE -volname "Backup of Queeg500" Queeg500_001d4ffac84b.sparsebundle&lt;br /&gt;#may be better to move graphically&lt;br /&gt;mv Queeg500_001d4ffac84b.sparsebundle /Volumes/timemachinetest/&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then try the timemachine backup again.&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/morgan_prior/3731622627/" title="04NAS-WORKING by munky morgy, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2492/3731622627_0e354dc2a5.jpg" alt="04NAS-WORKING" height="342" width="500" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Very good &lt;a href="http://www.readynas.com/?p=253"&gt;article here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-3206559603114470574?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/3206559603114470574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=3206559603114470574' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3206559603114470574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3206559603114470574'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/07/setting-up-time-machine-on-any-nas.html' title='Setting up Time Machine on any NAS'/><author><name>A Person</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3428/3731622377_74eee82537_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-7305365870729508776</id><published>2009-07-17T04:48:00.005+01:00</published><updated>2009-07-17T04:56:14.086+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applescript'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='macbook'/><title type='text'>Applescript What Property?</title><content type='html'>My apple script (applescript) just made a massive leap forward or at least my unerstanding of how people go about figuring it out. I never could work out how people new what all those scriptable properties where called until now.&lt;br /&gt;&lt;br /&gt;Open Script Editor (&lt;span style="font-family:courier new;"&gt;/Applications/AppleScript/Script Editor.app&lt;/span&gt;) may be open a script you have been writting / downloaded.&lt;br /&gt;&lt;br /&gt;The really clever bit:&lt;br /&gt;from Script editor &lt;span style="font-family:courier new;"&gt;File-&gt; Open Dictionary&lt;/span&gt;&lt;br /&gt;Now choose the application you are scripting and you will get a browsable searchable list of properties that the script can get and set!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-7305365870729508776?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/7305365870729508776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=7305365870729508776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7305365870729508776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7305365870729508776'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/07/applescript-what-property.html' title='Applescript What Property?'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-7235155343271480955</id><published>2009-07-13T12:07:00.001+01:00</published><updated>2009-07-13T12:08:27.974+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flickr'/><title type='text'>Desktop Background</title><content type='html'>A nice background to help organise your icons:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/gr/182329376/in/set-72157594188036656"&gt;http://www.flickr.com/photos/gr/182329376/in/set-72157594188036656&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-7235155343271480955?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/7235155343271480955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=7235155343271480955' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7235155343271480955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7235155343271480955'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/07/desktop-background.html' title='Desktop Background'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-197161124933718414</id><published>2009-07-10T08:46:00.002+01:00</published><updated>2009-07-10T08:47:50.198+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon'/><title type='text'>Amazon Store</title><content type='html'>Just got my amazon associate store setup, not quite complete yet.&lt;br /&gt;&lt;a href="http://astore.amazon.co.uk/morgue-21"&gt;http://astore.amazon.co.uk/morgue-21&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-197161124933718414?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/197161124933718414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=197161124933718414' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/197161124933718414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/197161124933718414'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/07/amazon-store.html' title='Amazon Store'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-8525503776378563156</id><published>2009-07-09T18:45:00.002+01:00</published><updated>2009-07-09T18:47:46.890+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon'/><title type='text'>Amazon.co.uk lists</title><content type='html'>Amazon seem to hide the link to create lists for list mania so here it is:&lt;br /&gt;UK: &lt;a href="http://www.amazon.co.uk/gp/richpub/listmania/createpipeline"&gt;http://www.amazon.co.uk/gp/richpub/listmania/createpipeline&lt;/a&gt;&lt;br /&gt;US :&lt;a href="http://www.amazon.co.uk/gp/richpub/listmania/createpipeline"&gt;http://www.amazon.com/gp/richpub/listmania/createpipeline&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-8525503776378563156?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/8525503776378563156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=8525503776378563156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8525503776378563156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/8525503776378563156'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/07/amazoncouk-lists.html' title='Amazon.co.uk lists'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-6020901753396846928</id><published>2009-07-09T17:07:00.006+01:00</published><updated>2009-07-09T17:15:22.758+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='Book'/><title type='text'>Body Of Secrets</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.amazon.co.uk/dp/0099427745?tag=morgue-21&amp;amp;camp=2902&amp;amp;creative=19466&amp;amp;linkCode=as4&amp;amp;creativeASIN=0099427745&amp;amp;adid=1QJVV8S3SBYS4X6FTF42&amp;amp;"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 119px; height: 180px;" src="http://3.bp.blogspot.com/_QKwj7jUsK7o/SlYXKuXMzjI/AAAAAAAAACY/jYfdhUBcjdU/s400/BodyOfSecrets.png" alt="" id="BLOGGER_PHOTO_ID_5356494279815253554" border="0" /&gt;&lt;/a&gt;Body of Secrsts&lt;br /&gt;ISBN:0099427745&lt;br /&gt;About £9&lt;br /&gt;&lt;br /&gt;Very interesting book on the history of the NSA and GCHQ.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-6020901753396846928?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/6020901753396846928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=6020901753396846928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6020901753396846928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6020901753396846928'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/07/body-of-secrets.html' title='Body Of Secrets'/><author><name>A Person</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QKwj7jUsK7o/SlYXKuXMzjI/AAAAAAAAACY/jYfdhUBcjdU/s72-c/BodyOfSecrets.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-1702708929161184419</id><published>2009-07-06T16:05:00.002+01:00</published><updated>2009-07-06T16:09:20.896+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP'/><title type='text'>Disable jqs.exe on Windows</title><content type='html'>In my windows task manager I noticed a process called jqs.exe which had over 5,000,000,000 I/O Read Bytes the most out of any process on my computer by a factor of 4.&lt;br /&gt;&lt;br /&gt;It is a java quick launch application which constantly brings a small part of java back in to main moemory. Sine I do not run java applications that often I do not mind a little bit of lag and followed the instructions here [&lt;a href="http://jsbi.blogspot.com/2009/05/what-is-process-jqsexe-and-how-to.html"&gt;1&lt;/a&gt;] to diable it&lt;br /&gt;&lt;br /&gt;[1] &lt;a href="http://jsbi.blogspot.com/2009/05/what-is-process-jqsexe-and-how-to.html"&gt;http://jsbi.blogspot.com/2009/05/what-is-process-jqsexe-and-how-to.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-1702708929161184419?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/1702708929161184419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=1702708929161184419' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1702708929161184419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1702708929161184419'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/07/disable-jqsexe-on-windows.html' title='Disable jqs.exe on Windows'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-5350867390395721595</id><published>2009-07-04T22:08:00.004+01:00</published><updated>2009-07-07T23:48:49.581+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><title type='text'>Ruby Parsing Command Line Options</title><content type='html'>Ruby has built in methods for dealing with parsing command line options, it is called optparse.&lt;br /&gt;&lt;a href="http://www.ruby-doc.org/stdlib/libdoc/optparse/rdoc/index.html"&gt;&lt;br /&gt;optparse rdocs&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ruby-doc.org/stdlib/libdoc/optparse/rdoc/classes/OptionParser.html"&gt;some optparse examples&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A Small example (cut down from the above) showing most common requirments.&lt;br /&gt;&lt;a href="http://github.com/munkymorgy/munkymorgy_scripts_generic/blob/eaf9b728bbeea30fb1d044ed82e75ea634c7980b/ruby_optparse_example.rb"&gt;Also on github.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint"&gt;&lt;br /&gt;#!/usr/bin/env ruby &lt;br /&gt;&lt;br /&gt;  require 'optparse'&lt;br /&gt;  require 'optparse/time'&lt;br /&gt;  require 'ostruct'&lt;br /&gt;  require 'pp'&lt;br /&gt;&lt;br /&gt;  class OptparseExample&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    #&lt;br /&gt;    # Return a structure describing the options.&lt;br /&gt;    #&lt;br /&gt;    def self.parse(args)&lt;br /&gt;      # The options specified on the command line will be collected in *options*.&lt;br /&gt;      # We set default values here.&lt;br /&gt;      options = OpenStruct.new&lt;br /&gt;&lt;br /&gt;      options.verbose   = false&lt;br /&gt;      options.time      = 0&lt;br /&gt;      options.delay     = 0&lt;br /&gt;      options.leftovers = nil&lt;br /&gt;       &lt;br /&gt;&lt;br /&gt;      opts = OptionParser.new do |opts|&lt;br /&gt;        opts.banner = "Usage: example.rb [options]"&lt;br /&gt;        opts.separator ""&lt;br /&gt;        opts.separator "Specific options:"&lt;br /&gt;&lt;br /&gt;        # Boolean switch.&lt;br /&gt;        opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|&lt;br /&gt;          options.verbose = v&lt;br /&gt;        end&lt;br /&gt;        &lt;br /&gt;        # Cast 'time' argument to an integer.&lt;br /&gt;        opts.on("-t", "--time [TIME]", Integer, "Begin execution at given time") do |time|&lt;br /&gt;          options.time = time&lt;br /&gt;        end&lt;br /&gt;&lt;br /&gt;        # Cast 'delay' argument to a Float.&lt;br /&gt;        opts.on("--delay N", Float, "Delay N seconds before executing") do |n|&lt;br /&gt;          options.delay = n&lt;br /&gt;        end&lt;br /&gt;&lt;br /&gt;         # List of arguments.&lt;br /&gt;        opts.on("--list x,y,z", Array, "Example 'list' of arguments") do |list|&lt;br /&gt;          options.list = list&lt;br /&gt;        end&lt;br /&gt;&lt;br /&gt;        opts.separator ""&lt;br /&gt;        opts.separator "Common options:"&lt;br /&gt;&lt;br /&gt;        # No argument, shows at tail.  This will print an options summary.&lt;br /&gt;        opts.on_tail("-h", "--help", "Show this message") do&lt;br /&gt;          puts opts&lt;br /&gt;          exit&lt;br /&gt;        end&lt;br /&gt;&lt;br /&gt;        # Another typical switch to print the version.&lt;br /&gt;        opts.on_tail("--version", "Show version") do&lt;br /&gt;          #puts OptionParser::Version.join('.')&lt;br /&gt;          puts "Version 0.1.0"&lt;br /&gt;          exit&lt;br /&gt;        end&lt;br /&gt;      end&lt;br /&gt;      &lt;br /&gt;      options.leftovers = opts.parse!(args)&lt;br /&gt;      options&lt;br /&gt;    end  # parse()&lt;br /&gt;&lt;br /&gt;  end  # class OptparseExample&lt;br /&gt;&lt;br /&gt;  options = OptparseExample.parse(ARGV)&lt;br /&gt;  pp options&lt;br /&gt;  puts ""&lt;br /&gt;  puts ""&lt;br /&gt;  puts options.leftovers&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-5350867390395721595?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/5350867390395721595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=5350867390395721595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5350867390395721595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5350867390395721595'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/07/ruby-parsing-command-line-options.html' title='Ruby Parsing Command Line Options'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-3466718926541493526</id><published>2009-06-27T03:59:00.001+01:00</published><updated>2009-06-27T04:00:56.254+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Photography'/><category scheme='http://www.blogger.com/atom/ns#' term='Lightroom'/><title type='text'>Lightroom 2.4 Update</title><content type='html'>The 2.4 Update for Adobe Lightroom is available &lt;a href="http://www.adobe.com/support/downloads/detail.jsp?ftpID=4507"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;a href="http://download.adobe.com/pub/adobe/lightroom/mac/2.x/LTRM2_WWEFG_mac_2_4.dmg"&gt;Or Direct&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-3466718926541493526?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/3466718926541493526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=3466718926541493526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3466718926541493526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3466718926541493526'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/06/lightroom-24-update.html' title='Lightroom 2.4 Update'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-7780590914291888139</id><published>2009-06-27T02:14:00.004+01:00</published><updated>2009-06-27T02:23:25.750+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parallels'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Filesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtual Machine'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='MS'/><title type='text'>Remove Parallels from Mac OS X</title><content type='html'>I used this article [1] to remove parallels from my Mac OS X 10.5 machine.&lt;br /&gt;&lt;br /&gt;[1]&lt;a href="http://kb.parallels.com/en/4709"&gt; http://kb.parallels.com/en/4709&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Basically reload the .DMG used to install it. and run the remove app.&lt;br /&gt;&lt;br /&gt;it also recommend removing these files manually (all of them were automatically deleted for me)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd /Library/StartupItems/&lt;br /&gt;sudo rm -rf Parallels&lt;br /&gt;cd /Applications&lt;br /&gt;sudo rm -rf Parallels&lt;br /&gt;cd /System/Library/Extensions/&lt;br /&gt;sudo rm -rf vmmain.kext&lt;br /&gt;sudo rm -rf hypervisor.kext&lt;br /&gt;sudo rm -rf Pvsvnic.kext&lt;br /&gt;sudo rm -rf ConnectUSB.kext&lt;br /&gt;sudo rm -rf Pvsnet.kext&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;NB: Remember SUDO will only work on Leopard OS X 10.5 when you have a password set.&lt;br /&gt;&lt;br /&gt;Also I had some virtual machines that were very large in:&lt;br /&gt;~/Documents/Parallels&lt;br /&gt;&lt;br /&gt;and there was a shared folder created at:&lt;br /&gt;/Users/Shared/Parallels&lt;br /&gt;&lt;br /&gt;I deleted those 2 extra folders.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-7780590914291888139?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/7780590914291888139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=7780590914291888139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7780590914291888139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7780590914291888139'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/06/remove-parallels-from-mac-os-x.html' title='Remove Parallels from Mac OS X'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-3644126090438609498</id><published>2009-06-24T18:43:00.006+01:00</published><updated>2009-06-24T19:01:54.907+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Blogger Minimum Profile Widget</title><content type='html'>I thought I would expand my profile on blogger.com / blogspot.com a little bit. Soon after doing so I noticed that the "About Me" widget which links to my profile had grown in size and included a full copy of the profile I had just written.&lt;br /&gt;&lt;br /&gt;If I provide a link to a page all about me I dont expect the link to be an entire copy of that page why google thinks that this is a good behaviour I will never know.&lt;br /&gt;&lt;br /&gt;There did not appear to be any option for the current widget to only provide the links, so I sought after my own method of doing this. I could not get the auto completion working to pull data from your blogger profile so unfortunately you will have to cut and paste all the links, but if you look &lt;a href="http://munkymorgy.is-a-geek.net/BloggerMinProfile/"&gt;here http://munkymorgy.is-a-geek.net/BloggerMinProfile/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There are a few boxes to fill out/cut paste urls. click refresh to load the data into the preview, this also refreshes the text box at the bottom, which allows manual edits before clicking the "Add Min Profile Widget" which sends the data to blogger .com which them prompts you for which blog you would like to add the widget to.&lt;br /&gt;&lt;br /&gt;If you do not like it they are very easy to remove. login (to bolgger.com) and got to customise, Layout, Page Elements, select the widget you want to edit / remove and select edit. The remove button is in the bottom left c orener of the new window.&lt;br /&gt;&lt;br /&gt;Just for comparsison I include a small screen grab here:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QKwj7jUsK7o/SkJpDRS1xOI/AAAAAAAAACQ/HdCjwytfxOg/s1600-h/MinProfWidget.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 147px; height: 320px;" src="http://3.bp.blogspot.com/_QKwj7jUsK7o/SkJpDRS1xOI/AAAAAAAAACQ/HdCjwytfxOg/s320/MinProfWidget.png" alt="" id="BLOGGER_PHOTO_ID_5350954812172518626" border="0" /&gt;&lt;/a&gt;New Minimum profile Widget on top, wierd original one below.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-3644126090438609498?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/3644126090438609498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=3644126090438609498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3644126090438609498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3644126090438609498'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/06/blogger-minimum-profile-widget.html' title='Blogger Minimum Profile Widget'/><author><name>A Person</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QKwj7jUsK7o/SkJpDRS1xOI/AAAAAAAAACQ/HdCjwytfxOg/s72-c/MinProfWidget.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-4065943281436709006</id><published>2009-06-13T23:40:00.005+01:00</published><updated>2010-01-31T18:12:57.632Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Photography'/><category scheme='http://www.blogger.com/atom/ns#' term='Lightroom'/><title type='text'>Lightroom Shortcuts</title><content type='html'>Just a quick reminder to myself of some of the short cut keys available in Lightroom.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Overall control&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;f&lt;/span&gt; next view mode (show title bar)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;l&lt;/span&gt; light table mode (blacks out everything except photo)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;g&lt;/span&gt; Jump to Library Grid module&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;d&lt;/span&gt; jump to Develop module&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;tab&lt;/span&gt; toggles displaying side panels&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;shift-tab&lt;/span&gt; toggles displaying top/bottom panels&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Photos selected in the film strip&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;p&lt;/span&gt; pick&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;u&lt;/span&gt; unpick&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;x&lt;/span&gt; reject&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;o&lt;/span&gt; Toggle mask when using Adjustment brush&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;cmd-backspace&lt;/span&gt; or Photo-&gt;"Delete Rejected Photos..."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;In Develop Module&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;alt&lt;/span&gt; develop controls get individual resets!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-4065943281436709006?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/4065943281436709006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=4065943281436709006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/4065943281436709006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/4065943281436709006'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/06/lightroom-shortcuts.html' title='Lightroom Shortcuts'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-6514559313507607581</id><published>2009-06-13T19:07:00.003+01:00</published><updated>2009-06-13T19:12:35.010+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Social Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><title type='text'>Facebook nice url</title><content type='html'>Facebook has recently (this morning 1/06/2009) released the ability to have a nice or vanity url pointing to your profile. You know just like everybody (&lt;a href="http://twitter.com/munkymorgy"&gt;twitter&lt;/a&gt; myspace etc) has always had since always.&lt;br /&gt;&lt;br /&gt;just login to facebook then go to &lt;a href="http://facebook.com/username"&gt;facebook.com/username&lt;/a&gt; and select your username, certain ones seem to be blocked for some reason munkymorgy was not allowed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-6514559313507607581?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/6514559313507607581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=6514559313507607581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6514559313507607581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6514559313507607581'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/06/facebook-nice-url.html' title='Facebook nice url'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-2968567398089803122</id><published>2009-06-12T14:36:00.002+01:00</published><updated>2009-06-12T14:41:10.014+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='Mail'/><title type='text'>iPhone (iPod Touch) sync google conatcts and calendar</title><content type='html'>Following the instructions here [1] it is easy to setup your iphone to sync your google contacts and calendars directly. Mail sync is not supported yet though. This all happens under the google sync project.&lt;br /&gt;&lt;br /&gt;[1] &lt;a href="http://www.google.com/support/mobile/bin/answer.py?answer=138740&amp;amp;ctx=sibling&amp;amp;topic=14252"&gt;http://www.google.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-2968567398089803122?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/2968567398089803122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=2968567398089803122' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2968567398089803122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2968567398089803122'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/06/iphone-ipod-touch-sync-google-conatcts.html' title='iPhone (iPod Touch) sync google conatcts and calendar'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-2998237914602189060</id><published>2009-06-09T19:21:00.003+01:00</published><updated>2009-06-09T19:43:47.941+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Photography'/><title type='text'>Stuff that might be nice to have</title><content type='html'>Terra Nova Superlight Voyager 2009&lt;br /&gt;&lt;a href="http://www.uttingsoutdoors.co.uk/Product/193/100548/terra-nova-superlite-voyager-tent-2009-model-green-43vyt-g-09"&gt;http://www.uttingsoutdoors.co.uk/&lt;/a&gt; £279&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.uttingsoutdoors.co.uk/images/products/terranovatents/superlitevoyager_large.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 280px; height: 280px;" src="http://www.uttingsoutdoors.co.uk/images/products/terranovatents/superlitevoyager_large.jpg" alt="" border="0" /&gt;&lt;/a&gt;ThermaRest&lt;br /&gt;&lt;a href="http://www.amazon.co.uk/Thermarest-Prolite-Regular-Inflating-Mattress/dp/B001UO3NJK/ref=sr_1_1?ie=UTF8&amp;amp;s=sports&amp;amp;qid=1244571597&amp;amp;sr=8-1"&gt;Original £67&lt;/a&gt; or &lt;a href="http://www.amazon.co.uk/Therm-rest-Trail-Lite-Small/dp/B001DJ8VH6/ref=sr_1_2?ie=UTF8&amp;amp;s=sports&amp;amp;qid=1244571597&amp;amp;sr=8-2"&gt;Traillight £30&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Headlamp&lt;br /&gt;One with red leds for efficient night time Navigation&lt;br /&gt;&lt;br /&gt;Camera gear&lt;br /&gt;&lt;a href="http://www.canon.co.uk/for_home/product_finder/cameras/ef_lenses/fixed_focal_length/ef_14mm_f14l_usm/index.asp"&gt;Canon EF 24mm f1.4L USM II&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.the-digital-picture.com/Reviews/Canon-EF-24mm-f-1.4-L-USM-Lens-Review.aspx"&gt;Review&lt;/a&gt;, &lt;a href="http://www.dpreview.com/news/0809/08091704canon_ef24mm.asp"&gt;Review&lt;/a&gt;, &lt;a href="http://www.warehouseexpress.com/product/default.aspx?sku=1028314"&gt;Buy&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.warehouseexpress.com/product/default.aspx?sku=1028314"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 165px; height: 171px;" src="http://www.canon.co.uk/Images/--_tcm14-27018.gif" alt="" border="0" /&gt;&lt;/a&gt;Canon EF 70-200 f4L IS USM&lt;br /&gt;&lt;a href="http://www.the-digital-picture.com/Reviews/Canon-EF-70-200mm-f-4.0-L-USM-Lens-Review.aspx"&gt;Review&lt;/a&gt;, &lt;a href="http://www.dpreview.com/news/0608/06082414canon70-200f4lens.asp"&gt;Review&lt;/a&gt;, &lt;a href="http://www.warehouseexpress.com/product/default.aspx?sku=1014287"&gt;Buy&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://media.the-digital-picture.com/Images/Pic/Canon-EF-70-200mm-f-4.0-L-USM-Lens.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 322px; height: 159px;" src="http://media.the-digital-picture.com/Images/Pic/Canon-EF-70-200mm-f-4.0-L-USM-Lens.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;img src="file:///Users/morgy/Library/Caches/TemporaryItems/moz-screenshot.jpg" alt="" /&gt;&lt;img src="file:///Users/morgy/Library/Caches/TemporaryItems/moz-screenshot-1.jpg" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-2998237914602189060?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/2998237914602189060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=2998237914602189060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2998237914602189060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2998237914602189060'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/06/stuff-that-might-be-nice-to-have.html' title='Stuff that might be nice to have'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-590603213754193295</id><published>2009-06-07T11:43:00.002+01:00</published><updated>2009-06-07T11:47:50.781+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Social Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='Photography'/><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='flickr'/><title type='text'>Import flickr photos into Facebook</title><content type='html'>Just found this application [1] for facebook, which is very useful if you mainly post pictures to flickr.&lt;br /&gt;&lt;br /&gt;[1] &lt;a href="http://www.keebler.net/flickr2facebook/"&gt;http://www.keebler.net/flickr2facebook/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You Have to authorise the appliaction in face book, getting to this page was a little tricky and cant remember how I did it. But once it is done you just add an link to your shortcuts and when ever you find a flickr image you want in a facebook album just click the link and it will upload it to the album of your choice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-590603213754193295?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/590603213754193295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=590603213754193295' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/590603213754193295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/590603213754193295'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/06/import-flickr-photos-into-facebook.html' title='Import flickr photos into Facebook'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-2903025677991097401</id><published>2009-06-04T17:22:00.005+01:00</published><updated>2009-06-04T17:44:05.312+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Social Networking'/><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><title type='text'>Create a link to your facebook profile</title><content type='html'>How Do I link to my facebook profile page was a question I often asked myself. It is actually quite straight forward. You just need to know your facebook id number. To find your facbook.com id number login then select the link which is just your real name left of 'settings' and 'log out'. This should take you to some thion like http://www.facebook.com/profile.php#/profile.php?id=604686891&amp;ref=name&lt;br /&gt;&lt;br /&gt;Shorten this to &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.facebook.com/profile.php?id=604686891"&gt;http://www.facebook.com/profile.php?id=604686891&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and start telling people. you need to login to see it. not sure what happens if you dont have permission to see it. and I dont know any one who is on facbook and does not already have me added as a friend so can not test it. Can some try this out and leave a comment as to what happens if you click the link and login.&lt;br /&gt;&lt;br /&gt;There is lso links to make a face bookbadge which for me creates a link to this page:&lt;br /&gt;&lt;a href="http://en-gb.facebook.com/people/Morgan-Prior/604686891"&gt;http://en-gb.facebook.com/people/Morgan-Prior/604686891&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-2903025677991097401?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/2903025677991097401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=2903025677991097401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2903025677991097401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2903025677991097401'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/06/create-link-to-your-facebook-profile.html' title='Create a link to your facebook profile'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-3462790879035438663</id><published>2009-05-08T18:02:00.002+01:00</published><updated>2009-05-08T18:08:02.356+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Word'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Case'/><title type='text'>Microsoft Word Changing Case</title><content type='html'>Changing the case of text in Microsoft Word is no longer done in the fomatting pane. It has its own 'Change Case' menu item.&lt;br /&gt;&lt;br /&gt;Select/Highlight text then select Format -&gt; Change Case&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/morgan_prior/3512673429/" title="WordChangeCase01 by munky morgy, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3299/3512673429_518b257888.jpg" width="500" height="397" alt="WordChangeCase01" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Select from these 5 options. Sentences case is useful if you accidentally typed everything upper case&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/morgan_prior/3512673475/" title="WordChangeCase02 by munky morgy, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3352/3512673475_709f6363f5_o.png" width="286" height="206" alt="WordChangeCase02" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-3462790879035438663?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/3462790879035438663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=3462790879035438663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3462790879035438663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3462790879035438663'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/05/microsoft-word-changing-case.html' title='Microsoft Word Changing Case'/><author><name>A Person</name><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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3299/3512673429_518b257888_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-7049651021438147972</id><published>2009-05-08T13:13:00.004+01:00</published><updated>2009-05-08T13:21:25.445+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Firefox shorcuts Tips and Tricks</title><content type='html'>If you use Subversion or other web based tools you might have cgi scripts/web pages that take the url of another page as an argument, this is a nice trick for easily entering the the new page with the other url as a refference.&lt;br /&gt;&lt;br /&gt;Create a new shortcut in firefox.&lt;br /&gt;Right click and select properties.&lt;br /&gt;Set Name to What ever you would like.&lt;br /&gt;Set &lt;span style="font-weight: bold;"&gt;Location&lt;/span&gt; to be:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;javascript:location = 'http://newpage.com/new.php?url='+escape(location); void 0 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;goto google.com then select your new shortcut then you will load http://newpage.com/new.php?url=google.com&lt;br /&gt;&lt;br /&gt;Tip Originated from here:&lt;br /&gt;&lt;a href="http://www.mvps.org/dmcritchie/firefox/kws.htm#url"&gt;http://www.mvps.org/dmcritchie/firefox/kws.htm#url&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-7049651021438147972?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/7049651021438147972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=7049651021438147972' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7049651021438147972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7049651021438147972'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/05/firefox-shorcuts-tips-and-tricks.html' title='Firefox shorcuts Tips and Tricks'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-2745171495850637144</id><published>2009-05-06T22:14:00.004+01:00</published><updated>2009-05-07T14:14:47.972+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Convert sections of Web pages to images</title><content type='html'>If you find a need to convert a web page into an image, say saving a section of a google map, &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3408"&gt;Abduction&lt;/a&gt; is a good plugin for Firefox 3.&lt;br /&gt;&lt;br /&gt;Once installed, just right click on the web page choose 'Save Page As Image'. A preview window then opens which lets you select which part gets included in the image, where and what image format.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-2745171495850637144?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/2745171495850637144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=2745171495850637144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2745171495850637144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2745171495850637144'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/05/convert-sections-of-web-pages-to-images.html' title='Convert sections of Web pages to images'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-6103972472715063078</id><published>2009-05-05T21:25:00.004+01:00</published><updated>2009-05-05T21:30:44.956+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java delete non-empty folders</title><content type='html'>The Java File.delete(); method only works on empty folders to delete a folder and its contents recursivly do some thing like:&lt;br  /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint"&gt;   public static void recDelete(File folder) {&lt;br /&gt;      if(folder.exists()) {&lt;br /&gt;       if(folder.isDirectory()) {&lt;br /&gt;        File[] files = folder.listFiles();&lt;br /&gt;           for(int i=0; i &lt; files.length; i++) {&lt;br /&gt;              File curFile = files[i];&lt;br /&gt;              // call to delete the current file/folder&lt;br /&gt;              recDelete(curFile);&lt;br /&gt;            }    &lt;br /&gt;       }&lt;br /&gt;       //If a folder Deleted all contents&lt;br /&gt;       //If a File Jump straight here&lt;br /&gt;       folder.delete();&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-6103972472715063078?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/6103972472715063078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=6103972472715063078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6103972472715063078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/6103972472715063078'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/05/java-delete-non-empty-folders.html' title='Java delete non-empty folders'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-1225615979821732260</id><published>2009-04-28T19:38:00.029+01:00</published><updated>2009-04-28T21:26:36.294+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Displaying code Snippets on blogspot</title><content type='html'>I have been trying to show pretty code snippets on blogspot.com/blogger.com. I found for larger files github.com displays code nicely but not very handy for short inline examples. Today I discovered prettify by google &lt;br  /&gt;&lt;br  /&gt;&lt;br /&gt;&lt;br /&gt;This post describes setting up &lt;a href="http://code.google.com/p/google-code-prettify/"&gt; code.google prettify &lt;/a&gt;  on blogger.com &lt;br  /&gt;&lt;br  /&gt;&lt;br /&gt;&lt;br /&gt;Originally explained here:&lt;br /&gt;&lt;a href="http://lukabloga.blogspot.com/2008/10/to-test-new-highlighting.html"&gt;http://lukabloga.blogspot.com&lt;/a&gt;  &lt;br  /&gt;&lt;br  /&gt;&lt;br /&gt;&lt;br /&gt;Include this before the head tag in the blogger template.&lt;br /&gt;&lt;textarea rows="5" cols="60"&gt;&lt;link href="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css" type="text/css" rel="stylesheet"&gt;&lt;br /&gt;&lt;script type="text/javascript" src="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js"&gt;  &lt;/script&gt;&lt;/textarea&gt;&lt;br  /&gt;&lt;br /&gt;&lt;br /&gt;I have made a modified version of the css file suitable for displaying code on darkbackgrounds, I use this instead:&lt;br  /&gt;&lt;br /&gt;&lt;br /&gt;&lt;textarea rows="6" cols="60"&gt;&lt;link href="http://sites.google.com/a/munkymorgy.net/morgan/layout/prettifydark.css?attredirects=0" type="text/css" rel="stylesheet"&gt;&lt;br /&gt;&lt;script type="text/javascript" src="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js" &gt;  &lt;/script&gt;&lt;/textarea&gt;&lt;br  /&gt;&lt;br /&gt;&lt;br /&gt;Then change the body tag to: &lt;br  /&gt;&lt;br /&gt;&lt;textarea rows="1" cols="60"&gt; &lt;body onload='prettyPrint()'&gt; &lt;/textarea&gt;&lt;br /&gt;&lt;br /&gt;Then use the prettyprint class when using pre tags around code: &lt;br  /&gt;&lt;br /&gt;&lt;textarea rows="3" cols="60"&gt;&lt;pre class="prettyprint"&gt;&lt;br /&gt;... # Your code goes here &lt;br /&gt;&lt;/pre&gt;&lt;/textarea&gt;&lt;br  /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-1225615979821732260?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/1225615979821732260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=1225615979821732260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1225615979821732260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/1225615979821732260'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/04/displaying-code-snippets-on-blogspot.html' title='Displaying code Snippets on blogspot'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-2852291025867258311</id><published>2009-04-27T14:04:00.003+01:00</published><updated>2009-04-27T14:06:19.501+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='SciTE'/><title type='text'>Scite bash script config</title><content type='html'>in Scite the config for bash/shell scripts are handled by the perl.properties by default.&lt;br /&gt;&lt;br /&gt;I believe this is the section of the config file which applies it to .sh file by default.&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;file.patterns.perl=*.pl;*.pm;*.cgi;*.pod&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;file.patterns.bash=*.sh;*.bsh;configure&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;shbang.perl=pl&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;shbang.sh=sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;filter.perl=Perl (pl pm)|$(file.patterns.perl)|&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;filter.bash=Bash (sh bsh)|$(file.patterns.bash)|&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;lexer.$(file.patterns.perl)=perl&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;lexer.$(file.patterns.bash)=bash&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-2852291025867258311?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/2852291025867258311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=2852291025867258311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2852291025867258311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2852291025867258311'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/04/scite-bash-script-config.html' title='Scite bash script config'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-3026872787241463142</id><published>2009-04-27T13:34:00.005+01:00</published><updated>2009-04-29T17:15:17.447+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Shoes'/><title type='text'>Ruby Shoes, Get full path of current application</title><content type='html'>After reading this post [1] I though that [2] would return the full path, as the url suggest it is only a relative path. For Ruby scripts executing under Shoes the current dir can change so it is always best to refer to a full path. The short script at [3] should give just that.&lt;br /&gt;&lt;br /&gt;[1] &lt;a href="http://stackoverflow.com/questions/757455/relative-file-paths"&gt;http://stackoverflow.com/questions/757455/relative-file-paths&lt;/a&gt;&lt;br /&gt;[2] &lt;span style="font-family:courier new;"&gt;File.dirname($PROGRAM_NAME)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[3]: &lt;pre class="prettyprint"&gt;def getFullPath&lt;br /&gt; modulepath = File.expand_path($PROGRAM_NAME)&lt;br /&gt; modulepath = $modulepath.gsub($PROGRAM_NAME,"")&lt;br /&gt; return modulepath&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-3026872787241463142?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/3026872787241463142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=3026872787241463142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3026872787241463142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3026872787241463142'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/04/ruby-shoes-get-full-path-of-current.html' title='Ruby Shoes, Get full path of current application'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-4817253418505981266</id><published>2009-04-24T08:22:00.004+01:00</published><updated>2009-04-24T09:52:17.538+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Storage'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>Create new Repository on Github</title><content type='html'>github.com repositories are setup through the web page:&lt;br /&gt;&lt;a href="http://github.com/repositories/new"&gt;http://github.com/repositories/new&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Which then forwrds you to these instructions (some of which can been done before setting up the repo):&lt;br /&gt;&lt;h2&gt;Global setup:&lt;/h2&gt;       &lt;pre&gt;Download and install &lt;a target="_blank" href="http://git-scm.com/download"&gt;Git&lt;/a&gt;&lt;br /&gt;git config --global user.name "Registerd githubname"&lt;br /&gt;git config --global user.email yourgithub@emailaddress.com&lt;br /&gt;     &lt;/pre&gt;        &lt;h2&gt;Next steps:&lt;/h2&gt;       &lt;pre&gt;mkdir shoesexamples&lt;br /&gt;cd shoesexamples&lt;br /&gt;git init&lt;br /&gt;touch README&lt;br /&gt;git add README&lt;br /&gt;git commit -m 'first commit'&lt;br /&gt;git remote add origin git@github.com:git_hub_username/shoesexamples.git&lt;br /&gt;git push origin master&lt;br /&gt;   &lt;/pre&gt;        &lt;h2&gt;Existing Git Repo?&lt;/h2&gt;       &lt;pre&gt;cd existing_git_repo&lt;br /&gt;git remote add origin git@github.com:git_hub_username/shoesexamples.git&lt;br /&gt;git push origin master&lt;br /&gt;   &lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-4817253418505981266?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/4817253418505981266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=4817253418505981266' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/4817253418505981266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/4817253418505981266'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/04/create-new-repository-on-github.html' title='Create new Repository on Github'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-925601177817291969</id><published>2009-04-24T00:33:00.008+01:00</published><updated>2010-03-15T18:44:57.550Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Mail'/><title type='text'>Google Apps to host your Domain mail server</title><content type='html'>A mini howto forward you domain emails to google and get a gmail interface for your emails using use google apps.&lt;br /&gt;&lt;br /&gt;Register at &lt;a href="http://www.google.com/apps/"&gt;http://www.google.com/apps/&lt;/a&gt;&lt;br /&gt;The &lt;a href="http://www.google.com/a/cpanel/domain/new"&gt;standard edition&lt;/a&gt; is free and can have upto 50 users.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Now Configure Mail&lt;br /&gt;&lt;/span&gt;https://www.google.com/a/cpanel/yourdomain.com/Dashboard&lt;br /&gt;click "Activate Mail"&lt;br /&gt;&lt;br /&gt;Follow Instructions for setting MX records&lt;br /&gt;which are :&lt;br /&gt;Priority Address TTL&lt;br /&gt;1 aspmx.l.google.com 1week&lt;br /&gt;5 alt1.aspmx.l.google.com 1week&lt;br /&gt;5 alt2.aspmx.l.google.com 1week&lt;br /&gt;10 aspmx2.googlemail.com 1week&lt;br /&gt;10 aspmx3.googlemail.com 1week&lt;br /&gt;&lt;br /&gt;The login page should be:&lt;br /&gt;https://mail.google.com/a/yourdomain.com&lt;br /&gt;or you can set up mail.yourdomain.com [&lt;a href="http://www.google.com/support/a/bin/answer.py?answer=53340"&gt;instructions&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;https://www.google.com/a/cpanel/yourdomain.com/DomainSettingsDomains&lt;br /&gt;select "Service Settings" -&gt; "Email"&lt;br /&gt;Tell google what you want the domain to be.&lt;br /&gt;Update your dns records by adding a cname with alias mail (should match the google setup), points to host name should be ghs.google.com ttl 1 week&lt;br /&gt;&lt;br /&gt;It may take a few hours for google and world wide dns caches to update making it functional, just wait a and and at some point your new mail.yourdomain.com should spring to life.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-925601177817291969?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/925601177817291969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=925601177817291969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/925601177817291969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/925601177817291969'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/04/google-apps-to-host-your-domain-mail.html' title='Google Apps to host your Domain mail server'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-9120702781412300779</id><published>2009-04-23T16:52:00.005+01:00</published><updated>2009-04-23T17:39:53.596+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Filesystem'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>New file and directory permissions on unix</title><content type='html'>Unix and Linux based sytems define default file permissions with umask.&lt;br /&gt;&lt;a style="font-family: courier new;" href="http://www.manpagez.com/man/2/umask/"&gt;$ man umask&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see you current permissions just run:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ umask&lt;br /&gt;&gt;0022&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For a more user friendly format:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ umask -S&lt;br /&gt;&gt;u=rwx,g=rx,o=rx&lt;/span&gt;&lt;br /&gt;Person is User, Group and Other.&lt;br /&gt;Properties are Read, Write and eXecute.&lt;br /&gt;&lt;br /&gt;umask subtracts from the normal properties set by &lt;a href="http://www.manpagez.com/man/2/chmod/"&gt;chmod&lt;/a&gt;.&lt;br /&gt;Folder and file are the same, except files will never be set executable by default.&lt;br /&gt;(the -- are just to allign the tables, the numbers are the decimal equivalent for a 1 set in that position)&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--421,--421,--421&lt;br /&gt;u=rwx,g=rwx,o=rwx&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Say you (User) want full access to a file but not allow Group or Other access.&lt;br /&gt;you want:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--421,--000,-000 ie 700&lt;/span&gt;&lt;br /&gt;The mask would be&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--000,--421,--421 =&gt; 077&lt;/span&gt;&lt;br /&gt;to set this just run (and may be add to your ~/.bashrc file) :&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ umask 077&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You (User) want full access, Group has read and execute and Other none&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--421,--401,--000 ie 750&lt;/span&gt;&lt;br /&gt;the mask would be:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--000,--020,--421 =&gt; $ umask 027&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You (User) have full access and Group and other have read and execute.&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--421,--401,--401 ie 755&lt;/span&gt;&lt;br /&gt;mask would be:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;--000,--020,--020 =&gt; $ umask 022&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;NB:&lt;br /&gt;Q) How do i set umask to make files executable by default?&lt;br /&gt;A) You can not create exectuable file by default using umask, it is thought to be a security issue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-9120702781412300779?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/9120702781412300779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=9120702781412300779' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/9120702781412300779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/9120702781412300779'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/04/new-file-and-directory-permissions-on.html' title='New file and directory permissions on unix'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-7007464223996213916</id><published>2009-04-23T16:18:00.004+01:00</published><updated>2009-04-29T17:16:23.900+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Perl Variables</title><content type='html'>&lt;span style="font-family:courier new;"&gt;#Perl comments use #hash&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Some general perl variables:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;pre class="prettyprint"&gt;$scalar = 1 ; #String, integers, floats&lt;br /&gt;print $scalar ;&lt;br /&gt;&lt;br /&gt;@array  = ("apple", "pair");&lt;br /&gt;print $array[0];&lt;br /&gt;print $array[1];&lt;br /&gt;&lt;br /&gt;%hash = ();&lt;br /&gt;$hash{"apple"} = 100;&lt;br /&gt;$hash{"pair"}  = 200;&lt;br /&gt;print "Cost is $hash{"apple"} \n";&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-7007464223996213916?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/7007464223996213916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=7007464223996213916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7007464223996213916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/7007464223996213916'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/04/perl-variables.html' title='Perl Variables'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-5368789714729134093</id><published>2009-04-23T16:16:00.001+01:00</published><updated>2009-04-23T16:18:20.402+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>Perl shebang</title><content type='html'>The first (shebang) line of perl scripts should be:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#!/usr/bin/perl -w&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-5368789714729134093?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/5368789714729134093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=5368789714729134093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5368789714729134093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/5368789714729134093'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/04/perl-shebang.html' title='Perl shebang'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-2984613927235388288</id><published>2009-04-15T16:18:00.007+01:00</published><updated>2009-04-29T17:18:36.355+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><title type='text'>Ruby decimal / frational to binary conversion</title><content type='html'>The following function can be used to convert decimal (fractional) numbers to binary format:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;pre class="prettyprint"&gt;def dec2bin(number, int_bits, frac_bits, decimal_mark)&lt;br /&gt;  negative = false&lt;br /&gt;  if (number &lt; 0)&lt;br /&gt;   negative = true&lt;br /&gt;   number = -number&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  ## Create Integer only number&lt;br /&gt;  number_int = Integer(number);&lt;br /&gt;&lt;br /&gt;  ## Create Fractional only number&lt;br /&gt;  number_frac = number - number_int;&lt;br /&gt;&lt;br /&gt;  ## Create Integer Binary String&lt;br /&gt;  ret_bin_int = "";&lt;br /&gt;&lt;br /&gt;  ## Create Fractional Binary String&lt;br /&gt;  ret_bin_frac = "";&lt;br /&gt;&lt;br /&gt;   ##Integer&lt;br /&gt;   ret_bin_int = number_int.to_s(2) ;&lt;br /&gt;   padding_bits = int_bits - ret_bin_int.length ;&lt;br /&gt;   begin&lt;br /&gt;      ret_bin_int =  Array.new(padding_bits, "0").join + ret_bin_int ;&lt;br /&gt;   rescue&lt;br /&gt;      puts "ERROR not enough integer bits to represent #{number}";&lt;br /&gt;      return -1;&lt;br /&gt;   end&lt;br /&gt;&lt;br /&gt;   ## Fractional&lt;br /&gt;   ret_bin_frac = ""&lt;br /&gt;   fractional   = 0&lt;br /&gt;   if (frac_bits &gt; 0)&lt;br /&gt;      ret_bin_frac = Integer(number_frac * 2**frac_bits).to_s(2);&lt;br /&gt;      padding_bits = frac_bits - ret_bin_frac.length ;&lt;br /&gt;      ret_bin_frac =  Array.new(padding_bits, "0").join + ret_bin_frac ;&lt;br /&gt;      fractional = ret_bin_frac.to_i(2).to_f / (2**frac_bits)&lt;br /&gt;   end&lt;br /&gt;   &lt;br /&gt;   if (negative == true)&lt;br /&gt;      number = (ret_bin_int + ret_bin_frac).to_i(2)&lt;br /&gt;      #Perforrm this binary operation number = -number + 1&lt;br /&gt;      #In an integer number space&lt;br /&gt;      number = 2**(int_bits+frac_bits) - number&lt;br /&gt;      ret_bin_int  = number.to_s(2)[0,int_bits]&lt;br /&gt;      ret_bin_frac = number.to_s(2)[int_bits, frac_bits]&lt;br /&gt;   end&lt;br /&gt;   &lt;br /&gt;   binary = ret_bin_int +  decimal_mark + ret_bin_frac;&lt;br /&gt;  &lt;br /&gt;  ## ret_bin Add decimal marker&lt;br /&gt;   return {&lt;br /&gt;      :binary =&gt; binary,&lt;br /&gt;      :int    =&gt; number_int,&lt;br /&gt;      :frac   =&gt; fractional,&lt;br /&gt;      :real   =&gt; (fractional+number_int)&lt;br /&gt;   }&lt;br /&gt;end&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Example using the function:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;pre class="prettyprint"&gt;intBits = 6&lt;br /&gt;fracBits =4&lt;br /&gt;converted = dec2bin(10.5, intBits, fracBits, "_")&lt;br /&gt;puts converted[:binary]&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;NOTE:&lt;br /&gt;Since first post I have fixed a fracbits=0 bug and now works with negative numbers (converting to a twos complement format)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-2984613927235388288?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/2984613927235388288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=2984613927235388288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2984613927235388288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/2984613927235388288'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/04/ruby-decimal-frational-to-binary.html' title='Ruby decimal / frational to binary conversion'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-3600372734104517546</id><published>2009-04-13T15:14:00.002+01:00</published><updated>2009-04-13T15:17:32.988+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>module load fail when scripted</title><content type='html'>The following works on the command line&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;[1]$ module load something&lt;/span&gt;&lt;br /&gt; but fails with [2] when used in make, bash, etc script files:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;[2]&gt; module: command not found&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is because the module enviroment has not been loaded, as it is for a normal user session.&lt;br /&gt;Try using some thing similar to this before your module load call:&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; . /usr/share/modules/init/bash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; module load something&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-3600372734104517546?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/3600372734104517546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=3600372734104517546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3600372734104517546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3600372734104517546'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/04/module-load-fail-when-scripted.html' title='module load fail when scripted'/><author><name>A Person</name><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></entry><entry><id>tag:blogger.com,1999:blog-256954733201794633.post-3488310967474188437</id><published>2009-04-10T10:52:00.003+01:00</published><updated>2009-04-10T10:57:05.250+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='SciTE'/><title type='text'>Scite sensible open action</title><content type='html'>I use the text editor &lt;a href="http://www.scintilla.org/SciTE.html"&gt;scite&lt;/a&gt; which has a &lt;span style="font-family: courier new;"&gt;SciTEGlobal.properties&lt;/span&gt; file which defines the behaviour. I just found out about this option:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;open.dialog.in.file.directory=1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When pressing open it forces Scite to start the open file dialog box in the folder of the currently active file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/256954733201794633-3488310967474188437?l=munkymorgy.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://munkymorgy.blogspot.com/feeds/3488310967474188437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=256954733201794633&amp;postID=3488310967474188437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3488310967474188437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/256954733201794633/posts/default/3488310967474188437'/><link rel='alternate' type='text/html' href='http://munkymorgy.blogspot.com/2009/04/scite-sensible-open-action.html' title='Scite sensible open action'/><author><name>A Person</name><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></entry></feed>
