docparser 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +5 -0
  4. data/.travis.yml +3 -0
  5. data/Gemfile +9 -1
  6. data/README.md +11 -4
  7. data/Rakefile +15 -0
  8. data/example.rb +9 -7
  9. data/lib/docparser.rb +1 -0
  10. data/lib/docparser/document.rb +18 -11
  11. data/lib/docparser/output.rb +8 -8
  12. data/lib/docparser/output/html_output.rb +53 -47
  13. data/lib/docparser/output/json_output.rb +8 -3
  14. data/lib/docparser/output/multi_output.rb +4 -8
  15. data/lib/docparser/output/nil_output.rb +21 -0
  16. data/lib/docparser/output/screen_output.rb +2 -1
  17. data/lib/docparser/output/xlsx_output.rb +12 -2
  18. data/lib/docparser/output/yaml_output.rb +6 -1
  19. data/lib/docparser/parser.rb +80 -49
  20. data/lib/docparser/version.rb +1 -1
  21. data/test/lib/docparser/blackbox_test.rb +29 -0
  22. data/test/lib/docparser/document_test.rb +134 -0
  23. data/test/lib/docparser/logging_test.rb +19 -0
  24. data/test/lib/docparser/output/csv_output_test.rb +51 -0
  25. data/test/lib/docparser/output/html_output_test.rb +57 -0
  26. data/test/lib/docparser/output/json_output_test.rb +65 -0
  27. data/test/lib/docparser/output/multi_output_test.rb +80 -0
  28. data/test/lib/docparser/output/nil_output_test.rb +27 -0
  29. data/test/lib/docparser/output/screen_output_test.rb +55 -0
  30. data/test/lib/docparser/output/xlsx_output_test.rb +53 -0
  31. data/test/lib/docparser/output/yaml_output_test.rb +76 -0
  32. data/test/lib/docparser/output_test.rb +85 -0
  33. data/test/lib/docparser/parser_test.rb +197 -0
  34. data/test/lib/docparser/version_test.rb +11 -0
  35. data/test/support/hackaday/dl.rb +4 -0
  36. data/test/support/hackaday/file_1.html +716 -0
  37. data/test/support/hackaday/file_10.html +791 -0
  38. data/test/support/hackaday/file_11.html +787 -0
  39. data/test/support/hackaday/file_12.html +715 -0
  40. data/test/support/hackaday/file_13.html +793 -0
  41. data/test/support/hackaday/file_14.html +718 -0
  42. data/test/support/hackaday/file_15.html +707 -0
  43. data/test/support/hackaday/file_16.html +713 -0
  44. data/test/support/hackaday/file_17.html +715 -0
  45. data/test/support/hackaday/file_18.html +725 -0
  46. data/test/support/hackaday/file_19.html +715 -0
  47. data/test/support/hackaday/file_2.html +793 -0
  48. data/test/support/hackaday/file_20.html +795 -0
  49. data/test/support/hackaday/file_21.html +804 -0
  50. data/test/support/hackaday/file_22.html +722 -0
  51. data/test/support/hackaday/file_23.html +793 -0
  52. data/test/support/hackaday/file_24.html +717 -0
  53. data/test/support/hackaday/file_25.html +715 -0
  54. data/test/support/hackaday/file_26.html +717 -0
  55. data/test/support/hackaday/file_27.html +723 -0
  56. data/test/support/hackaday/file_28.html +711 -0
  57. data/test/support/hackaday/file_29.html +711 -0
  58. data/test/support/hackaday/file_3.html +794 -0
  59. data/test/support/hackaday/file_30.html +715 -0
  60. data/test/support/hackaday/file_31.html +713 -0
  61. data/test/support/hackaday/file_32.html +714 -0
  62. data/test/support/hackaday/file_33.html +716 -0
  63. data/test/support/hackaday/file_34.html +714 -0
  64. data/test/support/hackaday/file_35.html +792 -0
  65. data/test/support/hackaday/file_36.html +719 -0
  66. data/test/support/hackaday/file_37.html +712 -0
  67. data/test/support/hackaday/file_38.html +709 -0
  68. data/test/support/hackaday/file_39.html +808 -0
  69. data/test/support/hackaday/file_4.html +814 -0
  70. data/test/support/hackaday/file_40.html +801 -0
  71. data/test/support/hackaday/file_5.html +715 -0
  72. data/test/support/hackaday/file_6.html +792 -0
  73. data/test/support/hackaday/file_7.html +714 -0
  74. data/test/support/hackaday/file_8.html +717 -0
  75. data/test/support/hackaday/file_9.html +719 -0
  76. data/test/support/test_encoding.html +12 -0
  77. data/test/support/test_encoding2.html +12 -0
  78. data/test/support/test_html.html +16 -0
  79. data/test/support/test_xml.xml +5 -0
  80. data/test/test_helper.rb +14 -0
  81. metadata +126 -3
@@ -0,0 +1,709 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
3
+ <head profile="http://gmpg.org/xfn/11">
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5
+ <title>Hack a Day — Fresh hacks every day</title>
6
+ <meta name="description" content="Fresh hacks every day" />
7
+ <meta name="robots" content="noodp,noydir" />
8
+ <link rel="Shortcut Icon" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/images/favicon.ico?m=1353160633g" type="image/x-icon" />
9
+ <link rel="stylesheet" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/style.css?m=1363789849g" type="text/css" media="screen" />
10
+
11
+ <meta name="description" content="Fresh hacks every day" />
12
+ <meta name="keywords" content="hall of fame, fpga, nook hacks, internet hacks, marijuana hacks, network hacks, high voltage hacks, palm pre hacks, blackberry hacks, podcasts, virtual reality, drone hacks, lockpicking hacks, interviews, kindle hacks, phone hacks, weekly roundup, reviews, firefox hacks, g1 hacks" />
13
+ <script src='http://r-login.wordpress.com/remote-login.php?action=js&amp;host=hackaday.com&amp;id=4779443&amp;t=1366801156&amp;back=hackaday.com%2Fpage%2F38%2F' type="text/javascript"></script>
14
+ <script type="text/javascript">
15
+ /* <![CDATA[ */
16
+ if ( 'function' === typeof WPRemoteLogin ) {
17
+ document.cookie = "wordpress_test_cookie=test; path=/";
18
+ if ( document.cookie.match( /(;|^)\s*wordpress_test_cookie\=/ ) ) {
19
+ WPRemoteLogin();
20
+ }
21
+ }
22
+ /* ]]> */
23
+ </script>
24
+ <link rel="alternate" type="application/rss+xml" title="Hack a Day &raquo; Feed" href="http://feeds2.feedburner.com/hackaday/LgoM" />
25
+ <link rel="alternate" type="application/rss+xml" title="Hack a Day &raquo; Comments Feed" href="http://hackaday.com/comments/feed/" />
26
+ <script type="text/javascript">
27
+ /* <![CDATA[ */
28
+ function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){oldonload();func();}}}
29
+ /* ]]> */
30
+ </script>
31
+ <link rel="canonical" href="http://hackaday.com/" />
32
+ <link rel='stylesheet' id='all-css-0' href='http://s0.wp.com/_static/??-eJzTLy/QTc7PK0nNK9HPLdUtyClNz8wr1s/JzE4t1s9KLSlITM7WBfP0kouLdfSxKy/ILy7RTctJzCzSLy6pzEklVm1GYlFmXjqMxtBVkpGaC3RGhol+ek5+UmIOSIF9rq2hsZmZuYmxqbFlFgANUUYu' type='text/css' media='all' />
33
+ <script type='text/javascript'>
34
+ /* <![CDATA[ */
35
+ var SafeCommentsAjax = {"ajaxurl":"http:\/\/hackaday.com\/wp-admin\/admin-ajax.php"};
36
+ /* ]]> */
37
+ </script>
38
+ <script type='text/javascript' src='http://s0.wp.com/_static/??-eJyFz0sKAjEMBuALWUsZpjvxLKXGmjp92KQz6umNogtRFAJZ5Et+opeqMPup74B0lDp1aJdnW0da6V9AJQzNMbygL5kh893VQpyAyIVv0/cYzDPC8pdF4Or8UTUgvH5c5QNInp6x6jr1gJk0uT2IrqWxsJSEPX5w0Z1lfZs2ZrB2NIOxY7wBpfljQw=='></script>
39
+ <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://hackadaycom.wordpress.com/xmlrpc.php?rsd" />
40
+ <link rel="shortcut icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" sizes="16x16" />
41
+ <link rel="icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" sizes="16x16" />
42
+ <link rel="apple-touch-icon-precomposed" href="http://1.gravatar.com/blavatar/5560f98f805877b0e332f191cb9e0af3?s=114" />
43
+ <link rel='openid.server' href='http://hackadaycom.wordpress.com/?openidserver=1' />
44
+ <link rel='openid.delegate' href='http://hackadaycom.wordpress.com/' />
45
+ <link rel="search" type="application/opensearchdescription+xml" href="http://hackaday.com/osd.xml" title="Hack a Day" />
46
+ <link rel="search" type="application/opensearchdescription+xml" href="http://wordpress.com/opensearch.xml" title="WordPress.com" />
47
+ <style>
48
+ /* <![CDATA[ */
49
+ /* Block: reblog */
50
+
51
+ .reblog-from img { margin: 0 10px 0 0; vertical-align: middle; padding: 0; border: 0; }
52
+ .reblogger-note img.avatar { float: left; padding: 0; border: 0; }
53
+ .reblogger-note-content { margin: 0 0 20px; }
54
+ .reblog-post .wpcom-enhanced-excerpt-content { border-left: 3px solid #eee; padding-left: 15px; }
55
+ .reblog-post ul.thumb-list { display: block; list-style: none; margin: 2px 0; padding: 0; clear: both; }
56
+ .reblog-post ul.thumb-list li { display: inline; margin: 0; padding: 0 1px; border: 0; }
57
+ .reblog-post ul.thumb-list li a { margin: 0; padding: 0; border: 0; }
58
+ .reblog-post ul.thumb-list li img { margin: 0; padding: 0; border: 0; }
59
+
60
+ .reblog-post .wpcom-enhanced-excerpt { clear: both; }
61
+
62
+ .reblog-post .wpcom-enhanced-excerpt address,
63
+ .reblog-post .wpcom-enhanced-excerpt li,
64
+ .reblog-post .wpcom-enhanced-excerpt h1,
65
+ .reblog-post .wpcom-enhanced-excerpt h2,
66
+ .reblog-post .wpcom-enhanced-excerpt h3,
67
+ .reblog-post .wpcom-enhanced-excerpt h4,
68
+ .reblog-post .wpcom-enhanced-excerpt h5,
69
+ .reblog-post .wpcom-enhanced-excerpt h6,
70
+ .reblog-post .wpcom-enhanced-excerpt p { font-size: 100% !important; }
71
+
72
+ .reblog-post .wpcom-enhanced-excerpt blockquote,
73
+ .reblog-post .wpcom-enhanced-excerpt pre,
74
+ .reblog-post .wpcom-enhanced-excerpt code,
75
+ .reblog-post .wpcom-enhanced-excerpt q { font-size: 98% !important; }
76
+
77
+
78
+ /* ]]> */
79
+ </style>
80
+
81
+ <script type="text/javascript">var _sf_startpt=(new Date()).getTime()</script>
82
+ <style>
83
+ .wpcom-related-posts ul li {
84
+ list-style-type: none;
85
+ display: inline-block;
86
+ }
87
+ </style>
88
+ <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
89
+ <style type="text/css">
90
+ .recentcomments a {
91
+ display: inline !important;
92
+ padding: 0 !important;
93
+ margin: 0 !important;
94
+ }
95
+
96
+ table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar {
97
+ border: 0px;
98
+ margin: 0;
99
+ }
100
+
101
+ table.recentcommentsavatartop a, table.recentcommentsavatarend a {
102
+ border: 0px !important;
103
+ background-color: transparent !important;
104
+ }
105
+
106
+ td.recentcommentsavatarend, td.recentcommentsavatartop {
107
+ padding: 0px 0px 1px 0px;
108
+ margin: 0px;
109
+ }
110
+
111
+ td.recentcommentstextend {
112
+ border: none !important;
113
+ padding: 0px 0px 2px 10px;
114
+ }
115
+
116
+ .rtl td.recentcommentstextend {
117
+ padding: 0px 10px 2px 0px;
118
+ }
119
+
120
+ td.recentcommentstexttop {
121
+ border: none !important;
122
+ padding: 0px 0px 0px 10px;
123
+ }
124
+
125
+ .rtl td.recentcommentstexttop {
126
+ padding: 0px 10px 0px 0px;
127
+ }
128
+ </style>
129
+ <meta name="application-name" content="Hack a Day" /><meta name="msapplication-window" content="width=device-width;height=device-height" /><meta name="msapplication-tooltip" content="Fresh hacks every day" /><meta name="msapplication-task" content="name=Subscribe;action-uri=http://feeds2.feedburner.com/hackaday/LgoM;icon-uri=http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" /><style id="syntaxhighlighteranchor"></style>
130
+
131
+ <script>jQuery(document).ready(function($) {
132
+ $("cswap li a").click(function() {
133
+ $("link").attr("href",$(this).attr('rel'));
134
+ return false;
135
+ });
136
+ });</script>
137
+ <meta name="google-site-verification" content="v0_F4q2HixEv6wrQCEKBEbp2Wuj0oI9ywwaN6aoV0JE" />
138
+ </head>
139
+ <body class="home blog paged paged-38 typekit-enabled header-image content-sidebar highlander-enabled highlander-light">
140
+
141
+ <div id="fb-root"></div>
142
+ <script>(function(d, s, id) {
143
+ var js, fjs = d.getElementsByTagName(s)[0];
144
+ if (d.getElementById(id)) return;
145
+ js = d.createElement(s); js.id = id;
146
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
147
+ fjs.parentNode.insertBefore(js, fjs);
148
+ }(document, 'script', 'facebook-jssdk'));</script>
149
+ <div id="wrap">
150
+ <div id="header"><div class="wrap"><div id="title-area"><h1 id="title"><a href="http://hackaday.com/" title="Hack a Day">Hack a Day</a></h1><p id="description">Fresh hacks every day</p></div><!-- end #title-area --><div class="widget-area"><div = "leaderboard">
151
+ <script type="text/javascript"><!--
152
+ google_ad_client = "ca-pub-1812638130783065";
153
+ /* Hackaday, 728x90, created 4/26/08, Leaderboard */
154
+ google_ad_slot = "4036713767";
155
+ google_ad_width = 728;
156
+ google_ad_height = 90;
157
+ //-->
158
+ </script>
159
+ <script type="text/javascript"
160
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
161
+ </script>
162
+ </div>
163
+ <div id="adslice">
164
+
165
+ <script type="text/javascript"><!--
166
+ google_ad_client = "pub-1812638130783065";
167
+ /* Hackaday, 728x15, created 4/26/08, AdSlice */
168
+ google_ad_slot = "0246324944";
169
+ google_ad_width = 728;
170
+ google_ad_height = 15;
171
+ //-->
172
+ </script>
173
+
174
+ <script type="text/javascript"
175
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
176
+ </script>
177
+
178
+ </div></div><!-- end .widget-area --></div><!-- end .wrap --></div><!--end #header--><div id="nav"><div class="wrap"><ul id="menu-main" class="menu menu-primary superfish"><li id="menu-item-90201" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-90201"><a href="http://www.hackaday.com">Home</a></li>
179
+ <li id="menu-item-77211" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-77211"><a href="http://hackaday.com/contact-hack-a-day/">Submit a tip</a></li>
180
+ <li id="menu-item-90210" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-90210"><a href="http://forums.hackaday.com">forums</a></li>
181
+ <li id="menu-item-94591" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-94591"><a href="http://hackaday.com/hackaday-staff/">Hackaday Staff</a></li>
182
+ <li class="right search">
183
+ <form method="get" class="searchform" action="http://hackaday.com/" >
184
+
185
+ <input type="text" value="Search this website &hellip;" name="s" class="s" onfocus="if (this.value == 'Search this website &hellip;') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Search this website &hellip;';}" />
186
+ <input type="submit" class="searchsubmit" value="Search" />
187
+ </form>
188
+ </li></ul></div><!-- end .wrap --></div><div id="inner"><div class="wrap"> <div id="content-sidebar-wrap">
189
+ <div id="content" class="hfeed">
190
+ <div class="post-95873 post type-post status-publish format-standard hentry category-cooking-hacks category-transportation-hacks tag-mobile-grill tag-oil-truck tag-portable-grill tag-propane tag-tanker-truck tag-transformer">
191
+
192
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/09/oil-truck-transforms-into-giant-mobile-grill/" title="Oil truck transforms into giant mobile&nbsp;grill" rel="bookmark">Oil truck transforms into giant mobile&nbsp;grill</a></h2>
193
+
194
+ <div class="post-info"><span class="date published time" title="2013-03-09T14:01:00+00:00">March 9, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/platinumfungi/" class="fn n" title="Ryan Fitzpatrick" rel="author">Ryan Fitzpatrick</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/09/oil-truck-transforms-into-giant-mobile-grill/#comments">20 Comments</a></span> </div> <div class="entry-content">
195
+ <p><img class="alignnone wp-image-95876" alt="Oil-truck-transforms-into-mobile-grill" src="http://hackadaycom.files.wordpress.com/2013/03/oil-truck-transforms-into-mobile-grill.jpg?w=470&#038;h=352" width="470" height="352" /></p>
196
+ <p>When the truck rolls up, everything seems normal enough. It&#8217;s a generic oil tanker. But when the theme from &#8220;2001: A Space Odyssey&#8221; begins to play and the side of the tank starts to open, you suddenly realize things are not what they seem. This is no mere tanker truck,<a href="http://www.capecodonline.com/apps/pbcs.dll/article?AID=/20090113/BIZ/901130301"> it&#8217;s a massive meat cooking monster dubbed the &#8220;X Grill&#8221;</a>.</p>
197
+ <p>[Ken Foster], owner and creator of this $40K+ beast, worked with welder [Gary Webb] to custom design and fabricate every component of the vehicle, from hinges to hydraulic systems. They claim not a single part came from a box. The cooking area, complete with speakers and spotlights, has storage cabinets, stainless steel prep counters, a four burner stove, and a 42 inch grill. If that&#8217;s not enough, there are three more grills you can set up beside the truck and hook into the system. All the appliances are run off a 65 gallon propane tank that&#8217;s mounted to the side of the truck.</p>
198
+ <p>Although the &#8220;X Grill&#8221; is available to rent for private parties, [Ken] says they spend most of their time at community and charitable events. He donates his equipment and cooking services, and the host group supplies the food and gets to keep any profit.</p>
199
+ <p>Good work guys!</p>
200
+ <p>[via <a href="http://www.neatorama.com/">Neatorama</a>]</p>
201
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
202
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/cooking-hacks/" title="View all posts in cooking hacks" rel="category tag">cooking hacks</a>, <a href="http://hackaday.com/category/transportation-hacks/" title="View all posts in transportation hacks" rel="category tag">transportation hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/mobile-grill/" rel="tag">mobile grill</a>, <a href="http://hackaday.com/tag/oil-truck/" rel="tag">oil truck</a>, <a href="http://hackaday.com/tag/portable-grill/" rel="tag">portable grill</a>, <a href="http://hackaday.com/tag/propane/" rel="tag">propane</a>, <a href="http://hackaday.com/tag/tanker-truck/" rel="tag">tanker truck</a>, <a href="http://hackaday.com/tag/transformer/" rel="tag">transformer</a></span> </div>
203
+ </div><!-- end .postclass -->
204
+ <div class="post-95858 post type-post status-publish format-standard hentry category-tool-hacks tag-centrifuge tag-ink tag-pcb tag-resist tag-uv">
205
+
206
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/09/hard-drive-centrifuge-for-sensitizing-copper-clad-boards/" title="Hard drive centrifuge for sensitizing copper clad&nbsp;boards" rel="bookmark">Hard drive centrifuge for sensitizing copper clad&nbsp;boards</a></h2>
207
+
208
+ <div class="post-info"><span class="date published time" title="2013-03-09T12:01:41+00:00">March 9, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/09/hard-drive-centrifuge-for-sensitizing-copper-clad-boards/#comments">26 Comments</a></span> </div> <div class="entry-content">
209
+ <p><img class="aligncenter size-large wp-image-95859" alt="hdd-to-apply-light-sensitive-ink" src="http://hackadaycom.files.wordpress.com/2013/03/hdd-to-apply-light-sensitive-ink.png?w=580&#038;h=434" width="580" height="434" /></p>
210
+ <p>We would wager that most of the home etched PCB projects we see around here use the toner transfer method. But the next most popular technique is to use photosensitive ink which resists the etching acid once it has been exposed to light. Most people buy what are called pre-sensitized boards, but you can also get ink to make your own. [Jardirx] does this, and <a href="http://www.youtube.com/watch?v=3ZCPjabxCrk">uses an old hard drive to apply an even layer of the light-sensitive ink</a>.</p>
211
+ <p>The narration and subtitles of the video found after the break are both in Portuguese, but it&#8217;s not hard to figure out what&#8217;s going on here. He begins by using double-sided foam tape to secure the piece of copper clad board to the hard drive platters. You&#8217;ll want to center it as best as you can to keep the vibrations to a minimum. From there [Jardirx] applies a coating of the ink using a brush. The image above is what results. So as not to get ink everywhere, he then lowers a soda bottle with the bottom cut off to catch the excess. Power up the drive for a few seconds and the board will have a nice even layer ready for a trip through <a href="http://hackaday.com/2010/11/30/single-led-ultraviolet-exposure-box/">a UV exposure box</a>.</p>
212
+ <p> <a href="http://hackaday.com/2013/03/09/hard-drive-centrifuge-for-sensitizing-copper-clad-boards/#more-95858" class="more-link">[Read more...]</a></p>
213
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
214
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/tool-hacks/" title="View all posts in tool hacks" rel="category tag">tool hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/centrifuge/" rel="tag">centrifuge</a>, <a href="http://hackaday.com/tag/ink/" rel="tag">ink</a>, <a href="http://hackaday.com/tag/pcb/" rel="tag">pcb</a>, <a href="http://hackaday.com/tag/resist/" rel="tag">resist</a>, <a href="http://hackaday.com/tag/uv/" rel="tag">uv</a></span> </div>
215
+ </div><!-- end .postclass -->
216
+ <div class="post-95897 post type-post status-publish format-standard hentry category-arduino-hacks tag-arduino tag-change-machine tag-gambling">
217
+
218
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/09/dispensing-change-for-low-stakes-gambling/" title="Dispensing change for low-stakes&nbsp;gambling" rel="bookmark">Dispensing change for low-stakes&nbsp;gambling</a></h2>
219
+
220
+ <div class="post-info"><span class="date published time" title="2013-03-09T10:00:49+00:00">March 9, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/brianbenchoff/" class="fn n" title="Brian Benchoff" rel="author">Brian Benchoff</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/09/dispensing-change-for-low-stakes-gambling/#comments">2 Comments</a></span> </div> <div class="entry-content">
221
+ <p><img class="aligncenter size-full wp-image-95898" alt="change" src="http://hackadaycom.files.wordpress.com/2013/03/change.png?w=580&#038;h=234" width="580" height="234" /></p>
222
+ <p>Every year, [Nathan] hosts an Oscar party with a lot of drinking, adoring the off-color comments of [Joan Rivers] and some low stakes wagering. Everyone throws a dollar into the pot for a particular award, and when the winner is announced, [Nathan] splits the pot between the winners and begins counting out coins. As convenience stores have discovered, <a href="http://www.hahabird.com/2013/03/change-o-matic/">there&#8217;s an easier way to dole out pocket change</a>, so this year [Nathan] created a change machine that dispenses coins for the winners.</p>
223
+ <p>The change machine is just like the ones you would find at a supermarket or convenience store; load up the machine with a few rolls of coins, and a few solenoids fire in response to serial data received from a computer. [Nathan] used an Arduino, Serial shield, button matrix, and LCD display for his change machine interface, allowing him to dispense pocket change to each of the winners after an award is announced.</p>
224
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
225
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/arduino-hacks/" title="View all posts in arduino hacks" rel="category tag">arduino hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/arduino/" rel="tag">arduino</a>, <a href="http://hackaday.com/tag/change-machine/" rel="tag">change machine</a>, <a href="http://hackaday.com/tag/gambling/" rel="tag">gambling</a></span> </div>
226
+ </div><!-- end .postclass -->
227
+ <div align="center">
228
+
229
+
230
+
231
+ <script type="text/javascript"><!--
232
+
233
+ google_ad_client = "ca-pub-1812638130783065";
234
+
235
+ /* Hackaday, 300x250, created 4/26/08, MedRect main column */
236
+
237
+ google_ad_slot = "3449215672";
238
+
239
+ google_ad_width = 300;
240
+
241
+ google_ad_height = 250;
242
+
243
+ //-->
244
+
245
+ </script>
246
+
247
+ <script type="text/javascript"
248
+
249
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
250
+
251
+ </script>
252
+
253
+
254
+
255
+ </div> <div class="post-95846 post type-post status-publish format-standard hentry category-video-hacks tag-3d tag-leap-motion tag-peppers-ghost tag-three-js tag-volumetric">
256
+
257
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/09/3d-display-controlled-with-the-leap-motion/" title="3D display controlled with the Leap&nbsp;Motion" rel="bookmark">3D display controlled with the Leap&nbsp;Motion</a></h2>
258
+
259
+ <div class="post-info"><span class="date published time" title="2013-03-09T08:01:46+00:00">March 9, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/09/3d-display-controlled-with-the-leap-motion/#comments">9 Comments</a></span> </div> <div class="entry-content">
260
+ <p><img class="aligncenter size-large wp-image-95850" alt="3d-display-controlled-with-leap-motion" src="http://hackadaycom.files.wordpress.com/2013/03/3d-display-controlled-with-leap-motion.png?w=580&#038;h=326" width="580" height="326" /></p>
261
+ <p>Touch screens are nice &#8212; we still can&#8217;t live without a keyboard but they suffice when on the go. But it is becoming obvious that the end goal with user interface techniques is to completely remove the need to touch a piece of hardware in order to interact with it. One avenue for this goal is the use of voice commands via software like Siri, but another is the use of 3D processing hardware like Kinect or Leap Motion. This project uses the latter to <a href="http://robbietilton.com/blog/?p=1589">control the image shown on the 3D display</a>.</p>
262
+ <p>[Robbie Tilton] generated a 3D image using <a href="https://github.com/mrdoob/three.js/">Three.js</a>, a JavaScript 3D library. The images are made to appear as if floating in air using a pyramid of acrylic which reflects the light toward the viewer&#8217;s eyes without blocking out ambient light in the room. In the past we&#8217;ve referred to this as <a href="http://hackaday.com/2011/01/18/glimpses-of-a-3d-volumetric-display/">a volumetric display</a>. But [Robbie] points out that this actually uses the illusion called <a href="http://en.wikipedia.org/wiki/Pepper%27s_ghost">Pepper&#8217;s Ghost</a>. It&#8217;s not really volumetric because the depth is merely an illusion. Moving your point of view won&#8217;t change your perspective unless you go around the corner to the next piece of acrylic. But it&#8217;s still a nice effect. See for yourself in the demo after the jump.</p>
263
+ <p> <a href="http://hackaday.com/2013/03/09/3d-display-controlled-with-the-leap-motion/#more-95846" class="more-link">[Read more...]</a></p>
264
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
265
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/video-hacks/" title="View all posts in video hacks" rel="category tag">video hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/3d/" rel="tag">3d</a>, <a href="http://hackaday.com/tag/leap-motion/" rel="tag">Leap motion</a>, <a href="http://hackaday.com/tag/peppers-ghost/" rel="tag">pepper's ghost</a>, <a href="http://hackaday.com/tag/three-js/" rel="tag">three.js</a>, <a href="http://hackaday.com/tag/volumetric/" rel="tag">volumetric</a></span> </div>
266
+ </div><!-- end .postclass -->
267
+ <div class="post-95853 post type-post status-publish format-standard hentry category-teardown tag-airport tag-luggage tag-x-ray">
268
+
269
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/09/airport-x-ray-machine-teardown/" title="Airport X-ray machine&nbsp;teardown" rel="bookmark">Airport X-ray machine&nbsp;teardown</a></h2>
270
+
271
+ <div class="post-info"><span class="date published time" title="2013-03-09T06:01:44+00:00">March 9, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/09/airport-x-ray-machine-teardown/#comments">20 Comments</a></span> </div> <div class="entry-content">
272
+ <p><img class="aligncenter size-full wp-image-95854" alt="airport-xray-teardown" src="http://hackadaycom.files.wordpress.com/2013/03/airport-xray-teardown.jpg?w=480&#038;h=270" width="480" height="270" /></p>
273
+ <p>Who has an airport carry-on X-ray machine sitting in their garage? Apparently [Mike] does, and he&#8217;s sharing the fun by posting <a href="http://www.youtube.com/watch?v=KPyE29ABmoA">a video teardown series</a> that really digs into the machine&#8217;s hardware and operating system.</p>
274
+ <p>At this point the series includes six lengthy segments. The first episode, which you&#8217;ll find embedded after the break, starts with an external overview of the hardware. [Mike] mentions that it&#8217;s not functional at that point. He guesses that this has to do either with security settings to enable the machine (it does produce x-ray after all) or corrupt memory in an EPROM chip. The password lockout is later confirmed when he looks at a code disassembly and finds strings requesting username and password to gain access to some of the menus. The second installment involves more disassembly to figure out the passwords and gain full access to the machine. By the fourth video he&#8217;s X-raying random items from around the shop and then some.</p>
275
+ <p>It&#8217;s a lot to watch, but it&#8217;s exciting to see how far he gets with the rare equipment.</p>
276
+ <p> <a href="http://hackaday.com/2013/03/09/airport-x-ray-machine-teardown/#more-95853" class="more-link">[Read more...]</a></p>
277
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
278
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/teardown/" title="View all posts in teardown" rel="category tag">teardown</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/airport/" rel="tag">airport</a>, <a href="http://hackaday.com/tag/luggage/" rel="tag">luggage</a>, <a href="http://hackaday.com/tag/x-ray/" rel="tag">x-ray</a></span> </div>
279
+ </div><!-- end .postclass -->
280
+ <div class="post-95862 post type-post status-publish format-standard hentry category-classic-hacks tag-c64 tag-commodore-64 tag-lcd tag-portable tag-sd2iec tag-sid tag-stereo">
281
+
282
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/08/making-a-commodore-64-portable/" title="Making a Commodore 64&nbsp;portable" rel="bookmark">Making a Commodore 64&nbsp;portable</a></h2>
283
+
284
+ <div class="post-info"><span class="date published time" title="2013-03-08T20:01:38+00:00">March 8, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/08/making-a-commodore-64-portable/#comments">20 Comments</a></span> </div> <div class="entry-content">
285
+ <p><img class="aligncenter size-large wp-image-95863" alt="making-a-c64-portable" src="http://hackadaycom.files.wordpress.com/2013/03/making-a-c64-portable.jpg?w=580&#038;h=435" width="580" height="435" /></p>
286
+ <p>This is [Wpqrek's] <a href="http://wpqrek.blogspot.com/2011/09/my-c64-mods.html">Commodore 64 modified to go on the road with him</a>. The elderly machine has a special place in his heart as it was what he learned to code on. He performed a series of hacks which house everything necessary to use the machine inside the original case.</p>
287
+ <p>Obviously the hack that has the most effect when it comes to portability was swapping a display for the small LCD mounted above the number keys. This was a pretty simple process because the screen, originally intended for a rear view camera in a vehicle, already had a composite video input. To emulate the floppy disc drive he&#8217;s using an SD card via an sd2iec board which he laid out himself. Rounding up the alterations is a stereo SID. The second channel uses the pre-amp circuit cut from a second C64. This audio hardware will let him do cool things like <a href="http://hackaday.com/2012/11/14/playing-led-zeppelin-on-a-c64/">playing some classic Zeppelin</a>.</p>
288
+ <p>You can get a video tour of these alterations after the break.</p>
289
+ <p> <a href="http://hackaday.com/2013/03/08/making-a-commodore-64-portable/#more-95862" class="more-link">[Read more...]</a></p>
290
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
291
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/classic-hacks/" title="View all posts in classic hacks" rel="category tag">classic hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/c64/" rel="tag">c64</a>, <a href="http://hackaday.com/tag/commodore-64/" rel="tag">commodore 64</a>, <a href="http://hackaday.com/tag/lcd/" rel="tag">lcd</a>, <a href="http://hackaday.com/tag/portable/" rel="tag">portable</a>, <a href="http://hackaday.com/tag/sd2iec/" rel="tag">sd2iec</a>, <a href="http://hackaday.com/tag/sid/" rel="tag">sid</a>, <a href="http://hackaday.com/tag/stereo/" rel="tag">stereo</a></span> </div>
292
+ </div><!-- end .postclass -->
293
+ <div class="post-95813 post type-post status-publish format-standard hentry category-classic-hacks tag-3d-printer tag-art tag-gears tag-oh-boy-another-comments-section-dedicated-to-the-study-of-aesthetics">
294
+
295
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/08/printed-machine-does-nothing-until-the-heat-death-of-the-universe/" title="Printed machine does nothing until the heat death of the&nbsp;Universe" rel="bookmark">Printed machine does nothing until the heat death of the&nbsp;Universe</a></h2>
296
+
297
+ <div class="post-info"><span class="date published time" title="2013-03-08T18:01:21+00:00">March 8, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/brianbenchoff/" class="fn n" title="Brian Benchoff" rel="author">Brian Benchoff</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/08/printed-machine-does-nothing-until-the-heat-death-of-the-universe/#comments">43 Comments</a></span> </div> <div class="entry-content">
298
+ <p><img class="aligncenter size-full wp-image-95814" alt="machine" src="http://hackadaycom.files.wordpress.com/2013/03/machine.jpg?w=580&#038;h=248" width="580" height="248" /></p>
299
+ <p>A 2:1 gear reduction slows down a spinning shaft to half speed and doubles the torque. Repeat this a few times, and you&#8217;ve got a ludicrous amount of torque moving too slowly to see with even precision instruments. That&#8217;s the idea behind [Jeshua]&#8216;s project, <a href="http://www.thingiverse.com/thing:51248">a Printed Machine</a> partially embedded in a block of concrete.</p>
300
+ <p>[Jeshua]&#8216;s build is a replica of one of <a href="http://www.arthurganson.com/pages/Sculptures.html">[Arthur Ganson]&#8216;s kinetic sculptures</a>. [Ganson]&#8216;s machine uses 50 sets of gears to reduce the rotation of 200 RPM motor more that 200  quintillion times. The final gear in the sculpture is embedded in a block of concrete, waiting to be freed by either erosion of the concrete block or the sun going nova.</p>
301
+ <p>Instead of metal gears, [Jeshua] used 3D printed gears in PLA. After assembling them on a stand, he cast concrete around the final, barely moving gear. It&#8217;s an impressively useless build that will turn to dust before the final gear makes even 1/10th of a revolution. This machine could have a longer life if it were printed with ABS instead of PLA, but with the time scales we&#8217;re talking about here it won&#8217;t make much difference.</p>
302
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
303
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/classic-hacks/" title="View all posts in classic hacks" rel="category tag">classic hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/3d-printer/" rel="tag">3d printer</a>, <a href="http://hackaday.com/tag/art/" rel="tag">art</a>, <a href="http://hackaday.com/tag/gears/" rel="tag">gears</a>, <a href="http://hackaday.com/tag/oh-boy-another-comments-section-dedicated-to-the-study-of-aesthetics/" rel="tag">Oh boy another comments section dedicated to the study of aesthetics</a></span> </div>
304
+ </div><!-- end .postclass -->
305
+ <div class="navigation"><div class="alignleft"><a href="http://hackaday.com/page/39/" >&laquo; Older Posts</a></div><div class="alignright"><a href="http://hackaday.com/page/37/" >Newer Posts &raquo;</a></div></div><!-- end .navigation --> </div><!-- end #content -->
306
+ <div id="sidebar" class="sidebar widget-area">
307
+ <div id=tl_ad>
308
+ <script type="text/javascript"><!--
309
+ google_ad_client = "ca-pub-1812638130783065";
310
+ /* Hackaday, 300x250, created 4/26/08, MedRect sidebar */
311
+ google_ad_slot = "7800245928";
312
+ google_ad_width = 300;
313
+ google_ad_height = 250;
314
+ //-->
315
+ </script>
316
+ <script type="text/javascript"
317
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
318
+ </script>
319
+
320
+ </div>
321
+
322
+
323
+
324
+
325
+
326
+
327
+ <div class="widget">
328
+ <h4>Never Miss a Hack</h4>
329
+ <div class="textwidget">
330
+
331
+ <!-- Place this tag where you want the badge to render. -->
332
+ <div class="g-plus" data-width= "280" data-href="https://plus.google.com/114843073658390316652" data-rel="publisher" data-theme="dark"></div>
333
+ <!-- Place this tag after the last badge tag. -->
334
+ <script type="text/javascript">
335
+ (function() {
336
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
337
+ po.src = 'https://apis.google.com/js/plusone.js';
338
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
339
+ })();
340
+ </script>
341
+
342
+ <div class="fb-like" data-href="https://www.facebook.com/pages/Hack-a-Day/136115233068429?ref=hl" data-send="true" data-width="280" data-show-faces="true" data-colorscheme="dark"></div>
343
+
344
+ <a href="https://twitter.com/hackaday" class="twitter-follow-button" data-show-count="true" data-lang="en" data-size="large">Follow @twitter</a>
345
+ <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
346
+
347
+ <a href="http://feeds2.feedburner.com/hackaday/LgoM" target="_blank"><img src="http://hackadaycom.files.wordpress.com/2012/11/orange.png" border="0"/></a>
348
+ <div class="clear"> </div>
349
+ <!-- Begin MailChimp Signup Form -->
350
+ <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
351
+
352
+ <div id="mc_embed_signup">
353
+ <form action="http://mahalo.us5.list-manage.com/subscribe/post?u=126b2ab712043075d9bd7210e&amp;id=cb1aa8bd16" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
354
+ <label for="mce-EMAIL">Subscribe to our mailing list for sneak previews and behind the scenes info</label>
355
+ <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
356
+ <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
357
+ </form>
358
+ </div>
359
+
360
+ <!--End mc_embed_signup-->
361
+ </div>
362
+ </div>
363
+
364
+ <div id="categories-2" class="widget widget_categories"><div class="widget-wrap"><h4 class="widgettitle">Categories</h4>
365
+ <select name='cat' id='cat' class='postform' >
366
+ <option value='-1'>Select Category</option>
367
+ <option class="level-0" value="114554125">3d Printer hacks&nbsp;&nbsp;(116)</option>
368
+ <option class="level-0" value="18020710">android hacks&nbsp;&nbsp;(240)</option>
369
+ <option class="level-0" value="18020705">arduino hacks&nbsp;&nbsp;(1029)</option>
370
+ <option class="level-0" value="27981650">ARM&nbsp;&nbsp;(51)</option>
371
+ <option class="level-0" value="33199679">Ask Hackaday&nbsp;&nbsp;(29)</option>
372
+ <option class="level-0" value="64298109">ATtiny hacks&nbsp;&nbsp;(45)</option>
373
+ <option class="level-0" value="25122024">beer hacks&nbsp;&nbsp;(63)</option>
374
+ <option class="level-0" value="12115263">blackberry hacks&nbsp;&nbsp;(8)</option>
375
+ <option class="level-0" value="10969031">cellphones hacks&nbsp;&nbsp;(337)</option>
376
+ <option class="level-0" value="35745764">chemistry hacks&nbsp;&nbsp;(102)</option>
377
+ <option class="level-0" value="24483654">classic hacks&nbsp;&nbsp;(852)</option>
378
+ <option class="level-0" value="31677810">clock hacks&nbsp;&nbsp;(189)</option>
379
+ <option class="level-0" value="18755632">cnc hacks&nbsp;&nbsp;(341)</option>
380
+ <option class="level-0" value="568165">computer hacks&nbsp;&nbsp;(390)</option>
381
+ <option class="level-0" value="78428">cons&nbsp;&nbsp;(192)</option>
382
+ <option class="level-0" value="5738">contests&nbsp;&nbsp;(136)</option>
383
+ <option class="level-0" value="3923181">cooking hacks&nbsp;&nbsp;(72)</option>
384
+ <option class="level-0" value="10969032">digital audio hacks&nbsp;&nbsp;(422)</option>
385
+ <option class="level-0" value="10969033">digital cameras hacks&nbsp;&nbsp;(415)</option>
386
+ <option class="level-0" value="10969034">downloads hacks&nbsp;&nbsp;(101)</option>
387
+ <option class="level-0" value="107827385">drone hacks&nbsp;&nbsp;(10)</option>
388
+ <option class="level-0" value="63176382">Engine Hacks&nbsp;&nbsp;(31)</option>
389
+ <option class="level-0" value="35890">Featured&nbsp;&nbsp;(72)</option>
390
+ <option class="level-0" value="551890">firefox hacks&nbsp;&nbsp;(23)</option>
391
+ <option class="level-0" value="53446541">FPGA&nbsp;&nbsp;(1)</option>
392
+ <option class="level-0" value="18020562">g1 hacks&nbsp;&nbsp;(26)</option>
393
+ <option class="level-0" value="320557">google hacks&nbsp;&nbsp;(44)</option>
394
+ <option class="level-0" value="10969036">gps hacks&nbsp;&nbsp;(108)</option>
395
+ <option class="level-0" value="24535490">green hacks&nbsp;&nbsp;(152)</option>
396
+ <option class="level-0" value="27311668">Hackaday links&nbsp;&nbsp;(146)</option>
397
+ <option class="level-0" value="21755374">Hackerspaces&nbsp;&nbsp;(93)</option>
398
+ <option class="level-0" value="6310599">HackIt&nbsp;&nbsp;(101)</option>
399
+ <option class="level-0" value="10969037">handhelds hacks&nbsp;&nbsp;(189)</option>
400
+ <option class="level-0" value="79">hardware&nbsp;&nbsp;(249)</option>
401
+ <option class="level-0" value="144422905">High Voltage Hacks&nbsp;&nbsp;(5)</option>
402
+ <option class="level-0" value="66307084">Holiday Hacks&nbsp;&nbsp;(93)</option>
403
+ <option class="level-0" value="10969038">home entertainment hacks&nbsp;&nbsp;(516)</option>
404
+ <option class="level-0" value="5660882">home hacks&nbsp;&nbsp;(705)</option>
405
+ <option class="level-0" value="2708">how-to&nbsp;&nbsp;(135)</option>
406
+ <option class="level-0" value="908478">internet hacks&nbsp;&nbsp;(2)</option>
407
+ <option class="level-0" value="831">Interviews&nbsp;&nbsp;(13)</option>
408
+ <option class="level-0" value="1416772">iphone hacks&nbsp;&nbsp;(176)</option>
409
+ <option class="level-0" value="1275163">ipod hacks&nbsp;&nbsp;(144)</option>
410
+ <option class="level-0" value="344761">kickstarter&nbsp;&nbsp;(29)</option>
411
+ <option class="level-0" value="4157506">Kindle hacks&nbsp;&nbsp;(15)</option>
412
+ <option class="level-0" value="46717088">Kinect hacks&nbsp;&nbsp;(81)</option>
413
+ <option class="level-0" value="10969048">laptops hacks&nbsp;&nbsp;(111)</option>
414
+ <option class="level-0" value="10969055">laser hacks&nbsp;&nbsp;(167)</option>
415
+ <option class="level-0" value="18020716">led hacks&nbsp;&nbsp;(695)</option>
416
+ <option class="level-0" value="10626">lifehacks&nbsp;&nbsp;(54)</option>
417
+ <option class="level-0" value="729674">linux hacks&nbsp;&nbsp;(129)</option>
418
+ <option class="level-0" value="20732807">lockpicking hacks&nbsp;&nbsp;(11)</option>
419
+ <option class="level-0" value="10969060">macs hacks&nbsp;&nbsp;(135)</option>
420
+ <option class="level-0" value="144395979">Marijuana Hacks&nbsp;&nbsp;(2)</option>
421
+ <option class="level-0" value="11284667">Medical hacks&nbsp;&nbsp;(102)</option>
422
+ <option class="level-0" value="139916">Microcontrollers&nbsp;&nbsp;(512)</option>
423
+ <option class="level-0" value="5611793">misc hacks&nbsp;&nbsp;(1747)</option>
424
+ <option class="level-0" value="18020730">multitouch hacks&nbsp;&nbsp;(89)</option>
425
+ <option class="level-0" value="22652725">musical hacks&nbsp;&nbsp;(290)</option>
426
+ <option class="level-0" value="18020722">netbook hacks&nbsp;&nbsp;(50)</option>
427
+ <option class="level-0" value="6166512">Network Hacks&nbsp;&nbsp;(4)</option>
428
+ <option class="level-0" value="103">news&nbsp;&nbsp;(1091)</option>
429
+ <option class="level-0" value="1861880">nintendo ds hacks&nbsp;&nbsp;(34)</option>
430
+ <option class="level-0" value="114555425">nintendo gameboy hacks&nbsp;&nbsp;(90)</option>
431
+ <option class="level-0" value="18020685">nintendo hacks&nbsp;&nbsp;(261)</option>
432
+ <option class="level-0" value="4992726">nintendo wii hacks&nbsp;&nbsp;(78)</option>
433
+ <option class="level-0" value="118011206">Nook Hacks&nbsp;&nbsp;(1)</option>
434
+ <option class="level-0" value="114556430">palm pre hacks&nbsp;&nbsp;(6)</option>
435
+ <option class="level-0" value="245123">parts&nbsp;&nbsp;(72)</option>
436
+ <option class="level-0" value="10969081">peripherals hacks&nbsp;&nbsp;(648)</option>
437
+ <option class="level-0" value="16325149">phone hacks&nbsp;&nbsp;(17)</option>
438
+ <option class="level-0" value="10969088">playstation hacks&nbsp;&nbsp;(120)</option>
439
+ <option class="level-0" value="2060">podcasts&nbsp;&nbsp;(8)</option>
440
+ <option class="level-0" value="10969096">portable audio hacks&nbsp;&nbsp;(66)</option>
441
+ <option class="level-0" value="10969099">portable video hacks&nbsp;&nbsp;(57)</option>
442
+ <option class="level-0" value="588444">psp hacks&nbsp;&nbsp;(47)</option>
443
+ <option class="level-0" value="23971578">radio hacks&nbsp;&nbsp;(137)</option>
444
+ <option class="level-0" value="47">rants&nbsp;&nbsp;(28)</option>
445
+ <option class="level-0" value="69218551">Raspberry Pi&nbsp;&nbsp;(153)</option>
446
+ <option class="level-0" value="21870780">repair hacks&nbsp;&nbsp;(101)</option>
447
+ <option class="level-0" value="309">reviews&nbsp;&nbsp;(19)</option>
448
+ <option class="level-0" value="10969101">robots hacks&nbsp;&nbsp;(874)</option>
449
+ <option class="level-0" value="30302">roundup&nbsp;&nbsp;(35)</option>
450
+ <option class="level-0" value="10969111">security hacks&nbsp;&nbsp;(460)</option>
451
+ <option class="level-0" value="2301">Software Development&nbsp;&nbsp;(91)</option>
452
+ <option class="level-0" value="3796421">software hacks&nbsp;&nbsp;(47)</option>
453
+ <option class="level-0" value="10969116">solar hacks&nbsp;&nbsp;(46)</option>
454
+ <option class="level-0" value="10969121">tablet pcs hacks&nbsp;&nbsp;(40)</option>
455
+ <option class="level-0" value="3075183">teardown&nbsp;&nbsp;(31)</option>
456
+ <option class="level-0" value="10969130">tool hacks&nbsp;&nbsp;(657)</option>
457
+ <option class="level-0" value="25277004">toy hacks&nbsp;&nbsp;(360)</option>
458
+ <option class="level-0" value="10969134">transportation hacks&nbsp;&nbsp;(472)</option>
459
+ <option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(332)</option>
460
+ <option class="level-0" value="3184456">video hacks&nbsp;&nbsp;(211)</option>
461
+ <option class="level-0" value="34942364">Virtual Reality&nbsp;&nbsp;(9)</option>
462
+ <option class="level-0" value="50802420">weapons hacks&nbsp;&nbsp;(63)</option>
463
+ <option class="level-0" value="12552193">wearable hacks&nbsp;&nbsp;(183)</option>
464
+ <option class="level-0" value="39510952">Weekly roundup&nbsp;&nbsp;(18)</option>
465
+ <option class="level-0" value="4891215">wireless hacks&nbsp;&nbsp;(333)</option>
466
+ <option class="level-0" value="7079455">xbox hacks&nbsp;&nbsp;(130)</option>
467
+ </select>
468
+
469
+ <script type='text/javascript'>
470
+ /* <![CDATA[ */
471
+ var dropdown = document.getElementById("cat");
472
+ function onCatChange() {
473
+ if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
474
+ location.href = "http://hackaday.com/?cat="+dropdown.options[dropdown.selectedIndex].value;
475
+ }
476
+ }
477
+ dropdown.onchange = onCatChange;
478
+ /* ]]> */
479
+ </script>
480
+
481
+ </div></div>
482
+ <div id="featured-post-2" class="widget featuredpost"><div class="widget-wrap"><h4 class="widgettitle">In case you missed it</h4>
483
+ <div class="post-97657 post type-post status-publish format-standard hentry category-3d-printer-hacks category-featured tag-algae tag-bioluminescence tag-dinoflagellate tag-glowing tag-phosphorescence"><a href="http://hackaday.com/2013/04/18/living-night-light-with-glowing-algae/" title="Living night light with glowing&nbsp;algae" class="alignleft"><img width="90" height="61" src="http://hackadaycom.files.wordpress.com/2013/04/thumb1.jpg?w=90" class="attachment-thumbnail" alt="thumb" /></a><h2><a href="http://hackaday.com/2013/04/18/living-night-light-with-glowing-algae/" title="Living night light with glowing&nbsp;algae">Living night light with glowing&nbsp;algae</a></h2><p class="byline post-info"><br /> <span class="post-comments"><a href="http://hackaday.com/2013/04/18/living-night-light-with-glowing-algae/#comments">67 Comments</a></span></p></div><!--end post_class()-->
484
+
485
+ <div class="post-97648 post type-post status-publish format-standard hentry category-3d-printer-hacks category-featured category-virtual-reality-2 tag-3d-printing tag-lulzbot tag-oculus-rift tag-virtual-reality tag-vr"><a href="http://hackaday.com/2013/04/17/3d-printing-sensor-mounts-for-the-oculus-rift/" title="3D Printing sensor mounts for the Oculus&nbsp;Rift" class="alignleft"><img width="90" height="67" src="http://hackadaycom.files.wordpress.com/2013/04/thumb.jpg?w=90" class="attachment-thumbnail" alt="thumb" /></a><h2><a href="http://hackaday.com/2013/04/17/3d-printing-sensor-mounts-for-the-oculus-rift/" title="3D Printing sensor mounts for the Oculus&nbsp;Rift">3D Printing sensor mounts for the Oculus&nbsp;Rift</a></h2><p class="byline post-info"><br /> <span class="post-comments"><a href="http://hackaday.com/2013/04/17/3d-printing-sensor-mounts-for-the-oculus-rift/#comments">7 Comments</a></span></p></div><!--end post_class()-->
486
+
487
+ <div class="post-97564 post type-post status-publish format-standard hentry category-featured category-virtual-reality-2 tag-adaliight tag-ambilight tag-oculus-rift tag-virtual-reality tag-vr"><a href="http://hackaday.com/2013/04/11/hacking-the-oculus-rift-the-oculight/" title="Hacking the Oculus Rift: the&nbsp;Oculight" class="alignleft"><img width="90" height="54" src="http://hackadaycom.files.wordpress.com/2013/04/screen-shot-2013-04-14-at-9-52-43-am.png?w=90" class="attachment-thumbnail" alt="Screen Shot 2013-04-14 at 9.52.43 AM" /></a><h2><a href="http://hackaday.com/2013/04/11/hacking-the-oculus-rift-the-oculight/" title="Hacking the Oculus Rift: the&nbsp;Oculight">Hacking the Oculus Rift: the&nbsp;Oculight</a></h2><p class="byline post-info"><br /> <span class="post-comments"><a href="http://hackaday.com/2013/04/11/hacking-the-oculus-rift-the-oculight/#comments">20 Comments</a></span></p></div><!--end post_class()-->
488
+
489
+ <div class="post-97538 post type-post status-publish format-standard hentry category-featured category-news tag-top-10 tag-wins"><a href="http://hackaday.com/2013/04/11/top-10-best-hacking-scenes-in-movies/" title="Top 10 best hacking scenes in&nbsp;movies" class="alignleft"><img width="90" height="55" src="http://hackadaycom.files.wordpress.com/2013/04/screen-shot-2013-04-14-at-9-51-38-am.png?w=90" class="attachment-thumbnail" alt="Screen Shot 2013-04-14 at 9.51.38 AM" /></a><h2><a href="http://hackaday.com/2013/04/11/top-10-best-hacking-scenes-in-movies/" title="Top 10 best hacking scenes in&nbsp;movies">Top 10 best hacking scenes in&nbsp;movies</a></h2><p class="byline post-info"><br /> <span class="post-comments"><a href="http://hackaday.com/2013/04/11/top-10-best-hacking-scenes-in-movies/#comments">88 Comments</a></span></p></div><!--end post_class()-->
490
+
491
+ <div class="post-97094 post type-post status-publish format-standard hentry category-featured category-news tag-april-fools"><a href="http://hackaday.com/2013/04/01/hackadays-very-first-kickstarter-campaign/" title="Hackaday&#8217;s very first Kickstarter&nbsp;campaign" class="alignleft"><img width="90" height="54" src="http://hackadaycom.files.wordpress.com/2013/03/hackaday-kickstarter.jpg?w=90" class="attachment-thumbnail" alt="hackaday-kickstarter" /></a><h2><a href="http://hackaday.com/2013/04/01/hackadays-very-first-kickstarter-campaign/" title="Hackaday&#8217;s very first Kickstarter&nbsp;campaign">Hackaday&#8217;s very first Kickstarter&nbsp;campaign</a></h2><p class="byline post-info"><br /> <span class="post-comments"><a href="http://hackaday.com/2013/04/01/hackadays-very-first-kickstarter-campaign/#comments">58 Comments</a></span></p></div><!--end post_class()-->
492
+
493
+ <p class="more-from-category"><a href="http://hackaday.com/category/featured/" title="Featured">More Posts from this Category</a></p></div></div>
494
+ <div id="recent-comments-2" class="widget widget_recent_comments"><div class="widget-wrap"><h4 class="widgettitle">Recent comments</h4>
495
+ <ul id="recentcomments">
496
+ <li class="recentcomments">
497
+ echodelta on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-997083">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
498
+ <li class="recentcomments">
499
+ <a href='http://jsutton.co.uk' rel='external nofollow' class='url'>James</a> on <a href="http://hackaday.com/2013/04/23/console-radio-given-new-life-with-a-wifi-router-retrofit/comment-page-1/#comment-997080">Console radio given new life with a WiFi router&nbsp;retrofit</a> </li>
500
+ <li class="recentcomments">
501
+ nhede on <a href="http://hackaday.com/2013/04/22/20-pounds-and-a-gut-feeling-yields-a-configurable-rubidium-atomic-clock-source/comment-page-1/#comment-997074">20 pounds and a gut feeling yields a configurable Rubidium atomic clock&nbsp;source</a> </li>
502
+ <li class="recentcomments">
503
+ Dax on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-997071">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
504
+ <li class="recentcomments">
505
+ TacticalNinja on <a href="http://hackaday.com/2013/04/23/otm-02-is-a-3d-printed-wristwatch/comment-page-1/#comment-997070">OTM-02 is a 3D printed&nbsp;wristwatch</a> </li>
506
+ <li class="recentcomments">
507
+ Arlet on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-997017">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
508
+ <li class="recentcomments">
509
+ Arlet on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-997016">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
510
+ <li class="recentcomments">
511
+ <a href='http://smonson.com/' rel='external nofollow' class='url'>Smonson</a> on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-996997">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
512
+ <li class="recentcomments">
513
+ <a href='http://twitter.com/admsch' rel='external nofollow' class='url'>Adam Scheuring (@admsch)</a> on <a href="http://hackaday.com/2013/04/23/otm-02-is-a-3d-printed-wristwatch/comment-page-1/#comment-996993">OTM-02 is a 3D printed&nbsp;wristwatch</a> </li>
514
+ <li class="recentcomments">
515
+ JoSSte on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-996990">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
516
+ </ul>
517
+ </div></div>
518
+ <div id="calendar-2" class="widget widget_calendar"><div class="widget-wrap"><h4 class="widgettitle">Find Hacks by Date</h4>
519
+ <div id="calendar_wrap"><table id="wp-calendar">
520
+ <caption>April 2013</caption>
521
+ <thead>
522
+ <tr>
523
+ <th scope="col" title="Sunday">S</th>
524
+ <th scope="col" title="Monday">M</th>
525
+ <th scope="col" title="Tuesday">T</th>
526
+ <th scope="col" title="Wednesday">W</th>
527
+ <th scope="col" title="Thursday">T</th>
528
+ <th scope="col" title="Friday">F</th>
529
+ <th scope="col" title="Saturday">S</th>
530
+ </tr>
531
+ </thead>
532
+
533
+ <tfoot>
534
+ <tr>
535
+ <td colspan="3" id="prev"><a href="http://hackaday.com/2013/03/" title="View posts for March 2013">&laquo; Mar</a></td>
536
+ <td class="pad">&nbsp;</td>
537
+ <td colspan="3" id="next" class="pad">&nbsp;</td>
538
+ </tr>
539
+ </tfoot>
540
+
541
+ <tbody>
542
+ <tr>
543
+ <td colspan="1" class="pad">&nbsp;</td><td><a href="http://hackaday.com/2013/04/01/" title="Hackaday&#8217;s very first Kickstarter&nbsp;campaign, Doctor Who-style&nbsp;WiFi, Kindle weather and recycling&nbsp;display, Windmill made from washing machine, 555&nbsp;chip, SNES headphones scream out for Bluetooth&nbsp;control, How-to: turn on a light&nbsp;bulb">1</a></td><td><a href="http://hackaday.com/2013/04/02/" title="An EQ display for a pedal&nbsp;board, Dual displays on a Playstation&nbsp;2, Ask Hackaday: Hacking lingo&nbsp;fails, Cooling a photomultiplier&nbsp;tube, Hackerspace tour: Arch Reactor in St. Louis&nbsp;Missouri, Adafruit launches educational show aimed at&nbsp;kids, CNC Tic Tac&nbsp;Toe, Building a vehicle parking&nbsp;camera, April Fools&#8217; project teaches coworkers not to touch your&nbsp;stuff, SenseLamp automates rooms by replacing light&nbsp;fixtures">2</a></td><td><a href="http://hackaday.com/2013/04/03/" title="Embedded web server is all about clever&nbsp;formatting, Powering the Oculus Rift with&nbsp;USB, Upgrading a router with impeccable soldering&nbsp;skills, Homebuilt Laser Cutter&nbsp;Ideas, Building a&nbsp;Theremincello, Microscope ring light with a number of different&nbsp;features, Hall effect limit switches for a 3D&nbsp;printer, Adding an optical mouse sensor to an autonomous&nbsp;vehicle">3</a></td><td><a href="http://hackaday.com/2013/04/04/" title="Retrotechtacular: The Fourier&nbsp;Series, MP3/USB/Aux hack hidden behind cassette&nbsp;facade, Pranking a hackerspace IRC for April Fool&#8217;s&nbsp;Day, Turning an easter egg hunt into a fox&nbsp;hunt, Wireless Temperature Control for a&nbsp;Microbrewery, Melting Metal with a DIY Foundry&nbsp;Furnace, Top 10 Hacking Failures in movies: part&nbsp;2, Steampunk theremin&nbsp;goggles, High speed circuit design for quantum physics light&nbsp;sensing, Home security hardware makes you the monitoring&nbsp;service">4</a></td><td><a href="http://hackaday.com/2013/04/05/" title="Snowboard goggle HUD displays critical data while falling down a&nbsp;mountain, Electric tricycle build log is like hacker&nbsp;crack, H-bot style 3D printer moves bed for&nbsp;Z-axis, Stapler hack fastens infinitely large sheets of&nbsp;paper, Light Graffiti with Servos and&nbsp;Python">5</a></td><td><a href="http://hackaday.com/2013/04/06/" title="Fixing the worst video game ever: E.T. for Atari&nbsp;2600, Rolling your own minimal USB to serial Arduino&nbsp;programmer, Making PLA stick to a 3D printer build platform by using hairspray or an acetone ABS&nbsp;slurry">6</a></td>
544
+ </tr>
545
+ <tr>
546
+ <td><a href="http://hackaday.com/2013/04/07/" title="Acoustic bass guitar uses water jug and two&nbsp;strings, Solar powered robot mows your lawn while you chill&nbsp;indoors, Hackaday Links: Sunday, April 7th,&nbsp;2013">7</a></td><td><a href="http://hackaday.com/2013/04/08/" title="Another way to look at&nbsp;Charlieplexing, Combo lock uses relays and logic&nbsp;gates, Yamaha SW60XG hack lets you use it as a standalone MIDI&nbsp;device">8</a></td><td><a href="http://hackaday.com/2013/04/09/" title="Synthesizing graphene in your basement&nbsp;laboratory, The RedBull creation contest&nbsp;begins!, Recurve bow make from wood and&nbsp;skis, Wall wart computer&nbsp;mouse">9</a></td><td><a href="http://hackaday.com/2013/04/10/" title="Hacker sends this through the mail to record a video of the&nbsp;process, MIDI pedal project looks as good as it&nbsp;sounds, Perpetual&nbsp;pong">10</a></td><td><a href="http://hackaday.com/2013/04/11/" title="Snowboard propulsion system motors you through the&nbsp;flats, Guitar EQ levels trigger the stage&nbsp;lights, Top 10 best hacking scenes in&nbsp;movies, Automating a mechanical&nbsp;typewriter, Hacking the Oculus Rift: the&nbsp;Oculight">11</a></td><td><a href="http://hackaday.com/2013/04/12/" title="Jeep Wrangler gets pressurized water right out of the&nbsp;bumper, Horribly complicated electric guitar&nbsp;keyboard, Generating electricity from&nbsp;alcohol">12</a></td><td><a href="http://hackaday.com/2013/04/13/" title="Network-controlled fireworks&nbsp;launcher, Working 3D printed stepper&nbsp;motor, SqueezeBerry: a Raspberri Pi powered Squeezebox&nbsp;appliance">13</a></td>
547
+ </tr>
548
+ <tr>
549
+ <td><a href="http://hackaday.com/2013/04/14/" title="Teaching a computer to play Mario&#8230; seemingly through&nbsp;voodoo, Building a replacement for a broken dehumidifier&nbsp;controller, Hackaday Links: Sunday, April 14th,&nbsp;2013">14</a></td><td><a href="http://hackaday.com/2013/04/15/" title="Glowing Easter eggs more fun than a dye&nbsp;job, [FlorianH] shows off MinimaBL, the next generation of his quadcopter&nbsp;project, Original hardware for fifteen consoles jammed into recently completed Project&nbsp;Unity">15</a></td><td><a href="http://hackaday.com/2013/04/16/" title="Tube radio husk gets a web radio&nbsp;transplant, Building a kegerator with visual&nbsp;style, Hacked together Mac isn&#8217;t a&nbsp;hackintosh">16</a></td><td><a href="http://hackaday.com/2013/04/17/" title="Hackerspace security system brings RFID, video feedback, and automatic&nbsp;doors, Apple MagSafe cord&nbsp;repair, 3D Printing sensor mounts for the Oculus&nbsp;Rift, Upgrade a toy keyboard&#8217;s tone&nbsp;production">17</a></td><td><a href="http://hackaday.com/2013/04/18/" title="Hidden servo automates slat-style window&nbsp;blinds, Semi-automatic pick and place&nbsp;machine, Living night light with glowing&nbsp;algae, Pulse Oximeter from LM324, LED, and&nbsp;Photodiode">18</a></td><td><a href="http://hackaday.com/2013/04/19/" title="Measuring the lifespan of&nbsp;LEGO, Replace your project power supplies with recycled Li-Ion cells and a switching&nbsp;regulator, Asynchronous fireflies use few&nbsp;parts">19</a></td><td><a href="http://hackaday.com/2013/04/20/" title="This piggy bank is our stock&nbsp;broker, GUI window manager on an AVR&nbsp;chip, Mood lamp/notifier uses neat modular PCB&nbsp;design">20</a></td>
550
+ </tr>
551
+ <tr>
552
+ <td><a href="http://hackaday.com/2013/04/21/" title="3D printing some sweet&nbsp;music, Drop-in pcb makes Nintendo Four Score a USB&nbsp;joystick, Hackaday Links: Sunday, April 21st,&nbsp;2013">21</a></td><td><a href="http://hackaday.com/2013/04/22/" title="Automatic tubular bells given a MIDI interface&nbsp;too, Connect a Retina display to a regular&nbsp;computer, 20 pounds and a gut feeling yields a configurable Rubidium atomic clock&nbsp;source">22</a></td><td><a href="http://hackaday.com/2013/04/23/" title="Console radio given new life with a WiFi router&nbsp;retrofit, What are the best hacking&nbsp;documentaries?, OTM-02 is a 3D printed&nbsp;wristwatch, Rattle generator is a new type of dynamo for a&nbsp;bicycle">23</a></td><td id="today">24</td><td>25</td><td>26</td><td>27</td>
553
+ </tr>
554
+ <tr>
555
+ <td>28</td><td>29</td><td>30</td>
556
+ <td class="pad" colspan="4">&nbsp;</td>
557
+ </tr>
558
+ </tbody>
559
+ </table></div></div></div>
560
+ <div id=virurl>
561
+ <!-- BEGIN - VIRURL Widget - iFrame Embed Code -->
562
+ <iframe style="border: none; margin: 0; padding: 0; width: 300px; height: 600px;" src="https://www.virurl.com/iframe_widget?t=hackaday&l=5&category=Tech&w=23&u=147555"
563
+ width="300" height="600" scrolling="no" >
564
+ </iframe>
565
+ <!-- END - VIRURL Widget - iFrame Embed Code -->
566
+ </div>
567
+ <br />
568
+ <br />
569
+ <div id=tl_ad_bottom>
570
+ <script type="text/javascript"><!--
571
+ google_ad_client = "ca-pub-1812638130783065";
572
+ /* Hackaday sidebar wide skyscraper */
573
+ google_ad_slot = "1587378096";
574
+ google_ad_width = 160;
575
+ google_ad_height = 600;
576
+ google_ad_region = "test";
577
+ //-->
578
+ </script>
579
+ <script type="text/javascript"
580
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
581
+ </script>
582
+ </div>
583
+
584
+
585
+ <br />
586
+
587
+
588
+
589
+
590
+
591
+
592
+ </div> </div><!-- end #content-sidebar-wrap -->
593
+ </div><!-- end .wrap --></div><!-- end #inner --><div id="footer" class="footer"><div class="wrap"><div class="gototop"><p><a href="#wrap" rel="nofollow">Return to top of page</a></p></div><div class="creds"><p>Copyright &copy; 2013 &middot; <a href="http://www.studiopress.com/" title="Genesis Framework">Genesis Framework</a> &middot; <a href="http://wordpress.org/" title="WordPress">WordPress</a> &middot; <a href="http://hackadaycom.wordpress.com/wp-login.php">Log in</a></p></div></div><!-- end .wrap --></div><!-- end #footer -->
594
+ <script type="text/javascript">
595
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
596
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
597
+ </script>
598
+ <script type="text/javascript">
599
+ var pageTracker = _gat._getTracker("UA-2201445-6");
600
+ pageTracker._trackPageview();
601
+ </script>
602
+ <!-- Start Quantcast tag -->
603
+ <script type="text/javascript">
604
+ _qoptions={
605
+ qacct:"p-cc6zkdHuZwUDM"
606
+ };
607
+ </script>
608
+ <script type="text/javascript"
609
+ src="http://edge.quantserve.com/quant.js"></script>
610
+ <noscript>
611
+ <img src="http://pixel.quantserve.com/pixel/p-cc6zkdHuZwUDM.gif"
612
+ style="display: none;" border="0" height="1" width="1"
613
+ alt="Quantcast"/>
614
+ </noscript></div><!-- end #wrap -->
615
+
616
+ <script type="text/javascript">
617
+ var _qevents = _qevents || [], wpcomQuantcastData = {"qacct":"p-18-mFEk4J448M","labels":",language.en,type.wpcom,vip.hackadaycom"};
618
+ function wpcomQuantcastPixel( labels, options ) {
619
+ var i, defaults = wpcomQuantcastData, data = { event: 'ajax' };
620
+
621
+ labels = labels || '';
622
+ options = options || {};
623
+
624
+ if ( typeof labels != 'string' )
625
+ options = labels;
626
+
627
+ for ( i in defaults ) {
628
+ data[i] = defaults[i];
629
+ }
630
+
631
+ for ( i in options ) {
632
+ data[i] = options[i];
633
+ }
634
+
635
+ if ( data.labels ) {
636
+ data.labels += ',' + labels;
637
+ } else {
638
+ data.labels = labels;
639
+ }
640
+
641
+ _qevents.push( data );
642
+ };
643
+ (function() {var elem = document.createElement('script');elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js";elem.async = true;elem.type = "text/javascript";var scpt = document.getElementsByTagName('script')[0];scpt.parentNode.insertBefore(elem, scpt); })();
644
+ _qevents.push( wpcomQuantcastData );
645
+ </script>
646
+ <noscript><div style="display: none;"><img src="//pixel.quantserve.com/pixel/p-18-mFEk4J448M.gif?labels=%2Clanguage.en%2Ctype.wpcom%2Cvip.hackadaycom" height="1" width="1" alt="" /></div></noscript>
647
+
648
+
649
+ <!-- /// LOAD CHARTBEAT /// -->
650
+ <script type="text/javascript">
651
+ var _sf_async_config={};
652
+ _sf_async_config.uid = 2021;
653
+ _sf_async_config.useCanonical = true;
654
+
655
+ (function(){
656
+ function loadChartbeat() {
657
+ window._sf_endpt=(new Date()).getTime();
658
+ var e = document.createElement('script');
659
+ e.setAttribute('language', 'javascript');
660
+ e.setAttribute('type', 'text/javascript');
661
+ e.setAttribute('src',
662
+ (("https:" == document.location.protocol) ? "https://s3.amazonaws.com/" : "http://") +
663
+ "static.chartbeat.com/js/chartbeat.js");
664
+ document.body.appendChild(e);
665
+ }
666
+ var oldonload = window.onload;
667
+ window.onload = (typeof window.onload != 'function') ?
668
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
669
+ })();
670
+ </script>
671
+ <div style="display:none">
672
+ </div>
673
+ <script type='text/javascript' src='http://s2.wp.com/_static/??-eJylzMsOREAQRuEXMoqgEwvxLC4/qjPVOl3dZh4fO3vrk+/Qz3+m3UW4SFZpxsET/D+3mtEjxQ0CJR8gnIRWOCgrfXm8lcAl0uQRFtbtlR3Cqtegl66smto0xhStPQEw5Dy+'></script>
674
+ <script type="text/javascript">
675
+ // <![CDATA[
676
+ (function() {
677
+ try{
678
+ if ( window.external &&'msIsSiteMode' in window.external) {
679
+ if (window.external.msIsSiteMode()) {
680
+ var jl = document.createElement('script');
681
+ jl.type='text/javascript';
682
+ jl.async=true;
683
+ jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
684
+ var s = document.getElementsByTagName('script')[0];
685
+ s.parentNode.insertBefore(jl, s);
686
+ }
687
+ }
688
+ }catch(e){}
689
+ })();
690
+ // ]]>
691
+ </script><script src="http://s.stats.wordpress.com/w.js?21" type="text/javascript"></script>
692
+ <script type="text/javascript">
693
+ st_go({'blog':'4779443','v':'wpcom','tz':'-7','user_id':'0','subd':'hackadaycom'});
694
+ function st_vt() {var x=document.createElement("img");x.src="http://stats.wordpress.com/g.gif?blog=4779443&v=wpcomvt&tz=-7&user_id=0&subd=hackadaycom&rand="+Math.random();}
695
+ ex_go({'crypt':'UE40eW5QN0p8M2Y/RE1BNmNJfGhxNCVxUDExYmtXRThKbHcwXTdETWI1alhvb1oseHImN101ZFpEakVpYjlQYVFLYzBaVHRtPz0wXS9bVlFpZ3c1Qn5KSThLNS9lSHNGOE1IJk9+N3xFNWxyT2x+MUpnR1dJcFZJZWpsZ1ByYl0wbURBT3kxbjZiRkEtckViVnZnaF15Q2xdQ0pINU5pMDEmUEIwRklhfDVHXVtaaHNkUmR0TEhMTHpzYnRHXUJMRUY4d1tTfEksLjIrMlslK2wxMissX3AyX3RYW0szK0t1eFpDMlZiU1ArRU9CN2JXRC0sR1REWVBqcm1uMD0='});
696
+ addLoadEvent(function(){linktracker_init('4779443',0);});
697
+ </script>
698
+ <noscript><img src="http://stats.wordpress.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
699
+ <script type="text/javascript">
700
+ // Trigger Quantcast pixel for each Infinite Scroll post load
701
+ if ( 'function' === typeof( jQuery ) ) {
702
+ jQuery( document.body ).on( 'post-load', function() {
703
+ if ( 'function' === typeof( wpcomQuantcastPixel ) )
704
+ wpcomQuantcastPixel();
705
+ } );
706
+ }
707
+ </script>
708
+ </body>
709
+ </html>