Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Site updated at 2014-02-26 14:49:46 UTC

  • Loading branch information...
commit 2072793ab304c1c23d8fca7d6dbdd39aca1410bd 0 parents
@jodosha authored
Showing with 22,746 additions and 0 deletions.
  1. +183 −0 2006/03/16/welcome-to-my-blog.html
  2. +221 −0 2006/10/30/javascript-hashmap.html
  3. +190 −0 2007/01/17/mplayer-console-tip.html
  4. +187 −0 2007/01/31/shot-a-day-2007-january.html
  5. +199 −0 2007/02/21/ruby-on-rails-validate-url.html
  6. +185 −0 2007/02/26/little-miss-sunshine.html
  7. +232 −0 2007/03/02/play-random-files-with-ruby.html
  8. +187 −0 2007/03/18/twittervision.html
  9. +185 −0 2007/03/20/highrise.html
  10. +205 −0 2007/03/28/activeform-020-released.html
  11. +185 −0 2007/04/25/flickr-pro-account.html
  12. +187 −0 2007/09/03/brand-new-blog.html
  13. +206 −0 2007/09/03/javascript-alias-method.html
  14. +189 −0 2007/09/25/rails-to-italy-07---coding-challenge.html
  15. +189 −0 2007/10/05/jpg-magazine-emotion-capture-theme.html
  16. +191 −0 2007/10/05/ruby-how-to-check-the-operating-system.html
  17. +200 −0 2007/10/08/rails-how-to-force-plugins-loading-in-20.html
  18. +184 −0 2007/10/16/rails-to-italy-07---qa-session-with-dhh.html
  19. +193 −0 2007/10/26/rails-to-italy-07-updates.html
  20. +186 −0 2007/10/30/kubrik-exhibition.html
  21. +215 −0 2007/11/03/parallels-how-to-install-ubuntu-710.html
  22. +195 −0 2007/11/15/rails-how-to-modify-template-contents-before-rendering.html
  23. +184 −0 2007/11/21/rome-javaday-07.html
  24. +192 −0 2007/11/27/ruby-read-a-file-with-one-line-of-code.html
  25. +217 −0 2007/11/28/acts-as-resource-combining-activerecord-and-activeresource.html
  26. +185 −0 2007/12/03/pop-art.html
  27. +185 −0 2007/12/03/subsonica-live-in-rome.html
  28. +183 −0 2007/12/06/ruby-on-rails-20-will-be-soon-released.html
  29. +220 −0 2007/12/08/ruby-on-rails-20-released.html
  30. +188 −0 2007/12/09/acts-as-resource-rails-20-ready.html
  31. +186 −0 2007/12/09/click-to-globalize-working-on-rails-20-compatibility.html
  32. +206 −0 2007/12/14/click-to-globalize-rails-20-ready.html
  33. +186 −0 2007/12/19/rome-javaday-07-slides.html
  34. +186 −0 2007/12/19/subsonica-in-rome.html
  35. +221 −0 2007/12/21/rails-how-to-create-custom-validations.html
  36. +204 −0 2008/01/02/ruby-how-to-avoid-a-respond_to-call.html
  37. +186 −0 2008/01/05/mondopop.html
  38. +184 −0 2008/01/26/click-to-globalize-high-resolution-video-tutorial.html
  39. +261 −0 2008/01/30/ruby-xml-parsing-with-sax.html
  40. +207 −0 2008/03/19/make-your-elements-draggable-and-resizeable-with-resizeablejs.html
  41. +185 −0 2008/04/04/bitfall.html
  42. +258 −0 2008/04/28/ruby-on-rails-test-model-domain-changes.html
  43. +192 −0 2008/05/12/click-to-globalize-rewritten-and-moved-to-github.html
  44. +186 −0 2008/05/14/acts-as-resource-rails-21-ready-and-moved-to-github.html
  45. +206 −0 2008/05/19/sashimi-a-rails-plugins-manager-gem.html
  46. +208 −0 2008/05/20/sashimi-just-received-a-tasteful-update.html
  47. +372 −0 2008/05/28/faster-javascript-trim.html
  48. +243 −0 2008/05/29/ruby-class-methods-proxy.html
  49. +237 −0 2008/06/03/rails-single-file-app.html
  50. +183 −0 2008/06/18/speaker-at-railsconf-europe-2008.html
  51. +192 −0 2008/06/23/released-sashimi-016.html
  52. +186 −0 2008/06/30/sashimi-getting-started-tutorial.html
  53. +184 −0 2008/07/14/sashimi-020.html
  54. +224 −0 2008/07/21/click-to-globalize-ready-for-rails-21.html
  55. +220 −0 2008/08/29/ruby-time-marshaling-bug-in-pre-19.html
  56. +249 −0 2008/09/10/cached-models.html
  57. +195 −0 2008/09/29/released-sashimi-021.html
  58. +185 −0 2008/10/10/cached-models-002.html
  59. +191 −0 2008/10/22/cached-models-003.html
  60. +216 −0 2008/10/23/skip-mocha.html
  61. +210 −0 2009/02/04/hash-deep-search.html
  62. +249 −0 2009/02/09/rails-caching-and-javascript-pt-1.html
  63. +218 −0 2009/02/13/rails-caching-and-javascript-pt-2.html
  64. +184 −0 2009/02/17/getting-started-with-cached-models.html
  65. +278 −0 2009/02/23/how-to-use-sprockets-with-rails.html
  66. +274 −0 2009/02/24/rake-tasks-for-run-rails-engines-migrations.html
  67. +216 −0 2009/03/31/boost-rails-sessions.html
  68. +204 −0 2009/04/10/click-to-globalize-for-rails-23.html
  69. +210 −0 2009/06/09/hanoi-automated-jquery-tests-with-qunit.html
  70. +197 −0 2009/06/13/memoria-statistics-for-redis.html
  71. +214 −0 2009/06/17/rails-unobtrusive-and-i18n-javascript-confirm.html
  72. +191 −0 2009/09/04/how-to-install-ruby-debug-on-ruby-19.html
  73. +187 −0 2011/01/30/why-customer-service-matters.html
  74. +279 −0 2011/02/13/html5-geolocation-testing-with-cucumber.html
  75. +245 −0 2012/02/27/lean-rails-app-setup.html
  76. +231 −0 2012/06/18/introducing-redis-store.html
  77. +194 −0 2013/12/17/on-happiness.html
  78. +204 −0 2014/01/01/announcing-lotus.html
  79. +253 −0 2014/01/23/introducing-lotus-router.html
  80. +312 −0 2014/01/28/building-sinatra-with-lotus.html
  81. +308 −0 2014/02/23/introducing-lotus-controller.html
  82. +290 −0 2014/02/26/redis-scripting-with-mruby-pt1.html
  83. +117 −0 404.html
  84. +1 −0  CNAME
  85. +452 −0 about.html
  86. +1,200 −0 archive.html
  87. +1 −0  assets/main.css
  88. BIN  assets/main.css.gz
  89. +1 −0  assets/main.js
  90. BIN  assets/main.js.gz
  91. +912 −0 atom.xml
  92. BIN  favicon.ico
  93. BIN  images/about.jpg
  94. BIN  images/announcing-lotus.jpg
  95. BIN  images/archive.jpg
  96. BIN  images/building-sinatra-with-lotus.jpg
  97. BIN  images/cover.jpg
  98. BIN  images/html5-geolocation-testing-with-cucumber.jpg
  99. BIN  images/introducing-lotus-controller.jpg
  100. BIN  images/introducing-lotus-router.jpg
  101. BIN  images/introducing-redis-store.jpg
  102. BIN  images/lean-rails-app-setup.jpg
  103. BIN  images/lg.png
  104. BIN  images/logo.png
  105. BIN  images/on-happiness.jpg
  106. BIN  images/redis-scripting-with-mruby-pt1.jpg
  107. +211 −0 index.html
  108. +155 −0 page/10/index.html
  109. +155 −0 page/11/index.html
  110. +155 −0 page/12/index.html
  111. +155 −0 page/13/index.html
  112. +155 −0 page/14/index.html
  113. +155 −0 page/15/index.html
  114. +155 −0 page/16/index.html
  115. +147 −0 page/17/index.html
  116. +199 −0 page/2/index.html
  117. +155 −0 page/3/index.html
  118. +155 −0 page/4/index.html
  119. +155 −0 page/5/index.html
  120. +155 −0 page/6/index.html
  121. +155 −0 page/7/index.html
  122. +155 −0 page/8/index.html
  123. +155 −0 page/9/index.html
183 2006/03/16/welcome-to-my-blog.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Welcome to my blog!! &mdash; Luca Guidi</title>
+<link href="http://fonts.googleapis.com/css?family=Lato:400,900" rel="stylesheet" type="text/css">
+<link rel="stylesheet" href="/assets/main.css">
+<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+<link rel="apple-touch-icon" href="/images/logo.png"/>
+<link href="http://feeds.feedburner.com/LucaGuidi" rel="alternate" title="Luca Guidi" type="application/atom+xml" />
+<meta name="title" content="Welcome to my blog!! ">
+<link rel="canonical" href="http://lucaguidi.com/2006/03/16/welcome-to-my-blog.html">
+
+
+<meta property="og:title" content="Welcome to my blog!! "/>
+<meta property="og:url" content="http://lucaguidi.com/2006/03/16/welcome-to-my-blog.html"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/cover.jpg"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/logo.png"/>
+
+
+<meta property="og:description" content=""/>
+<meta name="description" content=""/>
+
+<meta property="og:site_name" content="Luca Guidi">
+<meta name="description" content="Luca Guidi website">
+<meta name="keywords" content="luca,guidi,luca guidi,programmer,developer,rome,italy,ruby,javascript,go,golang,redis,oop,tdd,bdd,unix,open source">
+<meta name="author" content="Luca Guidi">
+</head>
+<body>
+
+<section class="site-nav">
+ <header>
+ <nav id="navigation">
+ <a class="brand" href="/">
+ <img src="/images/logo.png" alt="Inc">
+ </a>
+ <a href="/" class="home">Blog</a>
+
+ <a href="/about.html">About</a>
+ <a href="/archive.html" class="home">Archive</a>
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a>
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ </header>
+</section>
+
+
+<div class="article-cover">
+ <div>
+ <img src="/images/cover.jpg" class="image">
+ </div>
+</div>
+
+<article>
+
+ <div class="container">
+ <header>
+ <div class="meta">
+ By <address><a rel="author" href="" title="Luca Guidi" target="_blank">Luca Guidi</a> &mdash;
+ <time pubdate datetime="2006-16-March" title="March 16, 2006">March 16, 2006</time>
+ </div>
+ <h1 class="title">Welcome to my blog!!</h1>
+
+ </header>
+
+ <section>
+ <p>Welcome to my blog!!</p>
+
+
+<div class="social">
+ <div>
+ <a href="https://twitter.com/share" class="twitter-share-button" data-text="Welcome to my blog!!" data-related="jodosha">Tweet</a>
+ </div>
+
+
+ <div>
+ <div class="fb-like" data-width="150" data-layout="button_count" data-action="like" data-show-faces="true" data-send="false"></div>
+ </div>
+
+
+ <div>
+ <div class="g-plusone" data-size="medium"></div>
+ </div>
+
+
+
+ <div>
+ <a href="http://news.ycombinator.com/submit" class="hn-share-button">Vote on HN</a>
+ </div>
+
+</div>
+
+ </section>
+
+ <footer>
+ <address>
+ <img src="/images/lg.png">
+ <p>Written by <strong><a rel="author" href="https://twitter.com/jodosha" title="" target="_blank">Luca Guidi</a></strong><br>
+ <span class="muted">Developer, music connisseur and avid tea lover.</span>
+ </p>
+ </address>
+
+ </footer>
+
+
+
+
+ </div>
+</article>
+
+
+<footer class="site-footer">
+ <div class="container">
+ &copy; 2014
+
+ <nav>
+ <a href="http://lucaguidi.com/">Luca Guidi</a> &middot;
+ <a href="/">Blog</a> &middot;
+
+ <a href="/about.html">About</a> &middot;
+ <a href="/archive.html" class="home">Archive</a> &middot;
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a> &middot;
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ <nav class="social">
+
+ <a href="https://twitter.com/jodosha" title="Follow on Twitter" target="_blank"><i class="icon icon-twitter black"></i></a>
+
+
+ <a href="http://facebook.com/luca.guidi" title="Follow on Facebook" target="_blank"><i class="icon icon-facebook black"></i></a>
+
+ <a href="http://feeds.feedburner.com/LucaGuidi" title="Atom Feed">
+ <i class="icon icon-rss black"></i>
+ </a>
+ </nav>
+ <p>Powered by <a href="http://jekyllrb.com">Jekyll</a> &middot; Incorporated theme by <a href="https://sendtoinc.com">Inc</a></p>
+ </div>
+</footer>
+
+<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
+<script src="/assets/main.js"></script>
+<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+<div id="fb-root"></div>
+<script>(function(d, s, id) {
+ var js, fjs = d.getElementsByTagName(s)[0];
+ if (d.getElementById(id)) return;
+ js = d.createElement(s); js.id = id;
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=253595308025739";
+ fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+<script type="text/javascript">
+ (function() {
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+ po.src = 'https://apis.google.com/js/plusone.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+ })();
+</script>
+<script>
+ (function(d, t) {
+ var g = d.createElement(t),
+ s = d.getElementsByTagName(t)[0];
+ g.src = '//hnbutton.appspot.com/static/hn.min.js';
+ s.parentNode.insertBefore(g, s);
+ }(document, 'script'));
+</script>
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-235843-4', 'lucaguidi.com');
+ ga('send', 'pageview');
+</script>
+
+
+</body>
+</html>
221 2006/10/30/javascript-hashmap.html
@@ -0,0 +1,221 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Javascript HashMap &mdash; Luca Guidi</title>
+<link href="http://fonts.googleapis.com/css?family=Lato:400,900" rel="stylesheet" type="text/css">
+<link rel="stylesheet" href="/assets/main.css">
+<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+<link rel="apple-touch-icon" href="/images/logo.png"/>
+<link href="http://feeds.feedburner.com/LucaGuidi" rel="alternate" title="Luca Guidi" type="application/atom+xml" />
+<meta name="title" content="Javascript HashMap ">
+<link rel="canonical" href="http://lucaguidi.com/2006/10/30/javascript-hashmap.html">
+
+
+<meta property="og:title" content="Javascript HashMap "/>
+<meta property="og:url" content="http://lucaguidi.com/2006/10/30/javascript-hashmap.html"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/cover.jpg"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/logo.png"/>
+
+
+<meta property="og:description" content=""/>
+<meta name="description" content=""/>
+
+<meta property="og:site_name" content="Luca Guidi">
+<meta name="description" content="Luca Guidi website">
+<meta name="keywords" content="luca,guidi,luca guidi,programmer,developer,rome,italy,ruby,javascript,go,golang,redis,oop,tdd,bdd,unix,open source">
+<meta name="author" content="Luca Guidi">
+</head>
+<body>
+
+<section class="site-nav">
+ <header>
+ <nav id="navigation">
+ <a class="brand" href="/">
+ <img src="/images/logo.png" alt="Inc">
+ </a>
+ <a href="/" class="home">Blog</a>
+
+ <a href="/about.html">About</a>
+ <a href="/archive.html" class="home">Archive</a>
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a>
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ </header>
+</section>
+
+
+<div class="article-cover">
+ <div>
+ <img src="/images/cover.jpg" class="image">
+ </div>
+</div>
+
+<article>
+
+ <div class="container">
+ <header>
+ <div class="meta">
+ By <address><a rel="author" href="" title="Luca Guidi" target="_blank">Luca Guidi</a> &mdash;
+ <time pubdate datetime="2006-30-October" title="October 30, 2006">October 30, 2006</time>
+ </div>
+ <h1 class="title">Javascript HashMap</h1>
+
+ </header>
+
+ <section>
+ <p><p lang="en">Reading around i&#8217;ve discovered that Javascript associative arrays returns unpredictable results, i.e. <strong>length</strong> param is not correctly handled.</p>
+<p lang="en"><strong>Array</strong> object should be used only with a numeric index and best way to avoid this problem is to use <strong>Object</strong>.</p>
+<p lang="en"><strong>But, if I wanna put more objects in my object?</strong></p>
+<p lang="en">Of course i can do this with previous method, but i don&#8217;t like it :-P. So, i&#8217;ve written a 100% <acronym title="Object Oriented Programming">OOP</acronym> class, that use <a class="liexternal" href="http://prototypejs.org">Prototype</a> and it simulate a java <a class="liexternal" href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/HashMap.html">HashMap</a>.</p>
+<p lang="en">I&#8217;ve also implemented an <strong>exception handling</strong>.</p>
+<p lang="en">A little example:</p>
+
+<code class="javascript">
+ var myHM = new HashMap();
+ myHM.put('a', new String('This string contains A'));
+ myHM.put(new String('b'), new String('This string contains B'));
+ myHM.put('0', new String('And this string? Zero'));
+ window.alert(myHM.size()); // returns 3
+
+ // Replace
+ // Notice that you can use both String object or scalar value.
+ myHM.put('b', new Date());
+ if( myHM.get('b') instanceof Date )
+ window.alert('It\'s a Date');
+ // Remove
+ if( myHM.containsKey('a') &amp;&amp; myHM.containsValue('This string contains A') )
+ window.alert('\'A\' object is present');
+ myHM.remove('a');
+ if( myHM.containsKey('a') || myHM.containsValue('This string contains A') )
+ window.alert('Ooops \'A\' is still present'); // Don't display
+
+ window.alert(myHM.size()); // returns 2
+
+ // Clear
+ myHM.clear();
+ window.alert(myHM.size()); // returns 0
+</code>
+
+<p lang="en">I hope this is useful for you, of course I&#8217;ve attached source code.</p>
+
+<div class="biblio">
+<h4>Attachment</h4>
+<ul><li><a href="/wp-content/uploads/2006/10/js_hashmap.tar.gz">Javascript HashMap source code</a></li>
+</ul></div></p>
+
+
+<div class="social">
+ <div>
+ <a href="https://twitter.com/share" class="twitter-share-button" data-text="Javascript HashMap" data-related="jodosha">Tweet</a>
+ </div>
+
+
+ <div>
+ <div class="fb-like" data-width="150" data-layout="button_count" data-action="like" data-show-faces="true" data-send="false"></div>
+ </div>
+
+
+ <div>
+ <div class="g-plusone" data-size="medium"></div>
+ </div>
+
+
+
+ <div>
+ <a href="http://news.ycombinator.com/submit" class="hn-share-button">Vote on HN</a>
+ </div>
+
+</div>
+
+ </section>
+
+ <footer>
+ <address>
+ <img src="/images/lg.png">
+ <p>Written by <strong><a rel="author" href="https://twitter.com/jodosha" title="" target="_blank">Luca Guidi</a></strong><br>
+ <span class="muted">Developer, music connisseur and avid tea lover.</span>
+ </p>
+ </address>
+
+ </footer>
+
+
+
+
+ </div>
+</article>
+
+
+<footer class="site-footer">
+ <div class="container">
+ &copy; 2014
+
+ <nav>
+ <a href="http://lucaguidi.com/">Luca Guidi</a> &middot;
+ <a href="/">Blog</a> &middot;
+
+ <a href="/about.html">About</a> &middot;
+ <a href="/archive.html" class="home">Archive</a> &middot;
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a> &middot;
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ <nav class="social">
+
+ <a href="https://twitter.com/jodosha" title="Follow on Twitter" target="_blank"><i class="icon icon-twitter black"></i></a>
+
+
+ <a href="http://facebook.com/luca.guidi" title="Follow on Facebook" target="_blank"><i class="icon icon-facebook black"></i></a>
+
+ <a href="http://feeds.feedburner.com/LucaGuidi" title="Atom Feed">
+ <i class="icon icon-rss black"></i>
+ </a>
+ </nav>
+ <p>Powered by <a href="http://jekyllrb.com">Jekyll</a> &middot; Incorporated theme by <a href="https://sendtoinc.com">Inc</a></p>
+ </div>
+</footer>
+
+<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
+<script src="/assets/main.js"></script>
+<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+<div id="fb-root"></div>
+<script>(function(d, s, id) {
+ var js, fjs = d.getElementsByTagName(s)[0];
+ if (d.getElementById(id)) return;
+ js = d.createElement(s); js.id = id;
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=253595308025739";
+ fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+<script type="text/javascript">
+ (function() {
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+ po.src = 'https://apis.google.com/js/plusone.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+ })();
+</script>
+<script>
+ (function(d, t) {
+ var g = d.createElement(t),
+ s = d.getElementsByTagName(t)[0];
+ g.src = '//hnbutton.appspot.com/static/hn.min.js';
+ s.parentNode.insertBefore(g, s);
+ }(document, 'script'));
+</script>
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-235843-4', 'lucaguidi.com');
+ ga('send', 'pageview');
+</script>
+
+
+</body>
+</html>
190 2007/01/17/mplayer-console-tip.html
@@ -0,0 +1,190 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>MPlayer console tip &mdash; Luca Guidi</title>
+<link href="http://fonts.googleapis.com/css?family=Lato:400,900" rel="stylesheet" type="text/css">
+<link rel="stylesheet" href="/assets/main.css">
+<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+<link rel="apple-touch-icon" href="/images/logo.png"/>
+<link href="http://feeds.feedburner.com/LucaGuidi" rel="alternate" title="Luca Guidi" type="application/atom+xml" />
+<meta name="title" content="MPlayer console tip ">
+<link rel="canonical" href="http://lucaguidi.com/2007/01/17/mplayer-console-tip.html">
+
+
+<meta property="og:title" content="MPlayer console tip "/>
+<meta property="og:url" content="http://lucaguidi.com/2007/01/17/mplayer-console-tip.html"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/cover.jpg"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/logo.png"/>
+
+
+<meta property="og:description" content=""/>
+<meta name="description" content=""/>
+
+<meta property="og:site_name" content="Luca Guidi">
+<meta name="description" content="Luca Guidi website">
+<meta name="keywords" content="luca,guidi,luca guidi,programmer,developer,rome,italy,ruby,javascript,go,golang,redis,oop,tdd,bdd,unix,open source">
+<meta name="author" content="Luca Guidi">
+</head>
+<body>
+
+<section class="site-nav">
+ <header>
+ <nav id="navigation">
+ <a class="brand" href="/">
+ <img src="/images/logo.png" alt="Inc">
+ </a>
+ <a href="/" class="home">Blog</a>
+
+ <a href="/about.html">About</a>
+ <a href="/archive.html" class="home">Archive</a>
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a>
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ </header>
+</section>
+
+
+<div class="article-cover">
+ <div>
+ <img src="/images/cover.jpg" class="image">
+ </div>
+</div>
+
+<article>
+
+ <div class="container">
+ <header>
+ <div class="meta">
+ By <address><a rel="author" href="" title="Luca Guidi" target="_blank">Luca Guidi</a> &mdash;
+ <time pubdate datetime="2007-17-January" title="January 17, 2007">January 17, 2007</time>
+ </div>
+ <h1 class="title">MPlayer console tip</h1>
+
+ </header>
+
+ <section>
+ <p><img id="image43" src="http://www.thedigitalconspiracy.net/wp-content/uploads/2007/01/mplayer_tip.png" alt="MPlayer tip screenshot" class="profile"/>
+I&#8217;ve discovered an interesting tip for <a href="http://www.mplayerhq.hu/">MPlayer</a> to play all folder&#8217;s media files. enter:<br/><code class="shell">
+ mplayer *
+</code><br/>
+
+It automatically enqueue your files.
+If you use fast forward (<em>up key</em>) mplayer treats your playlist like one file, so you can navigate between your files. Unfortunately it works only with forward seek.
+</p>
+
+
+<div class="social">
+ <div>
+ <a href="https://twitter.com/share" class="twitter-share-button" data-text="MPlayer console tip" data-related="jodosha">Tweet</a>
+ </div>
+
+
+ <div>
+ <div class="fb-like" data-width="150" data-layout="button_count" data-action="like" data-show-faces="true" data-send="false"></div>
+ </div>
+
+
+ <div>
+ <div class="g-plusone" data-size="medium"></div>
+ </div>
+
+
+
+ <div>
+ <a href="http://news.ycombinator.com/submit" class="hn-share-button">Vote on HN</a>
+ </div>
+
+</div>
+
+ </section>
+
+ <footer>
+ <address>
+ <img src="/images/lg.png">
+ <p>Written by <strong><a rel="author" href="https://twitter.com/jodosha" title="" target="_blank">Luca Guidi</a></strong><br>
+ <span class="muted">Developer, music connisseur and avid tea lover.</span>
+ </p>
+ </address>
+
+ </footer>
+
+
+
+
+ </div>
+</article>
+
+
+<footer class="site-footer">
+ <div class="container">
+ &copy; 2014
+
+ <nav>
+ <a href="http://lucaguidi.com/">Luca Guidi</a> &middot;
+ <a href="/">Blog</a> &middot;
+
+ <a href="/about.html">About</a> &middot;
+ <a href="/archive.html" class="home">Archive</a> &middot;
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a> &middot;
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ <nav class="social">
+
+ <a href="https://twitter.com/jodosha" title="Follow on Twitter" target="_blank"><i class="icon icon-twitter black"></i></a>
+
+
+ <a href="http://facebook.com/luca.guidi" title="Follow on Facebook" target="_blank"><i class="icon icon-facebook black"></i></a>
+
+ <a href="http://feeds.feedburner.com/LucaGuidi" title="Atom Feed">
+ <i class="icon icon-rss black"></i>
+ </a>
+ </nav>
+ <p>Powered by <a href="http://jekyllrb.com">Jekyll</a> &middot; Incorporated theme by <a href="https://sendtoinc.com">Inc</a></p>
+ </div>
+</footer>
+
+<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
+<script src="/assets/main.js"></script>
+<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+<div id="fb-root"></div>
+<script>(function(d, s, id) {
+ var js, fjs = d.getElementsByTagName(s)[0];
+ if (d.getElementById(id)) return;
+ js = d.createElement(s); js.id = id;
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=253595308025739";
+ fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+<script type="text/javascript">
+ (function() {
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+ po.src = 'https://apis.google.com/js/plusone.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+ })();
+</script>
+<script>
+ (function(d, t) {
+ var g = d.createElement(t),
+ s = d.getElementsByTagName(t)[0];
+ g.src = '//hnbutton.appspot.com/static/hn.min.js';
+ s.parentNode.insertBefore(g, s);
+ }(document, 'script'));
+</script>
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-235843-4', 'lucaguidi.com');
+ ga('send', 'pageview');
+</script>
+
+
+</body>
+</html>
187 2007/01/31/shot-a-day-2007-january.html
@@ -0,0 +1,187 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Shot A Day: 2007 January &mdash; Luca Guidi</title>
+<link href="http://fonts.googleapis.com/css?family=Lato:400,900" rel="stylesheet" type="text/css">
+<link rel="stylesheet" href="/assets/main.css">
+<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+<link rel="apple-touch-icon" href="/images/logo.png"/>
+<link href="http://feeds.feedburner.com/LucaGuidi" rel="alternate" title="Luca Guidi" type="application/atom+xml" />
+<meta name="title" content="Shot A Day: 2007 January ">
+<link rel="canonical" href="http://lucaguidi.com/2007/01/31/shot-a-day-2007-january.html">
+
+
+<meta property="og:title" content="Shot A Day: 2007 January "/>
+<meta property="og:url" content="http://lucaguidi.com/2007/01/31/shot-a-day-2007-january.html"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/cover.jpg"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/logo.png"/>
+
+
+<meta property="og:description" content=""/>
+<meta name="description" content=""/>
+
+<meta property="og:site_name" content="Luca Guidi">
+<meta name="description" content="Luca Guidi website">
+<meta name="keywords" content="luca,guidi,luca guidi,programmer,developer,rome,italy,ruby,javascript,go,golang,redis,oop,tdd,bdd,unix,open source">
+<meta name="author" content="Luca Guidi">
+</head>
+<body>
+
+<section class="site-nav">
+ <header>
+ <nav id="navigation">
+ <a class="brand" href="/">
+ <img src="/images/logo.png" alt="Inc">
+ </a>
+ <a href="/" class="home">Blog</a>
+
+ <a href="/about.html">About</a>
+ <a href="/archive.html" class="home">Archive</a>
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a>
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ </header>
+</section>
+
+
+<div class="article-cover">
+ <div>
+ <img src="/images/cover.jpg" class="image">
+ </div>
+</div>
+
+<article>
+
+ <div class="container">
+ <header>
+ <div class="meta">
+ By <address><a rel="author" href="" title="Luca Guidi" target="_blank">Luca Guidi</a> &mdash;
+ <time pubdate datetime="2007-31-January" title="January 31, 2007">January 31, 2007</time>
+ </div>
+ <h1 class="title">Shot A Day: 2007 January</h1>
+
+ </header>
+
+ <section>
+ <p>
+My 2007 January roundup on <strong>Shot A Day</strong> project.
+<img id="image70" src="/assets/2007/1/31/shot_a_day_2007_january_mini.png" alt="Shot A Day 2007 January"/>
+Look at whole gallery at <a href="http://www.flickr.com/photos/jodosha/">my page</a> on flickr.
+</p>
+
+
+<div class="social">
+ <div>
+ <a href="https://twitter.com/share" class="twitter-share-button" data-text="Shot A Day: 2007 January" data-related="jodosha">Tweet</a>
+ </div>
+
+
+ <div>
+ <div class="fb-like" data-width="150" data-layout="button_count" data-action="like" data-show-faces="true" data-send="false"></div>
+ </div>
+
+
+ <div>
+ <div class="g-plusone" data-size="medium"></div>
+ </div>
+
+
+
+ <div>
+ <a href="http://news.ycombinator.com/submit" class="hn-share-button">Vote on HN</a>
+ </div>
+
+</div>
+
+ </section>
+
+ <footer>
+ <address>
+ <img src="/images/lg.png">
+ <p>Written by <strong><a rel="author" href="https://twitter.com/jodosha" title="" target="_blank">Luca Guidi</a></strong><br>
+ <span class="muted">Developer, music connisseur and avid tea lover.</span>
+ </p>
+ </address>
+
+ </footer>
+
+
+
+
+ </div>
+</article>
+
+
+<footer class="site-footer">
+ <div class="container">
+ &copy; 2014
+
+ <nav>
+ <a href="http://lucaguidi.com/">Luca Guidi</a> &middot;
+ <a href="/">Blog</a> &middot;
+
+ <a href="/about.html">About</a> &middot;
+ <a href="/archive.html" class="home">Archive</a> &middot;
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a> &middot;
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ <nav class="social">
+
+ <a href="https://twitter.com/jodosha" title="Follow on Twitter" target="_blank"><i class="icon icon-twitter black"></i></a>
+
+
+ <a href="http://facebook.com/luca.guidi" title="Follow on Facebook" target="_blank"><i class="icon icon-facebook black"></i></a>
+
+ <a href="http://feeds.feedburner.com/LucaGuidi" title="Atom Feed">
+ <i class="icon icon-rss black"></i>
+ </a>
+ </nav>
+ <p>Powered by <a href="http://jekyllrb.com">Jekyll</a> &middot; Incorporated theme by <a href="https://sendtoinc.com">Inc</a></p>
+ </div>
+</footer>
+
+<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
+<script src="/assets/main.js"></script>
+<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+<div id="fb-root"></div>
+<script>(function(d, s, id) {
+ var js, fjs = d.getElementsByTagName(s)[0];
+ if (d.getElementById(id)) return;
+ js = d.createElement(s); js.id = id;
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=253595308025739";
+ fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+<script type="text/javascript">
+ (function() {
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+ po.src = 'https://apis.google.com/js/plusone.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+ })();
+</script>
+<script>
+ (function(d, t) {
+ var g = d.createElement(t),
+ s = d.getElementsByTagName(t)[0];
+ g.src = '//hnbutton.appspot.com/static/hn.min.js';
+ s.parentNode.insertBefore(g, s);
+ }(document, 'script'));
+</script>
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-235843-4', 'lucaguidi.com');
+ ga('send', 'pageview');
+</script>
+
+
+</body>
+</html>
199 2007/02/21/ruby-on-rails-validate-url.html
@@ -0,0 +1,199 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Ruby on Rails: Validate URL &mdash; Luca Guidi</title>
+<link href="http://fonts.googleapis.com/css?family=Lato:400,900" rel="stylesheet" type="text/css">
+<link rel="stylesheet" href="/assets/main.css">
+<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+<link rel="apple-touch-icon" href="/images/logo.png"/>
+<link href="http://feeds.feedburner.com/LucaGuidi" rel="alternate" title="Luca Guidi" type="application/atom+xml" />
+<meta name="title" content="Ruby on Rails: Validate URL ">
+<link rel="canonical" href="http://lucaguidi.com/2007/02/21/ruby-on-rails-validate-url.html">
+
+
+<meta property="og:title" content="Ruby on Rails: Validate URL "/>
+<meta property="og:url" content="http://lucaguidi.com/2007/02/21/ruby-on-rails-validate-url.html"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/cover.jpg"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/logo.png"/>
+
+
+<meta property="og:description" content=""/>
+<meta name="description" content=""/>
+
+<meta property="og:site_name" content="Luca Guidi">
+<meta name="description" content="Luca Guidi website">
+<meta name="keywords" content="luca,guidi,luca guidi,programmer,developer,rome,italy,ruby,javascript,go,golang,redis,oop,tdd,bdd,unix,open source">
+<meta name="author" content="Luca Guidi">
+</head>
+<body>
+
+<section class="site-nav">
+ <header>
+ <nav id="navigation">
+ <a class="brand" href="/">
+ <img src="/images/logo.png" alt="Inc">
+ </a>
+ <a href="/" class="home">Blog</a>
+
+ <a href="/about.html">About</a>
+ <a href="/archive.html" class="home">Archive</a>
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a>
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ </header>
+</section>
+
+
+<div class="article-cover">
+ <div>
+ <img src="/images/cover.jpg" class="image">
+ </div>
+</div>
+
+<article>
+
+ <div class="container">
+ <header>
+ <div class="meta">
+ By <address><a rel="author" href="" title="Luca Guidi" target="_blank">Luca Guidi</a> &mdash;
+ <time pubdate datetime="2007-21-February" title="February 21, 2007">February 21, 2007</time>
+ </div>
+ <h1 class="title">Ruby on Rails: Validate URL</h1>
+
+ </header>
+
+ <section>
+ <p>Hi, just a snippet to validate an url with <strong>Ruby on Rails</strong>.</p>
+
+<code class="ruby">
+ class WebSite /^((http|https):\/\/)*[a-z0-9_-]{1,}\.*[a-z0-9_-]{1,}\.[a-z]{2,4}\/*$/i
+
+ def validate
+ errors.add(:url, "unexistent") unless WebSite.existent_url?(:url)
+ end
+
+ def self.existent_url?(url)
+ uri = URI.parse(url)
+ http_conn = Net::HTTP.new(uri.host, uri.port)
+ resp, data = http_conn.head("/" , nil)
+ resp.code == "200"
+ end
+ end
+</code>
+
+
+<div class="social">
+ <div>
+ <a href="https://twitter.com/share" class="twitter-share-button" data-text="Ruby on Rails: Validate URL" data-related="jodosha">Tweet</a>
+ </div>
+
+
+ <div>
+ <div class="fb-like" data-width="150" data-layout="button_count" data-action="like" data-show-faces="true" data-send="false"></div>
+ </div>
+
+
+ <div>
+ <div class="g-plusone" data-size="medium"></div>
+ </div>
+
+
+
+ <div>
+ <a href="http://news.ycombinator.com/submit" class="hn-share-button">Vote on HN</a>
+ </div>
+
+</div>
+
+ </section>
+
+ <footer>
+ <address>
+ <img src="/images/lg.png">
+ <p>Written by <strong><a rel="author" href="https://twitter.com/jodosha" title="" target="_blank">Luca Guidi</a></strong><br>
+ <span class="muted">Developer, music connisseur and avid tea lover.</span>
+ </p>
+ </address>
+
+ </footer>
+
+
+
+
+ </div>
+</article>
+
+
+<footer class="site-footer">
+ <div class="container">
+ &copy; 2014
+
+ <nav>
+ <a href="http://lucaguidi.com/">Luca Guidi</a> &middot;
+ <a href="/">Blog</a> &middot;
+
+ <a href="/about.html">About</a> &middot;
+ <a href="/archive.html" class="home">Archive</a> &middot;
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a> &middot;
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ <nav class="social">
+
+ <a href="https://twitter.com/jodosha" title="Follow on Twitter" target="_blank"><i class="icon icon-twitter black"></i></a>
+
+
+ <a href="http://facebook.com/luca.guidi" title="Follow on Facebook" target="_blank"><i class="icon icon-facebook black"></i></a>
+
+ <a href="http://feeds.feedburner.com/LucaGuidi" title="Atom Feed">
+ <i class="icon icon-rss black"></i>
+ </a>
+ </nav>
+ <p>Powered by <a href="http://jekyllrb.com">Jekyll</a> &middot; Incorporated theme by <a href="https://sendtoinc.com">Inc</a></p>
+ </div>
+</footer>
+
+<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
+<script src="/assets/main.js"></script>
+<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+<div id="fb-root"></div>
+<script>(function(d, s, id) {
+ var js, fjs = d.getElementsByTagName(s)[0];
+ if (d.getElementById(id)) return;
+ js = d.createElement(s); js.id = id;
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=253595308025739";
+ fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+<script type="text/javascript">
+ (function() {
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+ po.src = 'https://apis.google.com/js/plusone.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+ })();
+</script>
+<script>
+ (function(d, t) {
+ var g = d.createElement(t),
+ s = d.getElementsByTagName(t)[0];
+ g.src = '//hnbutton.appspot.com/static/hn.min.js';
+ s.parentNode.insertBefore(g, s);
+ }(document, 'script'));
+</script>
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-235843-4', 'lucaguidi.com');
+ ga('send', 'pageview');
+</script>
+
+
+</body>
+</html>
185 2007/02/26/little-miss-sunshine.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Little Miss Sunshine &mdash; Luca Guidi</title>
+<link href="http://fonts.googleapis.com/css?family=Lato:400,900" rel="stylesheet" type="text/css">
+<link rel="stylesheet" href="/assets/main.css">
+<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+<link rel="apple-touch-icon" href="/images/logo.png"/>
+<link href="http://feeds.feedburner.com/LucaGuidi" rel="alternate" title="Luca Guidi" type="application/atom+xml" />
+<meta name="title" content="Little Miss Sunshine ">
+<link rel="canonical" href="http://lucaguidi.com/2007/02/26/little-miss-sunshine.html">
+
+
+<meta property="og:title" content="Little Miss Sunshine "/>
+<meta property="og:url" content="http://lucaguidi.com/2007/02/26/little-miss-sunshine.html"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/cover.jpg"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/logo.png"/>
+
+
+<meta property="og:description" content=""/>
+<meta name="description" content=""/>
+
+<meta property="og:site_name" content="Luca Guidi">
+<meta name="description" content="Luca Guidi website">
+<meta name="keywords" content="luca,guidi,luca guidi,programmer,developer,rome,italy,ruby,javascript,go,golang,redis,oop,tdd,bdd,unix,open source">
+<meta name="author" content="Luca Guidi">
+</head>
+<body>
+
+<section class="site-nav">
+ <header>
+ <nav id="navigation">
+ <a class="brand" href="/">
+ <img src="/images/logo.png" alt="Inc">
+ </a>
+ <a href="/" class="home">Blog</a>
+
+ <a href="/about.html">About</a>
+ <a href="/archive.html" class="home">Archive</a>
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a>
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ </header>
+</section>
+
+
+<div class="article-cover">
+ <div>
+ <img src="/images/cover.jpg" class="image">
+ </div>
+</div>
+
+<article>
+
+ <div class="container">
+ <header>
+ <div class="meta">
+ By <address><a rel="author" href="" title="Luca Guidi" target="_blank">Luca Guidi</a> &mdash;
+ <time pubdate datetime="2007-26-February" title="February 26, 2007">February 26, 2007</time>
+ </div>
+ <h1 class="title">Little Miss Sunshine</h1>
+
+ </header>
+
+ <section>
+ <p><strong>Little Miss Sunshine</strong> has won <strong>two</strong> oscars!!</p>
+<p>I&#8217;m very happy, I have watched this movie just a week ago, and I like it.
+It&#8217;s a nice story about an odd american family that cross the US aboard an old volksvagen van. It&#8217;s funny, it&#8217;s sad, it&#8217;s sweet. You have to see it.</p>
+
+
+<div class="social">
+ <div>
+ <a href="https://twitter.com/share" class="twitter-share-button" data-text="Little Miss Sunshine" data-related="jodosha">Tweet</a>
+ </div>
+
+
+ <div>
+ <div class="fb-like" data-width="150" data-layout="button_count" data-action="like" data-show-faces="true" data-send="false"></div>
+ </div>
+
+
+ <div>
+ <div class="g-plusone" data-size="medium"></div>
+ </div>
+
+
+
+ <div>
+ <a href="http://news.ycombinator.com/submit" class="hn-share-button">Vote on HN</a>
+ </div>
+
+</div>
+
+ </section>
+
+ <footer>
+ <address>
+ <img src="/images/lg.png">
+ <p>Written by <strong><a rel="author" href="https://twitter.com/jodosha" title="" target="_blank">Luca Guidi</a></strong><br>
+ <span class="muted">Developer, music connisseur and avid tea lover.</span>
+ </p>
+ </address>
+
+ </footer>
+
+
+
+
+ </div>
+</article>
+
+
+<footer class="site-footer">
+ <div class="container">
+ &copy; 2014
+
+ <nav>
+ <a href="http://lucaguidi.com/">Luca Guidi</a> &middot;
+ <a href="/">Blog</a> &middot;
+
+ <a href="/about.html">About</a> &middot;
+ <a href="/archive.html" class="home">Archive</a> &middot;
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a> &middot;
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ <nav class="social">
+
+ <a href="https://twitter.com/jodosha" title="Follow on Twitter" target="_blank"><i class="icon icon-twitter black"></i></a>
+
+
+ <a href="http://facebook.com/luca.guidi" title="Follow on Facebook" target="_blank"><i class="icon icon-facebook black"></i></a>
+
+ <a href="http://feeds.feedburner.com/LucaGuidi" title="Atom Feed">
+ <i class="icon icon-rss black"></i>
+ </a>
+ </nav>
+ <p>Powered by <a href="http://jekyllrb.com">Jekyll</a> &middot; Incorporated theme by <a href="https://sendtoinc.com">Inc</a></p>
+ </div>
+</footer>
+
+<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
+<script src="/assets/main.js"></script>
+<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+<div id="fb-root"></div>
+<script>(function(d, s, id) {
+ var js, fjs = d.getElementsByTagName(s)[0];
+ if (d.getElementById(id)) return;
+ js = d.createElement(s); js.id = id;
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=253595308025739";
+ fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+<script type="text/javascript">
+ (function() {
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+ po.src = 'https://apis.google.com/js/plusone.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+ })();
+</script>
+<script>
+ (function(d, t) {
+ var g = d.createElement(t),
+ s = d.getElementsByTagName(t)[0];
+ g.src = '//hnbutton.appspot.com/static/hn.min.js';
+ s.parentNode.insertBefore(g, s);
+ }(document, 'script'));
+</script>
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-235843-4', 'lucaguidi.com');
+ ga('send', 'pageview');
+</script>
+
+
+</body>
+</html>
232 2007/03/02/play-random-files-with-ruby.html
@@ -0,0 +1,232 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Play random files with Ruby &mdash; Luca Guidi</title>
+<link href="http://fonts.googleapis.com/css?family=Lato:400,900" rel="stylesheet" type="text/css">
+<link rel="stylesheet" href="/assets/main.css">
+<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+<link rel="apple-touch-icon" href="/images/logo.png"/>
+<link href="http://feeds.feedburner.com/LucaGuidi" rel="alternate" title="Luca Guidi" type="application/atom+xml" />
+<meta name="title" content="Play random files with Ruby ">
+<link rel="canonical" href="http://lucaguidi.com/2007/03/02/play-random-files-with-ruby.html">
+
+
+<meta property="og:title" content="Play random files with Ruby "/>
+<meta property="og:url" content="http://lucaguidi.com/2007/03/02/play-random-files-with-ruby.html"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/cover.jpg"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/logo.png"/>
+
+
+<meta property="og:description" content=""/>
+<meta name="description" content=""/>
+
+<meta property="og:site_name" content="Luca Guidi">
+<meta name="description" content="Luca Guidi website">
+<meta name="keywords" content="luca,guidi,luca guidi,programmer,developer,rome,italy,ruby,javascript,go,golang,redis,oop,tdd,bdd,unix,open source">
+<meta name="author" content="Luca Guidi">
+</head>
+<body>
+
+<section class="site-nav">
+ <header>
+ <nav id="navigation">
+ <a class="brand" href="/">
+ <img src="/images/logo.png" alt="Inc">
+ </a>
+ <a href="/" class="home">Blog</a>
+
+ <a href="/about.html">About</a>
+ <a href="/archive.html" class="home">Archive</a>
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a>
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ </header>
+</section>
+
+
+<div class="article-cover">
+ <div>
+ <img src="/images/cover.jpg" class="image">
+ </div>
+</div>
+
+<article>
+
+ <div class="container">
+ <header>
+ <div class="meta">
+ By <address><a rel="author" href="" title="Luca Guidi" target="_blank">Luca Guidi</a> &mdash;
+ <time pubdate datetime="2007-02-March" title="March 02, 2007">March 02, 2007</time>
+ </div>
+ <h1 class="title">Play random files with Ruby</h1>
+
+ </header>
+
+ <section>
+ <p>I&#8217;ve written a class to play random files, you can define the player path and allowed file extentions.
+It will search recursively for all readable files, starting from execution from the folder passed as argument or, if miss, from current folder. Tested on a <strong>linux box</strong> with <strong>mplayer</strong>.</p>
+<p>
+<strong>Usage:</strong><br/><code class="bash">
+ $ ./shuffle
+ # play recursively all files from current folder
+ $ ./shuffle /path/to/files
+ # play recursively all files from specified folder
+</code><br/>
+
+That&#8217;s the source code.<br/><code class="ruby">
+ #!/usr/bin/ruby
+
+ player = "/usr/local/bin/mplayer"
+ formats = ["mp3", "ogg", "flv"]
+ folder = ARGV[0] || ""
+
+ class ShufflePlayer
+ @files
+ @frx
+ @player
+ def initialize(player, formats, folder)
+ @player = player
+ gen_regex(formats)
+ load_files(folder)
+ end
+
+ def play
+ flag = 1
+ while flag &amp;&amp; @files.length &gt; 0
+ flag = system("#{@player} -quiet #{@files.delete(@files[rand(Time.now) % @files.length])}")
+ end
+ end
+
+ private
+ def load_files(folder)
+ @files = Dir[folder+'**/*.*'].reject!{|f| f if @frx.match(f).nil? || !File.readable?(f) }
+ @files.collect!{|f| f.gsub(/['"\-\s\[\]\(\)]/){ |m| "\\"+m }} unless @files.nil?
+ end
+
+ def gen_regex(formats)
+ @frx = /(#{formats.join('|')})$/
+ end
+ end
+
+ ShufflePlayer.new(player,formats,folder).play
+</code>
+</p>
+
+<p><strong>Security disclaimer:</strong> this code is strong insecure, i&#8217;ve posted for study purpouses, <strong>I&#8217;m not responsable if someone use it to attack your system</strong>.</p>
+
+
+<div class="social">
+ <div>
+ <a href="https://twitter.com/share" class="twitter-share-button" data-text="Play random files with Ruby" data-related="jodosha">Tweet</a>
+ </div>
+
+
+ <div>
+ <div class="fb-like" data-width="150" data-layout="button_count" data-action="like" data-show-faces="true" data-send="false"></div>
+ </div>
+
+
+ <div>
+ <div class="g-plusone" data-size="medium"></div>
+ </div>
+
+
+
+ <div>
+ <a href="http://news.ycombinator.com/submit" class="hn-share-button">Vote on HN</a>
+ </div>
+
+</div>
+
+ </section>
+
+ <footer>
+ <address>
+ <img src="/images/lg.png">
+ <p>Written by <strong><a rel="author" href="https://twitter.com/jodosha" title="" target="_blank">Luca Guidi</a></strong><br>
+ <span class="muted">Developer, music connisseur and avid tea lover.</span>
+ </p>
+ </address>
+
+ </footer>
+
+
+
+
+ </div>
+</article>
+
+
+<footer class="site-footer">
+ <div class="container">
+ &copy; 2014
+
+ <nav>
+ <a href="http://lucaguidi.com/">Luca Guidi</a> &middot;
+ <a href="/">Blog</a> &middot;
+
+ <a href="/about.html">About</a> &middot;
+ <a href="/archive.html" class="home">Archive</a> &middot;
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a> &middot;
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ <nav class="social">
+
+ <a href="https://twitter.com/jodosha" title="Follow on Twitter" target="_blank"><i class="icon icon-twitter black"></i></a>
+
+
+ <a href="http://facebook.com/luca.guidi" title="Follow on Facebook" target="_blank"><i class="icon icon-facebook black"></i></a>
+
+ <a href="http://feeds.feedburner.com/LucaGuidi" title="Atom Feed">
+ <i class="icon icon-rss black"></i>
+ </a>
+ </nav>
+ <p>Powered by <a href="http://jekyllrb.com">Jekyll</a> &middot; Incorporated theme by <a href="https://sendtoinc.com">Inc</a></p>
+ </div>
+</footer>
+
+<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
+<script src="/assets/main.js"></script>
+<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+<div id="fb-root"></div>
+<script>(function(d, s, id) {
+ var js, fjs = d.getElementsByTagName(s)[0];
+ if (d.getElementById(id)) return;
+ js = d.createElement(s); js.id = id;
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=253595308025739";
+ fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+<script type="text/javascript">
+ (function() {
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+ po.src = 'https://apis.google.com/js/plusone.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+ })();
+</script>
+<script>
+ (function(d, t) {
+ var g = d.createElement(t),
+ s = d.getElementsByTagName(t)[0];
+ g.src = '//hnbutton.appspot.com/static/hn.min.js';
+ s.parentNode.insertBefore(g, s);
+ }(document, 'script'));
+</script>
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-235843-4', 'lucaguidi.com');
+ ga('send', 'pageview');
+</script>
+
+
+</body>
+</html>
187 2007/03/18/twittervision.html
@@ -0,0 +1,187 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Twittervision &mdash; Luca Guidi</title>
+<link href="http://fonts.googleapis.com/css?family=Lato:400,900" rel="stylesheet" type="text/css">
+<link rel="stylesheet" href="/assets/main.css">
+<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+<link rel="apple-touch-icon" href="/images/logo.png"/>
+<link href="http://feeds.feedburner.com/LucaGuidi" rel="alternate" title="Luca Guidi" type="application/atom+xml" />
+<meta name="title" content="Twittervision ">
+<link rel="canonical" href="http://lucaguidi.com/2007/03/18/twittervision.html">
+
+
+<meta property="og:title" content="Twittervision "/>
+<meta property="og:url" content="http://lucaguidi.com/2007/03/18/twittervision.html"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/cover.jpg"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/logo.png"/>
+
+
+<meta property="og:description" content=""/>
+<meta name="description" content=""/>
+
+<meta property="og:site_name" content="Luca Guidi">
+<meta name="description" content="Luca Guidi website">
+<meta name="keywords" content="luca,guidi,luca guidi,programmer,developer,rome,italy,ruby,javascript,go,golang,redis,oop,tdd,bdd,unix,open source">
+<meta name="author" content="Luca Guidi">
+</head>
+<body>
+
+<section class="site-nav">
+ <header>
+ <nav id="navigation">
+ <a class="brand" href="/">
+ <img src="/images/logo.png" alt="Inc">
+ </a>
+ <a href="/" class="home">Blog</a>
+
+ <a href="/about.html">About</a>
+ <a href="/archive.html" class="home">Archive</a>
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a>
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ </header>
+</section>
+
+
+<div class="article-cover">
+ <div>
+ <img src="/images/cover.jpg" class="image">
+ </div>
+</div>
+
+<article>
+
+ <div class="container">
+ <header>
+ <div class="meta">
+ By <address><a rel="author" href="" title="Luca Guidi" target="_blank">Luca Guidi</a> &mdash;
+ <time pubdate datetime="2007-18-March" title="March 18, 2007">March 18, 2007</time>
+ </div>
+ <h1 class="title">Twittervision</h1>
+
+ </header>
+
+ <section>
+ <p><a href="http://twittermap.com/twittervision">Twittervision</a> is a simple mashup of <strong>Twitter</strong> and <strong>Google Maps</strong>. It allows to geolocate twitters entries.</p>
+<p>To change your location you must send an update, using <strong>L:</strong> operator, followed your location. I.e.: L:Florence, Italy.
+You can also &#8220;tag&#8221; your location: home, work, school, club..</p>
+<p>It&#8217;s very cool, and causes an <strong>high addiction</strong>.
+<img src="/assets/2007/3/18/twittervision2.png" alt="Twittervision screenshot"/></p>
+
+
+<div class="social">
+ <div>
+ <a href="https://twitter.com/share" class="twitter-share-button" data-text="Twittervision" data-related="jodosha">Tweet</a>
+ </div>
+
+
+ <div>
+ <div class="fb-like" data-width="150" data-layout="button_count" data-action="like" data-show-faces="true" data-send="false"></div>
+ </div>
+
+
+ <div>
+ <div class="g-plusone" data-size="medium"></div>
+ </div>
+
+
+
+ <div>
+ <a href="http://news.ycombinator.com/submit" class="hn-share-button">Vote on HN</a>
+ </div>
+
+</div>
+
+ </section>
+
+ <footer>
+ <address>
+ <img src="/images/lg.png">
+ <p>Written by <strong><a rel="author" href="https://twitter.com/jodosha" title="" target="_blank">Luca Guidi</a></strong><br>
+ <span class="muted">Developer, music connisseur and avid tea lover.</span>
+ </p>
+ </address>
+
+ </footer>
+
+
+
+
+ </div>
+</article>
+
+
+<footer class="site-footer">
+ <div class="container">
+ &copy; 2014
+
+ <nav>
+ <a href="http://lucaguidi.com/">Luca Guidi</a> &middot;
+ <a href="/">Blog</a> &middot;
+
+ <a href="/about.html">About</a> &middot;
+ <a href="/archive.html" class="home">Archive</a> &middot;
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a> &middot;
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ <nav class="social">
+
+ <a href="https://twitter.com/jodosha" title="Follow on Twitter" target="_blank"><i class="icon icon-twitter black"></i></a>
+
+
+ <a href="http://facebook.com/luca.guidi" title="Follow on Facebook" target="_blank"><i class="icon icon-facebook black"></i></a>
+
+ <a href="http://feeds.feedburner.com/LucaGuidi" title="Atom Feed">
+ <i class="icon icon-rss black"></i>
+ </a>
+ </nav>
+ <p>Powered by <a href="http://jekyllrb.com">Jekyll</a> &middot; Incorporated theme by <a href="https://sendtoinc.com">Inc</a></p>
+ </div>
+</footer>
+
+<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
+<script src="/assets/main.js"></script>
+<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+<div id="fb-root"></div>
+<script>(function(d, s, id) {
+ var js, fjs = d.getElementsByTagName(s)[0];
+ if (d.getElementById(id)) return;
+ js = d.createElement(s); js.id = id;
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=253595308025739";
+ fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+<script type="text/javascript">
+ (function() {
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+ po.src = 'https://apis.google.com/js/plusone.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+ })();
+</script>
+<script>
+ (function(d, t) {
+ var g = d.createElement(t),
+ s = d.getElementsByTagName(t)[0];
+ g.src = '//hnbutton.appspot.com/static/hn.min.js';
+ s.parentNode.insertBefore(g, s);
+ }(document, 'script'));
+</script>
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-235843-4', 'lucaguidi.com');
+ ga('send', 'pageview');
+</script>
+
+
+</body>
+</html>
185 2007/03/20/highrise.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Highrise &mdash; Luca Guidi</title>
+<link href="http://fonts.googleapis.com/css?family=Lato:400,900" rel="stylesheet" type="text/css">
+<link rel="stylesheet" href="/assets/main.css">
+<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+<link rel="apple-touch-icon" href="/images/logo.png"/>
+<link href="http://feeds.feedburner.com/LucaGuidi" rel="alternate" title="Luca Guidi" type="application/atom+xml" />
+<meta name="title" content="Highrise ">
+<link rel="canonical" href="http://lucaguidi.com/2007/03/20/highrise.html">
+
+
+<meta property="og:title" content="Highrise "/>
+<meta property="og:url" content="http://lucaguidi.com/2007/03/20/highrise.html"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/cover.jpg"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/logo.png"/>
+
+
+<meta property="og:description" content=""/>
+<meta name="description" content=""/>
+
+<meta property="og:site_name" content="Luca Guidi">
+<meta name="description" content="Luca Guidi website">
+<meta name="keywords" content="luca,guidi,luca guidi,programmer,developer,rome,italy,ruby,javascript,go,golang,redis,oop,tdd,bdd,unix,open source">
+<meta name="author" content="Luca Guidi">
+</head>
+<body>
+
+<section class="site-nav">
+ <header>
+ <nav id="navigation">
+ <a class="brand" href="/">
+ <img src="/images/logo.png" alt="Inc">
+ </a>
+ <a href="/" class="home">Blog</a>
+
+ <a href="/about.html">About</a>
+ <a href="/archive.html" class="home">Archive</a>
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a>
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ </header>
+</section>
+
+
+<div class="article-cover">
+ <div>
+ <img src="/images/cover.jpg" class="image">
+ </div>
+</div>
+
+<article>
+
+ <div class="container">
+ <header>
+ <div class="meta">
+ By <address><a rel="author" href="" title="Luca Guidi" target="_blank">Luca Guidi</a> &mdash;
+ <time pubdate datetime="2007-20-March" title="March 20, 2007">March 20, 2007</time>
+ </div>
+ <h1 class="title">Highrise</h1>
+
+ </header>
+
+ <section>
+ <p><a href="http://37signals.com">37signals</a> officially launced <a href="http://www.highrisehq.com">Highrise</a>.
+It&#8217;s a new <strong>organization service</strong>, to share contacts and tasks with your team or your friends. It allows to to track people, phone calls, events, and also supports <strong>mail tasks</strong>.</p>
+<p>I&#8217;ve just signed up.</p>
+
+
+<div class="social">
+ <div>
+ <a href="https://twitter.com/share" class="twitter-share-button" data-text="Highrise" data-related="jodosha">Tweet</a>
+ </div>
+
+
+ <div>
+ <div class="fb-like" data-width="150" data-layout="button_count" data-action="like" data-show-faces="true" data-send="false"></div>
+ </div>
+
+
+ <div>
+ <div class="g-plusone" data-size="medium"></div>
+ </div>
+
+
+
+ <div>
+ <a href="http://news.ycombinator.com/submit" class="hn-share-button">Vote on HN</a>
+ </div>
+
+</div>
+
+ </section>
+
+ <footer>
+ <address>
+ <img src="/images/lg.png">
+ <p>Written by <strong><a rel="author" href="https://twitter.com/jodosha" title="" target="_blank">Luca Guidi</a></strong><br>
+ <span class="muted">Developer, music connisseur and avid tea lover.</span>
+ </p>
+ </address>
+
+ </footer>
+
+
+
+
+ </div>
+</article>
+
+
+<footer class="site-footer">
+ <div class="container">
+ &copy; 2014
+
+ <nav>
+ <a href="http://lucaguidi.com/">Luca Guidi</a> &middot;
+ <a href="/">Blog</a> &middot;
+
+ <a href="/about.html">About</a> &middot;
+ <a href="/archive.html" class="home">Archive</a> &middot;
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a> &middot;
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ <nav class="social">
+
+ <a href="https://twitter.com/jodosha" title="Follow on Twitter" target="_blank"><i class="icon icon-twitter black"></i></a>
+
+
+ <a href="http://facebook.com/luca.guidi" title="Follow on Facebook" target="_blank"><i class="icon icon-facebook black"></i></a>
+
+ <a href="http://feeds.feedburner.com/LucaGuidi" title="Atom Feed">
+ <i class="icon icon-rss black"></i>
+ </a>
+ </nav>
+ <p>Powered by <a href="http://jekyllrb.com">Jekyll</a> &middot; Incorporated theme by <a href="https://sendtoinc.com">Inc</a></p>
+ </div>
+</footer>
+
+<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
+<script src="/assets/main.js"></script>
+<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
+<div id="fb-root"></div>
+<script>(function(d, s, id) {
+ var js, fjs = d.getElementsByTagName(s)[0];
+ if (d.getElementById(id)) return;
+ js = d.createElement(s); js.id = id;
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=253595308025739";
+ fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+<script type="text/javascript">
+ (function() {
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+ po.src = 'https://apis.google.com/js/plusone.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+ })();
+</script>
+<script>
+ (function(d, t) {
+ var g = d.createElement(t),
+ s = d.getElementsByTagName(t)[0];
+ g.src = '//hnbutton.appspot.com/static/hn.min.js';
+ s.parentNode.insertBefore(g, s);
+ }(document, 'script'));
+</script>
+<script>
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ ga('create', 'UA-235843-4', 'lucaguidi.com');
+ ga('send', 'pageview');
+</script>
+
+
+</body>
+</html>
205 2007/03/28/activeform-020-released.html
@@ -0,0 +1,205 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>ActiveForm 0.2.0 released &mdash; Luca Guidi</title>
+<link href="http://fonts.googleapis.com/css?family=Lato:400,900" rel="stylesheet" type="text/css">
+<link rel="stylesheet" href="/assets/main.css">
+<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
+<link rel="apple-touch-icon" href="/images/logo.png"/>
+<link href="http://feeds.feedburner.com/LucaGuidi" rel="alternate" title="Luca Guidi" type="application/atom+xml" />
+<meta name="title" content="ActiveForm 0.2.0 released ">
+<link rel="canonical" href="http://lucaguidi.com/2007/03/28/activeform-020-released.html">
+
+
+<meta property="og:title" content="ActiveForm 0.2.0 released "/>
+<meta property="og:url" content="http://lucaguidi.com/2007/03/28/activeform-020-released.html"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/cover.jpg"/>
+
+<meta property="og:image" content="http://lucaguidi.com/images/logo.png"/>
+
+
+<meta property="og:description" content=""/>
+<meta name="description" content=""/>
+
+<meta property="og:site_name" content="Luca Guidi">
+<meta name="description" content="Luca Guidi website">
+<meta name="keywords" content="luca,guidi,luca guidi,programmer,developer,rome,italy,ruby,javascript,go,golang,redis,oop,tdd,bdd,unix,open source">
+<meta name="author" content="Luca Guidi">
+</head>
+<body>
+
+<section class="site-nav">
+ <header>
+ <nav id="navigation">
+ <a class="brand" href="/">
+ <img src="/images/logo.png" alt="Inc">
+ </a>
+ <a href="/" class="home">Blog</a>
+
+ <a href="/about.html">About</a>
+ <a href="/archive.html" class="home">Archive</a>
+ <a href="https://github.com/jodosha" class="code" target="_blank">Code</a>
+ <a href="http://theplayli.st" class="code" target="_blank">Music</a>
+ </nav>
+
+ </header>
+</section>
+
+
+<div class="article-cover">
+ <div>
+ <img src="/images/cover.jpg" class="image">
+ </div>