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,712 @@
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 in 0.307 seconds
5
+ 67189 bytes batcached for 300 seconds
6
+ -->
7
+ <head profile="http://gmpg.org/xfn/11">
8
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
9
+ <title>Hack a Day — Fresh hacks every day</title>
10
+ <meta name="description" content="Fresh hacks every day" />
11
+ <meta name="robots" content="noodp,noydir" />
12
+ <link rel="Shortcut Icon" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/images/favicon.ico?m=1353160633g" type="image/x-icon" />
13
+ <link rel="stylesheet" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/style.css?m=1363789849g" type="text/css" media="screen" />
14
+
15
+ <meta name="description" content="Fresh hacks every day" />
16
+ <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" />
17
+ <script src='http://r-login.wordpress.com/remote-login.php?action=js&amp;host=hackaday.com&amp;id=4779443&amp;t=1366801155&amp;back=hackaday.com%2Fpage%2F37%2F' type="text/javascript"></script>
18
+ <script type="text/javascript">
19
+ /* <![CDATA[ */
20
+ if ( 'function' === typeof WPRemoteLogin ) {
21
+ document.cookie = "wordpress_test_cookie=test; path=/";
22
+ if ( document.cookie.match( /(;|^)\s*wordpress_test_cookie\=/ ) ) {
23
+ WPRemoteLogin();
24
+ }
25
+ }
26
+ /* ]]> */
27
+ </script>
28
+ <link rel="alternate" type="application/rss+xml" title="Hack a Day &raquo; Feed" href="http://feeds2.feedburner.com/hackaday/LgoM" />
29
+ <link rel="alternate" type="application/rss+xml" title="Hack a Day &raquo; Comments Feed" href="http://hackaday.com/comments/feed/" />
30
+ <script type="text/javascript">
31
+ /* <![CDATA[ */
32
+ function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){oldonload();func();}}}
33
+ /* ]]> */
34
+ </script>
35
+ <link rel="canonical" href="http://hackaday.com/" />
36
+ <link rel='stylesheet' id='all-css-0' href='http://s0.wp.com/_static/??-eJzTLy/QTc7PK0nNK9HPLdUtyClNz8wr1s/JzE4t1s9KLSlITM7WBfP0kouLdfSxKy/ILy7RTctJzCzSLy6pzEklVm1GYlFmXjqMxtBVkpGaC3RGhol+ek5+UmIOSIF9rq2hsZmZuYmxqbFlFgANUUYu' type='text/css' media='all' />
37
+ <script type='text/javascript'>
38
+ /* <![CDATA[ */
39
+ var SafeCommentsAjax = {"ajaxurl":"http:\/\/hackaday.com\/wp-admin\/admin-ajax.php"};
40
+ /* ]]> */
41
+ </script>
42
+ <script type='text/javascript' src='http://s0.wp.com/_static/??-eJyFz0sKAjEMBuALWUsZpjvxLKXGmjp92KQz6umNogtRFAJZ5Et+opeqMPup74B0lDp1aJdnW0da6V9AJQzNMbygL5kh893VQpyAyIVv0/cYzDPC8pdF4Or8UTUgvH5c5QNInp6x6jr1gJk0uT2IrqWxsJSEPX5w0Z1lfZs2ZrB2NIOxY7wBpfljQw=='></script>
43
+ <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://hackadaycom.wordpress.com/xmlrpc.php?rsd" />
44
+ <link rel="shortcut icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" sizes="16x16" />
45
+ <link rel="icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" sizes="16x16" />
46
+ <link rel="apple-touch-icon-precomposed" href="http://1.gravatar.com/blavatar/5560f98f805877b0e332f191cb9e0af3?s=114" />
47
+ <link rel='openid.server' href='http://hackadaycom.wordpress.com/?openidserver=1' />
48
+ <link rel='openid.delegate' href='http://hackadaycom.wordpress.com/' />
49
+ <link rel="search" type="application/opensearchdescription+xml" href="http://hackaday.com/osd.xml" title="Hack a Day" />
50
+ <link rel="search" type="application/opensearchdescription+xml" href="http://wordpress.com/opensearch.xml" title="WordPress.com" />
51
+ <style>
52
+ /* <![CDATA[ */
53
+ /* Block: reblog */
54
+
55
+ .reblog-from img { margin: 0 10px 0 0; vertical-align: middle; padding: 0; border: 0; }
56
+ .reblogger-note img.avatar { float: left; padding: 0; border: 0; }
57
+ .reblogger-note-content { margin: 0 0 20px; }
58
+ .reblog-post .wpcom-enhanced-excerpt-content { border-left: 3px solid #eee; padding-left: 15px; }
59
+ .reblog-post ul.thumb-list { display: block; list-style: none; margin: 2px 0; padding: 0; clear: both; }
60
+ .reblog-post ul.thumb-list li { display: inline; margin: 0; padding: 0 1px; border: 0; }
61
+ .reblog-post ul.thumb-list li a { margin: 0; padding: 0; border: 0; }
62
+ .reblog-post ul.thumb-list li img { margin: 0; padding: 0; border: 0; }
63
+
64
+ .reblog-post .wpcom-enhanced-excerpt { clear: both; }
65
+
66
+ .reblog-post .wpcom-enhanced-excerpt address,
67
+ .reblog-post .wpcom-enhanced-excerpt li,
68
+ .reblog-post .wpcom-enhanced-excerpt h1,
69
+ .reblog-post .wpcom-enhanced-excerpt h2,
70
+ .reblog-post .wpcom-enhanced-excerpt h3,
71
+ .reblog-post .wpcom-enhanced-excerpt h4,
72
+ .reblog-post .wpcom-enhanced-excerpt h5,
73
+ .reblog-post .wpcom-enhanced-excerpt h6,
74
+ .reblog-post .wpcom-enhanced-excerpt p { font-size: 100% !important; }
75
+
76
+ .reblog-post .wpcom-enhanced-excerpt blockquote,
77
+ .reblog-post .wpcom-enhanced-excerpt pre,
78
+ .reblog-post .wpcom-enhanced-excerpt code,
79
+ .reblog-post .wpcom-enhanced-excerpt q { font-size: 98% !important; }
80
+
81
+
82
+ /* ]]> */
83
+ </style>
84
+
85
+ <script type="text/javascript">var _sf_startpt=(new Date()).getTime()</script>
86
+ <style>
87
+ .wpcom-related-posts ul li {
88
+ list-style-type: none;
89
+ display: inline-block;
90
+ }
91
+ </style>
92
+ <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
93
+ <style type="text/css">
94
+ .recentcomments a {
95
+ display: inline !important;
96
+ padding: 0 !important;
97
+ margin: 0 !important;
98
+ }
99
+
100
+ table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar {
101
+ border: 0px;
102
+ margin: 0;
103
+ }
104
+
105
+ table.recentcommentsavatartop a, table.recentcommentsavatarend a {
106
+ border: 0px !important;
107
+ background-color: transparent !important;
108
+ }
109
+
110
+ td.recentcommentsavatarend, td.recentcommentsavatartop {
111
+ padding: 0px 0px 1px 0px;
112
+ margin: 0px;
113
+ }
114
+
115
+ td.recentcommentstextend {
116
+ border: none !important;
117
+ padding: 0px 0px 2px 10px;
118
+ }
119
+
120
+ .rtl td.recentcommentstextend {
121
+ padding: 0px 10px 2px 0px;
122
+ }
123
+
124
+ td.recentcommentstexttop {
125
+ border: none !important;
126
+ padding: 0px 0px 0px 10px;
127
+ }
128
+
129
+ .rtl td.recentcommentstexttop {
130
+ padding: 0px 10px 0px 0px;
131
+ }
132
+ </style>
133
+ <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>
134
+
135
+ <script>jQuery(document).ready(function($) {
136
+ $("cswap li a").click(function() {
137
+ $("link").attr("href",$(this).attr('rel'));
138
+ return false;
139
+ });
140
+ });</script>
141
+ <meta name="google-site-verification" content="v0_F4q2HixEv6wrQCEKBEbp2Wuj0oI9ywwaN6aoV0JE" />
142
+ </head>
143
+ <body class="home blog paged paged-37 typekit-enabled header-image content-sidebar highlander-enabled highlander-light">
144
+
145
+ <div id="fb-root"></div>
146
+ <script>(function(d, s, id) {
147
+ var js, fjs = d.getElementsByTagName(s)[0];
148
+ if (d.getElementById(id)) return;
149
+ js = d.createElement(s); js.id = id;
150
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
151
+ fjs.parentNode.insertBefore(js, fjs);
152
+ }(document, 'script', 'facebook-jssdk'));</script>
153
+ <div id="wrap">
154
+ <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">
155
+ <script type="text/javascript"><!--
156
+ google_ad_client = "ca-pub-1812638130783065";
157
+ /* Hackaday, 728x90, created 4/26/08, Leaderboard */
158
+ google_ad_slot = "4036713767";
159
+ google_ad_width = 728;
160
+ google_ad_height = 90;
161
+ //-->
162
+ </script>
163
+ <script type="text/javascript"
164
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
165
+ </script>
166
+ </div>
167
+ <div id="adslice">
168
+
169
+ <script type="text/javascript"><!--
170
+ google_ad_client = "pub-1812638130783065";
171
+ /* Hackaday, 728x15, created 4/26/08, AdSlice */
172
+ google_ad_slot = "0246324944";
173
+ google_ad_width = 728;
174
+ google_ad_height = 15;
175
+ //-->
176
+ </script>
177
+
178
+ <script type="text/javascript"
179
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
180
+ </script>
181
+
182
+ </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>
183
+ <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>
184
+ <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>
185
+ <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>
186
+ <li class="right search">
187
+ <form method="get" class="searchform" action="http://hackaday.com/" >
188
+
189
+ <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;';}" />
190
+ <input type="submit" class="searchsubmit" value="Search" />
191
+ </form>
192
+ </li></ul></div><!-- end .wrap --></div><div id="inner"><div class="wrap"> <div id="content-sidebar-wrap">
193
+ <div id="content" class="hfeed">
194
+ <div class="post-95935 post type-post status-publish format-standard hentry category-arduino-hacks category-robots-hacks tag-arduino tag-laser-pointer tag-servo tag-wowwee">
195
+
196
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/11/laser-toting-robot-taunts-house-cat/" title="Laser toting robot taunts house&nbsp;cat" rel="bookmark">Laser toting robot taunts house&nbsp;cat</a></h2>
197
+
198
+ <div class="post-info"><span class="date published time" title="2013-03-11T08:01:58+00:00">March 11, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/11/laser-toting-robot-taunts-house-cat/#comments">26 Comments</a></span> </div> <div class="entry-content">
199
+ <p><img class="aligncenter size-large wp-image-95936" alt="laser-toting-robot-taunts-house-cat" src="http://hackadaycom.files.wordpress.com/2013/03/laser-toting-robot-taunts-house-cat.png?w=580&#038;h=411" width="580" height="411" /></p>
200
+ <p>[Rodney Lederer] and his cat were bored after moving to a new city. He fixed that for both of them by taking on <a href="http://evmakers.wordpress.com/2012/12/22/glitch-a-hacked-wowwee-roborover-laser-cat-toy/">this project which turns a Wowwee robot into feline entertainment</a>.</p>
201
+ <p>It&#8217;s no secret that cats have a weakness for the little red dot produced by a laser pointer. [Rodney] put that trait to work by automating the movement of a red laser pointer. After mounting it on a servo motor he got down to work programming an Arduino to move it in a playful manner. But it wouldn&#8217;t have been much fun if the this was only capable of preprogrammed patterns, so he also included an IR proximity sensor to help give the thing interactivity. Add to that the treaded robot base and you&#8217;ve got mobile cat entertainment. The proof is in the video after the break&#8230; the cat is certainly having fun chasing the dot. [Rodney] plans to work a bit more on his code so that the motions of the laser dot include a lot of different patterns to keep things exciting.</p>
202
+ <p> <a href="http://hackaday.com/2013/03/11/laser-toting-robot-taunts-house-cat/#more-95935" class="more-link">[Read more...]</a></p>
203
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
204
+ <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/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/arduino/" rel="tag">arduino</a>, <a href="http://hackaday.com/tag/laser-pointer/" rel="tag">laser pointer</a>, <a href="http://hackaday.com/tag/servo/" rel="tag">servo</a>, <a href="http://hackaday.com/tag/wowwee/" rel="tag">wowwee</a></span> </div>
205
+ </div><!-- end .postclass -->
206
+ <div class="post-95930 post type-post status-publish format-standard hentry category-cooking-hacks category-home-hacks tag-aquarium tag-coffee-maker">
207
+
208
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/11/coffee-pot-aquarium-keeps-fish-warm-without-cooking-them-hopefully/" title="Coffee pot aquarium keeps fish warm without cooking them&nbsp;(hopefully)" rel="bookmark">Coffee pot aquarium keeps fish warm without cooking them&nbsp;(hopefully)</a></h2>
209
+
210
+ <div class="post-info"><span class="date published time" title="2013-03-11T06:00:37+00:00">March 11, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/11/coffee-pot-aquarium-keeps-fish-warm-without-cooking-them-hopefully/#comments">35 Comments</a></span> </div> <div class="entry-content">
211
+ <p><img class="aligncenter size-large wp-image-95931" alt="coffee-pot-aquarium" src="http://hackadaycom.files.wordpress.com/2013/03/coffee-pot-aquarium.jpg?w=537&#038;h=450" width="537" height="450" /></p>
212
+ <p>Beta fish are one of the easiest pets to care for. So when [Derek] gave his girlfriend one for Valentine&#8217;s day he thought the job was done. Turns out these tropical pets want 75-80 F water and that&#8217;s not going to happen in a plain old bowl when you keep your home thermostat in the mid sixties during the winter. While looking for a simple heating solution he stumbled across the idea of <a href="http://www.robotsandcomputers.com/robots/projects/cpfishtank.htm">using a cheap drip coffee maker as an aquarium</a>.</p>
213
+ <p>The two main components are already in place: a clear glass vessel for the water and a way to heat it. The real trick is to use the heating element to gently warm the water to the appropriate temperature. Perhaps the key piece of the project is that the device already had a timer that shut off the heating element. This translates to easy control with his MSP430 microcontroller as it means there&#8217;s a relay present. He also patched into the two seven-segment displays to give him feedback on the temperature currently being read by the RL1003 thermistor which is submerged in the water. You&#8217;ll also note that he added a few LEDs to the lid to give the aquarium some inner glow.</p>
214
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
215
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/cooking-hacks/" title="View all posts in cooking hacks" rel="category tag">cooking hacks</a>, <a href="http://hackaday.com/category/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/aquarium/" rel="tag">aquarium</a>, <a href="http://hackaday.com/tag/coffee-maker/" rel="tag">coffee maker</a></span> </div>
216
+ </div><!-- end .postclass -->
217
+ <div class="post-95866 post type-post status-publish format-standard hentry category-toy-hacks category-video-hacks tag-fpv tag-glider">
218
+
219
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/10/launching-a-glider-from-space/" title="Launching a glider from&nbsp;space" rel="bookmark">Launching a glider from&nbsp;space</a></h2>
220
+
221
+ <div class="post-info"><span class="date published time" title="2013-03-10T16:01:30+00:00">March 10, 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/10/launching-a-glider-from-space/#comments">42 Comments</a></span> </div> <div class="entry-content">
222
+ <p><img class="aligncenter size-full wp-image-95867" alt="launching-a-glider-from-space" src="http://hackadaycom.files.wordpress.com/2013/03/launching-a-glider-from-space.jpg?w=530&#038;h=309" width="530" height="309" /></p>
223
+ <p>We get a ton of tips about weather balloon launches taking hobby electronics into space. But every once in a while one of them stands out from the rest. This project does send an electronic payload into space, but it also lets [David] <a href="http://rcexplorer.se/projects/2013/03/fpv-to-space-and-back/">fly his hardware back from near-space using an RC airplane</a>.</p>
224
+ <p>The return vehicle is unpowered, but that shouldn&#8217;t be a problem as launching from a weather balloon will provide plenty of altitude for the flight. Because the temperature experienced in that part of the atmosphere is so cold [David] had to take several things into account. Obviously you want your batteries and control electronics to be insulated from the cold. But something that doesn&#8217;t usually pop into mind are issues with the servo motors which run the glider&#8217;s flaps. They usually have some white grease on the gears. At temps as low as -50C that grease will harden and make the servo stop working so he made sure to clean the gears thoroughly before the flight.</p>
225
+ <p>Unfortunately [David] had several problems capturing images and recorded video from the ground station. But his write up is still a fun read and the clip after the break gives a general overview of the entire project from the nose camera of the glider.</p>
226
+ <p> <a href="http://hackaday.com/2013/03/10/launching-a-glider-from-space/#more-95866" class="more-link">[Read more...]</a></p>
227
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
228
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/toy-hacks/" title="View all posts in toy hacks" rel="category tag">toy hacks</a>, <a href="http://hackaday.com/category/video-hacks/" title="View all posts in video hacks" rel="category tag">video hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/fpv/" rel="tag">FPV</a>, <a href="http://hackaday.com/tag/glider/" rel="tag">glider</a></span> </div>
229
+ </div><!-- end .postclass -->
230
+ <div align="center">
231
+
232
+
233
+
234
+ <script type="text/javascript"><!--
235
+
236
+ google_ad_client = "ca-pub-1812638130783065";
237
+
238
+ /* Hackaday, 300x250, created 4/26/08, MedRect main column */
239
+
240
+ google_ad_slot = "3449215672";
241
+
242
+ google_ad_width = 300;
243
+
244
+ google_ad_height = 250;
245
+
246
+ //-->
247
+
248
+ </script>
249
+
250
+ <script type="text/javascript"
251
+
252
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
253
+
254
+ </script>
255
+
256
+
257
+
258
+ </div> <div class="post-95912 post type-post status-publish format-standard hentry category-3d-printer-hacks category-news tag-3d-scanner tag-makerbot tag-scanner">
259
+
260
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/10/makerbot-shows-off-3d-scanner/" title="Makerbot shows off 3D&nbsp;scanner" rel="bookmark">Makerbot shows off 3D&nbsp;scanner</a></h2>
261
+
262
+ <div class="post-info"><span class="date published time" title="2013-03-10T14:00:34+00:00">March 10, 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/10/makerbot-shows-off-3d-scanner/#comments">27 Comments</a></span> </div> <div class="entry-content">
263
+ <p><img class="aligncenter size-full wp-image-95913" alt="scan" src="http://hackadaycom.files.wordpress.com/2013/03/scan.jpg?w=500&#038;h=338" width="500" height="338" /></p>
264
+ <p>We&#8217;ve said our piece over Makerbot and their interpretation of what Open Source means, but the fact remains if you&#8217;re sourcing a 3D printer for a high school shop class or a hackerspace, you really can&#8217;t do much better than a Makerbot Replicator. Apparently Makerbot is looking to expand their 3D design and fabrication portfolio; they just announced an upcoming 3D scanner at SXSW. <a href="http://store.makerbot.com/digitizer.html">It&#8217;s called the Makerbot Digitizer</a>, and it takes real, 3D objects and turns them into CAD files.</p>
265
+ <p>Since Makerbot and [Bre Pettis] didn&#8217;t give out much information about the 3D scanner they&#8217;re working on, the best information <a href="http://techcrunch.com/2013/03/08/makerbot-announces-its-first-easy-to-use-desktop-3d-scanner-the-digitizer/">comes from Techcrunch</a>. The Makerbot Digitizer uses two lasers to scan real objects and turns them into 3D CAD files. The hardware isn&#8217;t finalized, and the prototype is made of a few pieces of laser cut plywood. No details are available on how much the Digitizer will cost, when it will be available, or what its resolution is.</p>
266
+ <p>Of course 3D scanning of real objects to translate them into CAD files is nothing new for Hackaday readers. We&#8217;ve seen <a href="http://hackaday.com/tag/3d-scanner/">our fair share of desktop 3D scanners</a>, including one that <a href="http://hackaday.com/2013/02/14/3d-scanner-made-in-a-day/">was built in a day out of junk</a>. Even the Kickstarter crew has gotten into the action with a few desktop 3D scanners, <a href="http://www.kickstarter.com/projects/621838643/desktop-3d-scanner">some of which scan in full color</a>.</p>
267
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
268
+ <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/news/" title="View all posts in news" rel="category tag">news</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/3d-scanner/" rel="tag">3d scanner</a>, <a href="http://hackaday.com/tag/makerbot/" rel="tag">makerbot</a>, <a href="http://hackaday.com/tag/scanner/" rel="tag">scanner</a></span> </div>
269
+ </div><!-- end .postclass -->
270
+ <div class="post-95915 post type-post status-publish format-standard hentry category-microcontrollers tag-avr tag-microcontroller tag-pic">
271
+
272
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/10/another-salvo-in-the-pic-vs-avr-holy-war/" title="Another salvo in the PIC vs. AVR holy&nbsp;war" rel="bookmark">Another salvo in the PIC vs. AVR holy&nbsp;war</a></h2>
273
+
274
+ <div class="post-info"><span class="date published time" title="2013-03-10T12:00:30+00:00">March 10, 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/10/another-salvo-in-the-pic-vs-avr-holy-war/#comments">181 Comments</a></span> </div> <div class="entry-content">
275
+ <p><img class="aligncenter size-full wp-image-95918" alt="holy war" src="http://hackadaycom.files.wordpress.com/2013/03/holy-war1.png?w=580&#038;h=66" width="580" height="66" /></p>
276
+ <p>Ah, PIC vs. AVR, the never-ending battle of electronic design supremacy. Some people swear by Atmel&#8217;s AVR microcontrollers, while others are wrong. [majenko] is firmly planted in Microchip&#8217;s PIC camp, so he <a href="http://digital-diy.com/pic-micrcontroller/532-why-i-pick-pic.html">wrote up a nice comparison of Atmel&#8217;s AVR versus Microchip&#8217;s PIC family of microcontrollers</a>. The results aren&#8217;t that surprising; PIC microcontrollers come out as a better product that no hobbyist uses because no hobbyist uses them.</p>
277
+ <p>Atmel and their series of AVR microcontrollers has seen a huge increase in popularity in the hobbyist market in the last few years, no doubt thanks to the Arduino and other AVR-powered dev boards. This isn&#8217;t to say Microchip and PIC haven&#8217;t seen their time in the lime light; there was a time when you could actually buy electronic components at Radio Shack, including kits containing Microchip&#8217;s very popular but somewhat outdated Basic Stamp.</p>
278
+ <p>After going over the capabilities of the Atmel AVR ATMega328p, the similarly equipped Microchip&#8217;s PIC PIC18F25K80, and TI&#8217;s MSP430G2533, [majenko] found the perennial favorite, the AVR, lacked in some very important categories. The AVR has a lower resolution ADC, fewer PWM pins, fewer 16-bit timers, while costing about $0.75 more.</p>
279
+ <p>Of course [majenko]&#8216;s analysis doesn&#8217;t take into account the intangibles of choosing a PIC over an AVR. Thanks to the Arduino&#8217;s adoption of the AVR, there are many, many more code and schematic examples floating around on the Internet for just about every project imaginable. The development tools for PIC are a bit more expensive than their AVR equivalents; <a href="http://www.microchipdirect.com/productsearch.aspx?Keywords=DV164120">A PICkit2 runs about $50</a> while AVR ISP programmers can be found just about everywhere for pocket change.</p>
280
+ <p>It&#8217;s a lazy Sunday, so all &#8216;yall can go on and argue in the comments.</p>
281
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
282
+ <div class="post-meta"><span class="categories">Filed Under: <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/avr/" rel="tag">AVR</a>, <a href="http://hackaday.com/tag/microcontroller/" rel="tag">microcontroller</a>, <a href="http://hackaday.com/tag/pic/" rel="tag">pic</a></span> </div>
283
+ </div><!-- end .postclass -->
284
+ <div class="post-95906 post type-post status-publish format-standard hentry category-led-hacks tag-flashlight tag-led tag-lights tag-pvc">
285
+
286
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/10/diy-lighting-solutions/" title="DIY Lighting&nbsp;Solutions" rel="bookmark">DIY Lighting&nbsp;Solutions</a></h2>
287
+
288
+ <div class="post-info"><span class="date published time" title="2013-03-10T09:34:50+00:00">March 10, 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/10/diy-lighting-solutions/#comments">14 Comments</a></span> </div> <div class="entry-content">
289
+ <p><a href="http://hackaday.com/?attachment_id=95907" rel="attachment wp-att-95907"><img class="aligncenter size-large wp-image-95907" alt="pvc-lights" src="http://hackadaycom.files.wordpress.com/2013/03/pvc-lights.png?w=580&#038;h=359" width="580" height="359" /></a></p>
290
+ <p>With daylight savings time starting up, you might not have quite as much need for lighting, but this pair of hacks should keep everything well lit whether outside or indoors.  Check out the videos of both in action after the break.</p>
291
+ <p><a title="PVC light stand" href="http://www.youtube.com/watch?v=PaxP72L8QeI&amp;feature=youtu.be" target="_blank">The first lighting solution</a> comes to us from <a title="Youtube Channel" href="http://www.youtube.com/user/kelna2?feature=watch" target="_blank">[Ben]&#8216;s Youtube channel</a>. It&#8217;s a simple solution, press-fitting a clamp light into a 1 inch PVC Tee to attach the light to a pipe. The base is made with PVC shaped into three feet for a (hopefully) sturdy rest.  Several lights can be used as needed, and would probably work well for making his next video.</p>
292
+ <p>The <a title="450 Lumen LED light" href="http://www.youtube.com/watch?v=HK-7E-1Ya0I" target="_blank">second light also comes to us from Youtube</a>, and is about converting a stock LED light into one that is much brighter. Skip to around 7:00 to see the outdoor comparison.  You may or may not want to do this exact hack, but you never know when you might want to swap out <a title="blinkenlights Wikipedia" href="http://en.wikipedia.org/wiki/Blinkenlights" target="_blank">your blinkenlights</a> for something that will scare the neighbors!<br />
293
+ <a href="http://hackaday.com/2013/03/10/diy-lighting-solutions/#more-95906" class="more-link">[Read more...]</a></p>
294
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
295
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/led-hacks/" title="View all posts in led hacks" rel="category tag">led hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/flashlight/" rel="tag">flashlight</a>, <a href="http://hackaday.com/tag/led/" rel="tag">led</a>, <a href="http://hackaday.com/tag/lights/" rel="tag">lights</a>, <a href="http://hackaday.com/tag/pvc/" rel="tag">PVC</a></span> </div>
296
+ </div><!-- end .postclass -->
297
+ <div class="post-95842 post type-post status-publish format-standard hentry category-parts category-transportation-hacks tag-18f2221 tag-adns-3080 tag-optical-mouse tag-pic tag-sensor tag-tracking">
298
+
299
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/10/tracking-a-car-like-it-were-a-computer-mouse/" title="Tracking a car like it were a computer&nbsp;mouse" rel="bookmark">Tracking a car like it were a computer&nbsp;mouse</a></h2>
300
+
301
+ <div class="post-info"><span class="date published time" title="2013-03-10T08:01:49+00:00">March 10, 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/10/tracking-a-car-like-it-were-a-computer-mouse/#comments">33 Comments</a></span> </div> <div class="entry-content">
302
+ <p><img class="aligncenter size-large wp-image-95843" alt="optical-mouse-sensor-tracks-vehicle-motion" src="http://hackadaycom.files.wordpress.com/2013/03/optical-mouse-sensor-tracks-vehicle-motion.jpg?w=580&#038;h=341" width="580" height="341" /></p>
303
+ <p>This is [Paul Mandel's] <a href="http://www.mand3l.com/work/velocimeter/">Ground-truth velocity sensor</a>. That&#8217;s a fancy name for a device which tracks the movement of a vehicle by actually monitoring the ground its travelling over. This differs from simply measuring wheel rotation (which is how traditional odometers work) in that those systems are an indirect measurement of motion. For us the interesting part is the use of an ADNS-3080 single-chip optical mouse sensor on the left. It&#8217;s cheap, accurate, and only needs to be ruggedized before being strapped to the bottom of a car.</p>
304
+ <p>[Paul] designed a case that would protect the electronics and allow the sensor to mount on the uneven underbelly of a vehicle. The optical chip needs to be paired with a lens, and he went with one that cost about ten times as much as the sensor. Data is fed from the sensor to the main system controller using the PIC 18F2221. One little nugget that we learned from this project is to poll a register that always returns a default value as a sanity check. If you don&#8217;t get the expected value back it signals a communications problem, an important test for hardware going into the vibration-hell that is automotive technology.</p>
305
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
306
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/parts/" title="View all posts in parts" rel="category tag">parts</a>, <a href="http://hackaday.com/category/transportation-hacks/" title="View all posts in transportation hacks" rel="category tag">transportation hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/18f2221/" rel="tag">18f2221</a>, <a href="http://hackaday.com/tag/adns-3080/" rel="tag">adns-3080</a>, <a href="http://hackaday.com/tag/optical-mouse/" rel="tag">optical mouse</a>, <a href="http://hackaday.com/tag/pic/" rel="tag">pic</a>, <a href="http://hackaday.com/tag/sensor/" rel="tag">sensor</a>, <a href="http://hackaday.com/tag/tracking/" rel="tag">tracking</a></span> </div>
307
+ </div><!-- end .postclass -->
308
+ <div class="navigation"><div class="alignleft"><a href="http://hackaday.com/page/38/" >&laquo; Older Posts</a></div><div class="alignright"><a href="http://hackaday.com/page/36/" >Newer Posts &raquo;</a></div></div><!-- end .navigation --> </div><!-- end #content -->
309
+ <div id="sidebar" class="sidebar widget-area">
310
+ <div id=tl_ad>
311
+ <script type="text/javascript"><!--
312
+ google_ad_client = "ca-pub-1812638130783065";
313
+ /* Hackaday, 300x250, created 4/26/08, MedRect sidebar */
314
+ google_ad_slot = "7800245928";
315
+ google_ad_width = 300;
316
+ google_ad_height = 250;
317
+ //-->
318
+ </script>
319
+ <script type="text/javascript"
320
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
321
+ </script>
322
+
323
+ </div>
324
+
325
+
326
+
327
+
328
+
329
+
330
+ <div class="widget">
331
+ <h4>Never Miss a Hack</h4>
332
+ <div class="textwidget">
333
+
334
+ <!-- Place this tag where you want the badge to render. -->
335
+ <div class="g-plus" data-width= "280" data-href="https://plus.google.com/114843073658390316652" data-rel="publisher" data-theme="dark"></div>
336
+ <!-- Place this tag after the last badge tag. -->
337
+ <script type="text/javascript">
338
+ (function() {
339
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
340
+ po.src = 'https://apis.google.com/js/plusone.js';
341
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
342
+ })();
343
+ </script>
344
+
345
+ <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>
346
+
347
+ <a href="https://twitter.com/hackaday" class="twitter-follow-button" data-show-count="true" data-lang="en" data-size="large">Follow @twitter</a>
348
+ <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>
349
+
350
+ <a href="http://feeds2.feedburner.com/hackaday/LgoM" target="_blank"><img src="http://hackadaycom.files.wordpress.com/2012/11/orange.png" border="0"/></a>
351
+ <div class="clear"> </div>
352
+ <!-- Begin MailChimp Signup Form -->
353
+ <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
354
+
355
+ <div id="mc_embed_signup">
356
+ <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>
357
+ <label for="mce-EMAIL">Subscribe to our mailing list for sneak previews and behind the scenes info</label>
358
+ <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
359
+ <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
360
+ </form>
361
+ </div>
362
+
363
+ <!--End mc_embed_signup-->
364
+ </div>
365
+ </div>
366
+
367
+ <div id="categories-2" class="widget widget_categories"><div class="widget-wrap"><h4 class="widgettitle">Categories</h4>
368
+ <select name='cat' id='cat' class='postform' >
369
+ <option value='-1'>Select Category</option>
370
+ <option class="level-0" value="114554125">3d Printer hacks&nbsp;&nbsp;(116)</option>
371
+ <option class="level-0" value="18020710">android hacks&nbsp;&nbsp;(240)</option>
372
+ <option class="level-0" value="18020705">arduino hacks&nbsp;&nbsp;(1029)</option>
373
+ <option class="level-0" value="27981650">ARM&nbsp;&nbsp;(51)</option>
374
+ <option class="level-0" value="33199679">Ask Hackaday&nbsp;&nbsp;(29)</option>
375
+ <option class="level-0" value="64298109">ATtiny hacks&nbsp;&nbsp;(45)</option>
376
+ <option class="level-0" value="25122024">beer hacks&nbsp;&nbsp;(63)</option>
377
+ <option class="level-0" value="12115263">blackberry hacks&nbsp;&nbsp;(8)</option>
378
+ <option class="level-0" value="10969031">cellphones hacks&nbsp;&nbsp;(337)</option>
379
+ <option class="level-0" value="35745764">chemistry hacks&nbsp;&nbsp;(102)</option>
380
+ <option class="level-0" value="24483654">classic hacks&nbsp;&nbsp;(852)</option>
381
+ <option class="level-0" value="31677810">clock hacks&nbsp;&nbsp;(189)</option>
382
+ <option class="level-0" value="18755632">cnc hacks&nbsp;&nbsp;(341)</option>
383
+ <option class="level-0" value="568165">computer hacks&nbsp;&nbsp;(390)</option>
384
+ <option class="level-0" value="78428">cons&nbsp;&nbsp;(192)</option>
385
+ <option class="level-0" value="5738">contests&nbsp;&nbsp;(136)</option>
386
+ <option class="level-0" value="3923181">cooking hacks&nbsp;&nbsp;(72)</option>
387
+ <option class="level-0" value="10969032">digital audio hacks&nbsp;&nbsp;(422)</option>
388
+ <option class="level-0" value="10969033">digital cameras hacks&nbsp;&nbsp;(415)</option>
389
+ <option class="level-0" value="10969034">downloads hacks&nbsp;&nbsp;(101)</option>
390
+ <option class="level-0" value="107827385">drone hacks&nbsp;&nbsp;(10)</option>
391
+ <option class="level-0" value="63176382">Engine Hacks&nbsp;&nbsp;(31)</option>
392
+ <option class="level-0" value="35890">Featured&nbsp;&nbsp;(72)</option>
393
+ <option class="level-0" value="551890">firefox hacks&nbsp;&nbsp;(23)</option>
394
+ <option class="level-0" value="53446541">FPGA&nbsp;&nbsp;(1)</option>
395
+ <option class="level-0" value="18020562">g1 hacks&nbsp;&nbsp;(26)</option>
396
+ <option class="level-0" value="320557">google hacks&nbsp;&nbsp;(44)</option>
397
+ <option class="level-0" value="10969036">gps hacks&nbsp;&nbsp;(108)</option>
398
+ <option class="level-0" value="24535490">green hacks&nbsp;&nbsp;(152)</option>
399
+ <option class="level-0" value="27311668">Hackaday links&nbsp;&nbsp;(146)</option>
400
+ <option class="level-0" value="21755374">Hackerspaces&nbsp;&nbsp;(93)</option>
401
+ <option class="level-0" value="6310599">HackIt&nbsp;&nbsp;(101)</option>
402
+ <option class="level-0" value="10969037">handhelds hacks&nbsp;&nbsp;(189)</option>
403
+ <option class="level-0" value="79">hardware&nbsp;&nbsp;(249)</option>
404
+ <option class="level-0" value="144422905">High Voltage Hacks&nbsp;&nbsp;(5)</option>
405
+ <option class="level-0" value="66307084">Holiday Hacks&nbsp;&nbsp;(93)</option>
406
+ <option class="level-0" value="10969038">home entertainment hacks&nbsp;&nbsp;(516)</option>
407
+ <option class="level-0" value="5660882">home hacks&nbsp;&nbsp;(705)</option>
408
+ <option class="level-0" value="2708">how-to&nbsp;&nbsp;(135)</option>
409
+ <option class="level-0" value="908478">internet hacks&nbsp;&nbsp;(2)</option>
410
+ <option class="level-0" value="831">Interviews&nbsp;&nbsp;(13)</option>
411
+ <option class="level-0" value="1416772">iphone hacks&nbsp;&nbsp;(176)</option>
412
+ <option class="level-0" value="1275163">ipod hacks&nbsp;&nbsp;(144)</option>
413
+ <option class="level-0" value="344761">kickstarter&nbsp;&nbsp;(29)</option>
414
+ <option class="level-0" value="4157506">Kindle hacks&nbsp;&nbsp;(15)</option>
415
+ <option class="level-0" value="46717088">Kinect hacks&nbsp;&nbsp;(81)</option>
416
+ <option class="level-0" value="10969048">laptops hacks&nbsp;&nbsp;(111)</option>
417
+ <option class="level-0" value="10969055">laser hacks&nbsp;&nbsp;(167)</option>
418
+ <option class="level-0" value="18020716">led hacks&nbsp;&nbsp;(695)</option>
419
+ <option class="level-0" value="10626">lifehacks&nbsp;&nbsp;(54)</option>
420
+ <option class="level-0" value="729674">linux hacks&nbsp;&nbsp;(129)</option>
421
+ <option class="level-0" value="20732807">lockpicking hacks&nbsp;&nbsp;(11)</option>
422
+ <option class="level-0" value="10969060">macs hacks&nbsp;&nbsp;(135)</option>
423
+ <option class="level-0" value="144395979">Marijuana Hacks&nbsp;&nbsp;(2)</option>
424
+ <option class="level-0" value="11284667">Medical hacks&nbsp;&nbsp;(102)</option>
425
+ <option class="level-0" value="139916">Microcontrollers&nbsp;&nbsp;(512)</option>
426
+ <option class="level-0" value="5611793">misc hacks&nbsp;&nbsp;(1747)</option>
427
+ <option class="level-0" value="18020730">multitouch hacks&nbsp;&nbsp;(89)</option>
428
+ <option class="level-0" value="22652725">musical hacks&nbsp;&nbsp;(290)</option>
429
+ <option class="level-0" value="18020722">netbook hacks&nbsp;&nbsp;(50)</option>
430
+ <option class="level-0" value="6166512">Network Hacks&nbsp;&nbsp;(4)</option>
431
+ <option class="level-0" value="103">news&nbsp;&nbsp;(1091)</option>
432
+ <option class="level-0" value="1861880">nintendo ds hacks&nbsp;&nbsp;(34)</option>
433
+ <option class="level-0" value="114555425">nintendo gameboy hacks&nbsp;&nbsp;(90)</option>
434
+ <option class="level-0" value="18020685">nintendo hacks&nbsp;&nbsp;(261)</option>
435
+ <option class="level-0" value="4992726">nintendo wii hacks&nbsp;&nbsp;(78)</option>
436
+ <option class="level-0" value="118011206">Nook Hacks&nbsp;&nbsp;(1)</option>
437
+ <option class="level-0" value="114556430">palm pre hacks&nbsp;&nbsp;(6)</option>
438
+ <option class="level-0" value="245123">parts&nbsp;&nbsp;(72)</option>
439
+ <option class="level-0" value="10969081">peripherals hacks&nbsp;&nbsp;(648)</option>
440
+ <option class="level-0" value="16325149">phone hacks&nbsp;&nbsp;(17)</option>
441
+ <option class="level-0" value="10969088">playstation hacks&nbsp;&nbsp;(120)</option>
442
+ <option class="level-0" value="2060">podcasts&nbsp;&nbsp;(8)</option>
443
+ <option class="level-0" value="10969096">portable audio hacks&nbsp;&nbsp;(66)</option>
444
+ <option class="level-0" value="10969099">portable video hacks&nbsp;&nbsp;(57)</option>
445
+ <option class="level-0" value="588444">psp hacks&nbsp;&nbsp;(47)</option>
446
+ <option class="level-0" value="23971578">radio hacks&nbsp;&nbsp;(137)</option>
447
+ <option class="level-0" value="47">rants&nbsp;&nbsp;(28)</option>
448
+ <option class="level-0" value="69218551">Raspberry Pi&nbsp;&nbsp;(153)</option>
449
+ <option class="level-0" value="21870780">repair hacks&nbsp;&nbsp;(101)</option>
450
+ <option class="level-0" value="309">reviews&nbsp;&nbsp;(19)</option>
451
+ <option class="level-0" value="10969101">robots hacks&nbsp;&nbsp;(874)</option>
452
+ <option class="level-0" value="30302">roundup&nbsp;&nbsp;(35)</option>
453
+ <option class="level-0" value="10969111">security hacks&nbsp;&nbsp;(460)</option>
454
+ <option class="level-0" value="2301">Software Development&nbsp;&nbsp;(91)</option>
455
+ <option class="level-0" value="3796421">software hacks&nbsp;&nbsp;(47)</option>
456
+ <option class="level-0" value="10969116">solar hacks&nbsp;&nbsp;(46)</option>
457
+ <option class="level-0" value="10969121">tablet pcs hacks&nbsp;&nbsp;(40)</option>
458
+ <option class="level-0" value="3075183">teardown&nbsp;&nbsp;(31)</option>
459
+ <option class="level-0" value="10969130">tool hacks&nbsp;&nbsp;(657)</option>
460
+ <option class="level-0" value="25277004">toy hacks&nbsp;&nbsp;(360)</option>
461
+ <option class="level-0" value="10969134">transportation hacks&nbsp;&nbsp;(472)</option>
462
+ <option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(332)</option>
463
+ <option class="level-0" value="3184456">video hacks&nbsp;&nbsp;(211)</option>
464
+ <option class="level-0" value="34942364">Virtual Reality&nbsp;&nbsp;(9)</option>
465
+ <option class="level-0" value="50802420">weapons hacks&nbsp;&nbsp;(63)</option>
466
+ <option class="level-0" value="12552193">wearable hacks&nbsp;&nbsp;(183)</option>
467
+ <option class="level-0" value="39510952">Weekly roundup&nbsp;&nbsp;(18)</option>
468
+ <option class="level-0" value="4891215">wireless hacks&nbsp;&nbsp;(333)</option>
469
+ <option class="level-0" value="7079455">xbox hacks&nbsp;&nbsp;(130)</option>
470
+ </select>
471
+
472
+ <script type='text/javascript'>
473
+ /* <![CDATA[ */
474
+ var dropdown = document.getElementById("cat");
475
+ function onCatChange() {
476
+ if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
477
+ location.href = "http://hackaday.com/?cat="+dropdown.options[dropdown.selectedIndex].value;
478
+ }
479
+ }
480
+ dropdown.onchange = onCatChange;
481
+ /* ]]> */
482
+ </script>
483
+
484
+ </div></div>
485
+ <div id="featured-post-2" class="widget featuredpost"><div class="widget-wrap"><h4 class="widgettitle">In case you missed it</h4>
486
+ <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()-->
487
+
488
+ <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()-->
489
+
490
+ <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()-->
491
+
492
+ <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()-->
493
+
494
+ <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()-->
495
+
496
+ <p class="more-from-category"><a href="http://hackaday.com/category/featured/" title="Featured">More Posts from this Category</a></p></div></div>
497
+ <div id="recent-comments-2" class="widget widget_recent_comments"><div class="widget-wrap"><h4 class="widgettitle">Recent comments</h4>
498
+ <ul id="recentcomments">
499
+ <li class="recentcomments">
500
+ 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>
501
+ <li class="recentcomments">
502
+ <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>
503
+ <li class="recentcomments">
504
+ 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>
505
+ <li class="recentcomments">
506
+ 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>
507
+ <li class="recentcomments">
508
+ 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>
509
+ <li class="recentcomments">
510
+ 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>
511
+ <li class="recentcomments">
512
+ 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>
513
+ <li class="recentcomments">
514
+ <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>
515
+ <li class="recentcomments">
516
+ <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>
517
+ <li class="recentcomments">
518
+ 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>
519
+ </ul>
520
+ </div></div>
521
+ <div id="calendar-2" class="widget widget_calendar"><div class="widget-wrap"><h4 class="widgettitle">Find Hacks by Date</h4>
522
+ <div id="calendar_wrap"><table id="wp-calendar">
523
+ <caption>April 2013</caption>
524
+ <thead>
525
+ <tr>
526
+ <th scope="col" title="Sunday">S</th>
527
+ <th scope="col" title="Monday">M</th>
528
+ <th scope="col" title="Tuesday">T</th>
529
+ <th scope="col" title="Wednesday">W</th>
530
+ <th scope="col" title="Thursday">T</th>
531
+ <th scope="col" title="Friday">F</th>
532
+ <th scope="col" title="Saturday">S</th>
533
+ </tr>
534
+ </thead>
535
+
536
+ <tfoot>
537
+ <tr>
538
+ <td colspan="3" id="prev"><a href="http://hackaday.com/2013/03/" title="View posts for March 2013">&laquo; Mar</a></td>
539
+ <td class="pad">&nbsp;</td>
540
+ <td colspan="3" id="next" class="pad">&nbsp;</td>
541
+ </tr>
542
+ </tfoot>
543
+
544
+ <tbody>
545
+ <tr>
546
+ <td colspan="1" class="pad">&nbsp;</td><td><a href="http://hackaday.com/2013/04/01/" title="Hackaday&#8217;s very first Kickstarter&nbsp;campaign, Doctor Who-style&nbsp;WiFi, Kindle weather and recycling&nbsp;display, Windmill made from washing machine, 555&nbsp;chip, SNES headphones scream out for Bluetooth&nbsp;control, How-to: turn on a light&nbsp;bulb">1</a></td><td><a href="http://hackaday.com/2013/04/02/" title="An EQ display for a pedal&nbsp;board, Dual displays on a Playstation&nbsp;2, Ask Hackaday: Hacking lingo&nbsp;fails, Cooling a photomultiplier&nbsp;tube, Hackerspace tour: Arch Reactor in St. Louis&nbsp;Missouri, Adafruit launches educational show aimed at&nbsp;kids, CNC Tic Tac&nbsp;Toe, Building a vehicle parking&nbsp;camera, April Fools&#8217; project teaches coworkers not to touch your&nbsp;stuff, SenseLamp automates rooms by replacing light&nbsp;fixtures">2</a></td><td><a href="http://hackaday.com/2013/04/03/" title="Embedded web server is all about clever&nbsp;formatting, Powering the Oculus Rift with&nbsp;USB, Upgrading a router with impeccable soldering&nbsp;skills, Homebuilt Laser Cutter&nbsp;Ideas, Building a&nbsp;Theremincello, Microscope ring light with a number of different&nbsp;features, Hall effect limit switches for a 3D&nbsp;printer, Adding an optical mouse sensor to an autonomous&nbsp;vehicle">3</a></td><td><a href="http://hackaday.com/2013/04/04/" title="Retrotechtacular: The Fourier&nbsp;Series, MP3/USB/Aux hack hidden behind cassette&nbsp;facade, Pranking a hackerspace IRC for April Fool&#8217;s&nbsp;Day, Turning an easter egg hunt into a fox&nbsp;hunt, Wireless Temperature Control for a&nbsp;Microbrewery, Melting Metal with a DIY Foundry&nbsp;Furnace, Top 10 Hacking Failures in movies: part&nbsp;2, Steampunk theremin&nbsp;goggles, High speed circuit design for quantum physics light&nbsp;sensing, Home security hardware makes you the monitoring&nbsp;service">4</a></td><td><a href="http://hackaday.com/2013/04/05/" title="Snowboard goggle HUD displays critical data while falling down a&nbsp;mountain, Electric tricycle build log is like hacker&nbsp;crack, H-bot style 3D printer moves bed for&nbsp;Z-axis, Stapler hack fastens infinitely large sheets of&nbsp;paper, Light Graffiti with Servos and&nbsp;Python">5</a></td><td><a href="http://hackaday.com/2013/04/06/" title="Fixing the worst video game ever: E.T. for Atari&nbsp;2600, Rolling your own minimal USB to serial Arduino&nbsp;programmer, Making PLA stick to a 3D printer build platform by using hairspray or an acetone ABS&nbsp;slurry">6</a></td>
547
+ </tr>
548
+ <tr>
549
+ <td><a href="http://hackaday.com/2013/04/07/" title="Acoustic bass guitar uses water jug and two&nbsp;strings, Solar powered robot mows your lawn while you chill&nbsp;indoors, Hackaday Links: Sunday, April 7th,&nbsp;2013">7</a></td><td><a href="http://hackaday.com/2013/04/08/" title="Another way to look at&nbsp;Charlieplexing, Combo lock uses relays and logic&nbsp;gates, Yamaha SW60XG hack lets you use it as a standalone MIDI&nbsp;device">8</a></td><td><a href="http://hackaday.com/2013/04/09/" title="Synthesizing graphene in your basement&nbsp;laboratory, The RedBull creation contest&nbsp;begins!, Recurve bow make from wood and&nbsp;skis, Wall wart computer&nbsp;mouse">9</a></td><td><a href="http://hackaday.com/2013/04/10/" title="Hacker sends this through the mail to record a video of the&nbsp;process, MIDI pedal project looks as good as it&nbsp;sounds, Perpetual&nbsp;pong">10</a></td><td><a href="http://hackaday.com/2013/04/11/" title="Snowboard propulsion system motors you through the&nbsp;flats, Guitar EQ levels trigger the stage&nbsp;lights, Top 10 best hacking scenes in&nbsp;movies, Automating a mechanical&nbsp;typewriter, Hacking the Oculus Rift: the&nbsp;Oculight">11</a></td><td><a href="http://hackaday.com/2013/04/12/" title="Jeep Wrangler gets pressurized water right out of the&nbsp;bumper, Horribly complicated electric guitar&nbsp;keyboard, Generating electricity from&nbsp;alcohol">12</a></td><td><a href="http://hackaday.com/2013/04/13/" title="Network-controlled fireworks&nbsp;launcher, Working 3D printed stepper&nbsp;motor, SqueezeBerry: a Raspberri Pi powered Squeezebox&nbsp;appliance">13</a></td>
550
+ </tr>
551
+ <tr>
552
+ <td><a href="http://hackaday.com/2013/04/14/" title="Teaching a computer to play Mario&#8230; seemingly through&nbsp;voodoo, Building a replacement for a broken dehumidifier&nbsp;controller, Hackaday Links: Sunday, April 14th,&nbsp;2013">14</a></td><td><a href="http://hackaday.com/2013/04/15/" title="Glowing Easter eggs more fun than a dye&nbsp;job, [FlorianH] shows off MinimaBL, the next generation of his quadcopter&nbsp;project, Original hardware for fifteen consoles jammed into recently completed Project&nbsp;Unity">15</a></td><td><a href="http://hackaday.com/2013/04/16/" title="Tube radio husk gets a web radio&nbsp;transplant, Building a kegerator with visual&nbsp;style, Hacked together Mac isn&#8217;t a&nbsp;hackintosh">16</a></td><td><a href="http://hackaday.com/2013/04/17/" title="Hackerspace security system brings RFID, video feedback, and automatic&nbsp;doors, Apple MagSafe cord&nbsp;repair, 3D Printing sensor mounts for the Oculus&nbsp;Rift, Upgrade a toy keyboard&#8217;s tone&nbsp;production">17</a></td><td><a href="http://hackaday.com/2013/04/18/" title="Hidden servo automates slat-style window&nbsp;blinds, Semi-automatic pick and place&nbsp;machine, Living night light with glowing&nbsp;algae, Pulse Oximeter from LM324, LED, and&nbsp;Photodiode">18</a></td><td><a href="http://hackaday.com/2013/04/19/" title="Measuring the lifespan of&nbsp;LEGO, Replace your project power supplies with recycled Li-Ion cells and a switching&nbsp;regulator, Asynchronous fireflies use few&nbsp;parts">19</a></td><td><a href="http://hackaday.com/2013/04/20/" title="This piggy bank is our stock&nbsp;broker, GUI window manager on an AVR&nbsp;chip, Mood lamp/notifier uses neat modular PCB&nbsp;design">20</a></td>
553
+ </tr>
554
+ <tr>
555
+ <td><a href="http://hackaday.com/2013/04/21/" title="3D printing some sweet&nbsp;music, Drop-in pcb makes Nintendo Four Score a USB&nbsp;joystick, Hackaday Links: Sunday, April 21st,&nbsp;2013">21</a></td><td><a href="http://hackaday.com/2013/04/22/" title="Automatic tubular bells given a MIDI interface&nbsp;too, Connect a Retina display to a regular&nbsp;computer, 20 pounds and a gut feeling yields a configurable Rubidium atomic clock&nbsp;source">22</a></td><td><a href="http://hackaday.com/2013/04/23/" title="Console radio given new life with a WiFi router&nbsp;retrofit, What are the best hacking&nbsp;documentaries?, OTM-02 is a 3D printed&nbsp;wristwatch, Rattle generator is a new type of dynamo for a&nbsp;bicycle">23</a></td><td id="today">24</td><td>25</td><td>26</td><td>27</td>
556
+ </tr>
557
+ <tr>
558
+ <td>28</td><td>29</td><td>30</td>
559
+ <td class="pad" colspan="4">&nbsp;</td>
560
+ </tr>
561
+ </tbody>
562
+ </table></div></div></div>
563
+ <div id=virurl>
564
+ <!-- BEGIN - VIRURL Widget - iFrame Embed Code -->
565
+ <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"
566
+ width="300" height="600" scrolling="no" >
567
+ </iframe>
568
+ <!-- END - VIRURL Widget - iFrame Embed Code -->
569
+ </div>
570
+ <br />
571
+ <br />
572
+ <div id=tl_ad_bottom>
573
+ <script type="text/javascript"><!--
574
+ google_ad_client = "ca-pub-1812638130783065";
575
+ /* Hackaday sidebar wide skyscraper */
576
+ google_ad_slot = "1587378096";
577
+ google_ad_width = 160;
578
+ google_ad_height = 600;
579
+ google_ad_region = "test";
580
+ //-->
581
+ </script>
582
+ <script type="text/javascript"
583
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
584
+ </script>
585
+ </div>
586
+
587
+
588
+ <br />
589
+
590
+
591
+
592
+
593
+
594
+
595
+ </div> </div><!-- end #content-sidebar-wrap -->
596
+ </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 -->
597
+ <script type="text/javascript">
598
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
599
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
600
+ </script>
601
+ <script type="text/javascript">
602
+ var pageTracker = _gat._getTracker("UA-2201445-6");
603
+ pageTracker._trackPageview();
604
+ </script>
605
+ <!-- Start Quantcast tag -->
606
+ <script type="text/javascript">
607
+ _qoptions={
608
+ qacct:"p-cc6zkdHuZwUDM"
609
+ };
610
+ </script>
611
+ <script type="text/javascript"
612
+ src="http://edge.quantserve.com/quant.js"></script>
613
+ <noscript>
614
+ <img src="http://pixel.quantserve.com/pixel/p-cc6zkdHuZwUDM.gif"
615
+ style="display: none;" border="0" height="1" width="1"
616
+ alt="Quantcast"/>
617
+ </noscript></div><!-- end #wrap -->
618
+
619
+ <script type="text/javascript">
620
+ var _qevents = _qevents || [], wpcomQuantcastData = {"qacct":"p-18-mFEk4J448M","labels":",language.en,type.wpcom,vip.hackadaycom"};
621
+ function wpcomQuantcastPixel( labels, options ) {
622
+ var i, defaults = wpcomQuantcastData, data = { event: 'ajax' };
623
+
624
+ labels = labels || '';
625
+ options = options || {};
626
+
627
+ if ( typeof labels != 'string' )
628
+ options = labels;
629
+
630
+ for ( i in defaults ) {
631
+ data[i] = defaults[i];
632
+ }
633
+
634
+ for ( i in options ) {
635
+ data[i] = options[i];
636
+ }
637
+
638
+ if ( data.labels ) {
639
+ data.labels += ',' + labels;
640
+ } else {
641
+ data.labels = labels;
642
+ }
643
+
644
+ _qevents.push( data );
645
+ };
646
+ (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); })();
647
+ _qevents.push( wpcomQuantcastData );
648
+ </script>
649
+ <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>
650
+
651
+
652
+ <!-- /// LOAD CHARTBEAT /// -->
653
+ <script type="text/javascript">
654
+ var _sf_async_config={};
655
+ _sf_async_config.uid = 2021;
656
+ _sf_async_config.useCanonical = true;
657
+
658
+ (function(){
659
+ function loadChartbeat() {
660
+ window._sf_endpt=(new Date()).getTime();
661
+ var e = document.createElement('script');
662
+ e.setAttribute('language', 'javascript');
663
+ e.setAttribute('type', 'text/javascript');
664
+ e.setAttribute('src',
665
+ (("https:" == document.location.protocol) ? "https://s3.amazonaws.com/" : "http://") +
666
+ "static.chartbeat.com/js/chartbeat.js");
667
+ document.body.appendChild(e);
668
+ }
669
+ var oldonload = window.onload;
670
+ window.onload = (typeof window.onload != 'function') ?
671
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
672
+ })();
673
+ </script>
674
+ <div style="display:none">
675
+ </div>
676
+ <script type='text/javascript' src='http://s2.wp.com/_static/??-eJylzMsOREAQRuEXMoqgEwvxLC4/qjPVOl3dZh4fO3vrk+/Qz3+m3UW4SFZpxsET/D+3mtEjxQ0CJR8gnIRWOCgrfXm8lcAl0uQRFtbtlR3Cqtegl66smto0xhStPQEw5Dy+'></script>
677
+ <script type="text/javascript">
678
+ // <![CDATA[
679
+ (function() {
680
+ try{
681
+ if ( window.external &&'msIsSiteMode' in window.external) {
682
+ if (window.external.msIsSiteMode()) {
683
+ var jl = document.createElement('script');
684
+ jl.type='text/javascript';
685
+ jl.async=true;
686
+ jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
687
+ var s = document.getElementsByTagName('script')[0];
688
+ s.parentNode.insertBefore(jl, s);
689
+ }
690
+ }
691
+ }catch(e){}
692
+ })();
693
+ // ]]>
694
+ </script><script src="http://s.stats.wordpress.com/w.js?21" type="text/javascript"></script>
695
+ <script type="text/javascript">
696
+ st_go({'blog':'4779443','v':'wpcom','tz':'-7','user_id':'0','subd':'hackadaycom'});
697
+ 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();}
698
+ ex_go({'crypt':'UE40eW5QN0p8M2Y/RE1BNmNJfGhxNCVxUDExYmtXRThKbHcwXTdETWI1alhvb1oseHImN101ZFpEakVpYjlQYVFLYzBaVHRtPz0wXS9bVlFpZ3c1Qn5KSThLNS9lSHNGOE1IJk9+N3xFNWxyT2x+MUpnR1dJcFZHU2krQ3pNV3hULjBlWEI4dnU4XTkxQ35ENS9hfjBGNzJxampYTHpJPzRbOHBqaFNrR1pQNix4UEdjd1YzW3Z2MWRYL2doR1M2X3ExckMmb0U2cU5+d0NhMj1YcUIwRDRRenIsNFtDZnlKajhHc1lLd3JjN2VZeExtZkh3cjlvNzlBPzVK'});
699
+ addLoadEvent(function(){linktracker_init('4779443',0);});
700
+ </script>
701
+ <noscript><img src="http://stats.wordpress.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
702
+ <script type="text/javascript">
703
+ // Trigger Quantcast pixel for each Infinite Scroll post load
704
+ if ( 'function' === typeof( jQuery ) ) {
705
+ jQuery( document.body ).on( 'post-load', function() {
706
+ if ( 'function' === typeof( wpcomQuantcastPixel ) )
707
+ wpcomQuantcastPixel();
708
+ } );
709
+ }
710
+ </script>
711
+ </body>
712
+ </html>