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,804 @@
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 95 seconds ago
5
+ generated in 0.329 seconds
6
+ served from batcache in 0.002 seconds
7
+ expires in 205 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=1366801048&amp;back=hackaday.com%2Fpage%2F21%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-21 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-96790 post type-post status-publish format-standard hentry category-arduino-hacks category-tool-hacks tag-brother-knitting-machine tag-knitting tag-knitting-machine">
197
+
198
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/26/giving-a-cnc-knitting-machine-a-new-brain/" title="Giving a CNC knitting machine a new&nbsp;brain" rel="bookmark">Giving a CNC knitting machine a new&nbsp;brain</a></h2>
199
+
200
+ <div class="post-info"><span class="date published time" title="2013-03-26T08:00:38+00:00">March 26, 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/26/giving-a-cnc-knitting-machine-a-new-brain/#comments">21 Comments</a></span> </div> <div class="entry-content">
201
+ <p><img class="aligncenter size-full wp-image-96791" alt="knitting" src="http://hackadaycom.files.wordpress.com/2013/03/knitting.jpg?w=580&#038;h=192" width="580" height="192" /></p>
202
+ <p>We&#8217;re all about big machines that build things for us &#8211; laser cutters, CNC mills, and 3D printers are the machines de rigueur for Hackaday.  Too often we overlook the softer sides of fabrication that include textiles and knitting. [varvara] and [mar] are doing their best to bring us the softer side of things with their modification of a <a href="http://www.knitic.com/about/">Brother knitting machine</a>. They call their build Knitic, and it&#8217;s a great way to knit with computer control.</p>
203
+ <p>Instead of <a href="http://hackaday.com/2010/12/06/knitting-machine-hack-by-keypad-emulation/">previous</a> Brother knitting machine hacks <a href="http://hackaday.com/2010/11/08/make-a-knitting-machine-print-pixel-art/">we&#8217;ve seen</a>, Knitic doesn&#8217;t bother with emulating the keypad or controlling the microprocessor already there; this build dispenses with the Brother brain and controls the solenoids and switches of the knitting machine directly with the help of an Arduino and <a href="http://www.knitic.com/2012/10/22/making-first-hand-made-pcb/">a home-etched shield</a>.</p>
204
+ <p>It&#8217;s not quite an automated knitting machine &#8211; someone still has to run the shuttle across the machine &#8211; but the patterns are controlled via a Processing app available on the <a href="https://github.com/mcanet/knitic">Knitic github</a>. You can check out [Varvara]&#8216;s demo of Kinitic after the break.</p>
205
+ <p> <a href="http://hackaday.com/2013/03/26/giving-a-cnc-knitting-machine-a-new-brain/#more-96790" class="more-link">[Read more...]</a></p>
206
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
207
+ <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>, <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/brother-knitting-machine/" rel="tag">brother knitting machine</a>, <a href="http://hackaday.com/tag/knitting/" rel="tag">knitting</a>, <a href="http://hackaday.com/tag/knitting-machine/" rel="tag">knitting machine</a></span> </div>
208
+ </div><!-- end .postclass -->
209
+ <div class="post-96797 post type-post status-publish format-standard hentry category-classic-hacks tag-accelerometer tag-mems tag-rate-gyroscope">
210
+
211
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/26/rate-gyroscope-circuitry-explained/" title="Rate Gyroscope circuitry&nbsp;explained" rel="bookmark">Rate Gyroscope circuitry&nbsp;explained</a></h2>
212
+
213
+ <div class="post-info"><span class="date published time" title="2013-03-26T06:01:26+00:00">March 26, 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/26/rate-gyroscope-circuitry-explained/#comments">26 Comments</a></span> </div> <div class="entry-content">
214
+ <p><img class="aligncenter size-large wp-image-96801" alt="rate-gyroscope-driver" src="http://hackadaycom.files.wordpress.com/2013/03/rate-gyroscope-driver.png?w=580&#038;h=361" width="580" height="361" /></p>
215
+ <p>Hackaday alum [Adam Munich] shot <a href="http://adammunich.com/golden-gnat-gyroscope/">a tutorial video on using a rate gyroscope</a>.</p>
216
+ <p>Here he&#8217;s showing off the really fancy piece of ancient (technologically speaking) hardware. It would have set you back about fifteen grand in the 1960&#8242;s (inflation adjusted) but can be had these days for around $30. What a deal! These are not small, or power efficient when compared to the components that go into smart phones or gaming controllers, but they&#8217;re a heck of a lot more accurate than the ubiquitous modern parts. That&#8217;s because <a href="http://en.wikipedia.org/wiki/Rate_gyro">a rate gyroscope</a> &#8212; which is the gold cylinder on the left &#8212; actually incorporates a spinning motor and a way to monitor how it is affected by changes in gravity. The driver/interface circuitry for this gets hairy relatively fast, but [Adam] does a solid job of breaking down the concept into smaller parts that are easy to manage.</p>
217
+ <p>Wondering what is different about this compared to a MEMS accelerometer? We know they&#8217;re really not the same thing at all, but wanted a chance to mention [The Engineer Guy's] <a href="http://hackaday.com/2012/05/22/the-engineer-guy-explains-how-mems-accelerometer-chips-work/">video on how those parts are made</a>.</p>
218
+ <p> <a href="http://hackaday.com/2013/03/26/rate-gyroscope-circuitry-explained/#more-96797" class="more-link">[Read more...]</a></p>
219
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
220
+ <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/accelerometer/" rel="tag">accelerometer</a>, <a href="http://hackaday.com/tag/mems/" rel="tag">MEMS</a>, <a href="http://hackaday.com/tag/rate-gyroscope/" rel="tag">rate gyroscope</a></span> </div>
221
+ </div><!-- end .postclass -->
222
+ <div class="post-96805 post type-post status-publish format-standard hentry category-fpga-2 tag-altera-de2 tag-fpga tag-meat-boy tag-video-game">
223
+
224
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/26/playing-meat-boy-on-an-fpga/" title="Playing Meat Boy on an&nbsp;FPGA" rel="bookmark">Playing Meat Boy on an&nbsp;FPGA</a></h2>
225
+
226
+ <div class="post-info"><span class="date published time" title="2013-03-26T04:01:23+00:00">March 26, 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/26/playing-meat-boy-on-an-fpga/#comments">11 Comments</a></span> </div> <div class="entry-content">
227
+ <p><img class="aligncenter size-large wp-image-96806" alt="meat-boy-fpga" src="http://hackadaycom.files.wordpress.com/2013/03/meat-boy-fpga.png?w=580&#038;h=341" width="580" height="341" /></p>
228
+ <p>We usually look at these FPGA University projects and think how much fun it must have been to get credit for the work. But in this case we can&#8217;t image the grind it must have been to <a href="http://www.youtube.com/watch?v=ak7hbttVyVk">implement the game mechanics of Meat Boy in an FPGA</a>. See how well it came out in the clip after the break.</p>
229
+ <p>Remember that with an FPGA you&#8217;re basically building hardware devices by using code. <a href="http://www.reddit.com/r/ECE/comments/1aylh2/fpga_meat_boy/">The Reddit discussion</a> of the project sheds some light on where to start (and even <a href="https://github.com/alteraMeatBoy/AlteraMeatBoyHD">shares the source code</a>). The Altera DE2 is pushing the game to a monitor using SXGA at 60Hz. The map is laid out as a collection of 32&#215;32 tiles, each represented by 2 bits in memory. [SkipToThe3nd] does go into detail about how the physics work but we can&#8217;t even begin to paraphrase that part of the discussion.</p>
230
+ <p>The game being cloned here is Meat Boy, the Flash game predecessor to Super Meat Boy. If you&#8217;ve never heard of the title we&#8217;d suggest watching <em><a href="http://buy.indiegamethemovie.com/">Indie Game: The Movie</a>, </em>a documentary which follows several independent game developers as they try to get their titles to market.</p>
231
+ <p> <a href="http://hackaday.com/2013/03/26/playing-meat-boy-on-an-fpga/#more-96805" class="more-link">[Read more...]</a></p>
232
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
233
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/fpga-2/" title="View all posts in FPGA" rel="category tag">FPGA</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/altera-de2/" rel="tag">altera de2</a>, <a href="http://hackaday.com/tag/fpga/" rel="tag">fpga</a>, <a href="http://hackaday.com/tag/meat-boy/" rel="tag">meat boy</a>, <a href="http://hackaday.com/tag/video-game/" rel="tag">video game</a></span> </div>
234
+ </div><!-- end .postclass -->
235
+ <div align="center">
236
+
237
+
238
+
239
+ <script type="text/javascript"><!--
240
+
241
+ google_ad_client = "ca-pub-1812638130783065";
242
+
243
+ /* Hackaday, 300x250, created 4/26/08, MedRect main column */
244
+
245
+ google_ad_slot = "3449215672";
246
+
247
+ google_ad_width = 300;
248
+
249
+ google_ad_height = 250;
250
+
251
+ //-->
252
+
253
+ </script>
254
+
255
+ <script type="text/javascript"
256
+
257
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
258
+
259
+ </script>
260
+
261
+
262
+
263
+ </div> <div class="post-96793 post type-post status-publish format-standard hentry category-tool-hacks tag-csv tag-ds1052e tag-oscilloscope tag-python tag-rigol tag-spectrum-analyzer tag-wfm">
264
+
265
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/25/rigol-wfm-viewer-ported-for-non-windows-users/" title="Rigol WFM viewer ported for non-Windows&nbsp;users" rel="bookmark">Rigol WFM viewer ported for non-Windows&nbsp;users</a></h2>
266
+
267
+ <div class="post-info"><span class="date published time" title="2013-03-25T19:01:42+00:00">March 25, 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/25/rigol-wfm-viewer-ported-for-non-windows-users/#comments">3 Comments</a></span> </div> <div class="entry-content">
268
+ <p><img class="aligncenter size-large wp-image-96795" alt="rigol-wfm-parser-for-linux" src="http://hackadaycom.files.wordpress.com/2013/03/rigol-wfm-parser-for-linux.png?w=528&#038;h=450" width="528" height="450" /></p>
269
+ <p>[Matthias Blaicher] may think this isn&#8217;t a big deal when it comes to the amount of work he put into the hack. But for us, anything that extends the functionality of the versatile yet affordable Rigol DS1052E is a win. In this case he&#8217;s taken a previous hack and made it work for more people by <a href="http://www.blaicher.com/2013/03/rigol-oscilloscope-binary-file-parser/">extending the functionality of the WFM file format viewer</a>.</p>
270
+ <p>[Dexter2048] pulled off <a href="http://hackaday.com/2012/10/10/giving-the-rygol-ds1052e-scope-a-spectrum-analyzer/">the original hack</a> which allows this oscilloscope to be used as a spectrum analyzer. [Matthias] didn&#8217;t want the tool to be limited to running only on Windows systems so he got to work. This isn&#8217;t quite as easy as sounds because the only part of the original code that was released is the parser itself. [Matthias] had to build everything up from that starting point. His software uses standard Python to parse the WFM file and reformat the data. The features included in the current version allow you to export data as a CSV file and even plot the waveform and FFT as seen above.</p>
271
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
272
+ <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/csv/" rel="tag">csv</a>, <a href="http://hackaday.com/tag/ds1052e/" rel="tag">DS1052E</a>, <a href="http://hackaday.com/tag/oscilloscope/" rel="tag">oscilloscope</a>, <a href="http://hackaday.com/tag/python/" rel="tag">python</a>, <a href="http://hackaday.com/tag/rigol/" rel="tag">rigol</a>, <a href="http://hackaday.com/tag/spectrum-analyzer/" rel="tag">spectrum analyzer</a>, <a href="http://hackaday.com/tag/wfm/" rel="tag">wfm</a></span> </div>
273
+ </div><!-- end .postclass -->
274
+ <div class="post-96752 post type-post status-publish format-standard hentry category-beer-hacks category-robots-hacks tag-alcohol tag-bartender tag-beer tag-robot tag-robotic-arm">
275
+
276
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/25/robot-bartender-mixes-a-mean-drink/" title="Robot bartender mixes a mean&nbsp;drink" rel="bookmark">Robot bartender mixes a mean&nbsp;drink</a></h2>
277
+
278
+ <div class="post-info"><span class="date published time" title="2013-03-25T17:20:45+00:00">March 25, 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/25/robot-bartender-mixes-a-mean-drink/#comments">11 Comments</a></span> </div> <div class="entry-content">
279
+ <p><img class="alignnone size-large wp-image-96758" alt="robot-bartender-mixes-mean-drink" src="http://hackadaycom.files.wordpress.com/2013/03/robot-bartender-mixes-mean-drink3.jpg?w=580&#038;h=387" width="580" height="387" /></p>
280
+ <p>Back in 2002, [Dave] came across a discarded PUMA robotic arm and quickly set his sights on turning it into a bartender to serve drinks at his parties. Unfortunately, the arm was far from operational and being an engineer at his day job meant that working on this project was the last thing he wanted to do when he came home. So, progress trickled along slowly for years. He eventually announced a public deadline to spur him to action, and this years Pi(e) party saw <a href="http://dsz123.net/Projects/RobotArm/">the official debut of  &#8216;Sir-Mix-a-Bot&#8217; &#8211; the robot bartender</a><a href="http://dsz123.net/Projects/RobotArm/">.</a></p>
281
+ <p>With the exception of having to build a new hand for it, mechanically, the arm was still in good condition when [Dave] found it. The electronics were another story however. Using some off the shelf components and his own know-how, [Dave] had to custom build all the controls. The software was written from scratch as well. (He lucked out and had help from his brother who was taking a Ph.D. program in robotics at the time).</p>
282
+ <p>As if the robotics aspect of the project wasn&#8217;t enough, [Dave] even created a beautiful custom table that both houses and displays his masterpiece. The quality of craftsmanship on his table alone is worth the time to check this out &#8211; there&#8217;s a short video after the break.</p>
283
+ <p>[Thanks <a href="http://dsz123.net/">Dave</a>]</p>
284
+ <p> <a href="http://hackaday.com/2013/03/25/robot-bartender-mixes-a-mean-drink/#more-96752" class="more-link">[Read more...]</a></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/beer-hacks/" title="View all posts in beer hacks" rel="category tag">beer hacks</a>, <a href="http://hackaday.com/category/robots-hacks/" title="View all posts in robots hacks" rel="category tag">robots 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/bartender/" rel="tag">bartender</a>, <a href="http://hackaday.com/tag/beer/" rel="tag">beer</a>, <a href="http://hackaday.com/tag/robot/" rel="tag">robot</a>, <a href="http://hackaday.com/tag/robotic-arm/" rel="tag">robotic arm</a></span> </div>
287
+ </div><!-- end .postclass -->
288
+ <div class="post-96740 post type-post status-publish format-standard hentry category-hackaday-links tag-3d-printer tag-bomb tag-chiptune tag-keygen tag-nokia tag-oscillator tag-robot tag-software-defined-radio tag-theft tag-tindie">
289
+
290
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/25/hackaday-links-march-25-2013/" title="Hackaday Links: March 25,&nbsp;2013" rel="bookmark">Hackaday Links: March 25,&nbsp;2013</a></h2>
291
+
292
+ <div class="post-info"><span class="date published time" title="2013-03-25T14:00:39+00:00">March 25, 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/25/hackaday-links-march-25-2013/#comments">38 Comments</a></span> </div> <div class="entry-content">
293
+ <h4>Illegal, yet impressive</h4>
294
+ <p><img class="aligncenter size-full wp-image-96741" alt="cans" src="http://hackadaycom.files.wordpress.com/2013/03/cans.jpg?w=580&#038;h=153" width="580" height="153" /></p>
295
+ <p>Want a soda? <a href="http://www.youtube.com/watch?v=TLXXLY7zewo">Just grab a robot, shove it in a vending machine</a>, and grab yourself one. This video is incredibly French, but it looks like we&#8217;ve got a custom-built robot made out of old printers and other miscellaneous motors and gears here. It&#8217;s actually pretty impressive when you consider 16 ounce cans weigh a pound.</p>
296
+ <h4>UNOBTANIUM</h4>
297
+ <p><img class="aligncenter size-full wp-image-96742" alt="chip" src="http://hackadaycom.files.wordpress.com/2013/03/chip.png?w=580&#038;h=150" width="580" height="150" /></p>
298
+ <p>Okay, we got a lot of emails on our tip line for this one.<a href="https://www.tindie.com/shops/TAUTIC/si570-xo-programmable-oscillator/"> It&#8217;s a group buy for a programmable oscillator</a> over on Tindie. Why is this cool? Well, this chip (an SI570) is used in a lot of software defined radio designs. Also, it&#8217;s incredibly hard to come by if you&#8217;re not ordering thousands of these at a time. <a href="https://www.silabs.com/Support%20Documents/TechnicalDocs/si570.pdf">Here&#8217;s a datasheet</a>, now show us some builds with this oscillator.</p>
299
+ <h4>Chiptune/keygen music anywhere</h4>
300
+ <p><img class="aligncenter size-full wp-image-96744" alt="keygen" src="http://hackadaycom.files.wordpress.com/2013/03/keygen.png?w=580&#038;h=210" width="580" height="210" /></p>
301
+ <p>[Huan] has a co-loco&#8217;d Raspi and wanted a media server that is available anywhere, on any device. <a href="http://tnhh.net/v3/text/nginx-json-autoindex-raspberry-pi-streaming-music">What he came up with</a> is a service that streams chiptune music from your favorite keygens. You can access it with Chrome (no, we&#8217;re not linking directly to a Raspberry Pi), and it&#8217;s extremely efficient &#8211; his RAM usage didn&#8217;t increase a bit.</p>
302
+ <h4>Take it on an airplane. Or mail it.</h4>
303
+ <p><img class="aligncenter size-full wp-image-96746" alt="bomb" src="http://hackadaycom.files.wordpress.com/2013/03/bomb.jpg?w=580&#038;h=241" width="580" height="241" /></p>
304
+ <p>[Alex]&#8216;s hackerspace just had a series of lightning talks, where people with 45-minute long presentations try to condense their talk into 10 minutes. Of course the hackerspace needed some way to keep everything on schedule. A simple countdown timer was too boring, <a href="http://dalpix.com/fake-hollywood-bomb">so they went with a fake, Hollywood-style bomb.</a> No, it doesn&#8217;t explode, but it still looks really, really fake. That&#8217;s a good thing.</p>
305
+ <h4>Printers have speakers now?</h4>
306
+ <p><img class="aligncenter size-full wp-image-96749" alt="nokia" src="http://hackadaycom.files.wordpress.com/2013/03/nokia.jpg?w=580&#038;h=185" width="580" height="185" /></p>
307
+ <p>[ddrboxman] thought his reprap needed a nice &#8216;print finished&#8217; notification. After adding a piezo to his electronics board, he <a href="http://blog.recursivepenguin.com/?p=104">whipped up a firmware hack that plays those old Nokia ringtones</a>. The ringtones play over Gcode, so it&#8217;s possible to have audible warnings and notifications. Now if it could only play Snake.</p>
308
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
309
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/hackaday-links/" title="View all posts in Hackaday links" rel="category tag">Hackaday links</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/bomb/" rel="tag">bomb</a>, <a href="http://hackaday.com/tag/chiptune/" rel="tag">chiptune</a>, <a href="http://hackaday.com/tag/keygen/" rel="tag">keygen</a>, <a href="http://hackaday.com/tag/nokia/" rel="tag">nokia</a>, <a href="http://hackaday.com/tag/oscillator/" rel="tag">oscillator</a>, <a href="http://hackaday.com/tag/robot/" rel="tag">robot</a>, <a href="http://hackaday.com/tag/software-defined-radio/" rel="tag">software-defined radio</a>, <a href="http://hackaday.com/tag/theft/" rel="tag">theft</a>, <a href="http://hackaday.com/tag/tindie/" rel="tag">Tindie</a></span> </div>
310
+ </div><!-- end .postclass -->
311
+ <div class="post-96729 post type-post status-publish format-standard hentry category-3d-printer-hacks category-home-hacks tag-ceiling-light tag-glados tag-lamp tag-light-fixture">
312
+
313
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/25/installing-glados-in-the-ceiling-of-your-house/" title="Installing GLaDOS in the ceiling of your&nbsp;house" rel="bookmark">Installing GLaDOS in the ceiling of your&nbsp;house</a></h2>
314
+
315
+ <div class="post-info"><span class="date published time" title="2013-03-25T12:01:56+00:00">March 25, 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/25/installing-glados-in-the-ceiling-of-your-house/#comments">14 Comments</a></span> </div> <div class="entry-content">
316
+ <p><img class="aligncenter size-large wp-image-96730" alt="glados-ceiling-light" src="http://hackadaycom.files.wordpress.com/2013/03/glados-ceiling-light.jpg?w=580&#038;h=435" width="580" height="435" /></p>
317
+ <p>Install this light fixture in your bedroom and you might kiss your nights of peaceful sleep goodbye. Fans of the Portal game franchise will recognize it as a smaller version of the megalomaniacal artificial intelligence character from the game. This particular rendition is how she looked in the second installment of the series. The lamp is the creation of [Dragonator]. <a href="http://www.instructables.com/id/A-fully-3D-printable-GlaDOS-Robotic-ceiling-arm-la/">It was entirely 3D printed before being outfitted with LEDs</a> to actually function as a light.</p>
318
+ <p>Our first thought is that this project is all about 3D design to get the final product t0 look so fantastic. But if you dig a little deeper you&#8217;ll see that it&#8217;s so much more than that. To get pieces that look this fantastic you must have a well tuned printer and be willing to let it run for 40-60 hours as it burns through 2 kg of filament. At that point you&#8217;re still far from the finish line as the [Dragonator] then set to work sanding and painting all of the pieces. From there he lovingly assembled everything, including gears and motors to give it motion.</p>
319
+ <p>In the end the electronics did not work as he envisioned. But maybe after a bit of time off from all that work he&#8217;ll revisit the project and make a bit more progress. For us, the aesthetic already makes the hack. Making it move and sound like the character would be over the top.</p>
320
+ <p>If you liked this you can&#8217;t miss <a href="http://hackaday.com/2011/08/21/this-glados-potato-is-a-lie/">the GLaDOS potato</a>.</p>
321
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
322
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/3d-printer-hacks/" title="View all posts in 3d Printer hacks" rel="category tag">3d Printer hacks</a>, <a href="http://hackaday.com/category/home-hacks/" title="View all posts in home hacks" rel="category tag">home hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/ceiling-light/" rel="tag">ceiling light</a>, <a href="http://hackaday.com/tag/glados/" rel="tag">glados</a>, <a href="http://hackaday.com/tag/lamp/" rel="tag">lamp</a>, <a href="http://hackaday.com/tag/light-fixture/" rel="tag">light fixture</a></span> </div>
323
+ </div><!-- end .postclass -->
324
+ <div class="navigation"><div class="alignleft"><a href="http://hackaday.com/page/22/" >&laquo; Older Posts</a></div><div class="alignright"><a href="http://hackaday.com/page/20/" >Newer Posts &raquo;</a></div></div><!-- end .navigation --> </div><!-- end #content -->
325
+ <div id="sidebar" class="sidebar widget-area">
326
+ <div id=tl_ad>
327
+ <script type="text/javascript"><!--
328
+ google_ad_client = "ca-pub-1812638130783065";
329
+ /* Hackaday, 300x250, created 4/26/08, MedRect sidebar */
330
+ google_ad_slot = "7800245928";
331
+ google_ad_width = 300;
332
+ google_ad_height = 250;
333
+ //-->
334
+ </script>
335
+ <script type="text/javascript"
336
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
337
+ </script>
338
+
339
+ </div>
340
+
341
+
342
+
343
+
344
+
345
+
346
+ <div class="widget">
347
+ <h4>Never Miss a Hack</h4>
348
+ <div class="textwidget">
349
+
350
+ <!-- Place this tag where you want the badge to render. -->
351
+ <div class="g-plus" data-width= "280" data-href="https://plus.google.com/114843073658390316652" data-rel="publisher" data-theme="dark"></div>
352
+ <!-- Place this tag after the last badge tag. -->
353
+ <script type="text/javascript">
354
+ (function() {
355
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
356
+ po.src = 'https://apis.google.com/js/plusone.js';
357
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
358
+ })();
359
+ </script>
360
+
361
+ <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>
362
+
363
+ <a href="https://twitter.com/hackaday" class="twitter-follow-button" data-show-count="true" data-lang="en" data-size="large">Follow @twitter</a>
364
+ <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>
365
+
366
+ <a href="http://feeds2.feedburner.com/hackaday/LgoM" target="_blank"><img src="http://hackadaycom.files.wordpress.com/2012/11/orange.png" border="0"/></a>
367
+ <div class="clear"> </div>
368
+ <!-- Begin MailChimp Signup Form -->
369
+ <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
370
+
371
+ <div id="mc_embed_signup">
372
+ <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>
373
+ <label for="mce-EMAIL">Subscribe to our mailing list for sneak previews and behind the scenes info</label>
374
+ <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
375
+ <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
376
+ </form>
377
+ </div>
378
+
379
+ <!--End mc_embed_signup-->
380
+ </div>
381
+ </div>
382
+
383
+ <div id="categories-2" class="widget widget_categories"><div class="widget-wrap"><h4 class="widgettitle">Categories</h4>
384
+ <select name='cat' id='cat' class='postform' >
385
+ <option value='-1'>Select Category</option>
386
+ <option class="level-0" value="114554125">3d Printer hacks&nbsp;&nbsp;(116)</option>
387
+ <option class="level-0" value="18020710">android hacks&nbsp;&nbsp;(240)</option>
388
+ <option class="level-0" value="18020705">arduino hacks&nbsp;&nbsp;(1029)</option>
389
+ <option class="level-0" value="27981650">ARM&nbsp;&nbsp;(51)</option>
390
+ <option class="level-0" value="33199679">Ask Hackaday&nbsp;&nbsp;(29)</option>
391
+ <option class="level-0" value="64298109">ATtiny hacks&nbsp;&nbsp;(45)</option>
392
+ <option class="level-0" value="25122024">beer hacks&nbsp;&nbsp;(63)</option>
393
+ <option class="level-0" value="12115263">blackberry hacks&nbsp;&nbsp;(8)</option>
394
+ <option class="level-0" value="10969031">cellphones hacks&nbsp;&nbsp;(337)</option>
395
+ <option class="level-0" value="35745764">chemistry hacks&nbsp;&nbsp;(102)</option>
396
+ <option class="level-0" value="24483654">classic hacks&nbsp;&nbsp;(852)</option>
397
+ <option class="level-0" value="31677810">clock hacks&nbsp;&nbsp;(189)</option>
398
+ <option class="level-0" value="18755632">cnc hacks&nbsp;&nbsp;(341)</option>
399
+ <option class="level-0" value="568165">computer hacks&nbsp;&nbsp;(390)</option>
400
+ <option class="level-0" value="78428">cons&nbsp;&nbsp;(192)</option>
401
+ <option class="level-0" value="5738">contests&nbsp;&nbsp;(136)</option>
402
+ <option class="level-0" value="3923181">cooking hacks&nbsp;&nbsp;(72)</option>
403
+ <option class="level-0" value="10969032">digital audio hacks&nbsp;&nbsp;(422)</option>
404
+ <option class="level-0" value="10969033">digital cameras hacks&nbsp;&nbsp;(415)</option>
405
+ <option class="level-0" value="10969034">downloads hacks&nbsp;&nbsp;(101)</option>
406
+ <option class="level-0" value="107827385">drone hacks&nbsp;&nbsp;(10)</option>
407
+ <option class="level-0" value="63176382">Engine Hacks&nbsp;&nbsp;(31)</option>
408
+ <option class="level-0" value="35890">Featured&nbsp;&nbsp;(72)</option>
409
+ <option class="level-0" value="551890">firefox hacks&nbsp;&nbsp;(23)</option>
410
+ <option class="level-0" value="53446541">FPGA&nbsp;&nbsp;(1)</option>
411
+ <option class="level-0" value="18020562">g1 hacks&nbsp;&nbsp;(26)</option>
412
+ <option class="level-0" value="320557">google hacks&nbsp;&nbsp;(44)</option>
413
+ <option class="level-0" value="10969036">gps hacks&nbsp;&nbsp;(108)</option>
414
+ <option class="level-0" value="24535490">green hacks&nbsp;&nbsp;(152)</option>
415
+ <option class="level-0" value="27311668">Hackaday links&nbsp;&nbsp;(146)</option>
416
+ <option class="level-0" value="21755374">Hackerspaces&nbsp;&nbsp;(93)</option>
417
+ <option class="level-0" value="6310599">HackIt&nbsp;&nbsp;(101)</option>
418
+ <option class="level-0" value="10969037">handhelds hacks&nbsp;&nbsp;(189)</option>
419
+ <option class="level-0" value="79">hardware&nbsp;&nbsp;(249)</option>
420
+ <option class="level-0" value="144422905">High Voltage Hacks&nbsp;&nbsp;(5)</option>
421
+ <option class="level-0" value="66307084">Holiday Hacks&nbsp;&nbsp;(93)</option>
422
+ <option class="level-0" value="10969038">home entertainment hacks&nbsp;&nbsp;(516)</option>
423
+ <option class="level-0" value="5660882">home hacks&nbsp;&nbsp;(705)</option>
424
+ <option class="level-0" value="2708">how-to&nbsp;&nbsp;(135)</option>
425
+ <option class="level-0" value="908478">internet hacks&nbsp;&nbsp;(2)</option>
426
+ <option class="level-0" value="831">Interviews&nbsp;&nbsp;(13)</option>
427
+ <option class="level-0" value="1416772">iphone hacks&nbsp;&nbsp;(176)</option>
428
+ <option class="level-0" value="1275163">ipod hacks&nbsp;&nbsp;(144)</option>
429
+ <option class="level-0" value="344761">kickstarter&nbsp;&nbsp;(29)</option>
430
+ <option class="level-0" value="4157506">Kindle hacks&nbsp;&nbsp;(15)</option>
431
+ <option class="level-0" value="46717088">Kinect hacks&nbsp;&nbsp;(81)</option>
432
+ <option class="level-0" value="10969048">laptops hacks&nbsp;&nbsp;(111)</option>
433
+ <option class="level-0" value="10969055">laser hacks&nbsp;&nbsp;(167)</option>
434
+ <option class="level-0" value="18020716">led hacks&nbsp;&nbsp;(695)</option>
435
+ <option class="level-0" value="10626">lifehacks&nbsp;&nbsp;(54)</option>
436
+ <option class="level-0" value="729674">linux hacks&nbsp;&nbsp;(129)</option>
437
+ <option class="level-0" value="20732807">lockpicking hacks&nbsp;&nbsp;(11)</option>
438
+ <option class="level-0" value="10969060">macs hacks&nbsp;&nbsp;(135)</option>
439
+ <option class="level-0" value="144395979">Marijuana Hacks&nbsp;&nbsp;(2)</option>
440
+ <option class="level-0" value="11284667">Medical hacks&nbsp;&nbsp;(102)</option>
441
+ <option class="level-0" value="139916">Microcontrollers&nbsp;&nbsp;(512)</option>
442
+ <option class="level-0" value="5611793">misc hacks&nbsp;&nbsp;(1747)</option>
443
+ <option class="level-0" value="18020730">multitouch hacks&nbsp;&nbsp;(89)</option>
444
+ <option class="level-0" value="22652725">musical hacks&nbsp;&nbsp;(290)</option>
445
+ <option class="level-0" value="18020722">netbook hacks&nbsp;&nbsp;(50)</option>
446
+ <option class="level-0" value="6166512">Network Hacks&nbsp;&nbsp;(4)</option>
447
+ <option class="level-0" value="103">news&nbsp;&nbsp;(1091)</option>
448
+ <option class="level-0" value="1861880">nintendo ds hacks&nbsp;&nbsp;(34)</option>
449
+ <option class="level-0" value="114555425">nintendo gameboy hacks&nbsp;&nbsp;(90)</option>
450
+ <option class="level-0" value="18020685">nintendo hacks&nbsp;&nbsp;(261)</option>
451
+ <option class="level-0" value="4992726">nintendo wii hacks&nbsp;&nbsp;(78)</option>
452
+ <option class="level-0" value="118011206">Nook Hacks&nbsp;&nbsp;(1)</option>
453
+ <option class="level-0" value="114556430">palm pre hacks&nbsp;&nbsp;(6)</option>
454
+ <option class="level-0" value="245123">parts&nbsp;&nbsp;(72)</option>
455
+ <option class="level-0" value="10969081">peripherals hacks&nbsp;&nbsp;(648)</option>
456
+ <option class="level-0" value="16325149">phone hacks&nbsp;&nbsp;(17)</option>
457
+ <option class="level-0" value="10969088">playstation hacks&nbsp;&nbsp;(120)</option>
458
+ <option class="level-0" value="2060">podcasts&nbsp;&nbsp;(8)</option>
459
+ <option class="level-0" value="10969096">portable audio hacks&nbsp;&nbsp;(66)</option>
460
+ <option class="level-0" value="10969099">portable video hacks&nbsp;&nbsp;(57)</option>
461
+ <option class="level-0" value="588444">psp hacks&nbsp;&nbsp;(47)</option>
462
+ <option class="level-0" value="23971578">radio hacks&nbsp;&nbsp;(137)</option>
463
+ <option class="level-0" value="47">rants&nbsp;&nbsp;(28)</option>
464
+ <option class="level-0" value="69218551">Raspberry Pi&nbsp;&nbsp;(153)</option>
465
+ <option class="level-0" value="21870780">repair hacks&nbsp;&nbsp;(101)</option>
466
+ <option class="level-0" value="309">reviews&nbsp;&nbsp;(19)</option>
467
+ <option class="level-0" value="10969101">robots hacks&nbsp;&nbsp;(874)</option>
468
+ <option class="level-0" value="30302">roundup&nbsp;&nbsp;(35)</option>
469
+ <option class="level-0" value="10969111">security hacks&nbsp;&nbsp;(460)</option>
470
+ <option class="level-0" value="2301">Software Development&nbsp;&nbsp;(91)</option>
471
+ <option class="level-0" value="3796421">software hacks&nbsp;&nbsp;(47)</option>
472
+ <option class="level-0" value="10969116">solar hacks&nbsp;&nbsp;(46)</option>
473
+ <option class="level-0" value="10969121">tablet pcs hacks&nbsp;&nbsp;(40)</option>
474
+ <option class="level-0" value="3075183">teardown&nbsp;&nbsp;(31)</option>
475
+ <option class="level-0" value="10969130">tool hacks&nbsp;&nbsp;(657)</option>
476
+ <option class="level-0" value="25277004">toy hacks&nbsp;&nbsp;(360)</option>
477
+ <option class="level-0" value="10969134">transportation hacks&nbsp;&nbsp;(472)</option>
478
+ <option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(332)</option>
479
+ <option class="level-0" value="3184456">video hacks&nbsp;&nbsp;(211)</option>
480
+ <option class="level-0" value="34942364">Virtual Reality&nbsp;&nbsp;(9)</option>
481
+ <option class="level-0" value="50802420">weapons hacks&nbsp;&nbsp;(63)</option>
482
+ <option class="level-0" value="12552193">wearable hacks&nbsp;&nbsp;(183)</option>
483
+ <option class="level-0" value="39510952">Weekly roundup&nbsp;&nbsp;(18)</option>
484
+ <option class="level-0" value="4891215">wireless hacks&nbsp;&nbsp;(333)</option>
485
+ <option class="level-0" value="7079455">xbox hacks&nbsp;&nbsp;(130)</option>
486
+ </select>
487
+
488
+ <script type='text/javascript'>
489
+ /* <![CDATA[ */
490
+ var dropdown = document.getElementById("cat");
491
+ function onCatChange() {
492
+ if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
493
+ location.href = "http://hackaday.com/?cat="+dropdown.options[dropdown.selectedIndex].value;
494
+ }
495
+ }
496
+ dropdown.onchange = onCatChange;
497
+ /* ]]> */
498
+ </script>
499
+
500
+ </div></div>
501
+ <div id="featured-post-2" class="widget featuredpost"><div class="widget-wrap"><h4 class="widgettitle">In case you missed it</h4>
502
+ <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()-->
503
+
504
+ <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()-->
505
+
506
+ <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()-->
507
+
508
+ <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()-->
509
+
510
+ <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()-->
511
+
512
+ <p class="more-from-category"><a href="http://hackaday.com/category/featured/" title="Featured">More Posts from this Category</a></p></div></div>
513
+ <div id="recent-comments-2" class="widget widget_recent_comments"><div class="widget-wrap"><h4 class="widgettitle">Recent comments</h4>
514
+ <ul id="recentcomments">
515
+ <li class="recentcomments">
516
+ 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>
517
+ <li class="recentcomments">
518
+ <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>
519
+ <li class="recentcomments">
520
+ 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>
521
+ <li class="recentcomments">
522
+ 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>
523
+ <li class="recentcomments">
524
+ 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>
525
+ <li class="recentcomments">
526
+ 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>
527
+ <li class="recentcomments">
528
+ 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>
529
+ <li class="recentcomments">
530
+ <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>
531
+ <li class="recentcomments">
532
+ <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>
533
+ <li class="recentcomments">
534
+ 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>
535
+ </ul>
536
+ </div></div>
537
+ <div id="calendar-2" class="widget widget_calendar"><div class="widget-wrap"><h4 class="widgettitle">Find Hacks by Date</h4>
538
+ <div id="calendar_wrap"><table id="wp-calendar">
539
+ <caption>April 2013</caption>
540
+ <thead>
541
+ <tr>
542
+ <th scope="col" title="Sunday">S</th>
543
+ <th scope="col" title="Monday">M</th>
544
+ <th scope="col" title="Tuesday">T</th>
545
+ <th scope="col" title="Wednesday">W</th>
546
+ <th scope="col" title="Thursday">T</th>
547
+ <th scope="col" title="Friday">F</th>
548
+ <th scope="col" title="Saturday">S</th>
549
+ </tr>
550
+ </thead>
551
+
552
+ <tfoot>
553
+ <tr>
554
+ <td colspan="3" id="prev"><a href="http://hackaday.com/2013/03/" title="View posts for March 2013">&laquo; Mar</a></td>
555
+ <td class="pad">&nbsp;</td>
556
+ <td colspan="3" id="next" class="pad">&nbsp;</td>
557
+ </tr>
558
+ </tfoot>
559
+
560
+ <tbody>
561
+ <tr>
562
+ <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
563
+ Doctor Who-style&nbsp;WiFi
564
+ Kindle weather and recycling&nbsp;display
565
+ Windmill made from washing machine, 555&nbsp;chip
566
+ SNES headphones scream out for Bluetooth&nbsp;control
567
+ 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
568
+ Dual displays on a Playstation&nbsp;2
569
+ Ask Hackaday: Hacking lingo&nbsp;fails
570
+ Cooling a photomultiplier&nbsp;tube
571
+ Hackerspace tour: Arch Reactor in St. Louis&nbsp;Missouri
572
+ Adafruit launches educational show aimed at&nbsp;kids
573
+ CNC Tic Tac&nbsp;Toe
574
+ Building a vehicle parking&nbsp;camera
575
+ April Fools&#8217; project teaches coworkers not to touch your&nbsp;stuff
576
+ 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
577
+ Powering the Oculus Rift with&nbsp;USB
578
+ Upgrading a router with impeccable soldering&nbsp;skills
579
+ Homebuilt Laser Cutter&nbsp;Ideas
580
+ Building a&nbsp;Theremincello
581
+ Microscope ring light with a number of different&nbsp;features
582
+ Hall effect limit switches for a 3D&nbsp;printer
583
+ 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
584
+ MP3/USB/Aux hack hidden behind cassette&nbsp;facade
585
+ Pranking a hackerspace IRC for April Fool&#8217;s&nbsp;Day
586
+ Turning an easter egg hunt into a fox&nbsp;hunt
587
+ Wireless Temperature Control for a&nbsp;Microbrewery
588
+ Melting Metal with a DIY Foundry&nbsp;Furnace
589
+ Top 10 Hacking Failures in movies: part&nbsp;2
590
+ Steampunk theremin&nbsp;goggles
591
+ High speed circuit design for quantum physics light&nbsp;sensing
592
+ 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
593
+ Electric tricycle build log is like hacker&nbsp;crack
594
+ H-bot style 3D printer moves bed for&nbsp;Z-axis
595
+ Stapler hack fastens infinitely large sheets of&nbsp;paper
596
+ 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
597
+ Rolling your own minimal USB to serial Arduino&nbsp;programmer
598
+ Making PLA stick to a 3D printer build platform by using hairspray or an acetone ABS&nbsp;slurry">6</a></td>
599
+ </tr>
600
+ <tr>
601
+ <td><a href="http://hackaday.com/2013/04/07/" title="Acoustic bass guitar uses water jug and two&nbsp;strings
602
+ Solar powered robot mows your lawn while you chill&nbsp;indoors
603
+ 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
604
+ Combo lock uses relays and logic&nbsp;gates
605
+ 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
606
+ The RedBull creation contest&nbsp;begins!
607
+ Recurve bow make from wood and&nbsp;skis
608
+ 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
609
+ MIDI pedal project looks as good as it&nbsp;sounds
610
+ 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
611
+ Guitar EQ levels trigger the stage&nbsp;lights
612
+ Top 10 best hacking scenes in&nbsp;movies
613
+ Automating a mechanical&nbsp;typewriter
614
+ 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
615
+ Horribly complicated electric guitar&nbsp;keyboard
616
+ Generating electricity from&nbsp;alcohol">12</a></td><td><a href="http://hackaday.com/2013/04/13/" title="Network-controlled fireworks&nbsp;launcher
617
+ Working 3D printed stepper&nbsp;motor
618
+ SqueezeBerry: a Raspberri Pi powered Squeezebox&nbsp;appliance">13</a></td>
619
+ </tr>
620
+ <tr>
621
+ <td><a href="http://hackaday.com/2013/04/14/" title="Teaching a computer to play Mario&#8230; seemingly through&nbsp;voodoo
622
+ Building a replacement for a broken dehumidifier&nbsp;controller
623
+ 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
624
+ [FlorianH] shows off MinimaBL, the next generation of his quadcopter&nbsp;project
625
+ 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
626
+ Building a kegerator with visual&nbsp;style
627
+ 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
628
+ Apple MagSafe cord&nbsp;repair
629
+ 3D Printing sensor mounts for the Oculus&nbsp;Rift
630
+ 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
631
+ Semi-automatic pick and place&nbsp;machine
632
+ Living night light with glowing&nbsp;algae
633
+ 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
634
+ Replace your project power supplies with recycled Li-Ion cells and a switching&nbsp;regulator
635
+ 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
636
+ GUI window manager on an AVR&nbsp;chip
637
+ Mood lamp/notifier uses neat modular PCB&nbsp;design">20</a></td>
638
+ </tr>
639
+ <tr>
640
+ <td><a href="http://hackaday.com/2013/04/21/" title="3D printing some sweet&nbsp;music
641
+ Drop-in pcb makes Nintendo Four Score a USB&nbsp;joystick
642
+ 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
643
+ Connect a Retina display to a regular&nbsp;computer
644
+ 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
645
+ What are the best hacking&nbsp;documentaries?
646
+ OTM-02 is a 3D printed&nbsp;wristwatch
647
+ 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>
648
+ </tr>
649
+ <tr>
650
+ <td>28</td><td>29</td><td>30</td>
651
+ <td class="pad" colspan="4">&nbsp;</td>
652
+ </tr>
653
+ </tbody>
654
+ </table></div></div></div>
655
+ <div id=virurl>
656
+ <!-- BEGIN - VIRURL Widget - iFrame Embed Code -->
657
+ <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"
658
+ width="300" height="600" scrolling="no" >
659
+ </iframe>
660
+ <!-- END - VIRURL Widget - iFrame Embed Code -->
661
+ </div>
662
+ <br />
663
+ <br />
664
+ <div id=tl_ad_bottom>
665
+ <script type="text/javascript"><!--
666
+ google_ad_client = "ca-pub-1812638130783065";
667
+ /* Hackaday sidebar wide skyscraper */
668
+ google_ad_slot = "1587378096";
669
+ google_ad_width = 160;
670
+ google_ad_height = 600;
671
+ google_ad_region = "test";
672
+ //-->
673
+ </script>
674
+ <script type="text/javascript"
675
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
676
+ </script>
677
+ </div>
678
+
679
+
680
+ <br />
681
+
682
+
683
+
684
+
685
+
686
+
687
+ </div> </div><!-- end #content-sidebar-wrap -->
688
+ </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 -->
689
+ <script type="text/javascript">
690
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
691
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
692
+ </script>
693
+ <script type="text/javascript">
694
+ var pageTracker = _gat._getTracker("UA-2201445-6");
695
+ pageTracker._trackPageview();
696
+ </script>
697
+ <!-- Start Quantcast tag -->
698
+ <script type="text/javascript">
699
+ _qoptions={
700
+ qacct:"p-cc6zkdHuZwUDM"
701
+ };
702
+ </script>
703
+ <script type="text/javascript"
704
+ src="http://edge.quantserve.com/quant.js"></script>
705
+ <noscript>
706
+ <img src="http://pixel.quantserve.com/pixel/p-cc6zkdHuZwUDM.gif"
707
+ style="display: none;" border="0" height="1" width="1"
708
+ alt="Quantcast"/>
709
+ </noscript></div><!-- end #wrap -->
710
+
711
+ <script type="text/javascript">
712
+ var _qevents = _qevents || [], wpcomQuantcastData = {"qacct":"p-18-mFEk4J448M","labels":",language.en,type.wpcom,vip.hackadaycom"};
713
+ function wpcomQuantcastPixel( labels, options ) {
714
+ var i, defaults = wpcomQuantcastData, data = { event: 'ajax' };
715
+
716
+ labels = labels || '';
717
+ options = options || {};
718
+
719
+ if ( typeof labels != 'string' )
720
+ options = labels;
721
+
722
+ for ( i in defaults ) {
723
+ data[i] = defaults[i];
724
+ }
725
+
726
+ for ( i in options ) {
727
+ data[i] = options[i];
728
+ }
729
+
730
+ if ( data.labels ) {
731
+ data.labels += ',' + labels;
732
+ } else {
733
+ data.labels = labels;
734
+ }
735
+
736
+ _qevents.push( data );
737
+ };
738
+ (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); })();
739
+ _qevents.push( wpcomQuantcastData );
740
+ </script>
741
+ <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>
742
+
743
+
744
+ <!-- /// LOAD CHARTBEAT /// -->
745
+ <script type="text/javascript">
746
+ var _sf_async_config={};
747
+ _sf_async_config.uid = 2021;
748
+ _sf_async_config.useCanonical = true;
749
+
750
+ (function(){
751
+ function loadChartbeat() {
752
+ window._sf_endpt=(new Date()).getTime();
753
+ var e = document.createElement('script');
754
+ e.setAttribute('language', 'javascript');
755
+ e.setAttribute('type', 'text/javascript');
756
+ e.setAttribute('src',
757
+ (("https:" == document.location.protocol) ? "https://s3.amazonaws.com/" : "http://") +
758
+ "static.chartbeat.com/js/chartbeat.js");
759
+ document.body.appendChild(e);
760
+ }
761
+ var oldonload = window.onload;
762
+ window.onload = (typeof window.onload != 'function') ?
763
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
764
+ })();
765
+ </script>
766
+ <div style="display:none">
767
+ </div>
768
+ <script type='text/javascript' src='http://s2.wp.com/_static/??-eJylzMsOREAQRuEXMoqgEwvxLC4/qjPVOl3dZh4fO3vrk+/Qz3+m3UW4SFZpxsET/D+3mtEjxQ0CJR8gnIRWOCgrfXm8lcAl0uQRFtbtlR3Cqtegl66smto0xhStPQEw5Dy+'></script>
769
+ <script type="text/javascript">
770
+ // <![CDATA[
771
+ (function() {
772
+ try{
773
+ if ( window.external &&'msIsSiteMode' in window.external) {
774
+ if (window.external.msIsSiteMode()) {
775
+ var jl = document.createElement('script');
776
+ jl.type='text/javascript';
777
+ jl.async=true;
778
+ jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
779
+ var s = document.getElementsByTagName('script')[0];
780
+ s.parentNode.insertBefore(jl, s);
781
+ }
782
+ }
783
+ }catch(e){}
784
+ })();
785
+ // ]]>
786
+ </script><script src="http://s.stats.wordpress.com/w.js?21" type="text/javascript"></script>
787
+ <script type="text/javascript">
788
+ st_go({'blog':'4779443','v':'wpcom','tz':'-7','user_id':'0','subd':'hackadaycom'});
789
+ 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();}
790
+ ex_go({'crypt':'UE40eW5QN0p8M2Y/RE1BNmNJfGhxNCVxUDExYmtXRThKbHcwXTdETWI1alhvb1oseHImN101ZFpEakVpYjlQYVFLYzBaVHRtPz0wXS9bVlFpZ3c1Qn5KSThLNS9lSHNGOE1IJk9+N3xFNWxyT2x+MUpnR1dJcFZJLXwvemU2JkIyaVpocEtidXdHajMvMHQxc20ucitkST9Eem5qT3E3NEdVYXMyYVJnS0ZJUTNCWzd5X0M1W3U9Nks5cUVJUV1BSmNyM3dzcXFbdDh2eEF4TXx8d100cUVmR09LaDElc2xQW3NLd1p8WmU3V25aTXpwK1Z3X0RbXy1JR0xiZmI='});
791
+ addLoadEvent(function(){linktracker_init('4779443',0);});
792
+ </script>
793
+ <noscript><img src="http://stats.wordpress.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
794
+ <script type="text/javascript">
795
+ // Trigger Quantcast pixel for each Infinite Scroll post load
796
+ if ( 'function' === typeof( jQuery ) ) {
797
+ jQuery( document.body ).on( 'post-load', function() {
798
+ if ( 'function' === typeof( wpcomQuantcastPixel ) )
799
+ wpcomQuantcastPixel();
800
+ } );
801
+ }
802
+ </script>
803
+ </body>
804
+ </html>