docparser 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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,792 @@
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
+ <!--
4
+ generated 206 seconds ago
5
+ generated in 0.298 seconds
6
+ served from batcache in 0.002 seconds
7
+ expires in 94 seconds
8
+ -->
9
+ <head profile="http://gmpg.org/xfn/11">
10
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
11
+ <title>Hack a Day — Fresh hacks every day</title>
12
+ <meta name="description" content="Fresh hacks every day" />
13
+ <meta name="robots" content="noodp,noydir" />
14
+ <link rel="Shortcut Icon" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/images/favicon.ico?m=1353160633g" type="image/x-icon" />
15
+ <link rel="stylesheet" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/style.css?m=1363789849g" type="text/css" media="screen" />
16
+
17
+ <meta name="description" content="Fresh hacks every day" />
18
+ <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" />
19
+ <script src='http://r-login.wordpress.com/remote-login.php?action=js&amp;host=hackaday.com&amp;id=4779443&amp;t=1366800924&amp;back=hackaday.com%2Fpage%2F6%2F' type="text/javascript"></script>
20
+ <script type="text/javascript">
21
+ /* <![CDATA[ */
22
+ if ( 'function' === typeof WPRemoteLogin ) {
23
+ document.cookie = "wordpress_test_cookie=test; path=/";
24
+ if ( document.cookie.match( /(;|^)\s*wordpress_test_cookie\=/ ) ) {
25
+ WPRemoteLogin();
26
+ }
27
+ }
28
+ /* ]]> */
29
+ </script>
30
+ <link rel="alternate" type="application/rss+xml" title="Hack a Day &raquo; Feed" href="http://feeds2.feedburner.com/hackaday/LgoM" />
31
+ <link rel="alternate" type="application/rss+xml" title="Hack a Day &raquo; Comments Feed" href="http://hackaday.com/comments/feed/" />
32
+ <script type="text/javascript">
33
+ /* <![CDATA[ */
34
+ function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){oldonload();func();}}}
35
+ /* ]]> */
36
+ </script>
37
+ <link rel="canonical" href="http://hackaday.com/" />
38
+ <link rel='stylesheet' id='all-css-0' href='http://s0.wp.com/_static/??-eJzTLy/QTc7PK0nNK9HPLdUtyClNz8wr1s/JzE4t1s9KLSlITM7WBfP0kouLdfSxKy/ILy7RTctJzCzSLy6pzEklVm1GYlFmXjqMxtBVkpGaC3RGhol+ek5+UmIOSIF9rq2hsZmZuYmxqbFlFgANUUYu' type='text/css' media='all' />
39
+ <script type='text/javascript'>
40
+ /* <![CDATA[ */
41
+ var SafeCommentsAjax = {"ajaxurl":"http:\/\/hackaday.com\/wp-admin\/admin-ajax.php"};
42
+ /* ]]> */
43
+ </script>
44
+ <script type='text/javascript' src='http://s0.wp.com/_static/??-eJyFz0sKAjEMBuALWUsZpjvxLKXGmjp92KQz6umNogtRFAJZ5Et+opeqMPup74B0lDp1aJdnW0da6V9AJQzNMbygL5kh893VQpyAyIVv0/cYzDPC8pdF4Or8UTUgvH5c5QNInp6x6jr1gJk0uT2IrqWxsJSEPX5w0Z1lfZs2ZrB2NIOxY7wBpfljQw=='></script>
45
+ <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://hackadaycom.wordpress.com/xmlrpc.php?rsd" />
46
+ <link rel="shortcut icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" sizes="16x16" />
47
+ <link rel="icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" sizes="16x16" />
48
+ <link rel="apple-touch-icon-precomposed" href="http://1.gravatar.com/blavatar/5560f98f805877b0e332f191cb9e0af3?s=114" />
49
+ <link rel='openid.server' href='http://hackadaycom.wordpress.com/?openidserver=1' />
50
+ <link rel='openid.delegate' href='http://hackadaycom.wordpress.com/' />
51
+ <link rel="search" type="application/opensearchdescription+xml" href="http://hackaday.com/osd.xml" title="Hack a Day" />
52
+ <link rel="search" type="application/opensearchdescription+xml" href="http://wordpress.com/opensearch.xml" title="WordPress.com" />
53
+ <style>
54
+ /* <![CDATA[ */
55
+ /* Block: reblog */
56
+
57
+ .reblog-from img { margin: 0 10px 0 0; vertical-align: middle; padding: 0; border: 0; }
58
+ .reblogger-note img.avatar { float: left; padding: 0; border: 0; }
59
+ .reblogger-note-content { margin: 0 0 20px; }
60
+ .reblog-post .wpcom-enhanced-excerpt-content { border-left: 3px solid #eee; padding-left: 15px; }
61
+ .reblog-post ul.thumb-list { display: block; list-style: none; margin: 2px 0; padding: 0; clear: both; }
62
+ .reblog-post ul.thumb-list li { display: inline; margin: 0; padding: 0 1px; border: 0; }
63
+ .reblog-post ul.thumb-list li a { margin: 0; padding: 0; border: 0; }
64
+ .reblog-post ul.thumb-list li img { margin: 0; padding: 0; border: 0; }
65
+
66
+ .reblog-post .wpcom-enhanced-excerpt { clear: both; }
67
+
68
+ .reblog-post .wpcom-enhanced-excerpt address,
69
+ .reblog-post .wpcom-enhanced-excerpt li,
70
+ .reblog-post .wpcom-enhanced-excerpt h1,
71
+ .reblog-post .wpcom-enhanced-excerpt h2,
72
+ .reblog-post .wpcom-enhanced-excerpt h3,
73
+ .reblog-post .wpcom-enhanced-excerpt h4,
74
+ .reblog-post .wpcom-enhanced-excerpt h5,
75
+ .reblog-post .wpcom-enhanced-excerpt h6,
76
+ .reblog-post .wpcom-enhanced-excerpt p { font-size: 100% !important; }
77
+
78
+ .reblog-post .wpcom-enhanced-excerpt blockquote,
79
+ .reblog-post .wpcom-enhanced-excerpt pre,
80
+ .reblog-post .wpcom-enhanced-excerpt code,
81
+ .reblog-post .wpcom-enhanced-excerpt q { font-size: 98% !important; }
82
+
83
+
84
+ /* ]]> */
85
+ </style>
86
+
87
+ <script type="text/javascript">var _sf_startpt=(new Date()).getTime()</script>
88
+ <style>
89
+ .wpcom-related-posts ul li {
90
+ list-style-type: none;
91
+ display: inline-block;
92
+ }
93
+ </style>
94
+ <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
95
+ <style type="text/css">
96
+ .recentcomments a {
97
+ display: inline !important;
98
+ padding: 0 !important;
99
+ margin: 0 !important;
100
+ }
101
+
102
+ table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar {
103
+ border: 0px;
104
+ margin: 0;
105
+ }
106
+
107
+ table.recentcommentsavatartop a, table.recentcommentsavatarend a {
108
+ border: 0px !important;
109
+ background-color: transparent !important;
110
+ }
111
+
112
+ td.recentcommentsavatarend, td.recentcommentsavatartop {
113
+ padding: 0px 0px 1px 0px;
114
+ margin: 0px;
115
+ }
116
+
117
+ td.recentcommentstextend {
118
+ border: none !important;
119
+ padding: 0px 0px 2px 10px;
120
+ }
121
+
122
+ .rtl td.recentcommentstextend {
123
+ padding: 0px 10px 2px 0px;
124
+ }
125
+
126
+ td.recentcommentstexttop {
127
+ border: none !important;
128
+ padding: 0px 0px 0px 10px;
129
+ }
130
+
131
+ .rtl td.recentcommentstexttop {
132
+ padding: 0px 10px 0px 0px;
133
+ }
134
+ </style>
135
+ <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>
136
+
137
+ <script>jQuery(document).ready(function($) {
138
+ $("cswap li a").click(function() {
139
+ $("link").attr("href",$(this).attr('rel'));
140
+ return false;
141
+ });
142
+ });</script>
143
+ <meta name="google-site-verification" content="v0_F4q2HixEv6wrQCEKBEbp2Wuj0oI9ywwaN6aoV0JE" />
144
+ </head>
145
+ <body class="home blog paged paged-6 typekit-enabled header-image content-sidebar highlander-enabled highlander-light">
146
+
147
+ <div id="fb-root"></div>
148
+ <script>(function(d, s, id) {
149
+ var js, fjs = d.getElementsByTagName(s)[0];
150
+ if (d.getElementById(id)) return;
151
+ js = d.createElement(s); js.id = id;
152
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
153
+ fjs.parentNode.insertBefore(js, fjs);
154
+ }(document, 'script', 'facebook-jssdk'));</script>
155
+ <div id="wrap">
156
+ <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">
157
+ <script type="text/javascript"><!--
158
+ google_ad_client = "ca-pub-1812638130783065";
159
+ /* Hackaday, 728x90, created 4/26/08, Leaderboard */
160
+ google_ad_slot = "4036713767";
161
+ google_ad_width = 728;
162
+ google_ad_height = 90;
163
+ //-->
164
+ </script>
165
+ <script type="text/javascript"
166
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
167
+ </script>
168
+ </div>
169
+ <div id="adslice">
170
+
171
+ <script type="text/javascript"><!--
172
+ google_ad_client = "pub-1812638130783065";
173
+ /* Hackaday, 728x15, created 4/26/08, AdSlice */
174
+ google_ad_slot = "0246324944";
175
+ google_ad_width = 728;
176
+ google_ad_height = 15;
177
+ //-->
178
+ </script>
179
+
180
+ <script type="text/javascript"
181
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
182
+ </script>
183
+
184
+ </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>
185
+ <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>
186
+ <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>
187
+ <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>
188
+ <li class="right search">
189
+ <form method="get" class="searchform" action="http://hackaday.com/" >
190
+
191
+ <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;';}" />
192
+ <input type="submit" class="searchsubmit" value="Search" />
193
+ </form>
194
+ </li></ul></div><!-- end .wrap --></div><div id="inner"><div class="wrap"> <div id="content-sidebar-wrap">
195
+ <div id="content" class="hfeed">
196
+ <div class="post-97524 post type-post status-publish format-standard hentry category-raspberry-pi-2 tag-battery tag-cigarette-lighter tag-fireworks tag-launcher tag-relay tag-rpi">
197
+
198
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/04/13/network-controlled-fireworks-launcher/" title="Network-controlled fireworks&nbsp;launcher" rel="bookmark">Network-controlled fireworks&nbsp;launcher</a></h2>
199
+
200
+ <div class="post-info"><span class="date published time" title="2013-04-13T06:01:32+00:00">April 13, 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/04/13/network-controlled-fireworks-launcher/#comments">16 Comments</a></span> </div> <div class="entry-content">
201
+ <p><img class="aligncenter size-full wp-image-97526" alt="rpi-fireworks-launcher" src="http://hackadaycom.files.wordpress.com/2013/04/rpi-fireworks-launcher.png?w=542&#038;h=404" width="542" height="404" /></p>
202
+ <p>[Thomas] and his friends wanted to ring in the new year by setting off some fireworks. To keep a safe distance and have a little fun they built <a href="http://ix.residuum.org/hardware/rampe.html">this network controller launcher</a> (<a href="http://translate.google.com/translate?sl=auto&amp;tl=en&amp;js=n&amp;prev=_t&amp;hl=en&amp;ie=UTF-8&amp;eotf=1&amp;u=http%3A%2F%2Fix.residuum.org%2Fhardware%2Frampe.html">translated</a>).</p>
203
+ <p>the image on the left shows the build in its unused and pristine state. But by the end of the celebration it look a bit melted and burnt. Still, for the first revision of the system it ended up working pretty well.</p>
204
+ <p>We&#8217;ve seen several <a href="http://hackaday.com/2012/07/04/a-resistors-fiery-death-used-to-launch-fireworks/">remote fireworks launchers that burn up resistors to light the fuses</a>. But this system is much more reusable. The image on the right shows the heating elements which light the fuses. Younger readers might have no idea what they&#8217;re looking at, but every automobile used to come with at least one of these electric cigarette lighters. Just drive 12V through them and they get burning hot relatively quickly. That&#8217;s where the car battery on the base comes into play. It is connected to the lighters using some mechanical relays.</p>
205
+ <p>In the food container attached to the side of the launcher you&#8217;ll find a Raspberry Pi which provides the web connection for the system. [Thomas] wrote code which uses a webpage with some bomb icons as buttons. Check out the video after the break to see him demonstrate how fast one of these lighters will glow red after pressing a button on his smart phone.</p>
206
+ <p> <a href="http://hackaday.com/2013/04/13/network-controlled-fireworks-launcher/#more-97524" class="more-link">[Read more...]</a></p>
207
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
208
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/raspberry-pi-2/" title="View all posts in Raspberry Pi" rel="category tag">Raspberry Pi</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/battery/" rel="tag">battery</a>, <a href="http://hackaday.com/tag/cigarette-lighter/" rel="tag">cigarette lighter</a>, <a href="http://hackaday.com/tag/fireworks/" rel="tag">fireworks</a>, <a href="http://hackaday.com/tag/launcher/" rel="tag">launcher</a>, <a href="http://hackaday.com/tag/relay/" rel="tag">relay</a>, <a href="http://hackaday.com/tag/rpi/" rel="tag">RPi</a></span> </div>
209
+ </div><!-- end .postclass -->
210
+ <div class="post-97519 post type-post status-publish format-standard hentry category-green-hacks tag-alcohol tag-candle tag-flame tag-generator tag-peltier tag-peltier-cooler tag-stove tag-thermoelectric">
211
+
212
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/04/12/generating-electricity-from-alcohol/" title="Generating electricity from&nbsp;alcohol" rel="bookmark">Generating electricity from&nbsp;alcohol</a></h2>
213
+
214
+ <div class="post-info"><span class="date published time" title="2013-04-12T14:01:45+00:00">April 12, 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/04/12/generating-electricity-from-alcohol/#comments">50 Comments</a></span> </div> <div class="entry-content">
215
+ <p><img class="aligncenter size-full wp-image-97520" alt="thermoelectric-generator-lamp" src="http://hackadaycom.files.wordpress.com/2013/04/thermoelectric-generator-lamp.jpg?w=500&#038;h=375" width="500" height="375" /></p>
216
+ <p>Here&#8217;s <a href="http://x2jiggy.com/blog/2013/4/3/thermoelectric-generator-lamp.html">a thermoelectric generator</a> which [x2Jiggy] built. The concept uses heat from a flame, biased against cooler temperatures produced by that huge heat sink making up the top portion of the build to produce electricity via the Peltier effect.</p>
217
+ <p>The build is passively cooled, using a sync assembly that takes advantage of heat pipes to help increase the heat dissipation. A nearly flat heat sink makes up the mounting surface for the hot side, which faces down toward a flame driving the generator. [x2Jiggy] started the project by using a can, wick, and olive oil as the heat source. He managed to get about 2V out of the system with this method. What you see here is the second version. It swaps out the olive oil lamp for <a href="http://hackaday.com/2009/10/11/stove-built-from-beer-can-hobos-rejoice/">an alcohol stove</a>. The cans with holes punched in them act as a wind screen while also providing a stable base. This rendition produces about 3V, but it doesn&#8217;t sound like there are any precise measurements of what it can do under load.</p>
218
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
219
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/green-hacks/" title="View all posts in green hacks" rel="category tag">green hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/alcohol/" rel="tag">alcohol</a>, <a href="http://hackaday.com/tag/candle/" rel="tag">candle</a>, <a href="http://hackaday.com/tag/flame/" rel="tag">flame</a>, <a href="http://hackaday.com/tag/generator/" rel="tag">generator</a>, <a href="http://hackaday.com/tag/peltier/" rel="tag">peltier</a>, <a href="http://hackaday.com/tag/peltier-cooler/" rel="tag">peltier cooler</a>, <a href="http://hackaday.com/tag/stove/" rel="tag">stove</a>, <a href="http://hackaday.com/tag/thermoelectric/" rel="tag">thermoelectric</a></span> </div>
220
+ </div><!-- end .postclass -->
221
+ <div class="post-97501 post type-post status-publish format-standard hentry category-musical-hacks category-peripherals-hacks tag-arduino tag-guitar tag-keyboard tag-midi tag-relay tag-usb">
222
+
223
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/04/12/horribly-complicated-electric-guitar-keyboard/" title="Horribly complicated electric guitar&nbsp;keyboard" rel="bookmark">Horribly complicated electric guitar&nbsp;keyboard</a></h2>
224
+
225
+ <div class="post-info"><span class="date published time" title="2013-04-12T12:01:07+00:00">April 12, 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/04/12/horribly-complicated-electric-guitar-keyboard/#comments">31 Comments</a></span> </div> <div class="entry-content">
226
+ <p><img class="aligncenter size-large wp-image-97502" alt="the-email-gutar" src="http://hackadaycom.files.wordpress.com/2013/04/the-email-gutar.png?w=580&#038;h=340" width="580" height="340" /></p>
227
+ <p>Gutarist, hacker, and mustache enthusiast [David Neevel] brought together way too many pieces of hardware in order to <a href="http://www.youtube.com/watch?v=0Er9W_oZxvY">use his electric guitar as a computer keyboard</a>.</p>
228
+ <p>So let&#8217;s dig into the house of cards he built for the project. It starts off with the guitar which has been fitted with an additional pickup to interface with a Roland GR-33 synthesizer pedal. That outputs a MIDI signal, which many hackers would have connected to the computer and parsed with a simple script. But not [David], he connected it to an Arduino via an optisolator. Well that&#8217;s not too ridiculous, right? Don&#8217;t you think he&#8217;ll just parse the MIDI signals and push them to the computer via the Arduino&#8217;s USB port? Wrong! He translates the MIDI signals into combinations for a big relay board which is emulating the key matrix of an old USB keyboard. But as you can see in the demo video after the jump it works quite well.</p>
229
+ <p>If you&#8217;re more of the drumming sort there&#8217;s <a href="http://hackaday.com/2012/10/25/typing-with-a-midi-drum-set/">an electric drum set version of this hack</a> too.</p>
230
+ <p> <a href="http://hackaday.com/2013/04/12/horribly-complicated-electric-guitar-keyboard/#more-97501" class="more-link">[Read more...]</a></p>
231
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
232
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/musical-hacks/" title="View all posts in musical hacks" rel="category tag">musical hacks</a>, <a href="http://hackaday.com/category/peripherals-hacks/" title="View all posts in peripherals hacks" rel="category tag">peripherals 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/guitar/" rel="tag">guitar</a>, <a href="http://hackaday.com/tag/keyboard/" rel="tag">keyboard</a>, <a href="http://hackaday.com/tag/midi/" rel="tag">midi</a>, <a href="http://hackaday.com/tag/relay/" rel="tag">relay</a>, <a href="http://hackaday.com/tag/usb/" rel="tag">usb</a></span> </div>
233
+ </div><!-- end .postclass -->
234
+ <div align="center">
235
+
236
+
237
+
238
+ <script type="text/javascript"><!--
239
+
240
+ google_ad_client = "ca-pub-1812638130783065";
241
+
242
+ /* Hackaday, 300x250, created 4/26/08, MedRect main column */
243
+
244
+ google_ad_slot = "3449215672";
245
+
246
+ google_ad_width = 300;
247
+
248
+ google_ad_height = 250;
249
+
250
+ //-->
251
+
252
+ </script>
253
+
254
+ <script type="text/javascript"
255
+
256
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
257
+
258
+ </script>
259
+
260
+
261
+
262
+ </div> <div class="post-97497 post type-post status-publish format-standard hentry category-transportation-hacks tag-bumper tag-jeep tag-pressurized tag-pump tag-water tag-wrangler">
263
+
264
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/04/12/jeep-wrangler-gets-pressurized-water-right-out-of-the-bumper/" title="Jeep Wrangler gets pressurized water right out of the&nbsp;bumper" rel="bookmark">Jeep Wrangler gets pressurized water right out of the&nbsp;bumper</a></h2>
265
+
266
+ <div class="post-info"><span class="date published time" title="2013-04-12T06:01:27+00:00">April 12, 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/04/12/jeep-wrangler-gets-pressurized-water-right-out-of-the-bumper/#comments">116 Comments</a></span> </div> <div class="entry-content">
267
+ <p><img class="aligncenter size-large wp-image-97498" alt="jeep-pressurized-water" src="http://hackadaycom.files.wordpress.com/2013/04/jeep-pressurized-water.png?w=580&#038;h=320" width="580" height="320" /></p>
268
+ <p>[Ed] got pretty creative with a hack that <a href="http://www.wranglerforum.com/f33/write-up-pressurized-running-water-on-jeep-using-stock-bumper-as-tank-233410.html">adds a pressurized water tap to his Jeep Wrangler</a>. The tap on the rear passenger bumper now lets him hose off the vehicle after mudding, rinse his SCUBA gear after a dive, and just generally comes in handy.</p>
269
+ <p>If you want running water you&#8217;ve got to have a place to put it. This is actually what sparked the idea for the project. [Ed] noticed that the bumper was hollow and had some drain holes on the bottom. After plugging those and adding a fill hole to the top he found that he had a reservoir for about seven gallons. To get the water out he added a pump deigned to be used on an RV. It&#8217;s got features that make it work perfectly for this application: it runs off of battery voltage, it will turn on and off automatically when the tap is opened based on water pressure, and it will shut itself off if the reservoir runs dry. He designed a bezel to give the spigot a professional look. Just out of frame in the image above is an attachment for pressurized air. His next planned project for the Jeep is to add an air compressor.</p>
270
+ <p>After the break you can see a demo of the installed system, as well as a water pump test.</p>
271
+ <p> <a href="http://hackaday.com/2013/04/12/jeep-wrangler-gets-pressurized-water-right-out-of-the-bumper/#more-97497" class="more-link">[Read more...]</a></p>
272
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
273
+ <div class="post-meta"><span class="categories">Filed Under: <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/bumper/" rel="tag">bumper</a>, <a href="http://hackaday.com/tag/jeep/" rel="tag">Jeep</a>, <a href="http://hackaday.com/tag/pressurized/" rel="tag">pressurized</a>, <a href="http://hackaday.com/tag/pump/" rel="tag">pump</a>, <a href="http://hackaday.com/tag/water/" rel="tag">water</a>, <a href="http://hackaday.com/tag/wrangler/" rel="tag">wrangler</a></span> </div>
274
+ </div><!-- end .postclass -->
275
+ <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">
276
+
277
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/04/11/hacking-the-oculus-rift-the-oculight/" title="Hacking the Oculus Rift: the&nbsp;Oculight" rel="bookmark">Hacking the Oculus Rift: the&nbsp;Oculight</a></h2>
278
+
279
+ <div class="post-info"><span class="date published time" title="2013-04-11T14:46:08+00:00">April 11, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/calebkraft/" class="fn n" title="Caleb Kraft" rel="author">Caleb Kraft</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/04/11/hacking-the-oculus-rift-the-oculight/#comments">20 Comments</a></span> </div> <div class="entry-content">
280
+ <p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='470' height='295' src='http://www.youtube.com/embed/r8FSuxA-cp4?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
281
+ <p>Our <a href="http://hackaday.com/2012/08/17/were-getting-an-oculus-rift-dev-kit/">Oculus Rift</a> finally arrived in the mail. I&#8217;ll spare you my thoughts on the item itself other than to say it is amazing. There are tons of videos to choose from that show people&#8217;s thoughts and reactions, and <a href="http://www.ifixit.com/Teardown/Oculus+Rift+Teardown/13682/1">Ifixit has their usual detailed teardown </a>as well.</p>
282
+ <p>The mod I decided to tackle first was the horizontal peripheral vision lights. The shape of the Oculus means that it feels like you are wearing a skii mask, or diving mask. There are big black borders at the far edges of the sides. It would seem that a simple mod would be to add some RGB LEDs and run a simple ambilight clone.</p>
283
+ <p>I downloaded the <a href="http://learn.adafruit.com/adalight-diy-ambient-tv-lighting">Adalight code</a> and plugged in an RGB LED strip I had sitting around. The rift has some mesh areas at the 4 corners to allow air to move around in there. I took advantage of this so I didn&#8217;t even have to cut into the rift&#8230; yet. I simply strapped the strip to the rift with the proper LEDs shining through the holes.</p>
284
+ <p>The result was decent. Since the LEDs are further back in your peripheral vision than the edge of the screen, it looks like maybe a little light from the surroundings is just &#8220;leaking&#8221; into the headset. It gives the impression of seeing things that are far beyond the edge of the screen.  A better installation, allowing lights all the way up the left and right sides instead of just the corners might yield even better results.</p>
285
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
286
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/featured/" title="View all posts in Featured" rel="category tag">Featured</a>, <a href="http://hackaday.com/category/virtual-reality-2/" title="View all posts in Virtual Reality" rel="category tag">Virtual Reality</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/adaliight/" rel="tag">adaliight</a>, <a href="http://hackaday.com/tag/ambilight/" rel="tag">ambilight</a>, <a href="http://hackaday.com/tag/oculus-rift/" rel="tag">oculus rift</a>, <a href="http://hackaday.com/tag/virtual-reality/" rel="tag">virtual reality</a>, <a href="http://hackaday.com/tag/vr/" rel="tag">vr</a></span> </div>
287
+ </div><!-- end .postclass -->
288
+ <div class="post-97491 post type-post status-publish format-standard hentry category-peripherals-hacks tag-arduino tag-automatic tag-relay tag-string tag-typewriter">
289
+
290
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/04/11/automating-a-mechanical-typewriter/" title="Automating a mechanical&nbsp;typewriter" rel="bookmark">Automating a mechanical&nbsp;typewriter</a></h2>
291
+
292
+ <div class="post-info"><span class="date published time" title="2013-04-11T14:01:31+00:00">April 11, 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/04/11/automating-a-mechanical-typewriter/#comments">27 Comments</a></span> </div> <div class="entry-content">
293
+ <p><img class="aligncenter size-large wp-image-97492" alt="typewriter-driven-by-automotive-door-lock-motors" src="http://hackadaycom.files.wordpress.com/2013/04/typewriter-driven-by-automotive-door-lock-motors.png?w=580&#038;h=389" width="580" height="389" /></p>
294
+ <p><em></em>Check out all the work going on in the cabinet below this typewriter. The hack which <a href="http://vimeo.com/63481843">automates a mechanical typewriter</a>  is for an art installation, but wouldn&#8217;t it be fun to build one of these to use as a résumé printer? It really makes us wish we had an old typewriter sitting around.</p>
295
+ <p>It would have been much easier to patch into an electric typewriter, but we have seen <a href="http://hackaday.com/2010/11/01/typewriter-as-io-lets-you-play-zork/">the string trick used on those as well</a>. In this case a loop of string attaches to the the bar under each key, allowing a pull from below to type the character. An automotive door lock actuator ([Harvey Moon] tells us they&#8217;re not solenoids) connects to the other end of the string for every key. But then you&#8217;ve got to have a way to drive the actuators and that&#8217;s where the protoboard full of forty relays seen to the right comes into play. That image, which was taken from the demo video after the break, shows the board being testing. We&#8217;d guess more wires are added later to multiplex the array as we can&#8217;t figure out how the Arduino manages to drive all forty of them as shown. One thing we are sure about, the completed project looks and sounds amazing!</p>
296
+ <p> <a href="http://hackaday.com/2013/04/11/automating-a-mechanical-typewriter/#more-97491" class="more-link">[Read more...]</a></p>
297
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
298
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/peripherals-hacks/" title="View all posts in peripherals hacks" rel="category tag">peripherals 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/automatic/" rel="tag">automatic</a>, <a href="http://hackaday.com/tag/relay/" rel="tag">relay</a>, <a href="http://hackaday.com/tag/string/" rel="tag">string</a>, <a href="http://hackaday.com/tag/typewriter/" rel="tag">typewriter</a></span> </div>
299
+ </div><!-- end .postclass -->
300
+ <div class="post-97538 post type-post status-publish format-standard hentry category-featured category-news tag-top-10 tag-wins">
301
+
302
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/04/11/top-10-best-hacking-scenes-in-movies/" title="Top 10 best hacking scenes in&nbsp;movies" rel="bookmark">Top 10 best hacking scenes in&nbsp;movies</a></h2>
303
+
304
+ <div class="post-info"><span class="date published time" title="2013-04-11T13:01:41+00:00">April 11, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/calebkraft/" class="fn n" title="Caleb Kraft" rel="author">Caleb Kraft</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/04/11/top-10-best-hacking-scenes-in-movies/#comments">88 Comments</a></span> </div> <div class="entry-content">
305
+ <p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='470' height='295' src='http://www.youtube.com/embed/zzMpUtCyZGM?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
306
+ <p>Geeking out and complaining about inaccuracies is fun. But it is like junk food. Too much is bad for your health. We&#8217;ve done the<a href="http://www.youtube.com/watch?v=Jb5ygQZVqgw"> Top 10 worst portrayals of hacking in movies</a>/TV as well as a <a href="http://www.youtube.com/watch?v=EMCs8HSWoyQ">Part 2</a> due to high demand. Now it is time for the good stuff. Take it in and feel those healthy positive portrayals revitalizing your brain.</p>
307
+ <p>Here are the Top 10 best portrayals of hacking, based off your comments and feedback. Be sure to let us know what we missed, because there are probably some good ones that got left out.</p>
308
+ <p> <a href="http://hackaday.com/2013/04/11/top-10-best-hacking-scenes-in-movies/#more-97538" class="more-link">[Read more...]</a></p>
309
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
310
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/featured/" title="View all posts in Featured" rel="category tag">Featured</a>, <a href="http://hackaday.com/category/news/" title="View all posts in news" rel="category tag">news</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/top-10/" rel="tag">top 10</a>, <a href="http://hackaday.com/tag/wins/" rel="tag">wins</a></span> </div>
311
+ </div><!-- end .postclass -->
312
+ <div class="navigation"><div class="alignleft"><a href="http://hackaday.com/page/7/" >&laquo; Older Posts</a></div><div class="alignright"><a href="http://hackaday.com/page/5/" >Newer Posts &raquo;</a></div></div><!-- end .navigation --> </div><!-- end #content -->
313
+ <div id="sidebar" class="sidebar widget-area">
314
+ <div id=tl_ad>
315
+ <script type="text/javascript"><!--
316
+ google_ad_client = "ca-pub-1812638130783065";
317
+ /* Hackaday, 300x250, created 4/26/08, MedRect sidebar */
318
+ google_ad_slot = "7800245928";
319
+ google_ad_width = 300;
320
+ google_ad_height = 250;
321
+ //-->
322
+ </script>
323
+ <script type="text/javascript"
324
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
325
+ </script>
326
+
327
+ </div>
328
+
329
+
330
+
331
+
332
+
333
+
334
+ <div class="widget">
335
+ <h4>Never Miss a Hack</h4>
336
+ <div class="textwidget">
337
+
338
+ <!-- Place this tag where you want the badge to render. -->
339
+ <div class="g-plus" data-width= "280" data-href="https://plus.google.com/114843073658390316652" data-rel="publisher" data-theme="dark"></div>
340
+ <!-- Place this tag after the last badge tag. -->
341
+ <script type="text/javascript">
342
+ (function() {
343
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
344
+ po.src = 'https://apis.google.com/js/plusone.js';
345
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
346
+ })();
347
+ </script>
348
+
349
+ <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>
350
+
351
+ <a href="https://twitter.com/hackaday" class="twitter-follow-button" data-show-count="true" data-lang="en" data-size="large">Follow @twitter</a>
352
+ <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>
353
+
354
+ <a href="http://feeds2.feedburner.com/hackaday/LgoM" target="_blank"><img src="http://hackadaycom.files.wordpress.com/2012/11/orange.png" border="0"/></a>
355
+ <div class="clear"> </div>
356
+ <!-- Begin MailChimp Signup Form -->
357
+ <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
358
+
359
+ <div id="mc_embed_signup">
360
+ <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>
361
+ <label for="mce-EMAIL">Subscribe to our mailing list for sneak previews and behind the scenes info</label>
362
+ <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
363
+ <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
364
+ </form>
365
+ </div>
366
+
367
+ <!--End mc_embed_signup-->
368
+ </div>
369
+ </div>
370
+
371
+ <div id="categories-2" class="widget widget_categories"><div class="widget-wrap"><h4 class="widgettitle">Categories</h4>
372
+ <select name='cat' id='cat' class='postform' >
373
+ <option value='-1'>Select Category</option>
374
+ <option class="level-0" value="114554125">3d Printer hacks&nbsp;&nbsp;(116)</option>
375
+ <option class="level-0" value="18020710">android hacks&nbsp;&nbsp;(240)</option>
376
+ <option class="level-0" value="18020705">arduino hacks&nbsp;&nbsp;(1029)</option>
377
+ <option class="level-0" value="27981650">ARM&nbsp;&nbsp;(51)</option>
378
+ <option class="level-0" value="33199679">Ask Hackaday&nbsp;&nbsp;(29)</option>
379
+ <option class="level-0" value="64298109">ATtiny hacks&nbsp;&nbsp;(45)</option>
380
+ <option class="level-0" value="25122024">beer hacks&nbsp;&nbsp;(63)</option>
381
+ <option class="level-0" value="12115263">blackberry hacks&nbsp;&nbsp;(8)</option>
382
+ <option class="level-0" value="10969031">cellphones hacks&nbsp;&nbsp;(337)</option>
383
+ <option class="level-0" value="35745764">chemistry hacks&nbsp;&nbsp;(102)</option>
384
+ <option class="level-0" value="24483654">classic hacks&nbsp;&nbsp;(852)</option>
385
+ <option class="level-0" value="31677810">clock hacks&nbsp;&nbsp;(189)</option>
386
+ <option class="level-0" value="18755632">cnc hacks&nbsp;&nbsp;(341)</option>
387
+ <option class="level-0" value="568165">computer hacks&nbsp;&nbsp;(390)</option>
388
+ <option class="level-0" value="78428">cons&nbsp;&nbsp;(192)</option>
389
+ <option class="level-0" value="5738">contests&nbsp;&nbsp;(136)</option>
390
+ <option class="level-0" value="3923181">cooking hacks&nbsp;&nbsp;(72)</option>
391
+ <option class="level-0" value="10969032">digital audio hacks&nbsp;&nbsp;(422)</option>
392
+ <option class="level-0" value="10969033">digital cameras hacks&nbsp;&nbsp;(415)</option>
393
+ <option class="level-0" value="10969034">downloads hacks&nbsp;&nbsp;(101)</option>
394
+ <option class="level-0" value="107827385">drone hacks&nbsp;&nbsp;(10)</option>
395
+ <option class="level-0" value="63176382">Engine Hacks&nbsp;&nbsp;(31)</option>
396
+ <option class="level-0" value="35890">Featured&nbsp;&nbsp;(72)</option>
397
+ <option class="level-0" value="551890">firefox hacks&nbsp;&nbsp;(23)</option>
398
+ <option class="level-0" value="53446541">FPGA&nbsp;&nbsp;(1)</option>
399
+ <option class="level-0" value="18020562">g1 hacks&nbsp;&nbsp;(26)</option>
400
+ <option class="level-0" value="320557">google hacks&nbsp;&nbsp;(44)</option>
401
+ <option class="level-0" value="10969036">gps hacks&nbsp;&nbsp;(108)</option>
402
+ <option class="level-0" value="24535490">green hacks&nbsp;&nbsp;(152)</option>
403
+ <option class="level-0" value="27311668">Hackaday links&nbsp;&nbsp;(146)</option>
404
+ <option class="level-0" value="21755374">Hackerspaces&nbsp;&nbsp;(93)</option>
405
+ <option class="level-0" value="6310599">HackIt&nbsp;&nbsp;(101)</option>
406
+ <option class="level-0" value="10969037">handhelds hacks&nbsp;&nbsp;(189)</option>
407
+ <option class="level-0" value="79">hardware&nbsp;&nbsp;(249)</option>
408
+ <option class="level-0" value="144422905">High Voltage Hacks&nbsp;&nbsp;(5)</option>
409
+ <option class="level-0" value="66307084">Holiday Hacks&nbsp;&nbsp;(93)</option>
410
+ <option class="level-0" value="10969038">home entertainment hacks&nbsp;&nbsp;(516)</option>
411
+ <option class="level-0" value="5660882">home hacks&nbsp;&nbsp;(705)</option>
412
+ <option class="level-0" value="2708">how-to&nbsp;&nbsp;(135)</option>
413
+ <option class="level-0" value="908478">internet hacks&nbsp;&nbsp;(2)</option>
414
+ <option class="level-0" value="831">Interviews&nbsp;&nbsp;(13)</option>
415
+ <option class="level-0" value="1416772">iphone hacks&nbsp;&nbsp;(176)</option>
416
+ <option class="level-0" value="1275163">ipod hacks&nbsp;&nbsp;(144)</option>
417
+ <option class="level-0" value="344761">kickstarter&nbsp;&nbsp;(29)</option>
418
+ <option class="level-0" value="4157506">Kindle hacks&nbsp;&nbsp;(15)</option>
419
+ <option class="level-0" value="46717088">Kinect hacks&nbsp;&nbsp;(81)</option>
420
+ <option class="level-0" value="10969048">laptops hacks&nbsp;&nbsp;(111)</option>
421
+ <option class="level-0" value="10969055">laser hacks&nbsp;&nbsp;(167)</option>
422
+ <option class="level-0" value="18020716">led hacks&nbsp;&nbsp;(695)</option>
423
+ <option class="level-0" value="10626">lifehacks&nbsp;&nbsp;(54)</option>
424
+ <option class="level-0" value="729674">linux hacks&nbsp;&nbsp;(129)</option>
425
+ <option class="level-0" value="20732807">lockpicking hacks&nbsp;&nbsp;(11)</option>
426
+ <option class="level-0" value="10969060">macs hacks&nbsp;&nbsp;(135)</option>
427
+ <option class="level-0" value="144395979">Marijuana Hacks&nbsp;&nbsp;(2)</option>
428
+ <option class="level-0" value="11284667">Medical hacks&nbsp;&nbsp;(102)</option>
429
+ <option class="level-0" value="139916">Microcontrollers&nbsp;&nbsp;(512)</option>
430
+ <option class="level-0" value="5611793">misc hacks&nbsp;&nbsp;(1747)</option>
431
+ <option class="level-0" value="18020730">multitouch hacks&nbsp;&nbsp;(89)</option>
432
+ <option class="level-0" value="22652725">musical hacks&nbsp;&nbsp;(290)</option>
433
+ <option class="level-0" value="18020722">netbook hacks&nbsp;&nbsp;(50)</option>
434
+ <option class="level-0" value="6166512">Network Hacks&nbsp;&nbsp;(4)</option>
435
+ <option class="level-0" value="103">news&nbsp;&nbsp;(1091)</option>
436
+ <option class="level-0" value="1861880">nintendo ds hacks&nbsp;&nbsp;(34)</option>
437
+ <option class="level-0" value="114555425">nintendo gameboy hacks&nbsp;&nbsp;(90)</option>
438
+ <option class="level-0" value="18020685">nintendo hacks&nbsp;&nbsp;(261)</option>
439
+ <option class="level-0" value="4992726">nintendo wii hacks&nbsp;&nbsp;(78)</option>
440
+ <option class="level-0" value="118011206">Nook Hacks&nbsp;&nbsp;(1)</option>
441
+ <option class="level-0" value="114556430">palm pre hacks&nbsp;&nbsp;(6)</option>
442
+ <option class="level-0" value="245123">parts&nbsp;&nbsp;(72)</option>
443
+ <option class="level-0" value="10969081">peripherals hacks&nbsp;&nbsp;(648)</option>
444
+ <option class="level-0" value="16325149">phone hacks&nbsp;&nbsp;(17)</option>
445
+ <option class="level-0" value="10969088">playstation hacks&nbsp;&nbsp;(120)</option>
446
+ <option class="level-0" value="2060">podcasts&nbsp;&nbsp;(8)</option>
447
+ <option class="level-0" value="10969096">portable audio hacks&nbsp;&nbsp;(66)</option>
448
+ <option class="level-0" value="10969099">portable video hacks&nbsp;&nbsp;(57)</option>
449
+ <option class="level-0" value="588444">psp hacks&nbsp;&nbsp;(47)</option>
450
+ <option class="level-0" value="23971578">radio hacks&nbsp;&nbsp;(137)</option>
451
+ <option class="level-0" value="47">rants&nbsp;&nbsp;(28)</option>
452
+ <option class="level-0" value="69218551">Raspberry Pi&nbsp;&nbsp;(153)</option>
453
+ <option class="level-0" value="21870780">repair hacks&nbsp;&nbsp;(101)</option>
454
+ <option class="level-0" value="309">reviews&nbsp;&nbsp;(19)</option>
455
+ <option class="level-0" value="10969101">robots hacks&nbsp;&nbsp;(874)</option>
456
+ <option class="level-0" value="30302">roundup&nbsp;&nbsp;(35)</option>
457
+ <option class="level-0" value="10969111">security hacks&nbsp;&nbsp;(460)</option>
458
+ <option class="level-0" value="2301">Software Development&nbsp;&nbsp;(91)</option>
459
+ <option class="level-0" value="3796421">software hacks&nbsp;&nbsp;(47)</option>
460
+ <option class="level-0" value="10969116">solar hacks&nbsp;&nbsp;(46)</option>
461
+ <option class="level-0" value="10969121">tablet pcs hacks&nbsp;&nbsp;(40)</option>
462
+ <option class="level-0" value="3075183">teardown&nbsp;&nbsp;(31)</option>
463
+ <option class="level-0" value="10969130">tool hacks&nbsp;&nbsp;(657)</option>
464
+ <option class="level-0" value="25277004">toy hacks&nbsp;&nbsp;(360)</option>
465
+ <option class="level-0" value="10969134">transportation hacks&nbsp;&nbsp;(472)</option>
466
+ <option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(332)</option>
467
+ <option class="level-0" value="3184456">video hacks&nbsp;&nbsp;(211)</option>
468
+ <option class="level-0" value="34942364">Virtual Reality&nbsp;&nbsp;(9)</option>
469
+ <option class="level-0" value="50802420">weapons hacks&nbsp;&nbsp;(63)</option>
470
+ <option class="level-0" value="12552193">wearable hacks&nbsp;&nbsp;(183)</option>
471
+ <option class="level-0" value="39510952">Weekly roundup&nbsp;&nbsp;(18)</option>
472
+ <option class="level-0" value="4891215">wireless hacks&nbsp;&nbsp;(333)</option>
473
+ <option class="level-0" value="7079455">xbox hacks&nbsp;&nbsp;(130)</option>
474
+ </select>
475
+
476
+ <script type='text/javascript'>
477
+ /* <![CDATA[ */
478
+ var dropdown = document.getElementById("cat");
479
+ function onCatChange() {
480
+ if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
481
+ location.href = "http://hackaday.com/?cat="+dropdown.options[dropdown.selectedIndex].value;
482
+ }
483
+ }
484
+ dropdown.onchange = onCatChange;
485
+ /* ]]> */
486
+ </script>
487
+
488
+ </div></div>
489
+ <div id="featured-post-2" class="widget featuredpost"><div class="widget-wrap"><h4 class="widgettitle">In case you missed it</h4>
490
+ <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()-->
491
+
492
+ <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()-->
493
+
494
+ <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()-->
495
+
496
+ <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()-->
497
+
498
+ <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()-->
499
+
500
+ <p class="more-from-category"><a href="http://hackaday.com/category/featured/" title="Featured">More Posts from this Category</a></p></div></div>
501
+ <div id="recent-comments-2" class="widget widget_recent_comments"><div class="widget-wrap"><h4 class="widgettitle">Recent comments</h4>
502
+ <ul id="recentcomments">
503
+ <li class="recentcomments">
504
+ 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>
505
+ <li class="recentcomments">
506
+ <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>
507
+ <li class="recentcomments">
508
+ 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>
509
+ <li class="recentcomments">
510
+ 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>
511
+ <li class="recentcomments">
512
+ 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>
513
+ <li class="recentcomments">
514
+ 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>
515
+ <li class="recentcomments">
516
+ 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>
517
+ <li class="recentcomments">
518
+ <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>
519
+ <li class="recentcomments">
520
+ <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>
521
+ <li class="recentcomments">
522
+ 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>
523
+ </ul>
524
+ </div></div>
525
+ <div id="calendar-2" class="widget widget_calendar"><div class="widget-wrap"><h4 class="widgettitle">Find Hacks by Date</h4>
526
+ <div id="calendar_wrap"><table id="wp-calendar">
527
+ <caption>April 2013</caption>
528
+ <thead>
529
+ <tr>
530
+ <th scope="col" title="Sunday">S</th>
531
+ <th scope="col" title="Monday">M</th>
532
+ <th scope="col" title="Tuesday">T</th>
533
+ <th scope="col" title="Wednesday">W</th>
534
+ <th scope="col" title="Thursday">T</th>
535
+ <th scope="col" title="Friday">F</th>
536
+ <th scope="col" title="Saturday">S</th>
537
+ </tr>
538
+ </thead>
539
+
540
+ <tfoot>
541
+ <tr>
542
+ <td colspan="3" id="prev"><a href="http://hackaday.com/2013/03/" title="View posts for March 2013">&laquo; Mar</a></td>
543
+ <td class="pad">&nbsp;</td>
544
+ <td colspan="3" id="next" class="pad">&nbsp;</td>
545
+ </tr>
546
+ </tfoot>
547
+
548
+ <tbody>
549
+ <tr>
550
+ <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
551
+ Doctor Who-style&nbsp;WiFi
552
+ Kindle weather and recycling&nbsp;display
553
+ Windmill made from washing machine, 555&nbsp;chip
554
+ SNES headphones scream out for Bluetooth&nbsp;control
555
+ 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
556
+ Dual displays on a Playstation&nbsp;2
557
+ Ask Hackaday: Hacking lingo&nbsp;fails
558
+ Cooling a photomultiplier&nbsp;tube
559
+ Hackerspace tour: Arch Reactor in St. Louis&nbsp;Missouri
560
+ Adafruit launches educational show aimed at&nbsp;kids
561
+ CNC Tic Tac&nbsp;Toe
562
+ Building a vehicle parking&nbsp;camera
563
+ April Fools&#8217; project teaches coworkers not to touch your&nbsp;stuff
564
+ 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
565
+ Powering the Oculus Rift with&nbsp;USB
566
+ Upgrading a router with impeccable soldering&nbsp;skills
567
+ Homebuilt Laser Cutter&nbsp;Ideas
568
+ Building a&nbsp;Theremincello
569
+ Microscope ring light with a number of different&nbsp;features
570
+ Hall effect limit switches for a 3D&nbsp;printer
571
+ 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
572
+ MP3/USB/Aux hack hidden behind cassette&nbsp;facade
573
+ Pranking a hackerspace IRC for April Fool&#8217;s&nbsp;Day
574
+ Turning an easter egg hunt into a fox&nbsp;hunt
575
+ Wireless Temperature Control for a&nbsp;Microbrewery
576
+ Melting Metal with a DIY Foundry&nbsp;Furnace
577
+ Top 10 Hacking Failures in movies: part&nbsp;2
578
+ Steampunk theremin&nbsp;goggles
579
+ High speed circuit design for quantum physics light&nbsp;sensing
580
+ 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
581
+ Electric tricycle build log is like hacker&nbsp;crack
582
+ H-bot style 3D printer moves bed for&nbsp;Z-axis
583
+ Stapler hack fastens infinitely large sheets of&nbsp;paper
584
+ 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
585
+ Rolling your own minimal USB to serial Arduino&nbsp;programmer
586
+ Making PLA stick to a 3D printer build platform by using hairspray or an acetone ABS&nbsp;slurry">6</a></td>
587
+ </tr>
588
+ <tr>
589
+ <td><a href="http://hackaday.com/2013/04/07/" title="Acoustic bass guitar uses water jug and two&nbsp;strings
590
+ Solar powered robot mows your lawn while you chill&nbsp;indoors
591
+ 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
592
+ Combo lock uses relays and logic&nbsp;gates
593
+ 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
594
+ The RedBull creation contest&nbsp;begins!
595
+ Recurve bow make from wood and&nbsp;skis
596
+ 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
597
+ MIDI pedal project looks as good as it&nbsp;sounds
598
+ 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
599
+ Guitar EQ levels trigger the stage&nbsp;lights
600
+ Top 10 best hacking scenes in&nbsp;movies
601
+ Automating a mechanical&nbsp;typewriter
602
+ 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
603
+ Horribly complicated electric guitar&nbsp;keyboard
604
+ Generating electricity from&nbsp;alcohol">12</a></td><td><a href="http://hackaday.com/2013/04/13/" title="Network-controlled fireworks&nbsp;launcher
605
+ Working 3D printed stepper&nbsp;motor
606
+ SqueezeBerry: a Raspberri Pi powered Squeezebox&nbsp;appliance">13</a></td>
607
+ </tr>
608
+ <tr>
609
+ <td><a href="http://hackaday.com/2013/04/14/" title="Teaching a computer to play Mario&#8230; seemingly through&nbsp;voodoo
610
+ Building a replacement for a broken dehumidifier&nbsp;controller
611
+ 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
612
+ [FlorianH] shows off MinimaBL, the next generation of his quadcopter&nbsp;project
613
+ 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
614
+ Building a kegerator with visual&nbsp;style
615
+ 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
616
+ Apple MagSafe cord&nbsp;repair
617
+ 3D Printing sensor mounts for the Oculus&nbsp;Rift
618
+ 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
619
+ Semi-automatic pick and place&nbsp;machine
620
+ Living night light with glowing&nbsp;algae
621
+ 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
622
+ Replace your project power supplies with recycled Li-Ion cells and a switching&nbsp;regulator
623
+ 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
624
+ GUI window manager on an AVR&nbsp;chip
625
+ Mood lamp/notifier uses neat modular PCB&nbsp;design">20</a></td>
626
+ </tr>
627
+ <tr>
628
+ <td><a href="http://hackaday.com/2013/04/21/" title="3D printing some sweet&nbsp;music
629
+ Drop-in pcb makes Nintendo Four Score a USB&nbsp;joystick
630
+ 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
631
+ Connect a Retina display to a regular&nbsp;computer
632
+ 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
633
+ What are the best hacking&nbsp;documentaries?
634
+ OTM-02 is a 3D printed&nbsp;wristwatch
635
+ 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>
636
+ </tr>
637
+ <tr>
638
+ <td>28</td><td>29</td><td>30</td>
639
+ <td class="pad" colspan="4">&nbsp;</td>
640
+ </tr>
641
+ </tbody>
642
+ </table></div></div></div>
643
+ <div id=virurl>
644
+ <!-- BEGIN - VIRURL Widget - iFrame Embed Code -->
645
+ <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"
646
+ width="300" height="600" scrolling="no" >
647
+ </iframe>
648
+ <!-- END - VIRURL Widget - iFrame Embed Code -->
649
+ </div>
650
+ <br />
651
+ <br />
652
+ <div id=tl_ad_bottom>
653
+ <script type="text/javascript"><!--
654
+ google_ad_client = "ca-pub-1812638130783065";
655
+ /* Hackaday sidebar wide skyscraper */
656
+ google_ad_slot = "1587378096";
657
+ google_ad_width = 160;
658
+ google_ad_height = 600;
659
+ google_ad_region = "test";
660
+ //-->
661
+ </script>
662
+ <script type="text/javascript"
663
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
664
+ </script>
665
+ </div>
666
+
667
+
668
+ <br />
669
+
670
+
671
+
672
+
673
+
674
+
675
+ </div> </div><!-- end #content-sidebar-wrap -->
676
+ </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 -->
677
+ <script type="text/javascript">
678
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
679
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
680
+ </script>
681
+ <script type="text/javascript">
682
+ var pageTracker = _gat._getTracker("UA-2201445-6");
683
+ pageTracker._trackPageview();
684
+ </script>
685
+ <!-- Start Quantcast tag -->
686
+ <script type="text/javascript">
687
+ _qoptions={
688
+ qacct:"p-cc6zkdHuZwUDM"
689
+ };
690
+ </script>
691
+ <script type="text/javascript"
692
+ src="http://edge.quantserve.com/quant.js"></script>
693
+ <noscript>
694
+ <img src="http://pixel.quantserve.com/pixel/p-cc6zkdHuZwUDM.gif"
695
+ style="display: none;" border="0" height="1" width="1"
696
+ alt="Quantcast"/>
697
+ </noscript></div><!-- end #wrap -->
698
+
699
+ <script type="text/javascript">
700
+ var _qevents = _qevents || [], wpcomQuantcastData = {"qacct":"p-18-mFEk4J448M","labels":",language.en,type.wpcom,vip.hackadaycom"};
701
+ function wpcomQuantcastPixel( labels, options ) {
702
+ var i, defaults = wpcomQuantcastData, data = { event: 'ajax' };
703
+
704
+ labels = labels || '';
705
+ options = options || {};
706
+
707
+ if ( typeof labels != 'string' )
708
+ options = labels;
709
+
710
+ for ( i in defaults ) {
711
+ data[i] = defaults[i];
712
+ }
713
+
714
+ for ( i in options ) {
715
+ data[i] = options[i];
716
+ }
717
+
718
+ if ( data.labels ) {
719
+ data.labels += ',' + labels;
720
+ } else {
721
+ data.labels = labels;
722
+ }
723
+
724
+ _qevents.push( data );
725
+ };
726
+ (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); })();
727
+ _qevents.push( wpcomQuantcastData );
728
+ </script>
729
+ <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>
730
+
731
+
732
+ <!-- /// LOAD CHARTBEAT /// -->
733
+ <script type="text/javascript">
734
+ var _sf_async_config={};
735
+ _sf_async_config.uid = 2021;
736
+ _sf_async_config.useCanonical = true;
737
+
738
+ (function(){
739
+ function loadChartbeat() {
740
+ window._sf_endpt=(new Date()).getTime();
741
+ var e = document.createElement('script');
742
+ e.setAttribute('language', 'javascript');
743
+ e.setAttribute('type', 'text/javascript');
744
+ e.setAttribute('src',
745
+ (("https:" == document.location.protocol) ? "https://s3.amazonaws.com/" : "http://") +
746
+ "static.chartbeat.com/js/chartbeat.js");
747
+ document.body.appendChild(e);
748
+ }
749
+ var oldonload = window.onload;
750
+ window.onload = (typeof window.onload != 'function') ?
751
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
752
+ })();
753
+ </script>
754
+ <div style="display:none">
755
+ </div>
756
+ <script type='text/javascript' src='http://s2.wp.com/_static/??-eJylzMsOREAQRuEXMoqgEwvxLC4/qjPVOl3dZh4fO3vrk+/Qz3+m3UW4SFZpxsET/D+3mtEjxQ0CJR8gnIRWOCgrfXm8lcAl0uQRFtbtlR3Cqtegl66smto0xhStPQEw5Dy+'></script>
757
+ <script type="text/javascript">
758
+ // <![CDATA[
759
+ (function() {
760
+ try{
761
+ if ( window.external &&'msIsSiteMode' in window.external) {
762
+ if (window.external.msIsSiteMode()) {
763
+ var jl = document.createElement('script');
764
+ jl.type='text/javascript';
765
+ jl.async=true;
766
+ jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
767
+ var s = document.getElementsByTagName('script')[0];
768
+ s.parentNode.insertBefore(jl, s);
769
+ }
770
+ }
771
+ }catch(e){}
772
+ })();
773
+ // ]]>
774
+ </script><script src="http://s.stats.wordpress.com/w.js?21" type="text/javascript"></script>
775
+ <script type="text/javascript">
776
+ st_go({'blog':'4779443','v':'wpcom','tz':'-7','user_id':'0','subd':'hackadaycom'});
777
+ 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();}
778
+ ex_go({'crypt':'UE40eW5QN0p8M2Y/RE1BNmNJfGhxNCVxUDExYmtXRThKbHcwXTdETWI1alhvb1oseHImN101ZFpEakVpYjlQYVFLYzBaVHRtPz0wXS9bVlFpZ3c1Qn5KSThLNS9lSHNGOE1IJk9+N3xFNWxyT2x+MUpnR1dJcFZJUjdEfGp3elNyN1EydF9SZzJkNXdETFlsXXNFPURDR05UJlBhV19CJV9YcE1ydF9QTkpxVn5RMi9LTnpjLEV+MnxWQ1dxVi0ldFclNmZCP3k9Sj1NJSw9XV8/TDdyemE0VWF6QT9yL1hFZm0xTFMmTWpvLldEQlhFN3M2eTlydD84dTRBRGE='});
779
+ addLoadEvent(function(){linktracker_init('4779443',0);});
780
+ </script>
781
+ <noscript><img src="http://stats.wordpress.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
782
+ <script type="text/javascript">
783
+ // Trigger Quantcast pixel for each Infinite Scroll post load
784
+ if ( 'function' === typeof( jQuery ) ) {
785
+ jQuery( document.body ).on( 'post-load', function() {
786
+ if ( 'function' === typeof( wpcomQuantcastPixel ) )
787
+ wpcomQuantcastPixel();
788
+ } );
789
+ }
790
+ </script>
791
+ </body>
792
+ </html>