<?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-3554775196719271875</id><updated>2012-01-11T17:44:49.432-08:00</updated><category term='ruby'/><category term='scRUBYt'/><category term='teamcity'/><category term='postgresql'/><category term='tfs'/><category term='javascript'/><category term='books'/><category term='iframe'/><category term='nant'/><category term='real estate'/><category term='birds'/><category term='redcar'/><category term='IDE'/><category term='appcelerator'/><category term='mssql'/><category term='firefox'/><category term='nfl'/><category term='Australia'/><category term='csharp'/><category term='css'/><category term='unit test'/><category term='CQRS'/><category term='powershell'/><category term='python'/><category term='rails'/><category term='virtual'/><category term='WTF'/><category term='cycling'/><category term='code'/><category term='xhtml'/><category term='bike ride'/><category term='mongoDB'/><category term='rhino.mocks'/><category term='rake'/><category term='valid html'/><category term='mstest'/><category term='music'/><category term='web2py'/><category term='rvm'/><category term='spain'/><category term='computers'/><category term='misc'/><category term='visual studio'/><category term='mvc'/><category term='regex'/><category term='jquery'/><category term='rspec'/><category term='webmaster tools'/><category term='metal'/><category term='sql'/><category term='arizona'/><category term='IE8'/><category term='coding'/><category term='razor'/><category term='tour of california'/><category term='heroku'/><category term='ubuntu'/><category term='pomodoro'/><category term='rjs'/><category term='tennis'/><category term='sitemap'/><title type='text'>House 9</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://house9.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default?start-index=101&amp;max-results=100'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>178</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-2630645979358769262</id><published>2011-12-30T14:44:00.000-08:00</published><updated>2011-12-30T14:44:24.829-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>Inspect all jQuery events on an element</title><content type='html'>Very useful&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: whitesmoke; color: #333333; font-family: monospace, verdana; font-size: 11px; line-height: 16px;"&gt;$("SELECTOR").data("events");&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: whitesmoke; color: #333333; font-family: monospace, verdana; font-size: 11px; line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;All bound event handlers are stored in the elements data context under the events key&lt;br /&gt;This can be very useful when&amp;nbsp;debugging&amp;nbsp;with tools like FireBug&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: whitesmoke; color: #333333; font-family: monospace, verdana; font-size: 11px; line-height: 16px;"&gt;$("form").submit(function () { alert('submit form'); });&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: whitesmoke; color: #333333; font-family: monospace, verdana; font-size: 11px; line-height: 16px;"&gt;$("form").data("events");&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: whitesmoke; color: #333333; font-family: monospace, verdana; font-size: 11px; line-height: 16px;"&gt;&amp;gt; Object { submit=[1] }&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: whitesmoke; color: #333333; font-family: monospace, verdana; font-size: 11px; line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Resources&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.bennadel.com/blog/1727-Viewing-jQuery-DOM-Event-Bindings-With-FireBug.htm"&gt;http://www.bennadel.com/blog/1727-Viewing-jQuery-DOM-Event-Bindings-With-FireBug.htm&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-2630645979358769262?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/2630645979358769262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=2630645979358769262' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2630645979358769262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2630645979358769262'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/12/inspect-all-jquery-events-on-element.html' title='Inspect all jQuery events on an element'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-7280468423858542178</id><published>2011-12-02T07:07:00.000-08:00</published><updated>2011-12-02T07:07:56.279-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Get table and column information in postgres</title><content type='html'>Use the information_schema catalog - &lt;a href="http://www.postgresql.org/docs/9.1/static/information-schema.html"&gt;http://www.postgresql.org/docs/9.1/static/information-schema.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Get table and columns from the public schema&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1423507.js?file=select_table_and_columns_from_postgres.sql"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&lt;br /&gt;select &lt;br /&gt;  tables.table_name, &lt;br /&gt;  columns.column_name&lt;br /&gt;&lt;br /&gt;from information_schema.tables&lt;br /&gt;inner join information_schema.columns &lt;br /&gt;on information_schema.columns.table_name = information_schema.tables.table_name&lt;br /&gt;&lt;br /&gt;where tables.table_schema = 'public'&lt;br /&gt;and tables.table_type = 'BASE TABLE'&lt;br /&gt;&lt;br /&gt;order by tables.table_name, columns.column_name;&lt;br /&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;br /&gt;This can be useful, maybe you want to auto generate some text that creates foreign keys based on a naming convention - for instance let's say we have a ruby/rails method called make_fk_unless_exists&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1423533.js?file=create_fk_script_postgres.sql"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&lt;br /&gt;select &lt;br /&gt;  tables.table_name, &lt;br /&gt;  columns.column_name,&lt;br /&gt;  ('make_fk_unless_exists :' || tables.table_name || ', :' || columns.column_name || ', :' || REPLACE(columns.column_name, '_id', 's')) as code&lt;br /&gt; &lt;br /&gt;from information_schema.tables&lt;br /&gt;inner join information_schema.columns &lt;br /&gt;on information_schema.columns.table_name = information_schema.tables.table_name&lt;br /&gt;&lt;br /&gt;where tables.table_schema = 'public'&lt;br /&gt;and columns.column_name LIKE '%id'&lt;br /&gt;and columns.column_name &lt;&gt; 'id'&lt;br /&gt;and tables.table_type = 'BASE TABLE'&lt;br /&gt;&lt;br /&gt;order by tables.table_name, columns.column_name;&lt;br /&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;br /&gt;The 'code' column would render something like&lt;br /&gt;&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;i&gt;make_fk_unless_exists :projects, :milestone_id, :milestones&lt;/i&gt;&lt;br /&gt;&lt;i&gt;make_fk_unless_exists :tasks, :project_id, :projects&lt;/i&gt;&lt;br /&gt;&lt;i&gt;...&lt;/i&gt;&lt;br /&gt;&lt;/blockquote&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/3554775196719271875-7280468423858542178?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/7280468423858542178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=7280468423858542178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7280468423858542178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7280468423858542178'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/12/get-table-and-column-information-in.html' title='Get table and column information in postgres'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-4455579773107897789</id><published>2011-11-12T15:38:00.000-08:00</published><updated>2011-11-12T15:38:08.421-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Sample Routes and Links with Rails 3 in the console</title><content type='html'>The content for this post is all from a gist, hopefully someone finds it useful&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1361290.js?file=routes_link_to_in_rails_console.rb"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&lt;br /&gt;Your reader does not support script, view the gist here&lt;br /&gt;https://gist.github.com/1361290&lt;br /&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Resources&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/2778074/recognize-routes-in-rails-console-session"&gt;http://stackoverflow.com/questions/2778074/recognize-routes-in-rails-console-session&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-4455579773107897789?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/4455579773107897789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=4455579773107897789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4455579773107897789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4455579773107897789'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/11/sample-routes-and-links-with-rails-3-in.html' title='Sample Routes and Links with Rails 3 in the console'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-2368052736660190949</id><published>2011-11-09T13:48:00.000-08:00</published><updated>2011-11-09T13:48:22.066-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Postgres: get the number of days in an interval</title><content type='html'>&lt;blockquote&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;-- seconds / 60 = minutes / 60 = hours / 24 = days &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;select&lt;/span&gt; (((EXTRACT(EPOCH &lt;span class="Apple-style-span" style="color: blue;"&gt;FROM&lt;/span&gt; INTERVAL '&lt;span class="Apple-style-span" style="color: #38761d;"&gt;2 years&lt;/span&gt;') / 60) / 60) / 24)::integer &lt;span class="Apple-style-span" style="color: blue;"&gt;as&lt;/span&gt; number_of_days&amp;nbsp;&lt;/blockquote&gt;&lt;br /&gt;good resource -&amp;nbsp;&lt;a href="http://stackoverflow.com/questions/952493/how-do-i-convert-an-interval-into-a-number-of-hours-with-postgres"&gt;http://stackoverflow.com/questions/952493/how-do-i-convert-an-interval-into-a-number-of-hours-with-postgres&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-2368052736660190949?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/2368052736660190949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=2368052736660190949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2368052736660190949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2368052736660190949'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/11/postgres-get-number-of-days-in-interval.html' title='Postgres: get the number of days in an interval'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-845722506074158994</id><published>2011-10-15T09:07:00.000-07:00</published><updated>2011-10-15T09:11:58.701-07: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'>Generating barcodes with ruby and rails</title><content type='html'>Recently I had to convert some functionality from an old MS Access system to a Ruby on Rails application.&amp;nbsp;The Access system generated a report that included a barcode; they were using a barcode font installed on the&amp;nbsp;machine running access. I figured generating the barcode server side in the web app was going to be much nicer than installing barcode fonts on the client browsers. And since this is Ruby, I figured...&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;There must be a gem for that&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;Sure enough, the barby gem. It allows you to output your barcode as png, gif, svg, pdf, etc...&lt;br /&gt;&lt;br /&gt;In my case I generated png barcodes and included image references to those in my view files.&lt;br /&gt;&lt;br /&gt;Sample code&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1289751.js?file=using_barby_to_generate_barcodes_with_ruby.rb"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&lt;br /&gt;# Gemfile, run bundle install after adding&lt;br /&gt;gem 'barby'&lt;br /&gt;gem 'chunky_png'&lt;br /&gt;&lt;br /&gt;# some code to generate the png file using 3 of 9 barcode style&lt;br /&gt;require 'barby'&lt;br /&gt;require 'barby/barcode/code_39'&lt;br /&gt;require 'barby/outputter/png_outputter'&lt;br /&gt;&lt;br /&gt;barcode_value = "099999333"&lt;br /&gt;full_path = "/somewhere/barcode_#{barcode_value}.png"&lt;br /&gt;barcode = Barby::Code39.new(barcode_value)&lt;br /&gt;File.open(full_path, 'w') { |f| f.write barcode.to_png(:margin =&gt; 3, :xdim =&gt; 2, :height =&gt; 55) }&lt;br /&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;br /&gt;There is no pixel setting, it uses some other type of unit to determine size; using the xdim, margin and height options&amp;nbsp;you can tweak the size, but I found that it was not very precise - &lt;i&gt;for my use case it was good enough.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The generated barcode does not include the value, it is just the image which can be scanned using a&amp;nbsp;barcode scanner, but it would be nice if there was an option to include the value below that. This is somewhat trivial to add in your view using html.&lt;br /&gt;&lt;br /&gt;Overall I was really pleased with this gem!&lt;br /&gt;&lt;br /&gt;Resources&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://toretore.eu/barby/"&gt;http://toretore.eu/barby/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/toretore/barby"&gt;https://github.com/toretore/barby&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://barby.rubyforge.org/rdoc/"&gt;http://barby.rubyforge.org/rdoc/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://groups.google.com/group/ruby-barby"&gt;http://groups.google.com/group/ruby-barby&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-845722506074158994?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/845722506074158994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=845722506074158994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/845722506074158994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/845722506074158994'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/10/generating-barcodes-with-ruby-and-rails.html' title='Generating barcodes with ruby and rails'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-6835973415934858600</id><published>2011-09-18T17:04:00.000-07:00</published><updated>2011-09-18T17:04:20.368-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nfl'/><title type='text'>NFL 2011 Sunday Night HD Stream for Free from NBC</title><content type='html'>Check it out here -&amp;nbsp;&lt;a href="http://snfallaccess.nbcsports.com/"&gt;http://snfallaccess.nbcsports.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-TqEhNoXwih0/TnaGtHl7WTI/AAAAAAAAC3g/sHR8BW5_QwM/s1600/sunday-night-nfl.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="505" src="http://2.bp.blogspot.com/-TqEhNoXwih0/TnaGtHl7WTI/AAAAAAAAC3g/sHR8BW5_QwM/s640/sunday-night-nfl.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-6835973415934858600?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/6835973415934858600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=6835973415934858600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6835973415934858600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6835973415934858600'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/09/nfl-2011-sunday-night-hd-stream-for.html' title='NFL 2011 Sunday Night HD Stream for Free from NBC'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-TqEhNoXwih0/TnaGtHl7WTI/AAAAAAAAC3g/sHR8BW5_QwM/s72-c/sunday-night-nfl.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-5280804349024745761</id><published>2011-08-22T09:35:00.000-07:00</published><updated>2011-08-22T09:35:13.543-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>CoffeeScript with Rails 2.3 and Rails 3.0</title><content type='html'>I just uploaded a sample application that uses guard, coffee-script and a rake task to enable use of coffee-script with a rails 2.3 or 3.0 application. Check out the README file on github for details.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://github.com/house9/with_coffee"&gt;https://github.com/house9/with_coffee&lt;/a&gt;&lt;br /&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/3554775196719271875-5280804349024745761?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/5280804349024745761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=5280804349024745761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5280804349024745761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5280804349024745761'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/08/coffeescript-with-rails-23-and-rails-30.html' title='CoffeeScript with Rails 2.3 and Rails 3.0'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-7073516142966137168</id><published>2011-07-08T13:17:00.000-07:00</published><updated>2011-07-08T13:17:45.411-07:00</updated><title type='text'>Grow vegetables go to jail?</title><content type='html'>Oak Park resident Julie Bass now faces serious charges for setting up a vegetable garden in her front yard.&lt;br /&gt;&lt;br /&gt;Help her out sign the petition here: &lt;a href="http://www.thepetitionsite.com/1/oak-park-hates-veggies/"&gt;http://www.thepetitionsite.com/1/oak-park-hates-veggies/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We are requesting that the City of Oak Park, MI cease its prosecution against its resident Julie Bass for the supposed crime of growing vegetables in her front yard. The bylaw they are pursuing criminal charges under is poorly written and does not explicitly state that you cannot grow vegetables. The prosecutor representing the city wants to take this case to trial, and the associated charge carries a maximum sentence of 93 days in jail. It would be a travesty for this mother of six to be sentenced to 93 days in jail for the simple act of growing tomatoes in her front yard.&lt;br /&gt;&lt;br /&gt;Details about the case can be found at &lt;a href="http://oakparkhatesveggies.wordpress.com/"&gt;http://oakparkhatesveggies.wordpress.com/&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-7073516142966137168?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/7073516142966137168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=7073516142966137168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7073516142966137168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7073516142966137168'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/07/grow-vegetables-go-to-jail.html' title='Grow vegetables go to jail?'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-3709199811947331459</id><published>2011-06-24T19:32:00.000-07:00</published><updated>2011-08-01T22:15:43.577-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>rails 3.1 and ruby-1.9.2-p180 - rake aborted! stack level too deep</title><content type='html'>Ran into the following error when running rake with a rails 3.1 (rc4) app on&amp;nbsp;ruby-1.9.2-p180 (RVM)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;rake aborted! stack level too deep&lt;/span&gt;&lt;/blockquote&gt;Full error stack&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: #ebebeb;"&gt;&lt;span class="Apple-style-span" style="font-size: 10px;"&gt;$&amp;gt; rake --tasks&lt;br /&gt;&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/version.rb:4: warning: already initialized constant MAJOR&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/version.rb:5: warning: already initialized constant MINOR&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/version.rb:6: warning: already initialized constant BUILD&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/version.rb:3: warning: already initialized constant NUMBERS&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/version.rb:9: warning: already initialized constant VERSION&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake.rb:26: warning: already initialized constant RAKEVERSION&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/early_time.rb:17: warning: already initialized constant EARLY&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/alt_system.rb:32: warning: already initialized constant WINDOWS&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:28: warning: already initialized constant DEFAULT_RAKEFILES&lt;br /&gt;WARNING: Possible conflict with Rake extension: String#ext already exists&lt;br /&gt;WARNING: Possible conflict with Rake extension: String#pathmap already exists&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/task_arguments.rb:73: warning: already initialized constant EMPTY_TASK_ARGS&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/invocation_chain.rb:49: warning: already initialized constant EMPTY&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/file_utils.rb:10: warning: already initialized constant RUBY&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/file_utils.rb:84: warning: already initialized constant LN_SUPPORTED&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/dsl_definition.rb:143: warning: already initialized constant Commands&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/file_list.rb:44: warning: already initialized constant ARRAY_METHODS&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/file_list.rb:47: warning: already initialized constant MUST_DEFINE&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/file_list.rb:51: warning: already initialized constant MUST_NOT_DEFINE&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/file_list.rb:55: warning: already initialized constant SPECIAL_RETURN&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/file_list.rb:61: warning: already initialized constant DELEGATING_METHODS&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/file_list.rb:364: warning: already initialized constant DEFAULT_IGNORE_PATTERNS&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/file_list.rb:370: warning: already initialized constant DEFAULT_IGNORE_PROCS&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake.rb:64: warning: already initialized constant FileList&lt;br /&gt;/Users/HOME_DIR/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake.rb:65: warning: already initialized constant RakeFileUtils&lt;br /&gt;rake aborted!&lt;br /&gt;stack level too deep&lt;br /&gt;&lt;br /&gt;(See full trace by running task with --trace)&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Steps to replicate, from the command line&lt;br /&gt;&lt;ul&gt;&lt;li&gt;rails new sample_app&lt;/li&gt;&lt;li&gt;cd sample_app&lt;/li&gt;&lt;li&gt;rake --tasks&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The solution, prefix calls to rake with bundle exec&lt;/div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;bundle exec rake --tasks&lt;/span&gt;&lt;/blockquote&gt;Resources&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/"&gt;http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/RailsApps/railsapps.github.com/wiki/installing-rails-3-1"&gt;https://github.com/RailsApps/railsapps.github.com/wiki/installing-rails-3-1&lt;/a&gt; &amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-3709199811947331459?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/3709199811947331459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=3709199811947331459' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3709199811947331459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3709199811947331459'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/06/rails-31-and-ruby-192-p180-rake-aborted.html' title='rails 3.1 and ruby-1.9.2-p180 - rake aborted! stack level too deep'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-748595671499860928</id><published>2011-06-16T14:39:00.000-07:00</published><updated>2011-08-02T17:17:55.391-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>rails 3.1 asset gem</title><content type='html'>Package up assets into a gem for use in rails 3.1 applications. Example uses javascript files, but the same should work for images and css.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;I recommend you click the HD link on the player and view it on &lt;a href="http://vimeo.com/25206879"&gt;Vimeo&lt;/a&gt; in full screen mode, this embed version is not so crisp.&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;iframe frameborder="0" height="450" src="http://player.vimeo.com/video/25206879?byline=0&amp;amp;portrait=0" width="800"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;Resources&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://railscasts.com/episodes/245-new-gem-with-bundler"&gt;http://railscasts.com/episodes/245-new-gem-with-bundler&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://edgeapi.rubyonrails.org/classes/Rails/Engine.html"&gt;http://edgeapi.rubyonrails.org/classes/Rails/Engine.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://ryanbigg.com/2011/06/a-potential-use-for-asset-pipelining/"&gt;http://ryanbigg.com/2011/06/a-potential-use-for-asset-pipelining/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-748595671499860928?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/748595671499860928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=748595671499860928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/748595671499860928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/748595671499860928'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/06/rails-31-asset-gem.html' title='rails 3.1 asset gem'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-8841550849181258020</id><published>2011-06-01T18:20:00.000-07:00</published><updated>2011-06-01T18:20:54.347-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nant'/><title type='text'>robocopy fix for exit code of 2</title><content type='html'>Sometimes you want to use robocopy from nant, a sql job or another build tool, robocopy will return 2 during a successful run, this gets&amp;nbsp;interpreted&amp;nbsp;as an error, a google search on the issue returned this article&amp;nbsp;&lt;a href="http://weblogs.sqlteam.com/robv/archive/2010/02/17/61106.aspx"&gt;Fixing Robocopy for SQL Server Jobs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Robocopy is now installed by default on Windows7 and Windows Server 2008&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc733145(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/cc733145(WS.10).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;here is robocopy_fix.bat based on the code in the "Fixing Robocopy for SQL Server Jobs" article&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/1003646.js?file=robocopy_fix.bat"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&lt;br /&gt;rem http://weblogs.sqlteam.com/robv/archive/2010/02/17/61106.aspx&lt;br /&gt;robocopy %*&lt;br /&gt;rem suppress successful robocopy exit statuses, only report genuine errors (bitmask 16 and 8 settings)&lt;br /&gt;set/A errlev="%ERRORLEVEL% &amp; 24"&lt;br /&gt;rem exit batch file with errorlevel so SQL job can succeed or fail appropriately&lt;br /&gt;exit/B %errlev%&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;rem USAGE: just like regular robocopy&lt;br /&gt;&lt;br /&gt;robocopy_fix.bat C:\temp\s C:\temp\d /MIR&lt;br /&gt;&lt;/noscript&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-8841550849181258020?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/8841550849181258020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=8841550849181258020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/8841550849181258020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/8841550849181258020'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/06/robocopy-fix-for-exit-code-of-2.html' title='robocopy fix for exit code of 2'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-3090254748462111998</id><published>2011-05-29T14:47:00.000-07:00</published><updated>2011-05-29T14:51:00.476-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>rails 3.1 javascript execution</title><content type='html'>Looking at a few different ways to execute javascript in rails 3.1. By default all javascript is compiled into one file and embedded in anonymous functions which all execute on each page.&lt;br /&gt;&lt;br /&gt;We often want to be selective in how our javascript executes, based on controller and actions. We look at 3 different approaches&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;use selectors based on form id&lt;/li&gt;&lt;li&gt;use selectors based on css classes on the body&lt;/li&gt;&lt;li&gt;namespaced javascript objects&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;if you know of any other approaches I would love to hear those as well&lt;br /&gt;&lt;br /&gt;I recommend you click the HD link on the player and view it on &lt;a href="http://vimeo.com/24391448"&gt;Vimeo&lt;/a&gt; in full screen mode, this embed version is not so crisp.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;iframe frameborder="0" height="450" src="http://player.vimeo.com/video/24391448?byline=0&amp;amp;portrait=0" width="800"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Resources&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://railscasts.com/episodes/265-rails-3-1-overview"&gt;http://railscasts.com/episodes/265-rails-3-1-overview&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="http://jashkenas.github.com/coffee-script/"&gt;http://jashkenas.github.com/coffee-script/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://coffeescriptcookbook.com/"&gt;http://coffeescriptcookbook.com/&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/6133235/rails-3-1-rc1-javascript-and-asset-pipeline"&gt;http://stackoverflow.com/questions/6133235/rails-3-1-rc1-javascript-and-asset-pipeline&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://coffeescript-book.com/"&gt;http://coffeescript-book.com/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-3090254748462111998?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/3090254748462111998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=3090254748462111998' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3090254748462111998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3090254748462111998'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/05/rails-31-javascript-execution.html' title='rails 3.1 javascript execution'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-8117864957245095047</id><published>2011-05-26T19:39:00.000-07:00</published><updated>2011-05-26T19:46:16.452-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>rails 3.1 asset pipeline</title><content type='html'>a quick look at app, lib, vendor and gem assets for rails 3.1 rc1&lt;br /&gt;&lt;br /&gt;It is a pretty rough screen cast, but hopefully has some useful information for you&lt;br /&gt;&lt;br /&gt;I recommend you click the HD link on the player and view it on &lt;a href="http://vimeo.com/24296483"&gt;Vimeo&lt;/a&gt;&amp;nbsp;in full screen mode, this embed version is not so crisp.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;iframe frameborder="0" height="450" src="http://player.vimeo.com/video/24296483?byline=0&amp;amp;portrait=0" width="800"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;Resources:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://weblog.rubyonrails.org/2011/5/22/rails-3-1-release-candidate"&gt;http://weblog.rubyonrails.org/2011/5/22/rails-3-1-release-candidate&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=cGdCI2HhfAU"&gt;http://www.youtube.com/watch?v=cGdCI2HhfAU&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://railscasts.com/episodes/265-rails-3-1-overview"&gt;http://railscasts.com/episodes/265-rails-3-1-overview&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/rails/jquery-rails"&gt;https://github.com/rails/jquery-rails&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/rails/rails/issues/1223"&gt;https://github.com/rails/rails/issues/1223&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-8117864957245095047?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/8117864957245095047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=8117864957245095047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/8117864957245095047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/8117864957245095047'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/05/rails-31-asset-pipeline.html' title='rails 3.1 asset pipeline'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-6785403060452967127</id><published>2011-05-25T17:00:00.000-07:00</published><updated>2011-05-25T17:00:35.334-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tennis'/><title type='text'>Stream Tennis - 2011 Roland Garros</title><content type='html'>if your ISP supports &lt;a href="http://espn.go.com/espn3/index/_/sport/tennis"&gt;ESPN3&lt;/a&gt; they have live and replay streams for 2011 &lt;a href="http://www.rolandgarros.com/en_FR/index.html"&gt;Roland Garros&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-nx63GPyk2vA/Td2XsnjWzMI/AAAAAAAAC2Q/Mc9m5DngLbo/s1600/espn3-paris.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="476" src="http://3.bp.blogspot.com/-nx63GPyk2vA/Td2XsnjWzMI/AAAAAAAAC2Q/Mc9m5DngLbo/s640/espn3-paris.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-6785403060452967127?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/6785403060452967127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=6785403060452967127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6785403060452967127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6785403060452967127'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/05/stream-tennis-2011-roland-garros.html' title='Stream Tennis - 2011 Roland Garros'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-nx63GPyk2vA/Td2XsnjWzMI/AAAAAAAAC2Q/Mc9m5DngLbo/s72-c/espn3-paris.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-2873310137596959958</id><published>2011-05-08T20:00:00.000-07:00</published><updated>2011-05-08T20:00:43.484-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WTF'/><title type='text'>AT&amp;T site has some serious issues</title><content type='html'>I went to check on the price of DSL, I've been a long time Comcast customer and getting tired of the high cost. So I went to check it out on AT&amp;amp;T - all I can say is WTF?&lt;br /&gt;&lt;br /&gt;Select 'DSL without phone', but then my choices are everything except what I am looking for?&lt;br /&gt;I think they need to go back and do some more QA&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ZymXl9H1l-E/TcdYStjrkEI/AAAAAAAAC2I/QcdIFalooBs/s1600/att-broke-01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="256" src="http://3.bp.blogspot.com/-ZymXl9H1l-E/TcdYStjrkEI/AAAAAAAAC2I/QcdIFalooBs/s640/att-broke-01.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;Now I get to choose my phone service - WTF: I selected 'without phone service' for a reason&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ADbiWwP4HuY/TcdYS4AqcHI/AAAAAAAAC2M/OHKfX6PSLg4/s1600/att-broke-02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-ADbiWwP4HuY/TcdYS4AqcHI/AAAAAAAAC2M/OHKfX6PSLg4/s1600/att-broke-02.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-2873310137596959958?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/2873310137596959958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=2873310137596959958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2873310137596959958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2873310137596959958'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/05/at-site-has-some-serious-issues.html' title='AT&amp;T site has some serious issues'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ZymXl9H1l-E/TcdYStjrkEI/AAAAAAAAC2I/QcdIFalooBs/s72-c/att-broke-01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-2478377682937075439</id><published>2011-05-03T16:48:00.000-07:00</published><updated>2011-05-04T10:10:21.670-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mongoDB'/><title type='text'>Simple.Data and MongoDB</title><content type='html'>Get really dynamic with Simple.Data and MongoDB&lt;br /&gt;&lt;br /&gt;took me awhile to figure out the proper way to establish a connection with Simple.Data.MongoDB&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/954461.js?file=Simple.Data.MongoDB.openMongo.cs"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&lt;br /&gt;GIST: https://gist.github.com/954461&lt;br /&gt;using Simple.Data;&lt;br /&gt;using Simple.Data.MongoDB;&lt;br /&gt;&lt;br /&gt;// connect&lt;br /&gt;dynamic db = Database.Opener.OpenMongo("mongodb://localhost:27017/myDB");&lt;br /&gt;&lt;br /&gt;// insert&lt;br /&gt;dynamic user = new ExpandoObject();&lt;br /&gt;user.FirstName = "Joe";&lt;br /&gt;user.LastName = "Smith";&lt;br /&gt;user.Email = "jsmith@test.com";&lt;br /&gt;&lt;br /&gt;db.Users.Insert(user);&lt;br /&gt;&lt;br /&gt;// find&lt;br /&gt;dynamic existingUser = db.Users.FindByEmail("jsmith@test.com");&lt;br /&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;br /&gt;Resources&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;MongoDB &lt;a href="http://www.mongodb.org/downloads"&gt;download&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/markrendle/Simple.Data/wiki"&gt;Simple.Data&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://github.com/craiggwilson/Simple.Data.MongoDB"&gt;Simple.Data.MongoDB&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mongodb.org/display/DOCS/CSharp+Language+Center"&gt;Mongo and C#&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;You can install all of the dlls using &lt;a href="http://www.nuget.org"&gt;Nuget&lt;/a&gt;, search for Simple.Data.MongoDB and install that package it will bring in the rest&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Some of the errors I received on my journey&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From Simple.Data&lt;/div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;Message=No valid exports were found that match the constraint '((exportDefinition.ContractName == "Ado") AndAlso (exportDefinition.Metadata.ContainsKey("ExportTypeIdentity") AndAlso "Simple.Data.Adapter".Equals(exportDefinition.Metadata.get_Item("ExportTypeIdentity"))))', invalid exports may have been rejected.&lt;/span&gt;&lt;/blockquote&gt;And from mongo driver when my connection string was not in the correct format, I was using the wrong port&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;Message=No connection could be made because the target machine actively refused it 127.0.0.1:&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-2478377682937075439?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/2478377682937075439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=2478377682937075439' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2478377682937075439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2478377682937075439'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/05/simpledata-and-mongodb.html' title='Simple.Data and MongoDB'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-4277704319254774138</id><published>2011-04-22T08:30:00.000-07:00</published><updated>2011-05-26T18:57:14.681-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='mvc'/><title type='text'>Fixing asp.net MVC AuthorizeAttribute</title><content type='html'>With very little code we can fix asp.net MVC AuthorizeAttribute&lt;br /&gt;What problems does it have? &lt;strong&gt;Too much redirection&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;When making ajax calls a HTTP 401 (Unauthorized) would be better than a redirection&lt;/li&gt;&lt;li&gt;If I am already logged in but access a secure resource (controller / action) redirecting to the login page is far from ideal, an access denied view makes more sense&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;When is the built in redirection appropriate? When making standard HTTP request and the user is not authenticated.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;it turns out it is&amp;nbsp;relatively&amp;nbsp;easy to fix these issues&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;inherit AuthorizeAttribute&lt;/li&gt;&lt;li&gt;override&amp;nbsp;HandleUnauthorizedRequest&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;#1: Ajax request should not return redirection / html response&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;if the user cannot authorize an action and the request is made via ajax we don't want 200 or 302 response codes&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-1vMk4_AhaKg/TbGZafGuVHI/AAAAAAAAC10/IPvdbbfA-AQ/s1600/200.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-1vMk4_AhaKg/TbGZafGuVHI/AAAAAAAAC10/IPvdbbfA-AQ/s1600/200.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;we do want&amp;nbsp;401 Unauthorized, but we have to settle for a 403&amp;nbsp;Forbidden&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-X05Vh4FqOcA/TbGZkKkHk5I/AAAAAAAAC14/S_Efpn5ZTFU/s1600/403.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-X05Vh4FqOcA/TbGZkKkHk5I/AAAAAAAAC14/S_Efpn5ZTFU/s1600/403.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The code to fix this&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-eqaE-lHvRKo/TbGZ8ktgViI/AAAAAAAAC18/61UvrRd6iSc/s1600/cod-403.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-eqaE-lHvRKo/TbGZ8ktgViI/AAAAAAAAC18/61UvrRd6iSc/s1600/cod-403.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;#2: Authenticated users should not redirect to the login page, they should get an Access Denied page&lt;/div&gt;&lt;div&gt;The code to fix this&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Rw2pqIKL5_U/TbGahZTmGLI/AAAAAAAAC2A/TnRnnwCVQ_o/s1600/access-denied-redirect.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-Rw2pqIKL5_U/TbGahZTmGLI/AAAAAAAAC2A/TnRnnwCVQ_o/s1600/access-denied-redirect.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Turns out very little code is needed - but seems like some of this should just be built in? Using the 401 response won't work because the asp mvc framework must be picking that up later on and forcing the redirection to the login page, the 403 is not ideal but it is effective.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The code for our class - AuthorizeFor&lt;/div&gt;&lt;div&gt;&lt;script src="https://gist.github.com/936865.js?file=AuthorizeForAttribute.cs"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; // view full gist at https://gist.github.com/936865.js?file=AuthorizeForAttribute.cs&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; public class AuthorizeForAttribute : AuthorizeAttribute&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; {&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; {&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; if(filterContext.HttpContext.Request.IsAjaxRequest())&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; {&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; // filterContext.Result = new HttpStatusCodeResult(401, "Unauthorized");&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; filterContext.Result = new HttpStatusCodeResult(403, "Forbidden");&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; }&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; else if(filterContext.HttpContext.User.Identity.IsAuthenticated)&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; {&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; filterContext.Result = new RedirectResult("~/Error/AccessDenied?For=" + filterContext.HttpContext.Request.Url);                    &amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; }&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; else&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; {&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; base.HandleUnauthorizedRequest(filterContext);                &amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; }&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; }&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; }&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; &lt;/noscript&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Usage of our AuthorizeFor attribute&lt;/div&gt;&lt;div&gt;&lt;script src="https://gist.github.com/936875.js?file=AuthorizeForAttribute-Usage.cs"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; // view full gist at https://gist.github.com/936875.js?file=AuthorizeForAttribute-Usage.cs&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; [AuthorizeFor]&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; public ActionResult Index()&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; {&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; // ....&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; [AuthorizeFor(Roles = "Create, View")]&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; public ActionResult Create()&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; {&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; // ....&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; [HttpPost]&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; [AuthorizeFor(Roles = "Create")]&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; public ActionResult Create(ViewModel.Foo foo)&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; {&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; // ....&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt; &lt;/noscript&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Resources&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute.aspx"&gt;MSDN AuthorizeAttribute&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/5519393/c-mvc-how-to-override-configured-authentication-redirect"&gt;Stack Overflow&lt;/a&gt; post about the 401 403 issue&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-4277704319254774138?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/4277704319254774138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=4277704319254774138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4277704319254774138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4277704319254774138'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/04/fixing-aspnet-mvc-authorizeattribute.html' title='Fixing asp.net MVC AuthorizeAttribute'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-1vMk4_AhaKg/TbGZafGuVHI/AAAAAAAAC10/IPvdbbfA-AQ/s72-c/200.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-5042651298837412145</id><published>2011-04-15T06:47:00.000-07:00</published><updated>2011-04-15T06:48:28.122-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='birds'/><title type='text'>Log: Wildlife sightings summer 2010</title><content type='html'>Came across some notes from my vacation last summer, figured I might as well post them on the net (better late then never). Not in any order and contains both spelling and grammer errors, enjoy:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2010-06-27 UT,AZ,ID:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Swainsons Hawk&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Black Throated Sparrow&lt;br /&gt;&lt;br /&gt;2010-06-30 Zion&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Rocky Mountain Bighorn Sheep&lt;br /&gt;&lt;br /&gt;2010-07-01 Uinta, UT:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Tanager&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Kestrel&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Robins&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;2010-07-01 Near Yellowstone:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Bald Eagle&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Osprey&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;2010-07-01 - 2010-07-04 Yellowstone:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Grizzley Bear + 2 cubs&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Girizley Bear + 3 cubs&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Red Tail&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Gray Jay&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Mtn Blue Bird&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Mule Deer&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Cyotes&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Otters&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Junco&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Common Muskrat&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Deer Mouse&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Chipping Sparrow&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Cassins Finch&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Cliff Swallow&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Brewers Blackbird&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Cowbird&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;2010-07-04 Leaving Yellowstone -&amp;gt; Cody, WY:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Black Bears&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Sandhill Cranes&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;2 Coopers Hawks&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;2 Golden Eagles&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Harrier (Male)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Waxwings&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Terns&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;2010-07-06 Big Horn National Forest, WY:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Moose&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Marmots&lt;br /&gt;&lt;br /&gt;we went on to the Black Hills of South Dakota, Montana, and Alberta after this, but I must have stopped keeping track of sightings, there were plenty more...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-5042651298837412145?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/5042651298837412145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=5042651298837412145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5042651298837412145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5042651298837412145'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/04/log-wildlife-sightings-summer-2010.html' title='Log: Wildlife sightings summer 2010'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-5546870884203530269</id><published>2011-04-09T08:40:00.000-07:00</published><updated>2011-04-09T08:40:19.397-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='teamcity'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Notes - TeamCity setup on Ubuntu</title><content type='html'>Notes from setting up TeamCity on Ubuntu&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;TeamCity on Ubuntu&lt;br /&gt;==================================================================&lt;br /&gt;Go to http://www.jetbrains.com/teamcity/download/ and download the linux distribution&lt;br /&gt;&lt;br /&gt;set JAVA_HOME : update .bashrc add the following lines&lt;br /&gt;--------------------------&lt;br /&gt;export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk/bin/java&lt;br /&gt;export PATH=$PATH:/usr/lib/jvm/java-1.6.0-openjdk/bin&lt;br /&gt;&lt;br /&gt;tar xfz TeamCity-6.0.3.tar.gz&lt;br /&gt;put extracted TeamCity directory under ~/TeamCity&lt;br /&gt;&lt;br /&gt;open terminal and run bin/runAll.sh start from the ~/TeamCity directory&lt;br /&gt;&lt;br /&gt;install tcWebHook plugin&lt;br /&gt;==================================================================&lt;br /&gt;http://tcplugins.sourceforge.net/files/tcWebHooks&lt;br /&gt;- http://sourceforge.net/apps/trac/tcplugins/wiki/TcWebHooks&lt;br /&gt;&lt;br /&gt;create directory at ~/.BuildServer/plugins - tcWebHooks&lt;br /&gt;put the jar file in that directory&lt;br /&gt;restart the teamcity server&lt;br /&gt;there should be a new tab 'web hooks' on the build results, not in the admin section&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/3554775196719271875-5546870884203530269?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/5546870884203530269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=5546870884203530269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5546870884203530269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5546870884203530269'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/04/notes-teamcity-setup-on-ubuntu.html' title='Notes - TeamCity setup on Ubuntu'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-9017780563341259679</id><published>2011-04-09T08:38:00.000-07:00</published><updated>2011-04-09T08:41:13.523-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='redcar'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='rvm'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Some notes - Ubuntu install rails 3 environment</title><content type='html'>Had this on my desktop, notes to set up&amp;nbsp;Ubuntu install rails 3 environment&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Ubuntu install rails 3 environment&lt;br /&gt;================================================&lt;br /&gt;&lt;br /&gt;1) Get RVM installed with ruby 1.9.2&lt;br /&gt; - http://www.christopherirish.com/2010/08/25/how-to-install-rvm-on-ubuntu-10-04/&lt;br /&gt;&lt;br /&gt;2) Install Rails 3 gem&lt;br /&gt; - gem install rails --no-rdoc --no-ri&lt;br /&gt; - .... Successfully installed rails-3.0.5 ... 23 gems installed&lt;br /&gt;&lt;br /&gt;3) Install redcar 'ruby ide'&lt;br /&gt; - check out&lt;br /&gt; - http://azazeal.xelixis.net/post/How-to-install-Redcar-editor-under-Ubuntu-1010-with-RVM.aspx&lt;br /&gt; - for my situation I am only installing it on ruby 1.9.2, if you plan to run multiple versions of ruby this probably will not work when you have your rvm switched to another version&lt;br /&gt;  - gem install redcar --no-rdoc --no-ri&lt;br /&gt;  - redcar install&lt;br /&gt; - now you should be able to type redcar at the terminal to launch the gui&lt;br /&gt; - lets make a desktop shortcut&lt;br /&gt;  - right click on the desktop : Create Launcher&lt;br /&gt;   - Type: Application&lt;br /&gt;   - Name: Redcar&lt;br /&gt;   - Command: /home/YOUR_USER_NAME/.rvm/gems/ruby-1.9.2-head/gems/redcar-0.11/bin/redcar&lt;br /&gt;   - Comment: Ruby IDE&lt;br /&gt;  - need a tight icon for our launcher&lt;br /&gt;   - right click &gt; Properties &gt; click the emblem icon&lt;br /&gt;   - Path: /home/YOUR_USER_NAME/.rvm/gems/ruby-1.9.2-head/gems/redcar-0.11/share/icons/redcar-icon-beta.png&lt;br /&gt;  - drag the desktop icon up to the launcher bar if you want one there as well&lt;br /&gt;   - need to set the icon path again for that one&lt;br /&gt;&lt;br /&gt;4) Create a rails application &lt;br /&gt; - mkdir projects; cd projects&lt;br /&gt; - rails new sample_app_01; cd sample_app_01&lt;br /&gt; - in redcar &gt; File &gt; Open Directory &gt; projects/sample_app_01&lt;br /&gt;  - ctrl+T &gt; type Gem &gt; open Gemfile&lt;br /&gt;  - verify line : gem 'sqlite3'&lt;br /&gt; - back to the terminal&lt;br /&gt;  - bundle &lt;br /&gt;  - rails g scaffold post title:string body:text&lt;br /&gt;  - rake db:migrate&lt;br /&gt;  - rails s&lt;br /&gt; - in a browser go to http://localhost:3000/posts&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Sorry the links above are not hot, just cut and paste from my notes into a pre tag - quick and dirty&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-9017780563341259679?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/9017780563341259679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=9017780563341259679' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/9017780563341259679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/9017780563341259679'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/04/some-notes-ubuntu-install-rails-3.html' title='Some notes - Ubuntu install rails 3 environment'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-6950192941461985618</id><published>2011-04-08T17:39:00.000-07:00</published><updated>2011-04-08T17:39:52.042-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Could not find generator delayed_job_migration.</title><content type='html'>Maybe this post will help somebody? just installed delayed_job on a rails 3 application. The &lt;a href="https://github.com/tobi/delayed_job"&gt;readme&lt;/a&gt; for delayed_job is for the older version, here is a link to the &lt;a href="http://rubydoc.info/gems/delayed_job/2.1.4/frames"&gt;newer docs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Running this command&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;rails g delayed_job_migration&lt;/span&gt;&lt;/blockquote&gt;Returned this error&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;Could not find generator delayed_job_migration.&lt;/span&gt;&lt;/blockquote&gt;&lt;div&gt;With rails 3 the command should be&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;rails g delayed_job&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-6950192941461985618?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/6950192941461985618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=6950192941461985618' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6950192941461985618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6950192941461985618'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/04/could-not-find-generator.html' title='Could not find generator delayed_job_migration.'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-20900479217347105</id><published>2011-04-07T08:18:00.000-07:00</published><updated>2011-04-07T08:18:18.220-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtual'/><title type='text'>Ping Guest OS from Host OS with VirtualBox</title><content type='html'>I am running a host Windows 7 machine with a Guest Windows Server 2008 RC2. The guest machine is hosted inside of &lt;a href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt;. It appears that this issue can occur with any number of OS host or guest machines.&lt;br /&gt;&lt;br /&gt;From the guest machine I could access the internet and access the host machine, but I could not ping or access the guest machine from the host. Turns out there is a network setting that needs to be changed.&lt;br /&gt;&lt;br /&gt;On the guests 'container' go to Devices &amp;gt; Network Adapters&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-3wcZuLntxu0/TZ3UqMsu66I/AAAAAAAAC0Q/7rAucnEe0ts/s1600/virtualbox-host-ping-guest-01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="388" src="http://4.bp.blogspot.com/-3wcZuLntxu0/TZ3UqMsu66I/AAAAAAAAC0Q/7rAucnEe0ts/s640/virtualbox-host-ping-guest-01.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Then change 'Attached to' from 'NAT' to 'Bridged Adapter'&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-9l70Yl2d02s/TZ3U2_-I1vI/AAAAAAAAC0U/0SrzQDCS9J8/s1600/virtualbox-host-ping-guest-02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="368" src="http://1.bp.blogspot.com/-9l70Yl2d02s/TZ3U2_-I1vI/AAAAAAAAC0U/0SrzQDCS9J8/s640/virtualbox-host-ping-guest-02.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;at that point you should be good to go&lt;br /&gt;&lt;br /&gt;Resources&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;virtualbox forums: &lt;a href="http://forums.virtualbox.org/viewtopic.php?f=6&amp;amp;t=15792&amp;amp;sid=96a654bdcb88ff0b628c108663f681ce&amp;amp;start=15"&gt;Host can't ping guest in Different OS ??&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-20900479217347105?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/20900479217347105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=20900479217347105' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/20900479217347105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/20900479217347105'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/04/ping-guest-os-from-host-os-with.html' title='Ping Guest OS from Host OS with VirtualBox'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-3wcZuLntxu0/TZ3UqMsu66I/AAAAAAAAC0Q/7rAucnEe0ts/s72-c/virtualbox-host-ping-guest-01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-6290034577258049642</id><published>2011-03-29T16:07:00.000-07:00</published><updated>2011-03-30T09:02:42.042-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powershell'/><title type='text'>Add tf.exe and other .net command line tools to your powershell path</title><content type='html'>I really don't like cmd.exe, it is difficult to work with. PowerShell ISE is much nicer and the bonus is you can run non powershell programs from this environment as well.&lt;br /&gt;&lt;br /&gt;I needed to run some TFS commands, adding the ide directory to the path is easy&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;$env:path += ";C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE"&lt;/span&gt;&lt;/blockquote&gt;another directory you might want to add if you are messing about with IIS7&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;$env:path += ";C:\Windows\System32\inetsrv"&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;now you can do things like recycle all of the AppPools on your machine&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;appcmd list apppool /xml | appcmd recycle apppool /in&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-6290034577258049642?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/6290034577258049642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=6290034577258049642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6290034577258049642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6290034577258049642'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/03/add-tfexe-and-other-net-command-line.html' title='Add tf.exe and other .net command line tools to your powershell path'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-5294261479150907196</id><published>2011-03-29T08:35:00.000-07:00</published><updated>2011-03-30T09:05:41.078-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Rows and Columns with CSS</title><content type='html'>here is a code snippet for creating rows and columns with css - I guess you could say this is a table?&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/892551.js?file=css-rows-and-columns.html"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&lt;br /&gt;your reader does not support script includes, please &lt;br /&gt;&lt;a href="https://gist.github.com/raw/892551/38b499f9f5ee783a85cbd82966ee9b2fd5a56e90/css-rows-and-columns.html"&gt;View the Gist&lt;/a&gt;.&lt;br /&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;br /&gt;Resources&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.webmasterworld.com/css/3896320.htm"&gt;webmaster world css forum&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-5294261479150907196?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/5294261479150907196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=5294261479150907196' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5294261479150907196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5294261479150907196'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/03/rows-and-columns-with-css.html' title='Rows and Columns with CSS'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-1429229904141809285</id><published>2011-03-15T20:19:00.000-07:00</published><updated>2011-03-15T20:19:21.690-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>asp mvc jquery from cdn with fallback to localhost</title><content type='html'>Paul Irish has some nice code for loading jquery from cdn but then falling back to localhost if it cannot be loaded from cdn. Check it out &lt;a href="http://paulirish.com/2010/the-protocol-relative-url/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For asp mvc you usually also want jquery.valdiater and possibly unobtrusive validation as well. Here is an html helper to generate html mark up that handles loading these via cdn with fallback&lt;br /&gt;&lt;br /&gt;The helper&lt;br /&gt;&lt;script src="https://gist.github.com/871851.js?file=cdn-with-fallback.cs"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Web.Mvc;&lt;br /&gt;using System.Web.Mvc.Html;&lt;br /&gt;using System.Web.Routing;&lt;br /&gt;&lt;br /&gt;public static class HtmlHelperExtensions&lt;br /&gt;{&lt;br /&gt;    /// &lt;summary&gt;&lt;br /&gt;    /// render script tag to include javascript file from cdn, but fallback to local if cannot be loaded&lt;br /&gt;    /// &lt;/summary&gt;&lt;br /&gt;    /// &lt;param name="helper"&gt;&lt;/param&gt;    /// &lt;param name="cdnPath"&gt;start with // to handle either http or https&lt;/param&gt;    /// &lt;param name="localPath"&gt;start with ~/&lt;/param&gt;    /// &lt;param name="javascriptCondition"&gt;javascript condition, if true then your browser will load the local file&lt;/param&gt;    /// &lt;returns&gt;&lt;br /&gt;    ///    &lt;script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"&gt;&lt;/script&gt;&lt;br /&gt;    ///    &lt;script&gt;!window.jQuery &amp;&amp; document.write(unescape('%3Cscript src="/Scripts/jquery-1.4.4.min.js"%3E%3C/script%3E'))&lt;/script&gt;&lt;br /&gt;    /// &lt;/returns&gt;&lt;br /&gt;    /// &lt;seealso cref="http://paulirish.com/2010/the-protocol-relative-url/"/&gt;&lt;br /&gt;    public static MvcHtmlString JavascriptIncludeFromCdnWithFallback(this HtmlHelper helper, string cdnPath, string localPath, string javascriptCondition)&lt;br /&gt;    {&lt;br /&gt;        var urlHelper = new UrlHelper(helper.ViewContext.RequestContext);&lt;br /&gt;        var cdnBuilder = new TagBuilder("script");&lt;br /&gt;        var localBuilder = new TagBuilder("script");&lt;br /&gt;&lt;br /&gt;        // src for cdn resource&lt;br /&gt;        cdnBuilder.Attributes.Add("src", cdnPath);&lt;br /&gt;        // js to build a local script tag if needed&lt;br /&gt;        localBuilder.InnerHtml = String.Format&lt;br /&gt;        (&lt;br /&gt;            "{0} &amp;&amp; document.write(unescape('%3Cscript src=\"{1}\"%3E%3C/script%3E'))",&lt;br /&gt;            javascriptCondition,&lt;br /&gt;            urlHelper.Content(localPath)&lt;br /&gt;        );&lt;br /&gt;        // return markup&lt;br /&gt;        var built = String.Format("{0}\n\t{1}", cdnBuilder.ToString(TagRenderMode.Normal), localBuilder.ToString(TagRenderMode.Normal));&lt;br /&gt;        return MvcHtmlString.Create(built);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;br /&gt;Usage, most likely from your layout file&lt;br /&gt;&lt;script src="https://gist.github.com/871856.js?file=cdn-with-fallback.cshtml"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&lt;br /&gt;@Html.JavascriptIncludeFromCdnWithFallback(&lt;br /&gt;    "//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js",&lt;br /&gt;    "~/Scripts/lib/jquery/jquery-1.4.4.min.js", &lt;br /&gt;    "!window.jQuery"&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;@Html.JavascriptIncludeFromCdnWithFallback(&lt;br /&gt;    "//ajax.aspnetcdn.com/ajax/jquery.validate/1.7/jquery.validate.min.js",&lt;br /&gt;    "~/Scripts/lib/jquery/jquery.validate.min.js", &lt;br /&gt;    "!window.jQuery.validator"&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;@Html.JavascriptIncludeFromCdnWithFallback(&lt;br /&gt;    "//ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.min.js",&lt;br /&gt;    "~/Scripts/lib/jquery/jquery.validate.unobtrusive.min.js", &lt;br /&gt;    "!window.jQuery.validator.unobtrusive"&lt;br /&gt;)&lt;br /&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;br /&gt;And the rendered html&lt;br /&gt;&lt;script src="https://gist.github.com/871857.js?file=cdn-with-fallback-rendered.html"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&lt;br /&gt;&lt;script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;script&gt;!window.jQuery &amp;&amp; document.write(unescape('%3Cscript src="/Scripts/lib/jquery/jquery-1.4.4.min.js"%3E%3C/script%3E'))&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.7/jquery.validate.min.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;script&gt;!window.jQuery.validator &amp;&amp; document.write(unescape('%3Cscript src="/Scripts/lib/jquery/jquery.validate.min.js"%3E%3C/script%3E'))&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;script src="//ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.min.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;script&gt;!window.jQuery.validator.unobtrusive &amp;&amp; document.write(unescape('%3Cscript src="/Scripts/lib/jquery/jquery.validate.unobtrusive.min.js"%3E%3C/script%3E'))&lt;/script&gt;&lt;br /&gt;&lt;/noscript&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-1429229904141809285?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/1429229904141809285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=1429229904141809285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1429229904141809285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1429229904141809285'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/03/asp-mvc-jquery-from-cdn-with-fallback.html' title='asp mvc jquery from cdn with fallback to localhost'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-2338327326858591585</id><published>2011-03-14T09:02:00.000-07:00</published><updated>2011-03-14T09:02:49.044-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='tfs'/><title type='text'>Powershell script to generate a TODO report</title><content type='html'>You can use this from your CI build process, help keep the code base clean. I am a big fan of the TODO: comment, but you don't want too many building up in the code base at some point you either need 'TO DO IT' or else forget about it.&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/869367.js?file=TODO-Report.ps1"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&lt;br /&gt;$fileName = "_2-DO_log.txt"&lt;br /&gt;$max = 20&lt;br /&gt;$encoding = "ASCII"&lt;br /&gt;&lt;br /&gt;# remove previous file if exists&lt;br /&gt;if(Test-Path $fileName) { Remove-Item $fileName }&lt;br /&gt;&lt;br /&gt;# dump 2-do report to the file system&lt;br /&gt;Get-ChildItem –rec –include *.config,*.cs,*.js,*.cshtml,*.css,*.aspx | &lt;br /&gt;where { $_ -notmatch 'lib' } | &lt;br /&gt;where { $_ -notmatch 'Test' } | &lt;br /&gt;select-string TODO | &lt;br /&gt;out-string -width 4096 | &lt;br /&gt;out-file $fileName -encoding $encoding&lt;br /&gt;&lt;br /&gt;# get the line count of the report&lt;br /&gt;$content = Get-Content .\$fileName&lt;br /&gt;$count = $content.Count.ToString()&lt;br /&gt;# Write-Host "Total count is $count"&lt;br /&gt;&lt;br /&gt;# verify we don't have too many entries&lt;br /&gt;if($content.Count -gt $max) &lt;br /&gt;{ &lt;br /&gt;$message = "TO DO comment count has been exceeded. Max Allowed is $max but found $count for the entire solution, excluding lib files and Test projects"&lt;br /&gt;# prepend the message before the data&lt;br /&gt;$message | out-file $fileName -encoding $encoding &lt;br /&gt;$content | add-content $fileName&lt;br /&gt;Throw [system.Exception]($message) &lt;br /&gt;}&lt;br /&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;br /&gt;the above script is excluding all files found under lib or Test directories, and selecting only a subset of file types. Modify to your needs&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-2338327326858591585?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/2338327326858591585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=2338327326858591585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2338327326858591585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2338327326858591585'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/03/powershell-script-to-generate-todo.html' title='Powershell script to generate a TODO report'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-3224821694694351362</id><published>2011-03-11T13:32:00.000-08:00</published><updated>2011-03-13T18:06:47.368-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><category scheme='http://www.blogger.com/atom/ns#' term='unit test'/><category scheme='http://www.blogger.com/atom/ns#' term='mstest'/><title type='text'>MSTest output result to HTML</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/ms182489(v=vs.80).aspx"&gt;MSTest&lt;/a&gt; generates trx (xml) files which can be viewed in Visual Studio. But often you will be executing MSTest from the command line via your Continuous Integration (CI) server and you will want to view them in an html format outside Visual Studio.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://trx2html.codeplex.com/"&gt;trx2html&lt;/a&gt; to the rescue!&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;download the zip file here -&amp;nbsp;&lt;a href="http://trx2html.codeplex.com/"&gt;http://trx2html.codeplex.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;unzip and put the files somewhere&lt;/li&gt;&lt;ul&gt;&lt;li&gt;I choose C:\Program Files (x86)\trx2html&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;execute it from the command line&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;# in YourTestProject\bin\Release&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #444444;"&gt;"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\mstest.exe"&lt;/span&gt; &lt;span class="Apple-style-span" style="color: #0b5394;"&gt;/testcontainer:&lt;/span&gt;YourTestProject.dll &lt;span class="Apple-style-span" style="color: #0b5394;"&gt;/resultsfile:&lt;/span&gt;TestResult.trx&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #444444;"&gt;"C:\Program Files (x86)\trx2html\0.6\trx2html.exe"&lt;/span&gt; TestResult.trx&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #38761d;"&gt;# outputs TestResult.trx.htm&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-3224821694694351362?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/3224821694694351362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=3224821694694351362' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3224821694694351362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3224821694694351362'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/03/mstest-output-result-to-html.html' title='MSTest output result to HTML'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-4097306036578228670</id><published>2011-03-09T09:11:00.000-08:00</published><updated>2011-03-09T09:50:20.629-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='visual studio'/><title type='text'>Visual Studio Solution Items in a sub directory</title><content type='html'>Visual Studio Solutions have the "Add New Solution Folder" option.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-_wY7D-Q3qOY/TXeybhp1O2I/AAAAAAAACzs/YK4O6ZztTOI/s1600/new_solution_folder.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="350" src="https://lh3.googleusercontent.com/-_wY7D-Q3qOY/TXeybhp1O2I/AAAAAAAACzs/YK4O6ZztTOI/s400/new_solution_folder.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I don't know about you but this makes me think it is going to create a physical directory on the hard drive to emulate what is in the solution, but this is not the case.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-NANZTAZHPXU/TXeyi47KryI/AAAAAAAACzw/i3UY97vK3ag/s1600/solution_vs_explorer.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="308" src="https://lh5.googleusercontent.com/-NANZTAZHPXU/TXeyi47KryI/AAAAAAAACzw/i3UY97vK3ag/s640/solution_vs_explorer.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;The thing that really drives me crazy is if you try to add Test1.txt to the SubFolder it will throw an error because it is really trying to write to the root directory. I think solution folders are only really supposed to be used to organize Visual Studio projects.&lt;br /&gt;&lt;br /&gt;In my case I want to have a set of files that are not really part of a Visual Studio project but I want them available in the solution. It turns out there is a Project type called "Empty Project".&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-mVfvqv9P95o/TXezY_s3vZI/AAAAAAAACz0/qxReJ-c9lWo/s1600/empty_project.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="362" src="https://lh6.googleusercontent.com/-mVfvqv9P95o/TXezY_s3vZI/AAAAAAAACz0/qxReJ-c9lWo/s640/empty_project.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This is exactly what the doctor ordered!&lt;br /&gt;&lt;br /&gt;You will probably want to do one additional step. Set this "Empty Project" to not build, otherwise you will get a compile time error. Right click on the Solution &amp;gt; Properties &amp;gt; Configuration Properties &amp;gt; Configuration, then un-check the "Build" for this project.&lt;br /&gt;&lt;br /&gt;Found out about this from &lt;a href="http://stackoverflow.com/questions/233900/visual-studio-solution-that-just-points-to-a-folder-and-shows-all-sub-folders-and"&gt;this stackoverflow post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here is a good link &lt;a href="http://www.peter-urda.com/2010/09/solution-folders-in-visual-studio-2010-explained"&gt;explaining what you would use a solution folder for&lt;/a&gt;, besides a ReadMe.txt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-4097306036578228670?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/4097306036578228670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=4097306036578228670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4097306036578228670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4097306036578228670'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/03/visual-studio-solution-items-in-sub.html' title='Visual Studio Solution Items in a sub directory'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/-_wY7D-Q3qOY/TXeybhp1O2I/AAAAAAAACzs/YK4O6ZztTOI/s72-c/new_solution_folder.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-7366661311655554708</id><published>2011-03-06T12:42:00.000-08:00</published><updated>2011-03-06T12:42:39.655-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><title type='text'>Ergonomic keyboard for the Mac</title><content type='html'>The keyboards that come with Macs look really nice, the quality seems pretty good, but I just cannot use a flat keyboard, after a few days my wrists and hands started complaining big time.&lt;br /&gt;&lt;br /&gt;After some searching I came across the Kinesis Freestyle keyboard, they make one with Windows layout and another with Mac layout. They are not cheap, however I use a keyboard all day, every day so for me it is worth the money.&lt;br /&gt;&lt;br /&gt;If you get the Freestyle you also need to get the Freestyle VIP - Keyboard accessories kit, otherwise you basically just have a flat keyboard again&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/B001EPIJ4Y"&gt;Kinesis Freestyle Solo™ Mac USB Keyboard&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/B000RBBMNG"&gt;Kinesis Freestyle VIP - Keyboard accessories kit&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The VIP accessory kit will give you 10 and 15 degree angles, they also have some other&amp;nbsp;accessory&amp;nbsp;kits that will give you up to 90 degree angle, I believe that kit is very expensive, the 15&amp;nbsp;degree&amp;nbsp;works fine for me, but the Ascent kit looks interesting.&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.kinesis-ergo.com/keyboards.htm"&gt;Kinesis keyboards&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.kinesis-ergo.com/images/solo-ascent-90_512x390.jpg"&gt;Ascent kit - up to 90 degree&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Some pics&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-dTFXxTpFTeg/TXPvM0Mkh6I/AAAAAAAACzA/g4nK9MH-0Lo/s1600/IMG_1919.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="https://lh3.googleusercontent.com/-dTFXxTpFTeg/TXPvM0Mkh6I/AAAAAAAACzA/g4nK9MH-0Lo/s640/IMG_1919.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-jLjwVhCxaC0/TXPvVpEzv1I/AAAAAAAACzE/TxTDx8X6vg8/s1600/IMG_1920.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="https://lh5.googleusercontent.com/-jLjwVhCxaC0/TXPvVpEzv1I/AAAAAAAACzE/TxTDx8X6vg8/s640/IMG_1920.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Eight inches of cable between each side of the keyboard, put them where you want&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-Qvqr1dY8gOg/TXPvfU8cT5I/AAAAAAAACzI/GNaUNKTIH90/s1600/IMG_1922.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="https://lh5.googleusercontent.com/-Qvqr1dY8gOg/TXPvfU8cT5I/AAAAAAAACzI/GNaUNKTIH90/s640/IMG_1922.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;pivot point if you want them close and asymmetrical&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-LF5AXcmeW1Q/TXPvlOIP96I/AAAAAAAACzM/0mgR8odWtKY/s1600/IMG_1923.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="https://lh3.googleusercontent.com/-LF5AXcmeW1Q/TXPvlOIP96I/AAAAAAAACzM/0mgR8odWtKY/s640/IMG_1923.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;10 degree&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-ZpxKHd7hT5Y/TXPvsap1rMI/AAAAAAAACzQ/hYBcUOKGm6E/s1600/IMG_1924.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="https://lh6.googleusercontent.com/-ZpxKHd7hT5Y/TXPvsap1rMI/AAAAAAAACzQ/hYBcUOKGm6E/s640/IMG_1924.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;15 degree&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-QgE-qDKoiOM/TXPv1M52KHI/AAAAAAAACzU/6WYZLl3j85s/s1600/IMG_1925.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="https://lh6.googleusercontent.com/-QgE-qDKoiOM/TXPv1M52KHI/AAAAAAAACzU/6WYZLl3j85s/s640/IMG_1925.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-pPrBNElS7ic/TXPv_MoxAmI/AAAAAAAACzY/MEqUI4kT20w/s1600/IMG_1927.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="https://lh5.googleusercontent.com/-pPrBNElS7ic/TXPv_MoxAmI/AAAAAAAACzY/MEqUI4kT20w/s640/IMG_1927.JPG" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-7366661311655554708?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/7366661311655554708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=7366661311655554708' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7366661311655554708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7366661311655554708'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/03/ergonomic-keyboard-for-mac.html' title='Ergonomic keyboard for the Mac'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh3.googleusercontent.com/-dTFXxTpFTeg/TXPvM0Mkh6I/AAAAAAAACzA/g4nK9MH-0Lo/s72-c/IMG_1919.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-3146331994651123023</id><published>2011-03-03T09:46:00.000-08:00</published><updated>2011-03-03T09:46:34.412-08:00</updated><title type='text'>varchar (MAX) SqlParameter length</title><content type='html'>I am using &lt;a href="http://logging.apache.org/log4net/"&gt;log4net&lt;/a&gt; and the&amp;nbsp;&lt;a href="http://logging.apache.org/log4net/release/config-examples.html"&gt;AdoNetAppender&lt;/a&gt; to log all entries to MSSQL server. The exception column by default is 2000, sometimes the stack traces get large. Not wanting to lose any information I changed the DDL to use varchar (MAX) but I also had to update the appender configuration. Using a size of -1 for the @exception parameter seemed to do the trick.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Resources&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb399384.aspx"&gt;http://msdn2.microsoft.com/en-us/library/bb399384.aspx&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-3146331994651123023?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/3146331994651123023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=3146331994651123023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3146331994651123023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3146331994651123023'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/03/varchar-max-sqlparameter-length.html' title='varchar (MAX) SqlParameter length'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-1366685622019105976</id><published>2011-02-25T08:16:00.000-08:00</published><updated>2011-02-25T08:19:19.318-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CQRS'/><title type='text'>CQRS with .NET and C#</title><content type='html'>I've been intrigued with the idea of CQRS for some time; ever since I watched an &lt;a href="http://www.infoq.com/"&gt;infoQ&lt;/a&gt; presentation by &lt;a href="http://codebetter.com/gregyoung/author/gregyoung/"&gt;Greg Young&lt;/a&gt; on the subject. What is CQRS?&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;i&gt;Command-Query Responsibility Segregation&lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;See the links below to for more information from the experts.&lt;br /&gt;&lt;br /&gt;Over the last month I've actually had the&amp;nbsp;opportunity&amp;nbsp;to work with CQRS, so far I am really enjoying it.&amp;nbsp;Separating&amp;nbsp;your reads from your writes is truly liberating! Listed below are a bunch of resources related to CQRS:&lt;br /&gt;&lt;br /&gt;Informational:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://cqrsinfo.com/"&gt;http://cqrsinfo.com/&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.udidahan.com/2009/12/09/clarified-cqrs/"&gt;Clarified&amp;nbsp;CQRS&lt;/a&gt; by Udi Dahan&lt;/li&gt;&lt;li&gt;&lt;a href="http://groups.google.com/group/dddcqrs"&gt;DDD/CQRS google group&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Presentations:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Greg Young on infoQ - &lt;a href="http://www.infoq.com/presentations/greg-young-unshackle-qcon08"&gt;Unshackle Your Domain&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://vimeo.com/8944337"&gt;Command Query Responsibility Segregation&lt;/a&gt; - Udi Dahan&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;CQRS examples:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://github.com/MarkNijhof/Fohjin/tree/master/Fohjin.DDD.Example"&gt;https://github.com/MarkNijhof/Fohjin/tree/master/Fohjin.DDD.Example&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Some CQRS Frameworks:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://github.com/tyronegroves/SimpleCQRS"&gt;SimpleCQRS&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://ncqrs.org/"&gt;Ncqrs&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/lokad-cqrs/"&gt;Lokad CQRS&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-1366685622019105976?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/1366685622019105976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=1366685622019105976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1366685622019105976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1366685622019105976'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/02/cqrs-with-net-and-c.html' title='CQRS with .NET and C#'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-6772891124368875362</id><published>2011-02-21T12:00:00.000-08:00</published><updated>2011-02-21T12:00:59.436-08:00</updated><title type='text'>OSHA Safety Software</title><content type='html'>I've been working on this project off and on for quite sometime. If you are a small to mid size business in California and you need Safety Documents and&amp;nbsp;Safety Management Software check out &lt;a href="http://www.safetysanity.com/"&gt;www.safetysanity.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Use this code to save $100 off the setup fees&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;2011-SAVE-100&lt;/span&gt;&lt;/blockquote&gt;We've simplified the process of creating a Safety Program; starting with Safety Document creation through managing Employee Training, Equipment Inspections and Accident Reporting.&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://www.safetysanity.com/"&gt;www.safetysanity.com&lt;/a&gt;&lt;/blockquote&gt;Our software application &amp;nbsp;generates a Safety Program which is compliant with Cal/OSHA regulations. Every business in California is required by law to not only have a Safety Program, but also prove that they are following their program. Safety Sanity makes it easy! Learn more at &lt;a href="http://www.safetysanity.com/"&gt;www.safetysanity.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-6772891124368875362?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/6772891124368875362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=6772891124368875362' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6772891124368875362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6772891124368875362'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/02/osha-safety-software.html' title='OSHA Safety Software'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-6970347410799718251</id><published>2011-02-20T11:27:00.000-08:00</published><updated>2011-02-20T11:28:01.610-08:00</updated><title type='text'>LibreOffice - the real Open Office</title><content type='html'>LibreOffice -&amp;nbsp;&lt;a href="http://www.libreoffice.org/"&gt;http://www.libreoffice.org/&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;LibreOffice is the free power-packed Open Source personal productivity suite for Windows, Macintosh and Linux&lt;/i&gt;&lt;/blockquote&gt;this is basically Open Office, but without the Oracle factor&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-6970347410799718251?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/6970347410799718251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=6970347410799718251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6970347410799718251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6970347410799718251'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2011/02/libre-office-real-open-office.html' title='LibreOffice - the real Open Office'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-7937683649839752656</id><published>2010-11-17T07:32:00.000-08:00</published><updated>2010-11-17T07:32:37.567-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='razor'/><title type='text'>ASP MVC Razor templates with nested layout and sections</title><content type='html'>Using ASP MVC 3 with Razor views.&lt;br /&gt;&lt;br /&gt;Ran into an issue with nested layouts and wanting to render a section in a top level layout, but define it in the view which uses a 'child' layout (master) page. This was generating a runtime error of:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;The following sections have been defined but have not been rendered for the layout page...&lt;/span&gt;&amp;nbsp;&lt;/blockquote&gt;&lt;br /&gt;I posted some code to the asp.net forum and github. A nice workaround was supplied by 'Imran Baloch'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://github.com/house9/SampleAspMvc3NestedLayoutSectionIssue"&gt;Sample code at github&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://forums.asp.net/p/1623650/4170485.aspx"&gt;Forum Post over at asp.net forums&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-7937683649839752656?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/7937683649839752656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=7937683649839752656' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7937683649839752656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7937683649839752656'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/11/asp-mvc-razor-templates-with-nested.html' title='ASP MVC Razor templates with nested layout and sections'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-7784180616217558054</id><published>2010-11-16T08:08:00.000-08:00</published><updated>2010-11-16T08:11:04.827-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Automapper Datatable to List</title><content type='html'>I did a few Google searches for "&lt;a href="http://www.google.com/search?q=c%23+automapper+datatable+to+list"&gt;c# automapper datatable to list&lt;/a&gt;" but nothing good showed up right away, maybe this post will help someone in the future?&lt;br /&gt;&lt;br /&gt;The solution showed up on &lt;a href="http://stackoverflow.com/"&gt;stackoverflow&lt;/a&gt; here is the link&lt;br /&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/2429194/automapper-mapping-ienumerable-to-datareader-issue"&gt;http://stackoverflow.com/questions/2429194/automapper-mapping-ienumerable-to-datareader-issue&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and here is a code snippet&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/701974.js?file=automapper-datatable-to-list.cs"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&lt;br /&gt;System.Data.DataTable people = GetPeopleData();&lt;br /&gt;&lt;br /&gt;AutoMapper.Mapper.Reset();&lt;br /&gt;AutoMapper.Mapper.CreateMap&amp;lt;IDataReader, Person&amp;gt;();&lt;br /&gt;&lt;br /&gt;var results = AutoMapper.Mapper.Map&amp;lt;IDataReader, IList&amp;lt;Person&amp;gt;&amp;gt;(people.CreateDataReader());&lt;br /&gt;&lt;/noscript&gt;&lt;br /&gt;Note that we are actually mapping IDataReader to a list, and DataTable has convenience method to do that for us 'CreateDataReader'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://automapper.codeplex.com/"&gt;Automapper&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-7784180616217558054?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/7784180616217558054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=7784180616217558054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7784180616217558054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7784180616217558054'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/11/automapper-datatable-to-list.html' title='Automapper Datatable to List'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-7151750770722471983</id><published>2010-11-05T16:51:00.000-07:00</published><updated>2010-11-06T08:09:27.346-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><title type='text'>Get the date of the beginning and end of a month using Ruby</title><content type='html'>Sometimes Ruby blows my mind, I needed to get the start date and end date of the previous month. Guess what Ruby just happens to have methods to handle this -&amp;nbsp;beginning_of_month, end_of_month, there is even beginning_of_quarter and end_of_quarter if you need them!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;script src="https://gist.github.com/665048.js?file=cool%20date%20functions%20in%20ruby"&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;noscript&gt;&lt;br /&gt;&lt;pre&gt;last_month = Date.today.last_month # =&amp;gt; Tue, 05 Oct 2010 &lt;br /&gt;&lt;br /&gt;last_month.beginning_of_month # =&amp;gt; Fri, 01 Oct 2010 &lt;br /&gt;last_month.end_of_month # =&amp;gt; Sun, 31 Oct 2010&lt;br /&gt;&lt;br /&gt;last_month.beginning_of_quarter # =&amp;gt; Fri, 01 Oct 2010&lt;br /&gt;last_month.end_of_quarter # =&amp;gt; Fri, 31 Dec 2010&lt;br /&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-7151750770722471983?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/7151750770722471983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=7151750770722471983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7151750770722471983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7151750770722471983'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/11/get-date-of-beginning-and-end-of-month.html' title='Get the date of the beginning and end of a month using Ruby'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-238889233948172991</id><published>2010-10-29T15:12:00.000-07:00</published><updated>2010-10-29T15:12:33.761-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtual'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Remote desktop mac OSX to Ubuntu</title><content type='html'>There is a good program (free) for remote connections between mac OSX and &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt;. It is called&amp;nbsp;&lt;a href="http://sourceforge.net/projects/cotvnc/"&gt;Chicken of the VNC&lt;/a&gt;&amp;nbsp;- in my case I needed to remote into an Ubuntu (9.04) desktop from my mac.&lt;br /&gt;&lt;br /&gt;First step - allow remote access on the Ubuntu machine&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_vmq8pP42BnQ/TMtEx7LMHOI/AAAAAAAACyo/Bf6NsdQJYOY/s1600/blog-cvnc-01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/_vmq8pP42BnQ/TMtEx7LMHOI/AAAAAAAACyo/Bf6NsdQJYOY/s400/blog-cvnc-01.png" width="380" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_vmq8pP42BnQ/TMtEyCAzGzI/AAAAAAAACys/X1WGq2_VY08/s1600/blog-cvnc-01.2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="355" src="http://1.bp.blogspot.com/_vmq8pP42BnQ/TMtEyCAzGzI/AAAAAAAACys/X1WGq2_VY08/s400/blog-cvnc-01.2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Install Chicken of the VNC&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;download from&amp;nbsp;&lt;a href="http://sourceforge.net/projects/cotvnc/"&gt;http://sourceforge.net/projects/cotvnc/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;install the dmg file&lt;/li&gt;&lt;li&gt;then drag the Chicken into your Applications folder&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_vmq8pP42BnQ/TMtEy0IvLjI/AAAAAAAACyw/WbWopHr_EVQ/s1600/blog-cvnc-02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="337" src="http://1.bp.blogspot.com/_vmq8pP42BnQ/TMtEy0IvLjI/AAAAAAAACyw/WbWopHr_EVQ/s640/blog-cvnc-02.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Then open the program and type in the IP address of the machine you wish to connect to.&lt;br /&gt;Done - you are now remoted!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_vmq8pP42BnQ/TMtEzyqVO6I/AAAAAAAACy0/D5YAplc3UcY/s1600/blog-cvnc-03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://2.bp.blogspot.com/_vmq8pP42BnQ/TMtEzyqVO6I/AAAAAAAACy0/D5YAplc3UcY/s400/blog-cvnc-03.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-238889233948172991?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/238889233948172991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=238889233948172991' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/238889233948172991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/238889233948172991'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/10/remote-desktop-mac-osx-to-ubuntu.html' title='Remote desktop mac OSX to Ubuntu'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_vmq8pP42BnQ/TMtEx7LMHOI/AAAAAAAACyo/Bf6NsdQJYOY/s72-c/blog-cvnc-01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-1962501367636813597</id><published>2010-10-29T08:12:00.000-07:00</published><updated>2010-10-29T08:12:42.941-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mvc'/><title type='text'>The best overload for 'RenderSection' does not have a parameter named 'optional'</title><content type='html'>I've been taking a look at &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=0abac7a3-b302-4644-bd43-febf300b2c51&amp;amp;displaylang=en"&gt;asp.net mvc 3 beta&lt;/a&gt; with razor view templates.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;some of the examples on the net are from previous releases and things have changed; one that I came across was the RenderSection method which can be used in layout (master) files&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;@RenderSection("Header", optional:true)&lt;/span&gt;&lt;/blockquote&gt;will throw an exception&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;&lt;i&gt;The best overload for 'RenderSection' does not have a parameter named 'optional'&lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;the newer syntax for rendering an optional section appears to be&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;@RenderSection("Header", false)&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-1962501367636813597?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/1962501367636813597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=1962501367636813597' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1962501367636813597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1962501367636813597'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/10/best-overload-for-rendersection-does.html' title='The best overload for &apos;RenderSection&apos; does not have a parameter named &apos;optional&apos;'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-3760388066143172773</id><published>2010-10-22T17:21:00.000-07:00</published><updated>2010-10-22T17:21:23.698-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='iframe'/><title type='text'>jQuery iframe auto height plugin</title><content type='html'>This week I needed to automatically size the height of an iframe to the height of its contents. After a bunch of Google searches I came across this post from&amp;nbsp;Nathan Smith &lt;a href="http://sonspring.com/journal/jquery-iframe-sizing"&gt;here&lt;/a&gt;; It used jquery but applied the auto height to every iframe on the page, I could not use the code out of the box and so the 'jQuery iframe auto height plugin' was born. I made a few slight changes to the original code and wrapped it in a jquery plugin.&lt;br /&gt;&lt;br /&gt;Download from github&lt;br /&gt;&lt;br /&gt;&lt;a href="http://github.com/house9/jquery-iframe-auto-height"&gt;http://github.com/house9/jquery-iframe-auto-height&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;see the README file for usage&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-3760388066143172773?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/3760388066143172773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=3760388066143172773' title='30 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3760388066143172773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3760388066143172773'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/10/jquery-iframe-auto-height-plugin.html' title='jQuery iframe auto height plugin'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>30</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-5704919866190966849</id><published>2010-10-13T17:17:00.000-07:00</published><updated>2010-10-13T17:17:33.211-07:00</updated><title type='text'>Geek Desk in Action!</title><content type='html'>My &lt;a href="http://www.geekdesk.com/"&gt;Geek Desk&lt;/a&gt; showed up last week!&lt;br /&gt;&lt;br /&gt;I work standing up most of the time, but I do like to sit down a few times through out the day. In the past I used a "Drafting Chair", but they create a funky angle for your legs as your feet must sit on the bottom ring. So far I am really loving the Geek Desk! - check them out at&amp;nbsp;&lt;a href="http://www.geekdesk.com/"&gt;http://www.geekdesk.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;here is a short vid of the adjustable height desk in operation&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/_jB_w0DDV2M?hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/_jB_w0DDV2M?hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;and some pics&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_vmq8pP42BnQ/TLYeYtSwW1I/AAAAAAAACxk/p7KkW5wmb2Y/s1600/IMG_1723.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://1.bp.blogspot.com/_vmq8pP42BnQ/TLYeYtSwW1I/AAAAAAAACxk/p7KkW5wmb2Y/s640/IMG_1723.jpg" width="480" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_vmq8pP42BnQ/TLYeZiz9ZgI/AAAAAAAACxo/IkO7Lg5aedA/s1600/IMG_1724.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://2.bp.blogspot.com/_vmq8pP42BnQ/TLYeZiz9ZgI/AAAAAAAACxo/IkO7Lg5aedA/s640/IMG_1724.jpg" width="480" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_vmq8pP42BnQ/TLYeaog_EEI/AAAAAAAACxs/AATwLOblWBw/s1600/IMG_1725.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://1.bp.blogspot.com/_vmq8pP42BnQ/TLYeaog_EEI/AAAAAAAACxs/AATwLOblWBw/s400/IMG_1725.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_vmq8pP42BnQ/TLYebrVaSwI/AAAAAAAACxw/qRk6k0VKK9w/s1600/IMG_1726.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://3.bp.blogspot.com/_vmq8pP42BnQ/TLYebrVaSwI/AAAAAAAACxw/qRk6k0VKK9w/s640/IMG_1726.jpg" width="480" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_vmq8pP42BnQ/TLYecrvoeQI/AAAAAAAACx0/IBsmPlktuJU/s1600/IMG_1728.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://2.bp.blogspot.com/_vmq8pP42BnQ/TLYecrvoeQI/AAAAAAAACx0/IBsmPlktuJU/s640/IMG_1728.jpg" width="480" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_vmq8pP42BnQ/TLYedi4hNXI/AAAAAAAACx4/uvvhN3Y9mmA/s1600/IMG_1729.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://2.bp.blogspot.com/_vmq8pP42BnQ/TLYedi4hNXI/AAAAAAAACx4/uvvhN3Y9mmA/s400/IMG_1729.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_vmq8pP42BnQ/TLYeel0CYtI/AAAAAAAACx8/gnR6HoTfxb4/s1600/IMG_1735.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://3.bp.blogspot.com/_vmq8pP42BnQ/TLYeel0CYtI/AAAAAAAACx8/gnR6HoTfxb4/s400/IMG_1735.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_vmq8pP42BnQ/TLYefVoaBMI/AAAAAAAACyA/LX4yFtJX_ko/s1600/IMG_1737.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/_vmq8pP42BnQ/TLYefVoaBMI/AAAAAAAACyA/LX4yFtJX_ko/s400/IMG_1737.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_vmq8pP42BnQ/TLYegAYxl9I/AAAAAAAACyE/s0VRXIkpirw/s1600/IMG_1739.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://4.bp.blogspot.com/_vmq8pP42BnQ/TLYegAYxl9I/AAAAAAAACyE/s0VRXIkpirw/s400/IMG_1739.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-5704919866190966849?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/5704919866190966849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=5704919866190966849' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5704919866190966849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5704919866190966849'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/10/geek-desk-in-action.html' title='Geek Desk in Action!'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_vmq8pP42BnQ/TLYeYtSwW1I/AAAAAAAACxk/p7KkW5wmb2Y/s72-c/IMG_1723.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-172008261179450509</id><published>2010-09-30T18:51:00.000-07:00</published><updated>2010-09-30T18:51:56.498-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtual'/><title type='text'>VirutalBox - Increase the memory on an existing guest machine</title><content type='html'>I use VirtualBox to run a guest Windows XP machine on my Mac. When I set up the virtual guest I set it to use 512MB of memory. And of course now I decide I want to bump it to 1GB. I could not find anyway to do this using the GUI but it can be done from the Terminal.&lt;br /&gt;&lt;br /&gt;When the virtual machine is not running execute this command&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;VBoxManage modifyvm XP1 --memory 1024&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;XP1 is the name of my guest machine, so replace with yours. The memory parameter takes the amount in MB, in this case 1GB&lt;br /&gt;&lt;br /&gt;The first time I ran it I&amp;nbsp;received&amp;nbsp;the following error message&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="background-color: yellow;"&gt;ERROR: The machine is not mutable (state is Saved)&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;Last time I turned off the guest machine I had selected the save state option. You need to Power the virtual machine down before you can run this command.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-172008261179450509?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/172008261179450509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=172008261179450509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/172008261179450509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/172008261179450509'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/09/virutalbox-increase-memory-on-existing.html' title='VirutalBox - Increase the memory on an existing guest machine'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-8935532411456862151</id><published>2010-09-29T20:53:00.000-07:00</published><updated>2010-09-29T20:53:11.045-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDE'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Textmate Go to File now available in Visual Studio 2010</title><content type='html'>Finally! Visual Studio has a feature similar to Textmates "Go to File" (Command key + T), I love this feature. It means that you rarely need to look around in the project tree for a file, just type part of the file name and bam!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_vmq8pP42BnQ/TKQJQ2OwRZI/AAAAAAAACxQ/4ftjftseo6c/s1600/textmate-go-to-file.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_vmq8pP42BnQ/TKQJQ2OwRZI/AAAAAAAACxQ/4ftjftseo6c/s1600/textmate-go-to-file.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;In visual studio it is called "Navigate to" (Ctrl + ,) it takes it one step further and even brings up methods matching the name, not sure if that is a good thing or not, so far so good.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_vmq8pP42BnQ/TKPhnou-e4I/AAAAAAAACxM/XGC99X3JqFg/s1600/visual-studio-navigate-to.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_vmq8pP42BnQ/TKPhnou-e4I/AAAAAAAACxM/XGC99X3JqFg/s1600/visual-studio-navigate-to.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Found out about it &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/10/21/searching-and-navigating-code-in-vs-2010-vs-2010-and-net-4-0-series.aspx"&gt;here&lt;/a&gt;. Guess it has been around for awhile&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-8935532411456862151?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/8935532411456862151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=8935532411456862151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/8935532411456862151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/8935532411456862151'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/09/textmate-go-to-file-now-available-in.html' title='Textmate Go to File now available in Visual Studio 2010'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_vmq8pP42BnQ/TKQJQ2OwRZI/AAAAAAAACxQ/4ftjftseo6c/s72-c/textmate-go-to-file.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-8295283052799666163</id><published>2010-09-29T17:05:00.000-07:00</published><updated>2010-09-29T17:05:34.984-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>A code smell - try catch that swallows an exception</title><content type='html'>Came across a code smell this week - try catch that swallows an exception&lt;br /&gt;&lt;br /&gt;and yes the code that it wraps has some issues....&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_vmq8pP42BnQ/TKPUGdEJ7jI/AAAAAAAACxI/z5BV6Gqcujs/s1600/something-not-right-try-catch.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_vmq8pP42BnQ/TKPUGdEJ7jI/AAAAAAAACxI/z5BV6Gqcujs/s1600/something-not-right-try-catch.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-8295283052799666163?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/8295283052799666163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=8295283052799666163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/8295283052799666163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/8295283052799666163'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/09/code-smell-try-catch-that-swallows.html' title='A code smell - try catch that swallows an exception'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_vmq8pP42BnQ/TKPUGdEJ7jI/AAAAAAAACxI/z5BV6Gqcujs/s72-c/something-not-right-try-catch.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-6435470534618530641</id><published>2010-09-09T17:47:00.000-07:00</published><updated>2010-09-09T17:47:01.612-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nfl'/><title type='text'>NFL Live Stream Thursday and Sunday night on NBC</title><content type='html'>Awesome!&lt;br /&gt;&lt;br /&gt;does not seem like NBC or NFL is doing a lot to advertise the official free stream, but here we go!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://nbcsports.msnbc.com/id/26393211"&gt;http://nbcsports.msnbc.com/id/26393211&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_vmq8pP42BnQ/TIl_4gqM_JI/AAAAAAAACxA/T-BN242kf1I/s1600/nfl.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="331" src="http://2.bp.blogspot.com/_vmq8pP42BnQ/TIl_4gqM_JI/AAAAAAAACxA/T-BN242kf1I/s640/nfl.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-6435470534618530641?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/6435470534618530641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=6435470534618530641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6435470534618530641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6435470534618530641'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/09/nfl-live-stream-thursday-and-sunday.html' title='NFL Live Stream Thursday and Sunday night on NBC'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_vmq8pP42BnQ/TIl_4gqM_JI/AAAAAAAACxA/T-BN242kf1I/s72-c/nfl.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-1880365158094157027</id><published>2010-09-04T12:59:00.000-07:00</published><updated>2010-09-04T12:59:13.048-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tennis'/><title type='text'>2010 US Open live high quality stream</title><content type='html'>US Open has their high quality stream going again this year!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.usopen.org/en_US/interactive/video/live.html?promo=slamtracker"&gt;http://www.usopen.org/en_US/interactive/video/live.html?promo=slamtracker&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_vmq8pP42BnQ/TIKlAr19LXI/AAAAAAAACws/4sfOFZPi09A/s1600/us-open.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="486" src="http://4.bp.blogspot.com/_vmq8pP42BnQ/TIKlAr19LXI/AAAAAAAACws/4sfOFZPi09A/s640/us-open.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-1880365158094157027?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/1880365158094157027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=1880365158094157027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1880365158094157027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1880365158094157027'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/09/2010-us-open-live-high-quality-stream.html' title='2010 US Open live high quality stream'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_vmq8pP42BnQ/TIKlAr19LXI/AAAAAAAACws/4sfOFZPi09A/s72-c/us-open.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-1704485391180012857</id><published>2010-09-03T10:59:00.000-07:00</published><updated>2010-09-03T10:59:31.862-07:00</updated><title type='text'>You have got to be kidding</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Just did a search and ended up on msdn &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;I use Google Chrome for most of my web browsing - the msdn site pops up this 'Ad' to 'upgrade' to IE 8 - LOL!!!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_vmq8pP42BnQ/TIE3UjILqqI/AAAAAAAACwk/NPgiphXb9bQ/s1600/upgrade-ie-lol.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="188" src="http://1.bp.blogspot.com/_vmq8pP42BnQ/TIE3UjILqqI/AAAAAAAACwk/NPgiphXb9bQ/s640/upgrade-ie-lol.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-1704485391180012857?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/1704485391180012857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=1704485391180012857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1704485391180012857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1704485391180012857'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/09/you-have-got-to-be-kidding.html' title='You have got to be kidding'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_vmq8pP42BnQ/TIE3UjILqqI/AAAAAAAACwk/NPgiphXb9bQ/s72-c/upgrade-ie-lol.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-8584834156242236986</id><published>2010-08-20T10:40:00.000-07:00</published><updated>2010-08-20T10:52:24.419-07:00</updated><title type='text'>ruby 1.9.2 and rails 3rc with rvm</title><content type='html'>Get up and running with rails 3 release candidate on ruby 1.9.2&lt;br /&gt;&lt;br /&gt;First step install &lt;a href="http://rvm.beginrescueend.com/"&gt;rvm (ruby version manager)&lt;/a&gt;&amp;nbsp;- note that rvm does not work on windows, for windows try&amp;nbsp;&lt;a href="http://github.com/vertiginous/pik/"&gt;pik&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You will need to wait between each step as installation times will vary&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# install 1.9.2 using rvm&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #444444;"&gt;&lt;span class="Apple-style-span" style="color: #f3f3f3;"&gt;&amp;nbsp;rvm install 1.9.2 &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# this installed the official release 1.9.2-p0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# switch to 1.9.2&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #444444;"&gt;&lt;span class="Apple-style-span" style="color: #f3f3f3;"&gt;&amp;nbsp;rvm 1.9.2&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# gem install rails rc&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #444444;"&gt;&lt;span class="Apple-style-span" style="color: #f3f3f3;"&gt;&amp;nbsp;gem install rails --pre&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# create a new rails app, in this case 'sample-r3', this differs from older versions of rails; new is a required arg&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="background-color: #444444;"&gt;&lt;span class="Apple-style-span" style="color: #f3f3f3;"&gt;&amp;nbsp;rails new sample-r3&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# navigate to the root of your new rails app&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #444444;"&gt;&lt;span class="Apple-style-span" style="color: #f3f3f3;"&gt;&amp;nbsp;cd sample-r3&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# install the app dependencies - in this case sqlite3, see Gemfile in the root dir&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #444444;"&gt;&lt;span class="Apple-style-span" style="color: #f3f3f3;"&gt;&amp;nbsp;bundle install&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# generate a user scaffold, note g is shortcut for generate&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #444444;"&gt;&lt;span class="Apple-style-span" style="color: #f3f3f3;"&gt;&amp;nbsp;rails g scaffold User name:string email:string&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# create the database table users&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #444444;"&gt;&lt;span class="Apple-style-span" style="color: #f3f3f3;"&gt;&amp;nbsp;rake db:migrate&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #274e13;"&gt;# start up the rails server, note s is shortcut for server&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #444444;"&gt;&lt;span class="Apple-style-span" style="color: #f3f3f3;"&gt;&amp;nbsp;rails s&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Browse to http://localhost:3000/users and we are up and running and yes the scaffold pages still have the same old look and feel&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_vmq8pP42BnQ/TG69P81pQGI/AAAAAAAACwE/bg2WC5ruy9w/s1600/rails3-scaffold-01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="316" src="http://1.bp.blogspot.com/_vmq8pP42BnQ/TG69P81pQGI/AAAAAAAACwE/bg2WC5ruy9w/s640/rails3-scaffold-01.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_vmq8pP42BnQ/TG69RpI5fFI/AAAAAAAACwM/oxfKgmXN0Cs/s1600/rails3-scaffold-02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://4.bp.blogspot.com/_vmq8pP42BnQ/TG69RpI5fFI/AAAAAAAACwM/oxfKgmXN0Cs/s640/rails3-scaffold-02.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_vmq8pP42BnQ/TG69S8z2W5I/AAAAAAAACwU/_hfjTK-1hHo/s1600/rails3-scaffold-03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://2.bp.blogspot.com/_vmq8pP42BnQ/TG69S8z2W5I/AAAAAAAACwU/_hfjTK-1hHo/s640/rails3-scaffold-03.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In the past I have tried installing and running rails3 beta and rc on different versions of ruby and ran into some serious difficulties; but it has been painless on the official release of ruby 1.9.2&lt;br /&gt;&lt;br /&gt;As a final step we want to add a .rvmrc file to the root of the rails project, this will force rvm to load the correct ruby version when we are in this directory. This can be quite handy, if we were on a different version of ruby running 'rails s' would create a new rails app directory named 's' instead of running the server; from the terminal run&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #f3f3f3;"&gt;&lt;span class="Apple-style-span" style="background-color: #444444;"&gt;&amp;nbsp;echo "rvm 1.9.2" &amp;gt; .rvmrc&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I learned about the .rvmrc file from &lt;a href="http://cre8ivethought.com/blog/2010/08/18/the-rvmrc-file/"&gt;this post&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-8584834156242236986?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/8584834156242236986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=8584834156242236986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/8584834156242236986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/8584834156242236986'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/08/ruby-192-and-rails-3rc-with-rvm.html' title='ruby 1.9.2 and rails 3rc with rvm'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_vmq8pP42BnQ/TG69P81pQGI/AAAAAAAACwE/bg2WC5ruy9w/s72-c/rails3-scaffold-01.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-6131642672272370941</id><published>2010-08-19T12:50:00.000-07:00</published><updated>2010-08-19T12:50:42.289-07:00</updated><title type='text'>Updated Look!</title><content type='html'>Just switched to a different Blogger Template - much wider and mo better!&lt;br /&gt;&lt;br /&gt;Also consolidated my posting, I had 20+ code samples on another blog. Used the Blogger &lt;a href="http://www.google.com/support/blogger/bin/answer.py?hl=en&amp;amp;answer=97416"&gt;import / export tool&lt;/a&gt;&amp;nbsp;which was pretty seamless; needed to move a few code blocks over to &lt;a href="http://gist.github.com/"&gt;gists&lt;/a&gt; to get proper formatting but that was it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-6131642672272370941?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/6131642672272370941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=6131642672272370941' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6131642672272370941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6131642672272370941'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/08/updated-look.html' title='Updated Look!'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-2414820339317460284</id><published>2010-08-18T12:02:00.000-07:00</published><updated>2010-08-18T12:19:18.163-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>valid? vs errors.any? in rails</title><content type='html'>Recently got bit by checking valid? in some rails code, thought I would share.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In this situation I was manually adding to the errors collection of an ActiveRecord object and then calling valid? to see if the object was ok; this is not the normal style of validation on ActiveRecord objects, if I had been playing by the rules valid? would have done what I needed; it would check the current state of my objects attributes and 're-validate' the object.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This screen shot of an irb console session shows the issue I was running into&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/house9/4904826045/" title="valid-v-errors-any by House9, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4099/4904826045_aa14a62090_b.jpg" width="883" height="573" alt="valid-v-errors-any" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Taking a look at the source code for valid? it becomes obvious why the manually added errors get cleared, just not what I expected to happen&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/house9/4905416116/" title="valid-source by House9, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4096/4905416116_9983051ffb_b.jpg" width="855" height="373" alt="valid-source" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-2414820339317460284?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/2414820339317460284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=2414820339317460284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2414820339317460284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2414820339317460284'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/08/valid-vs-errorsany-in-rails.html' title='valid? vs errors.any? in rails'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4099/4904826045_aa14a62090_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-5124436552681259554</id><published>2010-07-28T15:55:00.000-07:00</published><updated>2010-07-28T16:02:31.904-07:00</updated><title type='text'>Adjustable Height Desks</title><content type='html'>Both of these look like pretty sweet adjustable height desks; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- &lt;a href="http://www.geekdesk.com/"&gt;Geek Desk&lt;/a&gt; electronic and runs $750 to $800&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;or &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- &lt;a href="http://www.steelcase.com/en/products/category/tables/adjustable/airtouch/pages/gallery.aspx"&gt;Airtouch&lt;/a&gt; uses air and no electronics - twice the price at $1500&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;hopefully I'll be able to try one of these out soon&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-5124436552681259554?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/5124436552681259554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=5124436552681259554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5124436552681259554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5124436552681259554'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/07/adjustable-height-desks.html' title='Adjustable Height Desks'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-4975474712681038883</id><published>2010-06-18T11:57:00.000-07:00</published><updated>2010-06-18T12:01:23.962-07:00</updated><title type='text'>Offsides? I think not...</title><content type='html'>&lt;object width="480" height="289"&gt;&lt;param name="movie" value="http://www.youtube.com/v/YGc6Kld7nzc&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/YGc6Kld7nzc&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"  width="480" height="289"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-4975474712681038883?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/4975474712681038883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=4975474712681038883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4975474712681038883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4975474712681038883'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/06/offsides-i-think-not.html' title='Offsides? I think not...'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-5871289828578045118</id><published>2010-06-01T13:34:00.000-07:00</published><updated>2010-06-01T13:48:43.400-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pomodoro'/><category scheme='http://www.blogger.com/atom/ns#' term='appcelerator'/><title type='text'>Pomodoro Timer application</title><content type='html'>&lt;div&gt;After reading an article on &lt;a href="http://www.infoq.com/"&gt;infoQ&lt;/a&gt;, I started using the &lt;a href="http://www.pomodorotechnique.com/"&gt;Pomodoro technique&lt;/a&gt;. It works pretty good, but I do still strugle with making my self take a break after the 25 minutes is up. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I recently spent a few days and created a simple timer application to monitor my pomodoros, it is pretty rough around the edges, but good enough for a first release.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I wanted to check out &lt;a href="http://www.appcelerator.com/"&gt;Appcelerator&lt;/a&gt; and their Titanium framework, this seemed like a simple enough app to get started with. Titanium allows you to build an app using html, css and javascript then the Titanium framework will 'compile' your code into a desktop application that targets all major operating systems; Windows, Mac and Linux.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the end I did not really use any of the Titanium Api in my code, just jquery, css and html.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Code is available here: &lt;a href="http://github.com/house9/tick-tock-desktop"&gt;http://github.com/house9/tick-tock-desktop&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;or download the binaries here: &lt;/div&gt;&lt;div&gt;&lt;a href="http://api.appcelerator.net/p/pages/app_page?token=H4m4AYM4"&gt;http://api.appcelerator.net/p/pages/app_page?token=H4m4AYM4&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_vmq8pP42BnQ/TAVvPbD_wOI/AAAAAAAACu4/VaLR-uOvEoI/s1600/tick-tock-desktop.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 219px;" src="http://4.bp.blogspot.com/_vmq8pP42BnQ/TAVvPbD_wOI/AAAAAAAACu4/VaLR-uOvEoI/s400/tick-tock-desktop.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5477906832519315682" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-5871289828578045118?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/5871289828578045118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=5871289828578045118' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5871289828578045118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5871289828578045118'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/06/pomodoro-timer-application.html' title='Pomodoro Timer application'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_vmq8pP42BnQ/TAVvPbD_wOI/AAAAAAAACu4/VaLR-uOvEoI/s72-c/tick-tock-desktop.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-5895278984863785742</id><published>2010-05-27T09:47:00.000-07:00</published><updated>2010-05-27T09:55:46.155-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>jsfiddle is awesome!</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://jsfiddle.net/"&gt;http://jsfiddle.net/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I had seen some blog posts on jsfiddle before, but just checked it out for the first time, a great way to experiment with javascript code, comes built in with jquery, mootools and more&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/PcvLS/embedded/"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-5895278984863785742?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/5895278984863785742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=5895278984863785742' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5895278984863785742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5895278984863785742'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/05/jsfiddle-is-awesome.html' title='jsfiddle is awesome!'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-781983790546067432</id><published>2010-05-24T08:39:00.000-07:00</published><updated>2010-05-24T08:50:43.686-07:00</updated><title type='text'>Snag-it for the Mac</title><content type='html'>I have used &lt;a href="http://www.techsmith.com/snagitmac/"&gt;Snag-it&lt;/a&gt; on Windows for many years - it is a great product!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;During the last year I have been using &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt; and Mac and been missing Snag-it; &lt;a href="http://www.ubuntugeek.com/shutter-featureful-screenshot-tool.html"&gt;Shutter&lt;/a&gt; on Ubuntu is 'ok', but not quite on the same level as Snag-it&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was happy to discover that there was a beta of Snag-it for the Mac&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.techsmith.com/snagitmac/"&gt;http://www.techsmith.com/snagitmac/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Free right now, been using it for the last month - it seems even better than the version for windows!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-781983790546067432?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/781983790546067432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=781983790546067432' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/781983790546067432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/781983790546067432'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/05/snag-it-for-mac.html' title='Snag-it for the Mac'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-2563852567880339268</id><published>2010-04-20T09:00:00.000-07:00</published><updated>2010-04-20T09:06:40.576-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='real estate'/><title type='text'>Need to find real estate comps? www.redfin.com</title><content type='html'>Need to find real estate comps? &lt;a href="http://www.redfin.com/"&gt;www.redfin.com&lt;/a&gt; is a sweet site. Not only can you search for new homes on the MLS listings but you can also search previous Sale Records. I don't know of any other site that offers the same functionality. Click the 'More Options' link by the 'Search Listings' button.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another really nice feature, If you find a bunch of homes for sale in a viewable area on the map, click the 'DOWNLOAD' link to get all of the info in excel (csv).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-2563852567880339268?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/2563852567880339268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=2563852567880339268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2563852567880339268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2563852567880339268'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/04/need-to-find-real-estate-comps.html' title='Need to find real estate comps? www.redfin.com'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-2091011292761152485</id><published>2010-04-20T08:54:00.000-07:00</published><updated>2010-04-20T09:00:14.660-07:00</updated><title type='text'>Uptime and performance monitoring made easy - pingdom.com</title><content type='html'>This is a nice service - &lt;a href="http://pingdom.com/"&gt;http://pingdom.com/&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Get an email or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SMS&lt;/span&gt;&lt;/span&gt; alert if your site is not responding. They ping your site from multiple servers in both North America and Europe.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They offer one free account where you can ping a single &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;url&lt;/span&gt; or get one of their payed monthly plans if you have additional sites to monitor.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-2091011292761152485?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/2091011292761152485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=2091011292761152485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2091011292761152485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2091011292761152485'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/04/uptime-and-performance-monitoring-made.html' title='Uptime and performance monitoring made easy - pingdom.com'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-3441095684048521335</id><published>2010-04-14T10:37:00.000-07:00</published><updated>2010-04-14T10:39:03.891-07:00</updated><title type='text'>GIMP install on MAC</title><content type='html'>Don't bother installing &lt;a href="http://www.gimp.org/"&gt;GIMP&lt;/a&gt; using &lt;a href="http://www.macports.org/"&gt;MacPorts&lt;/a&gt;; I started this process and it ran for over an hour before I stopped the install. It has alot of dependencies and MacPorts was busy installing all of them.&lt;br /&gt;&lt;br /&gt;Just go to &lt;a href="http://gimp.lisanet.de/Website/Download.html"&gt;http://gimp.lisanet.de/Website/Download.html&lt;/a&gt; and download the package for your OS version&lt;br /&gt;&lt;br /&gt;around 75mb download but installed in minutes :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-3441095684048521335?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/3441095684048521335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=3441095684048521335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3441095684048521335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3441095684048521335'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/04/gimp-install-on-mac.html' title='GIMP install on MAC'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-5308580727113870540</id><published>2010-03-23T08:32:00.000-07:00</published><updated>2010-08-19T10:37:11.897-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>sorting rails view with will_paginate plugin</title><content type='html'>This solution for sorting data on rails index actions does NOT use ajax. Sometimes sorting with ajax is nice but often it is not actually as user friendly; breaking the browser back button, etc...&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Disclaimer 1: this code is probably using all kinds of ruby anti-patterns :) - but it is a very simple implementation and so I just went with it...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Disclaimer 2: the title of the post might be a little miss leading as you can use this with or without the &lt;a href="http://wiki.github.com/mislav/will_paginate/"&gt;will_paginate&lt;/a&gt; plugin. In my case I am using it with the &lt;a href="http://wiki.github.com/mislav/will_paginate/"&gt;will_paginate&lt;/a&gt; plugin - and I highly recommend it!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;put this file in your rails lib directory /lib/sort_index.rb&lt;/div&gt;&lt;div&gt;&lt;script src="http://gist.github.com/341278.js?file=sort_index.rb"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;in your controller code, set up the SortIndex::Config (you can have more than one if you have multiple actions that need to support sorting&lt;/div&gt;&lt;div&gt;&lt;script src="http://gist.github.com/341290.js?file=sort_index_controller_usage.rb"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;then in your view code render your table headers using the sort object&lt;/div&gt;&lt;div&gt;&lt;script src="http://gist.github.com/341295.js?file=sort_index_view_usage.html.erb"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Does not support the following:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;additional attributes on the anchor tags&lt;/li&gt;&lt;li&gt;additional attributes on the table header tags&lt;/li&gt;&lt;li&gt;additional query string parameters - might add this later, would be nice for search results&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-5308580727113870540?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/5308580727113870540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=5308580727113870540' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5308580727113870540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5308580727113870540'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/03/sorting-rails-view-with-willpaginate.html' title='sorting rails view with will_paginate plugin'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-7447871340564265358</id><published>2010-03-15T09:37:00.001-07:00</published><updated>2010-03-15T09:42:52.648-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Digg style css for will_paginate plugin</title><content type='html'>Just started using the &lt;a href="http://github.com/mislav/will_paginate"&gt;will_paginate&lt;/a&gt; plugin for my rails application. I wanted a Flickr or Digg style applied to the paging controls, did not find anything that came 'out 0f the box'. After a few google searches I came across this &lt;a href="http://workingwithrails.com/railsplugin/4765-will-paginate"&gt;link&lt;/a&gt; which had an example - apparently from an older version of the README file.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;here is that css for reference&lt;/div&gt;&lt;div&gt;&lt;script src="http://gist.github.com/333019.js?file=Digg+style+css+for+will_paginate"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-7447871340564265358?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/7447871340564265358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=7447871340564265358' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7447871340564265358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7447871340564265358'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/03/digg-style-css-for-willpaginate-plugin.html' title='Digg style css for will_paginate plugin'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-4984902668888798396</id><published>2010-03-11T09:04:00.000-08:00</published><updated>2010-03-11T09:09:54.334-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>exclude .svn results with egrep recursive search</title><content type='html'>The exclude-dir option works nicely, I was previously was using --exclude and it would include some sub-dir .svn files&lt;br /&gt;&lt;div&gt;&lt;blockquote&gt;egrep --exclude-dir=\.svn -r -n {search-criteria} {directory}&lt;/blockquote&gt;i.e. find all TODO comments in the current directory and all sub directories&lt;blockquote&gt;egrep --exclude-dir=\.svn -r -n TODO .&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;Found this in the comments on this post - &lt;a href="http://antoniolorusso.com/2008/05/12/grep-excluding-svn-dirs/"&gt;http://antoniolorusso.com/2008/05/12/grep-excluding-svn-dirs/ &lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-4984902668888798396?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/4984902668888798396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=4984902668888798396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4984902668888798396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4984902668888798396'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/03/exclude-svn-results-with-egrep.html' title='exclude .svn results with egrep recursive search'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-8565195209810849627</id><published>2010-03-05T15:11:00.001-08:00</published><updated>2010-03-05T15:16:49.657-08:00</updated><title type='text'>cut back on the blog reading</title><content type='html'>I had 200+ subscriptions in my rss reader - way too many &lt;div&gt;I just cut it back to a short list. No doubt the list will start to grow again...&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_vmq8pP42BnQ/S5GQv0jIRPI/AAAAAAAACtc/jc62zNF4rGk/s1600-h/screenshot_002.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 132px; height: 400px;" src="http://3.bp.blogspot.com/_vmq8pP42BnQ/S5GQv0jIRPI/AAAAAAAACtc/jc62zNF4rGk/s400/screenshot_002.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5445292575701878002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-8565195209810849627?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/8565195209810849627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=8565195209810849627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/8565195209810849627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/8565195209810849627'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/03/cut-back-on-blog-reading.html' title='cut back on the blog reading'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_vmq8pP42BnQ/S5GQv0jIRPI/AAAAAAAACtc/jc62zNF4rGk/s72-c/screenshot_002.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-748475104215865744</id><published>2010-03-04T07:55:00.000-08:00</published><updated>2010-03-04T08:02:06.553-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>"Impossible to connect to file" error opening dBase file with open office on ubuntu</title><content type='html'>Turns out the ubuntu distribution of Open Office does not include the 'Database' product by default, it tries to open the file with the spread sheet program which can not handle it and errors with "Impossible to connect to file". The fix is to install the database product&lt;div&gt;&lt;blockquote&gt;System -&gt; Administration -&gt; Synaptic Package Manager&lt;/blockquote&gt;&lt;blockquote&gt;install openoffice.org-base&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;After installing you should see the 'Open Office.org Database' under Applications menu&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_vmq8pP42BnQ/S4_ZIqf8CDI/AAAAAAAACtM/3xaLlEZQDy4/s1600-h/screenshot_001.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 254px;" src="http://4.bp.blogspot.com/_vmq8pP42BnQ/S4_ZIqf8CDI/AAAAAAAACtM/3xaLlEZQDy4/s320/screenshot_001.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5444809217384646706" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;u&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div&gt;Found the answer from this &lt;a href="http://www.linuxformat.co.uk/forums/viewtopic.php?t=8665"&gt;post&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-748475104215865744?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/748475104215865744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=748475104215865744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/748475104215865744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/748475104215865744'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/03/impossible-to-connect-to-file-error.html' title='&quot;Impossible to connect to file&quot; error opening dBase file with open office on ubuntu'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_vmq8pP42BnQ/S4_ZIqf8CDI/AAAAAAAACtM/3xaLlEZQDy4/s72-c/screenshot_001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-1325311134483921897</id><published>2010-02-17T07:39:00.001-08:00</published><updated>2010-02-17T08:00:17.466-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>rails send_data fails on IE when SSL enabled</title><content type='html'>Came across a nasty issue using rails &lt;a href="http://api.rubyonrails.org/classes/ActionController/Streaming.html#M000422"&gt;send_data&lt;/a&gt; with IE. Everything worked fine until the pages were running under SSL / HTTPS. Turns out the issue is with file download over SSL when the &lt;a href="http://www.metatags.info/meta_http_equiv_cache_control"&gt;Cache-Control&lt;/a&gt; and &lt;a href="http://www.metatags.info/meta_http_equiv_pragma"&gt;Pragma&lt;/a&gt; html headers are set to no-cache.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The error message from IE&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;Internet Explorer was unable to open this site. The requested site is either unavailable or cannot be found. Please try again later.&lt;/blockquote&gt;&lt;div&gt;The fix...&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;# before calling send_data&lt;br /&gt;response.headers.delete("Pragma")&lt;br /&gt;response.headers.delete('Cache-Control')&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;This issue is not restricted to rails, any server side code that sets no-cache is subject to the same issue. Glad I was able to find this &lt;a href="http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/ef85d2af990f6c31/c500d6bce04dcc5f?lnk=gst&amp;amp;q=815313#c500d6bce04dcc5f"&gt;post&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;see also &lt;a href="http://support.microsoft.com/kb/316431/"&gt;kb-316431&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-1325311134483921897?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/1325311134483921897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=1325311134483921897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1325311134483921897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1325311134483921897'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/02/rails-senddata-fails-on-ie-when-ssl.html' title='rails send_data fails on IE when SSL enabled'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-169156350435285035</id><published>2010-02-16T09:34:00.000-08:00</published><updated>2010-02-16T09:41:41.892-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webmaster tools'/><category scheme='http://www.blogger.com/atom/ns#' term='sitemap'/><title type='text'>Google Webmaster Tools Sitemap.xml issues</title><content type='html'>&lt;div&gt;After uploading my &lt;a href="http://www.sitemaps.org/"&gt;sitemap.xml&lt;/a&gt; file to &lt;a href="https://www.google.com/webmasters/tools/home"&gt;Google Webmaster Tools&lt;/a&gt; I received the following error message and no additional error details were included:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;Error: The last attempt at downloading the Sitemap failed. The details below are representative of the last successful download.&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I searched around a bit and found a forum post where someone said they get this error '&lt;i&gt;sometimes&lt;/i&gt;', but after switching to use a gzip formatted sitemap.xml file the error went away&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;on ubuntu&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;gzip ./sitemap.xml&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;compresses the file to ./sitemap.xml.gz and deletes the sitemap.xml file by default&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;after uploading Google was able to process without issue&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-169156350435285035?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/169156350435285035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=169156350435285035' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/169156350435285035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/169156350435285035'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/02/google-webmaster-tools-sitemapxml.html' title='Google Webmaster Tools Sitemap.xml issues'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-4585905320069263531</id><published>2010-01-26T13:36:00.000-08:00</published><updated>2010-01-26T13:39:06.085-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>install older version of rails and without the docs</title><content type='html'>I always forget these&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;sudo gem install --no-rdoc --no-ri --version 2.3.4 rails &lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-4585905320069263531?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/4585905320069263531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=4585905320069263531' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4585905320069263531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4585905320069263531'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/01/install-older-version-of-rails-and.html' title='install older version of rails and without the docs'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-9170564148929506852</id><published>2010-01-18T07:21:00.000-08:00</published><updated>2010-01-18T07:23:24.789-08:00</updated><title type='text'>Neat site to generate graphics</title><content type='html'>I needed to generate a sign up button - this site is so much easier than opening photoshop&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://cooltext.com/"&gt;http://cooltext.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks cooltext!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-9170564148929506852?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/9170564148929506852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=9170564148929506852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/9170564148929506852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/9170564148929506852'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/01/neat-site-to-generate-graphics.html' title='Neat site to generate graphics'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-1914994205810566134</id><published>2010-01-06T10:03:00.000-08:00</published><updated>2010-08-19T10:38:03.206-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><title type='text'>Ruby Http Get with Net::HTTP</title><content type='html'>&lt;script src="http://gist.github.com/270459.js"&gt;&lt;/script&gt;&lt;br /&gt;Resources&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/HTTP.html"&gt;Net::HTTP ruby docs&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/1252210/parametrized-get-request-in-ruby"&gt;Stackoverflow post&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="display:none"&gt;&lt;br /&gt;require 'net/http'&lt;br /&gt;require 'uri'&lt;br /&gt;&lt;br /&gt;def get_html_content(requested_url)&lt;br /&gt;url = URI.parse(requested_url)&lt;br /&gt;full_path = (url.query.blank?) ? url.path : "#{url.path}?#{url.query}"&lt;br /&gt;the_request = Net::HTTP::Get.new(full_path)&lt;br /&gt;&lt;br /&gt;the_response = Net::HTTP.start(url.host, url.port) { |http|&lt;br /&gt;http.request(the_request)&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;raise "Response was not 200, response was #{the_response.code}" if the_response.code != "200"&lt;br /&gt;return the_response.body       &lt;br /&gt;end   &lt;br /&gt;&lt;br /&gt;# this will fail with ArgumentError: HTTP request path is empty&lt;br /&gt;s = get_html_content("http://www.google.com")&lt;br /&gt;# these should be fine&lt;br /&gt;s = get_html_content("http://www.google.com/") &lt;br /&gt;s = get_html_content("http://github.com/search?q=http")&lt;br /&gt;# above code does not handle redirects but raises exception for non-200 &lt;br /&gt;s = get_html_content("http://www.yahoo.com/") # http 302&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-1914994205810566134?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/1914994205810566134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=1914994205810566134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1914994205810566134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1914994205810566134'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/01/ruby-http-get-with-nethttp.html' title='Ruby Http Get with Net::HTTP'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-3257079656410879915</id><published>2010-01-06T09:56:00.000-08:00</published><updated>2010-08-19T10:38:23.175-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='regex'/><title type='text'>Ruby Regex to remove script tags</title><content type='html'>&lt;script src="http://gist.github.com/270463.js"&gt;&lt;/script&gt;&lt;br /&gt;Resources&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://rubular.com/"&gt;Rubular&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://jamesmckay.net/2008/05/how-to-match-any-character-including-newlines-in-a-javascript-regular-expression/"&gt;Match any character in RegEx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://ruby-doc.org/core/classes/String.html#M000817"&gt;Ruby String gsub&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-3257079656410879915?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/3257079656410879915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=3257079656410879915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3257079656410879915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3257079656410879915'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2010/01/ruby-regex-to-remove-script-tags.html' title='Ruby Regex to remove script tags'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-1414886818176501756</id><published>2009-12-09T10:21:00.000-08:00</published><updated>2009-12-09T10:23:26.740-08:00</updated><title type='text'>imeem acquired by myspace - bummer</title><content type='html'>nothing else to say really, imeem was a great service&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've never liked myspace&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-1414886818176501756?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/1414886818176501756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=1414886818176501756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1414886818176501756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1414886818176501756'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/12/imeem-acquired-by-myspace-bummer.html' title='imeem acquired by myspace - bummer'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-1852257479614993063</id><published>2009-11-12T09:55:00.000-08:00</published><updated>2009-11-12T10:11:34.533-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='heroku'/><title type='text'>Heroku - HTTP 502 Error</title><content type='html'>&lt;p&gt;This might be helpful to someone? &lt;/p&gt;&lt;p&gt;I was receiving 'App Failed To Respond (HTTP 502) Bad Gateway' errors when deploying my application on &lt;a href="http://heroku.com/"&gt;Heroku&lt;/a&gt;. Reading the &lt;a href="http://docs.heroku.com/errors"&gt;error codes&lt;/a&gt; page did not help me solve the problem, it took awhile but I was finally able to track it down.&lt;/p&gt;&lt;p&gt;The error was being generated in the browser but checking the rails logs, the requests were returning HTTP 200 success codes, so the problem was being generated at the web server level on the &lt;a href="http://heroku.com/"&gt;Heroku&lt;/a&gt; stack.&lt;/p&gt;&lt;p&gt;Turns out the problem was caused by setting response.header for no browser caching. I was using code similar to this &lt;a href="http://arjunghosh.wordpress.com/2008/04/29/how-to-force-the-browser-to-not-cache-in-rails/"&gt;post&lt;/a&gt;. Everything worked fine after I removed this line&lt;/p&gt;&lt;ul&gt;&lt;li&gt;response.headers["Expires"] = 0&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-1852257479614993063?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/1852257479614993063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=1852257479614993063' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1852257479614993063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1852257479614993063'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/11/heroku-http-502-error.html' title='Heroku - HTTP 502 Error'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-147057643862490845</id><published>2009-11-12T09:36:00.000-08:00</published><updated>2009-11-12T09:53:08.314-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='heroku'/><title type='text'>Heroku - sending email with Gmail</title><content type='html'>&lt;p&gt;I have been working on deploying a &lt;a href="http://guides.rubyonrails.org/"&gt;Rails&lt;/a&gt; application to &lt;a href="http://heroku.com/"&gt;Heroku&lt;/a&gt;. A couple of gotchas I ran into when following this post "&lt;a href="http://blog.heroku.com/archives/2009/11/9/tech_sending_email_with_gmail/"&gt;Sending email with Gmail&lt;/a&gt;"&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Don't use a dollar sign ($) in your password &lt;/li&gt;&lt;li&gt;this can work locally if you put single quotes around the value, but on the heroku server it saved the entire string but at runtime would truncate it at the dollar sign&lt;/li&gt;&lt;li&gt;for example using the password '&lt;em&gt;left-side$right-side&lt;/em&gt;' &lt;/li&gt;&lt;li&gt;heroku config:add GMAIL_SMTP_PASSWORD=left-side$right-side&lt;/li&gt;&lt;li&gt;heroku config returns &gt; GMAIL_SMTP_PASSWORD=left-side$right-side&lt;/li&gt;&lt;li&gt;heroku console &lt;/li&gt;&lt;li&gt;type ENV['GMAIL_SMTP_PASSWORD'] returns &gt; left-side&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Heroku is running Ruby 1.8.6, locally I am running Ruby 1.8.7, I made a small hack to the plugin to avoid errors in development mode&lt;/p&gt;&lt;p&gt;./vendor/plugins/gmail_smtp/init.rb&lt;br /&gt;changed the first line to&lt;br /&gt;require 'smtp_tls' if RUBY_VERSION &lt; "1.8.7" &lt;/p&gt;&lt;p&gt;tls is already handled in 1.8.7 and this code must have been creating some type of conflict&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-147057643862490845?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/147057643862490845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=147057643862490845' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/147057643862490845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/147057643862490845'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/11/heroku-sending-email-with-gmail.html' title='Heroku - sending email with Gmail'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-9071437442130355748</id><published>2009-10-25T08:34:00.000-07:00</published><updated>2009-10-25T09:09:24.829-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>imeem on 64-bit ubuntu</title><content type='html'>&lt;p&gt;Getting flash to work correctly on 64-bit &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt; can be challenging. By following various blog and forum posts I was able to get it to work, but never the flash player for &lt;a href="http://www.imeem.com/"&gt;imeem&lt;/a&gt;. Every now and again I would try to re-install flash and see if it would work for imeem but until last night I was never successful. &lt;/p&gt;&lt;p&gt;It turns out that imeem will only work with the 32-bit flash player. After so much work to get the 64-bit player working in Firefox 3.0 and 3.5 I did not want to remove it so I downloaded Opera and installed the 32-bit player under its plugin directory and &lt;a href="http://www.imeem.com/"&gt;imeem&lt;/a&gt; works great!&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Download and install &lt;a href="http://www.opera.com/browser/download/"&gt;Opera&lt;/a&gt;&lt;/li&gt;&lt;li&gt;verify that you cannot play music in &lt;a href="http://www.imeem.com/"&gt;imeem&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Close Opera&lt;/li&gt;&lt;li&gt;download the &lt;a href="http://get.adobe.com/flashplayer/"&gt;32-bit flash player&lt;/a&gt; in '.tar.gz' format&lt;/li&gt;&lt;li&gt;extract the libflashplayer.so file from the archive&lt;/li&gt;&lt;li&gt;then you will need to put this in the directory /usr/lib/opera/plugins/&lt;/li&gt;&lt;li&gt;you won't have permissions to write to that directory unless you are in sudo mode&lt;/li&gt;&lt;li&gt;open a terminal and type '&lt;em&gt;sudo nautilus&lt;/em&gt;'&lt;/li&gt;&lt;li&gt;copy the file into the directory (you could do this from the terminal window also probably '&lt;em&gt;sudo mv libflashplayer.so /usr/lib/opera/plugins/libflashplayer.so&lt;/em&gt;'&lt;/li&gt;&lt;li&gt;Open Opera&lt;/li&gt;&lt;li&gt;check the plugins - type opera:plugins in the address bar&lt;/li&gt;&lt;li&gt;you should see Shockwave Flash and it should be pointing to the libflashplayer.so file under opera plugins, by default my opera installation was pointing to /usr/lib/mozilla/plugins/ for the flash plugin, my guess is opera looks for plugins in its own directory and if not found then looks in mozilla directory&lt;/li&gt;&lt;li&gt;you should now be able to play music with imeem!&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I am running Ubuntu 9.04 Jaunty Jackalope by the way. Here are some links that might work to get the 64-bit player working for Firefox&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://art.ubuntuforums.org/showthread.php?t=1297385"&gt;http://art.ubuntuforums.org/showthread.php?t=1297385&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ubuntugeek.com/how-to-install-adobe-flash-player-10-in-ubuntu-804-hardy-heron.html"&gt;http://www.ubuntugeek.com/how-to-install-adobe-flash-player-10-in-ubuntu-804-hardy-heron.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://art.ubuntuforums.org/showthread.php?t=1292438"&gt;http://art.ubuntuforums.org/showthread.php?t=1292438&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cyberciti.biz/tips/install-flash-10-ubuntu-linux-64bit.html"&gt;http://www.cyberciti.biz/tips/install-flash-10-ubuntu-linux-64bit.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;this last one is probably the best bet, check the comments there&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-9071437442130355748?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/9071437442130355748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=9071437442130355748' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/9071437442130355748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/9071437442130355748'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/10/imeem-on-64-bit-ubuntu.html' title='imeem on 64-bit ubuntu'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-4901103455101345323</id><published>2009-10-24T22:16:00.000-07:00</published><updated>2009-10-24T22:31:31.657-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>Factory Girl makes rails testing so much easier</title><content type='html'>&lt;p&gt;Factory Girl makes rails testing so much easier. I watched a Railscasts on Factory Girl recently but had been putting off trying it out until last week. Glad I gave it a try - now I can say good-bye to fixtures and just write my tests!&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://thoughtbot.com/projects/factory_girl"&gt;Factory Girl&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://railscasts.com/episodes/158-factories-not-fixtures"&gt;Railscast on Factory Girl&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Factory Girl is developed by &lt;a href="http://thoughtbot.com/projects"&gt;thoughbot&lt;/a&gt;; they have some great open source projects, check out &lt;a href="http://thoughtbot.com/projects/shoulda"&gt;Shoulda&lt;/a&gt; to make your rails testing even easier.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-4901103455101345323?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/4901103455101345323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=4901103455101345323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4901103455101345323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4901103455101345323'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/10/factory-girl-makes-rails-testing-so.html' title='Factory Girl makes rails testing so much easier'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-2737078489275334439</id><published>2009-10-17T08:48:00.000-07:00</published><updated>2009-10-17T08:55:52.269-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>convert mkv files to dvd with ubuntu</title><content type='html'>&lt;p&gt;Turns out there is a great program for this - my guess is it works well with other formats such as avi, mpeg, etc...&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.rastersoft.com/programas/devede.html"&gt;DeVeDe&lt;/a&gt;, if you are running 9.04 (&lt;a href="https://wiki.ubuntu.com/JauntyJackalope"&gt;jaunty&lt;/a&gt;) or higher it is in the repositories&lt;/p&gt;&lt;p&gt;System -&gt; Administration -&gt; Synaptic Package Manager&lt;/p&gt;&lt;p&gt;enter 'devede' in the search and then install&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-2737078489275334439?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/2737078489275334439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=2737078489275334439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2737078489275334439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2737078489275334439'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/10/convert-mkv-files-to-dvd-with-ubuntu.html' title='convert mkv files to dvd with ubuntu'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-4012719313743387443</id><published>2009-09-25T07:58:00.000-07:00</published><updated>2010-08-19T10:39:16.774-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xhtml'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>Attribute "target" exists, but can not be used for this element.</title><content type='html'>These days I am all about valid xhtml and was surprised to receive this validation error when using the target attribute on an anchor tag.&lt;div style="font-style: italic;"&gt;&lt;blockquote style="background-color: yellow;"&gt;Attribute "target" exists, but can not be used for this element.&lt;/blockquote&gt;&lt;/div&gt;&lt;br /&gt;&lt;script src="http://gist.github.com/193604.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;div&gt;I found a nice work around that does not involve window.open, using jquery we can hack the attribute on 'after' the dom has loaded.&lt;/div&gt;&lt;br /&gt;&lt;script src="http://gist.github.com/193608.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;Now instead of target='_blank' you can just use class='target-blank', if the browser does not support javascript it will not open in a new window but the link will still work - and we have our valid xhtml.&lt;/div&gt;&lt;br /&gt;Resources&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.cre8asiteforums.com/forums/index.php?showtopic=58559"&gt;cre8asiteforums&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://validator.w3.org/#validate_by_input+with_options"&gt;W3C Markup Validation Service&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://jquery.com/"&gt;JQuery&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-4012719313743387443?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/4012719313743387443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=4012719313743387443' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4012719313743387443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4012719313743387443'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/09/attribute-exists-but-can-not-be-used.html' title='Attribute &amp;quot;target&amp;quot; exists, but can not be used for this element.'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-2940184229019375132</id><published>2009-09-02T13:10:00.000-07:00</published><updated>2009-09-02T13:15:13.783-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mssql'/><title type='text'>Procedure sp_droplogin, Line 93 Login is aliased or mapped to a user in one or more database(s)</title><content type='html'>&lt;div&gt;Trying to remove a MSSQL login from a database server, recieve the following eror&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote&gt;Msg 15175, Level 16, State 1, Procedure sp_droplogin, Line 93&lt;br /&gt;Login 'qa' is aliased or mapped to a user in one or more database(s). Drop the user or alias before dropping the login.&lt;/blockquote&gt;&lt;br /&gt;&lt;div&gt;Solution: run this command to determine what alias or groups the login is associated with and then remove those; might be nice if they just added this to the error message?&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;sp_helpuser 'qa'&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-2940184229019375132?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/2940184229019375132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=2940184229019375132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2940184229019375132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2940184229019375132'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/09/procedure-spdroplogin-line-93-login-is.html' title='Procedure sp_droplogin, Line 93 Login is aliased or mapped to a user in one or more database(s)'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-4473923986872742222</id><published>2009-08-23T11:50:00.000-07:00</published><updated>2009-08-23T12:14:58.089-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>scrolling screen shot on ubuntu</title><content type='html'>&lt;p&gt;I've been using &lt;a href="http://www.ubuntu.com/"&gt;ubuntu&lt;/a&gt; for the last 6 months, really like it! But also really missing &lt;a href="http://www.techsmith.com/screen-capture.asp"&gt;SnagIt&lt;/a&gt; :(&lt;/p&gt;&lt;p&gt;so far I have come across these screen shot tools&lt;/p&gt;&lt;ul&gt;&lt;li&gt;built in 'save screen' program - read this &lt;a href="http://tips.webdesign10.com/how-to-take-a-screenshot-on-ubuntu-linux"&gt;post&lt;/a&gt; for info about that and others&lt;/li&gt;&lt;li&gt;&lt;a href="http://shutter-project.org/faq-help/ppa-installation-guide/"&gt;Shutter&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;but none that I came across would do scrolling screen shots; currently I only needed scrolling screen shots of web pages and I just came across a great tool for that - a firefox &lt;a href="https://addons.mozilla.org/en-US/firefox/"&gt;add-on&lt;/a&gt; called &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3408"&gt;Abduction&lt;/a&gt;, it is really easy to use. &lt;/p&gt;&lt;p&gt;For full page screen shots (including all scrollable regions) or for cropped sections of a page. Just right click on the page and select 'Save Page as Image', if you are over an 'element' it will auto select that as the cropped area, you can then adjust the crop and save, if you want the entire page the easiest seems to be right clicking where there are no elements below the mouse and then adjust the fully selected page as needed&lt;/p&gt;&lt;p&gt;The saved png can then be opened in Shutter for applying arrows, boxes, etc...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-4473923986872742222?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/4473923986872742222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=4473923986872742222' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4473923986872742222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4473923986872742222'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/08/scrolling-screen-shot-on-ubuntu.html' title='scrolling screen shot on ubuntu'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-3385208502870759903</id><published>2009-08-21T13:09:00.000-07:00</published><updated>2010-08-19T10:39:39.307-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>Ajax error handling with ruby on rails and jquery</title><content type='html'>&lt;p&gt;This sample is just a slight modification of this post '&lt;a href="http://www.railsfire.com/article/handling-ajax-errors-and-displaying-friendly-error-messages-users"&gt;Handling AJAX errors and displaying friendly error messages to users&lt;/a&gt;'. Basically I wanted to maintain the existing rails error handling for non-ajax pages and then have good handling for errors in both development and production mode; i.e. get errors in the browser when in development mode and show a nice message when in production mode.&lt;/p&gt;&lt;p&gt;Modify /app/controllers/application.rb; add the rescue_from macro and the handler_exception method&lt;/p&gt;&lt;br /&gt;&lt;script src="http://gist.github.com/172342.js"&gt;&lt;/script&gt;&lt;p&gt;Then add a global javascript method for presenting the errors; most likely in application.js&lt;/p&gt;&lt;script src="http://gist.github.com/172345.js"&gt;&lt;/script&gt;&lt;p&gt;Then a sample usage, jquery making an ajax post to a rails controller action&lt;/p&gt;&lt;script src="http://gist.github.com/172347.js"&gt;&lt;/script&gt;&lt;p&gt;in development mode the error message is returned in an easier to read view in the firebug console and an alert message is presented that has a truncated version of the error&lt;/p&gt;&lt;div&gt;&lt;img src="http://lh4.ggpht.com/_vmq8pP42BnQ/So8KnG3kC8I/AAAAAAAACpY/MfilcJSygvQ/s800/ajax_error_development.png" alt="dev mode" /&gt;&lt;/div&gt;&lt;p&gt;in production mode just a friendly error message.&lt;/p&gt;&lt;div&gt;&lt;img src="http://lh4.ggpht.com/_vmq8pP42BnQ/So8JB8thiUI/AAAAAAAACpQ/g-OZI0E94Qk/s800/screen-shot-002.png" alt="production mode" /&gt;&lt;/div&gt;&lt;p&gt;Resources&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.railsfire.com/article/handling-ajax-errors-and-displaying-friendly-error-messages-users"&gt;Handling AJAX errors and displaying friendly error messages to users&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Rails source code &lt;a href="http://api.rubyonrails.org/classes/ActionController/Rescue.html"&gt;rescue.rb&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Rails views source on your install lib/action_controller/templates/rescues&lt;/li&gt;&lt;li&gt;&lt;a href="http://docs.jquery.com/Ajax/jQuery.ajax"&gt;jquery ajax&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-3385208502870759903?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/3385208502870759903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=3385208502870759903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3385208502870759903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3385208502870759903'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/08/ajax-error-handling-with-ruby-on-rails.html' title='Ajax error handling with ruby on rails and jquery'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_vmq8pP42BnQ/So8KnG3kC8I/AAAAAAAACpY/MfilcJSygvQ/s72-c/ajax_error_development.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-2698714960281203432</id><published>2009-08-04T13:54:00.000-07:00</published><updated>2010-08-19T10:39:55.614-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><title type='text'>Get list of MSSQL jobs that are currently running</title><content type='html'>The following sql statement will return information about the currently executing MSSQL jobs.&lt;div&gt;Run it against the msdb database&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;script src="http://gist.github.com/161536.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Resources&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms186722.aspx"&gt;MSDN: sp_help_job&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sqlteam.com/article/controlling-jobs-in-transact-sql"&gt;Controlling Jobs in Transact-SQL&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-2698714960281203432?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/2698714960281203432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=2698714960281203432' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2698714960281203432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2698714960281203432'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/08/get-list-of-mssql-jobs-that-are.html' title='Get list of MSSQL jobs that are currently running'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-5140797055340791612</id><published>2009-07-18T16:40:00.000-07:00</published><updated>2009-07-18T16:57:19.421-07:00</updated><title type='text'>replace keyboard on Sony Vaio laptop PCG-K23 (PCG-9RLF)</title><content type='html'>just replaced the keyboard on my sisters Sony Vaio laptop - on the bottom is says it is a PCG-9RLF, but then it also says it is a PCG-K23? anyhow I had a hard time finding anything on the web, then I finally stumbled on this page which helped alot&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://www.laptoprepair101.com/laptop/2007/08/30/removing-replacing-laptop-keyboard/"&gt;http://www.laptoprepair101.com/laptop/2007/08/30/removing-replacing-laptop-keyboard/&lt;/a&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;You don't need to loosen any screws on the bottom - I thought this would be needed and ended up wasting a bit of time going in the wrong direction.&lt;/li&gt;&lt;li&gt;At the top of the keyboard is a plate that you need to pry up, there are 4 slots you can stick a flat screw driver under (you can't see them unless you press the keys down), this plate is also part of the screen hinge and the power cord that goes to the screen is attached so be CAREFUL!&lt;/li&gt;&lt;li&gt;Then there are 3 screws that hold the keyboard in place, loosen those&lt;/li&gt;&lt;li&gt;The keyboard will hinge up from the bottom&lt;/li&gt;&lt;li&gt;Then you need to disconnect the cable that goes to the motherboard&lt;/li&gt;&lt;li&gt;I ended up pulling this out without much effort&lt;/li&gt;&lt;li&gt;but then it was really hard to get the new one back in&lt;/li&gt;&lt;li&gt;turns out the slot has an open / closed 'mode', using a small screw driver I was able to get it to open up&lt;/li&gt;&lt;li&gt;Then just put everything back, turned out to be relatively easy in the end, I am definitely not an expert when it comes to computer hardware but so far this has been a success!&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-5140797055340791612?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/5140797055340791612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=5140797055340791612' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5140797055340791612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5140797055340791612'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/07/replace-keyboard-on-sony-vaio-laptop.html' title='replace keyboard on Sony Vaio laptop PCG-K23 (PCG-9RLF)'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-130656941168045314</id><published>2009-06-27T16:18:00.000-07:00</published><updated>2009-06-27T16:22:51.318-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spain'/><title type='text'>Frontair Congress, Barcelona Spain</title><content type='html'>Alberedes 16&lt;br /&gt;Sant Boi de Llobregat, Barcelona 08830&lt;br /&gt;Spain&lt;br /&gt;&lt;br /&gt;We ended up staying here our last night because it was 'close' to the airport and included a free shuttle to the airport. But since we were traveling by train and bus it was not so easy to get here the night before. If I was going to do it again I would stay somewhere closer to a metro stop near 'downtown'; there are trains running direct to the airport all the time.&lt;br /&gt;&lt;br /&gt;They did have an indoor pool.&lt;br /&gt;&lt;iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=Frontair+Congress+barcelona&amp;amp;sll=41.117513,1.257119&amp;amp;sspn=0.014581,0.038581&amp;amp;gl=us&amp;amp;ie=UTF8&amp;amp;ll=41.338927,2.054529&amp;amp;spn=0.014533,0.038581&amp;amp;z=14&amp;amp;iwloc=A&amp;amp;cid=4434427665291595722&amp;amp;output=embed"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.com/maps?f=q&amp;amp;source=embed&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=Frontair+Congress+barcelona&amp;amp;sll=41.117513,1.257119&amp;amp;sspn=0.014581,0.038581&amp;amp;gl=us&amp;amp;ie=UTF8&amp;amp;ll=41.338927,2.054529&amp;amp;spn=0.014533,0.038581&amp;amp;z=14&amp;amp;iwloc=A&amp;amp;cid=4434427665291595722" style="color:#0000FF;text-align:left"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/l3149O7yuB_K1aML_eM4KQ?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_vmq8pP42BnQ/SkEPoE3Z1ZI/AAAAAAAACnA/zxXvoTyM52w/s400/IMG_2118.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/W4Xbup-Y0aAUnkHCFY9RIQ?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_vmq8pP42BnQ/SkEPosUfFUI/AAAAAAAACnE/d1svPM26lz0/s400/IMG_2119.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/LD1Gr5Mb-brAnDt1xXxVjA?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_vmq8pP42BnQ/SkEPo3227XI/AAAAAAAACnI/G4CHfI0X-v0/s400/IMG_2120.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/5T1QybyrgLKLaOicmu0GEA?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_vmq8pP42BnQ/SkEPpRCDWsI/AAAAAAAACnM/PwAURypK_Aw/s400/IMG_2121.JPG" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-130656941168045314?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/130656941168045314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=130656941168045314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/130656941168045314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/130656941168045314'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/06/frontair-congress-barcelona-spain.html' title='Frontair Congress, Barcelona Spain'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_vmq8pP42BnQ/SkEPoE3Z1ZI/AAAAAAAACnA/zxXvoTyM52w/s72-c/IMG_2118.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-5954897284714050871</id><published>2009-06-27T16:10:00.000-07:00</published><updated>2009-06-27T16:15:53.823-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spain'/><title type='text'>Husa Imperial Tarraco, Tarragona Spain</title><content type='html'>Paseo De Las Palmeras, S/n&lt;br /&gt;Tarragona, TA 43003&lt;br /&gt;Spain&lt;br /&gt;&lt;br /&gt;Great hotel. if you stay here I recommend spending extra for a room with a sea view!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/znKvxFJfchTX2skHYHvEWw?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_vmq8pP42BnQ/SkELzx5fKCI/AAAAAAAACb8/EiGxBj1fWHo/s400/IMG_1887.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=Husa+Imperial+Tarraco+Tarragona&amp;amp;sll=41.976772,2.812392&amp;amp;sspn=0.115109,0.308647&amp;amp;gl=us&amp;amp;ie=UTF8&amp;amp;cd=1&amp;amp;ll=41.123914,1.261282&amp;amp;spn=0.014581,0.038581&amp;amp;z=14&amp;amp;iwloc=A&amp;amp;cid=15877674626037886429&amp;amp;output=embed"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.com/maps?f=q&amp;amp;source=embed&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=Husa+Imperial+Tarraco+Tarragona&amp;amp;sll=41.976772,2.812392&amp;amp;sspn=0.115109,0.308647&amp;amp;gl=us&amp;amp;ie=UTF8&amp;amp;cd=1&amp;amp;ll=41.123914,1.261282&amp;amp;spn=0.014581,0.038581&amp;amp;z=14&amp;amp;iwloc=A&amp;amp;cid=15877674626037886429" style="color:#0000FF;text-align:left"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Ft8P2-LVkG5DhU9hWZTymg?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_vmq8pP42BnQ/SkELy9t6aWI/AAAAAAAACbw/8e4QHBydCE0/s400/IMG_1883.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/9BU19zyTUHThDOrJPJ2dMw?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_vmq8pP42BnQ/SkELzL0eyyI/AAAAAAAACb0/JNU4dGYnu74/s400/IMG_1885.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/T_z_xVStwgZ2u5Tv7nzBJA?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_vmq8pP42BnQ/SkELzttahVI/AAAAAAAACb4/oqKouM-tsho/s400/IMG_1886.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/CO3Wt6XS8-xD7T3eKtka_g?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_vmq8pP42BnQ/SkEL3UxRlZI/AAAAAAAACck/ZaheQt37XW8/s400/IMG_1897.JPG" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-5954897284714050871?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/5954897284714050871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=5954897284714050871' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5954897284714050871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5954897284714050871'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/06/husa-imperial-tarraco-tarragona-spain.html' title='Husa Imperial Tarraco, Tarragona Spain'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_vmq8pP42BnQ/SkELzx5fKCI/AAAAAAAACb8/EiGxBj1fWHo/s72-c/IMG_1887.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-3684592689480284663</id><published>2009-06-27T16:03:00.000-07:00</published><updated>2009-06-27T16:08:02.672-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spain'/><title type='text'>Hotel Costabella (Sercotel), Girona Spain</title><content type='html'>Avinguda De Franca 61 Sant Ponc&lt;br /&gt;Girona, GI 17007&lt;br /&gt;Spain&lt;br /&gt;&lt;br /&gt;&lt;iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=costabella+hotel+girona&amp;amp;sll=41.727255,2.930861&amp;amp;sspn=0.014445,0.038581&amp;amp;gl=us&amp;amp;ie=UTF8&amp;amp;ll=42.017927,2.826233&amp;amp;spn=0.057524,0.154324&amp;amp;z=13&amp;amp;iwloc=A&amp;amp;cid=3987759410925514293&amp;amp;output=embed"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.com/maps?f=q&amp;amp;source=embed&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=costabella+hotel+girona&amp;amp;sll=41.727255,2.930861&amp;amp;sspn=0.014445,0.038581&amp;amp;gl=us&amp;amp;ie=UTF8&amp;amp;ll=42.017927,2.826233&amp;amp;spn=0.057524,0.154324&amp;amp;z=13&amp;amp;iwloc=A&amp;amp;cid=3987759410925514293" style="color:#0000FF;text-align:left"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;The hotel is right across the street from the hospital - north of the old town. They have a great pool.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/URNM10lNYIPV37IYwBUj9w?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_vmq8pP42BnQ/SkEH6LwhWcI/AAAAAAAACR0/emQrOmtnJ4w/s400/IMG_1692.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/kwi8bGWIAzqosSps4akVjQ?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_vmq8pP42BnQ/SkEH6WGF7LI/AAAAAAAACR4/-RXeQHGaxgk/s400/IMG_1693.JPG" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-3684592689480284663?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/3684592689480284663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=3684592689480284663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3684592689480284663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/3684592689480284663'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/06/hotel-costabella-sercotel-girona-spain.html' title='Hotel Costabella (Sercotel), Girona Spain'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_vmq8pP42BnQ/SkEH6LwhWcI/AAAAAAAACR0/emQrOmtnJ4w/s72-c/IMG_1692.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-7247798800040092452</id><published>2009-06-27T15:28:00.000-07:00</published><updated>2009-09-07T09:25:08.069-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spain'/><title type='text'>Medplaya Aparthotel Esmeraldas, Tossa de Mar Spain</title><content type='html'>Calle Vilafranca del Penedés s/n,&lt;br /&gt;Costa Brava&lt;br /&gt;Tossa de Mar, Girona 17320&lt;br /&gt;Spain&lt;br /&gt;&lt;br /&gt;Great town! and this was a perfect place to stay, very inexpensive, functional not fancy&lt;br /&gt;&lt;br /&gt;&lt;iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=Aparthotel+Esmeraldas+Tossa+de+Mar&amp;amp;sll=41.741603,2.939701&amp;amp;sspn=0.054565,0.154324&amp;amp;gl=us&amp;amp;ie=UTF8&amp;amp;ll=41.733661,2.935066&amp;amp;spn=0.014445,0.038581&amp;amp;z=14&amp;amp;iwloc=A&amp;amp;cid=7600490520514246547&amp;amp;output=embed"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.com/maps?f=q&amp;amp;source=embed&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=Aparthotel+Esmeraldas+Tossa+de+Mar&amp;amp;sll=41.741603,2.939701&amp;amp;sspn=0.054565,0.154324&amp;amp;gl=us&amp;amp;ie=UTF8&amp;amp;ll=41.733661,2.935066&amp;amp;spn=0.014445,0.038581&amp;amp;z=14&amp;amp;iwloc=A&amp;amp;cid=7600490520514246547" style="color:#0000FF;text-align:left"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/TzQ9e9oct0rS3Zs22blEiw?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_vmq8pP42BnQ/Sj7D2JTZlDI/AAAAAAAABRg/MmJvs8tQhvY/s400/IMG_1472.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/TBXdde0d2yaExg3ygcKCxg?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_vmq8pP42BnQ/Sj7D2eXsO3I/AAAAAAAABRk/iWNGVcdKV7k/s400/IMG_1473.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/uU4YF3_ogtBNKf1MKrGvpA?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_vmq8pP42BnQ/Sj7D2gXrCLI/AAAAAAAABRo/wk_GSzVVmJI/s400/IMG_1474.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The hotel is not near the beach but the walk is very enjoyable, probably 10 minutes or so.&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/CvG4PLp5cu4FhtYrH8PdlA?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_vmq8pP42BnQ/Sj7D6inKteI/AAAAAAAABSY/BlrVRCObogM/s400/IMG_1494.JPG" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-7247798800040092452?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/7247798800040092452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=7247798800040092452' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7247798800040092452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7247798800040092452'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/06/medplaya-aparthotel-esmeraldas-tossa-de.html' title='Medplaya Aparthotel Esmeraldas, Tossa de Mar Spain'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_vmq8pP42BnQ/Sj7D2JTZlDI/AAAAAAAABRg/MmJvs8tQhvY/s72-c/IMG_1472.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-2542285703852929441</id><published>2009-06-27T14:31:00.000-07:00</published><updated>2009-06-27T16:29:10.776-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spain'/><title type='text'>Hotel Front Maritim, Barcelona Spain</title><content type='html'>Paseo Garcia Faria 69&lt;br /&gt;Barcelona 08019&lt;br /&gt;Spain&lt;br /&gt;&lt;br /&gt;&lt;iframe marginheight="0" marginwidth="0" src="http://maps.google.com/maps?hl=en&amp;amp;client=firefox-a&amp;amp;channel=s&amp;amp;ie=UTF8&amp;amp;q=Barcelona+Spain+Hotel+Front+Maritim&amp;amp;fb=1&amp;amp;split=1&amp;amp;gl=us&amp;amp;cid=0,0,10564924005058574560&amp;amp;ei=CZBGStSHE4KGNICxiawB&amp;amp;ll=41.403595,2.213798&amp;amp;spn=0.006295,0.006295&amp;amp;output=embed" frameborder="0" height="350" scrolling="no" width="425"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.com/maps?hl=en&amp;amp;client=firefox-a&amp;amp;channel=s&amp;amp;ie=UTF8&amp;amp;q=Barcelona+Spain+Hotel+Front+Maritim&amp;amp;fb=1&amp;amp;split=1&amp;amp;gl=us&amp;amp;cid=0,0,10564924005058574560&amp;amp;ei=CZBGStSHE4KGNICxiawB&amp;amp;ll=41.403595,2.213798&amp;amp;spn=0.006295,0.006295&amp;amp;source=embed" style="color: rgb(0, 0, 255); text-align: left;"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;This was a really nice hotel. It is a bit far from the 'downtown' areas but really close to a really nice beach!&lt;br /&gt;&lt;br /&gt;It is 4 blocks from the 'Selva de Mar' metro stop. If you are coming from the airport take a metro to 'Passeig de Gracia' and then get on the line to 'La Pau', the Selva stop is 4th to the last stop.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://lh4.ggpht.com/_vmq8pP42BnQ/Sj7D1gl_tKI/AAAAAAAABRY/K5-QI957DyE/s400/IMG_1470.JPG" alt="hotel" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://lh6.ggpht.com/_vmq8pP42BnQ/Sj7D11cY-II/AAAAAAAABRc/xd9JLX7eGY4/s400/IMG_1471.JPG" alt="hotel" /&gt;&lt;br /&gt;&lt;br /&gt;There is also a stop near the hotel on the &lt;a href="http://www.barcelonacitytour.cat/"&gt;red tourist bus&lt;/a&gt; route; a nice day out to grab the bus and see the sights of town and then get dropped off right out side the hotel.&lt;br /&gt;&lt;br /&gt;There is an awesome place to eat two blocks from the hotel &lt;a href="http://elspeixatersdelamediterrania.com/"&gt;Els Peixaters de la Mediterrania&lt;/a&gt;. They have great tapas and we ate dinner there one night - one of the best I have ever had!&lt;br /&gt;&lt;br /&gt;The beach was crowded on a very warm Sunday - there were not too many people on the weekdays.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://lh4.ggpht.com/_vmq8pP42BnQ/Sj6_OZdYLGI/AAAAAAAABLA/_G2tL6onJdc/s400/IMG_1347.JPG" alt="beach" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-2542285703852929441?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/2542285703852929441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=2542285703852929441' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2542285703852929441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/2542285703852929441'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/06/hotel-front-maritim-barcelona-spain.html' title='Hotel Front Maritim, Barcelona Spain'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_vmq8pP42BnQ/Sj7D1gl_tKI/AAAAAAAABRY/K5-QI957DyE/s72-c/IMG_1470.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-4269862129341291837</id><published>2009-06-27T12:29:00.000-07:00</published><updated>2009-06-27T16:25:06.049-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spain'/><title type='text'>Spain</title><content type='html'>&lt;p&gt;We just returned from 2 weeks in Spain (&lt;a href="http://en.wikipedia.org/wiki/Catalonia"&gt;Catalonia&lt;/a&gt; really). One of the best vacations ever! Great food, great beaches and great history and culture!&lt;/p&gt;&lt;p&gt;below are some links to hotels we stayed at, might be of use to someone?&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://house9.blogspot.com/2009/06/hotel-front-maritim-barcelona-spain.html"&gt;Hotel Front Maritim, Barcelona&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://house9.blogspot.com/2009/06/medplaya-aparthotel-esmeraldas-tossa-de.html"&gt;Medplaya Aparthotel Esmeraldas, Tossa de Mar&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://house9.blogspot.com/2009/06/hotel-costabella-sercotel-girona-spain.html"&gt;Hotel Costabella, Girona&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://house9.blogspot.com/2009/06/husa-imperial-tarraco-tarragona-spain.html"&gt;Husa Imperial Tarraco, Tarragona&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://house9.blogspot.com/2009/06/frontair-congress-barcelona-spain.html"&gt;Frontair Congress, Barcelona&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-4269862129341291837?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/4269862129341291837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=4269862129341291837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4269862129341291837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4269862129341291837'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/06/spain.html' title='Spain'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-4005707181282943524</id><published>2009-05-30T17:22:00.000-07:00</published><updated>2009-05-30T18:24:18.305-07:00</updated><title type='text'>Secure your Gmail</title><content type='html'>yeah - you DO want to run &lt;a href="http://www.gmail.com"&gt;gmail&lt;/a&gt; over &lt;a href="http://en.wikipedia.org/wiki/Https"&gt;https&lt;/a&gt;; I am surprised this is not the default and I am surprised I did not already have this setting turned on.&lt;br /&gt;&lt;br /&gt;In gmail click the settings link in the upper right hand corner&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_vmq8pP42BnQ/SiHapiCp12I/AAAAAAAABE8/E9FNerefa3Y/s1600-h/gmail_settings.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 375px; height: 299px;" src="http://3.bp.blogspot.com/_vmq8pP42BnQ/SiHapiCp12I/AAAAAAAABE8/E9FNerefa3Y/s400/gmail_settings.png" alt="" id="BLOGGER_PHOTO_ID_5341791040085546850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then scroll to the bottom and select 'Always use https' in the Browser connection section&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_vmq8pP42BnQ/SiHat9vG5mI/AAAAAAAABFE/y6CRlJjRAaI/s1600-h/gmail_https_setting.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 124px;" src="http://1.bp.blogspot.com/_vmq8pP42BnQ/SiHat9vG5mI/AAAAAAAABFE/y6CRlJjRAaI/s400/gmail_https_setting.png" alt="" id="BLOGGER_PHOTO_ID_5341791116239234658" border="0" /&gt;&lt;/a&gt;This came up while I was watching a great screen cast '&lt;a href="http://scotland-on-rails.s3.amazonaws.com/2B07_RoryMcCune-SOR.mp4"&gt;Security - What rails will and won't do for you&lt;/a&gt;', it was from '&lt;a href="http://www.rubyinside.com/scotland-on-rails-presentations-now-online-27-awesome-videos-1799.html"&gt;Scotland On Rails Presentations&lt;/a&gt;', there are 27 different presentations and all downloadable&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-4005707181282943524?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/4005707181282943524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=4005707181282943524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4005707181282943524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4005707181282943524'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/05/secure-your-gmail.html' title='Secure your Gmail'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_vmq8pP42BnQ/SiHapiCp12I/AAAAAAAABE8/E9FNerefa3Y/s72-c/gmail_settings.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-4239574493984813368</id><published>2009-05-09T11:18:00.000-07:00</published><updated>2009-05-09T11:24:08.708-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>PGError: ERROR:  duplicate key value violates unique constraint "tablename_pkey"</title><content type='html'>&lt;p&gt;Using Postgresql I ran into the following error when trying to create a new record through my rails application&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;PGError: ERROR:  duplicate key value violates unique constraint "tablename_pkey"&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Found this link which had the needed fix; &lt;/p&gt;&lt;p&gt;&lt;a href="http://railspikes.com/2009/3/6/duplicate-key-violates-unique-constraint#comment-form"&gt;Dealing with 'duplicate key violates unique constraint' on the primary key&lt;/a&gt;&lt;/p&gt;&lt;p&gt;apparently with Postgresql after bulk loading records where the auto incrementing id is specified you then need to update the sequence value&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-4239574493984813368?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/4239574493984813368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=4239574493984813368' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4239574493984813368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4239574493984813368'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/05/pgerror-error-duplicate-key-value.html' title='PGError: ERROR:  duplicate key value violates unique constraint &quot;tablename_pkey&quot;'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-4541020600279731472</id><published>2009-05-03T15:20:00.001-07:00</published><updated>2009-05-03T15:44:01.864-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>bash scirpt to launch rails development environment</title><content type='html'>here is a bash script I put together to launch my rails development environment, i got tired of opening multiple terminal windows and cd to the project dir, this script&lt;br /&gt;&lt;ul&gt;&lt;li&gt;launches script/server in a terminal window&lt;/li&gt;&lt;li&gt;launches a new terminal and cd to the trunk&lt;/li&gt;&lt;li&gt;launches firefox at http://localhost:3000 with a specific &lt;a href="http://house9.blogspot.com/2008/04/update-firefox-and-multiple-cookies-for.html"&gt;firefox profile&lt;/a&gt;&lt;/li&gt;&lt;li&gt;and launches &lt;a href="http://house9.blogspot.com/2008/05/komodo-edit-new-text-editor-of-choice.html"&gt;Komodo Edit&lt;/a&gt; - go ahead and pick the editor of your choice&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;this works on &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt;, probably on other Linux distro's that use &lt;a href="http://www.gnome.org/"&gt;Gnome&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;script src="http://gist.github.com/106173.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;I saved this in a file ~/scripts/launch_YOUR_PROJECT.sh&lt;br /&gt;to execute this open a terminal and type ~$ bash ./scripts/launch_YOUR_PROJECT.sh&lt;br /&gt;or create a symlink in your home directory&lt;br /&gt;&lt;br /&gt;&lt;script src="http://gist.github.com/106180.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;then execute using ~$ bash launch_YOUR_PROJECT&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; in theory you should not need to even specify bash at the command prompt, when I did not I received the following error "&lt;span style="font-style: italic;"&gt;bash: launch_YOUR_PROJECT: command not found&lt;/span&gt;"&lt;br /&gt;running '&lt;span style="font-style: italic;"&gt;which bash&lt;/span&gt;' returns '&lt;span style="font-style: italic;"&gt;/bin/bash&lt;/span&gt;' which is specified in the shell script?, something to look into later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-4541020600279731472?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/4541020600279731472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=4541020600279731472' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4541020600279731472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4541020600279731472'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/05/bash-scirpt-to-launch-rails-development.html' title='bash scirpt to launch rails development environment'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-6523409904030880612</id><published>2009-04-25T08:48:00.000-07:00</published><updated>2009-04-25T09:02:12.064-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Strange behavior with Rails find_or_initialize_by_id and Postgresql</title><content type='html'>The following code sample worked as I would expect when using MySql database - when the :widget_id is 0 it creates a new record with an id of 1; but after switching to Postgresql it was inserting a record into the database with an id of 0 (zero)?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;script src="http://gist.github.com/101669.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Note:&lt;/span&gt; params[:widget_id] does have a value of 0 (zero) when I want to generate a new record vs an actual value when doing an edit. This is a non-standard rails form, I did not experience any issues with a standard new/create view/action scenario.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-6523409904030880612?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/6523409904030880612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=6523409904030880612' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6523409904030880612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6523409904030880612'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/04/strange-behavior-with-rails.html' title='Strange behavior with Rails find_or_initialize_by_id and Postgresql'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-1452392365085495961</id><published>2009-04-23T22:06:00.001-07:00</published><updated>2009-04-23T22:09:56.495-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>PGError: ERROR: invalid byte sequence for encoding "UTF8": 0xa7 (ActiveRecord::StatementInvalid)</title><content type='html'>Now that Oracle is buying Sun I am switching from MySql to &lt;a href="http://www.postgresql.org/"&gt;Postgresql&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ran into the following error with my rails application after switching over&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;PGError: ERROR: invalid byte sequence for encoding "UTF8": 0xa7 (ActiveRecord::StatementInvalid)&lt;br /&gt;HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;Found a work-around, check it out &lt;a href="http://house9-code-samples.blogspot.com/2009/04/pgerror-error-invalid-byte-sequence-for.html"&gt;here&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-1452392365085495961?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/1452392365085495961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=1452392365085495961' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1452392365085495961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/1452392365085495961'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/04/pgerror-error-invalid-byte-sequence-for.html' title='PGError: ERROR: invalid byte sequence for encoding &quot;UTF8&quot;: 0xa7 (ActiveRecord::StatementInvalid)'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-7071487404391797959</id><published>2009-04-23T21:31:00.000-07:00</published><updated>2010-08-19T10:40:27.280-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>PGError: ERROR:  invalid byte sequence for encoding "UTF8": 0xa7 (ActiveRecord::StatementInvalid)</title><content type='html'>Working on a rails application and have decided to make the switch from MySql to &lt;a href="http://www.postgresql.org/"&gt;Postgresql&lt;/a&gt;; ran into a few minor issues along the way and one really annoying and unexpected issue&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style:italic; background-color:yellow;"&gt;PGError: ERROR:  invalid byte sequence for encoding "UTF8": 0xa7 (ActiveRecord::StatementInvalid)&lt;br /&gt;HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;The above error was being generated when I was trying to save model objects that had their string and text attributes assigned from data that had been scrapped using http with &lt;a href="http://scrubyt.org/"&gt;scRUBYt&lt;/a&gt;. After searching on Google the only 'work-around' I found was to use base64 encode and decode when reading and writing to these model attributes / database columns&lt;br /&gt;&lt;br /&gt;Given the following migration&lt;br /&gt;&lt;script src="http://gist.github.com/100947.js"&gt;&lt;/script&gt;&lt;br /&gt;Our model before and then after applying the work-around&lt;br /&gt;&lt;script src="http://gist.github.com/100943.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;Resources&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/aa02ee4750670d06/f2d5c89dafae30a1?lnk=gst&amp;amp;q=postgresql+base64"&gt;String encoding / Importing Feeds&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ruby-forum.com/topic/146059"&gt;override AR default attribute accessors&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-7071487404391797959?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/7071487404391797959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=7071487404391797959' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7071487404391797959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7071487404391797959'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/04/pgerror-error-invalid-byte-sequence-for_23.html' title='PGError: ERROR:  invalid byte sequence for encoding &amp;quot;UTF8&amp;quot;: 0xa7 (ActiveRecord::StatementInvalid)'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-244163266474097761</id><published>2009-04-12T18:09:00.000-07:00</published><updated>2009-04-13T22:19:30.530-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><title type='text'>rails collection_select to prompt or include_blank?</title><content type='html'>Well I just wasted a bit of time but learned something in the end. When working with the rails form helper &lt;a href="http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#M001593"&gt;collection_select&lt;/a&gt; you might be interested in the difference between the prompt option and include_blank? option&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;include_blank will always create an option tag, prompt will only create an option tag when creating a new record - in most cases I prefer include_blank&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;both take either a boolean or a string, if true is passed then include_blank will create an option with no display text and prompt defaults to the display text of 'Please Select'&lt;/div&gt;&lt;div&gt;&lt;pre style="font-size:large"&gt;collection_select(:product,&lt;br /&gt;  :category_id,&lt;br /&gt;  Category.all,    &lt;br /&gt;  :id,    &lt;br /&gt;  :title,    &lt;br /&gt;  {:prompt =&gt; true}&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;collection_select(:product,    &lt;br /&gt;  :category_id,    &lt;br /&gt;  Category.all,    &lt;br /&gt;  :id,    &lt;br /&gt;  :title,    &lt;br /&gt;  {:include_blank =&gt; 'Please Select'}&lt;br /&gt;)&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;both of these result in the same html, but the first one will not include the 'Please Select' option when you return to edit the previously created Product&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;See also&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html"&gt;http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html&lt;/a&gt;&lt;a href="http://shiningthrough.co.uk/Select+helper+methods+in+Ruby+on+Rails"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://shiningthrough.co.uk/Select+helper+methods+in+Ruby+on+Rails"&gt;Select helper methods in Ruby on Rails&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-244163266474097761?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/244163266474097761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=244163266474097761' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/244163266474097761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/244163266474097761'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/04/rails-collectionselect-to-prompt-or.html' title='rails collection_select to prompt or include_blank?'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-6429496681009401000</id><published>2009-04-11T10:02:00.000-07:00</published><updated>2009-04-11T10:09:51.421-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='valid html'/><title type='text'>accesskey attribute on the select tag is not valid?</title><content type='html'>Was just running some validation on a html form and it failed with the following error&lt;br /&gt;&lt;div&gt;"&lt;span class="Apple-style-span" style="font-style: italic;"&gt;Invalid markup: line 68: Attribute "accesskey" exists, but can not be used for this element.&lt;/span&gt;"&lt;/div&gt;&lt;br /&gt;&lt;div&gt;From &lt;a href="http://www.w3.org/TR/html401/interact/forms.html#adef-accesskey"&gt;w3c&lt;/a&gt; spec - "&lt;span class="Apple-style-span" style="font-style: italic;"&gt;The following elements support the accesskey attribute: A, AREA, BUTTON, INPUT, LABEL, and LEGEND, and TEXTAREA.&lt;/span&gt;"&lt;/div&gt;&lt;br /&gt;&lt;div&gt;I have no idea why input and textarea would be supported but not select? this seems like a mistake? At least there is an easy work around - apply the accesskey attribute to the label tag that references the select menu.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-6429496681009401000?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/6429496681009401000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=6429496681009401000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6429496681009401000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6429496681009401000'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/04/accesskey-attribute-on-select-tag-is.html' title='accesskey attribute on the select tag is not valid?'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-7642672653222041269</id><published>2009-04-09T19:21:00.001-07:00</published><updated>2009-04-09T19:30:54.921-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='IE8'/><title type='text'>IE8 multiple cookies for the same site</title><content type='html'>Internet Explorer 8 is here - oh joy....&lt;br /&gt;&lt;br /&gt;As a web application developer I spend a lot of time logging into sites as different users and prefer to be able to toggle back and forth between multiple instances of a browser maintaining the separate sessions in each instance. With IE 7 this was not an issue as long as IE was launched from the toolbar. In IE 8 sessions are shared by default, once again a &lt;a href="http://www.google.com/search?q=IE8+multiple+cookies+for+the+same+site"&gt;Google search&lt;/a&gt; delivers the goods!&lt;br /&gt;&lt;br /&gt;This &lt;a href="http://www.walkernews.net/2009/03/26/use-ie8-nomerge-option-to-login-multiple-accounts-of-same-site/"&gt;post&lt;/a&gt; explains the -no-merge switch&lt;br /&gt;&lt;br /&gt;as easy as Start -&gt; Run -&gt; &lt;code&gt;iexplore.exe -nomerge&lt;br /&gt;&lt;br /&gt;FireFox has a similar issue, but the only work around I know of with FireFox is to create separate profiles, see this post - &lt;a href="http://house9.blogspot.com/2008/04/update-firefox-and-multiple-cookies-for.html"&gt;FireFox and multiple cookies for the same site&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-7642672653222041269?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/7642672653222041269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=7642672653222041269' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7642672653222041269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/7642672653222041269'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/04/ie8-multiple-cookies-for-same-site.html' title='IE8 multiple cookies for the same site'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-6363123195128443535</id><published>2009-04-09T12:47:00.000-07:00</published><updated>2010-08-19T12:40:21.203-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tfs'/><category scheme='http://www.blogger.com/atom/ns#' term='nant'/><title type='text'>'file version' is not in the normal 'major.minor.build.revision' format</title><content type='html'>At work we use TFS for source control and NAnt for building our application, yesterday our NAnt build started failing with the following error message "&lt;span style="font-style: italic;"&gt;Assembly generation The version '2.7.1.65559' specified for the 'file version' is not in the normal 'major.minor.build.revision' format&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;After a quick Google search it turns out that each segment in a .net assembly cannot be larger then 65534. We use the TFS changeset for the &lt;span style="font-style: italic;"&gt;revision &lt;/span&gt;segment but this will no longer work for us as we are now beyond changeset 65534 - doh! As a work around we are now using only the last 4 digits of the changeset, so instead of 2.7.1.65559 we are using the version 2.7.1.5559&lt;br /&gt;&lt;br /&gt;this required a small change to the Nant build script&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the update is &lt;a href="http://house9.blogspot.com/2009/04/update-nant-build-with-tfs-changeset-as.html"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;and the original is &lt;a href="http://house9.blogspot.com/2008/04/nant-build-with-tfs-changeset-as.html"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;this version constraint is documented &lt;a href="http://msdn.microsoft.com/en-us/library/system.reflection.assemblyversionattribute.aspx"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-6363123195128443535?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/6363123195128443535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=6363123195128443535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6363123195128443535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/6363123195128443535'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/04/file-version-is-not-in-normal.html' title='&apos;file version&apos; is not in the normal &apos;major.minor.build.revision&apos; format'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-5118277756849079512</id><published>2009-04-09T11:51:00.000-07:00</published><updated>2010-08-19T12:35:24.474-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tfs'/><category scheme='http://www.blogger.com/atom/ns#' term='nant'/><title type='text'>UPDATE: NAnt build with TFS changeset as revision number</title><content type='html'>this is a small revision to a previous post &lt;a href="http://house9.blogspot.com/2008/04/nant-build-with-tfs-changeset-as.html"&gt;NAnt build with TFS changeset as revision number&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;apparently there is a limitation on the size of the number used in each segment of a .net assembly version so this is a slight update to the c# code that gets the latest changeset from TFS - changes start at "if(latestChangsetId &gt; 65534)"&lt;br /&gt;&lt;br /&gt;&lt;script src="http://gist.github.com/538692.js?file=nant-tfs-changeset-to-revision-updated.cs"&gt;&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;see also &lt;a href="http://michaelsync.net/2007/01/12/assemblyversion-buildno-limitation"&gt;AssemblyVersion - BuildNo Limitation &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-5118277756849079512?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/5118277756849079512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=5118277756849079512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5118277756849079512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5118277756849079512'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/04/update-nant-build-with-tfs-changeset-as.html' title='UPDATE: NAnt build with TFS changeset as revision number'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-182764915728679240</id><published>2009-03-26T09:15:00.000-07:00</published><updated>2010-08-19T10:41:20.337-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='mssql'/><title type='text'>Get Filenames and Database names from MSSQL</title><content type='html'>I was doing some clean up on one of our database servers; we have many databases created with backup/restore for testing purposes I was checking for the largest ldf files and making sure those databases were in simple mode and then shirking the data files, there were a few files I could not match to the databases because the mdf and ldf file names were different from the actual database file name - found the following queries using a few google searches&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;script src="http://gist.github.com/86181.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;script src="http://gist.github.com/86182.js"&gt;&lt;/script&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-182764915728679240?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/182764915728679240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=182764915728679240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/182764915728679240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/182764915728679240'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/03/get-filenames-and-database-names-from.html' title='Get Filenames and Database names from MSSQL'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-5826704811930617135</id><published>2009-03-12T21:55:00.000-07:00</published><updated>2009-03-12T21:56:41.854-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='metal'/><title type='text'>Acephalix</title><content type='html'>&lt;div&gt;&lt;br /&gt;My brothers latest band - &lt;a href="http://www.myspace.com/acephalix"&gt;Acephalix&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="width:300px;"&gt;&lt;object width="300" height="110"&gt;&lt;param value="http://media.imeem.com/m/o0DR7bpUS2/aus=false/" name="movie"/&gt;&lt;param value="transparent" name="wmode"/&gt;&lt;embed width="300" src="http://media.imeem.com/m/o0DR7bpUS2/aus=false/" height="110" wmode="transparent" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="background-color:#E6E6E6;padding:1px;"&gt;&lt;div style="float:left;padding:4px 4px 0 0;"&gt;&lt;a href="http://www.imeem.com/"&gt;&lt;img border="0"   src="http://www.imeem.com/embedsearch/E6E6E6/"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;form action="http://www.imeem.com/embedsearch/" style="margin:0;padding:0;" method="post"&gt;&lt;input name="EmbedSearchBox" type="text"/&gt;&lt;input style="font-size:12px;" value="Search" type="submit"/&gt;&lt;div style="padding-top:3px;"&gt;&lt;a href="http://www.imeem.com/ads/banneradclick.ashx?ep=0&amp;ek=o0DR7bpUS2" rel="nofollow"&gt;&lt;img border="0" src="http://www.imeem.com/ads/bannerad/152/10/"/&gt;&lt;/a&gt;&lt;a href="http://www.imeem.com/ads/banneradclick.ashx?ep=1&amp;ek=o0DR7bpUS2" rel="nofollow"&gt;&lt;img border="0" src="http://www.imeem.com/ads/bannerad/153/10/"/&gt;&lt;/a&gt;&lt;a href="http://www.imeem.com/ads/banneradclick.ashx?ep=2&amp;ek=o0DR7bpUS2" rel="nofollow"&gt;&lt;img border="0" src="http://www.imeem.com/ads/bannerad/154/10/"/&gt;&lt;/a&gt;&lt;a href="http://www.imeem.com/ads/banneradclick.ashx?ep=3&amp;ek=o0DR7bpUS2" rel="nofollow"&gt;&lt;img border="0" src="http://www.imeem.com/ads/bannerad/155/10/o0DR7bpUS2/"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/form&gt;&lt;/div&gt;&lt;/div&gt;&lt;br/&gt;&lt;a href="http://www.imeem.com/people/5f1mPD_/music/alqGD3-f/acephalix-track-1/"&gt;Track 1 - Acephalix&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-5826704811930617135?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/5826704811930617135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=5826704811930617135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5826704811930617135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/5826704811930617135'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/03/acephalix.html' title='Acephalix'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3554775196719271875.post-4076239536281099608</id><published>2009-03-02T07:49:00.001-08:00</published><updated>2009-03-06T19:33:23.820-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>jqueryUI effect error with Google Chrome and Safari</title><content type='html'>&lt;div&gt;Ran into a strange issue using &lt;a href="http://jqueryui.com/"&gt;jqueryUI&lt;/a&gt; &lt;a href="http://jqueryui.com/demos/effects_general/#highlight"&gt;highlight effect&lt;/a&gt;, the issue only occurred with &lt;a href="http://webkit.org/"&gt;Webkit&lt;/a&gt; browsers (Google Chrome and Safari) and only when I was manipulating the background property of the element that was being highlighted.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Using a slightly modified version of the &lt;a href="http://jqueryui.com/demos/effects_general/highlight.html"&gt;demo&lt;/a&gt;. I tweak the background image before applying the highlight effect&lt;/div&gt;&lt;pre&gt;&lt;br /&gt;$("#highlight").click(function() {&lt;br /&gt;  $(this).css("background", "url(some_image.png) no-repeat");&lt;br /&gt;  $(this).effect("highlight");&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;This resulted in the highlight appearing but not going away. Then checking it in the debugger the following javascript error was being generated - &lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;"Uncaught TypeError: Cannot read property '0' of undefined,"&lt;/span&gt;&lt;/span&gt; Changing the background manipulation to the following fixed the issue.&lt;/div&gt;&lt;pre&gt;&lt;br /&gt;$(this).css("background-image", "url(some_image.png)");&lt;br /&gt;$(this).css("background-repeat", "no-repeat");&lt;br /&gt;$(this).effect("highlight");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;Update 2009-03-06: You also need to make sure that if there is an existing style on the element being highlighted it is using the more verbose style tags of background-image and background-repeat or the same error will be encountered&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3554775196719271875-4076239536281099608?l=house9.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://house9.blogspot.com/feeds/4076239536281099608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3554775196719271875&amp;postID=4076239536281099608' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4076239536281099608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3554775196719271875/posts/default/4076239536281099608'/><link rel='alternate' type='text/html' href='http://house9.blogspot.com/2009/03/jqueryui-effect-error-with-google.html' title='jqueryUI effect error with Google Chrome and Safari'/><author><name>House 9</name><uri>http://www.blogger.com/profile/08045832658861127427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
