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,793 @@
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 186 seconds ago
5
+ generated in 0.349 seconds
6
+ served from batcache in 0.002 seconds
7
+ expires in 114 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=1366800958&amp;back=hackaday.com%2Fpage%2F23%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-23 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-96679 post type-post status-publish format-standard hentry category-3d-printer-hacks category-tool-hacks tag-3d-printer tag-bandsaw tag-saw tag-tool">
197
+
198
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/24/fixing-tools-with-3d-printers/" title="Fixing tools with 3D&nbsp;printers" rel="bookmark">Fixing tools with 3D&nbsp;printers</a></h2>
199
+
200
+ <div class="post-info"><span class="date published time" title="2013-03-24T10:00:17+00:00">March 24, 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/24/fixing-tools-with-3d-printers/#comments">Leave a Comment</a></span> </div> <div class="entry-content">
201
+ <p><img class="aligncenter size-full wp-image-96680" alt="saw" src="http://hackadaycom.files.wordpress.com/2013/03/saw.jpg?w=470&#038;h=274" width="470" height="274" /></p>
202
+ <p>Over at the Manchester Hackerspace, [Bob] has been busy getting a 30-year-old bandsaw up and running. The saw worked great, but it was missing a fence, making straight cuts difficult to say the least.  The solution, of course, was to build a new fence, and [Bob] decided to capitalize on his hackerspace&#8217;s workshop by<a href="http://thinkl33t.co.uk/3d-printing-bandsaw-fence"> making a new fence with a 3d printer</a>.</p>
203
+ <p>[Bob] began by taking careful measurements of the saw&#8217;s table and the channel running down the length of it. These measurements were plugged into OpenSCAD, and after a few iterations, [Bob] had an extremely well-fitting profile a fence could be attached to.</p>
204
+ <p>With the profile down, [Bob] created a new part in OpenSCAD that would hold an aluminum angle piece. This was attached to the plastic parts with screws, and the entire assembly clamps down to the saw with the help of a few 5mm bolts. For a machine that is usually dedicated to making 3D printer parts and Yoda heads, [Bob] did a great job making good use of his 3D printer.</p>
205
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
206
+ <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/tool-hacks/" title="View all posts in tool hacks" rel="category tag">tool hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/3d-printer/" rel="tag">3d printer</a>, <a href="http://hackaday.com/tag/bandsaw/" rel="tag">bandsaw</a>, <a href="http://hackaday.com/tag/saw/" rel="tag">saw</a>, <a href="http://hackaday.com/tag/tool/" rel="tag">tool</a></span> </div>
207
+ </div><!-- end .postclass -->
208
+ <div class="post-96682 post type-post status-publish format-standard hentry category-wearable-hacks tag-binary tag-pic tag-watch tag-wristwatch">
209
+
210
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/24/a-homebrew-binary-wristwatch/" title="A homebrew binary&nbsp;wristwatch" rel="bookmark">A homebrew binary&nbsp;wristwatch</a></h2>
211
+
212
+ <div class="post-info"><span class="date published time" title="2013-03-24T08:00:17+00:00">March 24, 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/24/a-homebrew-binary-wristwatch/#comments">15 Comments</a></span> </div> <div class="entry-content">
213
+ <p><img class="aligncenter size-full wp-image-96683" alt="watch" src="http://hackadaycom.files.wordpress.com/2013/03/watch.jpg?w=580&#038;h=307" width="580" height="307" /></p>
214
+ <p>There are 2 types of people in the world; those who know binary, those who don&#8217;t, and those who know ternary. [Emanuele] thought a binary wristwatch is the pinnacle of nerd and <a href="http://forgeofstuff.blogspot.it/2013/03/binary-clock.html">set out to build his own</a>. The resulting binary clock not only screams nerd as intended, but is also a functional time piece, as well.</p>
215
+ <p>The idea of a binary wristwatch came to [Emanuele] while he was working with PICs at school. Not wanting to let that knowledge go to waste, he used a PIC16F628 microcontroller for this build. There are four LEDs for the hours and six LEDs for the minutes, each attached to a separate microcontroller pin for easy programming.</p>
216
+ <p>To keep time, [Emanuele] kept the PIC in sleep mode most of the time, only waking it up when a an internal timer&#8217;s register overflows. The watch spends most of its time sleeping, sipping power from a coin cell battery with a battery life that should last weeks, at least.</p>
217
+ <p>The entire circuit is tucked away in a PVC enclosure with a wonderful rainbow ribbon cable band. We&#8217;re not so sure about how that feels against the skin all day, but it does exude the nerd cred [Emanuele] was looking for.</p>
218
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
219
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/wearable-hacks/" title="View all posts in wearable hacks" rel="category tag">wearable hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/binary/" rel="tag">binary</a>, <a href="http://hackaday.com/tag/pic/" rel="tag">pic</a>, <a href="http://hackaday.com/tag/watch/" rel="tag">watch</a>, <a href="http://hackaday.com/tag/wristwatch/" rel="tag">wristwatch</a></span> </div>
220
+ </div><!-- end .postclass -->
221
+ <div class="post-96672 post type-post status-publish format-standard hentry category-raspberry-pi-2 category-security-hacks tag-aircrack tag-pentesting tag-raspberry-pi tag-ssh">
222
+
223
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/24/rogue-pi-a-rpi-pentesting-dropbox/" title="Rogue Pi: A RPi Pentesting&nbsp;Dropbox" rel="bookmark">Rogue Pi: A RPi Pentesting&nbsp;Dropbox</a></h2>
224
+
225
+ <div class="post-info"><span class="date published time" title="2013-03-24T06:01:53+00:00">March 24, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/ericevenchick/" class="fn n" title="Eric Evenchick" rel="author">Eric Evenchick</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/24/rogue-pi-a-rpi-pentesting-dropbox/#comments">Leave a Comment</a></span> </div> <div class="entry-content">
226
+ <p><a href="http://hackaday.com/?attachment_id=96673" rel="attachment wp-att-96673"><img class="alignnone size-large wp-image-96673" alt="Rogue Pi" src="http://hackadaycom.files.wordpress.com/2013/03/roguepi.jpg?w=580&#038;h=386" width="580" height="386" /></a></p>
227
+ <p>A pentesting dropbox is used to allow a pentester to remotely access and audit a network. The device is dropped onto a network, and then sets up a connection which allows remote access. As a final project, [Kalen] built the <a title="Rogue Pi" href="http://crushbeercrushcode.org/2013/03/developing-the-rogue-pi/">Rogue Pi</a>, a pentesting dropbox based on the Raspberry Pi.</p>
228
+ <p>The Rogue Pi has a few features that make it helpful for pentesting. First off, it has a power on test that verifies that the installation onto the target network was successful. Since the install of a dropbox needs to be inconspicuous, this helps with getting the device setup without being detected. A LCD allows the user to see if the installation was successful without an additional computer or external display.</p>
229
+ <p>Once powered on, the device creates a reverse SSH tunnel, which provides remote access to the device. Using a reverse tunnel allows the device to get around the network&#8217;s firewall. Aircrack-ng has been included on the device to allow for wireless attacks, and a hidden SSID allows for wireless access if the wired network has issues. There is a long list of pentesting tools that have been built to run on the Pi.</p>
230
+ <p>Check out a video demonstration of the dropbox after the break.</p>
231
+ <p> <a href="http://hackaday.com/2013/03/24/rogue-pi-a-rpi-pentesting-dropbox/#more-96672" class="more-link">[Read more...]</a></p>
232
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
233
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/raspberry-pi-2/" title="View all posts in Raspberry Pi" rel="category tag">Raspberry Pi</a>, <a href="http://hackaday.com/category/security-hacks/" title="View all posts in security hacks" rel="category tag">security hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/aircrack/" rel="tag">aircrack</a>, <a href="http://hackaday.com/tag/pentesting/" rel="tag">pentesting</a>, <a href="http://hackaday.com/tag/raspberry-pi/" rel="tag">raspberry pi</a>, <a href="http://hackaday.com/tag/ssh/" rel="tag">ssh</a></span> </div>
234
+ </div><!-- end .postclass -->
235
+ <div align="center">
236
+
237
+
238
+
239
+ <script type="text/javascript"><!--
240
+
241
+ google_ad_client = "ca-pub-1812638130783065";
242
+
243
+ /* Hackaday, 300x250, created 4/26/08, MedRect main column */
244
+
245
+ google_ad_slot = "3449215672";
246
+
247
+ google_ad_width = 300;
248
+
249
+ google_ad_height = 250;
250
+
251
+ //-->
252
+
253
+ </script>
254
+
255
+ <script type="text/javascript"
256
+
257
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
258
+
259
+ </script>
260
+
261
+
262
+
263
+ </div> <div class="post-96637 post type-post status-publish format-standard hentry category-3d-printer-hacks category-chemistry-hacks tag-3d-printer tag-acetone tag-chemistry tag-smoothing">
264
+
265
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/23/smoothing-3d-prints-with-acetone-vapor/" title="Smoothing 3D Prints with Acetone&nbsp;Vapor" rel="bookmark">Smoothing 3D Prints with Acetone&nbsp;Vapor</a></h2>
266
+
267
+ <div class="post-info"><span class="date published time" title="2013-03-23T16:01:43+00:00">March 23, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/ericevenchick/" class="fn n" title="Eric Evenchick" rel="author">Eric Evenchick</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/23/smoothing-3d-prints-with-acetone-vapor/#comments">7 Comments</a></span> </div> <div class="entry-content">
268
+ <p><a href="http://hackaday.com/?attachment_id=96638" rel="attachment wp-att-96638"><img class="alignnone size-large wp-image-96638" alt="Acetone Smoothed Prints" src="http://hackadaycom.files.wordpress.com/2013/03/acetone.png?w=580&#038;h=368" width="580" height="368" /></a></p>
269
+ <p>If you&#8217;ve ever used an extruding 3D printer, you know that the resulting prints aren&#8217;t exactly smooth. At the Southackton hackerspace [James] and [Bracken] worked out a method of <a title="3D Print Smoothing with Acetone Vapor" href="http://www.youtube.com/watch?v=bcXLJRIKGuQ">smoothing the parts out using vapor</a>. The method involves heating acetone until it forms a vapor, then exposing ABS parts to the vapor. The method only works with ABS, but creates some good looking results.</p>
270
+ <p>Acetone is rather flammable, so the guys started out with some safety testing. This involved getting a good air to fuel mixture of acetone, and testing what the worst case scenario would be if it were to ignite. The tests showed that the amount of acetone they used would be rather safe, even if it caught fire, which was a concern several people mentioned <a href="http://hackaday.com/2013/02/26/giving-3d-printed-parts-a-shiny-smooth-finish/">last time we saw the method</a>.</p>
271
+ <p>After the break, [James] and [Bracken] give a detailed explanation of the process.</p>
272
+ <p> <a href="http://hackaday.com/2013/03/23/smoothing-3d-prints-with-acetone-vapor/#more-96637" class="more-link">[Read more...]</a></p>
273
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
274
+ <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/chemistry-hacks/" title="View all posts in chemistry hacks" rel="category tag">chemistry hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/3d-printer/" rel="tag">3d printer</a>, <a href="http://hackaday.com/tag/acetone/" rel="tag">acetone</a>, <a href="http://hackaday.com/tag/chemistry/" rel="tag">Chemistry</a>, <a href="http://hackaday.com/tag/smoothing/" rel="tag">smoothing</a></span> </div>
275
+ </div><!-- end .postclass -->
276
+ <div class="post-96652 post type-post status-publish format-standard hentry category-raspberry-pi-2 category-robots-hacks category-toy-hacks tag-opencv tag-pocketsphinx tag-r2d2 tag-rasbian tag-raspberry-pi">
277
+
278
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/23/hacked-interactive-r2d2-controlled-by-raspberry-pi/" title="Hacked Interactive R2D2 controlled by Raspberry&nbsp;Pi" rel="bookmark">Hacked Interactive R2D2 controlled by Raspberry&nbsp;Pi</a></h2>
279
+
280
+ <div class="post-info"><span class="date published time" title="2013-03-23T14:01:26+00:00">March 23, 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/23/hacked-interactive-r2d2-controlled-by-raspberry-pi/#comments">1 Comment</a></span> </div> <div class="entry-content">
281
+ <p><img class="alignnone size-full wp-image-96654" alt="hacked-R2D2-controlled-by-raspberry-pi" src="http://hackadaycom.files.wordpress.com/2013/03/hacked-r2d2-controlled-by-raspberry-pi.jpg?w=470&#038;h=330" width="470" height="330" /></p>
282
+ <p>Ah R2D2. Probably one of the most recognized little robots on the planet. There have to be a hundred different toys of R2 out there, but one of the more impressive is the 30th Anniversary Interactive edition. Complete with all kinds of bells and whistles, it&#8217;s about as realistic as they come. One Star Wars fan found himself in possession of a broken Interactive R2, and with his girlfriend&#8217;s birthday coming up, <a href="http://www.youtube.com/watch?v=znuUm5vbSpI&amp;feature=youtu.be">decided to do a little droid surgery to create the ultimate gift</a>.</p>
283
+ <p>Giving Anakin a run for his money, all the controls for this R2 unit were custom built.  A Raspberry Pi running Rasbian acts as the brain. Facial recognition was implemented using <a href="http://opencv.willowgarage.com/wiki/FaceRecognition">OpenCV</a>. Voice commands in either English or Chinese were made possible by <a href="http://sourceforge.net/projects/cmusphinx/">PocketSphinx</a>. Some of the other features he included are: message recording and playback, ultrasonic distance detection, motion detection, wifi, and a rechargeable battery. Many of those features <em>were</em> included in the original toy, but since this unit was broken, had to be rebuilt from scratch.</p>
284
+ <p>In the end, it must have impressed his girlfriend &#8211; she&#8217;s now his wife. Good work Jedi. Check out some build photos and a video demonstration after the break.</p>
285
+ <p> <a href="http://hackaday.com/2013/03/23/hacked-interactive-r2d2-controlled-by-raspberry-pi/#more-96652" class="more-link">[Read more...]</a></p>
286
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
287
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/raspberry-pi-2/" title="View all posts in Raspberry Pi" rel="category tag">Raspberry Pi</a>, <a href="http://hackaday.com/category/robots-hacks/" title="View all posts in robots hacks" rel="category tag">robots hacks</a>, <a href="http://hackaday.com/category/toy-hacks/" title="View all posts in toy hacks" rel="category tag">toy hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/opencv/" rel="tag">opencv</a>, <a href="http://hackaday.com/tag/pocketsphinx/" rel="tag">pocketsphinx</a>, <a href="http://hackaday.com/tag/r2d2/" rel="tag">r2d2</a>, <a href="http://hackaday.com/tag/rasbian/" rel="tag">rasbian</a>, <a href="http://hackaday.com/tag/raspberry-pi/" rel="tag">raspberry pi</a></span> </div>
288
+ </div><!-- end .postclass -->
289
+ <div class="post-96617 post type-post status-publish format-standard hentry category-green-hacks tag-aa tag-battery tag-camera tag-canon tag-lifepo4">
290
+
291
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/23/lifepo4-batteries-work-much-better-in-a-camera-than-nimh/" title="LiFePO4 batteries work much better in a camera than&nbsp;NiMH" rel="bookmark">LiFePO4 batteries work much better in a camera than&nbsp;NiMH</a></h2>
292
+
293
+ <div class="post-info"><span class="date published time" title="2013-03-23T12:01:09+00:00">March 23, 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/23/lifepo4-batteries-work-much-better-in-a-camera-than-nimh/#comments">13 Comments</a></span> </div> <div class="entry-content">
294
+ <p><img class="aligncenter size-large wp-image-96618" alt="SAMSUNG" src="http://hackadaycom.files.wordpress.com/2013/03/lifepo4-replaces-nimh-batteries-in-camera.jpg?w=580&#038;h=435" width="580" height="435" /></p>
295
+ <p>We agree with [Zapmaker] that Canon cameras chew through nickel metal hydride batteries. But we&#8217;re not going to use Alkaline because we think it&#8217;s wasteful. His solution is to use a battery that has a higher voltage rating. What you see here is <a href="http://zapmaker.org/quick/ultimate-rechargable-aa-batteries-for-canon-camera/">a single lithium iron phosphate cell paired with a dummy cell</a> to increase life between charges.</p>
296
+ <p>The reason that NiMH batteries don&#8217;t last very long is that they&#8217;re only rated at 2.4V. It won&#8217;t take long for that voltage to drop below the camera&#8217;s cutoff threshold since they didn&#8217;t start very high to begin with. But a single LiFePO4 cell has the same form-factor but produces 3.2V and maintains voltage well through it&#8217;s discharge cycle.</p>
297
+ <p>The size is right, but using one cell won&#8217;t work by itself. He built a filler for the other slot which is just a wood dowel with a screw all the way through it. The point was ground down and a bit of foil added to ensure a proper connection. We&#8217;d be interested to hear back about how this performs over the long term.</p>
298
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
299
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/green-hacks/" title="View all posts in green hacks" rel="category tag">green hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/aa/" rel="tag">aa</a>, <a href="http://hackaday.com/tag/battery/" rel="tag">battery</a>, <a href="http://hackaday.com/tag/camera/" rel="tag">camera</a>, <a href="http://hackaday.com/tag/canon/" rel="tag">canon</a>, <a href="http://hackaday.com/tag/lifepo4/" rel="tag">LiFePO4</a></span> </div>
300
+ </div><!-- end .postclass -->
301
+ <div class="post-96613 post type-post status-publish format-standard hentry category-high-voltage-hacks tag-capacitor tag-disposable-camera tag-flash tag-operation tag-shock">
302
+
303
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/23/shocking-operation-makes-sure-you-have-skin-in-the-game/" title="Shocking Operation makes sure you have skin in the&nbsp;game" rel="bookmark">Shocking Operation makes sure you have skin in the&nbsp;game</a></h2>
304
+
305
+ <div class="post-info"><span class="date published time" title="2013-03-23T10:01:07+00:00">March 23, 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/23/shocking-operation-makes-sure-you-have-skin-in-the-game/#comments">4 Comments</a></span> </div> <div class="entry-content">
306
+ <p><img class="aligncenter size-large wp-image-96614" alt="operation-shocks-you" src="http://hackadaycom.files.wordpress.com/2013/03/operation-shocks-you.jpg?w=580&#038;h=435" width="580" height="435" /></p>
307
+ <p>Odds are you played the game of Operation when you were a kid. The classic electronic toy challenges you to use a tethered tweezers to extract plastic pieces without touching the sides of the holes they&#8217;re hiding in. <a href="http://www.instructables.com/id/Shockeration-Modified-Operation-Board-Game">This upgrade makes the challenge more interesting</a> for a grown-up audience. If you touch the sides you won&#8217;t hear a jarring sound, you&#8217;ll get a painful shock!</p>
308
+ <p>The modification starts by clipping off the melted plastic portions that hold the paperboard face plate on the game. From there the original electronics are completely removed. We think this a bit of a mistake as we&#8217;d still like spectators to hear the sound as the player gets a shock. But we digress. The circuit board from a disposable camera is patched into the game. A wrist band forms an electrical connection with your body, providing a path for the camera&#8217;s flash capacitor to discharge if you happen to touch the sides with the tweezers.</p>
309
+ <p>This write-up is missing one important thing: video of someone getting shocked. [Psycosisnine] promises to add some soon, but for now you&#8217;ll just have to fall back on our absolute favorite <a href="http://hackaday.com/2010/03/04/using-mindflex-to-shock-the-heck-out-of-people/">Mindflex shock project</a>.</p>
310
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
311
+ <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></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/capacitor/" rel="tag">capacitor</a>, <a href="http://hackaday.com/tag/disposable-camera/" rel="tag">disposable camera</a>, <a href="http://hackaday.com/tag/flash/" rel="tag">flash</a>, <a href="http://hackaday.com/tag/operation/" rel="tag">operation</a>, <a href="http://hackaday.com/tag/shock/" rel="tag">shock</a></span> </div>
312
+ </div><!-- end .postclass -->
313
+ <div class="navigation"><div class="alignleft"><a href="http://hackaday.com/page/24/" >&laquo; Older Posts</a></div><div class="alignright"><a href="http://hackaday.com/page/22/" >Newer Posts &raquo;</a></div></div><!-- end .navigation --> </div><!-- end #content -->
314
+ <div id="sidebar" class="sidebar widget-area">
315
+ <div id=tl_ad>
316
+ <script type="text/javascript"><!--
317
+ google_ad_client = "ca-pub-1812638130783065";
318
+ /* Hackaday, 300x250, created 4/26/08, MedRect sidebar */
319
+ google_ad_slot = "7800245928";
320
+ google_ad_width = 300;
321
+ google_ad_height = 250;
322
+ //-->
323
+ </script>
324
+ <script type="text/javascript"
325
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
326
+ </script>
327
+
328
+ </div>
329
+
330
+
331
+
332
+
333
+
334
+
335
+ <div class="widget">
336
+ <h4>Never Miss a Hack</h4>
337
+ <div class="textwidget">
338
+
339
+ <!-- Place this tag where you want the badge to render. -->
340
+ <div class="g-plus" data-width= "280" data-href="https://plus.google.com/114843073658390316652" data-rel="publisher" data-theme="dark"></div>
341
+ <!-- Place this tag after the last badge tag. -->
342
+ <script type="text/javascript">
343
+ (function() {
344
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
345
+ po.src = 'https://apis.google.com/js/plusone.js';
346
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
347
+ })();
348
+ </script>
349
+
350
+ <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>
351
+
352
+ <a href="https://twitter.com/hackaday" class="twitter-follow-button" data-show-count="true" data-lang="en" data-size="large">Follow @twitter</a>
353
+ <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>
354
+
355
+ <a href="http://feeds2.feedburner.com/hackaday/LgoM" target="_blank"><img src="http://hackadaycom.files.wordpress.com/2012/11/orange.png" border="0"/></a>
356
+ <div class="clear"> </div>
357
+ <!-- Begin MailChimp Signup Form -->
358
+ <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
359
+
360
+ <div id="mc_embed_signup">
361
+ <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>
362
+ <label for="mce-EMAIL">Subscribe to our mailing list for sneak previews and behind the scenes info</label>
363
+ <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
364
+ <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
365
+ </form>
366
+ </div>
367
+
368
+ <!--End mc_embed_signup-->
369
+ </div>
370
+ </div>
371
+
372
+ <div id="categories-2" class="widget widget_categories"><div class="widget-wrap"><h4 class="widgettitle">Categories</h4>
373
+ <select name='cat' id='cat' class='postform' >
374
+ <option value='-1'>Select Category</option>
375
+ <option class="level-0" value="114554125">3d Printer hacks&nbsp;&nbsp;(116)</option>
376
+ <option class="level-0" value="18020710">android hacks&nbsp;&nbsp;(240)</option>
377
+ <option class="level-0" value="18020705">arduino hacks&nbsp;&nbsp;(1029)</option>
378
+ <option class="level-0" value="27981650">ARM&nbsp;&nbsp;(51)</option>
379
+ <option class="level-0" value="33199679">Ask Hackaday&nbsp;&nbsp;(29)</option>
380
+ <option class="level-0" value="64298109">ATtiny hacks&nbsp;&nbsp;(45)</option>
381
+ <option class="level-0" value="25122024">beer hacks&nbsp;&nbsp;(63)</option>
382
+ <option class="level-0" value="12115263">blackberry hacks&nbsp;&nbsp;(8)</option>
383
+ <option class="level-0" value="10969031">cellphones hacks&nbsp;&nbsp;(337)</option>
384
+ <option class="level-0" value="35745764">chemistry hacks&nbsp;&nbsp;(102)</option>
385
+ <option class="level-0" value="24483654">classic hacks&nbsp;&nbsp;(852)</option>
386
+ <option class="level-0" value="31677810">clock hacks&nbsp;&nbsp;(189)</option>
387
+ <option class="level-0" value="18755632">cnc hacks&nbsp;&nbsp;(341)</option>
388
+ <option class="level-0" value="568165">computer hacks&nbsp;&nbsp;(390)</option>
389
+ <option class="level-0" value="78428">cons&nbsp;&nbsp;(192)</option>
390
+ <option class="level-0" value="5738">contests&nbsp;&nbsp;(136)</option>
391
+ <option class="level-0" value="3923181">cooking hacks&nbsp;&nbsp;(72)</option>
392
+ <option class="level-0" value="10969032">digital audio hacks&nbsp;&nbsp;(422)</option>
393
+ <option class="level-0" value="10969033">digital cameras hacks&nbsp;&nbsp;(415)</option>
394
+ <option class="level-0" value="10969034">downloads hacks&nbsp;&nbsp;(101)</option>
395
+ <option class="level-0" value="107827385">drone hacks&nbsp;&nbsp;(10)</option>
396
+ <option class="level-0" value="63176382">Engine Hacks&nbsp;&nbsp;(31)</option>
397
+ <option class="level-0" value="35890">Featured&nbsp;&nbsp;(72)</option>
398
+ <option class="level-0" value="551890">firefox hacks&nbsp;&nbsp;(23)</option>
399
+ <option class="level-0" value="53446541">FPGA&nbsp;&nbsp;(1)</option>
400
+ <option class="level-0" value="18020562">g1 hacks&nbsp;&nbsp;(26)</option>
401
+ <option class="level-0" value="320557">google hacks&nbsp;&nbsp;(44)</option>
402
+ <option class="level-0" value="10969036">gps hacks&nbsp;&nbsp;(108)</option>
403
+ <option class="level-0" value="24535490">green hacks&nbsp;&nbsp;(152)</option>
404
+ <option class="level-0" value="27311668">Hackaday links&nbsp;&nbsp;(146)</option>
405
+ <option class="level-0" value="21755374">Hackerspaces&nbsp;&nbsp;(93)</option>
406
+ <option class="level-0" value="6310599">HackIt&nbsp;&nbsp;(101)</option>
407
+ <option class="level-0" value="10969037">handhelds hacks&nbsp;&nbsp;(189)</option>
408
+ <option class="level-0" value="79">hardware&nbsp;&nbsp;(249)</option>
409
+ <option class="level-0" value="144422905">High Voltage Hacks&nbsp;&nbsp;(5)</option>
410
+ <option class="level-0" value="66307084">Holiday Hacks&nbsp;&nbsp;(93)</option>
411
+ <option class="level-0" value="10969038">home entertainment hacks&nbsp;&nbsp;(516)</option>
412
+ <option class="level-0" value="5660882">home hacks&nbsp;&nbsp;(705)</option>
413
+ <option class="level-0" value="2708">how-to&nbsp;&nbsp;(135)</option>
414
+ <option class="level-0" value="908478">internet hacks&nbsp;&nbsp;(2)</option>
415
+ <option class="level-0" value="831">Interviews&nbsp;&nbsp;(13)</option>
416
+ <option class="level-0" value="1416772">iphone hacks&nbsp;&nbsp;(176)</option>
417
+ <option class="level-0" value="1275163">ipod hacks&nbsp;&nbsp;(144)</option>
418
+ <option class="level-0" value="344761">kickstarter&nbsp;&nbsp;(29)</option>
419
+ <option class="level-0" value="4157506">Kindle hacks&nbsp;&nbsp;(15)</option>
420
+ <option class="level-0" value="46717088">Kinect hacks&nbsp;&nbsp;(81)</option>
421
+ <option class="level-0" value="10969048">laptops hacks&nbsp;&nbsp;(111)</option>
422
+ <option class="level-0" value="10969055">laser hacks&nbsp;&nbsp;(167)</option>
423
+ <option class="level-0" value="18020716">led hacks&nbsp;&nbsp;(695)</option>
424
+ <option class="level-0" value="10626">lifehacks&nbsp;&nbsp;(54)</option>
425
+ <option class="level-0" value="729674">linux hacks&nbsp;&nbsp;(129)</option>
426
+ <option class="level-0" value="20732807">lockpicking hacks&nbsp;&nbsp;(11)</option>
427
+ <option class="level-0" value="10969060">macs hacks&nbsp;&nbsp;(135)</option>
428
+ <option class="level-0" value="144395979">Marijuana Hacks&nbsp;&nbsp;(2)</option>
429
+ <option class="level-0" value="11284667">Medical hacks&nbsp;&nbsp;(102)</option>
430
+ <option class="level-0" value="139916">Microcontrollers&nbsp;&nbsp;(512)</option>
431
+ <option class="level-0" value="5611793">misc hacks&nbsp;&nbsp;(1747)</option>
432
+ <option class="level-0" value="18020730">multitouch hacks&nbsp;&nbsp;(89)</option>
433
+ <option class="level-0" value="22652725">musical hacks&nbsp;&nbsp;(290)</option>
434
+ <option class="level-0" value="18020722">netbook hacks&nbsp;&nbsp;(50)</option>
435
+ <option class="level-0" value="6166512">Network Hacks&nbsp;&nbsp;(4)</option>
436
+ <option class="level-0" value="103">news&nbsp;&nbsp;(1091)</option>
437
+ <option class="level-0" value="1861880">nintendo ds hacks&nbsp;&nbsp;(34)</option>
438
+ <option class="level-0" value="114555425">nintendo gameboy hacks&nbsp;&nbsp;(90)</option>
439
+ <option class="level-0" value="18020685">nintendo hacks&nbsp;&nbsp;(261)</option>
440
+ <option class="level-0" value="4992726">nintendo wii hacks&nbsp;&nbsp;(78)</option>
441
+ <option class="level-0" value="118011206">Nook Hacks&nbsp;&nbsp;(1)</option>
442
+ <option class="level-0" value="114556430">palm pre hacks&nbsp;&nbsp;(6)</option>
443
+ <option class="level-0" value="245123">parts&nbsp;&nbsp;(72)</option>
444
+ <option class="level-0" value="10969081">peripherals hacks&nbsp;&nbsp;(648)</option>
445
+ <option class="level-0" value="16325149">phone hacks&nbsp;&nbsp;(17)</option>
446
+ <option class="level-0" value="10969088">playstation hacks&nbsp;&nbsp;(120)</option>
447
+ <option class="level-0" value="2060">podcasts&nbsp;&nbsp;(8)</option>
448
+ <option class="level-0" value="10969096">portable audio hacks&nbsp;&nbsp;(66)</option>
449
+ <option class="level-0" value="10969099">portable video hacks&nbsp;&nbsp;(57)</option>
450
+ <option class="level-0" value="588444">psp hacks&nbsp;&nbsp;(47)</option>
451
+ <option class="level-0" value="23971578">radio hacks&nbsp;&nbsp;(137)</option>
452
+ <option class="level-0" value="47">rants&nbsp;&nbsp;(28)</option>
453
+ <option class="level-0" value="69218551">Raspberry Pi&nbsp;&nbsp;(153)</option>
454
+ <option class="level-0" value="21870780">repair hacks&nbsp;&nbsp;(101)</option>
455
+ <option class="level-0" value="309">reviews&nbsp;&nbsp;(19)</option>
456
+ <option class="level-0" value="10969101">robots hacks&nbsp;&nbsp;(874)</option>
457
+ <option class="level-0" value="30302">roundup&nbsp;&nbsp;(35)</option>
458
+ <option class="level-0" value="10969111">security hacks&nbsp;&nbsp;(460)</option>
459
+ <option class="level-0" value="2301">Software Development&nbsp;&nbsp;(91)</option>
460
+ <option class="level-0" value="3796421">software hacks&nbsp;&nbsp;(47)</option>
461
+ <option class="level-0" value="10969116">solar hacks&nbsp;&nbsp;(46)</option>
462
+ <option class="level-0" value="10969121">tablet pcs hacks&nbsp;&nbsp;(40)</option>
463
+ <option class="level-0" value="3075183">teardown&nbsp;&nbsp;(31)</option>
464
+ <option class="level-0" value="10969130">tool hacks&nbsp;&nbsp;(657)</option>
465
+ <option class="level-0" value="25277004">toy hacks&nbsp;&nbsp;(360)</option>
466
+ <option class="level-0" value="10969134">transportation hacks&nbsp;&nbsp;(472)</option>
467
+ <option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(332)</option>
468
+ <option class="level-0" value="3184456">video hacks&nbsp;&nbsp;(211)</option>
469
+ <option class="level-0" value="34942364">Virtual Reality&nbsp;&nbsp;(9)</option>
470
+ <option class="level-0" value="50802420">weapons hacks&nbsp;&nbsp;(63)</option>
471
+ <option class="level-0" value="12552193">wearable hacks&nbsp;&nbsp;(183)</option>
472
+ <option class="level-0" value="39510952">Weekly roundup&nbsp;&nbsp;(18)</option>
473
+ <option class="level-0" value="4891215">wireless hacks&nbsp;&nbsp;(333)</option>
474
+ <option class="level-0" value="7079455">xbox hacks&nbsp;&nbsp;(130)</option>
475
+ </select>
476
+
477
+ <script type='text/javascript'>
478
+ /* <![CDATA[ */
479
+ var dropdown = document.getElementById("cat");
480
+ function onCatChange() {
481
+ if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
482
+ location.href = "http://hackaday.com/?cat="+dropdown.options[dropdown.selectedIndex].value;
483
+ }
484
+ }
485
+ dropdown.onchange = onCatChange;
486
+ /* ]]> */
487
+ </script>
488
+
489
+ </div></div>
490
+ <div id="featured-post-2" class="widget featuredpost"><div class="widget-wrap"><h4 class="widgettitle">In case you missed it</h4>
491
+ <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()-->
492
+
493
+ <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()-->
494
+
495
+ <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()-->
496
+
497
+ <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()-->
498
+
499
+ <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()-->
500
+
501
+ <p class="more-from-category"><a href="http://hackaday.com/category/featured/" title="Featured">More Posts from this Category</a></p></div></div>
502
+ <div id="recent-comments-2" class="widget widget_recent_comments"><div class="widget-wrap"><h4 class="widgettitle">Recent comments</h4>
503
+ <ul id="recentcomments">
504
+ <li class="recentcomments">
505
+ 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>
506
+ <li class="recentcomments">
507
+ <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>
508
+ <li class="recentcomments">
509
+ 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>
510
+ <li class="recentcomments">
511
+ 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>
512
+ <li class="recentcomments">
513
+ 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>
514
+ <li class="recentcomments">
515
+ 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>
516
+ <li class="recentcomments">
517
+ 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>
518
+ <li class="recentcomments">
519
+ <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>
520
+ <li class="recentcomments">
521
+ <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>
522
+ <li class="recentcomments">
523
+ 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>
524
+ </ul>
525
+ </div></div>
526
+ <div id="calendar-2" class="widget widget_calendar"><div class="widget-wrap"><h4 class="widgettitle">Find Hacks by Date</h4>
527
+ <div id="calendar_wrap"><table id="wp-calendar">
528
+ <caption>April 2013</caption>
529
+ <thead>
530
+ <tr>
531
+ <th scope="col" title="Sunday">S</th>
532
+ <th scope="col" title="Monday">M</th>
533
+ <th scope="col" title="Tuesday">T</th>
534
+ <th scope="col" title="Wednesday">W</th>
535
+ <th scope="col" title="Thursday">T</th>
536
+ <th scope="col" title="Friday">F</th>
537
+ <th scope="col" title="Saturday">S</th>
538
+ </tr>
539
+ </thead>
540
+
541
+ <tfoot>
542
+ <tr>
543
+ <td colspan="3" id="prev"><a href="http://hackaday.com/2013/03/" title="View posts for March 2013">&laquo; Mar</a></td>
544
+ <td class="pad">&nbsp;</td>
545
+ <td colspan="3" id="next" class="pad">&nbsp;</td>
546
+ </tr>
547
+ </tfoot>
548
+
549
+ <tbody>
550
+ <tr>
551
+ <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
552
+ Doctor Who-style&nbsp;WiFi
553
+ Kindle weather and recycling&nbsp;display
554
+ Windmill made from washing machine, 555&nbsp;chip
555
+ SNES headphones scream out for Bluetooth&nbsp;control
556
+ 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
557
+ Dual displays on a Playstation&nbsp;2
558
+ Ask Hackaday: Hacking lingo&nbsp;fails
559
+ Cooling a photomultiplier&nbsp;tube
560
+ Hackerspace tour: Arch Reactor in St. Louis&nbsp;Missouri
561
+ Adafruit launches educational show aimed at&nbsp;kids
562
+ CNC Tic Tac&nbsp;Toe
563
+ Building a vehicle parking&nbsp;camera
564
+ April Fools&#8217; project teaches coworkers not to touch your&nbsp;stuff
565
+ 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
566
+ Powering the Oculus Rift with&nbsp;USB
567
+ Upgrading a router with impeccable soldering&nbsp;skills
568
+ Homebuilt Laser Cutter&nbsp;Ideas
569
+ Building a&nbsp;Theremincello
570
+ Microscope ring light with a number of different&nbsp;features
571
+ Hall effect limit switches for a 3D&nbsp;printer
572
+ 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
573
+ MP3/USB/Aux hack hidden behind cassette&nbsp;facade
574
+ Pranking a hackerspace IRC for April Fool&#8217;s&nbsp;Day
575
+ Turning an easter egg hunt into a fox&nbsp;hunt
576
+ Wireless Temperature Control for a&nbsp;Microbrewery
577
+ Melting Metal with a DIY Foundry&nbsp;Furnace
578
+ Top 10 Hacking Failures in movies: part&nbsp;2
579
+ Steampunk theremin&nbsp;goggles
580
+ High speed circuit design for quantum physics light&nbsp;sensing
581
+ 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
582
+ Electric tricycle build log is like hacker&nbsp;crack
583
+ H-bot style 3D printer moves bed for&nbsp;Z-axis
584
+ Stapler hack fastens infinitely large sheets of&nbsp;paper
585
+ 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
586
+ Rolling your own minimal USB to serial Arduino&nbsp;programmer
587
+ Making PLA stick to a 3D printer build platform by using hairspray or an acetone ABS&nbsp;slurry">6</a></td>
588
+ </tr>
589
+ <tr>
590
+ <td><a href="http://hackaday.com/2013/04/07/" title="Acoustic bass guitar uses water jug and two&nbsp;strings
591
+ Solar powered robot mows your lawn while you chill&nbsp;indoors
592
+ 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
593
+ Combo lock uses relays and logic&nbsp;gates
594
+ 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
595
+ The RedBull creation contest&nbsp;begins!
596
+ Recurve bow make from wood and&nbsp;skis
597
+ 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
598
+ MIDI pedal project looks as good as it&nbsp;sounds
599
+ 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
600
+ Guitar EQ levels trigger the stage&nbsp;lights
601
+ Top 10 best hacking scenes in&nbsp;movies
602
+ Automating a mechanical&nbsp;typewriter
603
+ 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
604
+ Horribly complicated electric guitar&nbsp;keyboard
605
+ Generating electricity from&nbsp;alcohol">12</a></td><td><a href="http://hackaday.com/2013/04/13/" title="Network-controlled fireworks&nbsp;launcher
606
+ Working 3D printed stepper&nbsp;motor
607
+ SqueezeBerry: a Raspberri Pi powered Squeezebox&nbsp;appliance">13</a></td>
608
+ </tr>
609
+ <tr>
610
+ <td><a href="http://hackaday.com/2013/04/14/" title="Teaching a computer to play Mario&#8230; seemingly through&nbsp;voodoo
611
+ Building a replacement for a broken dehumidifier&nbsp;controller
612
+ 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
613
+ [FlorianH] shows off MinimaBL, the next generation of his quadcopter&nbsp;project
614
+ 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
615
+ Building a kegerator with visual&nbsp;style
616
+ 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
617
+ Apple MagSafe cord&nbsp;repair
618
+ 3D Printing sensor mounts for the Oculus&nbsp;Rift
619
+ 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
620
+ Semi-automatic pick and place&nbsp;machine
621
+ Living night light with glowing&nbsp;algae
622
+ 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
623
+ Replace your project power supplies with recycled Li-Ion cells and a switching&nbsp;regulator
624
+ 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
625
+ GUI window manager on an AVR&nbsp;chip
626
+ Mood lamp/notifier uses neat modular PCB&nbsp;design">20</a></td>
627
+ </tr>
628
+ <tr>
629
+ <td><a href="http://hackaday.com/2013/04/21/" title="3D printing some sweet&nbsp;music
630
+ Drop-in pcb makes Nintendo Four Score a USB&nbsp;joystick
631
+ 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
632
+ Connect a Retina display to a regular&nbsp;computer
633
+ 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
634
+ What are the best hacking&nbsp;documentaries?
635
+ OTM-02 is a 3D printed&nbsp;wristwatch
636
+ 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>
637
+ </tr>
638
+ <tr>
639
+ <td>28</td><td>29</td><td>30</td>
640
+ <td class="pad" colspan="4">&nbsp;</td>
641
+ </tr>
642
+ </tbody>
643
+ </table></div></div></div>
644
+ <div id=virurl>
645
+ <!-- BEGIN - VIRURL Widget - iFrame Embed Code -->
646
+ <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"
647
+ width="300" height="600" scrolling="no" >
648
+ </iframe>
649
+ <!-- END - VIRURL Widget - iFrame Embed Code -->
650
+ </div>
651
+ <br />
652
+ <br />
653
+ <div id=tl_ad_bottom>
654
+ <script type="text/javascript"><!--
655
+ google_ad_client = "ca-pub-1812638130783065";
656
+ /* Hackaday sidebar wide skyscraper */
657
+ google_ad_slot = "1587378096";
658
+ google_ad_width = 160;
659
+ google_ad_height = 600;
660
+ google_ad_region = "test";
661
+ //-->
662
+ </script>
663
+ <script type="text/javascript"
664
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
665
+ </script>
666
+ </div>
667
+
668
+
669
+ <br />
670
+
671
+
672
+
673
+
674
+
675
+
676
+ </div> </div><!-- end #content-sidebar-wrap -->
677
+ </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 -->
678
+ <script type="text/javascript">
679
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
680
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
681
+ </script>
682
+ <script type="text/javascript">
683
+ var pageTracker = _gat._getTracker("UA-2201445-6");
684
+ pageTracker._trackPageview();
685
+ </script>
686
+ <!-- Start Quantcast tag -->
687
+ <script type="text/javascript">
688
+ _qoptions={
689
+ qacct:"p-cc6zkdHuZwUDM"
690
+ };
691
+ </script>
692
+ <script type="text/javascript"
693
+ src="http://edge.quantserve.com/quant.js"></script>
694
+ <noscript>
695
+ <img src="http://pixel.quantserve.com/pixel/p-cc6zkdHuZwUDM.gif"
696
+ style="display: none;" border="0" height="1" width="1"
697
+ alt="Quantcast"/>
698
+ </noscript></div><!-- end #wrap -->
699
+
700
+ <script type="text/javascript">
701
+ var _qevents = _qevents || [], wpcomQuantcastData = {"qacct":"p-18-mFEk4J448M","labels":",language.en,type.wpcom,vip.hackadaycom"};
702
+ function wpcomQuantcastPixel( labels, options ) {
703
+ var i, defaults = wpcomQuantcastData, data = { event: 'ajax' };
704
+
705
+ labels = labels || '';
706
+ options = options || {};
707
+
708
+ if ( typeof labels != 'string' )
709
+ options = labels;
710
+
711
+ for ( i in defaults ) {
712
+ data[i] = defaults[i];
713
+ }
714
+
715
+ for ( i in options ) {
716
+ data[i] = options[i];
717
+ }
718
+
719
+ if ( data.labels ) {
720
+ data.labels += ',' + labels;
721
+ } else {
722
+ data.labels = labels;
723
+ }
724
+
725
+ _qevents.push( data );
726
+ };
727
+ (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); })();
728
+ _qevents.push( wpcomQuantcastData );
729
+ </script>
730
+ <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>
731
+
732
+
733
+ <!-- /// LOAD CHARTBEAT /// -->
734
+ <script type="text/javascript">
735
+ var _sf_async_config={};
736
+ _sf_async_config.uid = 2021;
737
+ _sf_async_config.useCanonical = true;
738
+
739
+ (function(){
740
+ function loadChartbeat() {
741
+ window._sf_endpt=(new Date()).getTime();
742
+ var e = document.createElement('script');
743
+ e.setAttribute('language', 'javascript');
744
+ e.setAttribute('type', 'text/javascript');
745
+ e.setAttribute('src',
746
+ (("https:" == document.location.protocol) ? "https://s3.amazonaws.com/" : "http://") +
747
+ "static.chartbeat.com/js/chartbeat.js");
748
+ document.body.appendChild(e);
749
+ }
750
+ var oldonload = window.onload;
751
+ window.onload = (typeof window.onload != 'function') ?
752
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
753
+ })();
754
+ </script>
755
+ <div style="display:none">
756
+ </div>
757
+ <script type='text/javascript' src='http://s2.wp.com/_static/??-eJylzMsOREAQRuEXMoqgEwvxLC4/qjPVOl3dZh4fO3vrk+/Qz3+m3UW4SFZpxsET/D+3mtEjxQ0CJR8gnIRWOCgrfXm8lcAl0uQRFtbtlR3Cqtegl66smto0xhStPQEw5Dy+'></script>
758
+ <script type="text/javascript">
759
+ // <![CDATA[
760
+ (function() {
761
+ try{
762
+ if ( window.external &&'msIsSiteMode' in window.external) {
763
+ if (window.external.msIsSiteMode()) {
764
+ var jl = document.createElement('script');
765
+ jl.type='text/javascript';
766
+ jl.async=true;
767
+ jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
768
+ var s = document.getElementsByTagName('script')[0];
769
+ s.parentNode.insertBefore(jl, s);
770
+ }
771
+ }
772
+ }catch(e){}
773
+ })();
774
+ // ]]>
775
+ </script><script src="http://s.stats.wordpress.com/w.js?21" type="text/javascript"></script>
776
+ <script type="text/javascript">
777
+ st_go({'blog':'4779443','v':'wpcom','tz':'-7','user_id':'0','subd':'hackadaycom'});
778
+ 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();}
779
+ ex_go({'crypt':'UE40eW5QN0p8M2Y/RE1BNmNJfGhxNCVxUDExYmtXRThKbHcwXTdETWI1alhvb1oseHImN101ZFpEakVpYjlQYVFLYzBaVHRtPz0wXS9bVlFpZ3c1Qn5KSThLNS9lSHNGOE1IJk9+N3xFNWxyT2x+MUpnR1dJcFZJZTREfGp3elNyN1EydF9SZzJkNXdETFlsXXNFPURDR05UJlBhV19CJV9YcE1ydF9QTkpxVn5RMi9LTnpjLEV+MnxWQ1dxVi0ldFclNmZCP3k9Sj1NJSw9XV8/TDdyemE0VWF6QT9yL1hFZm0xTFMmTWpvLldEQlhFN3M2eTlyNWlFcWNqcVo='});
780
+ addLoadEvent(function(){linktracker_init('4779443',0);});
781
+ </script>
782
+ <noscript><img src="http://stats.wordpress.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
783
+ <script type="text/javascript">
784
+ // Trigger Quantcast pixel for each Infinite Scroll post load
785
+ if ( 'function' === typeof( jQuery ) ) {
786
+ jQuery( document.body ).on( 'post-load', function() {
787
+ if ( 'function' === typeof( wpcomQuantcastPixel ) )
788
+ wpcomQuantcastPixel();
789
+ } );
790
+ }
791
+ </script>
792
+ </body>
793
+ </html>