<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CEUEQX8zcSp7ImA9WhRUFE4.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512</id><updated>2012-01-24T19:10:00.189Z</updated><category term="logging" /><category term="controllers" /><category term="geek culture" /><category term="postgres" /><category term="passive income" /><category term="ssh tunneling" /><category term="dinner" /><category term="salaries" /><category term="before_filter" /><category term="cheatsheets" /><category term="taste" /><category term="strategy" /><category term="community" /><category term="lens" /><category term="privacy" /><category term="text-only email" /><category term="algorithms" /><category term="HttpMock" /><category term="acts_as_state_machine" /><category term="linkedin" /><category term="upgrade" /><category term="comparisons" /><category term="finders" /><category term="passenger" /><category term="work psychology" /><category term="redbubble" /><category term="SLUG" /><category term="linuxchix" /><category term="acts_as_authenticated" /><category term="dehumanize" /><category term="too much choice" /><category term="visa" /><category term="fixtures" /><category term="choice" /><category term="wizard" /><category term="uuid" /><category term="CSS" /><category term="talk" /><category term="FOSS" /><category term="rants" /><category term="rails hosting" /><category term="gems" /><category term="networking" /><category term="scaffold" /><category term="code snippet" /><category term="mvc" /><category term="blacklists" /><category term="negotiation" /><category term="moist_scaffold" /><category term="telecommuting" /><category term="&quot;Eric Drexler&quot;" /><category term="puzzles" /><category term="&quot;login form&quot;" /><category term="design" /><category term="email marketing" /><category term="meetings" /><category term="ubuntu" /><category term="blogging" /><category term="bureaucracy" /><category term="svn" /><category term="ruby" /><category term="accuracy" /><category term="DRY" /><category term="web applications" /><category term="git gotchas" /><category term="geeks" /><category term="social sites" /><category term="partial templates" /><category term="redirect_to" /><category term="gem_bundler" /><category term="floating-point arithmetic" /><category term="best practice" /><category term="explaining technology" /><category term="tuning" /><category term="&quot;gem bundler&quot;" /><category term="clients" /><category term="encapsulation" /><category term="scripts" /><category term="rails edge" /><category term="navigation" /><category term="ask the right question" /><category term="csv_builder" /><category term="women in it" /><category term="cookies" /><category term="port forwarding" /><category term="files" /><category term="ssh" /><category term="data-mining" /><category term="death threats" /><category term="harmony" /><category term="HyRes" /><category term="rails2.0" /><category term="stopcyberbullying" /><category term="agement" /><category term="words" /><category term="discipline" /><category term="authenticity token" /><category term="reverse flash mob" /><category term="routing" /><category term="forking" /><category term="social media" /><category term="writing" /><category term="select_tag" /><category term="filtering" /><category term="Australia Post" /><category term="self-determinism" /><category term="engines" /><category term="pictures" /><category term="LUGs" /><category term="documentation" /><category term="aasm" /><category term="encoding" /><category term="controversy" /><category term="average" /><category term="methodology" /><category term="shower" /><category term="art" /><category term="freedom" /><category term="coding practice" /><category term="extending class methods" /><category term="exceptions" /><category term="flat html" /><category term="rails patches" /><category term="founders" /><category term="migrations" /><category term="goodwill" /><category term="performance" /><category term="generator" /><category term="warnings" /><category term="xml" /><category term="urls" /><category term="worst practice" /><category term="entrepreneur" /><category term="arrays" /><category term="maths" /><category term="ruby-prof" /><category term="milestones" /><category term="parameters" /><category term="forgery protection" /><category term="gotchas" /><category term="dosbox" /><category term="dry_scaffold" /><category term="decisions" /><category term="style" /><category term="rationality" /><category term="rspec" /><category term="PR" /><category term="dilemma" /><category term="integration" /><category term="presenting" /><category term="monetisation" /><category term="shoulda" /><category term="obituaries" /><category term="errors" /><category term="graphic-design" /><category term="proffessionalism" /><category term="kcachegrind" /><category term="heroku" /><category term="requirements" /><category term="computing" /><category term="alternative frameworks" /><category term="navel gazing" /><category term="articles" /><category term="roaming" /><category term="users" /><category term="optimisation" /><category term="trust" /><category term="craziness" /><category term="appliances" /><category term="takahashi" /><category term="IT" /><category term="AJAX" /><category term="help" /><category term="fastercsv" /><category term="portfolio" /><category term="consulting" /><category term="forms" /><category term="csv" /><category term="timezones" /><category term="fitnesse" /><category term="recommendations" /><category term="&quot;ruby enterprise&quot;" /><category term="catch-up" /><category term="headhunters" /><category term="personal" /><category term="time wasters" /><category term="logger" /><category term="views" /><category term="culture" /><category term="random" /><category term="stateful roles" /><category term="assertions" /><category term="metaprogramming" /><category term="games" /><category term="goals" /><category term="website" /><category term="http status" /><category term="API" /><category term="toys" /><category term="idiom" /><category term="life" /><category term="enumerable" /><category term="tags" /><category term="economics" /><category term="hacks" /><category term="poetry" /><category term="article" /><category term="Time" /><category term="non-conformity" /><category term="tweaks" /><category term="sociology" /><category term="estimation" /><category term="indexes" /><category term="restful rails" /><category term="bundler" /><category term="installing" /><category term="web-development" /><category term="icons" /><category term="cults" /><category term="rubcas" /><category term="bugs" /><category term="books" /><category term="personal challenge" /><category term="validations" /><category term="&quot;read widely&quot;" /><category term="organisation" /><category term="mocha" /><category term="silverpop" /><category term="contracting" /><category term="SQLite" /><category term="scaling" /><category term="rubyfit" /><category term="scoping" /><category term="motivation" /><category term="complaints" /><category term="truth" /><category term="job" /><category term="toasters" /><category term="git" /><category term="rails" /><category term="core-extensions" /><category term="locales" /><category term="user interface design" /><category term="project scope" /><category term="Rails 2.0" /><category term="&quot;release early" /><category term="tone" /><category term="job ads" /><category term="times" /><category term="why isn't this in rails?" /><category term="feminism" /><category term="success" /><category term="obsolete" /><category term="anti-virus software" /><category term="humour" /><category term="HyperactiveResource" /><category term="ffmpeg" /><category term="rubygems" /><category term="philosophy" /><category term="employment" /><category term="ui" /><category term="problems" /><category term="ReXML" /><category term="tech support" /><category term="old games" /><category term="webcomics" /><category term="marketing" /><category term="squidoo" /><category term="&quot;single sign out&quot;" /><category term="mobile broadband" /><category term="moving" /><category term="education" /><category term="&quot;single sign on&quot;" /><category term="states" /><category term="ActiveRecord" /><category term="lists" /><category term="christmas" /><category term="github" /><category term="capability" /><category term="bullshit" /><category term="restful_authentication" /><category term="NaNoWriMo" /><category term="howtos" /><category term="test helper" /><category term="enumerables" /><category term="inflections" /><category term="user interface" /><category term="overloading" /><category term="stylesheets" /><category term="blog software" /><category term="learning" /><category term="on the road" /><category term="comments" /><category term="inflector" /><category term="social context" /><category term="helpers" /><category term="PHBs" /><category term="easier than you think" /><category term="stored procedures" /><category term="freebies" /><category term="login" /><category term="antispam" /><category term="etiquette" /><category term="deployment" /><category term="hudson" /><category term="code snippets" /><category term="ship it" /><category term="seo" /><category term="copyright" /><category term="ruby on rails" /><category term="infrastructure" /><category term="params" /><category term="paypal" /><category term="partials" /><category term="Authentication" /><category term="project management" /><category term="front end" /><category term="rjs" /><category term="update_attribute" /><category term="fitness" /><category term="Nokogiri" /><category term="templates" /><category term="illness" /><category term="recruiting" /><category term="funding" /><category term="release often&quot;" /><category term="patches" /><category term="Feynman" /><category term="webistrano" /><category term="mutt" /><category term="psychology" /><category term="travel" /><category term="novel" /><category term="current events" /><category term="tips" /><category term="macro" /><category term="tabbed navigation" /><category term="startups" /><category term="monkey-patches" /><category term="buttons" /><category term="waiting" /><category term="business" /><category term="gravatar" /><category term="MySQL" /><category term="reviews" /><category term="refactoring" /><category term="security" /><category term="emulators" /><category term="customer service" /><category term="mistakes" /><category term="models" /><category term="backlinking" /><category term="private messaging" /><category term="links" /><category term="lca2007" /><category term="yaml" /><category term="timezone" /><category term="ActiveResource" /><category term="HTML" /><category term="coding" /><category term="file upload" /><category term="soap4r" /><category term="quality" /><category term="version control" /><category term="testing" /><category term="plugins" /><category term="ActionMailer" /><category term="skill" /><category term="form_tag_helper" /><category term="working overseas" /><category term="gallery" /><category term="rules" /><category term="workflow" /><category term="developing" /><category term="exuberant programming" /><category term="rubycas" /><category term="conference" /><category term="string" /><category term="achievement" /><category term="email base64" /><category term="processes" /><category term="transactions" /><category term="namespaces" /><category term="links founders" /><category term="screencasts" /><category term="internet" /><category term="layout" /><category term="haccp" /><category term="dos" /><category term="working with other people" /><category term="authorization" /><category term="science" /><category term="database" /><category term="linux" /><category term="apache" /><category term="women" /><category term="repositories" /><category term="soap" /><category term="kathy sierra" /><category term="law" /><category term="vacation" /><category term="sliding doors" /><category term="releases" /><category term="shower ambassador" /><category term="programming" /><category term="sorting" /><category term="edge" /><category term="lisp" /><category term="&quot;broad education&quot;" /><category term="precision" /><category term="geek girls" /><category term="config" /><category term="conversions" /><category term="meetups" /><category term="job offers" /><category term="&quot;error messages&quot;" /><category term="why isn't this in ruby?" /><category term="optimism" /><category term="uploading" /><category term="dates" /><category term="controller niftiness" /><category term="authorisation" /><category term="world domination" /><category term="fixes" /><category term="Rails 3.0" /><category term="capistrano" /><category term="fiction" /><category term="satire" /><category term="profiling" /><category term="db" /><category term="matchfounders" /><title>Ruby-coloured glasses</title><subtitle type="html">Tech blog of a rails contractor.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://rubyglasses.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>250</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/RubyGlasses" /><feedburner:info uri="rubyglasses" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CEUEQX8yfip7ImA9WhRUFE4.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-7878310552373823919</id><published>2012-01-24T19:10:00.000Z</published><updated>2012-01-24T19:10:00.196Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-24T19:10:00.196Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="maths" /><category scheme="http://www.blogger.com/atom/ns#" term="puzzles" /><title>Project Euler Upgrade</title><content type="html">&lt;p&gt; Just a quick post as a follow-on to my &lt;a href="http://rubyglasses.blogspot.com/2011/06/project-euler.html"&gt;project Euler post&lt;/a&gt; a while back.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://projecteuler.net"&gt;Project Euler&lt;/a&gt; have had a site revamp. A bit of a nicer UI
prettier progress-tracking and addition of merit-badges to mark some interesting milestones along the way.&lt;/p&gt;
&lt;p&gt;The fun is still in solving mind-twisting math-puzzles... but it's at least nicer to look at now ;)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-7878310552373823919?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=uLO5ZoN-_UQ:dScuOK8So6k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=uLO5ZoN-_UQ:dScuOK8So6k:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=uLO5ZoN-_UQ:dScuOK8So6k:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=uLO5ZoN-_UQ:dScuOK8So6k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=uLO5ZoN-_UQ:dScuOK8So6k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=uLO5ZoN-_UQ:dScuOK8So6k:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=uLO5ZoN-_UQ:dScuOK8So6k:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=uLO5ZoN-_UQ:dScuOK8So6k:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=uLO5ZoN-_UQ:dScuOK8So6k:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/uLO5ZoN-_UQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/7878310552373823919/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=7878310552373823919" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/7878310552373823919?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/7878310552373823919?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/uLO5ZoN-_UQ/project-euler-upgrade.html" title="Project Euler Upgrade" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2012/01/project-euler-upgrade.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcEQX4-eyp7ImA9WhRVGU4.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-3215109043211849175</id><published>2012-01-18T23:40:00.000Z</published><updated>2012-01-18T23:40:00.053Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-18T23:40:00.053Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="quality" /><category scheme="http://www.blogger.com/atom/ns#" term="links" /><category scheme="http://www.blogger.com/atom/ns#" term="coding practice" /><title>Link: The hungry programmer</title><content type="html">&lt;p&gt;&lt;a href="http://jstorimer.com/2012/01/09/the-hungry-programmer.html"&gt;The hungry programmer&lt;/a&gt; compares healthy eating to healthy code-practices, discussing the code-quality equivalent of the "healthy eating continuum". In brief:&lt;/p&gt;

&lt;blockquote&gt;If you take the McDonald's approach and ship shit then you satisfy that need in the short-term. But you'll feel the effects in the long-term. Your code will be harder to maintain and need more attention later. It won't have a long and healthy life.&lt;/blockquote&gt;

&lt;p&gt;I know there have been several times when we just *had* to ship *something*... no matter the guilt I felt at the poor quality that was going out the door. I much prefer to spend some time *now* and work at the better-quality result - even if it means "going hungry" for just that little bit longer. Still, I also understand that a business has to ship to remain a viable business... It's one of those universal dilemmas.&lt;/p&gt;

&lt;p&gt;What experiences have you had? Any spectacularly difficult trade-offs you had to make?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-3215109043211849175?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=taWqReM5XuY:1mJadwKX080:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=taWqReM5XuY:1mJadwKX080:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=taWqReM5XuY:1mJadwKX080:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=taWqReM5XuY:1mJadwKX080:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=taWqReM5XuY:1mJadwKX080:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=taWqReM5XuY:1mJadwKX080:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=taWqReM5XuY:1mJadwKX080:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=taWqReM5XuY:1mJadwKX080:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=taWqReM5XuY:1mJadwKX080:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/taWqReM5XuY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/3215109043211849175/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=3215109043211849175" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/3215109043211849175?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/3215109043211849175?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/taWqReM5XuY/link-hungry-programmer.html" title="Link: The hungry programmer" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2012/01/link-hungry-programmer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQMQXg4eSp7ImA9WhRVE0U.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-8138597419124785735</id><published>2012-01-12T17:13:00.001Z</published><updated>2012-01-12T17:13:00.631Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-12T17:13:00.631Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="seo" /><category scheme="http://www.blogger.com/atom/ns#" term="links" /><title>Link: link-building and SEO</title><content type="html">&lt;p&gt;It's fairly old, but this is still a good basic reference to &lt;a href="
http://www.agent-seo.com/off-site-seo/ultimate-guide-to-link-building/"&gt;SEO and link-building&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just be aware that IPL2 is no longer accepting link submissions. You have to register as an editor for joeant to be able to submit to them (which is free, and you don't have to submit any other links, though it helps).&lt;/p&gt;



&lt;p&gt;This one also has some good ideas:
&lt;a href="http://www.seobook.com/archives/001792.shtml"&gt;How to build links fast&lt;/a&gt;
&lt;br /&gt;
...and some hilariously dumb ones at the end (including "sue google" and the RIAA technique). :)&lt;/p&gt;

&lt;p&gt;Anybody have any more recent good tutorials on link-building?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-8138597419124785735?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=vLdyE--u-YI:A8Bsi9czhL4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=vLdyE--u-YI:A8Bsi9czhL4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=vLdyE--u-YI:A8Bsi9czhL4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=vLdyE--u-YI:A8Bsi9czhL4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=vLdyE--u-YI:A8Bsi9czhL4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=vLdyE--u-YI:A8Bsi9czhL4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=vLdyE--u-YI:A8Bsi9czhL4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=vLdyE--u-YI:A8Bsi9czhL4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=vLdyE--u-YI:A8Bsi9czhL4:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/vLdyE--u-YI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/8138597419124785735/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=8138597419124785735" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/8138597419124785735?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/8138597419124785735?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/vLdyE--u-YI/link-link-building-and-seo.html" title="Link: link-building and SEO" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2012/01/link-link-building-and-seo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8MQXg-fyp7ImA9WhRWGEs.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-45628122225302396</id><published>2012-01-06T15:48:00.001Z</published><updated>2012-01-06T15:48:00.657Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-06T15:48:00.657Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="economics" /><category scheme="http://www.blogger.com/atom/ns#" term="processes" /><category scheme="http://www.blogger.com/atom/ns#" term="skill" /><category scheme="http://www.blogger.com/atom/ns#" term="project management" /><category scheme="http://www.blogger.com/atom/ns#" term="capability" /><category scheme="http://www.blogger.com/atom/ns#" term="business" /><title>Everybody thinks they're above average...</title><content type="html">&lt;p&gt;A post inspired by &lt;a href="http://onefte.com/"&gt;1.00 FTE&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://onefte.com/2011/11/08/the-awkward-truth-about-process-compliance/"&gt;&lt;img src="http://onefte.com/comics/2011-11-08-the-awkward-truth-about-process-compliance.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a bit of an aha moment - I'd especially recommend reading the comments about what happens when the perceived capabilities clash.&lt;/p&gt;

&lt;p&gt;I have left a job where my perceived capability was well below what I later found out to be reality. I definitely experienced a chafing-at-the-bit (or perhaps "crushed-beneath-the-boot") sensation at that workplace. I was constantly irritated that the mid-level manager didn't seem to trust me to do my job.... even when I tried valiantly to prove my capability, eventually bringing about a revolution to their help-desk system for which I still occasionally receive praise (six years after I've left).&lt;/p&gt;

&lt;p&gt;Perhaps the manager was right - perhaps I wasn't as good as I thought I was... but given that I literally doubled my income when I walked out the door (and haven't looked back since), I doubt it.&lt;/p&gt;

&lt;p&gt;I recognise it's difficult for non-IT-front-line bosses to accurately gauge the skill of their techies (see my old article on &lt;a href="http://rubyglasses.blogspot.com/2007/12/economics-of-it-salaries.html"&gt;The economics of IT salaries&lt;/a&gt; for a discussion) but it's still not good when this sort of thing happens.
&lt;br /&gt;That being said - there is absolutely a real need to provide direction for those that need it, and to make sure that everybody's on the same page. So... what to do?&lt;/p&gt;

&lt;p&gt;Is it better to downgrade everybody's skill level to make sure nobody incompetent accidentally gets through and influences strategy until they've "proven" they are capable? Or is it better to trust first?&lt;/p&gt;

&lt;p&gt;I'd go for the latter... mainly because I agree with the old adage of "people will meet your expectations whatever they are"... but then I don't have to pay the bills. Opinions?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-45628122225302396?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ZpWitfJYBe4:5MMQNQlNDq4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ZpWitfJYBe4:5MMQNQlNDq4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ZpWitfJYBe4:5MMQNQlNDq4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ZpWitfJYBe4:5MMQNQlNDq4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=ZpWitfJYBe4:5MMQNQlNDq4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ZpWitfJYBe4:5MMQNQlNDq4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ZpWitfJYBe4:5MMQNQlNDq4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=ZpWitfJYBe4:5MMQNQlNDq4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ZpWitfJYBe4:5MMQNQlNDq4:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/ZpWitfJYBe4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/45628122225302396/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=45628122225302396" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/45628122225302396?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/45628122225302396?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/ZpWitfJYBe4/everybody-thinks-theyre-above-average.html" title="Everybody thinks they're above average..." /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2012/01/everybody-thinks-theyre-above-average.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8GQX8zeCp7ImA9WhRWEko.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-664154029918059302</id><published>2011-12-30T18:47:00.000Z</published><updated>2011-12-30T18:47:00.180Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-30T18:47:00.180Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="strategy" /><category scheme="http://www.blogger.com/atom/ns#" term="users" /><category scheme="http://www.blogger.com/atom/ns#" term="monetisation" /><title>Who is the real user here?</title><content type="html">&lt;p&gt;If a site is developed ostensibly for one purpose, but the monetization strategy is skewed in favour of some other purpose... what do you think is going to happen to the site over time? Whose interests are going to be prioritised?&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Sure, the intentions are good, and you'll try your hardest to serve all your end-users, but if you have an actual, paying subscriber demanding a particular feature (or they'll take their money and leave) vs a feature that the non-paying community has been asking for... which one is more likely to make the cut?&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;I mentioned recently in my &lt;a href="http://rubyglasses.blogspot.com/2011/11/fitocracy-vs-sparkpeople.html"&gt;Sparkpeople vs fitocracy&lt;/a&gt; comparison, &lt;a href="http://sparkpeople.com"&gt;Sparkpeople&lt;/a&gt; have a number of UI problems, and I believe they stem from a slightly mis-matched customer-needs alignment. Ostensibly, the purpose of SP is to help people trying to lose weight. But the only money is coming in via advertising - the result? big flashy ads on every page, special "javascript-only" links that won't let you open other pages in new links (because that way you'll be busy reading the other tabs instead of watching the ads), very few new features that *actually help people lose weight* - instead concentrating on increasing user-generated-content.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Who is the real user here? Well - the sponsors...  &lt;/p&gt;&lt;br /&gt;
&lt;p&gt;I'd actually have paid to get a better service than this - to get them to finally (after three years) allow me to get graphs in the metric system or to not see the advertising. But the CEO is convinced that he's being generous by keeping the site ostensibly "free"... unfortunately - the site clearly isn't free. It's paid-for by customer attention.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;But how did it get this way? I mean the owner is clearly a fanatic about trying to help people to lose weight, willing even to spend a very large amount of his own personal fortune to set up and maintain this site. So why did these anti-features appear in the first place?&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;It's simple common human nature that's to blame.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;If the motive for a site does not align with the motive behind the money-flow, then you'll have two masters to try to serve - and it's obvious which one will win out. It's a much better idea to find a way to align these two. &lt;/p&gt;&lt;br /&gt;
&lt;p&gt;A good example of alignment is in &lt;a href="http://whitelabeldating.com/"&gt;White Label Dating&lt;/a&gt; (a company I used to work for).&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;They are a company that allows people to set up their own, branded dating sites.  For example, a women's magazine might decide they want a dating site. Rather than building one from scratch - with the near insurmountable chicken-and-egg problem (not to mention a strongly gender-skewed audience), they can come to WLD and quickly build a site that has all the functionality ready-made... along with access to a *huge* pre-existing database of daters... but also allows them to put their own branding on top. It's a "white label" dating site.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Now WLD's monetisation strategy is as awesome as it is simple: they revenue share. That means that for any individual dater that pays for a membership through the magazine's site - a percentage of the money goes to the magazine, and a percentage goes to WLD. The magazine is incentivised to use their brand and existing audience to promote the site -&gt; getting more memberships, which gives them more money. But better yet, WLD are incentivised to make a good service for the end customers (the individual daters) because that way people will be satisfied by the service and continue with their membership.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The end result is a system that works for WLD, works for the magazine... but *also* works for the individual daters that sign up for the service.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;That's how it should be.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-664154029918059302?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=vZ1g-Bz2LJ8:5gDVagu0_v8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=vZ1g-Bz2LJ8:5gDVagu0_v8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=vZ1g-Bz2LJ8:5gDVagu0_v8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=vZ1g-Bz2LJ8:5gDVagu0_v8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=vZ1g-Bz2LJ8:5gDVagu0_v8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=vZ1g-Bz2LJ8:5gDVagu0_v8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=vZ1g-Bz2LJ8:5gDVagu0_v8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=vZ1g-Bz2LJ8:5gDVagu0_v8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=vZ1g-Bz2LJ8:5gDVagu0_v8:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/vZ1g-Bz2LJ8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/664154029918059302/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=664154029918059302" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/664154029918059302?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/664154029918059302?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/vZ1g-Bz2LJ8/who-is-real-user-here.html" title="Who is the real user here?" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/12/who-is-real-user-here.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcAQXkycCp7ImA9WhRXFkQ.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-2193168992322753477</id><published>2011-12-24T03:24:00.000Z</published><updated>2011-12-24T03:24:00.798Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-24T03:24:00.798Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tags" /><category scheme="http://www.blogger.com/atom/ns#" term="plugins" /><title>Autocomplete with acts_as_taggable_on</title><content type="html">&lt;p&gt;&lt;a href="http://rubyglasses.blogspot.com/2011/12/acts-as-taggable-on.html"&gt;Basic tagging sorted&lt;/a&gt;, I went looking for a way to add auto-complete - cos it's a nice UI improvement that's pretty common on teh intarwebs these days. I did a lot of searching, as most of the solutions seem to require switching to jquery, and for reasons of laziness (and legacy code), I don't wanna do that right now.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Luckily my searching dug up a tutorial by &lt;a href="http://www.schuerig.de/michael/blog/"&gt;Michael Schuerig&lt;/a&gt; called: &lt;a href="http://www.schuerig.de/michael/blog/index.php/2007/01/31/auto-completion-for-tag-lists/"&gt;auto-completion for tag lists&lt;/a&gt; that works with &lt;a href="https://github.com/mbleigh/acts-as-taggable-on"&gt;acts_as_taggable_on&lt;/a&gt; and the &lt;a href="https://github.com/david-kerins/auto_complete"&gt;auto_complete&lt;/a&gt; plugin.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;It pretty much covers all the bases for tagging, so I won't repeat it all here. But I think it's awesome, because it will auto-complete on just that part of the field after the last comma - just what you need for a keyword-list.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Do read all the way to the bottom of the page, as his later updates can change the way it functions a bit.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;I did make one addition myself. We have one form that lets you upload multiple items at once, with a "add a new form" link.  It just repeatedly inserts a partial-template onto the end of the existing list, each time it's clicked... but because it's called *after* the "onLoad" event, the auto-complete wasn't getting added to it.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;To work with that, we needed to add the &lt;span class="code"&gt;installAutocompletion();&lt;/span&gt; call to our &lt;span class="code"&gt;addNewForm&lt;/span&gt; function, and also make sure that each "tags_list" field had a unique id.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;I also needed to slightly update the controller code so that it could *either* take &lt;span class="code"&gt;params[:my_widget][:tag_list]&lt;/span&gt; *or* take &lt;span class="code"&gt;params[:my_widgets].first[:tag_list]&lt;/span&gt;, because the multiple-forms-on-the-page form always sends through an array of widgets instead of just the one.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Then I realised that &lt;span class="code"&gt;installAutocompletion&lt;/span&gt; would just keep adding autocompleters every time it was called... even to fields that already had one. So I updated the code by adding the following around everything after:&lt;/p&gt;&lt;br /&gt;
&lt;pre class="code"&gt;/* only add it if it doesn't already exist */
   if ($(completions.id) == null) {
       element.parentNode.insertBefore(completions, element.nextSibling);
       ... everything else after the above line too
   }
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;After that it was all gravy.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-2193168992322753477?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=0QwvOcXhTvU:JKSK0a0C6Zc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=0QwvOcXhTvU:JKSK0a0C6Zc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=0QwvOcXhTvU:JKSK0a0C6Zc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=0QwvOcXhTvU:JKSK0a0C6Zc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=0QwvOcXhTvU:JKSK0a0C6Zc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=0QwvOcXhTvU:JKSK0a0C6Zc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=0QwvOcXhTvU:JKSK0a0C6Zc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=0QwvOcXhTvU:JKSK0a0C6Zc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=0QwvOcXhTvU:JKSK0a0C6Zc:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/0QwvOcXhTvU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/2193168992322753477/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=2193168992322753477" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/2193168992322753477?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/2193168992322753477?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/0QwvOcXhTvU/autocomplete-with-actsastaggableon.html" title="Autocomplete with acts_as_taggable_on" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/12/autocomplete-with-actsastaggableon.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMAQX89fip7ImA9WhRXEkw.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-4675940034377232363</id><published>2011-12-18T13:54:00.000Z</published><updated>2011-12-18T13:54:00.166Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-18T13:54:00.166Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="webcomics" /><category scheme="http://www.blogger.com/atom/ns#" term="links" /><title>"Our greatest asset"</title><content type="html">&lt;p&gt;I've just discovered &lt;a href="http://onefte.com/"&gt;1.00 FTE&lt;/a&gt;. :)&lt;/p&gt;
&lt;p&gt;Here's one to get you started:&lt;/p&gt;
&lt;a href="http://onefte.com/2011/11/22/are-people-our-greatest-asset/"&gt;&lt;img src="http://onefte.com/comics/2011-11-22-are-people-our-greatest-asset.png" /&gt;&lt;/a&gt;
&lt;p&gt;Oh and, just like &lt;a href="http://xkcd.com/"&gt;XKCD&lt;/a&gt;, there's always a rollover tidbit (not included here, go look at the site to see it).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-4675940034377232363?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=QZ0n0dxTCNs:bvxW15WbFR0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=QZ0n0dxTCNs:bvxW15WbFR0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=QZ0n0dxTCNs:bvxW15WbFR0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=QZ0n0dxTCNs:bvxW15WbFR0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=QZ0n0dxTCNs:bvxW15WbFR0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=QZ0n0dxTCNs:bvxW15WbFR0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=QZ0n0dxTCNs:bvxW15WbFR0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=QZ0n0dxTCNs:bvxW15WbFR0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=QZ0n0dxTCNs:bvxW15WbFR0:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/QZ0n0dxTCNs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/4675940034377232363/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=4675940034377232363" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/4675940034377232363?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/4675940034377232363?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/QZ0n0dxTCNs/our-greatest-asset.html" title="&quot;Our greatest asset&quot;" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/12/our-greatest-asset.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYCQXo4fyp7ImA9WhRQFkQ.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-6485781932233219449</id><published>2011-12-12T13:56:00.000Z</published><updated>2011-12-12T13:56:00.437Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-12T13:56:00.437Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fitness" /><category scheme="http://www.blogger.com/atom/ns#" term="web applications" /><title>fitocracy vs sparkpeople</title><content type="html">&lt;p&gt;I've been using &lt;a href="http://www.sparkpeople.com"&gt;sparkpeople&lt;/a&gt; for several years now,  to track my workouts and weight progress. I heard about &lt;a href="http://fitocracy.com"&gt;fitocracy&lt;/a&gt; a while back. It's gotten a fair bit of buzz in the geek crowd, and I've been hoping to play with that to see how they compare - but they never did get back to me with an invite... so I googled and grabbed one from a random fitness website :)&lt;/p&gt;

&lt;p&gt;So now I can finally have a look at it and see what all the fuss it about, and find out which of the two I prefer. I've only been using fitocracy for a month, but here's my pros/cons so far.&lt;/p&gt;


&lt;h2&gt;Fitocracy&lt;/h2&gt;


&lt;h3&gt;pros&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Founded by fitness enthusiasts&lt;/li&gt;
  &lt;li&gt;Better centred around actual fitness scores (eg you can graph your reps or dumbell-weight, not just "number of times logged")&lt;/li&gt;
  &lt;li&gt;Better-designed interface (cleaner, better inter-page linkage, less cruft etc)&lt;/li&gt;
  &lt;li&gt;Can enter individual sets (rep/weight) all at once - which makes drop-sets and ladders much easier&lt;/li&gt;
  &lt;li&gt;Can save a "routine" full of sets (even from different exercise types) and copy it to a new day&lt;/li&gt;
  &lt;li&gt;Can actually can deal with the metric system! In every place where units are used (both entry and display and on graphs)&lt;/li&gt;
  &lt;li&gt;More motivating scoring system (at least I think), including fun quests etc&lt;/li&gt;
  &lt;li&gt;It tracks and notifies you if you've reached a new personal best (eg more reps, more weight, faster time etc)&lt;/li&gt;
  &lt;li&gt;Scoring system seem better weighted towards actually improving a person's exercise/fitness, rather than creating the user-generated content (or reading/viewing the sponsored content)&lt;/li&gt;
  &lt;li&gt;The developers are active in the forums, and actively work to change the system to meet the community's goals.&lt;/li&gt;
  &lt;li&gt;freemium - I like that they make a premium service available. That means they may not end up as advertising-supported site (which skews feature-design through the "who is the real user here" problem)&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;cons&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;*still* in beta, and you need an invite (you can get one yourself from &lt;a href="http://blog.fitocracy.com/post/7461214398/join-fitocracy"&gt;spartanwarrior's blogpost&lt;/a&gt; )&lt;/li&gt;
  &lt;li&gt;Some "growing pains" style bugs now and then (though I notice they disappear very quickly)&lt;/li&gt;
  &lt;li&gt;No run-distance tracker (you have to use another tool)&lt;/li&gt;
  &lt;li&gt;Smaller community (so far)&lt;/li&gt;
  &lt;li&gt;Still putting together a full set of data (eg exercises and advice), though it's sufficient for general use, and they take suggestions.&lt;/li&gt;
  &lt;li&gt;Can't go back and add your past workouts if you're, say, halfway through a multi-week challenge and just arrived on the site (4 days back only, even if you've *just arrived*)&lt;/li&gt;
  &lt;li&gt;Can't track goals you're working towards (eg goal weight/reps/distance ?) - though you can graph your current "personal best"&lt;/li&gt;
  &lt;li&gt;Not really set up at all for weight-loss tracking (you can enter your weight, but can't track it, and there are no quests or points for weight loss goals)&lt;/li&gt;
&lt;/ul&gt;



&lt;h2&gt;Sparkpeople&lt;/h2&gt;

&lt;h3&gt;pros&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Founded by weight loss enthusiasts&lt;/li&gt;
  &lt;li&gt;Has extensive food/calorie/nutrition-tracking&lt;/li&gt;
  &lt;li&gt;Larger range of options - eg tracking custom measurements/goals/activities etc&lt;/li&gt;
  &lt;li&gt;A huge library of fitness and health information already&lt;/li&gt;
  &lt;li&gt;Regular health-based news, recipe books and personal webpage (including blogging)&lt;/li&gt;
  &lt;li&gt;Can go back and add past workouts at any time in the past (good for migrating to a new site and not losing your past)&lt;/li&gt;
  &lt;li&gt;Nice widgets eg the "starting/current/goal weight" tracker.&lt;/li&gt;
  &lt;li&gt;Integrated distance-tracking tool (uses google, but then you can add your time and click "add to today's workout")&lt;/li&gt;
  &lt;li&gt;Can set/track long-term and per-week goals (eg long term goal of 60kg  or "do 650 calories of cardio each week")&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;cons&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;It's actually very difficult to put in strength-training. They assume you do same-rep/weight sets so drop-sets or ladders have to be entered over and over again one at a time.&lt;/li&gt;
  &lt;li&gt;I think the points-system rewards strange things eg you get much more points for watching their advertising or for blogging, making recipes and taking polls/quizzes than actually doing exercise - this makes me feel that they are rewarding user-generated-content creation (which makes their site look better) rather than actual exercise/weight/loss (which rewards the actual person and is the stated purpose of the site)&lt;/li&gt;
  &lt;li&gt;Strength-training has bad graphing - you can't graph individual exercises whether by rep/weight or even number of times done (even though you can enter the info)... only by "number of training sets in total" (with all exercises mashed into one blob)&lt;/li&gt;
  &lt;li&gt;Excessive flashy/movey ads everywhere - which slow the site-load down and are also annoying. They are also prone to z-index problems (ie the menus sometimes appear *under* the ads)&lt;/li&gt;
  &lt;li&gt;They have some weird attempt to try to force you to only ever have the site open in one tab at a time. They do this through excessive use of javascript "load into this window" rather than normal links.It's quite likely an attempt to stop people from browsing elsewhere while the ads are showing, but really annoying if you're a multi-tab geek like me. To me this is one more piece of evidence that the "real users" of the site are the sponsors, not the people coming to lose weight.&lt;/li&gt;
  &lt;li&gt;Years later and they still don't have metric graphs. It seems like they've only made lip-service towards the metric system. I can enter my weight in kilos, but all distances are entered/tracked in miles.&lt;/li&gt;
  &lt;li&gt;General US-centric approach: I've noticed many, many polls/quizzes and articles that refer to US-only brands/traditions and culture.&lt;/li&gt;
  &lt;li&gt;No Premium Service option. The site is clearly suffering the problems of a free service: heavy ads, frakking around with links etc - I would have paid for it to actually work the way I want to (and get rid of those ads) but there's no option for that. Unfortunately, this is because the CEO/founder had publicly stated that SP will always be free. I'm sure that seemed a good idea to start with... but as their userbase rose dramatically, they've clearly had to fill the gap with advertising - thus leading to the change of "real users"&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;My personal conclusions&lt;/h2&gt;

&lt;p&gt;Sparkpeople has done me great service, and I can't really complain too much about a free service. Still, it's been around for a long time now - and they seem to have stopped improving the actual exercise/weight features and moved to mainly improving the information and social aspects. These aren't the bits that brought me to sparkpeople in the first place. I want a great tool for measuring my progress - not just another "generic health information" website (plus recipes!). sparkpeople is centred around building the sparkpeople community. That's fine... but I'm increasingly feeling that it's just not for me.&lt;/p&gt;

&lt;p&gt;So - is fitocracy a good replacement? So far I think the answer is yes. It provides a better tool for the kinds of things that I want from an exercise logger. It also has added community features which, in this case, don't seem to be getting in the way. It's still unfinished, and yet it has a more professional "finish" to it than sparkpeople has ever managed. From what I can tell - the only advantages that sparkpeople has over fitocracy are the recipe/food-logging tools (which I never use anyway) and the vast back-catalogue of information provided by the sparkpeople community (both paid-for and free), which is something that will come to fitocracy with time.&lt;/p&gt;

&lt;p&gt;For a little while longer I'm going to maintain both - mainly because I have three years' worth of past-data in sparkpeople (which is motivating for me). But if fitocracy ever gave me a way of importing that, I don't think I have any hesitation in switching permanently.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;What do you think? have you used them both? Have I missed something important?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-6485781932233219449?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ocQFvoY6Avo:zkklbANct2w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ocQFvoY6Avo:zkklbANct2w:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ocQFvoY6Avo:zkklbANct2w:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ocQFvoY6Avo:zkklbANct2w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=ocQFvoY6Avo:zkklbANct2w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ocQFvoY6Avo:zkklbANct2w:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ocQFvoY6Avo:zkklbANct2w:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=ocQFvoY6Avo:zkklbANct2w:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ocQFvoY6Avo:zkklbANct2w:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/ocQFvoY6Avo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/6485781932233219449/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=6485781932233219449" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/6485781932233219449?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/6485781932233219449?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/ocQFvoY6Avo/fitocracy-vs-sparkpeople.html" title="fitocracy vs sparkpeople" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/11/fitocracy-vs-sparkpeople.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMBSH47eyp7ImA9WhRQE0s.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-4916282610552603636</id><published>2011-12-06T19:00:00.002Z</published><updated>2011-12-08T16:57:39.003Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-08T16:57:39.003Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tags" /><category scheme="http://www.blogger.com/atom/ns#" term="plugins" /><category scheme="http://www.blogger.com/atom/ns#" term="code snippet" /><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="gems" /><category scheme="http://www.blogger.com/atom/ns#" term="code snippets" /><title>Acts-as-taggable-on</title><content type="html">&lt;p&gt;Tagging is pretty popular these days, and it was time to add it to our site. Unfortunately, lots of the gems are old, and it's had to know if that means "good and has stuck around" or "buggy, obsolete and no longer supported".&lt;/p&gt;

&lt;p&gt;The &lt;a href"https://www.ruby-toolbox.com/categories/rails_tagging.html"&gt;rubytoolbox page on rails tagging&lt;/a&gt; has several gems - most of which are marked as inactive now. The only one that looked like it had any recent activity is: &lt;a href="https://github.com/mbleigh/acts-as-taggable-on"&gt;acts-as-taggable-on&lt;/a&gt;. It's also the top-most-downloaded, so that looked good.&lt;/p&gt;

&lt;p&gt;Best news: it is rails-3 compatible AND supports a recent build-version that is still Rails-2 compatible. As I've mentioned before, my current client is still on Rails-2 - because the upgrade pain is not currently outweighed by the new features.&lt;/p&gt;

&lt;p&gt;The only annoyance is that the rdoc only has rails-3 post-install instructions &lt;span class="code"&gt;rails generate acts_as_taggable_on:migration&lt;/span&gt;. These don't work for rails-2, and if you try just substituting "script/" for "rails ", it'll give you an error saying: &lt;span class="code"&gt;Couldn't find 'acts_as_taggable_on:migration' generator
&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;I had to hack about a bit to find the new migration name, but what you need is: &lt;span class="code"&gt; script/generate  acts_as_taggable_on_migration&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;After that I used this extremely good tutorial on &lt;a href="http://g-p.si/posts/tagging-with-acts-as-taggable-on"&gt;tagging with acts-as-taggable-on&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I don't like the tag-cloud style of tag-selection, and instead prefer something much more like &lt;a href="http://stackoverflow.com/"&gt;Stack Overflow&lt;/a&gt;. So I created my own tag-list as per the code below.&lt;/p&gt;

&lt;p&gt;It lists all current tags for the class (assuming similar code setup to the tutorial above), and filter based on that keyword - incorporating any existing search or pagination conditions you already have. It will highlight the current keyword, and change that link to a "deselect if you click" link.&lt;/p&gt;


&lt;pre class="code"&gt;

    # code in index page
    &amp;lt;% @tags.sort_by(&amp;amp;:count).reverse.each do |k| %&amp;gt;
      &amp;lt;% url_opts = {:action =&amp;gt; "index", :controller =&amp;gt; "posts"}
         link_name = "#{k.name} (#{k.count})"
      %&amp;gt;
      &amp;lt;% if @keyword == k.name %&amp;gt;
        &amp;lt;%= link_to link_name, url_opts.merge(:keyword =&amp;gt; nil), :class =&amp;gt; "tag current_tag", :title =&amp;gt; "Click again to see all" %&amp;gt;
      &amp;lt;% else %&amp;gt;
        &amp;lt;%= link_to link_name,  url_opts.merge(:keyword =&amp;gt; k.name), :class =&amp;gt; "tag", :title =&amp;gt; "Click to filter by #{k.name}" %&amp;gt;
      &amp;lt;% end %&amp;gt;
    &amp;lt;% end %&amp;gt;


   # code in controller
   options = {} # any search/pagination conditions go here
   @tags = Post.tag_counts_on(:keywords)
   klass = Post
   klass = klass.tagged_with(@keyword) if (@keyword = params[:keyword]).present?
   @posts = klass.paginate( options )




  /**** and associated tag-cloud styles ****/
  /* basic tag-box */
  .tag {
    background-color: #eee;
    border: 2px solid #ccc;
    color: orange;
    border-radius: 7px;
    -moz-border-radius: 7px;
    padding: 2px 15px;
    text-decoration: none;
  }
  .current_tag {
    background-color: #ddd;
    color: orange;
    border: 2px solid orange;
    border-radius: 7px;
    -moz-border-radius: 7px;
    font-weight: bold;
  }
  .tag:hover, .current_tag:hover {
    background-color: #bbb;
    color: red;
    border: 2px solid red;
    border-radius: 7px;
    -moz-border-radius: 7px;
  }
&lt;/pre&gt;

&lt;p&gt;Next up is to figure out ye olde ajax auto-suggest when I add them.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-4916282610552603636?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=elfd58kEZQo:IMHxzLVlJOY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=elfd58kEZQo:IMHxzLVlJOY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=elfd58kEZQo:IMHxzLVlJOY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=elfd58kEZQo:IMHxzLVlJOY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=elfd58kEZQo:IMHxzLVlJOY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=elfd58kEZQo:IMHxzLVlJOY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=elfd58kEZQo:IMHxzLVlJOY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=elfd58kEZQo:IMHxzLVlJOY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=elfd58kEZQo:IMHxzLVlJOY:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/elfd58kEZQo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/4916282610552603636/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=4916282610552603636" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/4916282610552603636?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/4916282610552603636?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/elfd58kEZQo/acts-as-taggable-on.html" title="Acts-as-taggable-on" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/12/acts-as-taggable-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYGQH0-fCp7ImA9WhRRE0Q.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-3757662676031637095</id><published>2011-11-27T11:42:00.000Z</published><updated>2011-11-27T11:42:01.354Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-27T11:42:01.354Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="random" /><category scheme="http://www.blogger.com/atom/ns#" term="code snippet" /><category scheme="http://www.blogger.com/atom/ns#" term="code snippets" /><title>Snippet: random range</title><content type="html">&lt;p&gt;Being able to get a random number within a given range is something currently only available in ruby 1.9... but if you want to add a quick method that will do it for you, this one does the trick:&lt;/p&gt;

&lt;pre class="code"&gt;
  def range_rand(val1,val2)
    rand(1+val2-val1)+val1
  end

  rand(1,5) # =&gt; one of: 1,2,3,4,5

  rand(100,999) # =&gt; anywhere from 100 to 999
&lt;/pre&gt;

&lt;p&gt;Note: it only works for integer values...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-3757662676031637095?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=CmUxU_qT9Z8:IWteDL6XvLU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=CmUxU_qT9Z8:IWteDL6XvLU:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=CmUxU_qT9Z8:IWteDL6XvLU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=CmUxU_qT9Z8:IWteDL6XvLU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=CmUxU_qT9Z8:IWteDL6XvLU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=CmUxU_qT9Z8:IWteDL6XvLU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=CmUxU_qT9Z8:IWteDL6XvLU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=CmUxU_qT9Z8:IWteDL6XvLU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=CmUxU_qT9Z8:IWteDL6XvLU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/CmUxU_qT9Z8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/3757662676031637095/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=3757662676031637095" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/3757662676031637095?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/3757662676031637095?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/CmUxU_qT9Z8/snippet-random-range.html" title="Snippet: random range" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/11/snippet-random-range.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEACQXsycSp7ImA9WhRSF0Q.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-5557348352067939980</id><published>2011-11-20T13:46:00.000Z</published><updated>2011-11-20T13:46:00.599Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-20T13:46:00.599Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="funding" /><category scheme="http://www.blogger.com/atom/ns#" term="science" /><title>Genome GPS: crowdsourcing science funding</title><content type="html">&lt;p&gt;A friend of mine is using rockethub to fund scientific research. This looks like an innovative alternative to grant-grubbing and research built only around what BigPharma will pay for. Worth a bit of support (even if you can't afford much).&lt;/p&gt;

&lt;p&gt;&lt;a href="http://rockethub.com/projects/4065-a-gps-for-the-genome"&gt;GPS for the genome on rockethub&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-5557348352067939980?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ff8k79X6G1o:LHBwn_48CJY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ff8k79X6G1o:LHBwn_48CJY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ff8k79X6G1o:LHBwn_48CJY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ff8k79X6G1o:LHBwn_48CJY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=ff8k79X6G1o:LHBwn_48CJY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ff8k79X6G1o:LHBwn_48CJY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ff8k79X6G1o:LHBwn_48CJY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=ff8k79X6G1o:LHBwn_48CJY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ff8k79X6G1o:LHBwn_48CJY:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/ff8k79X6G1o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/5557348352067939980/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=5557348352067939980" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/5557348352067939980?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/5557348352067939980?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/ff8k79X6G1o/genome-gps-crowdsourcing-science.html" title="Genome GPS: crowdsourcing science funding" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/11/genome-gps-crowdsourcing-science.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YNSHg6eyp7ImA9WhRSE0g.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-435931595224386334</id><published>2011-11-13T15:15:00.002Z</published><updated>2011-11-15T09:59:59.613Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-15T09:59:59.613Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="women in it" /><category scheme="http://www.blogger.com/atom/ns#" term="job ads" /><title>Link: How to avoid ghetto jobs</title><content type="html">&lt;p&gt;A great post on &lt;a href="http://www.women2.org/"&gt;women 2.0&lt;/a&gt; about &lt;a href="http://www.women2.org/how-to-avoid-pink-ghetto-software-development-for-women/"&gt;how to avoid what she terms "pink ghetto" jobs&lt;/a&gt;. These are jobs that are just as bad for men as for women, and are often the first job or two you fall into as a new graduate. eg unpaid internships, poorly-organised, unfunded startups and those dead-end jobs where you end up maintaining monstrous legacy code on very low pay, rather than learning new skills.&lt;/p&gt;

&lt;p&gt;The article takes a good look at how to spot the duds, and how to find better employment options.&lt;/p&gt;

&lt;p&gt;I've fallen into the trap of several of these myself, over the years. From the "100% equity (but the product is totally unsaleable and we didn't bother to research that before you spent 23 man-days working on it)", to the poorly-paid legacy-code maintainer (plus guilt trips to keep me on even after having three months of unpaid invoices), to a job for a  "web developer" (that actually mainly works on resetting our customer's forgotten passwords). So - it's definitely worth knowing how to spot these trucks coming before they run over you and leave you in the dust, bleeding financially.&lt;/p&gt;

&lt;p&gt;Have you had any experiences of ghetto jobs yourself?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-435931595224386334?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=9ZsToylOc98:Uxx-voaAq8k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=9ZsToylOc98:Uxx-voaAq8k:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=9ZsToylOc98:Uxx-voaAq8k:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=9ZsToylOc98:Uxx-voaAq8k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=9ZsToylOc98:Uxx-voaAq8k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=9ZsToylOc98:Uxx-voaAq8k:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=9ZsToylOc98:Uxx-voaAq8k:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=9ZsToylOc98:Uxx-voaAq8k:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=9ZsToylOc98:Uxx-voaAq8k:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/9ZsToylOc98" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/435931595224386334/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=435931595224386334" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/435931595224386334?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/435931595224386334?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/9ZsToylOc98/link-how-to-avoid-ghetto-jobs.html" title="Link: How to avoid ghetto jobs" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>4</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/11/link-how-to-avoid-ghetto-jobs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQAQX8zcCp7ImA9WhRTFkU.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-6717555078815817572</id><published>2011-11-07T17:19:00.000Z</published><updated>2011-11-07T17:19:00.188Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-07T17:19:00.188Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="navel gazing" /><title>Full-length feed: love or hate?</title><content type="html">&lt;p&gt;I've been reading a few other blogs on which people have mentioned that people prefer the full article in their feed reader. rather than just a short section and requiring a click to take them to the full article&lt;/p&gt;

&lt;p&gt;I personally prefer the short version as I have a lot of stuff in my reader and hate dragging down hundreds of full-length posts when I'm likely to only read a few here and there via the reader, but it seems that a lot of people prefer it the other way.&lt;/p&gt;

&lt;p&gt;So.. as an experiment, I flipped it over to the other way a month ago - to see if anybody noticed and changes the way they read. My site's not exactly high volume (maybe 1200-1400 uniques in a month), so not sure if the changes are really that massive yet, and I guess we can see as time goes on. But I'm impatient, so I figured I'd just ask. I'll happily accede to the wishes of the majority...&lt;/p&gt;

&lt;p&gt;So: do you love it? hate it? even notice a difference at all?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-6717555078815817572?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=VI-aLVpZMsQ:41vjTtF3_co:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=VI-aLVpZMsQ:41vjTtF3_co:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=VI-aLVpZMsQ:41vjTtF3_co:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=VI-aLVpZMsQ:41vjTtF3_co:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=VI-aLVpZMsQ:41vjTtF3_co:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=VI-aLVpZMsQ:41vjTtF3_co:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=VI-aLVpZMsQ:41vjTtF3_co:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=VI-aLVpZMsQ:41vjTtF3_co:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=VI-aLVpZMsQ:41vjTtF3_co:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/VI-aLVpZMsQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/6717555078815817572/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=6717555078815817572" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/6717555078815817572?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/6717555078815817572?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/VI-aLVpZMsQ/full-length-feed-love-or-hate.html" title="Full-length feed: love or hate?" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>8</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/11/full-length-feed-love-or-hate.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EMQX8zcCp7ImA9WhdaGUQ.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-7512055494137225628</id><published>2011-10-30T17:28:00.000Z</published><updated>2011-10-30T17:28:00.188Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-30T17:28:00.188Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="antispam" /><title>Yahoo group spam: how to avoid it</title><content type="html">&lt;p&gt;I've been getting a lot of this spam lately. Generally by receiving a *genuine* notification of having been added to spammy yahoo group along the lines of:&lt;/p&gt;

&lt;pre class="code"&gt;
From: kgsqdj Moderator &lt;kgsqdj-owner@yahoogroups.com&gt;
Subject: Welcome to the kgsqdj group


Hello,

I've added you to my kgsqdj group at Yahoo! Groups, a free,
easy-to-use service. Yahoo! Groups makes it easy to send and receive
group messages, coordinate events, share photos and files, and more.

...etc
&lt;/pre&gt;

&lt;p&gt;I've been reporting them to spam-abuse as I go... but there is actually a solution to this (and don't hit the button at the bottom of the spam email).&lt;/p&gt;

&lt;p&gt;You need to go to your yahoo groups prefs page: &lt;a href="http://groups.yahoo.com/myprefs"&gt;http://groups.yahoo.com/myprefs&lt;/a&gt;.Then for each email address you have listed, clieck "edit" and untick the box marked "Allow group moderators to directly add me to their groups".&lt;/p&gt;
&lt;p&gt;If you really want to be in control, also untick the box marked "Allow group moderators to invite me to their groups."&lt;/p&gt;
&lt;p&gt;This way you'll only ever join groups that you actually apply to join.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-7512055494137225628?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=v1Ko6oBFCjs:ZW6r4UAoRJQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=v1Ko6oBFCjs:ZW6r4UAoRJQ:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=v1Ko6oBFCjs:ZW6r4UAoRJQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=v1Ko6oBFCjs:ZW6r4UAoRJQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=v1Ko6oBFCjs:ZW6r4UAoRJQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=v1Ko6oBFCjs:ZW6r4UAoRJQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=v1Ko6oBFCjs:ZW6r4UAoRJQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=v1Ko6oBFCjs:ZW6r4UAoRJQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=v1Ko6oBFCjs:ZW6r4UAoRJQ:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/v1Ko6oBFCjs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/7512055494137225628/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=7512055494137225628" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/7512055494137225628?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/7512055494137225628?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/v1Ko6oBFCjs/yahoo-group-spam-how-to-avoid-it.html" title="Yahoo group spam: how to avoid it" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/10/yahoo-group-spam-how-to-avoid-it.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cGQXo7eSp7ImA9WhdaFU4.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-2881362218336350866</id><published>2011-10-25T10:20:00.003+01:00</published><updated>2011-10-25T10:30:20.401+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-25T10:30:20.401+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="lisp" /><category scheme="http://www.blogger.com/atom/ns#" term="obituaries" /><title>( sad world (dead (John McCarthy)))</title><content type="html">&lt;p&gt;It's been a sad month for the computing world as we lose another great icon.&lt;/p&gt;

&lt;p&gt;John McCarthy invented LISP and in doing was a pioneer of AI - contributing heavily to the field.&lt;/p&gt;

&lt;p&gt; He will be greatly missed.&lt;/p&gt;

&lt;p&gt;The register have written a better article on all his many contributions here: &lt;a href="http://www.theregister.co.uk/2011/10/24/father_lisp_ai_john_mccarthy_dies/"&gt;Father of Lisp and AI John McCarthy has died&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're wondering how this relates to ruby - remember that ruby has been described as &lt;a href="http://www.randomhacks.net/articles/2005/12/03/why-ruby-is-an-acceptable-lisp"&gt;"an acceptable version of LISP"&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-2881362218336350866?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=edLen0kzXPM:xNWbEwZ3YVU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=edLen0kzXPM:xNWbEwZ3YVU:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=edLen0kzXPM:xNWbEwZ3YVU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=edLen0kzXPM:xNWbEwZ3YVU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=edLen0kzXPM:xNWbEwZ3YVU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=edLen0kzXPM:xNWbEwZ3YVU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=edLen0kzXPM:xNWbEwZ3YVU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=edLen0kzXPM:xNWbEwZ3YVU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=edLen0kzXPM:xNWbEwZ3YVU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/edLen0kzXPM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/2881362218336350866/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=2881362218336350866" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/2881362218336350866?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/2881362218336350866?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/edLen0kzXPM/sad-world-dead-john-mccarthy.html" title="( sad world (dead (John McCarthy)))" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/10/sad-world-dead-john-mccarthy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UFSXg-fip7ImA9WhdaEU0.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-89789445260601350</id><published>2011-10-20T10:35:00.009+01:00</published><updated>2011-10-20T11:06:58.656+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-20T11:06:58.656+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="tech support" /><title>Does Linux Tech Support exist?</title><content type="html">&lt;p&gt;I recently had some trouble with my &lt;a href="http://ubuntuforums.org/showthread.php?p=11356902"&gt;internet broadband connection&lt;/a&gt;. I changed to another provider while overseas, and when I got back, discovered that something I'd installed had broken my at-home internet setup... so I was bereft of teh intarwebs&lt;a href="#starbucks"&gt;[1]&lt;/a&gt; for day while I figured it out.&lt;/p&gt;

&lt;p&gt;As is usual in this kind of situation, I first tried getting it working by myself. I googled, read forums and generally faffed about installing and uninstalling various internet and USB-related packages in an effort to get things working... &lt;/p&gt;

&lt;p&gt;but I'm not really a sysadmin, so you could probably describe my attempts as "well intentioned flailing" &lt;/p&gt;
&lt;p&gt;I tried all the things that people said to try - but more in a voodoo/cargo-cult kinda way... because really I don't grok these packages intuitively and don't really want to spend the time learning. I just wanted to get it running again so I could get back to work.&lt;/p&gt;

&lt;p&gt;So I eventually gave up, and rang tech support.&lt;/p&gt;

&lt;p&gt;Or I should say I tried.&lt;/p&gt;

&lt;p&gt;I googled about to find about 5 or 6 "linux tech support" companies in England. I checked out their websites and dropped a few off the list (for saying they only supported setting up LAMP stacks), and called the others. Two of these also said they only supported servers fairly quickly, and the third did so also - but only after they tried to tell me to go speak to vodafone or Mac (like either of them would support linux!).&lt;/p&gt;

&lt;p&gt;and I was left with the strange sensation of being totally and utterly alone.&lt;/p&gt;

&lt;p&gt;Back in Sydney I have ties with the linux community, and no doubt I could find half a dozen people willing to offer help for real cash money. I'm sure that figuring out a dodgy device-connection is not their usual bread-and-butter... but it's still linux support.&lt;/p&gt;

&lt;p&gt;So, why, in this country of so many millions of people is there not a single company that does not provide this service?&lt;/p&gt;

&lt;p&gt;Or if it does... it needs better SEO. :P&lt;/p&gt;

&lt;p&gt;Does anybody know of a not-just-servers linux tech support company in England?&lt;/p&gt;


&lt;hr /&gt;


&lt;p&gt;PS: in the end, a totally non-linux-sysadmin friend from Sydney suggested (via a facebook chat) that I reinstall network-manager, and as I did so I noticed there was a "recommended package" for it that was not installed... no idea which fixed it, but I owe that friend a big hug!&lt;/p&gt;


&lt;p&gt;&lt;a name="starbucks"&gt;[1]&lt;/a&gt; I wouldn't normally do this, but:
&lt;br/&gt;Thank you &lt;a href="http://www.starbucks.com"&gt;Starbucks&lt;/a&gt; for being there when I needed you!
&lt;br/&gt;I think your coffee is way too milky, but when I needed some free wifi and a warm place to endlessly reboot after reinstalling package-after-package... you were there for me!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-89789445260601350?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=-DPvnnh8LgE:xYMzwTPIYu8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=-DPvnnh8LgE:xYMzwTPIYu8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=-DPvnnh8LgE:xYMzwTPIYu8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=-DPvnnh8LgE:xYMzwTPIYu8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=-DPvnnh8LgE:xYMzwTPIYu8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=-DPvnnh8LgE:xYMzwTPIYu8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=-DPvnnh8LgE:xYMzwTPIYu8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=-DPvnnh8LgE:xYMzwTPIYu8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=-DPvnnh8LgE:xYMzwTPIYu8:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/-DPvnnh8LgE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/89789445260601350/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=89789445260601350" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/89789445260601350?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/89789445260601350?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/-DPvnnh8LgE/does-linux-tech-support-exist.html" title="Does Linux Tech Support exist?" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>2</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/10/does-linux-tech-support-exist.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcEQXs_eCp7ImA9WhdbFU8.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-5493920131039895057</id><published>2011-10-13T17:40:00.000+01:00</published><updated>2011-10-13T17:40:00.540+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-13T17:40:00.540+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="rails" /><category scheme="http://www.blogger.com/atom/ns#" term="gems" /><title>rubygems upgrade killed rails</title><content type="html">&lt;p&gt;Ack! I just tried to upgrade rubygems... and it destroyed my working version of rails 2.3.5 (yes, we use it for a client that has not yet upgraded due to the quite reasonable "it ain't broke" assumption).&lt;/p&gt;

&lt;p&gt;Now I can't run script/server without one of the following errors:
&lt;span class="code"&gt;
/usr/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/gem_dependency.rb:268:in `==': undefined method `name' for "Ascii85":String (NoMethodError)&lt;/span&gt;
or
&lt;span class="code"&gt;/usr/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/rails/gem_dependency.rb:119:in `requirement': undefined local variable or method `version_requirements' for #&lt;Rails::GemDependency:0xb7274d24&gt; (NameError)&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Chris Oliver provides a quick fix for getting back to a previously-working version in his description of the &lt;a href="http://excid3.com/blog/undefined-local-variable-or-method-version_requirements-for-nameerror/"&gt;undefined local variable or method `version_requirements`&lt;/a&gt; and there's an active bug-report for the &lt;a href="http://rubyforge.org/tracker/index.php?func=detail&amp;aid=29188&amp;group_id=126&amp;atid=575"&gt;undefined method `name' for "Ascii85":String&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For now, though, it looks like the only solution is to downgrade and hope for a fix... which seems to be coming only for edge rails. I really don't like it that I have to maintain and old version of rubygems just so that I can run my client's perfectly functional rails stack. :(&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-5493920131039895057?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=xOv7tBMCxI4:OWTBPq1VGcc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=xOv7tBMCxI4:OWTBPq1VGcc:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=xOv7tBMCxI4:OWTBPq1VGcc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=xOv7tBMCxI4:OWTBPq1VGcc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=xOv7tBMCxI4:OWTBPq1VGcc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=xOv7tBMCxI4:OWTBPq1VGcc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=xOv7tBMCxI4:OWTBPq1VGcc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=xOv7tBMCxI4:OWTBPq1VGcc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=xOv7tBMCxI4:OWTBPq1VGcc:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/xOv7tBMCxI4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/5493920131039895057/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=5493920131039895057" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/5493920131039895057?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/5493920131039895057?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/xOv7tBMCxI4/rubygems-upgrade-killed-rails.html" title="rubygems upgrade killed rails" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/10/rubygems-upgrade-killed-rails.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ANRnc7fSp7ImA9WhdUGU8.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-4005851885947425996</id><published>2011-10-06T20:31:00.004+01:00</published><updated>2011-10-06T20:36:37.905+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-06T20:36:37.905+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="obituaries" /><title>Jobs lost to the world</title><content type="html">&lt;p&gt;A moment of silence for the passing of Steve Jobs.&lt;/p&gt;
&lt;p&gt;:(&lt;/p&gt;
&lt;p&gt;They always say of businessmen that "oh he was a visionary and great leader"... but Steve Jobs really was.&lt;/p&gt;
&lt;p&gt;If you need a reminder of all the amazing things he did, there's a nice post outlining &lt;a href="http://www.gizmag.com/the-business-legacy-of-mr-jobs/19638/"&gt;Mr Jobs' legacy on gizmag&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The world is a little less bright without him.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-4005851885947425996?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=oL_t8PdPfTo:lhkFrH_-FJY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=oL_t8PdPfTo:lhkFrH_-FJY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=oL_t8PdPfTo:lhkFrH_-FJY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=oL_t8PdPfTo:lhkFrH_-FJY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=oL_t8PdPfTo:lhkFrH_-FJY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=oL_t8PdPfTo:lhkFrH_-FJY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=oL_t8PdPfTo:lhkFrH_-FJY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=oL_t8PdPfTo:lhkFrH_-FJY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=oL_t8PdPfTo:lhkFrH_-FJY:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/oL_t8PdPfTo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/4005851885947425996/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=4005851885947425996" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/4005851885947425996?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/4005851885947425996?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/oL_t8PdPfTo/jobs-lost-to-world.html" title="Jobs lost to the world" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/10/jobs-lost-to-world.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UAQ3c6cSp7ImA9WhdUGE4.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-9061530057496457099</id><published>2011-10-05T17:00:00.005+01:00</published><updated>2011-10-05T17:14:02.919+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-05T17:14:02.919+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="rjs" /><category scheme="http://www.blogger.com/atom/ns#" term="code snippet" /><category scheme="http://www.blogger.com/atom/ns#" term="templates" /><category scheme="http://www.blogger.com/atom/ns#" term="partial templates" /><title>Rendering an rjs partial from a controller action</title><content type="html">&lt;p&gt;I've recently been working on sharing some AJAXy controller actions between an admin and non-admin controller set up in completely different parts of a site, and this required the ability to use shared rjs templates. Tis is what I found out.&lt;/p&gt;

&lt;p&gt;Lets say you originally have an erb and rjs template thus:&lt;/p&gt;

&lt;pre class="code"&gt;
   # original update_widget.rjs
   page.replace_html "widget_wrapper", :partial =&gt; "widget"

   # original widget.erb
   &amp;lt;div id="widget_wrapper"&amp;gt;
      lots of cool stuff here to show off your widget
   &amp;lt;/div&amp;gt;
&lt;/pre&gt;

&lt;p&gt;You need to pull that rjs out into a partial template called &lt;span class="code"&gt;_update_widget.rjs&lt;/span&gt; as below.&lt;/p&gt;
&lt;p&gt;Note the full path-name for the partial - this is so we can share this template across controllers&lt;/p&gt;

&lt;pre class="code"&gt;
   # new update_widget.rjs
   page &lt;&lt; render(:partial =&gt; 'widgets/update_widget')

   # new partial: _update_widget.rjs
   page.replace_html "widget_wrapper", :partial =&gt; "widgets/widget"
&lt;/pre&gt;

&lt;p&gt;Now to call an rjs template from a controller action you use the syntax as below:&lt;/p&gt;

&lt;p&gt;Note: this is what you put in the new controller, the original controller (in this case it'd be widgets_controller) will still default to using the action-name to find the rjs template&lt;/p&gt;

&lt;pre class="code"&gt;
   return render( :partial =&gt; 'widgets/update_widget.rjs') # the '.rjs' is essential
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-9061530057496457099?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=wAJFfCGMpyY:B8N1nTNCFFQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=wAJFfCGMpyY:B8N1nTNCFFQ:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=wAJFfCGMpyY:B8N1nTNCFFQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=wAJFfCGMpyY:B8N1nTNCFFQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=wAJFfCGMpyY:B8N1nTNCFFQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=wAJFfCGMpyY:B8N1nTNCFFQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=wAJFfCGMpyY:B8N1nTNCFFQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=wAJFfCGMpyY:B8N1nTNCFFQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=wAJFfCGMpyY:B8N1nTNCFFQ:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/wAJFfCGMpyY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/9061530057496457099/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=9061530057496457099" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/9061530057496457099?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/9061530057496457099?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/wAJFfCGMpyY/rendering-rjs-partial-as-controller.html" title="Rendering an rjs partial from a controller action" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/10/rendering-rjs-partial-as-controller.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYAQX87eCp7ImA9WhdVFkU.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-3294840819513093304</id><published>2011-09-22T10:19:00.001+01:00</published><updated>2011-09-22T10:19:00.100+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-22T10:19:00.100+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="entrepreneur" /><category scheme="http://www.blogger.com/atom/ns#" term="links" /><category scheme="http://www.blogger.com/atom/ns#" term="passive income" /><title>Links: The Truth (and Myth) about passive income</title><content type="html">&lt;p&gt;I've also read &lt;a href="http://www.amazon.com/s?ie=UTF8&amp;x=0&amp;ref_=nb_sb_ss_c_1_14&amp;y=0&amp;field-keywords=four%20hour%20work%20week&amp;url=search-alias%3Dstripbooks&amp;sprefix=four%20hour%20work#?_encoding=UTF8&amp;tag=rubycolouredg-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=390957"&gt;The 4-hour work week&lt;/a&gt; and dreamed about relaxing on a tropical island while the money pours in... but the truth is that it's actually a lot of hard work to get to that stage.&lt;/p&gt;

&lt;p&gt;The biggest myth surrounding passive income is that it's a "set and forget" strategy. The truth is that it does actually take a lot of work, up-front to get that ball rolling.&lt;/p&gt;

&lt;p&gt;Nacie's article weighs up whether &lt;a href="http://www.entrepreneurs-journey.com/5280/the-truth-and-myth-about-passive-income/"&gt;passive income&lt;/a&gt; is all it's cracked up to be.&lt;/p&gt;

&lt;p&gt;Too many people read "four hours" and think that passive income is the *easy* path to success... far from it. You'll most likely get far more up-front cash coming in via a traditional entrepreneurial route. Sure, some superstars will hit it lucky up-front and be an immediate smash, but for most of us working-joes, "passive" is all about building over the long-term; and keep in mind that it will take a long-term effort to get a full-on passive cashflow. In the meantime, you'll probably have to start with a more traditional business or job until your passive streams grow enough to be sustaining.&lt;/p&gt;

&lt;p&gt;Have a look at what Steve says if you want to know the real &lt;a href="http://mywifequitherjob.com/the-consequences-of-taking-the-easy-route-when-launching-your-business/?awt_l=90dwF&amp;awt_m=3hGiEguMYDyJmJRhttp://mywifequitherjob.com/the-consequences-of-taking-the-easy-route-when-launching-your-business/?awt_l=90dwF&amp;awt_m=3hGiEguMYDyJmJR"&gt;consequences of trying to take the easy route when launching your own business&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now, don't take all this to mean that "4 hours" is all a lie. As far as I'm aware, it never states that you can make money with no effort at all - or that you'll even make more money that way than the traditional routes... It's quite clear that it's handbook about really useful ways of simplifying and delegating as many parts of your business as possible. The main point being that you are building a "maintenance free" business, rather than a "totally effortless" business.&lt;/p&gt;

&lt;p&gt;It's definitely true that people *can* make passive income work this way. Just keep in mind that it won't happen overnight and it's won't happen with absolutely no effort at all.&lt;/p&gt;


&lt;hr /&gt;

&lt;p&gt;Anybody here have experiences with putting into practice what they found in "four hours" or any other version of a passive income stream? How did it work out for you?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-3294840819513093304?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=9QgSJp8aXHo:CIA2Y5i6U8M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=9QgSJp8aXHo:CIA2Y5i6U8M:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=9QgSJp8aXHo:CIA2Y5i6U8M:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=9QgSJp8aXHo:CIA2Y5i6U8M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=9QgSJp8aXHo:CIA2Y5i6U8M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=9QgSJp8aXHo:CIA2Y5i6U8M:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=9QgSJp8aXHo:CIA2Y5i6U8M:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=9QgSJp8aXHo:CIA2Y5i6U8M:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=9QgSJp8aXHo:CIA2Y5i6U8M:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/9QgSJp8aXHo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/3294840819513093304/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=3294840819513093304" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/3294840819513093304?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/3294840819513093304?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/9QgSJp8aXHo/links-truth-and-myth-about-passive.html" title="Links: The Truth (and Myth) about passive income" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>1</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/09/links-truth-and-myth-about-passive.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAMQX4ycSp7ImA9WhdVEUw.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-2364710942252486531</id><published>2011-09-15T19:53:00.000+01:00</published><updated>2011-09-15T19:53:00.099+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-15T19:53:00.099+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="travel" /><title>my travel countries</title><content type="html">&lt;p&gt;I've been doing a lot of travel recently in Europe. My visa runs out here in about six months, so I'm well aware that I have only a few months left to see as much as I can before heading home to the antipodes.&lt;/p&gt;

&lt;p&gt;I found this neato travel map that lets you show the countries you've visited... but it makes all my recent travels look very tiny. Most of the red here was clocked up on other trips years ago. I guess that shows you just how amazingly huge the world really is!&lt;/p&gt;

&lt;img src="http://chart.apis.google.com/chart?cht=map:fixed=-70,-180,80,180&amp;chs=450x300&amp;chf=bg,s,336699&amp;chco=d0d0d0,cc0000&amp;chd=s:999999999999999999&amp;chld=FR|IE|IT|MC|NL|SE|GB|VA|MA|CA|MX|US|ID|MY|SG|TH|AU|NZ" width="450" height="300" &gt;&lt;br/&gt;visited 18 states (8%)&lt;br/&gt;&lt;a href="http://douweosinga.com/projects/visited?region=world"&gt;Create your own visited map of The World&lt;/a&gt; or &lt;a href="http://douweosinga.com/projects"&gt;another interesting project&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-2364710942252486531?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=rRflVg6DVgk:iAobqmUg3SY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=rRflVg6DVgk:iAobqmUg3SY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=rRflVg6DVgk:iAobqmUg3SY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=rRflVg6DVgk:iAobqmUg3SY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=rRflVg6DVgk:iAobqmUg3SY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=rRflVg6DVgk:iAobqmUg3SY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=rRflVg6DVgk:iAobqmUg3SY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=rRflVg6DVgk:iAobqmUg3SY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=rRflVg6DVgk:iAobqmUg3SY:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/rRflVg6DVgk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/2364710942252486531/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=2364710942252486531" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/2364710942252486531?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/2364710942252486531?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/rRflVg6DVgk/my-travel-countries.html" title="my travel countries" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/09/my-travel-countries.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYGQXs_eip7ImA9WhdWFU0.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-2715647238881130625</id><published>2011-09-08T19:22:00.000+01:00</published><updated>2011-09-08T19:22:00.542+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-08T19:22:00.542+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="email marketing" /><category scheme="http://www.blogger.com/atom/ns#" term="copyright" /><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>No implicit consent! Dos and don'ts for email addresses you find on the web</title><content type="html">&lt;p&gt;Like many people with an online presence, I have my email address plastered up on the web for all to see. I do it because I do want people to get in touch for business or friendly purposes.&lt;/p&gt;

&lt;p&gt;However, there are a few myths out there about what that "means" for the purposes of taking a copy and using it for you own ends.&lt;/p&gt;

&lt;p&gt;After a long email conversation with a man who got a few aspects of this very wrong... I thought I'd put up a quick list of dos and don'ts for using email addresses found on the web.&lt;/p&gt;


&lt;h3&gt;The myth of "Public domain"&lt;/h3&gt;

&lt;p&gt;A lot of people have the wrong idea about the web. They assume that because you can freely access a website... that means it's covered by the magic blanket called "public domain' that lets you take anything you find and use it yourself... including email addresses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is not true.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let me give the example of a "public building" such as a free museum. A public building is open to any members of the public. but just because they don't charge entry, does not mean you can come in and take the artworks off the shelves and take them home. They still belong to the museum.&lt;/p&gt;

&lt;p&gt;In this same way - just because you can easily come to a website, does not mean that anything you find there is yours for the taking. Your stuff is actually copyright. All of it!&lt;/p&gt;

&lt;p&gt;What copyright means is that another person cannot just grab your stuff (whether the pictures words or even personal details such as email) and use it without your permission. Specifically, they cannot copy it, and especially cannot use it and put their name on it. It is *not* free for public use.&lt;/p&gt;


&lt;p&gt;Anything you write or create is *automatically* covered by copyright law. If you create it, you own it. Automatically. You don't even need to say "copyright". It already is the moment you first wrote it down. This goes for a poem you write on the back of a napkin, a drawing you scribble in your diary or a website you build and keep on your own server.&lt;/p&gt;

&lt;p&gt;Now, some people aren't as aware of copyright law as others... so there's this convention of putting a copyright notice on your website... just to make sure people really know that this stuff belongs to you. Just like the little roped off areas in a museum - they don't really stop anybody, but make it clear that entry is unwanted.&lt;/p&gt;

&lt;p&gt;It actually isn't necessary - your stuff is still copyright without that notice - but I see the sense in it, and do it on my own website, just as a reminder to newbies that "you can look, but don't touch".&lt;/p&gt;

&lt;p&gt;So, what actually is public domain and how do we put things in it?&lt;/p&gt;

&lt;p&gt;If you've ever used wikipedia, and actually had a go at editing a page... you'll know that you actually have to agree by their terms and conditions... including agreeing that anything you contribute no longer belongs to you - and has been put in the public domain. A notice on the site declaring it as public domain isn't enough (because people frequently don't read notices). You actually have to check a box and hit "submit" before they'll accept that you have agreed to their terms.&lt;/p&gt;


&lt;p&gt;This is how things get into the public domain... by you clearly agreeing it as such.&lt;/p&gt;

&lt;p&gt;On flickr you can put things into the public domain... or share them using the creative commons license (which does roughly the same thing at the most forgiving levels)... but again, you must physically do something to put something in the public domain... and everything else is considered copyright.&lt;/p&gt;


&lt;p&gt;... but you should now understand that you actually have to *actively* do something to make your stuff go into the public domain. The default case is that your stuff is not available for anybody to just grab for themselves.&lt;/p&gt;


&lt;h3&gt;What does this mean for email addresses?&lt;/h3&gt;

&lt;p&gt;Well, email is tricky in some cases. You have put your address out there as a method for people to get in touch with you. So you can't then complain if they do.&lt;/p&gt;

&lt;p&gt;However, there are some obvious social implications of exactly how that works... and there are definitely some legal implications surrounding the concept of spam.&lt;/p&gt;

&lt;h4&gt;Firstly: it is illegal to send any unsolicited email to a person.&lt;/h4&gt;

&lt;p&gt;Your consent must be given to get in touch with you, and even if you put your email address up on the web, there is *NO* implied consent for that. You have not given up any rights by making it publicly viewable.&lt;/p&gt;

&lt;p&gt;If I put my email up on my website and literally write next to it "use this to contact me about business opportunities"... and then get spam about pills... I can legally say that this was unsolicited. It is quite clearly *not* what I asked for.&lt;/p&gt;

&lt;p&gt;If I get spam about "work from home using your computer"... then it's more of a grey-area. It is in fact email about business opportunities, and I can't complain about that. So - make it clear what your email is there for.&lt;/p&gt;

&lt;p&gt;but if somebody tries to send you any other kind of "helpful free information"... you now know that they are misbehaving.&lt;/p&gt;


&lt;h4&gt;Secondly: you cannot be automatically signed up for a newsletter that you did not subscribe to.&lt;/h4&gt;


&lt;p&gt;The exact legality of this varies depending on your country. But in the UK - you cannot be automatically signed up for a mailing list that you have not requested.&lt;/p&gt;

&lt;p&gt;...unless you actually left your email address with the company that is signing you up.&lt;/p&gt;

&lt;p&gt;ie a company that you have voluntarily handed your email address over to (say, during purchasing online) can sign you up for *their* personal email newsletter, without asking. But they *cannot* hand your email address to a third party&lt;a href="#third_party"&gt;[*]&lt;/a&gt; for spam or mailing lists. You have to have given a company consent for them to get in touch with you... and consent is not transferable.&lt;/p&gt;


&lt;p&gt;Also - a company cannot come to *your* website and *take* your email address and use it for their mailing list. You have to have handed the email over to them.&lt;/p&gt;

&lt;p&gt;Now there's a grey area here that companies often know about, but individuals don't... you don't have to have handed your email address over for the express purpose of signing up to their newsletter. You could have handed it over just as yet-another-mandatory-field in their uber-long registration form. It doesn't matter. They are legally allowed to use it... as long as they provide an opt-out mechanism.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But companies shouldn't do this anyway!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Companies should not abuse their mailing lists by opting people into newsletters.&lt;/p&gt;

&lt;p&gt;People are busy enough as it is, with a metric crapton of mailing lists from work, social groups, friends and family. They don't need one more. It is considered rude to opt people in to your mailing list without asking their permission first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It is damaging to your brand!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I totally understand wanting to get your message out to people... and I am *not* against getting in touch with your hard-earned customer base. So what I suggest you do is adopt an *opt-in* (rather than opt-out) policy.&lt;/p&gt;

&lt;p&gt;Write the email-equivalent of a warm-call: "this is new widget that we're offering, we have this neato newsletter about it, and we think you'll be really interested because you were interested in widgets from our company before... are you interested in signing up?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Then let them choose to ignore it if they wish!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Will you get fewer "subscribers"? YES! but will it make a difference in actual turnover? UNLIKELY! the people who were going to ignore your message were going to ignore it anyway. You've just bugged them for a few more months before they finally caved and hit "unsubscribe".  and probably get annoyed at the horrible unsubscribe interface (like everyone does), further damaging your brand in their eyes.&lt;/p&gt;

&lt;p&gt;What you're left with instead is a set of people that are &lt;strong&gt;*ACTUALLY INTERESTED*&lt;/strong&gt; in your product.&lt;/p&gt;

&lt;p&gt;Take a moment to think about how valuable THAT would that be to you!&lt;/p&gt;

&lt;p&gt;Think of it as an effective way to find your tribe of true believers... and maybe get yourself a copy of &lt;a href="http://sethgodin.typepad.com/seths_blog/"&gt;Seth Godin&lt;/a&gt;'s book &lt;a href="http://www.amazon.com/gp/product/1591842336/ref=as_li_ss_tl?ie=UTF8&amp;tag=rubycolouredg-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399369&amp;creativeASIN=1591842336"&gt;Tribes&lt;/a&gt;, while you're at it.&lt;/p&gt;


&lt;h3&gt;To sum up:&lt;/h3&gt;

&lt;p&gt;An email address on the web does not mean that you can spam it, or sign it up to even a really useful, helpful newsletter. There is *no* implied consent. Feel free to get in touch, but make certain that it's:&lt;/p&gt;

&lt;ol type="a"&gt;
   &lt;li&gt;appropriate to the person and&lt;/li&gt;
   &lt;li&gt;opt-in only&lt;/li&gt;
&lt;/ol&gt;


&lt;hr /&gt;

&lt;p&gt;&lt;a name="third_party"&gt;* Third Party opt-ins&lt;/a&gt; Note that a lot of company online purchasing processes have one of those nearly-hidden checkboxes talking about "third parties" for exactly this purpose... they are a sneaky way of pretending that you "opted in".&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-2715647238881130625?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ARx0M-rZu5c:pCrfeyINxqg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ARx0M-rZu5c:pCrfeyINxqg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ARx0M-rZu5c:pCrfeyINxqg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ARx0M-rZu5c:pCrfeyINxqg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=ARx0M-rZu5c:pCrfeyINxqg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ARx0M-rZu5c:pCrfeyINxqg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ARx0M-rZu5c:pCrfeyINxqg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=ARx0M-rZu5c:pCrfeyINxqg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=ARx0M-rZu5c:pCrfeyINxqg:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/ARx0M-rZu5c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/2715647238881130625/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=2715647238881130625" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/2715647238881130625?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/2715647238881130625?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/ARx0M-rZu5c/no-implicit-consent-dos-and-donts-for.html" title="No implicit consent! Dos and don'ts for email addresses you find on the web" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>2</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/09/no-implicit-consent-dos-and-donts-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcAQHo4fip7ImA9WhdXF00.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-7651309504973312683</id><published>2011-08-30T12:28:00.003+01:00</published><updated>2011-08-30T12:34:01.436+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-30T12:34:01.436+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="life" /><category scheme="http://www.blogger.com/atom/ns#" term="discipline" /><category scheme="http://www.blogger.com/atom/ns#" term="links" /><category scheme="http://www.blogger.com/atom/ns#" term="freedom" /><title>Link: training self-discipline</title><content type="html">&lt;p&gt;As a telecommuter, I well know the struggle with self-discipline. It's very hard to keep away from all the regular home-distractions and actually get down to work. But it's a necessary part of every day life.&lt;/p&gt;

&lt;p&gt;This article on &lt;a href="http://www.xamuel.com/training-self-discipline/"&gt;training self-discipline&lt;/a&gt; has some good tips on how the author has been working towards better self-discipline, and also some good general discussion on the benefits.&lt;/p&gt;

&lt;p&gt;I especially agree with his point that you need much more discipline if you have large amounts of freedom. I remember it being much easier to get down to work when I had to actually get up and go into the office at a set time each day.&lt;/p&gt;

&lt;p&gt;Anybody else here telecommute? Do you do anything to wok on your own self-discipline?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-7651309504973312683?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=hbVqk6JW2WY:ORXkBCCnM8Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=hbVqk6JW2WY:ORXkBCCnM8Q:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=hbVqk6JW2WY:ORXkBCCnM8Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=hbVqk6JW2WY:ORXkBCCnM8Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=hbVqk6JW2WY:ORXkBCCnM8Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=hbVqk6JW2WY:ORXkBCCnM8Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=hbVqk6JW2WY:ORXkBCCnM8Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=hbVqk6JW2WY:ORXkBCCnM8Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=hbVqk6JW2WY:ORXkBCCnM8Q:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/hbVqk6JW2WY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/7651309504973312683/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=7651309504973312683" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/7651309504973312683?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/7651309504973312683?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/hbVqk6JW2WY/link-training-self-discipline.html" title="Link: training self-discipline" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/08/link-training-self-discipline.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MCSX06fyp7ImA9WhdXEUQ.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-7728262896184993022</id><published>2011-08-24T15:09:00.002+01:00</published><updated>2011-08-24T15:17:48.317+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-24T15:17:48.317+01:00</app:edited><title>Emerald isle and censorship link</title><content type="html">&lt;p&gt;Hi all - sorry I've been quiet... I've been away on holidays in Ireland, learning how to pour the perfect pint of Guinness :)&lt;/p&gt;
&lt;p&gt;There's several comments I need to reply-to, but my schedule's all haywire due to the holiday and my birthday plans... I'll get to you eventually I promise!&lt;/p&gt;
&lt;p&gt;In the meantime, gizmag have posted an article abut an plan to let people in heavily censored cultures (eg China) get past the censorship with an interesting protocol called &lt;a href="http://www.gizmag.com/telex-anti-censorship-system/19488/?utm_source=Gizmag+Subscribers&amp;utm_campaign=6d4f960e85-UA-2235360-4&amp;utm_medium=email"&gt;Telex&lt;/a&gt; that hides requests in the HTTP headers of normal, uncensored web requests. Kind of an interesting idea. Enjoy&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-7728262896184993022?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=8Jufuh3lpT8:UPxPZ5zpcHs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=8Jufuh3lpT8:UPxPZ5zpcHs:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=8Jufuh3lpT8:UPxPZ5zpcHs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=8Jufuh3lpT8:UPxPZ5zpcHs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=8Jufuh3lpT8:UPxPZ5zpcHs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=8Jufuh3lpT8:UPxPZ5zpcHs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=8Jufuh3lpT8:UPxPZ5zpcHs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=8Jufuh3lpT8:UPxPZ5zpcHs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=8Jufuh3lpT8:UPxPZ5zpcHs:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/8Jufuh3lpT8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/7728262896184993022/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=7728262896184993022" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/7728262896184993022?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/7728262896184993022?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/8Jufuh3lpT8/emerald-isle-and-censorship-link.html" title="Emerald isle and censorship link" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/08/emerald-isle-and-censorship-link.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IGQXc-eip7ImA9WhdQE0k.&quot;"><id>tag:blogger.com,1999:blog-1502761093196431512.post-7411175871708310728</id><published>2011-08-14T19:12:00.000+01:00</published><updated>2011-08-14T19:12:00.952+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-14T19:12:00.952+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="life" /><title>Life at 36</title><content type="html">&lt;p&gt;When I was 5 I liked to do jigsaw puzzles upside down (to make it   harder) and blow bubbles off the balcony -- watching them drift over the   street. I liked to walk to school by myself (one block) and learn   Origami from the lady in the flats behind us.&lt;/p&gt;

&lt;p&gt;When I was 7 I wished on every star that I could have a baby sister.
When I was 8, I got one.&lt;/p&gt;

&lt;p&gt;When   I was 10 I liked to explore the backways of Oyster Bay, picking  flowers  to make perfume (which smelled terrible). I played fantasy  make-believe  games with my cousins - involving magic and unicorns,  where we saved  the world.&lt;/p&gt;

&lt;p&gt;When I was 12 I got another sister.... I stopped wishing.&lt;/p&gt;

&lt;p&gt;When I was 13 I liked to play make-believe with my sisters and all the   younger cousins. Gordy and I plotted adventures for us all, in-amongst   the bamboo.&lt;/p&gt;

&lt;p&gt;When I was 15 I like to climb up on the roof and watch the clouds drift by. I liked to ride my bike home from school and   play LARP in the park across the road.&lt;/p&gt;

&lt;p&gt;When I was 17 I liked to swim in the backyard pool, drifting underwater with my hair floating   loose around me. I liked to frantically scribble in my diary and day-dream about movies; making up adventure stories or inserting myself as a character in my favourites.&lt;/p&gt;

&lt;p&gt;When I was 20 I loved the freedom of being independent, waking up in my own flat to the sound of Cockatoos in the pine-trees. I liked being free  to  wake up in the afternoon and go for a walk in the twilight, or in  the  quiet time after the curfew painted the streets with night. I liked   staying up all night, having coffee with friends, as television got   progressively more idiotic. As the sky began to warm with first light - I   went out again. I liked feeling the expectant hush of the cool dawn,   then retiring before the hustle woke up.&lt;/p&gt;

&lt;p&gt;When I was 22 I loved my   writing diary - pouring out my heart or playing with words, crafting   new worlds on a page. I liked learning new things -- drifting from   subject to subject. I liked psychology, programming and the occult. I   loved my cats. I liked it that I got married and was somebody's wife. I   liked meditating with my husband -- humming toneful chords without   meaning. I liked learning martial arts with him.&lt;/p&gt;

&lt;p&gt;When I was 24 I   loved my garden. I spent days drifting through it and tending to the   plants. I liked picking silver-beet and herbs and cooking up a meal that   I'd taken from seed to table. I liked shopping at Bunnings for fruit   trees. I liked spending Saturday nights with the Druids, singing,   meditating, drinking mead and telling stories. Then the morning-afters,   skinny-dipping in the wading-pool as the sun climbed the sky.&lt;/p&gt;

&lt;p&gt;When   I was 26 I moved interstate by myself, to see the Big City. I liked exploring the back-areas of Chatswood in search of great food. I loved hacking together brilliant solutions for colleagues   desperately late on their projects. I liked rock-climbing with my   work-mates and playing network games in the training room until late at   night. I yearned for a man that I couldn't have.&lt;/p&gt;

&lt;p&gt;When I was 28 I   loved freedom. The freedom to choose my own time, to choose what to   learn, to work on my own projects. I liked smiling at my young   class-mates who complained about the work - knowing this was easy   compared with Real Work. I liked the meditation of archery. I liked   spending my time reading while sipping coffee, or eating noodles at the   local hole-in-the-wall. I liked long walks in the evening, scoping out   my local territory.&lt;/p&gt;

&lt;p&gt;When I was 30 I liked building my own small   business, knowing I owned it and I could achieve whatever I wanted. I   liked learning medieval crafts alongside eager students, and feasting   with friends in a medieval campsite. I liked reading books, sipping   coffee after a good workout at the gym. I liked watching myself learn   how to walk again.&lt;/p&gt;

&lt;p&gt;When I was 32 I enjoyed being a senior   developer, being at the top of my form as well as earning high   pay. I enjoyed choosing my first major investments in shares and  buying  my first property. I loved planning what to do with my life,  and  choosing to gather interesting experiences around me - New Zealand,  the  Northern Territory, Thailand. I learned photography,  spanish  and investing. I watched a *lot* of DVDs.&lt;/p&gt;

&lt;p&gt;When I was 34 I moved internationally by myself. I loved exploring in a new country: visiting  ancient ruins and watching Shakespeare at the Globe. I enjoyed getting better at photography, meeting new people and places. I built my own startup with friends. I enjoyed my morning coffee at the local in Windsor, and walking past a castle on my way to work in the morning. I loved pottering around in my allotment late into the long, english summer  nights.&lt;/p&gt;

&lt;p&gt;When I was 36 I loved getting about europe in my first car; learning French, and then eating my way around the French countryside. I enjoyed picking fresh fruit/veg from my allotment and making blackberry pie. I loved the lazy schedule allowed by working from home, and lazy Sunday afternoons drinking velvety latte with a Cranberry-and-orange muffin at my local cafe in Windsor, in view of the castle.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;This post began as an exercise: "for every five years, write what you enjoyed doing". It helps you find out what you most enjoy - and how your tastes change over time. I also like to do it to remind me of the good things in life - which can be so easy to forget sometimes.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1502761093196431512-7411175871708310728?l=rubyglasses.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=RGvcjpqadzQ:lNv43nC6wLA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=RGvcjpqadzQ:lNv43nC6wLA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=RGvcjpqadzQ:lNv43nC6wLA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=RGvcjpqadzQ:lNv43nC6wLA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=RGvcjpqadzQ:lNv43nC6wLA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=RGvcjpqadzQ:lNv43nC6wLA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=RGvcjpqadzQ:lNv43nC6wLA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?i=RGvcjpqadzQ:lNv43nC6wLA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/RubyGlasses?a=RGvcjpqadzQ:lNv43nC6wLA:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/RubyGlasses?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/RubyGlasses/~4/RGvcjpqadzQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rubyglasses.blogspot.com/feeds/7411175871708310728/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=1502761093196431512&amp;postID=7411175871708310728" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/7411175871708310728?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1502761093196431512/posts/default/7411175871708310728?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RubyGlasses/~3/RGvcjpqadzQ/life-at-36.html" title="Life at 36" /><author><name>Taryn</name><uri>http://www.blogger.com/profile/00647732421144825421</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="12" height="32" src="http://www.taryneast.com/images/BlueMtns.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://rubyglasses.blogspot.com/2011/08/life-at-36.html</feedburner:origLink></entry></feed>

