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,715 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
3
+ <!--
4
+ generated 95 seconds ago
5
+ generated in 0.304 seconds
6
+ served from batcache in 0.002 seconds
7
+ expires in 205 seconds
8
+ -->
9
+ <head profile="http://gmpg.org/xfn/11">
10
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
11
+ <title>Hack a Day — Fresh hacks every day</title>
12
+ <meta name="description" content="Fresh hacks every day" />
13
+ <meta name="robots" content="noodp,noydir" />
14
+ <link rel="Shortcut Icon" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/images/favicon.ico?m=1353160633g" type="image/x-icon" />
15
+ <link rel="stylesheet" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/style.css?m=1363789849g" type="text/css" media="screen" />
16
+
17
+ <meta name="description" content="Fresh hacks every day" />
18
+ <meta name="keywords" content="hall of fame, fpga, nook hacks, internet hacks, marijuana hacks, network hacks, high voltage hacks, palm pre hacks, blackberry hacks, podcasts, virtual reality, drone hacks, lockpicking hacks, interviews, kindle hacks, phone hacks, weekly roundup, reviews, firefox hacks, g1 hacks" />
19
+ <script src='http://r-login.wordpress.com/remote-login.php?action=js&amp;host=hackaday.com&amp;id=4779443&amp;t=1366801051&amp;back=hackaday.com%2Fpage%2F25%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-25 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-96540 post type-post status-publish format-standard hentry category-cnc-hacks category-cooking-hacks tag-heating-element tag-printer tag-toaster">
197
+
198
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/22/low-resolution-toaster-prints-on-slices-of-bread/" title="Low-resolution toaster prints on slices of&nbsp;bread" rel="bookmark">Low-resolution toaster prints on slices of&nbsp;bread</a></h2>
199
+
200
+ <div class="post-info"><span class="date published time" title="2013-03-22T10:01:33+00:00">March 22, 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/22/low-resolution-toaster-prints-on-slices-of-bread/#comments">11 Comments</a></span> </div> <div class="entry-content">
201
+ <p><img class="aligncenter size-full wp-image-96541" alt="low-resolution-bread-toaster" src="http://hackadaycom.files.wordpress.com/2013/03/low-resolution-bread-toaster.png?w=580&#038;h=300" width="580" height="300" /></p>
202
+ <p>Why toast your bread evenly when you can <a href="http://cargocollective.com/scottvh/The-Image-Toaster">burn low-resolution images instead</a>? Meet the Super Mega Mega Toaster, a University project created by [Scott van Haastrecht] for his Creative Technology course.</p>
203
+ <p>Now you may be thinking that this has been done before. And indeed, a bit of searching will lead you to <a href="http://hackaday.com/2009/06/23/the-holy-toaster-kit/">a post about toasting Jesus</a>.  But that is a one-shot toaster hack which simply used a stencil to block heat to create a certain pattern. This is a mechanical overhaul for the toaster concept. It uses one row of six heating elements. Each is connected to a servo motor which moves the element next to the bread or away from it based on the pattering being printed. A stepper motor then moves the bread up so that the next row can be printed. All of this is mounted in a laser-cut wood frame which makes us just a bit nervous because the purpose of the elements is to burn stuff.</p>
204
+ <p>See a demo of the toaster, as well as its internal components in the clip after the jump.</p>
205
+ <p> <a href="http://hackaday.com/2013/03/22/low-resolution-toaster-prints-on-slices-of-bread/#more-96540" 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/cnc-hacks/" title="View all posts in cnc hacks" rel="category tag">cnc hacks</a>, <a href="http://hackaday.com/category/cooking-hacks/" title="View all posts in cooking hacks" rel="category tag">cooking hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/heating-element/" rel="tag">heating element</a>, <a href="http://hackaday.com/tag/printer/" rel="tag">printer</a>, <a href="http://hackaday.com/tag/toaster/" rel="tag">toaster</a></span> </div>
208
+ </div><!-- end .postclass -->
209
+ <div class="post-96552 post type-post status-publish format-standard hentry category-misc-hacks tag-gamma-ray tag-pmt tag-radiation-meter tag-scintillation-probe">
210
+
211
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/22/gamma-ray-scintillation-probe-in-a-paint-can/" title="Gamma-ray scintillation probe in a paint&nbsp;can" rel="bookmark">Gamma-ray scintillation probe in a paint&nbsp;can</a></h2>
212
+
213
+ <div class="post-info"><span class="date published time" title="2013-03-22T08:01:28+00:00">March 22, 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/22/gamma-ray-scintillation-probe-in-a-paint-can/#comments">5 Comments</a></span> </div> <div class="entry-content">
214
+ <p><img class="alignnone size-full wp-image-96553" alt="gamma.ray.scintillation.probe.in.paint.can" src="http://hackadaycom.files.wordpress.com/2013/03/gamma-ray-scintillation-probe-in-paint-can.jpg?w=470&#038;h=313" width="470" height="313" /></p>
215
+ <p>The [Prutchi] family sounds pretty cool. [David], the father, is a well educated engineer, has 70 patents, and has written two books. On his off time, he has a passion for making experimental physics accessible to the average Joe. His daughter [Shanni] is a high school student who co-authored one of those same books, and helps conduct research in the fields of Radio-Astronomy and Quantum Physics. Together, they came up with <a href="http://www.diyphysics.com/2013/01/12/a-low-cost-super-sensitive-paint-can-scintillation-probe-for-the-prutchi-cdv700-pro/">an affordable, yet very sensitive, gamma-ray scintillation probe </a>for their customized Civil Defense V-700 radiation survey meter. Sweet.</p>
216
+ <p>They decided to use parts that were low cost and readily available so others could easily follow in their footsteps. A Philips XP5312/SN photomultiplier tube (PMT) and scintillation plastic are the main components.  The enclosure for the probe is a standard paint can, lined with polyurethane foam inserts to help protect the assembly and hold everything in place.</p>
217
+ <div dir="ltr">[David] says that since the probe is very portable and has a high level of sensitivity, it is an ideal candidate for radioactive mineral surveying and scouting miscellaneous gamma-ray sources. They documented the whole process and have <a href="http://www.diyphysics.com/wp-content/uploads/2013/01/Prutchi-Paint-Can-Scintillator.pdf">compiled a handy PDF file</a> for those who are interested in creating their own.</div>
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/misc-hacks/" title="View all posts in misc hacks" rel="category tag">misc hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/gamma-ray/" rel="tag">gamma ray</a>, <a href="http://hackaday.com/tag/pmt/" rel="tag">PMT</a>, <a href="http://hackaday.com/tag/radiation-meter/" rel="tag">radiation meter</a>, <a href="http://hackaday.com/tag/scintillation-probe/" rel="tag">scintillation probe</a></span> </div>
220
+ </div><!-- end .postclass -->
221
+ <div class="post-96566 post type-post status-publish format-standard hentry category-computer-hacks category-misc-hacks tag-astronomy tag-astrophotography tag-cable tag-telescope">
222
+
223
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/22/diy-pc-to-telescope-interface-cable/" title="DIY PC to telescope interface&nbsp;cable" rel="bookmark">DIY PC to telescope interface&nbsp;cable</a></h2>
224
+
225
+ <div class="post-info"><span class="date published time" title="2013-03-22T06:01:25+00:00">March 22, 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/22/diy-pc-to-telescope-interface-cable/#comments">12 Comments</a></span> </div> <div class="entry-content">
226
+ <p><img class="alignnone size-full wp-image-96567" alt="diy.pc.to.telescope.interface.cable" src="http://hackadaycom.files.wordpress.com/2013/03/diy-pc-to-telescope-interface-cable.jpg?w=470&#038;h=314" width="470" height="314" /></p>
227
+ <p>If you&#8217;re serious about astronomy these days, you want to have a computer controlled telescope. Although you can easily purchase a pre-made cable that connects the two devices, where&#8217;s the fun in that? [Charles], being an avid Maker, has created <a href="http://themakersworkbench.com/tutorial/diy-meade-505-telescope-pc-cable">a nice step by step guide so you can build your own</a>.</p>
228
+ <p>This is a great weekend project, and one that even a novice electronics hobbyist should be able to tackle. It&#8217;s straight forward, rather quick, and very easy. Strip some insulation off both ends of the cable, then cut off the unneeded wires. (You&#8217;ll only be working with three of them.) Prep everything with heat shrink tubing. Crimp one end of the wires into an RJ10 plug, then solder the other end of the wires into a DB9 connector. Secure the heat shrink tubing in place, attach the housings, and you can call it finished!</p>
229
+ <p>[Charles] said the whole procedure only took him around 15 minutes. Total cost? Less than $17 in parts.</p>
230
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
231
+ <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/misc-hacks/" title="View all posts in misc hacks" rel="category tag">misc hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/astronomy/" rel="tag">astronomy</a>, <a href="http://hackaday.com/tag/astrophotography/" rel="tag">astrophotography</a>, <a href="http://hackaday.com/tag/cable/" rel="tag">cable</a>, <a href="http://hackaday.com/tag/telescope/" rel="tag">telescope</a></span> </div>
232
+ </div><!-- end .postclass -->
233
+ <div align="center">
234
+
235
+
236
+
237
+ <script type="text/javascript"><!--
238
+
239
+ google_ad_client = "ca-pub-1812638130783065";
240
+
241
+ /* Hackaday, 300x250, created 4/26/08, MedRect main column */
242
+
243
+ google_ad_slot = "3449215672";
244
+
245
+ google_ad_width = 300;
246
+
247
+ google_ad_height = 250;
248
+
249
+ //-->
250
+
251
+ </script>
252
+
253
+ <script type="text/javascript"
254
+
255
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
256
+
257
+ </script>
258
+
259
+
260
+
261
+ </div> <div class="post-96544 post type-post status-publish format-standard hentry category-news tag-analog tag-circuits-io tag-mcp3008 tag-rpi tag-spi">
262
+
263
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/22/analog-input-expansion-boards-for-raspberry-pi/" title="Analog input expansion boards for Raspberry&nbsp;Pi" rel="bookmark">Analog input expansion boards for Raspberry&nbsp;Pi</a></h2>
264
+
265
+ <div class="post-info"><span class="date published time" title="2013-03-22T04:01:34+00:00">March 22, 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/22/analog-input-expansion-boards-for-raspberry-pi/#comments">9 Comments</a></span> </div> <div class="entry-content">
266
+ <p><img class="aligncenter size-large wp-image-96545" alt="analog-input-rpi-add-on" src="http://hackadaycom.files.wordpress.com/2013/03/analog-input-rpi-add-on.jpg?w=503&#038;h=450" width="503" height="450" /></p>
267
+ <p>[Ken Olsen] needed a bunch of analog inputs for his model railroad project. He wanted to use the Raspberry Pi board, but alas there are no analog inputs available on the GPIO header. But there is SPI. So he <a href="http://makersbox.blogspot.com/2013/01/using-circuitsio-to-cooks-up-something.html">used an online service to design his on Analog input expansion boards</a>.</p>
268
+ <p>He mentions that Eagle can be a bit of a pain to work with. For this project he decided to give circuits.io a try. This is an in-browser PCB layout tool which <a href="http://hackaday.com/2012/10/18/hackaday-links-october-18-2012/">we looked at in a links post</a> some time ago. The service lets you order directly from your in-browser design without the need to run gerber files or the like (boards are made using the OSH Park service). He&#8217;s very happy with the boards he got back. They feature a footprint for a connector to interface with the RPi.</p>
269
+ <p>The design uses MCP3008 Analog to SPI chips. Each has eight channels but [Ken] needed more than that. Since the service provides three copies of the board he made them modular by adding end connectors which chain the SPI and power rails from one board to the next. Don&#8217;t miss his full demo in the video after the break.</p>
270
+ <p> <a href="http://hackaday.com/2013/03/22/analog-input-expansion-boards-for-raspberry-pi/#more-96544" 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/news/" title="View all posts in news" rel="category tag">news</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/analog/" rel="tag">analog</a>, <a href="http://hackaday.com/tag/circuits-io/" rel="tag">circuits.io</a>, <a href="http://hackaday.com/tag/mcp3008/" rel="tag">mcp3008</a>, <a href="http://hackaday.com/tag/rpi/" rel="tag">RPi</a>, <a href="http://hackaday.com/tag/spi/" rel="tag">spi</a></span> </div>
273
+ </div><!-- end .postclass -->
274
+ <div class="post-96536 post type-post status-publish format-standard hentry category-android-hacks category-home-hacks tag-android tag-bluetooth tag-garage-door tag-headset tag-transistor">
275
+
276
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/21/bluetooth-headset-garage-door-opener-update/" title="Bluetooth headset garage door opener&nbsp;update" rel="bookmark">Bluetooth headset garage door opener&nbsp;update</a></h2>
277
+
278
+ <div class="post-info"><span class="date published time" title="2013-03-21T18:01:53+00:00">March 21, 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/21/bluetooth-headset-garage-door-opener-update/#comments">21 Comments</a></span> </div> <div class="entry-content">
279
+ <p><img class="aligncenter size-large wp-image-96537" alt="bluetooth-headset-garagedoor-opener-update" src="http://hackadaycom.files.wordpress.com/2013/03/bluetooth-headset-garagedoor-opener-update.png?w=580&#038;h=435" width="580" height="435" /></p>
280
+ <p>[Lou Prado] sent in a link to his new video on <a href="http://www.youtube.com/watch?v=jHOQLcOvhR4">using a Bluetooth headset as a garage door opener for your Android device</a>. This isn&#8217;t a new hack, and <a href="http://hackaday.com/2011/06/15/an-even-simpler-smartphone-garage-door-opener/">we&#8217;ve actually seen him pull it off once before</a> back in 2011. But we&#8217;re running this as an update for a couple of reasons. First off, we had forgotten about the hack and it&#8217;s worth revisiting. Secondly, the headset which he used with the initial hack has gone out of production. He chose a new model, and the assembly video (embedded after the break) which he made is a treasure trove of best practices to use when hacking consumer electronics.</p>
281
+ <p>Here&#8217;s how the hardware part of the hack goes. He removes the speaker from the headset and solders the base of a transistor in-line with a resistor to the red wire. The emitter connects to the grounded frame of the USB charging cable which is plugged into an outlet next to your garage door opener. The collector of the transistor is then connected to the garage door opener, along with a common ground connection, allowing audio from the headset to trigger the transistor to open the door.</p>
282
+ <p>The systems is secure based on Bluetooth pairing, which was done with his phone before starting the hardware hack.</p>
283
+ <p> <a href="http://hackaday.com/2013/03/21/bluetooth-headset-garage-door-opener-update/#more-96536" 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/android-hacks/" title="View all posts in android hacks" rel="category tag">android 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/android/" rel="tag">android</a>, <a href="http://hackaday.com/tag/bluetooth/" rel="tag">bluetooth</a>, <a href="http://hackaday.com/tag/garage-door/" rel="tag">garage door</a>, <a href="http://hackaday.com/tag/headset/" rel="tag">headset</a>, <a href="http://hackaday.com/tag/transistor/" rel="tag">transistor</a></span> </div>
286
+ </div><!-- end .postclass -->
287
+ <div class="post-96532 post type-post status-publish format-standard hentry category-home-entertainment-hacks category-home-hacks tag-atmega88 tag-bluetooth tag-command-center tag-home-automation tag-remote-control tag-rf tag-smart-phone">
288
+
289
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/21/remote-control-command-center-includes-rf-and-ir-functions/" title="Remote control command center includes RF and IR&nbsp;functions" rel="bookmark">Remote control command center includes RF and IR&nbsp;functions</a></h2>
290
+
291
+ <div class="post-info"><span class="date published time" title="2013-03-21T16:01:52+00:00">March 21, 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/21/remote-control-command-center-includes-rf-and-ir-functions/#comments">9 Comments</a></span> </div> <div class="entry-content">
292
+ <p><img class="aligncenter size-large wp-image-96533" alt="all-in-one-remote-relay-includes-RF" src="http://hackadaycom.files.wordpress.com/2013/03/all-in-one-remote-relay-includes-rf.jpg?w=580&#038;h=385" width="580" height="385" /></p>
293
+ <p>We&#8217;re still not quite sure what to call these projects, but as we&#8217;ve said before, it&#8217;s a pleasure to see what people are doing to use one remote control to rule them all. The project being developed by [Kalle Löfgren] seeks to simplify the remote controlled items in his home by combining all control into one smart phone app. The linchpin of the system is this command center which <a href="http://gizmosnack.blogspot.se/2013/03/varldens-nordigaste-multifjarrkontroll.html">lets a smart phone send IR and RF commands to various devices</a> (<a href="http://translate.google.com/translate?sl=auto&amp;tl=en&amp;js=n&amp;prev=_t&amp;hl=en&amp;ie=UTF-8&amp;eotf=1&amp;u=http%3A%2F%2Fgizmosnack.blogspot.se%2F2013%2F03%2Fvarldens-nordigaste-multifjarrkontroll.html">translated</a>).</p>
294
+ <p>We&#8217;ve seen this done with pretty beefy microcontrollers, like <a href="http://hackaday.com/2013/03/14/eloquent-universal-receiver-for-your-home-entertainment-equipment/">this project that uses a PIC32</a>. But the communications going on between the smartphone and the base station are very simple, as are the remote control commands which are being relayed. So we&#8217;re not surprised to find that this setup just uses an ATmega88, IR LED, Bluetooth Module, and RF module. There is no connection to a computer (the USB simply provides power via a cellphone charger). If you&#8217;re interested in how [Kalle] sniffed the protocol for each remote he wrote two other articles which you can find in the write-up linked above.</p>
295
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
296
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/home-entertainment-hacks/" title="View all posts in home entertainment hacks" rel="category tag">home entertainment 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/atmega88/" rel="tag">ATmega88</a>, <a href="http://hackaday.com/tag/bluetooth/" rel="tag">bluetooth</a>, <a href="http://hackaday.com/tag/command-center/" rel="tag">command center</a>, <a href="http://hackaday.com/tag/home-automation/" rel="tag">home automation</a>, <a href="http://hackaday.com/tag/remote-control/" rel="tag">remote control</a>, <a href="http://hackaday.com/tag/rf/" rel="tag">RF</a>, <a href="http://hackaday.com/tag/smart-phone/" rel="tag">smart phone</a></span> </div>
297
+ </div><!-- end .postclass -->
298
+ <div class="post-96526 post type-post status-publish format-standard hentry category-computer-hacks tag-nand tag-wire-porn">
299
+
300
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/21/nandputer-is-mostly-wiring/" title="NANDputer is mostly&nbsp;wiring" rel="bookmark">NANDputer is mostly&nbsp;wiring</a></h2>
301
+
302
+ <div class="post-info"><span class="date published time" title="2013-03-21T14:01:50+00:00">March 21, 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/21/nandputer-is-mostly-wiring/#comments">23 Comments</a></span> </div> <div class="entry-content">
303
+ <p><img class="aligncenter size-large wp-image-96527" alt="nand-puter" src="http://hackadaycom.files.wordpress.com/2013/03/nand-puter.jpg?w=580&#038;h=285" width="580" height="285" /></p>
304
+ <p>We would wager that by weight this project is mostly wiring. We might go as far as betting that the wire outweighs the rest of the components 2 to 1. We&#8217;ll keep our fingers crossed that there&#8217;s never a loose connection, but for now it seems that [Kevin Horton's] <a href="http://blog.kevtris.org/?p=62">NAND-based computer project is up and running</a>. Very nearly ever part of the build is based on NAND gates, which is why the point-to-point wiring is so crazy. There is one peripheral board which uses some non-NAND components, but he eventually plans on replacing that to make the system&#8230;. pure?</p>
305
+ <p>Now get ready for the crazy part. This is just one half of the program counter! There&#8217;s another board that looks just like it. The two join at least a half-dozen other boards of similar size and complexity to make a functioning computer. Crazy! The post shares a ton of details, but you can also just skip down after the break to see a video of it running a program.</p>
306
+ <p>If you&#8217;re wondering how a NAND-based computer works you should make your way through <a href="http://hackaday.com/2012/10/11/programming-tetris-by-first-building-a-logic-gate-then-a-computer-then/">this online course</a>.</p>
307
+ <p> <a href="http://hackaday.com/2013/03/21/nandputer-is-mostly-wiring/#more-96526" class="more-link">[Read more...]</a></p>
308
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
309
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/computer-hacks/" title="View all posts in computer hacks" rel="category tag">computer hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/nand/" rel="tag">nand</a>, <a href="http://hackaday.com/tag/wire-porn/" rel="tag">wire porn</a></span> </div>
310
+ </div><!-- end .postclass -->
311
+ <div class="navigation"><div class="alignleft"><a href="http://hackaday.com/page/26/" >&laquo; Older Posts</a></div><div class="alignright"><a href="http://hackaday.com/page/24/" >Newer Posts &raquo;</a></div></div><!-- end .navigation --> </div><!-- end #content -->
312
+ <div id="sidebar" class="sidebar widget-area">
313
+ <div id=tl_ad>
314
+ <script type="text/javascript"><!--
315
+ google_ad_client = "ca-pub-1812638130783065";
316
+ /* Hackaday, 300x250, created 4/26/08, MedRect sidebar */
317
+ google_ad_slot = "7800245928";
318
+ google_ad_width = 300;
319
+ google_ad_height = 250;
320
+ //-->
321
+ </script>
322
+ <script type="text/javascript"
323
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
324
+ </script>
325
+
326
+ </div>
327
+
328
+
329
+
330
+
331
+
332
+
333
+ <div class="widget">
334
+ <h4>Never Miss a Hack</h4>
335
+ <div class="textwidget">
336
+
337
+ <!-- Place this tag where you want the badge to render. -->
338
+ <div class="g-plus" data-width= "280" data-href="https://plus.google.com/114843073658390316652" data-rel="publisher" data-theme="dark"></div>
339
+ <!-- Place this tag after the last badge tag. -->
340
+ <script type="text/javascript">
341
+ (function() {
342
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
343
+ po.src = 'https://apis.google.com/js/plusone.js';
344
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
345
+ })();
346
+ </script>
347
+
348
+ <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>
349
+
350
+ <a href="https://twitter.com/hackaday" class="twitter-follow-button" data-show-count="true" data-lang="en" data-size="large">Follow @twitter</a>
351
+ <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>
352
+
353
+ <a href="http://feeds2.feedburner.com/hackaday/LgoM" target="_blank"><img src="http://hackadaycom.files.wordpress.com/2012/11/orange.png" border="0"/></a>
354
+ <div class="clear"> </div>
355
+ <!-- Begin MailChimp Signup Form -->
356
+ <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
357
+
358
+ <div id="mc_embed_signup">
359
+ <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>
360
+ <label for="mce-EMAIL">Subscribe to our mailing list for sneak previews and behind the scenes info</label>
361
+ <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
362
+ <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
363
+ </form>
364
+ </div>
365
+
366
+ <!--End mc_embed_signup-->
367
+ </div>
368
+ </div>
369
+
370
+ <div id="categories-2" class="widget widget_categories"><div class="widget-wrap"><h4 class="widgettitle">Categories</h4>
371
+ <select name='cat' id='cat' class='postform' >
372
+ <option value='-1'>Select Category</option>
373
+ <option class="level-0" value="114554125">3d Printer hacks&nbsp;&nbsp;(116)</option>
374
+ <option class="level-0" value="18020710">android hacks&nbsp;&nbsp;(240)</option>
375
+ <option class="level-0" value="18020705">arduino hacks&nbsp;&nbsp;(1029)</option>
376
+ <option class="level-0" value="27981650">ARM&nbsp;&nbsp;(51)</option>
377
+ <option class="level-0" value="33199679">Ask Hackaday&nbsp;&nbsp;(29)</option>
378
+ <option class="level-0" value="64298109">ATtiny hacks&nbsp;&nbsp;(45)</option>
379
+ <option class="level-0" value="25122024">beer hacks&nbsp;&nbsp;(63)</option>
380
+ <option class="level-0" value="12115263">blackberry hacks&nbsp;&nbsp;(8)</option>
381
+ <option class="level-0" value="10969031">cellphones hacks&nbsp;&nbsp;(337)</option>
382
+ <option class="level-0" value="35745764">chemistry hacks&nbsp;&nbsp;(102)</option>
383
+ <option class="level-0" value="24483654">classic hacks&nbsp;&nbsp;(852)</option>
384
+ <option class="level-0" value="31677810">clock hacks&nbsp;&nbsp;(189)</option>
385
+ <option class="level-0" value="18755632">cnc hacks&nbsp;&nbsp;(341)</option>
386
+ <option class="level-0" value="568165">computer hacks&nbsp;&nbsp;(390)</option>
387
+ <option class="level-0" value="78428">cons&nbsp;&nbsp;(192)</option>
388
+ <option class="level-0" value="5738">contests&nbsp;&nbsp;(136)</option>
389
+ <option class="level-0" value="3923181">cooking hacks&nbsp;&nbsp;(72)</option>
390
+ <option class="level-0" value="10969032">digital audio hacks&nbsp;&nbsp;(422)</option>
391
+ <option class="level-0" value="10969033">digital cameras hacks&nbsp;&nbsp;(415)</option>
392
+ <option class="level-0" value="10969034">downloads hacks&nbsp;&nbsp;(101)</option>
393
+ <option class="level-0" value="107827385">drone hacks&nbsp;&nbsp;(10)</option>
394
+ <option class="level-0" value="63176382">Engine Hacks&nbsp;&nbsp;(31)</option>
395
+ <option class="level-0" value="35890">Featured&nbsp;&nbsp;(72)</option>
396
+ <option class="level-0" value="551890">firefox hacks&nbsp;&nbsp;(23)</option>
397
+ <option class="level-0" value="53446541">FPGA&nbsp;&nbsp;(1)</option>
398
+ <option class="level-0" value="18020562">g1 hacks&nbsp;&nbsp;(26)</option>
399
+ <option class="level-0" value="320557">google hacks&nbsp;&nbsp;(44)</option>
400
+ <option class="level-0" value="10969036">gps hacks&nbsp;&nbsp;(108)</option>
401
+ <option class="level-0" value="24535490">green hacks&nbsp;&nbsp;(152)</option>
402
+ <option class="level-0" value="27311668">Hackaday links&nbsp;&nbsp;(146)</option>
403
+ <option class="level-0" value="21755374">Hackerspaces&nbsp;&nbsp;(93)</option>
404
+ <option class="level-0" value="6310599">HackIt&nbsp;&nbsp;(101)</option>
405
+ <option class="level-0" value="10969037">handhelds hacks&nbsp;&nbsp;(189)</option>
406
+ <option class="level-0" value="79">hardware&nbsp;&nbsp;(249)</option>
407
+ <option class="level-0" value="144422905">High Voltage Hacks&nbsp;&nbsp;(5)</option>
408
+ <option class="level-0" value="66307084">Holiday Hacks&nbsp;&nbsp;(93)</option>
409
+ <option class="level-0" value="10969038">home entertainment hacks&nbsp;&nbsp;(516)</option>
410
+ <option class="level-0" value="5660882">home hacks&nbsp;&nbsp;(705)</option>
411
+ <option class="level-0" value="2708">how-to&nbsp;&nbsp;(135)</option>
412
+ <option class="level-0" value="908478">internet hacks&nbsp;&nbsp;(2)</option>
413
+ <option class="level-0" value="831">Interviews&nbsp;&nbsp;(13)</option>
414
+ <option class="level-0" value="1416772">iphone hacks&nbsp;&nbsp;(176)</option>
415
+ <option class="level-0" value="1275163">ipod hacks&nbsp;&nbsp;(144)</option>
416
+ <option class="level-0" value="344761">kickstarter&nbsp;&nbsp;(29)</option>
417
+ <option class="level-0" value="4157506">Kindle hacks&nbsp;&nbsp;(15)</option>
418
+ <option class="level-0" value="46717088">Kinect hacks&nbsp;&nbsp;(81)</option>
419
+ <option class="level-0" value="10969048">laptops hacks&nbsp;&nbsp;(111)</option>
420
+ <option class="level-0" value="10969055">laser hacks&nbsp;&nbsp;(167)</option>
421
+ <option class="level-0" value="18020716">led hacks&nbsp;&nbsp;(695)</option>
422
+ <option class="level-0" value="10626">lifehacks&nbsp;&nbsp;(54)</option>
423
+ <option class="level-0" value="729674">linux hacks&nbsp;&nbsp;(129)</option>
424
+ <option class="level-0" value="20732807">lockpicking hacks&nbsp;&nbsp;(11)</option>
425
+ <option class="level-0" value="10969060">macs hacks&nbsp;&nbsp;(135)</option>
426
+ <option class="level-0" value="144395979">Marijuana Hacks&nbsp;&nbsp;(2)</option>
427
+ <option class="level-0" value="11284667">Medical hacks&nbsp;&nbsp;(102)</option>
428
+ <option class="level-0" value="139916">Microcontrollers&nbsp;&nbsp;(512)</option>
429
+ <option class="level-0" value="5611793">misc hacks&nbsp;&nbsp;(1747)</option>
430
+ <option class="level-0" value="18020730">multitouch hacks&nbsp;&nbsp;(89)</option>
431
+ <option class="level-0" value="22652725">musical hacks&nbsp;&nbsp;(290)</option>
432
+ <option class="level-0" value="18020722">netbook hacks&nbsp;&nbsp;(50)</option>
433
+ <option class="level-0" value="6166512">Network Hacks&nbsp;&nbsp;(4)</option>
434
+ <option class="level-0" value="103">news&nbsp;&nbsp;(1091)</option>
435
+ <option class="level-0" value="1861880">nintendo ds hacks&nbsp;&nbsp;(34)</option>
436
+ <option class="level-0" value="114555425">nintendo gameboy hacks&nbsp;&nbsp;(90)</option>
437
+ <option class="level-0" value="18020685">nintendo hacks&nbsp;&nbsp;(261)</option>
438
+ <option class="level-0" value="4992726">nintendo wii hacks&nbsp;&nbsp;(78)</option>
439
+ <option class="level-0" value="118011206">Nook Hacks&nbsp;&nbsp;(1)</option>
440
+ <option class="level-0" value="114556430">palm pre hacks&nbsp;&nbsp;(6)</option>
441
+ <option class="level-0" value="245123">parts&nbsp;&nbsp;(72)</option>
442
+ <option class="level-0" value="10969081">peripherals hacks&nbsp;&nbsp;(648)</option>
443
+ <option class="level-0" value="16325149">phone hacks&nbsp;&nbsp;(17)</option>
444
+ <option class="level-0" value="10969088">playstation hacks&nbsp;&nbsp;(120)</option>
445
+ <option class="level-0" value="2060">podcasts&nbsp;&nbsp;(8)</option>
446
+ <option class="level-0" value="10969096">portable audio hacks&nbsp;&nbsp;(66)</option>
447
+ <option class="level-0" value="10969099">portable video hacks&nbsp;&nbsp;(57)</option>
448
+ <option class="level-0" value="588444">psp hacks&nbsp;&nbsp;(47)</option>
449
+ <option class="level-0" value="23971578">radio hacks&nbsp;&nbsp;(137)</option>
450
+ <option class="level-0" value="47">rants&nbsp;&nbsp;(28)</option>
451
+ <option class="level-0" value="69218551">Raspberry Pi&nbsp;&nbsp;(153)</option>
452
+ <option class="level-0" value="21870780">repair hacks&nbsp;&nbsp;(101)</option>
453
+ <option class="level-0" value="309">reviews&nbsp;&nbsp;(19)</option>
454
+ <option class="level-0" value="10969101">robots hacks&nbsp;&nbsp;(874)</option>
455
+ <option class="level-0" value="30302">roundup&nbsp;&nbsp;(35)</option>
456
+ <option class="level-0" value="10969111">security hacks&nbsp;&nbsp;(460)</option>
457
+ <option class="level-0" value="2301">Software Development&nbsp;&nbsp;(91)</option>
458
+ <option class="level-0" value="3796421">software hacks&nbsp;&nbsp;(47)</option>
459
+ <option class="level-0" value="10969116">solar hacks&nbsp;&nbsp;(46)</option>
460
+ <option class="level-0" value="10969121">tablet pcs hacks&nbsp;&nbsp;(40)</option>
461
+ <option class="level-0" value="3075183">teardown&nbsp;&nbsp;(31)</option>
462
+ <option class="level-0" value="10969130">tool hacks&nbsp;&nbsp;(657)</option>
463
+ <option class="level-0" value="25277004">toy hacks&nbsp;&nbsp;(360)</option>
464
+ <option class="level-0" value="10969134">transportation hacks&nbsp;&nbsp;(472)</option>
465
+ <option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(332)</option>
466
+ <option class="level-0" value="3184456">video hacks&nbsp;&nbsp;(211)</option>
467
+ <option class="level-0" value="34942364">Virtual Reality&nbsp;&nbsp;(9)</option>
468
+ <option class="level-0" value="50802420">weapons hacks&nbsp;&nbsp;(63)</option>
469
+ <option class="level-0" value="12552193">wearable hacks&nbsp;&nbsp;(183)</option>
470
+ <option class="level-0" value="39510952">Weekly roundup&nbsp;&nbsp;(18)</option>
471
+ <option class="level-0" value="4891215">wireless hacks&nbsp;&nbsp;(333)</option>
472
+ <option class="level-0" value="7079455">xbox hacks&nbsp;&nbsp;(130)</option>
473
+ </select>
474
+
475
+ <script type='text/javascript'>
476
+ /* <![CDATA[ */
477
+ var dropdown = document.getElementById("cat");
478
+ function onCatChange() {
479
+ if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
480
+ location.href = "http://hackaday.com/?cat="+dropdown.options[dropdown.selectedIndex].value;
481
+ }
482
+ }
483
+ dropdown.onchange = onCatChange;
484
+ /* ]]> */
485
+ </script>
486
+
487
+ </div></div>
488
+ <div id="featured-post-2" class="widget featuredpost"><div class="widget-wrap"><h4 class="widgettitle">In case you missed it</h4>
489
+ <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()-->
490
+
491
+ <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()-->
492
+
493
+ <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()-->
494
+
495
+ <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()-->
496
+
497
+ <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()-->
498
+
499
+ <p class="more-from-category"><a href="http://hackaday.com/category/featured/" title="Featured">More Posts from this Category</a></p></div></div>
500
+ <div id="recent-comments-2" class="widget widget_recent_comments"><div class="widget-wrap"><h4 class="widgettitle">Recent comments</h4>
501
+ <ul id="recentcomments">
502
+ <li class="recentcomments">
503
+ 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>
504
+ <li class="recentcomments">
505
+ <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>
506
+ <li class="recentcomments">
507
+ 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>
508
+ <li class="recentcomments">
509
+ 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>
510
+ <li class="recentcomments">
511
+ 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>
512
+ <li class="recentcomments">
513
+ 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>
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-997016">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
516
+ <li class="recentcomments">
517
+ <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>
518
+ <li class="recentcomments">
519
+ <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>
520
+ <li class="recentcomments">
521
+ 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>
522
+ </ul>
523
+ </div></div>
524
+ <div id="calendar-2" class="widget widget_calendar"><div class="widget-wrap"><h4 class="widgettitle">Find Hacks by Date</h4>
525
+ <div id="calendar_wrap"><table id="wp-calendar">
526
+ <caption>April 2013</caption>
527
+ <thead>
528
+ <tr>
529
+ <th scope="col" title="Sunday">S</th>
530
+ <th scope="col" title="Monday">M</th>
531
+ <th scope="col" title="Tuesday">T</th>
532
+ <th scope="col" title="Wednesday">W</th>
533
+ <th scope="col" title="Thursday">T</th>
534
+ <th scope="col" title="Friday">F</th>
535
+ <th scope="col" title="Saturday">S</th>
536
+ </tr>
537
+ </thead>
538
+
539
+ <tfoot>
540
+ <tr>
541
+ <td colspan="3" id="prev"><a href="http://hackaday.com/2013/03/" title="View posts for March 2013">&laquo; Mar</a></td>
542
+ <td class="pad">&nbsp;</td>
543
+ <td colspan="3" id="next" class="pad">&nbsp;</td>
544
+ </tr>
545
+ </tfoot>
546
+
547
+ <tbody>
548
+ <tr>
549
+ <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>
550
+ </tr>
551
+ <tr>
552
+ <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>
553
+ </tr>
554
+ <tr>
555
+ <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>
556
+ </tr>
557
+ <tr>
558
+ <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>
559
+ </tr>
560
+ <tr>
561
+ <td>28</td><td>29</td><td>30</td>
562
+ <td class="pad" colspan="4">&nbsp;</td>
563
+ </tr>
564
+ </tbody>
565
+ </table></div></div></div>
566
+ <div id=virurl>
567
+ <!-- BEGIN - VIRURL Widget - iFrame Embed Code -->
568
+ <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"
569
+ width="300" height="600" scrolling="no" >
570
+ </iframe>
571
+ <!-- END - VIRURL Widget - iFrame Embed Code -->
572
+ </div>
573
+ <br />
574
+ <br />
575
+ <div id=tl_ad_bottom>
576
+ <script type="text/javascript"><!--
577
+ google_ad_client = "ca-pub-1812638130783065";
578
+ /* Hackaday sidebar wide skyscraper */
579
+ google_ad_slot = "1587378096";
580
+ google_ad_width = 160;
581
+ google_ad_height = 600;
582
+ google_ad_region = "test";
583
+ //-->
584
+ </script>
585
+ <script type="text/javascript"
586
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
587
+ </script>
588
+ </div>
589
+
590
+
591
+ <br />
592
+
593
+
594
+
595
+
596
+
597
+
598
+ </div> </div><!-- end #content-sidebar-wrap -->
599
+ </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 -->
600
+ <script type="text/javascript">
601
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
602
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
603
+ </script>
604
+ <script type="text/javascript">
605
+ var pageTracker = _gat._getTracker("UA-2201445-6");
606
+ pageTracker._trackPageview();
607
+ </script>
608
+ <!-- Start Quantcast tag -->
609
+ <script type="text/javascript">
610
+ _qoptions={
611
+ qacct:"p-cc6zkdHuZwUDM"
612
+ };
613
+ </script>
614
+ <script type="text/javascript"
615
+ src="http://edge.quantserve.com/quant.js"></script>
616
+ <noscript>
617
+ <img src="http://pixel.quantserve.com/pixel/p-cc6zkdHuZwUDM.gif"
618
+ style="display: none;" border="0" height="1" width="1"
619
+ alt="Quantcast"/>
620
+ </noscript></div><!-- end #wrap -->
621
+
622
+ <script type="text/javascript">
623
+ var _qevents = _qevents || [], wpcomQuantcastData = {"qacct":"p-18-mFEk4J448M","labels":",language.en,type.wpcom,vip.hackadaycom"};
624
+ function wpcomQuantcastPixel( labels, options ) {
625
+ var i, defaults = wpcomQuantcastData, data = { event: 'ajax' };
626
+
627
+ labels = labels || '';
628
+ options = options || {};
629
+
630
+ if ( typeof labels != 'string' )
631
+ options = labels;
632
+
633
+ for ( i in defaults ) {
634
+ data[i] = defaults[i];
635
+ }
636
+
637
+ for ( i in options ) {
638
+ data[i] = options[i];
639
+ }
640
+
641
+ if ( data.labels ) {
642
+ data.labels += ',' + labels;
643
+ } else {
644
+ data.labels = labels;
645
+ }
646
+
647
+ _qevents.push( data );
648
+ };
649
+ (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); })();
650
+ _qevents.push( wpcomQuantcastData );
651
+ </script>
652
+ <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>
653
+
654
+
655
+ <!-- /// LOAD CHARTBEAT /// -->
656
+ <script type="text/javascript">
657
+ var _sf_async_config={};
658
+ _sf_async_config.uid = 2021;
659
+ _sf_async_config.useCanonical = true;
660
+
661
+ (function(){
662
+ function loadChartbeat() {
663
+ window._sf_endpt=(new Date()).getTime();
664
+ var e = document.createElement('script');
665
+ e.setAttribute('language', 'javascript');
666
+ e.setAttribute('type', 'text/javascript');
667
+ e.setAttribute('src',
668
+ (("https:" == document.location.protocol) ? "https://s3.amazonaws.com/" : "http://") +
669
+ "static.chartbeat.com/js/chartbeat.js");
670
+ document.body.appendChild(e);
671
+ }
672
+ var oldonload = window.onload;
673
+ window.onload = (typeof window.onload != 'function') ?
674
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
675
+ })();
676
+ </script>
677
+ <div style="display:none">
678
+ </div>
679
+ <script type='text/javascript' src='http://s2.wp.com/_static/??-eJylzMsOREAQRuEXMoqgEwvxLC4/qjPVOl3dZh4fO3vrk+/Qz3+m3UW4SFZpxsET/D+3mtEjxQ0CJR8gnIRWOCgrfXm8lcAl0uQRFtbtlR3Cqtegl66smto0xhStPQEw5Dy+'></script>
680
+ <script type="text/javascript">
681
+ // <![CDATA[
682
+ (function() {
683
+ try{
684
+ if ( window.external &&'msIsSiteMode' in window.external) {
685
+ if (window.external.msIsSiteMode()) {
686
+ var jl = document.createElement('script');
687
+ jl.type='text/javascript';
688
+ jl.async=true;
689
+ jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
690
+ var s = document.getElementsByTagName('script')[0];
691
+ s.parentNode.insertBefore(jl, s);
692
+ }
693
+ }
694
+ }catch(e){}
695
+ })();
696
+ // ]]>
697
+ </script><script src="http://s.stats.wordpress.com/w.js?21" type="text/javascript"></script>
698
+ <script type="text/javascript">
699
+ st_go({'blog':'4779443','v':'wpcom','tz':'-7','user_id':'0','subd':'hackadaycom'});
700
+ 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();}
701
+ ex_go({'crypt':'UE40eW5QN0p8M2Y/RE1BNmNJfGhxNCVxUDExYmtXRThKbHcwXTdETWI1alhvb1oseHImN101ZFpEakVpYjlQYVFLYzBaVHRtPz0wXS9bVlFpZ3c1Qn5KSThLNS9lSHNGOE1IJk9+N3xFNWxyT2x+MUpnR1dJcFZHPy1OOGZfVEZHV1NtNGl8NzA9Y2pHM0xkYS1XOHNqYlZ3K352QmM9Q2xbdXAlTU9CSnFEUFIxdW8yQUdyOC5ZYWMsL2cxYisybnEybHAzN045X0FhbFA3UHN1VE5YeF9FWzB5cHZEeX40RTdFWm1acW1+LU9dNS98UEp3SV9+dWN4XTgzWQ=='});
702
+ addLoadEvent(function(){linktracker_init('4779443',0);});
703
+ </script>
704
+ <noscript><img src="http://stats.wordpress.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
705
+ <script type="text/javascript">
706
+ // Trigger Quantcast pixel for each Infinite Scroll post load
707
+ if ( 'function' === typeof( jQuery ) ) {
708
+ jQuery( document.body ).on( 'post-load', function() {
709
+ if ( 'function' === typeof( wpcomQuantcastPixel ) )
710
+ wpcomQuantcastPixel();
711
+ } );
712
+ }
713
+ </script>
714
+ </body>
715
+ </html>