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,801 @@
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 90 seconds ago
5
+ generated in 0.329 seconds
6
+ served from batcache in 0.002 seconds
7
+ expires in 210 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=1366801067&amp;back=hackaday.com%2Fpage%2F40%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-40 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-95775 post type-post status-publish format-standard hentry category-home-hacks category-microcontrollers tag-attiny13 tag-batteries tag-doorbell tag-wireless">
197
+
198
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/07/wireless-doorbell-battery-monitor/" title="Wireless doorbell battery&nbsp;monitor" rel="bookmark">Wireless doorbell battery&nbsp;monitor</a></h2>
199
+
200
+ <div class="post-info"><span class="date published time" title="2013-03-07T18:01:48+00:00">March 7, 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/07/wireless-doorbell-battery-monitor/#comments">8 Comments</a></span> </div> <div class="entry-content">
201
+ <p><img class="aligncenter size-large wp-image-95776" alt="wireless-doorbell-battery-monitor" src="http://hackadaycom.files.wordpress.com/2013/03/wireless-doorbell-battery-monitor.jpg?w=460&#038;h=450" width="460" height="450" /></p>
202
+ <p>We know exactly what [Dan] is going through. We also bought a cheap wireless doorbell and are plagued by the batteries running down. When that happens, the only way you know is when people start pounding on the door because you&#8217;re not answering the bell. Well no more for [Dan]. He built <a href="http://trandi.wordpress.com/2013/03/07/improve-wireless-doorbell/">a backup system which monitors the voltage of the batteries</a> on the chime unit.</p>
203
+ <p>You can see the small bit of protoboard he used to house the microcontroller and the UI. It&#8217;s an ATtiny13 along with a green LED and a single push button. The idea is to use the chip&#8217;s ADC to monitor the voltage level of the pair of batteries which power the chime. When it drops below 3V the green LED will come on.</p>
204
+ <p>First off, we wish these things would come with better power supply circuits. For instance, we just replaced the CR2032 in an Apple TV remote and measured the voltage at 2.7V. That remote and the chime both run from a 3V source. Can&#8217;t they be made to work down to 1.8V? But we digress.</p>
205
+ <p>In addition to monitoring voltage [Dan's] rig also counts the number of times the chime has rung. Every eight seconds it flashes the count in binary, unless he presses the red button to clear the count. This is shown in the video after the break. We guess he wants to know how many times this thing can be used before running the batteries down.</p>
206
+ <p>Seriously though, for a rarely used item like this how hard would it be to use ambient light harvesting to help save the batteries? Looking at <a href="http://hackaday.com/2012/01/23/reviewing-the-numbers-from-one-month-of-solar-harvesting/">some indoor solar harvesting numbers</a> shows it might be impossible to only power this from PV, but what if there was a super-cap which would be topped off with a trickle from the panels but would still use the batteries when that runs down?</p>
207
+ <p> <a href="http://hackaday.com/2013/03/07/wireless-doorbell-battery-monitor/#more-95775" class="more-link">[Read more...]</a></p>
208
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
209
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/home-hacks/" title="View all posts in home hacks" rel="category tag">home hacks</a>, <a href="http://hackaday.com/category/microcontrollers/" title="View all posts in Microcontrollers" rel="category tag">Microcontrollers</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/attiny13/" rel="tag">attiny13</a>, <a href="http://hackaday.com/tag/batteries/" rel="tag">batteries</a>, <a href="http://hackaday.com/tag/doorbell/" rel="tag">doorbell</a>, <a href="http://hackaday.com/tag/wireless/" rel="tag">wireless</a></span> </div>
210
+ </div><!-- end .postclass -->
211
+ <div class="post-95707 post type-post status-publish format-standard hentry category-arduino-hacks tag-arduino-pro-mini tag-brown-note-tone-generator tag-dr-who tag-emf-meter tag-sonic-screwdriver tag-universal-remote">
212
+
213
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/07/real-multifunction-sonic-screwdriver/" title="Real multifunction &#8220;Sonic&nbsp;Screwdriver&#8221;" rel="bookmark">Real multifunction &#8220;Sonic&nbsp;Screwdriver&#8221;</a></h2>
214
+
215
+ <div class="post-info"><span class="date published time" title="2013-03-07T16:01:50+00:00">March 7, 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/07/real-multifunction-sonic-screwdriver/#comments">23 Comments</a></span> </div> <div class="entry-content">
216
+ <p><img class="alignnone size-full wp-image-95708" alt="dr who sonic screwdriver" src="http://hackadaycom.files.wordpress.com/2013/03/dr-who-sonic-screwdriver.jpg?w=470&#038;h=264" width="470" height="264" /></p>
217
+ <p>&#8220;I don&#8217;t understand, you don&#8217;t have the technology.&#8221; OK, so it&#8217;s not actually a futuristic tool with the same capabilities as the one off the hit TV series Dr. Who, but <a href="http://salviusrobot.blogspot.com/2012/12/diy-sonic-screwdriver.html">this homemade &#8220;sonic screwdriver&#8221;</a> <em>is</em> a multifunction device that&#8217;s pretty cool nonetheless.</p>
218
+ <p>Created around an Arduino Pro Mini, [Gunther] really one-upped <a href="http://hackaday.com/2012/07/12/sonic-screwdriver-controls-your-tv-doesnt-work-on-wood/">the last screwdriver we featured</a>. Built in functions include: brown note tone generator, dog whistle, EMF meter, flashlight, IR universal remote, laser pointer, ohm meter, sound level meter, voltage detector, and a voltage meter.  You can also have an electromagnet or output voltage supply if you want. If that wasn&#8217;t enough, it can even play the theme song from Star Wars! Whew. That&#8217;s a mouthful of functionality.</p>
219
+ <p>Although he <em>has</em> posted <a href="https://gist.github.com/gunthercox/4179931">the Arduino code</a>, you&#8217;ll have to keep an eye on his site for more details if you want to create your own. He&#8217;s mentioned that he&#8217;s working on blue prints and a full parts list&#8230; Awesome. Now where&#8217;s that lock pick function?</p>
220
+ <p>Check out a video showing off some of the features after the break.</p>
221
+ <p>[via <a href="http://blog.makezine.com/">Make</a>]<br />
222
+ <a href="http://hackaday.com/2013/03/07/real-multifunction-sonic-screwdriver/#more-95707" class="more-link">[Read more...]</a></p>
223
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
224
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/arduino-hacks/" title="View all posts in arduino hacks" rel="category tag">arduino hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/arduino-pro-mini/" rel="tag">arduino pro mini</a>, <a href="http://hackaday.com/tag/brown-note-tone-generator/" rel="tag">brown note tone generator</a>, <a href="http://hackaday.com/tag/dr-who/" rel="tag">dr. who</a>, <a href="http://hackaday.com/tag/emf-meter/" rel="tag">emf meter</a>, <a href="http://hackaday.com/tag/sonic-screwdriver/" rel="tag">sonic screwdriver</a>, <a href="http://hackaday.com/tag/universal-remote/" rel="tag">universal remote</a></span> </div>
225
+ </div><!-- end .postclass -->
226
+ <div class="post-95734 post type-post status-publish format-standard hentry category-hardware tag-bga tag-rework-station tag-solder">
227
+
228
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/07/bga-rework-station/" title="BGA rework&nbsp;station" rel="bookmark">BGA rework&nbsp;station</a></h2>
229
+
230
+ <div class="post-info"><span class="date published time" title="2013-03-07T14:01:07+00:00">March 7, 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/07/bga-rework-station/#comments">16 Comments</a></span> </div> <div class="entry-content">
231
+ <p><img class="aligncenter size-full wp-image-95735" alt="BGA" src="http://hackadaycom.files.wordpress.com/2013/03/bga.jpg?w=580&#038;h=294" width="580" height="294" /></p>
232
+ <p>SMD components may be a little challenging for the home builder &#8211; even though the&#8217;re inordinately practical for homebrew PCBs &#8211; but if you play around with electronics and solder long enough, you&#8217;re eventually going to run into the horrors of BGA parts. Instead of convenient pins, BGA parts have tiny metallic balls on which solder is applied, a board is thrown through a reflow oven, and hopefully at the end, everything works. Sometimes these balls corrode or otherwise need to be reflowed. This isn&#8217;t an easy process, so [Edmar] came up with <a href="http://edmarhobby.blogspot.de/2012/07/diy-bga-rework-station.html">his own BGA rework station</a> that costs much less than commercial offerings.</p>
233
+ <p>[Edmar]&#8216;s build began when he wanted to repair a graphics card. A common error on his Amilo XI2428 graphics card is having the small balls on the underside of the chip corrode, leaving the user with a non-functional graphics card. <a href="http://www.engadget.com/2007/01/15/towel-trick-provides-temporary-fix-to-xbox-360s-red-ring-of-d/">Towel trick</a> notwithstanding, the easiest way to fix this error is to heat up the card to above the melting point of solder, removing the chip, and resoldering it with careful application of solder paste.</p>
234
+ <p>[Edmar]&#8216;s reflow station is made of an electric skillet for the bottom of the board, an infrared lamp for the top side of the board, and control circuitry constructed from an ATMega128, temperature sensors, and a huge power supply. The temperature is controlled via USB by a computer, allowing [Edmar] to set a temperature profile as recommended by the BGA chip&#8217;s data sheet.</p>
235
+ <p>Right now, removing a BGA chip works great, but [Edmar] is still working on the tech necessary to replace a BGA chip on a board.</p>
236
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
237
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/hardware/" title="View all posts in hardware" rel="category tag">hardware</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/bga/" rel="tag">bga</a>, <a href="http://hackaday.com/tag/rework-station/" rel="tag">rework station</a>, <a href="http://hackaday.com/tag/solder/" rel="tag">solder</a></span> </div>
238
+ </div><!-- end .postclass -->
239
+ <div align="center">
240
+
241
+
242
+
243
+ <script type="text/javascript"><!--
244
+
245
+ google_ad_client = "ca-pub-1812638130783065";
246
+
247
+ /* Hackaday, 300x250, created 4/26/08, MedRect main column */
248
+
249
+ google_ad_slot = "3449215672";
250
+
251
+ google_ad_width = 300;
252
+
253
+ google_ad_height = 250;
254
+
255
+ //-->
256
+
257
+ </script>
258
+
259
+ <script type="text/javascript"
260
+
261
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
262
+
263
+ </script>
264
+
265
+
266
+
267
+ </div> <div class="post-95740 post type-post status-publish format-standard hentry category-high-voltage-hacks category-weapons-hacks tag-shock tag-stun tag-sword">
268
+
269
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/07/shock-sword-works-best-on-foes-who-fight-with-multiple-blades/" title="Shock sword works best on foes who fight with multiple&nbsp;blades" rel="bookmark">Shock sword works best on foes who fight with multiple&nbsp;blades</a></h2>
270
+
271
+ <div class="post-info"><span class="date published time" title="2013-03-07T12:01:05+00:00">March 7, 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/07/shock-sword-works-best-on-foes-who-fight-with-multiple-blades/#comments">57 Comments</a></span> </div> <div class="entry-content">
272
+ <p><img class="aligncenter size-large wp-image-95741" alt="shock-sword" src="http://hackadaycom.files.wordpress.com/2013/03/shock-sword.png?w=580&#038;h=410" width="580" height="410" /></p>
273
+ <p>This project most certainly has some of <em>Trailer Park Boys </em>rolled into it. We say that because the living room is the only place this will ever been used and this guy&#8217;s reaction to getting shocked is exactly how [Ricky] would respond.</p>
274
+ <p><a href="http://www.theblaze.com/stories/2013/03/05/what-do-you-get-when-you-combine-a-sword-and-electroshock-weapon-this-terrifying-homemade-taser-sword/">The sword on the left has an electronic stun</a> mechanism built into it. it works by energizing two blades which are separated by nylon bolts and spacers. Look closely at the tip and you&#8217;ll see the blue glow which indicates high voltage. To shock your victim you have to touch them with both blades at the same time. This is demonstrated in one of the videos after the break. But the real pain comes when [Jonathan] &#8212; the guy who built the stun sword &#8212; touches it on either side with this pair of blades. His body completes the connection and his NSFW language tells the tale of how it feels.</p>
275
+ <p>This thing seems to pack a bit more of a punch than <a href="http://hackaday.com/2012/08/27/the-taserdrone-a-shocking-mod-for-the-ar-drone/">our own stun-gun enabled quadcopter</a>.</p>
276
+ <p> <a href="http://hackaday.com/2013/03/07/shock-sword-works-best-on-foes-who-fight-with-multiple-blades/#more-95740" class="more-link">[Read more...]</a></p>
277
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
278
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/high-voltage-hacks/" title="View all posts in High Voltage Hacks" rel="category tag">High Voltage Hacks</a>, <a href="http://hackaday.com/category/weapons-hacks/" title="View all posts in weapons hacks" rel="category tag">weapons hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/shock/" rel="tag">shock</a>, <a href="http://hackaday.com/tag/stun/" rel="tag">stun</a>, <a href="http://hackaday.com/tag/sword/" rel="tag">sword</a></span> </div>
279
+ </div><!-- end .postclass -->
280
+ <div class="post-95745 post type-post status-publish format-standard hentry category-3d-printer-hacks tag-gumm">
281
+
282
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/07/fabricating-edible-leds/" title="Fabricating edible&nbsp;LEDs" rel="bookmark">Fabricating edible&nbsp;LEDs</a></h2>
283
+
284
+ <div class="post-info"><span class="date published time" title="2013-03-07T10:01:02+00:00">March 7, 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/07/fabricating-edible-leds/#comments">24 Comments</a></span> </div> <div class="entry-content">
285
+ <p><img class="aligncenter size-large wp-image-95746" alt="fabricating-edible-LEDs" src="http://hackadaycom.files.wordpress.com/2013/03/fabricating-edible-leds.jpg?w=580&#038;h=334" width="580" height="334" /></p>
286
+ <p>They&#8217;re edible, yes. But they don&#8217;t light up. That&#8217;s fine with us, since the process [Becky Stern] used to <a href="http://learn.adafruit.com/led-gummy-candies/">make these gummy candy LEDs</a> taps into several techniques handy to have under your belt.</p>
287
+ <p>The first part shown in her video (embedded after the jump) is to make a mold for the candies. You probably have a few bags of LEDs in your parts bin. Those along with a trough made of foam core come together to create the form for the silicone mold. After mixing, pouring, and hardening, [Becky] peels the silicone off of the LEDs and sends it through the oven to make it food-safe. Mixing up the candy uses simple ingredients (gelatin, water, and ascorbic acid) but you&#8217;ll need to follow the methodology closely to get the taste and clarity you&#8217;re used to. Syringes are used to fill the tiny voids in the mold before adding leads which were 3D printed using PLA.</p>
288
+ <p>These will be a huge hit at your next hackerspace meeting!</p>
289
+ <p> <a href="http://hackaday.com/2013/03/07/fabricating-edible-leds/#more-95745" class="more-link">[Read more...]</a></p>
290
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
291
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/3d-printer-hacks/" title="View all posts in 3d Printer hacks" rel="category tag">3d Printer hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/gumm/" rel="tag">gumm</a></span> </div>
292
+ </div><!-- end .postclass -->
293
+ <div class="post-95640 post type-post status-publish format-standard hentry category-computer-hacks category-software-hacks tag-macintosh tag-powermac-7200 tag-retro-computing">
294
+
295
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/07/debian-linux-on-a-powermac-7200/" title="Debian Linux on a PowerMac&nbsp;7200" rel="bookmark">Debian Linux on a PowerMac&nbsp;7200</a></h2>
296
+
297
+ <div class="post-info"><span class="date published time" title="2013-03-07T08:01:53+00:00">March 7, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/jeremyscook/" class="fn n" title="Jeremy Cook" rel="author">Jeremy Cook</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/07/debian-linux-on-a-powermac-7200/#comments">27 Comments</a></span> </div> <div class="entry-content">
298
+ <p><a href="http://hackaday.com/?attachment_id=95641" rel="attachment wp-att-95641"><img class="aligncenter size-large wp-image-95641" alt="debian-7200" src="http://hackadaycom.files.wordpress.com/2013/03/debian-7200.jpg?w=559&#038;h=450" width="559" height="450" /></a></p>
299
+ <p>Those of us that run Linux on a modern or nearly-modern PC know that it&#8217;s a capable operating system.  It&#8217;s also (at least in my case with Ubuntu) extremely easy to install on a semi-modern computer. On a mid-90s era <a title="Debian Linux on a Powermac 7200 part 2" href="http://www.insentricity.com/a.cl/198/PowerMacHack" target="_blank">PowerMac 7200, things aren&#8217;t quite so simple</a>.</p>
300
+ <p>In a testament to both his technical ability, and possibly even more so his tenacity, [Chris] was able to get Debian 6.07 running on a PowerMac destined for destruction. He had slated a few hours to upgrade this 56 Megabyte monster, but it turned out to be a several-day event. Those that are well-schooled in Linux may find the hairy details useful, and some <a title="Debian Linux on a Powermac 7200 part 1" href="http://www.insentricity.com/a.cl/197/TryingToGetLinuxOnAP" target="_blank">more background can be found in part one</a>. This project was a stepping-stone to something else, so we&#8217;re anxious to see what the end result is.</p>
301
+ <p>If you find this interesting, feel free to check out the <a title="retro hackaday" href="http://retro.hackaday.com/" target="_blank">retro edition of our site</a>. It&#8217;s not entirely about ancient computers, but it can hopefully be displayed on one.</p>
302
+ <p>via <a title="Twitter" href="https://twitter.com/" target="_blank">[twitter]</a></p>
303
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
304
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/computer-hacks/" title="View all posts in computer hacks" rel="category tag">computer hacks</a>, <a href="http://hackaday.com/category/software-hacks/" title="View all posts in software hacks" rel="category tag">software hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/macintosh/" rel="tag">macintosh</a>, <a href="http://hackaday.com/tag/powermac-7200/" rel="tag">PowerMac 7200</a>, <a href="http://hackaday.com/tag/retro-computing/" rel="tag">retro computing</a></span> </div>
305
+ </div><!-- end .postclass -->
306
+ <div class="post-95647 post type-post status-publish format-standard hentry category-misc-hacks tag-aerospace tag-pongsat tag-satellite">
307
+
308
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/07/diy-space-experiments-within-a-ping-pong-ball-satellite/" title="DIY space experiments within a ping pong ball&nbsp;&#8216;satellite&#8217;" rel="bookmark">DIY space experiments within a ping pong ball&nbsp;&#8216;satellite&#8217;</a></h2>
309
+
310
+ <div class="post-info"><span class="date published time" title="2013-03-07T06:01:48+00:00">March 7, 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/07/diy-space-experiments-within-a-ping-pong-ball-satellite/#comments">35 Comments</a></span> </div> <div class="entry-content">
311
+ <p><img class="alignnone size-full wp-image-95648" title="Pongsat" alt="Pongsat space satellite" src="http://hackadaycom.files.wordpress.com/2013/03/pongsat.jpg?w=470&#038;h=265" width="470" height="265" /></p>
312
+ <p>Ahhh space. The final frontier. While many people dream of one day becoming an astronaut (and possibly battling aliens or cylons), it&#8217;s a select few who actually make it their reality. Fortunately for us, there&#8217;s a middle ground that allows the masses to still have some fun in the sky. Enter the <a href="http://www.jpaerospace.com/pongsat/index.htm">&#8220;Pongsat&#8221; program &#8211; space experiments within a ping pong ball.</a></p>
313
+ <p>Created by <a href="http://www.jpaerospace.com/">JP Aerospace</a>, this <strong>free</strong> program allows anyone to create their own mini experiment and send it off to the edge of space. The imagination is the limit. Curious if a marshmallow will expand? Interested what the temperature would be? Wonder if you can charge a solar battery? Stuff it inside a ping pong ball and find out!</p>
314
+ <p>Check out the <a href="http://jpaerospace.com/pongsat/PongSGuide-n.PDF">PDF Users Guide</a> to get started, then their <a href="http://jpaerospace.com/blog/">Blog</a> and <a href="http://www.facebook.com/pages/PongSat/250288635034145">Facebook page</a> for more up to date information.  Now go out there and get your experiment to Mars! (Or at least 100,00 feet)</p>
315
+ <p>Watch a video of in flight footage after the break.</p>
316
+ <p>[via <a href="http://www.adafruit.com/blog/">adafruit</a>]<br />
317
+ <a href="http://hackaday.com/2013/03/07/diy-space-experiments-within-a-ping-pong-ball-satellite/#more-95647" class="more-link">[Read more...]</a></p>
318
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
319
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/misc-hacks/" title="View all posts in misc hacks" rel="category tag">misc hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/aerospace/" rel="tag">aerospace</a>, <a href="http://hackaday.com/tag/pongsat/" rel="tag">pongsat</a>, <a href="http://hackaday.com/tag/satellite/" rel="tag">satellite</a></span> </div>
320
+ </div><!-- end .postclass -->
321
+ <div class="navigation"><div class="alignleft"><a href="http://hackaday.com/page/41/" >&laquo; Older Posts</a></div><div class="alignright"><a href="http://hackaday.com/page/39/" >Newer Posts &raquo;</a></div></div><!-- end .navigation --> </div><!-- end #content -->
322
+ <div id="sidebar" class="sidebar widget-area">
323
+ <div id=tl_ad>
324
+ <script type="text/javascript"><!--
325
+ google_ad_client = "ca-pub-1812638130783065";
326
+ /* Hackaday, 300x250, created 4/26/08, MedRect sidebar */
327
+ google_ad_slot = "7800245928";
328
+ google_ad_width = 300;
329
+ google_ad_height = 250;
330
+ //-->
331
+ </script>
332
+ <script type="text/javascript"
333
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
334
+ </script>
335
+
336
+ </div>
337
+
338
+
339
+
340
+
341
+
342
+
343
+ <div class="widget">
344
+ <h4>Never Miss a Hack</h4>
345
+ <div class="textwidget">
346
+
347
+ <!-- Place this tag where you want the badge to render. -->
348
+ <div class="g-plus" data-width= "280" data-href="https://plus.google.com/114843073658390316652" data-rel="publisher" data-theme="dark"></div>
349
+ <!-- Place this tag after the last badge tag. -->
350
+ <script type="text/javascript">
351
+ (function() {
352
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
353
+ po.src = 'https://apis.google.com/js/plusone.js';
354
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
355
+ })();
356
+ </script>
357
+
358
+ <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>
359
+
360
+ <a href="https://twitter.com/hackaday" class="twitter-follow-button" data-show-count="true" data-lang="en" data-size="large">Follow @twitter</a>
361
+ <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>
362
+
363
+ <a href="http://feeds2.feedburner.com/hackaday/LgoM" target="_blank"><img src="http://hackadaycom.files.wordpress.com/2012/11/orange.png" border="0"/></a>
364
+ <div class="clear"> </div>
365
+ <!-- Begin MailChimp Signup Form -->
366
+ <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
367
+
368
+ <div id="mc_embed_signup">
369
+ <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>
370
+ <label for="mce-EMAIL">Subscribe to our mailing list for sneak previews and behind the scenes info</label>
371
+ <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
372
+ <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
373
+ </form>
374
+ </div>
375
+
376
+ <!--End mc_embed_signup-->
377
+ </div>
378
+ </div>
379
+
380
+ <div id="categories-2" class="widget widget_categories"><div class="widget-wrap"><h4 class="widgettitle">Categories</h4>
381
+ <select name='cat' id='cat' class='postform' >
382
+ <option value='-1'>Select Category</option>
383
+ <option class="level-0" value="114554125">3d Printer hacks&nbsp;&nbsp;(116)</option>
384
+ <option class="level-0" value="18020710">android hacks&nbsp;&nbsp;(240)</option>
385
+ <option class="level-0" value="18020705">arduino hacks&nbsp;&nbsp;(1029)</option>
386
+ <option class="level-0" value="27981650">ARM&nbsp;&nbsp;(51)</option>
387
+ <option class="level-0" value="33199679">Ask Hackaday&nbsp;&nbsp;(29)</option>
388
+ <option class="level-0" value="64298109">ATtiny hacks&nbsp;&nbsp;(45)</option>
389
+ <option class="level-0" value="25122024">beer hacks&nbsp;&nbsp;(63)</option>
390
+ <option class="level-0" value="12115263">blackberry hacks&nbsp;&nbsp;(8)</option>
391
+ <option class="level-0" value="10969031">cellphones hacks&nbsp;&nbsp;(337)</option>
392
+ <option class="level-0" value="35745764">chemistry hacks&nbsp;&nbsp;(102)</option>
393
+ <option class="level-0" value="24483654">classic hacks&nbsp;&nbsp;(852)</option>
394
+ <option class="level-0" value="31677810">clock hacks&nbsp;&nbsp;(189)</option>
395
+ <option class="level-0" value="18755632">cnc hacks&nbsp;&nbsp;(341)</option>
396
+ <option class="level-0" value="568165">computer hacks&nbsp;&nbsp;(390)</option>
397
+ <option class="level-0" value="78428">cons&nbsp;&nbsp;(192)</option>
398
+ <option class="level-0" value="5738">contests&nbsp;&nbsp;(136)</option>
399
+ <option class="level-0" value="3923181">cooking hacks&nbsp;&nbsp;(72)</option>
400
+ <option class="level-0" value="10969032">digital audio hacks&nbsp;&nbsp;(422)</option>
401
+ <option class="level-0" value="10969033">digital cameras hacks&nbsp;&nbsp;(415)</option>
402
+ <option class="level-0" value="10969034">downloads hacks&nbsp;&nbsp;(101)</option>
403
+ <option class="level-0" value="107827385">drone hacks&nbsp;&nbsp;(10)</option>
404
+ <option class="level-0" value="63176382">Engine Hacks&nbsp;&nbsp;(31)</option>
405
+ <option class="level-0" value="35890">Featured&nbsp;&nbsp;(72)</option>
406
+ <option class="level-0" value="551890">firefox hacks&nbsp;&nbsp;(23)</option>
407
+ <option class="level-0" value="53446541">FPGA&nbsp;&nbsp;(1)</option>
408
+ <option class="level-0" value="18020562">g1 hacks&nbsp;&nbsp;(26)</option>
409
+ <option class="level-0" value="320557">google hacks&nbsp;&nbsp;(44)</option>
410
+ <option class="level-0" value="10969036">gps hacks&nbsp;&nbsp;(108)</option>
411
+ <option class="level-0" value="24535490">green hacks&nbsp;&nbsp;(152)</option>
412
+ <option class="level-0" value="27311668">Hackaday links&nbsp;&nbsp;(146)</option>
413
+ <option class="level-0" value="21755374">Hackerspaces&nbsp;&nbsp;(93)</option>
414
+ <option class="level-0" value="6310599">HackIt&nbsp;&nbsp;(101)</option>
415
+ <option class="level-0" value="10969037">handhelds hacks&nbsp;&nbsp;(189)</option>
416
+ <option class="level-0" value="79">hardware&nbsp;&nbsp;(249)</option>
417
+ <option class="level-0" value="144422905">High Voltage Hacks&nbsp;&nbsp;(5)</option>
418
+ <option class="level-0" value="66307084">Holiday Hacks&nbsp;&nbsp;(93)</option>
419
+ <option class="level-0" value="10969038">home entertainment hacks&nbsp;&nbsp;(516)</option>
420
+ <option class="level-0" value="5660882">home hacks&nbsp;&nbsp;(705)</option>
421
+ <option class="level-0" value="2708">how-to&nbsp;&nbsp;(135)</option>
422
+ <option class="level-0" value="908478">internet hacks&nbsp;&nbsp;(2)</option>
423
+ <option class="level-0" value="831">Interviews&nbsp;&nbsp;(13)</option>
424
+ <option class="level-0" value="1416772">iphone hacks&nbsp;&nbsp;(176)</option>
425
+ <option class="level-0" value="1275163">ipod hacks&nbsp;&nbsp;(144)</option>
426
+ <option class="level-0" value="344761">kickstarter&nbsp;&nbsp;(29)</option>
427
+ <option class="level-0" value="4157506">Kindle hacks&nbsp;&nbsp;(15)</option>
428
+ <option class="level-0" value="46717088">Kinect hacks&nbsp;&nbsp;(81)</option>
429
+ <option class="level-0" value="10969048">laptops hacks&nbsp;&nbsp;(111)</option>
430
+ <option class="level-0" value="10969055">laser hacks&nbsp;&nbsp;(167)</option>
431
+ <option class="level-0" value="18020716">led hacks&nbsp;&nbsp;(695)</option>
432
+ <option class="level-0" value="10626">lifehacks&nbsp;&nbsp;(54)</option>
433
+ <option class="level-0" value="729674">linux hacks&nbsp;&nbsp;(129)</option>
434
+ <option class="level-0" value="20732807">lockpicking hacks&nbsp;&nbsp;(11)</option>
435
+ <option class="level-0" value="10969060">macs hacks&nbsp;&nbsp;(135)</option>
436
+ <option class="level-0" value="144395979">Marijuana Hacks&nbsp;&nbsp;(2)</option>
437
+ <option class="level-0" value="11284667">Medical hacks&nbsp;&nbsp;(102)</option>
438
+ <option class="level-0" value="139916">Microcontrollers&nbsp;&nbsp;(512)</option>
439
+ <option class="level-0" value="5611793">misc hacks&nbsp;&nbsp;(1747)</option>
440
+ <option class="level-0" value="18020730">multitouch hacks&nbsp;&nbsp;(89)</option>
441
+ <option class="level-0" value="22652725">musical hacks&nbsp;&nbsp;(290)</option>
442
+ <option class="level-0" value="18020722">netbook hacks&nbsp;&nbsp;(50)</option>
443
+ <option class="level-0" value="6166512">Network Hacks&nbsp;&nbsp;(4)</option>
444
+ <option class="level-0" value="103">news&nbsp;&nbsp;(1091)</option>
445
+ <option class="level-0" value="1861880">nintendo ds hacks&nbsp;&nbsp;(34)</option>
446
+ <option class="level-0" value="114555425">nintendo gameboy hacks&nbsp;&nbsp;(90)</option>
447
+ <option class="level-0" value="18020685">nintendo hacks&nbsp;&nbsp;(261)</option>
448
+ <option class="level-0" value="4992726">nintendo wii hacks&nbsp;&nbsp;(78)</option>
449
+ <option class="level-0" value="118011206">Nook Hacks&nbsp;&nbsp;(1)</option>
450
+ <option class="level-0" value="114556430">palm pre hacks&nbsp;&nbsp;(6)</option>
451
+ <option class="level-0" value="245123">parts&nbsp;&nbsp;(72)</option>
452
+ <option class="level-0" value="10969081">peripherals hacks&nbsp;&nbsp;(648)</option>
453
+ <option class="level-0" value="16325149">phone hacks&nbsp;&nbsp;(17)</option>
454
+ <option class="level-0" value="10969088">playstation hacks&nbsp;&nbsp;(120)</option>
455
+ <option class="level-0" value="2060">podcasts&nbsp;&nbsp;(8)</option>
456
+ <option class="level-0" value="10969096">portable audio hacks&nbsp;&nbsp;(66)</option>
457
+ <option class="level-0" value="10969099">portable video hacks&nbsp;&nbsp;(57)</option>
458
+ <option class="level-0" value="588444">psp hacks&nbsp;&nbsp;(47)</option>
459
+ <option class="level-0" value="23971578">radio hacks&nbsp;&nbsp;(137)</option>
460
+ <option class="level-0" value="47">rants&nbsp;&nbsp;(28)</option>
461
+ <option class="level-0" value="69218551">Raspberry Pi&nbsp;&nbsp;(153)</option>
462
+ <option class="level-0" value="21870780">repair hacks&nbsp;&nbsp;(101)</option>
463
+ <option class="level-0" value="309">reviews&nbsp;&nbsp;(19)</option>
464
+ <option class="level-0" value="10969101">robots hacks&nbsp;&nbsp;(874)</option>
465
+ <option class="level-0" value="30302">roundup&nbsp;&nbsp;(35)</option>
466
+ <option class="level-0" value="10969111">security hacks&nbsp;&nbsp;(460)</option>
467
+ <option class="level-0" value="2301">Software Development&nbsp;&nbsp;(91)</option>
468
+ <option class="level-0" value="3796421">software hacks&nbsp;&nbsp;(47)</option>
469
+ <option class="level-0" value="10969116">solar hacks&nbsp;&nbsp;(46)</option>
470
+ <option class="level-0" value="10969121">tablet pcs hacks&nbsp;&nbsp;(40)</option>
471
+ <option class="level-0" value="3075183">teardown&nbsp;&nbsp;(31)</option>
472
+ <option class="level-0" value="10969130">tool hacks&nbsp;&nbsp;(657)</option>
473
+ <option class="level-0" value="25277004">toy hacks&nbsp;&nbsp;(360)</option>
474
+ <option class="level-0" value="10969134">transportation hacks&nbsp;&nbsp;(472)</option>
475
+ <option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(332)</option>
476
+ <option class="level-0" value="3184456">video hacks&nbsp;&nbsp;(211)</option>
477
+ <option class="level-0" value="34942364">Virtual Reality&nbsp;&nbsp;(9)</option>
478
+ <option class="level-0" value="50802420">weapons hacks&nbsp;&nbsp;(63)</option>
479
+ <option class="level-0" value="12552193">wearable hacks&nbsp;&nbsp;(183)</option>
480
+ <option class="level-0" value="39510952">Weekly roundup&nbsp;&nbsp;(18)</option>
481
+ <option class="level-0" value="4891215">wireless hacks&nbsp;&nbsp;(333)</option>
482
+ <option class="level-0" value="7079455">xbox hacks&nbsp;&nbsp;(130)</option>
483
+ </select>
484
+
485
+ <script type='text/javascript'>
486
+ /* <![CDATA[ */
487
+ var dropdown = document.getElementById("cat");
488
+ function onCatChange() {
489
+ if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
490
+ location.href = "http://hackaday.com/?cat="+dropdown.options[dropdown.selectedIndex].value;
491
+ }
492
+ }
493
+ dropdown.onchange = onCatChange;
494
+ /* ]]> */
495
+ </script>
496
+
497
+ </div></div>
498
+ <div id="featured-post-2" class="widget featuredpost"><div class="widget-wrap"><h4 class="widgettitle">In case you missed it</h4>
499
+ <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()-->
500
+
501
+ <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()-->
502
+
503
+ <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()-->
504
+
505
+ <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()-->
506
+
507
+ <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()-->
508
+
509
+ <p class="more-from-category"><a href="http://hackaday.com/category/featured/" title="Featured">More Posts from this Category</a></p></div></div>
510
+ <div id="recent-comments-2" class="widget widget_recent_comments"><div class="widget-wrap"><h4 class="widgettitle">Recent comments</h4>
511
+ <ul id="recentcomments">
512
+ <li class="recentcomments">
513
+ 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>
514
+ <li class="recentcomments">
515
+ <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>
516
+ <li class="recentcomments">
517
+ 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>
518
+ <li class="recentcomments">
519
+ 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>
520
+ <li class="recentcomments">
521
+ 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>
522
+ <li class="recentcomments">
523
+ 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>
524
+ <li class="recentcomments">
525
+ 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>
526
+ <li class="recentcomments">
527
+ <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>
528
+ <li class="recentcomments">
529
+ <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>
530
+ <li class="recentcomments">
531
+ 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>
532
+ </ul>
533
+ </div></div>
534
+ <div id="calendar-2" class="widget widget_calendar"><div class="widget-wrap"><h4 class="widgettitle">Find Hacks by Date</h4>
535
+ <div id="calendar_wrap"><table id="wp-calendar">
536
+ <caption>April 2013</caption>
537
+ <thead>
538
+ <tr>
539
+ <th scope="col" title="Sunday">S</th>
540
+ <th scope="col" title="Monday">M</th>
541
+ <th scope="col" title="Tuesday">T</th>
542
+ <th scope="col" title="Wednesday">W</th>
543
+ <th scope="col" title="Thursday">T</th>
544
+ <th scope="col" title="Friday">F</th>
545
+ <th scope="col" title="Saturday">S</th>
546
+ </tr>
547
+ </thead>
548
+
549
+ <tfoot>
550
+ <tr>
551
+ <td colspan="3" id="prev"><a href="http://hackaday.com/2013/03/" title="View posts for March 2013">&laquo; Mar</a></td>
552
+ <td class="pad">&nbsp;</td>
553
+ <td colspan="3" id="next" class="pad">&nbsp;</td>
554
+ </tr>
555
+ </tfoot>
556
+
557
+ <tbody>
558
+ <tr>
559
+ <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
560
+ Doctor Who-style&nbsp;WiFi
561
+ Kindle weather and recycling&nbsp;display
562
+ Windmill made from washing machine, 555&nbsp;chip
563
+ SNES headphones scream out for Bluetooth&nbsp;control
564
+ 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
565
+ Dual displays on a Playstation&nbsp;2
566
+ Ask Hackaday: Hacking lingo&nbsp;fails
567
+ Cooling a photomultiplier&nbsp;tube
568
+ Hackerspace tour: Arch Reactor in St. Louis&nbsp;Missouri
569
+ Adafruit launches educational show aimed at&nbsp;kids
570
+ CNC Tic Tac&nbsp;Toe
571
+ Building a vehicle parking&nbsp;camera
572
+ April Fools&#8217; project teaches coworkers not to touch your&nbsp;stuff
573
+ 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
574
+ Powering the Oculus Rift with&nbsp;USB
575
+ Upgrading a router with impeccable soldering&nbsp;skills
576
+ Homebuilt Laser Cutter&nbsp;Ideas
577
+ Building a&nbsp;Theremincello
578
+ Microscope ring light with a number of different&nbsp;features
579
+ Hall effect limit switches for a 3D&nbsp;printer
580
+ 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
581
+ MP3/USB/Aux hack hidden behind cassette&nbsp;facade
582
+ Pranking a hackerspace IRC for April Fool&#8217;s&nbsp;Day
583
+ Turning an easter egg hunt into a fox&nbsp;hunt
584
+ Wireless Temperature Control for a&nbsp;Microbrewery
585
+ Melting Metal with a DIY Foundry&nbsp;Furnace
586
+ Top 10 Hacking Failures in movies: part&nbsp;2
587
+ Steampunk theremin&nbsp;goggles
588
+ High speed circuit design for quantum physics light&nbsp;sensing
589
+ 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
590
+ Electric tricycle build log is like hacker&nbsp;crack
591
+ H-bot style 3D printer moves bed for&nbsp;Z-axis
592
+ Stapler hack fastens infinitely large sheets of&nbsp;paper
593
+ 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
594
+ Rolling your own minimal USB to serial Arduino&nbsp;programmer
595
+ Making PLA stick to a 3D printer build platform by using hairspray or an acetone ABS&nbsp;slurry">6</a></td>
596
+ </tr>
597
+ <tr>
598
+ <td><a href="http://hackaday.com/2013/04/07/" title="Acoustic bass guitar uses water jug and two&nbsp;strings
599
+ Solar powered robot mows your lawn while you chill&nbsp;indoors
600
+ 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
601
+ Combo lock uses relays and logic&nbsp;gates
602
+ 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
603
+ The RedBull creation contest&nbsp;begins!
604
+ Recurve bow make from wood and&nbsp;skis
605
+ 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
606
+ MIDI pedal project looks as good as it&nbsp;sounds
607
+ 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
608
+ Guitar EQ levels trigger the stage&nbsp;lights
609
+ Top 10 best hacking scenes in&nbsp;movies
610
+ Automating a mechanical&nbsp;typewriter
611
+ 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
612
+ Horribly complicated electric guitar&nbsp;keyboard
613
+ Generating electricity from&nbsp;alcohol">12</a></td><td><a href="http://hackaday.com/2013/04/13/" title="Network-controlled fireworks&nbsp;launcher
614
+ Working 3D printed stepper&nbsp;motor
615
+ SqueezeBerry: a Raspberri Pi powered Squeezebox&nbsp;appliance">13</a></td>
616
+ </tr>
617
+ <tr>
618
+ <td><a href="http://hackaday.com/2013/04/14/" title="Teaching a computer to play Mario&#8230; seemingly through&nbsp;voodoo
619
+ Building a replacement for a broken dehumidifier&nbsp;controller
620
+ 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
621
+ [FlorianH] shows off MinimaBL, the next generation of his quadcopter&nbsp;project
622
+ 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
623
+ Building a kegerator with visual&nbsp;style
624
+ 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
625
+ Apple MagSafe cord&nbsp;repair
626
+ 3D Printing sensor mounts for the Oculus&nbsp;Rift
627
+ 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
628
+ Semi-automatic pick and place&nbsp;machine
629
+ Living night light with glowing&nbsp;algae
630
+ 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
631
+ Replace your project power supplies with recycled Li-Ion cells and a switching&nbsp;regulator
632
+ 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
633
+ GUI window manager on an AVR&nbsp;chip
634
+ Mood lamp/notifier uses neat modular PCB&nbsp;design">20</a></td>
635
+ </tr>
636
+ <tr>
637
+ <td><a href="http://hackaday.com/2013/04/21/" title="3D printing some sweet&nbsp;music
638
+ Drop-in pcb makes Nintendo Four Score a USB&nbsp;joystick
639
+ 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
640
+ Connect a Retina display to a regular&nbsp;computer
641
+ 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
642
+ What are the best hacking&nbsp;documentaries?
643
+ OTM-02 is a 3D printed&nbsp;wristwatch
644
+ 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>
645
+ </tr>
646
+ <tr>
647
+ <td>28</td><td>29</td><td>30</td>
648
+ <td class="pad" colspan="4">&nbsp;</td>
649
+ </tr>
650
+ </tbody>
651
+ </table></div></div></div>
652
+ <div id=virurl>
653
+ <!-- BEGIN - VIRURL Widget - iFrame Embed Code -->
654
+ <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"
655
+ width="300" height="600" scrolling="no" >
656
+ </iframe>
657
+ <!-- END - VIRURL Widget - iFrame Embed Code -->
658
+ </div>
659
+ <br />
660
+ <br />
661
+ <div id=tl_ad_bottom>
662
+ <script type="text/javascript"><!--
663
+ google_ad_client = "ca-pub-1812638130783065";
664
+ /* Hackaday sidebar wide skyscraper */
665
+ google_ad_slot = "1587378096";
666
+ google_ad_width = 160;
667
+ google_ad_height = 600;
668
+ google_ad_region = "test";
669
+ //-->
670
+ </script>
671
+ <script type="text/javascript"
672
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
673
+ </script>
674
+ </div>
675
+
676
+
677
+ <br />
678
+
679
+
680
+
681
+
682
+
683
+
684
+ </div> </div><!-- end #content-sidebar-wrap -->
685
+ </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 -->
686
+ <script type="text/javascript">
687
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
688
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
689
+ </script>
690
+ <script type="text/javascript">
691
+ var pageTracker = _gat._getTracker("UA-2201445-6");
692
+ pageTracker._trackPageview();
693
+ </script>
694
+ <!-- Start Quantcast tag -->
695
+ <script type="text/javascript">
696
+ _qoptions={
697
+ qacct:"p-cc6zkdHuZwUDM"
698
+ };
699
+ </script>
700
+ <script type="text/javascript"
701
+ src="http://edge.quantserve.com/quant.js"></script>
702
+ <noscript>
703
+ <img src="http://pixel.quantserve.com/pixel/p-cc6zkdHuZwUDM.gif"
704
+ style="display: none;" border="0" height="1" width="1"
705
+ alt="Quantcast"/>
706
+ </noscript></div><!-- end #wrap -->
707
+
708
+ <script type="text/javascript">
709
+ var _qevents = _qevents || [], wpcomQuantcastData = {"qacct":"p-18-mFEk4J448M","labels":",language.en,type.wpcom,vip.hackadaycom"};
710
+ function wpcomQuantcastPixel( labels, options ) {
711
+ var i, defaults = wpcomQuantcastData, data = { event: 'ajax' };
712
+
713
+ labels = labels || '';
714
+ options = options || {};
715
+
716
+ if ( typeof labels != 'string' )
717
+ options = labels;
718
+
719
+ for ( i in defaults ) {
720
+ data[i] = defaults[i];
721
+ }
722
+
723
+ for ( i in options ) {
724
+ data[i] = options[i];
725
+ }
726
+
727
+ if ( data.labels ) {
728
+ data.labels += ',' + labels;
729
+ } else {
730
+ data.labels = labels;
731
+ }
732
+
733
+ _qevents.push( data );
734
+ };
735
+ (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); })();
736
+ _qevents.push( wpcomQuantcastData );
737
+ </script>
738
+ <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>
739
+
740
+
741
+ <!-- /// LOAD CHARTBEAT /// -->
742
+ <script type="text/javascript">
743
+ var _sf_async_config={};
744
+ _sf_async_config.uid = 2021;
745
+ _sf_async_config.useCanonical = true;
746
+
747
+ (function(){
748
+ function loadChartbeat() {
749
+ window._sf_endpt=(new Date()).getTime();
750
+ var e = document.createElement('script');
751
+ e.setAttribute('language', 'javascript');
752
+ e.setAttribute('type', 'text/javascript');
753
+ e.setAttribute('src',
754
+ (("https:" == document.location.protocol) ? "https://s3.amazonaws.com/" : "http://") +
755
+ "static.chartbeat.com/js/chartbeat.js");
756
+ document.body.appendChild(e);
757
+ }
758
+ var oldonload = window.onload;
759
+ window.onload = (typeof window.onload != 'function') ?
760
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
761
+ })();
762
+ </script>
763
+ <div style="display:none">
764
+ </div>
765
+ <script type='text/javascript' src='http://s2.wp.com/_static/??-eJylzMsOREAQRuEXMoqgEwvxLC4/qjPVOl3dZh4fO3vrk+/Qz3+m3UW4SFZpxsET/D+3mtEjxQ0CJR8gnIRWOCgrfXm8lcAl0uQRFtbtlR3Cqtegl66smto0xhStPQEw5Dy+'></script>
766
+ <script type="text/javascript">
767
+ // <![CDATA[
768
+ (function() {
769
+ try{
770
+ if ( window.external &&'msIsSiteMode' in window.external) {
771
+ if (window.external.msIsSiteMode()) {
772
+ var jl = document.createElement('script');
773
+ jl.type='text/javascript';
774
+ jl.async=true;
775
+ jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
776
+ var s = document.getElementsByTagName('script')[0];
777
+ s.parentNode.insertBefore(jl, s);
778
+ }
779
+ }
780
+ }catch(e){}
781
+ })();
782
+ // ]]>
783
+ </script><script src="http://s.stats.wordpress.com/w.js?21" type="text/javascript"></script>
784
+ <script type="text/javascript">
785
+ st_go({'blog':'4779443','v':'wpcom','tz':'-7','user_id':'0','subd':'hackadaycom'});
786
+ 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();}
787
+ ex_go({'crypt':'UE40eW5QN0p8M2Y/RE1BNmNJfGhxNCVxUDExYmtXRThKbHcwXTdETWI1alhvb1oseHImN101ZFpEakVpYjlQYVFLYzBaVHRtPz0wXS9bVlFpZ3c1Qn5KSThLNS9lSHNGOE1IJk9+N3xFNWxyT2x+MUpnR1dJcFYlUnd2SVVvRUw3dWtuUjd4VEZBLS9OSXhRcG1wM2suXUxDZVlLNkt5MXIwMGdQWytMbFR1aDN3SGRPazk2TC1aUkdHN1BMek0lP05OZmQxc1A9eXFrMz9uQXdLR1E9K3ItR0ElMj1Ock5qZWtibVdxayVlWldFazRRckosM0F5Q0tqTn5F'});
788
+ addLoadEvent(function(){linktracker_init('4779443',0);});
789
+ </script>
790
+ <noscript><img src="http://stats.wordpress.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
791
+ <script type="text/javascript">
792
+ // Trigger Quantcast pixel for each Infinite Scroll post load
793
+ if ( 'function' === typeof( jQuery ) ) {
794
+ jQuery( document.body ).on( 'post-load', function() {
795
+ if ( 'function' === typeof( wpcomQuantcastPixel ) )
796
+ wpcomQuantcastPixel();
797
+ } );
798
+ }
799
+ </script>
800
+ </body>
801
+ </html>