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,716 @@
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 92 seconds ago
5
+ generated in 0.317 seconds
6
+ served from batcache in 0.002 seconds
7
+ expires in 208 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=1366801060&amp;back=hackaday.com%2Fpage%2F33%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-33 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-96129 post type-post status-publish format-standard hentry category-digital-audio-hacks category-digital-cameras-hacks tag-camera tag-fps tag-framerate tag-illusion tag-subwoofer tag-water">
197
+
198
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/14/camera-trick-lets-you-see-sound-waves-in-falling-water/" title="Camera trick lets you see sound waves in falling&nbsp;water" rel="bookmark">Camera trick lets you see sound waves in falling&nbsp;water</a></h2>
199
+
200
+ <div class="post-info"><span class="date published time" title="2013-03-14T10:01:17+00:00">March 14, 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/14/camera-trick-lets-you-see-sound-waves-in-falling-water/#comments">27 Comments</a></span> </div> <div class="entry-content">
201
+ <p><img class="aligncenter size-large wp-image-96130" alt="24hz-water-camera-trick" src="http://hackadaycom.files.wordpress.com/2013/03/24hz-water-camera-trick.png?w=580&#038;h=413" width="580" height="413" /></p>
202
+ <p>From this still image you&#8217;d think the hose dispensing the water is being moved back and forth. But watch the video after the break and you&#8217;ll see the hose is quite steady, as is the standing wave of water. It&#8217;s bizarre to be sure. Knowing how it works makes cognitive sense, but doesn&#8217;t really diminish the novelty of the demonstration.</p>
203
+ <p>This is the second time [Brasspup] has posted a video of this phenomenon. <a href="http://www.youtube.com/watch?v=uENITui5_jU">The newest version</a> does a great job of showing several different patterns. But even <a href="http://www.youtube.com/watch?v=mODqQvlrgIQ">the first segment</a> from a year ago, which has over 4 million hits, shows the water moving against gravity. We also saw <a href="http://hackaday.com/2012/04/11/hackaday-links-april-11-2012/">a similar rig in a links post</a> a year ago.</p>
204
+ <p>We&#8217;d call it an optical illusion but it&#8217;s really more of a technological illusion. The water is falling past a sub-woofer speaker which is tuned to 24 Hz. At the same time, the camera filming the demonstration is capturing 24 frames per second. As was mentioned then, it&#8217;s much like <a href="http://hackaday.com/2011/03/11/water-droplet-sculpture-using-leds-and-arduino/">flashing a light to freeze the water in mid-air</a>. But the flashing of the frames is what causes this effect.</p>
205
+ <p> <a href="http://hackaday.com/2013/03/14/camera-trick-lets-you-see-sound-waves-in-falling-water/#more-96129" class="more-link">[Read more...]</a></p>
206
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
207
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/digital-audio-hacks/" title="View all posts in digital audio hacks" rel="category tag">digital audio hacks</a>, <a href="http://hackaday.com/category/digital-cameras-hacks/" title="View all posts in digital cameras hacks" rel="category tag">digital cameras hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/camera/" rel="tag">camera</a>, <a href="http://hackaday.com/tag/fps/" rel="tag">fps</a>, <a href="http://hackaday.com/tag/framerate/" rel="tag">framerate</a>, <a href="http://hackaday.com/tag/illusion/" rel="tag">illusion</a>, <a href="http://hackaday.com/tag/subwoofer/" rel="tag">subwoofer</a>, <a href="http://hackaday.com/tag/water/" rel="tag">water</a></span> </div>
208
+ </div><!-- end .postclass -->
209
+ <div class="post-96097 post type-post status-publish format-standard hentry category-digital-audio-hacks category-raspberry-pi-2 tag-airtunes tag-mopidy tag-mpd tag-spotify">
210
+
211
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/14/raspberry-pi-as-a-spotify-server-with-mpd-control/" title="Raspberry Pi as a Spotify server with MPD&nbsp;control" rel="bookmark">Raspberry Pi as a Spotify server with MPD&nbsp;control</a></h2>
212
+
213
+ <div class="post-info"><span class="date published time" title="2013-03-14T08:01:18+00:00">March 14, 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/14/raspberry-pi-as-a-spotify-server-with-mpd-control/#comments">10 Comments</a></span> </div> <div class="entry-content">
214
+ <p><img class="aligncenter size-large wp-image-96098" alt="rpi-spotify-mpd-client" src="http://hackadaycom.files.wordpress.com/2013/03/rpi-spotify-mpd-client.png?w=568&#038;h=450" width="568" height="450" /></p>
215
+ <p>The Raspberry Pi has been very popular as a streaming music player. Sure, the only audio out option on the board is an analog stereo jack, but you can use a USB audio device to improve upon that if you wish. [Wouter van Wijk] wanted to use his RPi as a Spotify server. It&#8217;s a bit tricky to get everything configured for this, so he decided to give back by publishing <a href="http://www.woutervanwijk.nl/pimusicbox/">a ready to use Spotify server image</a> for the Raspberry Pi.</p>
216
+ <p>The project is call the Pi MusicBox. Like some of <a href="http://hackaday.com/2013/01/04/dedicated-pandora-player-plus-airplay-built-around-the-raspberry-pi/">the RPi Pandora setups</a> we&#8217;ve seen he included the ability to use the hardware as an AirPlay device too. To connect to the Spotify service he uses <a href="http://www.mopidy.com/">the Mopidy package</a>. It can also play tracks from local storage (including the home network). It&#8217;s even capable of mixing the two sources in the same queue. Possibly the best part is that it can be controlled with any Music Player Daemon (MPD) client like the smart phone screenshots seen above.</p>
217
+ <p>If you&#8217;re interested, check out <a href="https://github.com/woutervanwijk/Pi-MusicBox">his GitHub repo for the project</a>.</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/digital-audio-hacks/" title="View all posts in digital audio hacks" rel="category tag">digital audio hacks</a>, <a href="http://hackaday.com/category/raspberry-pi-2/" title="View all posts in Raspberry Pi" rel="category tag">Raspberry Pi</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/airtunes/" rel="tag">airtunes</a>, <a href="http://hackaday.com/tag/mopidy/" rel="tag">mopidy</a>, <a href="http://hackaday.com/tag/mpd/" rel="tag">mpd</a>, <a href="http://hackaday.com/tag/spotify/" rel="tag">spotify</a></span> </div>
220
+ </div><!-- end .postclass -->
221
+ <div class="post-96105 post type-post status-publish format-standard hentry category-nintendo-ds-hacks category-nintendo-gameboy-hacks tag-ds-lite tag-game-boy">
222
+
223
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/14/extreme-game-boy-hack-plays-titles-from-a-wide-range-of-systems/" title="Extreme Game Boy hack plays titles from a wide range of&nbsp;systems" rel="bookmark">Extreme Game Boy hack plays titles from a wide range of&nbsp;systems</a></h2>
224
+
225
+ <div class="post-info"><span class="date published time" title="2013-03-14T06:01:59+00:00">March 14, 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/14/extreme-game-boy-hack-plays-titles-from-a-wide-range-of-systems/#comments">25 Comments</a></span> </div> <div class="entry-content">
226
+ <p><img class="aligncenter size-large wp-image-96106" alt="gameboy-ds-in-original-gb-case" src="http://hackadaycom.files.wordpress.com/2013/03/gameboy-ds-in-original-gb-case.png?w=580&#038;h=387" width="580" height="387" /></p>
227
+ <p>[Akira] can play any Game Boy, GBC, GBA, NES, SNES, or SMS game while on the go thanks to all the work he put into <a href="http://www.made-by-bacteria.com/forum/viewtopic.php?f=20&amp;t=2939">this portable gaming hack</a>. The outside seems familiar; it&#8217;s an original Game Boy case. But you should immediately notice that it has a few extra buttons. That&#8217;s the first clue that what&#8217;s inside isn&#8217;t stock&#8230; which is a huge understatement.</p>
228
+ <p>The idea for the project started off rather simple, but quickly got out of hand (<a href="http://www.made-by-bacteria.com/viewtopic.php?f=18&amp;t=1322">check out the build log</a> for full details on that). He thought it would be nice to have a backlight for the original screen. After mixed results he scrapped the original mainboard and started anew with some Nintendo DS Lite hardware. It had a broken LCD connector so he tried a couple of different fixes to get it working again. After some success he started adding more equipment, like the extra pair of buttons, a better speaker on the battery door, and the microSD add-on you can see above.</p>
229
+ <p>You can catch a demo of the finished goods after the jump.</p>
230
+ <p> <a href="http://hackaday.com/2013/03/14/extreme-game-boy-hack-plays-titles-from-a-wide-range-of-systems/#more-96105" class="more-link">[Read more...]</a></p>
231
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
232
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/nintendo-ds-hacks/" title="View all posts in nintendo ds hacks" rel="category tag">nintendo ds hacks</a>, <a href="http://hackaday.com/category/nintendo-gameboy-hacks/" title="View all posts in nintendo gameboy hacks" rel="category tag">nintendo gameboy hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/ds-lite/" rel="tag">ds lite</a>, <a href="http://hackaday.com/tag/game-boy/" rel="tag">game boy</a></span> </div>
233
+ </div><!-- end .postclass -->
234
+ <div align="center">
235
+
236
+
237
+
238
+ <script type="text/javascript"><!--
239
+
240
+ google_ad_client = "ca-pub-1812638130783065";
241
+
242
+ /* Hackaday, 300x250, created 4/26/08, MedRect main column */
243
+
244
+ google_ad_slot = "3449215672";
245
+
246
+ google_ad_width = 300;
247
+
248
+ google_ad_height = 250;
249
+
250
+ //-->
251
+
252
+ </script>
253
+
254
+ <script type="text/javascript"
255
+
256
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
257
+
258
+ </script>
259
+
260
+
261
+
262
+ </div> <div class="post-96101 post type-post status-publish format-standard hentry category-attiny-hacks category-digital-cameras-hacks tag-attiny25 tag-cannon tag-intervalometer tag-remote-control">
263
+
264
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/14/shuttavr-can-snap-a-pic-or-serve-as-an-intervalometer/" title="ShuttAVR can snap a pic or serve as an&nbsp;intervalometer" rel="bookmark">ShuttAVR can snap a pic or serve as an&nbsp;intervalometer</a></h2>
265
+
266
+ <div class="post-info"><span class="date published time" title="2013-03-14T04:01:27+00:00">March 14, 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/14/shuttavr-can-snap-a-pic-or-serve-as-an-intervalometer/#comments">8 Comments</a></span> </div> <div class="entry-content">
267
+ <p><img class="aligncenter size-large wp-image-96102" alt="shuttAVR-intervalometer-hack" src="http://hackadaycom.files.wordpress.com/2013/03/shuttavr-intervalometer-hack.png?w=580&#038;h=310" width="580" height="310" /></p>
268
+ <p>This project started as a simple microcontroller replacement on this IR camera remote control PCB. But the soldering job went rather badly for [Balthamos] so he changed things up and designed his own <a href="https://github.com/balthamos/shuttavr">simple AVR remote shutter release and intervalometer</a>.</p>
269
+ <p>The DIP chip seen with most of its legs bent backwards is the ATtiny25 which makes the system work. It&#8217;s patched into the traces for the battery connections, button (on the other side of the board) and the IR LED he&#8217;s pinching with his left hand. Point it at a Cannon camera and push the button to snap a photo. But as you can see in the clip after the break it also serves as an intervalometer; letting him take several pictures with a user-defined pause between each. That mode is selected by first pressing and holding the button. Once released the chip waits for a second button press to register the delay. The new circuit still fits in the original case after just a bit of alteration to it.</p>
270
+ <p> <a href="http://hackaday.com/2013/03/14/shuttavr-can-snap-a-pic-or-serve-as-an-intervalometer/#more-96101" class="more-link">[Read more...]</a></p>
271
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
272
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/attiny-hacks/" title="View all posts in ATtiny hacks" rel="category tag">ATtiny hacks</a>, <a href="http://hackaday.com/category/digital-cameras-hacks/" title="View all posts in digital cameras hacks" rel="category tag">digital cameras hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/attiny25/" rel="tag">ATtiny25</a>, <a href="http://hackaday.com/tag/cannon/" rel="tag">cannon</a>, <a href="http://hackaday.com/tag/intervalometer/" rel="tag">intervalometer</a>, <a href="http://hackaday.com/tag/remote-control/" rel="tag">remote control</a></span> </div>
273
+ </div><!-- end .postclass -->
274
+ <div class="post-96109 post type-post status-publish format-standard hentry category-raspberry-pi-2 tag-character-lcd tag-headless tag-rpi">
275
+
276
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/13/minimalist-user-interface-for-headless-raspberry-pi-applications/" title="Minimalist user interface for headless Raspberry Pi&nbsp;applications" rel="bookmark">Minimalist user interface for headless Raspberry Pi&nbsp;applications</a></h2>
277
+
278
+ <div class="post-info"><span class="date published time" title="2013-03-13T20:01:05+00:00">March 13, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/13/minimalist-user-interface-for-headless-raspberry-pi-applications/#comments">8 Comments</a></span> </div> <div class="entry-content">
279
+ <p><img class="aligncenter size-large wp-image-96111" alt="minimial-ui-for-headless-rpi" src="http://hackadaycom.files.wordpress.com/2013/03/minimial-ui-for-headless-rpi.png?w=580&#038;h=322" width="580" height="322" /></p>
280
+ <p>[Jason Birch] just finished building <a href="http://www.newsdownload.co.uk/pages/RPiHeadless.html">a beautifully simple user interface for the Raspberry Pi</a>. The goal was to keep it small and intuitive while still providing a range of functionality. His add-on hardware gives feedback using several LEDs and a four-line character LCD screen. It provides control using just four momentary press switches.</p>
281
+ <p>The base for the add-on hardware is a chunk of protoboard the same size as the Pi itself. This is just slightly wider than the LCD screen, leaving room along the top for the row of buttons with different colors of LEDs in between them. Look closely in that nest of point-to-point wiring and you&#8217;ll find the dual pin-socket which mates with the RPi GPIO header. One important note from [Jason] mentions that the LCD screen R/W pin must be tied to ground. This keeps it from going into read mode, which would push 5V over the I/O pins, potentially damaging the 3.3V tolerant header on the RPi.</p>
282
+ <p>Throw in a battery and that pretty much covers the hardware. To see how he&#8217;s using it you&#8217;ll want to view the video clip after the break.</p>
283
+ <p> <a href="http://hackaday.com/2013/03/13/minimalist-user-interface-for-headless-raspberry-pi-applications/#more-96109" class="more-link">[Read more...]</a></p>
284
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
285
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/raspberry-pi-2/" title="View all posts in Raspberry Pi" rel="category tag">Raspberry Pi</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/character-lcd/" rel="tag">character lcd</a>, <a href="http://hackaday.com/tag/headless/" rel="tag">headless</a>, <a href="http://hackaday.com/tag/rpi/" rel="tag">RPi</a></span> </div>
286
+ </div><!-- end .postclass -->
287
+ <div class="post-96114 post type-post status-publish format-standard hentry category-green-hacks category-home-hacks tag-cardboard tag-lamp tag-lampshade">
288
+
289
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/13/cardboard-lampshade-makes-ordinary-recycling-a-centerpiece-of-your-room/" title="Cardboard lampshade makes ordinary recycling a centerpiece of your&nbsp;room" rel="bookmark">Cardboard lampshade makes ordinary recycling a centerpiece of your&nbsp;room</a></h2>
290
+
291
+ <div class="post-info"><span class="date published time" title="2013-03-13T18:01:37+00:00">March 13, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/13/cardboard-lampshade-makes-ordinary-recycling-a-centerpiece-of-your-room/#comments">5 Comments</a></span> </div> <div class="entry-content">
292
+ <p><img class="aligncenter size-large wp-image-96115" alt="cardboard-lamp-shade" src="http://hackadaycom.files.wordpress.com/2013/03/cardboard-lamp-shade.jpg?w=496&#038;h=450" width="496" height="450" /></p>
293
+ <p>This cube lamp was <a href="http://www.instructables.com/id/Cube-Lamp">assembled using common cardboard</a>. Not only does it look interesting, but it&#8217;s basically free with every Ikea purchase since all you need is a source of cardboard, cutting implements, and glue.</p>
294
+ <p>[Lindarose92] fabricated the shade out of narrow strips of corrugated cardboard. This particular lamp also has a cardboard base but we&#8217;re sure you could use it for just about any light source with doesn&#8217;t generate enough heat to cause problems. The build starts out with the tedious process of cutting 5mm by 8cm strips, and you&#8217;re going to need a lot of them. Each strip is cut perpendicular to the corrugation, which allows the light to shine through the wave pattern. The strips are then glued into 8cm x 8cm squares, which are in turn glued together into the four by four panels that make up each side of the cube.</p>
295
+ <p>Boom, you&#8217;re done. And if you get tired of it, just toss the thing in your recycling bin.</p>
296
+ <p>[via <a href="http://hackedgadgets.com/2013/03/09/cardboard-cube-lamp/">Hacked Gadgets</a>]</p>
297
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
298
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/green-hacks/" title="View all posts in green hacks" rel="category tag">green 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/cardboard/" rel="tag">cardboard</a>, <a href="http://hackaday.com/tag/lamp/" rel="tag">lamp</a>, <a href="http://hackaday.com/tag/lampshade/" rel="tag">lampshade</a></span> </div>
299
+ </div><!-- end .postclass -->
300
+ <div class="post-96118 post type-post status-publish format-standard hentry category-computer-hacks category-weapons-hacks tag-cams tag-differen tag-gears tag-mechanical-computer tag-retrotechtacular">
301
+
302
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/13/retrotechtacular-mechanical-targeting-computers/" title="Retrotechtacular: Mechanical targeting&nbsp;computers" rel="bookmark">Retrotechtacular: Mechanical targeting&nbsp;computers</a></h2>
303
+
304
+ <div class="post-info"><span class="date published time" title="2013-03-13T16:01:06+00:00">March 13, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/13/retrotechtacular-mechanical-targeting-computers/#comments">26 Comments</a></span> </div> <div class="entry-content">
305
+ <p><img class="aligncenter size-large wp-image-96119" alt="retrotechtacular-mechanical-computer" src="http://hackadaycom.files.wordpress.com/2013/03/retrotechtacular-mechanical-computer.png?w=580&#038;h=420" width="580" height="420" /></p>
306
+ <p>The device that these seamen are standing around is a US Navy targeting computer. It doesn&#8217;t use electricity, but relies on <a href="https://www.youtube.com/watch?v=mpkTHyfr0pM">mechanical computing to adjust trajectories of the ship&#8217;s guns</a>. Setting up to twenty-five different attributes by turning cranks and other input mechanisms lets the computer automatically calculate the gun settings necessary to hit a target. These parameters include speed and heading of both the ship and it&#8217;s target, wind speed and bearing, and the location of the target in relation to this ship. It boggles the mind to think of the complexity that went into this computer.</p>
307
+ <p>The first of this seven part series can be seen after the break. The collection covers shafts,  gears, cams, and differentials. Sounds like it would be quite boring to sit through, huh? But as we&#8217;ve come to expect from this style and vintage of training film it packs a remarkable number of simple demonstrations into the footage.</p>
308
+ <p> <a href="http://hackaday.com/2013/03/13/retrotechtacular-mechanical-targeting-computers/#more-96118" class="more-link">[Read more...]</a></p>
309
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
310
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/computer-hacks/" title="View all posts in computer hacks" rel="category tag">computer hacks</a>, <a href="http://hackaday.com/category/weapons-hacks/" title="View all posts in weapons hacks" rel="category tag">weapons hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/cams/" rel="tag">cams</a>, <a href="http://hackaday.com/tag/differen/" rel="tag">differen</a>, <a href="http://hackaday.com/tag/gears/" rel="tag">gears</a>, <a href="http://hackaday.com/tag/mechanical-computer/" rel="tag">mechanical computer</a>, <a href="http://hackaday.com/tag/retrotechtacular/" rel="tag">retrotechtacular</a></span> </div>
311
+ </div><!-- end .postclass -->
312
+ <div class="navigation"><div class="alignleft"><a href="http://hackaday.com/page/34/" >&laquo; Older Posts</a></div><div class="alignright"><a href="http://hackaday.com/page/32/" >Newer Posts &raquo;</a></div></div><!-- end .navigation --> </div><!-- end #content -->
313
+ <div id="sidebar" class="sidebar widget-area">
314
+ <div id=tl_ad>
315
+ <script type="text/javascript"><!--
316
+ google_ad_client = "ca-pub-1812638130783065";
317
+ /* Hackaday, 300x250, created 4/26/08, MedRect sidebar */
318
+ google_ad_slot = "7800245928";
319
+ google_ad_width = 300;
320
+ google_ad_height = 250;
321
+ //-->
322
+ </script>
323
+ <script type="text/javascript"
324
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
325
+ </script>
326
+
327
+ </div>
328
+
329
+
330
+
331
+
332
+
333
+
334
+ <div class="widget">
335
+ <h4>Never Miss a Hack</h4>
336
+ <div class="textwidget">
337
+
338
+ <!-- Place this tag where you want the badge to render. -->
339
+ <div class="g-plus" data-width= "280" data-href="https://plus.google.com/114843073658390316652" data-rel="publisher" data-theme="dark"></div>
340
+ <!-- Place this tag after the last badge tag. -->
341
+ <script type="text/javascript">
342
+ (function() {
343
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
344
+ po.src = 'https://apis.google.com/js/plusone.js';
345
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
346
+ })();
347
+ </script>
348
+
349
+ <div class="fb-like" data-href="https://www.facebook.com/pages/Hack-a-Day/136115233068429?ref=hl" data-send="true" data-width="280" data-show-faces="true" data-colorscheme="dark"></div>
350
+
351
+ <a href="https://twitter.com/hackaday" class="twitter-follow-button" data-show-count="true" data-lang="en" data-size="large">Follow @twitter</a>
352
+ <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
353
+
354
+ <a href="http://feeds2.feedburner.com/hackaday/LgoM" target="_blank"><img src="http://hackadaycom.files.wordpress.com/2012/11/orange.png" border="0"/></a>
355
+ <div class="clear"> </div>
356
+ <!-- Begin MailChimp Signup Form -->
357
+ <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
358
+
359
+ <div id="mc_embed_signup">
360
+ <form action="http://mahalo.us5.list-manage.com/subscribe/post?u=126b2ab712043075d9bd7210e&amp;id=cb1aa8bd16" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
361
+ <label for="mce-EMAIL">Subscribe to our mailing list for sneak previews and behind the scenes info</label>
362
+ <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
363
+ <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
364
+ </form>
365
+ </div>
366
+
367
+ <!--End mc_embed_signup-->
368
+ </div>
369
+ </div>
370
+
371
+ <div id="categories-2" class="widget widget_categories"><div class="widget-wrap"><h4 class="widgettitle">Categories</h4>
372
+ <select name='cat' id='cat' class='postform' >
373
+ <option value='-1'>Select Category</option>
374
+ <option class="level-0" value="114554125">3d Printer hacks&nbsp;&nbsp;(116)</option>
375
+ <option class="level-0" value="18020710">android hacks&nbsp;&nbsp;(240)</option>
376
+ <option class="level-0" value="18020705">arduino hacks&nbsp;&nbsp;(1029)</option>
377
+ <option class="level-0" value="27981650">ARM&nbsp;&nbsp;(51)</option>
378
+ <option class="level-0" value="33199679">Ask Hackaday&nbsp;&nbsp;(29)</option>
379
+ <option class="level-0" value="64298109">ATtiny hacks&nbsp;&nbsp;(45)</option>
380
+ <option class="level-0" value="25122024">beer hacks&nbsp;&nbsp;(63)</option>
381
+ <option class="level-0" value="12115263">blackberry hacks&nbsp;&nbsp;(8)</option>
382
+ <option class="level-0" value="10969031">cellphones hacks&nbsp;&nbsp;(337)</option>
383
+ <option class="level-0" value="35745764">chemistry hacks&nbsp;&nbsp;(102)</option>
384
+ <option class="level-0" value="24483654">classic hacks&nbsp;&nbsp;(852)</option>
385
+ <option class="level-0" value="31677810">clock hacks&nbsp;&nbsp;(189)</option>
386
+ <option class="level-0" value="18755632">cnc hacks&nbsp;&nbsp;(341)</option>
387
+ <option class="level-0" value="568165">computer hacks&nbsp;&nbsp;(390)</option>
388
+ <option class="level-0" value="78428">cons&nbsp;&nbsp;(192)</option>
389
+ <option class="level-0" value="5738">contests&nbsp;&nbsp;(136)</option>
390
+ <option class="level-0" value="3923181">cooking hacks&nbsp;&nbsp;(72)</option>
391
+ <option class="level-0" value="10969032">digital audio hacks&nbsp;&nbsp;(422)</option>
392
+ <option class="level-0" value="10969033">digital cameras hacks&nbsp;&nbsp;(415)</option>
393
+ <option class="level-0" value="10969034">downloads hacks&nbsp;&nbsp;(101)</option>
394
+ <option class="level-0" value="107827385">drone hacks&nbsp;&nbsp;(10)</option>
395
+ <option class="level-0" value="63176382">Engine Hacks&nbsp;&nbsp;(31)</option>
396
+ <option class="level-0" value="35890">Featured&nbsp;&nbsp;(72)</option>
397
+ <option class="level-0" value="551890">firefox hacks&nbsp;&nbsp;(23)</option>
398
+ <option class="level-0" value="53446541">FPGA&nbsp;&nbsp;(1)</option>
399
+ <option class="level-0" value="18020562">g1 hacks&nbsp;&nbsp;(26)</option>
400
+ <option class="level-0" value="320557">google hacks&nbsp;&nbsp;(44)</option>
401
+ <option class="level-0" value="10969036">gps hacks&nbsp;&nbsp;(108)</option>
402
+ <option class="level-0" value="24535490">green hacks&nbsp;&nbsp;(152)</option>
403
+ <option class="level-0" value="27311668">Hackaday links&nbsp;&nbsp;(146)</option>
404
+ <option class="level-0" value="21755374">Hackerspaces&nbsp;&nbsp;(93)</option>
405
+ <option class="level-0" value="6310599">HackIt&nbsp;&nbsp;(101)</option>
406
+ <option class="level-0" value="10969037">handhelds hacks&nbsp;&nbsp;(189)</option>
407
+ <option class="level-0" value="79">hardware&nbsp;&nbsp;(249)</option>
408
+ <option class="level-0" value="144422905">High Voltage Hacks&nbsp;&nbsp;(5)</option>
409
+ <option class="level-0" value="66307084">Holiday Hacks&nbsp;&nbsp;(93)</option>
410
+ <option class="level-0" value="10969038">home entertainment hacks&nbsp;&nbsp;(516)</option>
411
+ <option class="level-0" value="5660882">home hacks&nbsp;&nbsp;(705)</option>
412
+ <option class="level-0" value="2708">how-to&nbsp;&nbsp;(135)</option>
413
+ <option class="level-0" value="908478">internet hacks&nbsp;&nbsp;(2)</option>
414
+ <option class="level-0" value="831">Interviews&nbsp;&nbsp;(13)</option>
415
+ <option class="level-0" value="1416772">iphone hacks&nbsp;&nbsp;(176)</option>
416
+ <option class="level-0" value="1275163">ipod hacks&nbsp;&nbsp;(144)</option>
417
+ <option class="level-0" value="344761">kickstarter&nbsp;&nbsp;(29)</option>
418
+ <option class="level-0" value="4157506">Kindle hacks&nbsp;&nbsp;(15)</option>
419
+ <option class="level-0" value="46717088">Kinect hacks&nbsp;&nbsp;(81)</option>
420
+ <option class="level-0" value="10969048">laptops hacks&nbsp;&nbsp;(111)</option>
421
+ <option class="level-0" value="10969055">laser hacks&nbsp;&nbsp;(167)</option>
422
+ <option class="level-0" value="18020716">led hacks&nbsp;&nbsp;(695)</option>
423
+ <option class="level-0" value="10626">lifehacks&nbsp;&nbsp;(54)</option>
424
+ <option class="level-0" value="729674">linux hacks&nbsp;&nbsp;(129)</option>
425
+ <option class="level-0" value="20732807">lockpicking hacks&nbsp;&nbsp;(11)</option>
426
+ <option class="level-0" value="10969060">macs hacks&nbsp;&nbsp;(135)</option>
427
+ <option class="level-0" value="144395979">Marijuana Hacks&nbsp;&nbsp;(2)</option>
428
+ <option class="level-0" value="11284667">Medical hacks&nbsp;&nbsp;(102)</option>
429
+ <option class="level-0" value="139916">Microcontrollers&nbsp;&nbsp;(512)</option>
430
+ <option class="level-0" value="5611793">misc hacks&nbsp;&nbsp;(1747)</option>
431
+ <option class="level-0" value="18020730">multitouch hacks&nbsp;&nbsp;(89)</option>
432
+ <option class="level-0" value="22652725">musical hacks&nbsp;&nbsp;(290)</option>
433
+ <option class="level-0" value="18020722">netbook hacks&nbsp;&nbsp;(50)</option>
434
+ <option class="level-0" value="6166512">Network Hacks&nbsp;&nbsp;(4)</option>
435
+ <option class="level-0" value="103">news&nbsp;&nbsp;(1091)</option>
436
+ <option class="level-0" value="1861880">nintendo ds hacks&nbsp;&nbsp;(34)</option>
437
+ <option class="level-0" value="114555425">nintendo gameboy hacks&nbsp;&nbsp;(90)</option>
438
+ <option class="level-0" value="18020685">nintendo hacks&nbsp;&nbsp;(261)</option>
439
+ <option class="level-0" value="4992726">nintendo wii hacks&nbsp;&nbsp;(78)</option>
440
+ <option class="level-0" value="118011206">Nook Hacks&nbsp;&nbsp;(1)</option>
441
+ <option class="level-0" value="114556430">palm pre hacks&nbsp;&nbsp;(6)</option>
442
+ <option class="level-0" value="245123">parts&nbsp;&nbsp;(72)</option>
443
+ <option class="level-0" value="10969081">peripherals hacks&nbsp;&nbsp;(648)</option>
444
+ <option class="level-0" value="16325149">phone hacks&nbsp;&nbsp;(17)</option>
445
+ <option class="level-0" value="10969088">playstation hacks&nbsp;&nbsp;(120)</option>
446
+ <option class="level-0" value="2060">podcasts&nbsp;&nbsp;(8)</option>
447
+ <option class="level-0" value="10969096">portable audio hacks&nbsp;&nbsp;(66)</option>
448
+ <option class="level-0" value="10969099">portable video hacks&nbsp;&nbsp;(57)</option>
449
+ <option class="level-0" value="588444">psp hacks&nbsp;&nbsp;(47)</option>
450
+ <option class="level-0" value="23971578">radio hacks&nbsp;&nbsp;(137)</option>
451
+ <option class="level-0" value="47">rants&nbsp;&nbsp;(28)</option>
452
+ <option class="level-0" value="69218551">Raspberry Pi&nbsp;&nbsp;(153)</option>
453
+ <option class="level-0" value="21870780">repair hacks&nbsp;&nbsp;(101)</option>
454
+ <option class="level-0" value="309">reviews&nbsp;&nbsp;(19)</option>
455
+ <option class="level-0" value="10969101">robots hacks&nbsp;&nbsp;(874)</option>
456
+ <option class="level-0" value="30302">roundup&nbsp;&nbsp;(35)</option>
457
+ <option class="level-0" value="10969111">security hacks&nbsp;&nbsp;(460)</option>
458
+ <option class="level-0" value="2301">Software Development&nbsp;&nbsp;(91)</option>
459
+ <option class="level-0" value="3796421">software hacks&nbsp;&nbsp;(47)</option>
460
+ <option class="level-0" value="10969116">solar hacks&nbsp;&nbsp;(46)</option>
461
+ <option class="level-0" value="10969121">tablet pcs hacks&nbsp;&nbsp;(40)</option>
462
+ <option class="level-0" value="3075183">teardown&nbsp;&nbsp;(31)</option>
463
+ <option class="level-0" value="10969130">tool hacks&nbsp;&nbsp;(657)</option>
464
+ <option class="level-0" value="25277004">toy hacks&nbsp;&nbsp;(360)</option>
465
+ <option class="level-0" value="10969134">transportation hacks&nbsp;&nbsp;(472)</option>
466
+ <option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(332)</option>
467
+ <option class="level-0" value="3184456">video hacks&nbsp;&nbsp;(211)</option>
468
+ <option class="level-0" value="34942364">Virtual Reality&nbsp;&nbsp;(9)</option>
469
+ <option class="level-0" value="50802420">weapons hacks&nbsp;&nbsp;(63)</option>
470
+ <option class="level-0" value="12552193">wearable hacks&nbsp;&nbsp;(183)</option>
471
+ <option class="level-0" value="39510952">Weekly roundup&nbsp;&nbsp;(18)</option>
472
+ <option class="level-0" value="4891215">wireless hacks&nbsp;&nbsp;(333)</option>
473
+ <option class="level-0" value="7079455">xbox hacks&nbsp;&nbsp;(130)</option>
474
+ </select>
475
+
476
+ <script type='text/javascript'>
477
+ /* <![CDATA[ */
478
+ var dropdown = document.getElementById("cat");
479
+ function onCatChange() {
480
+ if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
481
+ location.href = "http://hackaday.com/?cat="+dropdown.options[dropdown.selectedIndex].value;
482
+ }
483
+ }
484
+ dropdown.onchange = onCatChange;
485
+ /* ]]> */
486
+ </script>
487
+
488
+ </div></div>
489
+ <div id="featured-post-2" class="widget featuredpost"><div class="widget-wrap"><h4 class="widgettitle">In case you missed it</h4>
490
+ <div class="post-97657 post type-post status-publish format-standard hentry category-3d-printer-hacks category-featured tag-algae tag-bioluminescence tag-dinoflagellate tag-glowing tag-phosphorescence"><a href="http://hackaday.com/2013/04/18/living-night-light-with-glowing-algae/" title="Living night light with glowing&nbsp;algae" class="alignleft"><img width="90" height="61" src="http://hackadaycom.files.wordpress.com/2013/04/thumb1.jpg?w=90" class="attachment-thumbnail" alt="thumb" /></a><h2><a href="http://hackaday.com/2013/04/18/living-night-light-with-glowing-algae/" title="Living night light with glowing&nbsp;algae">Living night light with glowing&nbsp;algae</a></h2><p class="byline post-info"><br /> <span class="post-comments"><a href="http://hackaday.com/2013/04/18/living-night-light-with-glowing-algae/#comments">67 Comments</a></span></p></div><!--end post_class()-->
491
+
492
+ <div class="post-97648 post type-post status-publish format-standard hentry category-3d-printer-hacks category-featured category-virtual-reality-2 tag-3d-printing tag-lulzbot tag-oculus-rift tag-virtual-reality tag-vr"><a href="http://hackaday.com/2013/04/17/3d-printing-sensor-mounts-for-the-oculus-rift/" title="3D Printing sensor mounts for the Oculus&nbsp;Rift" class="alignleft"><img width="90" height="67" src="http://hackadaycom.files.wordpress.com/2013/04/thumb.jpg?w=90" class="attachment-thumbnail" alt="thumb" /></a><h2><a href="http://hackaday.com/2013/04/17/3d-printing-sensor-mounts-for-the-oculus-rift/" title="3D Printing sensor mounts for the Oculus&nbsp;Rift">3D Printing sensor mounts for the Oculus&nbsp;Rift</a></h2><p class="byline post-info"><br /> <span class="post-comments"><a href="http://hackaday.com/2013/04/17/3d-printing-sensor-mounts-for-the-oculus-rift/#comments">7 Comments</a></span></p></div><!--end post_class()-->
493
+
494
+ <div class="post-97564 post type-post status-publish format-standard hentry category-featured category-virtual-reality-2 tag-adaliight tag-ambilight tag-oculus-rift tag-virtual-reality tag-vr"><a href="http://hackaday.com/2013/04/11/hacking-the-oculus-rift-the-oculight/" title="Hacking the Oculus Rift: the&nbsp;Oculight" class="alignleft"><img width="90" height="54" src="http://hackadaycom.files.wordpress.com/2013/04/screen-shot-2013-04-14-at-9-52-43-am.png?w=90" class="attachment-thumbnail" alt="Screen Shot 2013-04-14 at 9.52.43 AM" /></a><h2><a href="http://hackaday.com/2013/04/11/hacking-the-oculus-rift-the-oculight/" title="Hacking the Oculus Rift: the&nbsp;Oculight">Hacking the Oculus Rift: the&nbsp;Oculight</a></h2><p class="byline post-info"><br /> <span class="post-comments"><a href="http://hackaday.com/2013/04/11/hacking-the-oculus-rift-the-oculight/#comments">20 Comments</a></span></p></div><!--end post_class()-->
495
+
496
+ <div class="post-97538 post type-post status-publish format-standard hentry category-featured category-news tag-top-10 tag-wins"><a href="http://hackaday.com/2013/04/11/top-10-best-hacking-scenes-in-movies/" title="Top 10 best hacking scenes in&nbsp;movies" class="alignleft"><img width="90" height="55" src="http://hackadaycom.files.wordpress.com/2013/04/screen-shot-2013-04-14-at-9-51-38-am.png?w=90" class="attachment-thumbnail" alt="Screen Shot 2013-04-14 at 9.51.38 AM" /></a><h2><a href="http://hackaday.com/2013/04/11/top-10-best-hacking-scenes-in-movies/" title="Top 10 best hacking scenes in&nbsp;movies">Top 10 best hacking scenes in&nbsp;movies</a></h2><p class="byline post-info"><br /> <span class="post-comments"><a href="http://hackaday.com/2013/04/11/top-10-best-hacking-scenes-in-movies/#comments">88 Comments</a></span></p></div><!--end post_class()-->
497
+
498
+ <div class="post-97094 post type-post status-publish format-standard hentry category-featured category-news tag-april-fools"><a href="http://hackaday.com/2013/04/01/hackadays-very-first-kickstarter-campaign/" title="Hackaday&#8217;s very first Kickstarter&nbsp;campaign" class="alignleft"><img width="90" height="54" src="http://hackadaycom.files.wordpress.com/2013/03/hackaday-kickstarter.jpg?w=90" class="attachment-thumbnail" alt="hackaday-kickstarter" /></a><h2><a href="http://hackaday.com/2013/04/01/hackadays-very-first-kickstarter-campaign/" title="Hackaday&#8217;s very first Kickstarter&nbsp;campaign">Hackaday&#8217;s very first Kickstarter&nbsp;campaign</a></h2><p class="byline post-info"><br /> <span class="post-comments"><a href="http://hackaday.com/2013/04/01/hackadays-very-first-kickstarter-campaign/#comments">58 Comments</a></span></p></div><!--end post_class()-->
499
+
500
+ <p class="more-from-category"><a href="http://hackaday.com/category/featured/" title="Featured">More Posts from this Category</a></p></div></div>
501
+ <div id="recent-comments-2" class="widget widget_recent_comments"><div class="widget-wrap"><h4 class="widgettitle">Recent comments</h4>
502
+ <ul id="recentcomments">
503
+ <li class="recentcomments">
504
+ echodelta on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-997083">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
505
+ <li class="recentcomments">
506
+ <a href='http://jsutton.co.uk' rel='external nofollow' class='url'>James</a> on <a href="http://hackaday.com/2013/04/23/console-radio-given-new-life-with-a-wifi-router-retrofit/comment-page-1/#comment-997080">Console radio given new life with a WiFi router&nbsp;retrofit</a> </li>
507
+ <li class="recentcomments">
508
+ nhede on <a href="http://hackaday.com/2013/04/22/20-pounds-and-a-gut-feeling-yields-a-configurable-rubidium-atomic-clock-source/comment-page-1/#comment-997074">20 pounds and a gut feeling yields a configurable Rubidium atomic clock&nbsp;source</a> </li>
509
+ <li class="recentcomments">
510
+ Dax on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-997071">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
511
+ <li class="recentcomments">
512
+ TacticalNinja on <a href="http://hackaday.com/2013/04/23/otm-02-is-a-3d-printed-wristwatch/comment-page-1/#comment-997070">OTM-02 is a 3D printed&nbsp;wristwatch</a> </li>
513
+ <li class="recentcomments">
514
+ Arlet on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-997017">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
515
+ <li class="recentcomments">
516
+ Arlet on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-997016">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
517
+ <li class="recentcomments">
518
+ <a href='http://smonson.com/' rel='external nofollow' class='url'>Smonson</a> on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-996997">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
519
+ <li class="recentcomments">
520
+ <a href='http://twitter.com/admsch' rel='external nofollow' class='url'>Adam Scheuring (@admsch)</a> on <a href="http://hackaday.com/2013/04/23/otm-02-is-a-3d-printed-wristwatch/comment-page-1/#comment-996993">OTM-02 is a 3D printed&nbsp;wristwatch</a> </li>
521
+ <li class="recentcomments">
522
+ JoSSte on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-996990">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
523
+ </ul>
524
+ </div></div>
525
+ <div id="calendar-2" class="widget widget_calendar"><div class="widget-wrap"><h4 class="widgettitle">Find Hacks by Date</h4>
526
+ <div id="calendar_wrap"><table id="wp-calendar">
527
+ <caption>April 2013</caption>
528
+ <thead>
529
+ <tr>
530
+ <th scope="col" title="Sunday">S</th>
531
+ <th scope="col" title="Monday">M</th>
532
+ <th scope="col" title="Tuesday">T</th>
533
+ <th scope="col" title="Wednesday">W</th>
534
+ <th scope="col" title="Thursday">T</th>
535
+ <th scope="col" title="Friday">F</th>
536
+ <th scope="col" title="Saturday">S</th>
537
+ </tr>
538
+ </thead>
539
+
540
+ <tfoot>
541
+ <tr>
542
+ <td colspan="3" id="prev"><a href="http://hackaday.com/2013/03/" title="View posts for March 2013">&laquo; Mar</a></td>
543
+ <td class="pad">&nbsp;</td>
544
+ <td colspan="3" id="next" class="pad">&nbsp;</td>
545
+ </tr>
546
+ </tfoot>
547
+
548
+ <tbody>
549
+ <tr>
550
+ <td colspan="1" class="pad">&nbsp;</td><td><a href="http://hackaday.com/2013/04/01/" title="Hackaday&#8217;s very first Kickstarter&nbsp;campaign, 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>
551
+ </tr>
552
+ <tr>
553
+ <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>
554
+ </tr>
555
+ <tr>
556
+ <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>
557
+ </tr>
558
+ <tr>
559
+ <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>
560
+ </tr>
561
+ <tr>
562
+ <td>28</td><td>29</td><td>30</td>
563
+ <td class="pad" colspan="4">&nbsp;</td>
564
+ </tr>
565
+ </tbody>
566
+ </table></div></div></div>
567
+ <div id=virurl>
568
+ <!-- BEGIN - VIRURL Widget - iFrame Embed Code -->
569
+ <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"
570
+ width="300" height="600" scrolling="no" >
571
+ </iframe>
572
+ <!-- END - VIRURL Widget - iFrame Embed Code -->
573
+ </div>
574
+ <br />
575
+ <br />
576
+ <div id=tl_ad_bottom>
577
+ <script type="text/javascript"><!--
578
+ google_ad_client = "ca-pub-1812638130783065";
579
+ /* Hackaday sidebar wide skyscraper */
580
+ google_ad_slot = "1587378096";
581
+ google_ad_width = 160;
582
+ google_ad_height = 600;
583
+ google_ad_region = "test";
584
+ //-->
585
+ </script>
586
+ <script type="text/javascript"
587
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
588
+ </script>
589
+ </div>
590
+
591
+
592
+ <br />
593
+
594
+
595
+
596
+
597
+
598
+
599
+ </div> </div><!-- end #content-sidebar-wrap -->
600
+ </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 -->
601
+ <script type="text/javascript">
602
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
603
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
604
+ </script>
605
+ <script type="text/javascript">
606
+ var pageTracker = _gat._getTracker("UA-2201445-6");
607
+ pageTracker._trackPageview();
608
+ </script>
609
+ <!-- Start Quantcast tag -->
610
+ <script type="text/javascript">
611
+ _qoptions={
612
+ qacct:"p-cc6zkdHuZwUDM"
613
+ };
614
+ </script>
615
+ <script type="text/javascript"
616
+ src="http://edge.quantserve.com/quant.js"></script>
617
+ <noscript>
618
+ <img src="http://pixel.quantserve.com/pixel/p-cc6zkdHuZwUDM.gif"
619
+ style="display: none;" border="0" height="1" width="1"
620
+ alt="Quantcast"/>
621
+ </noscript></div><!-- end #wrap -->
622
+
623
+ <script type="text/javascript">
624
+ var _qevents = _qevents || [], wpcomQuantcastData = {"qacct":"p-18-mFEk4J448M","labels":",language.en,type.wpcom,vip.hackadaycom"};
625
+ function wpcomQuantcastPixel( labels, options ) {
626
+ var i, defaults = wpcomQuantcastData, data = { event: 'ajax' };
627
+
628
+ labels = labels || '';
629
+ options = options || {};
630
+
631
+ if ( typeof labels != 'string' )
632
+ options = labels;
633
+
634
+ for ( i in defaults ) {
635
+ data[i] = defaults[i];
636
+ }
637
+
638
+ for ( i in options ) {
639
+ data[i] = options[i];
640
+ }
641
+
642
+ if ( data.labels ) {
643
+ data.labels += ',' + labels;
644
+ } else {
645
+ data.labels = labels;
646
+ }
647
+
648
+ _qevents.push( data );
649
+ };
650
+ (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); })();
651
+ _qevents.push( wpcomQuantcastData );
652
+ </script>
653
+ <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>
654
+
655
+
656
+ <!-- /// LOAD CHARTBEAT /// -->
657
+ <script type="text/javascript">
658
+ var _sf_async_config={};
659
+ _sf_async_config.uid = 2021;
660
+ _sf_async_config.useCanonical = true;
661
+
662
+ (function(){
663
+ function loadChartbeat() {
664
+ window._sf_endpt=(new Date()).getTime();
665
+ var e = document.createElement('script');
666
+ e.setAttribute('language', 'javascript');
667
+ e.setAttribute('type', 'text/javascript');
668
+ e.setAttribute('src',
669
+ (("https:" == document.location.protocol) ? "https://s3.amazonaws.com/" : "http://") +
670
+ "static.chartbeat.com/js/chartbeat.js");
671
+ document.body.appendChild(e);
672
+ }
673
+ var oldonload = window.onload;
674
+ window.onload = (typeof window.onload != 'function') ?
675
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
676
+ })();
677
+ </script>
678
+ <div style="display:none">
679
+ </div>
680
+ <script type='text/javascript' src='http://s2.wp.com/_static/??-eJylzMsOREAQRuEXMoqgEwvxLC4/qjPVOl3dZh4fO3vrk+/Qz3+m3UW4SFZpxsET/D+3mtEjxQ0CJR8gnIRWOCgrfXm8lcAl0uQRFtbtlR3Cqtegl66smto0xhStPQEw5Dy+'></script>
681
+ <script type="text/javascript">
682
+ // <![CDATA[
683
+ (function() {
684
+ try{
685
+ if ( window.external &&'msIsSiteMode' in window.external) {
686
+ if (window.external.msIsSiteMode()) {
687
+ var jl = document.createElement('script');
688
+ jl.type='text/javascript';
689
+ jl.async=true;
690
+ jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
691
+ var s = document.getElementsByTagName('script')[0];
692
+ s.parentNode.insertBefore(jl, s);
693
+ }
694
+ }
695
+ }catch(e){}
696
+ })();
697
+ // ]]>
698
+ </script><script src="http://s.stats.wordpress.com/w.js?21" type="text/javascript"></script>
699
+ <script type="text/javascript">
700
+ st_go({'blog':'4779443','v':'wpcom','tz':'-7','user_id':'0','subd':'hackadaycom'});
701
+ 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();}
702
+ ex_go({'crypt':'UE40eW5QN0p8M2Y/RE1BNmNJfGhxNCVxUDExYmtXRThKbHcwXTdETWI1alhvb1oseHImN101ZFpEakVpYjlQYVFLYzBaVHRtPz0wXS9bVlFpZ3c1Qn5KSThLNS9lSHNGOE1IJk9+N3xFNWxyT2x+MUpnR1dJcFYlcSZQeHd6TWFkcGk3JV1OVnh+RXAmaFtfZStQZlQuWEI9bTNTLUhobFg0Z2VoRHArV3w3Y0tLcDlMd3pMQXRXZ1c4c0psRy1yNWJMeTVbVGQvbDRjQy5vY01KOXpfJUdqZjNHdTlzbHdbNVFlbW9UQ1NobTUrbkImT0Y9JnxGci5RTWlvPw=='});
703
+ addLoadEvent(function(){linktracker_init('4779443',0);});
704
+ </script>
705
+ <noscript><img src="http://stats.wordpress.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
706
+ <script type="text/javascript">
707
+ // Trigger Quantcast pixel for each Infinite Scroll post load
708
+ if ( 'function' === typeof( jQuery ) ) {
709
+ jQuery( document.body ).on( 'post-load', function() {
710
+ if ( 'function' === typeof( wpcomQuantcastPixel ) )
711
+ wpcomQuantcastPixel();
712
+ } );
713
+ }
714
+ </script>
715
+ </body>
716
+ </html>