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,714 @@
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.402 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=1366801058&amp;back=hackaday.com%2Fpage%2F32%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-32 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-96153 post type-post status-publish format-standard hentry category-green-hacks tag-arduino tag-beaglebone tag-pm10 tag-pollution tag-sensor-network tag-solar">
197
+
198
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/15/deploying-an-open-source-pollution-monitoring-network/" title="Deploying an open source pollution monitoring&nbsp;network" rel="bookmark">Deploying an open source pollution monitoring&nbsp;network</a></h2>
199
+
200
+ <div class="post-info"><span class="date published time" title="2013-03-15T06:01:43+00:00">March 15, 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/15/deploying-an-open-source-pollution-monitoring-network/#comments">16 Comments</a></span> </div> <div class="entry-content">
201
+ <p><img class="aligncenter size-full wp-image-96154" alt="pollution-monitoring-network" src="http://hackadaycom.files.wordpress.com/2013/03/pollution-monitoring-network.png?w=502&#038;h=378" width="502" height="378" /></p>
202
+ <p>[Kasey] and [Guyzmo] have been working for the past couple of years on a side project that lets them monitor pollution using a network of sensors. They&#8217;ve just decided to make the project open source, both hardware and software. The details of the system are available at <a href="https://github.com/hackable-devices/polluxnzcity">their GitHub repository</a>.</p>
203
+ <p>There are two main components to the system. On the right is a base station which collects the data from the array of sensor, one of which is shown on the left. Each sensor runs off of a battery, but features a PV solar panel which keeps the power source topped off. It uses an Arduino to drive the system, and an XBee radio for communications. Some info about the sensors can be found on <a href="https://github.com/hackable-devices/polluxnzcity/wiki">this summary page</a>. There&#8217;s a PM10 particle pollution sensor, temperature, sound, nitrogen, and oxygen sensors. We also wonder if any data can be gleaned from how much electricity the solar panel is able to harvest?</p>
204
+ <p>The base station also uses an XBee radio to poll the network, but it&#8217;s not driven by an Arduino. They&#8217;ve gone with the ARM-based BeagleBone to manage the data.</p>
205
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
206
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/green-hacks/" title="View all posts in green hacks" rel="category tag">green hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/arduino/" rel="tag">arduino</a>, <a href="http://hackaday.com/tag/beaglebone/" rel="tag">beaglebone</a>, <a href="http://hackaday.com/tag/pm10/" rel="tag">pm10</a>, <a href="http://hackaday.com/tag/pollution/" rel="tag">pollution</a>, <a href="http://hackaday.com/tag/sensor-network/" rel="tag">sensor network</a>, <a href="http://hackaday.com/tag/solar/" rel="tag">solar</a></span> </div>
207
+ </div><!-- end .postclass -->
208
+ <div class="post-96157 post type-post status-publish format-standard hentry category-computer-hacks tag-compaq tag-dual-screen tag-lab tag-laptop tag-workshop">
209
+
210
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/15/workshop-computer-floats-above-bench-and-is-nearly-wireless/" title="Workshop computer floats above bench and is nearly&nbsp;wireless" rel="bookmark">Workshop computer floats above bench and is nearly&nbsp;wireless</a></h2>
211
+
212
+ <div class="post-info"><span class="date published time" title="2013-03-15T04:01:15+00:00">March 15, 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/15/workshop-computer-floats-above-bench-and-is-nearly-wireless/#comments">21 Comments</a></span> </div> <div class="entry-content">
213
+ <p><img class="aligncenter size-full wp-image-96158" alt="all-in-one-workshop-computer" src="http://hackadaycom.files.wordpress.com/2013/03/all-in-one-workshop-computer.png?w=473&#038;h=225" width="473" height="225" /></p>
214
+ <p>[Ezra] used the parts he had lying around to <a href="http://straypoetry.com/blog/projects/2013/02/dual-screen-vesa-mount-all-in-one-frankencomputer-hack/">build a self-contained dual screen shop computer</a>. What might one name such a project? Obviously you&#8217;d call it the Dr. FrankenComputer.</p>
215
+ <p>The lower monitor is a dell desktop flat screen. During prototyping [Ezra] used the stand to support everything. But to keep his work space clear the final version has been mounted to the wall in the corner of his lab. The upper display is the LCD from a Compaq laptop which he wasn&#8217;t using. The laptop still works and we believe that&#8217;s what is driving the Fedora system. A bracket mounted to the desktop screen&#8217;s inner skeleton supports the laptop screen and motherboard. One power supply feeds everything and connects to an outlet in the wall behind the monitors. The keyboard and mouse are wireless, as is the computer&#8217;s connection to the network.</p>
216
+ <p>The only thing we would worry about in our own shop is sawdust filling the heat sinks and other components of the motherboard. Perhaps his lab is electronic projects only or he has a dust cover that he uses when the system isn&#8217;t in use.</p>
217
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
218
+ <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/compaq/" rel="tag">compaq</a>, <a href="http://hackaday.com/tag/dual-screen/" rel="tag">dual screen</a>, <a href="http://hackaday.com/tag/lab/" rel="tag">lab</a>, <a href="http://hackaday.com/tag/laptop/" rel="tag">laptop</a>, <a href="http://hackaday.com/tag/workshop/" rel="tag">workshop</a></span> </div>
219
+ </div><!-- end .postclass -->
220
+ <div class="post-96166 post type-post status-publish format-standard hentry category-home-entertainment-hacks tag-cable-box tag-home-theater tag-ir tag-pic32 tag-stb tag-universal-remote">
221
+
222
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/14/eloquent-universal-receiver-for-your-home-entertainment-equipment/" title="Eloquent universal receiver for your home entertainment&nbsp;equipment" rel="bookmark">Eloquent universal receiver for your home entertainment&nbsp;equipment</a></h2>
223
+
224
+ <div class="post-info"><span class="date published time" title="2013-03-14T20:01:49+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/eloquent-universal-receiver-for-your-home-entertainment-equipment/#comments">8 Comments</a></span> </div> <div class="entry-content">
225
+ <p><img class="aligncenter size-full wp-image-96167" alt="home-entertainment-universal-receiver" src="http://hackadaycom.files.wordpress.com/2013/03/home-entertainment-universal-receiver.png?w=580&#038;h=450" width="580" height="450" /></p>
226
+ <p>We&#8217;re really starting to enjoy the home entertainment control hacks which use a universal receiver to act on commands from any remote. This one is especially interesting as it uses <a href="http://www.ivancreations.com/2013/03/stb-zombifier.html">a single remote to control the system but rolls in lots of extras</a>.</p>
227
+ <p>Looking at the receiver itself the white plastic dome of the PIR sensor should raise an eyebrow. Since the cable box takes a while to turn on [Ivan] included the motion sensor to switch that component on when you walk into the room. This way it&#8217;ll be ready to go by the time you sit down. It does this by sending IR signals from the PIC32 dev board. Of course the board has its own receiver to listen for the remote control commands. The remote buttons have been mapped a bit differently than originally intended. You can see in the diagram above that the normal VCR/DVD/DVR buttons have been set to control the room&#8217;s LED strips. There&#8217;s even a power consumption monitor rolled into the project. All of these features are demonstrated in the clip after the break.</p>
228
+ <p>This is a nearly perfect base setup. But we&#8217;d love to see it with <a href="http://hackaday.com/2012/12/14/webmote-control-anything-with-web-based-remote/">a web interface</a> at some point in the future.</p>
229
+ <p> <a href="http://hackaday.com/2013/03/14/eloquent-universal-receiver-for-your-home-entertainment-equipment/#more-96166" class="more-link">[Read more...]</a></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/home-entertainment-hacks/" title="View all posts in home entertainment hacks" rel="category tag">home entertainment hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/cable-box/" rel="tag">cable box</a>, <a href="http://hackaday.com/tag/home-theater/" rel="tag">home theater</a>, <a href="http://hackaday.com/tag/ir/" rel="tag">ir</a>, <a href="http://hackaday.com/tag/pic32/" rel="tag">pic32</a>, <a href="http://hackaday.com/tag/stb/" rel="tag">stb</a>, <a href="http://hackaday.com/tag/universal-remote/" rel="tag">universal remote</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-96148 post type-post status-publish format-standard hentry category-tool-hacks tag-agilent tag-cripple tag-eeprom tag-multimeter tag-stm32">
262
+
263
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/14/eeprom-hack-unlocks-crippled-features-in-agilent-multimeter-and-lcr-meter/" title="EEPROM hack unlocks crippled features in Agilent multimeter and LCR&nbsp;meter" rel="bookmark">EEPROM hack unlocks crippled features in Agilent multimeter and LCR&nbsp;meter</a></h2>
264
+
265
+ <div class="post-info"><span class="date published time" title="2013-03-14T18:01:48+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/eeprom-hack-unlocks-crippled-features-in-agilent-multimeter-and-lcr-meter/#comments">31 Comments</a></span> </div> <div class="entry-content">
266
+ <p><img class="aligncenter size-large wp-image-96149" alt="u1241a-agilent-hack" src="http://hackadaycom.files.wordpress.com/2013/03/u1241a-agilent-hack.jpg?w=282&#038;h=450" width="282" height="450" /></p>
267
+ <p>[Gnif] was doing what any good hacker does&#8230; poking around the insides of one of his tools to see how it works. While in there, he discovered that an EEPROM hack could <a href="http://www.eevblog.com/forum/projects/agilent-u1241a-to-u1242a-hack/">make the Agilent U1241A function like the U1242A</a>.</p>
268
+ <p>If you&#8217;re into this kind of thing <a href="http://hackaday.com/2010/03/31/update-50mhz-to-100mhz-scope-conversion/">the Rigol 1052e hack</a> should have already popped to mind. That was a firmware crippled device that, when unlocked, made the cheaper model behave the same ways as it&#8217;s $400 more expensive sibling. This doesn&#8217;t have quite the same impact, as the price difference is somewhere between $20-$100. Still, this stuff is just cool, right?</p>
269
+ <p>A few posts down in the thread linked above [Gnif] shares the story of how he found the hack. After shorting the i2c lines of the EEPROM while powering up the meter he was able to see that the device initializes a lot of its values to 0xFF when it can&#8217;t find the stored data. The next step was to use an STM32 board to dump the EEPROM contents. With the backup file stored safely he started changing values and reflashing the chip. Through this process he discovered that switching one byte from 0&#215;01 to 0&#215;02 enabled the higher model&#8217;s features. It also works for upgrading the U1732C to the U1733C feature set.</p>
270
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
271
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/tool-hacks/" title="View all posts in tool hacks" rel="category tag">tool hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/agilent/" rel="tag">agilent</a>, <a href="http://hackaday.com/tag/cripple/" rel="tag">cripple</a>, <a href="http://hackaday.com/tag/eeprom/" rel="tag">eeprom</a>, <a href="http://hackaday.com/tag/multimeter/" rel="tag">multimeter</a>, <a href="http://hackaday.com/tag/stm32/" rel="tag">stm32</a></span> </div>
272
+ </div><!-- end .postclass -->
273
+ <div class="post-96188 post type-post status-publish format-standard hentry category-robots-hacks tag-angular-momentum tag-balance tag-companion-cube tag-cube tag-self-balancing">
274
+
275
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/14/this-cube-is-made-for-walkin/" title="This cube is made for&nbsp;walkin&#8217;" rel="bookmark">This cube is made for&nbsp;walkin&#8217;</a></h2>
276
+
277
+ <div class="post-info"><span class="date published time" title="2013-03-14T16:01:43+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/this-cube-is-made-for-walkin/#comments">32 Comments</a></span> </div> <div class="entry-content">
278
+ <p><img class="aligncenter size-large wp-image-96189" alt="cubli" src="http://hackadaycom.files.wordpress.com/2013/03/cubli.png?w=580&#038;h=396" width="580" height="396" /></p>
279
+ <p>Meet Cubli, a research project which aims to <a href="http://www.idsc.ethz.ch/Research_DAndrea/Cubli">make a cube that can walk around without using any appendages</a>. It&#8217;s a research project at the Institute for Dynamic Systems and control in Switzerland. Anyone else thinking about our beloved companion cube right now?</p>
280
+ <p>The robotic experiments are based on angular momentum. Inside of the cube there are center mounted motors which each spin a wheel. Three of these are mounted perpendicular to each other to give the cube the ability to change its position along any axis. This is best shown by the first video after the break where just a single side of the assembly is demonstrated. A square frame starts at a rest position. You see the wheel spin up and it is suddenly stopped, which causes the momentum of the wheel to pop the square frame up onto one corner. The wheel then switches into a second mode to keep it balancing there. The final mode is a controlled fall. This theoretically will let the cube move around by falling end over end. So far they&#8217;re not showing off that ability, but the second demo video does show the assembled cube balancing on one corner.</p>
281
+ <p> <a href="http://hackaday.com/2013/03/14/this-cube-is-made-for-walkin/#more-96188" class="more-link">[Read more...]</a></p>
282
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
283
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/robots-hacks/" title="View all posts in robots hacks" rel="category tag">robots hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/angular-momentum/" rel="tag">angular momentum</a>, <a href="http://hackaday.com/tag/balance/" rel="tag">balance</a>, <a href="http://hackaday.com/tag/companion-cube/" rel="tag">companion cube</a>, <a href="http://hackaday.com/tag/cube/" rel="tag">cube</a>, <a href="http://hackaday.com/tag/self-balancing/" rel="tag">self balancing</a></span> </div>
284
+ </div><!-- end .postclass -->
285
+ <div class="post-96095 post type-post status-publish format-standard hentry category-radio-hacks category-security-hacks tag-rtlsdr tag-sdr tag-software-defined-radio tag-usrp">
286
+
287
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/14/stealing-cars-and-ringing-doorbells-with-radio/" title="Stealing cars and ringing doorbells with&nbsp;radio" rel="bookmark">Stealing cars and ringing doorbells with&nbsp;radio</a></h2>
288
+
289
+ <div class="post-info"><span class="date published time" title="2013-03-14T14:00:57+00:00">March 14, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/brianbenchoff/" class="fn n" title="Brian Benchoff" rel="author">Brian Benchoff</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/14/stealing-cars-and-ringing-doorbells-with-radio/#comments">24 Comments</a></span> </div> <div class="entry-content">
290
+ <p><img class="aligncenter size-full wp-image-96096" alt="audacity-am-zoom" src="http://hackadaycom.files.wordpress.com/2013/03/audacity-am-zoom.png?w=580&#038;h=128" width="580" height="128" /></p>
291
+ <p>The cheap software defined radio platforms that can be built out of a USB TV tuner aren&#8217;t getting much love on the Hackaday tip line of late. Thankfully, [Adam] sent in a great guide to <a href="http://adamsblog.aperturelabs.com/2013/03/you-can-ring-my-bell-adventures-in-sub.html">cracking sub-GHz wireless protocols wide open</a>, and ringing doorbells, opening cars, and potentially setting houses on fire in the process.</p>
292
+ <p>The first wireless hack [Adam] managed to whip up is figuring out how a wireless doorbell transmitter communicates with its receiver. [Adam] connected a <a href="http://www.funcubedongle.com/">FUNcube software defined radio dongle</a> (although any one of the many USB TV tuner dongles we&#8217;ve seen would also work) and used GNU Radio to send the radio signals received to a WAV file. When looking at this audio file in Audacity, [Adam] saw the tell-tale signs of digital data, leaving with a string of 1s and 0s that would trigger his wireless doorbell.</p>
293
+ <p>The FUNcube dongle doesn&#8217;t have the ability to transmit, though, so [Adam] needed a more capable software defined radio to emulate the inner workings of a doorbell transmitter. He found one in the <a href="http://www.funcubedongle.com/">Ettus Research USRP</a>, a software designed radio that&#8217;s doing a good job of keeping [Balint], <a href="http://hackaday.com/2012/04/16/playing-air-traffic-controller-with-software-defined-radio/">Hackaday SDR extraordinaire</a>, very busy. By sending the data [Adam] decoded with the FUNcube dongle over the USRP, he was able to trigger his wireless doorbell using nothing but a few hundred dollars of radio equipment and software ingenuity.</p>
294
+ <p>Doorbells are a low-stakes game, so [Adam] decided to step things up a little and unlock his son&#8217;s car by capturing and replaying the signals from a key fob remote. Modern cars use a rolling code for their keyless entry, so that entire endeavour is just a party trick. Other RF-enabled appliances, such as a remote-controlled mains outlet, are a much larger threat to home and office security, but still one [Adam] managed to crack wide open.</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/radio-hacks/" title="View all posts in radio hacks" rel="category tag">radio hacks</a>, <a href="http://hackaday.com/category/security-hacks/" title="View all posts in security hacks" rel="category tag">security hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/rtlsdr/" rel="tag">RTLSDR</a>, <a href="http://hackaday.com/tag/sdr/" rel="tag">sdr</a>, <a href="http://hackaday.com/tag/software-defined-radio/" rel="tag">software-defined radio</a>, <a href="http://hackaday.com/tag/usrp/" rel="tag">usrp</a></span> </div>
297
+ </div><!-- end .postclass -->
298
+ <div class="post-96133 post type-post status-publish format-standard hentry category-led-hacks tag-led tag-led-strip tag-rgb-led tag-workspace">
299
+
300
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/14/lighting-up-a-workspace-twofer/" title="Lighting up a workspace&nbsp;twofer" rel="bookmark">Lighting up a workspace&nbsp;twofer</a></h2>
301
+
302
+ <div class="post-info"><span class="date published time" title="2013-03-14T12:00:39+00:00">March 14, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/brianbenchoff/" class="fn n" title="Brian Benchoff" rel="author">Brian Benchoff</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/14/lighting-up-a-workspace-twofer/#comments">14 Comments</a></span> </div> <div class="entry-content">
303
+ <p><img class="aligncenter size-full wp-image-96134" alt="desks" src="http://hackadaycom.files.wordpress.com/2013/03/desks.jpg?w=580&#038;h=323" width="580" height="323" /></p>
304
+ <p>Sometimes a pair of extremely similar builds hit the Hackaday tip line within hours of each other. We&#8217;re not one to play favorites, so here&#8217;s two projects that put RGB LED strips in a desk and workbench.</p>
305
+ <p>[Charles] over at The Makers Workbench has long needed a lighting solution for his workspace. Flourescent lights are <em>alright</em>, but for real geek cred <a href="http://themakersworkbench.com/projects/rgb-led-under-shelf-bench-lighting">nothing but LED strips will do</a>. He picked up an RGB strip on Amazon for $20 and now has a lighting solution that&#8217;s able to change colors above his workstation. Check out <a href="http://www.youtube.com/watch?feature=player_embedded&amp;v=8LjUQlZgA20#!">the video of his RGB workbench rave</a>.</p>
306
+ <p>A computer desk is a workbench too, right? [Will] had the idea of letting people on the Internet <a href="http://willmakesthings.com/color-my-desk/">control the lighting color of his desk</a>. He&#8217;s asking people to head over to <a href="http://colormydesk.com/">this site</a> and asking people to schedule the color of his desk for an entire day. A Raspi pulls each day&#8217;s color off the server. With a few transistors, an RGB strip, a custom shield, and <a href="http://mitchtech.net/raspberry-pi-pwm-rgb-led-strip">faking three PWM channels</a>, [Will] has a new color at his desk every day.</p>
307
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
308
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/led-hacks/" title="View all posts in led hacks" rel="category tag">led hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/led/" rel="tag">led</a>, <a href="http://hackaday.com/tag/led-strip/" rel="tag">led strip</a>, <a href="http://hackaday.com/tag/rgb-led/" rel="tag">RGB LED</a>, <a href="http://hackaday.com/tag/workspace/" rel="tag">workspace</a></span> </div>
309
+ </div><!-- end .postclass -->
310
+ <div class="navigation"><div class="alignleft"><a href="http://hackaday.com/page/33/" >&laquo; Older Posts</a></div><div class="alignright"><a href="http://hackaday.com/page/31/" >Newer Posts &raquo;</a></div></div><!-- end .navigation --> </div><!-- end #content -->
311
+ <div id="sidebar" class="sidebar widget-area">
312
+ <div id=tl_ad>
313
+ <script type="text/javascript"><!--
314
+ google_ad_client = "ca-pub-1812638130783065";
315
+ /* Hackaday, 300x250, created 4/26/08, MedRect sidebar */
316
+ google_ad_slot = "7800245928";
317
+ google_ad_width = 300;
318
+ google_ad_height = 250;
319
+ //-->
320
+ </script>
321
+ <script type="text/javascript"
322
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
323
+ </script>
324
+
325
+ </div>
326
+
327
+
328
+
329
+
330
+
331
+
332
+ <div class="widget">
333
+ <h4>Never Miss a Hack</h4>
334
+ <div class="textwidget">
335
+
336
+ <!-- Place this tag where you want the badge to render. -->
337
+ <div class="g-plus" data-width= "280" data-href="https://plus.google.com/114843073658390316652" data-rel="publisher" data-theme="dark"></div>
338
+ <!-- Place this tag after the last badge tag. -->
339
+ <script type="text/javascript">
340
+ (function() {
341
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
342
+ po.src = 'https://apis.google.com/js/plusone.js';
343
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
344
+ })();
345
+ </script>
346
+
347
+ <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>
348
+
349
+ <a href="https://twitter.com/hackaday" class="twitter-follow-button" data-show-count="true" data-lang="en" data-size="large">Follow @twitter</a>
350
+ <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>
351
+
352
+ <a href="http://feeds2.feedburner.com/hackaday/LgoM" target="_blank"><img src="http://hackadaycom.files.wordpress.com/2012/11/orange.png" border="0"/></a>
353
+ <div class="clear"> </div>
354
+ <!-- Begin MailChimp Signup Form -->
355
+ <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
356
+
357
+ <div id="mc_embed_signup">
358
+ <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>
359
+ <label for="mce-EMAIL">Subscribe to our mailing list for sneak previews and behind the scenes info</label>
360
+ <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
361
+ <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
362
+ </form>
363
+ </div>
364
+
365
+ <!--End mc_embed_signup-->
366
+ </div>
367
+ </div>
368
+
369
+ <div id="categories-2" class="widget widget_categories"><div class="widget-wrap"><h4 class="widgettitle">Categories</h4>
370
+ <select name='cat' id='cat' class='postform' >
371
+ <option value='-1'>Select Category</option>
372
+ <option class="level-0" value="114554125">3d Printer hacks&nbsp;&nbsp;(116)</option>
373
+ <option class="level-0" value="18020710">android hacks&nbsp;&nbsp;(240)</option>
374
+ <option class="level-0" value="18020705">arduino hacks&nbsp;&nbsp;(1029)</option>
375
+ <option class="level-0" value="27981650">ARM&nbsp;&nbsp;(51)</option>
376
+ <option class="level-0" value="33199679">Ask Hackaday&nbsp;&nbsp;(29)</option>
377
+ <option class="level-0" value="64298109">ATtiny hacks&nbsp;&nbsp;(45)</option>
378
+ <option class="level-0" value="25122024">beer hacks&nbsp;&nbsp;(63)</option>
379
+ <option class="level-0" value="12115263">blackberry hacks&nbsp;&nbsp;(8)</option>
380
+ <option class="level-0" value="10969031">cellphones hacks&nbsp;&nbsp;(337)</option>
381
+ <option class="level-0" value="35745764">chemistry hacks&nbsp;&nbsp;(102)</option>
382
+ <option class="level-0" value="24483654">classic hacks&nbsp;&nbsp;(852)</option>
383
+ <option class="level-0" value="31677810">clock hacks&nbsp;&nbsp;(189)</option>
384
+ <option class="level-0" value="18755632">cnc hacks&nbsp;&nbsp;(341)</option>
385
+ <option class="level-0" value="568165">computer hacks&nbsp;&nbsp;(390)</option>
386
+ <option class="level-0" value="78428">cons&nbsp;&nbsp;(192)</option>
387
+ <option class="level-0" value="5738">contests&nbsp;&nbsp;(136)</option>
388
+ <option class="level-0" value="3923181">cooking hacks&nbsp;&nbsp;(72)</option>
389
+ <option class="level-0" value="10969032">digital audio hacks&nbsp;&nbsp;(422)</option>
390
+ <option class="level-0" value="10969033">digital cameras hacks&nbsp;&nbsp;(415)</option>
391
+ <option class="level-0" value="10969034">downloads hacks&nbsp;&nbsp;(101)</option>
392
+ <option class="level-0" value="107827385">drone hacks&nbsp;&nbsp;(10)</option>
393
+ <option class="level-0" value="63176382">Engine Hacks&nbsp;&nbsp;(31)</option>
394
+ <option class="level-0" value="35890">Featured&nbsp;&nbsp;(72)</option>
395
+ <option class="level-0" value="551890">firefox hacks&nbsp;&nbsp;(23)</option>
396
+ <option class="level-0" value="53446541">FPGA&nbsp;&nbsp;(1)</option>
397
+ <option class="level-0" value="18020562">g1 hacks&nbsp;&nbsp;(26)</option>
398
+ <option class="level-0" value="320557">google hacks&nbsp;&nbsp;(44)</option>
399
+ <option class="level-0" value="10969036">gps hacks&nbsp;&nbsp;(108)</option>
400
+ <option class="level-0" value="24535490">green hacks&nbsp;&nbsp;(152)</option>
401
+ <option class="level-0" value="27311668">Hackaday links&nbsp;&nbsp;(146)</option>
402
+ <option class="level-0" value="21755374">Hackerspaces&nbsp;&nbsp;(93)</option>
403
+ <option class="level-0" value="6310599">HackIt&nbsp;&nbsp;(101)</option>
404
+ <option class="level-0" value="10969037">handhelds hacks&nbsp;&nbsp;(189)</option>
405
+ <option class="level-0" value="79">hardware&nbsp;&nbsp;(249)</option>
406
+ <option class="level-0" value="144422905">High Voltage Hacks&nbsp;&nbsp;(5)</option>
407
+ <option class="level-0" value="66307084">Holiday Hacks&nbsp;&nbsp;(93)</option>
408
+ <option class="level-0" value="10969038">home entertainment hacks&nbsp;&nbsp;(516)</option>
409
+ <option class="level-0" value="5660882">home hacks&nbsp;&nbsp;(705)</option>
410
+ <option class="level-0" value="2708">how-to&nbsp;&nbsp;(135)</option>
411
+ <option class="level-0" value="908478">internet hacks&nbsp;&nbsp;(2)</option>
412
+ <option class="level-0" value="831">Interviews&nbsp;&nbsp;(13)</option>
413
+ <option class="level-0" value="1416772">iphone hacks&nbsp;&nbsp;(176)</option>
414
+ <option class="level-0" value="1275163">ipod hacks&nbsp;&nbsp;(144)</option>
415
+ <option class="level-0" value="344761">kickstarter&nbsp;&nbsp;(29)</option>
416
+ <option class="level-0" value="4157506">Kindle hacks&nbsp;&nbsp;(15)</option>
417
+ <option class="level-0" value="46717088">Kinect hacks&nbsp;&nbsp;(81)</option>
418
+ <option class="level-0" value="10969048">laptops hacks&nbsp;&nbsp;(111)</option>
419
+ <option class="level-0" value="10969055">laser hacks&nbsp;&nbsp;(167)</option>
420
+ <option class="level-0" value="18020716">led hacks&nbsp;&nbsp;(695)</option>
421
+ <option class="level-0" value="10626">lifehacks&nbsp;&nbsp;(54)</option>
422
+ <option class="level-0" value="729674">linux hacks&nbsp;&nbsp;(129)</option>
423
+ <option class="level-0" value="20732807">lockpicking hacks&nbsp;&nbsp;(11)</option>
424
+ <option class="level-0" value="10969060">macs hacks&nbsp;&nbsp;(135)</option>
425
+ <option class="level-0" value="144395979">Marijuana Hacks&nbsp;&nbsp;(2)</option>
426
+ <option class="level-0" value="11284667">Medical hacks&nbsp;&nbsp;(102)</option>
427
+ <option class="level-0" value="139916">Microcontrollers&nbsp;&nbsp;(512)</option>
428
+ <option class="level-0" value="5611793">misc hacks&nbsp;&nbsp;(1747)</option>
429
+ <option class="level-0" value="18020730">multitouch hacks&nbsp;&nbsp;(89)</option>
430
+ <option class="level-0" value="22652725">musical hacks&nbsp;&nbsp;(290)</option>
431
+ <option class="level-0" value="18020722">netbook hacks&nbsp;&nbsp;(50)</option>
432
+ <option class="level-0" value="6166512">Network Hacks&nbsp;&nbsp;(4)</option>
433
+ <option class="level-0" value="103">news&nbsp;&nbsp;(1091)</option>
434
+ <option class="level-0" value="1861880">nintendo ds hacks&nbsp;&nbsp;(34)</option>
435
+ <option class="level-0" value="114555425">nintendo gameboy hacks&nbsp;&nbsp;(90)</option>
436
+ <option class="level-0" value="18020685">nintendo hacks&nbsp;&nbsp;(261)</option>
437
+ <option class="level-0" value="4992726">nintendo wii hacks&nbsp;&nbsp;(78)</option>
438
+ <option class="level-0" value="118011206">Nook Hacks&nbsp;&nbsp;(1)</option>
439
+ <option class="level-0" value="114556430">palm pre hacks&nbsp;&nbsp;(6)</option>
440
+ <option class="level-0" value="245123">parts&nbsp;&nbsp;(72)</option>
441
+ <option class="level-0" value="10969081">peripherals hacks&nbsp;&nbsp;(648)</option>
442
+ <option class="level-0" value="16325149">phone hacks&nbsp;&nbsp;(17)</option>
443
+ <option class="level-0" value="10969088">playstation hacks&nbsp;&nbsp;(120)</option>
444
+ <option class="level-0" value="2060">podcasts&nbsp;&nbsp;(8)</option>
445
+ <option class="level-0" value="10969096">portable audio hacks&nbsp;&nbsp;(66)</option>
446
+ <option class="level-0" value="10969099">portable video hacks&nbsp;&nbsp;(57)</option>
447
+ <option class="level-0" value="588444">psp hacks&nbsp;&nbsp;(47)</option>
448
+ <option class="level-0" value="23971578">radio hacks&nbsp;&nbsp;(137)</option>
449
+ <option class="level-0" value="47">rants&nbsp;&nbsp;(28)</option>
450
+ <option class="level-0" value="69218551">Raspberry Pi&nbsp;&nbsp;(153)</option>
451
+ <option class="level-0" value="21870780">repair hacks&nbsp;&nbsp;(101)</option>
452
+ <option class="level-0" value="309">reviews&nbsp;&nbsp;(19)</option>
453
+ <option class="level-0" value="10969101">robots hacks&nbsp;&nbsp;(874)</option>
454
+ <option class="level-0" value="30302">roundup&nbsp;&nbsp;(35)</option>
455
+ <option class="level-0" value="10969111">security hacks&nbsp;&nbsp;(460)</option>
456
+ <option class="level-0" value="2301">Software Development&nbsp;&nbsp;(91)</option>
457
+ <option class="level-0" value="3796421">software hacks&nbsp;&nbsp;(47)</option>
458
+ <option class="level-0" value="10969116">solar hacks&nbsp;&nbsp;(46)</option>
459
+ <option class="level-0" value="10969121">tablet pcs hacks&nbsp;&nbsp;(40)</option>
460
+ <option class="level-0" value="3075183">teardown&nbsp;&nbsp;(31)</option>
461
+ <option class="level-0" value="10969130">tool hacks&nbsp;&nbsp;(657)</option>
462
+ <option class="level-0" value="25277004">toy hacks&nbsp;&nbsp;(360)</option>
463
+ <option class="level-0" value="10969134">transportation hacks&nbsp;&nbsp;(472)</option>
464
+ <option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(332)</option>
465
+ <option class="level-0" value="3184456">video hacks&nbsp;&nbsp;(211)</option>
466
+ <option class="level-0" value="34942364">Virtual Reality&nbsp;&nbsp;(9)</option>
467
+ <option class="level-0" value="50802420">weapons hacks&nbsp;&nbsp;(63)</option>
468
+ <option class="level-0" value="12552193">wearable hacks&nbsp;&nbsp;(183)</option>
469
+ <option class="level-0" value="39510952">Weekly roundup&nbsp;&nbsp;(18)</option>
470
+ <option class="level-0" value="4891215">wireless hacks&nbsp;&nbsp;(333)</option>
471
+ <option class="level-0" value="7079455">xbox hacks&nbsp;&nbsp;(130)</option>
472
+ </select>
473
+
474
+ <script type='text/javascript'>
475
+ /* <![CDATA[ */
476
+ var dropdown = document.getElementById("cat");
477
+ function onCatChange() {
478
+ if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
479
+ location.href = "http://hackaday.com/?cat="+dropdown.options[dropdown.selectedIndex].value;
480
+ }
481
+ }
482
+ dropdown.onchange = onCatChange;
483
+ /* ]]> */
484
+ </script>
485
+
486
+ </div></div>
487
+ <div id="featured-post-2" class="widget featuredpost"><div class="widget-wrap"><h4 class="widgettitle">In case you missed it</h4>
488
+ <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()-->
489
+
490
+ <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()-->
491
+
492
+ <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()-->
493
+
494
+ <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()-->
495
+
496
+ <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()-->
497
+
498
+ <p class="more-from-category"><a href="http://hackaday.com/category/featured/" title="Featured">More Posts from this Category</a></p></div></div>
499
+ <div id="recent-comments-2" class="widget widget_recent_comments"><div class="widget-wrap"><h4 class="widgettitle">Recent comments</h4>
500
+ <ul id="recentcomments">
501
+ <li class="recentcomments">
502
+ 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>
503
+ <li class="recentcomments">
504
+ <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>
505
+ <li class="recentcomments">
506
+ 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>
507
+ <li class="recentcomments">
508
+ 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>
509
+ <li class="recentcomments">
510
+ 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>
511
+ <li class="recentcomments">
512
+ Arlet on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-997017">Rattle generator is a new type of dynamo for a&nbsp;bicycle</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-997016">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
515
+ <li class="recentcomments">
516
+ <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>
517
+ <li class="recentcomments">
518
+ <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>
519
+ <li class="recentcomments">
520
+ 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>
521
+ </ul>
522
+ </div></div>
523
+ <div id="calendar-2" class="widget widget_calendar"><div class="widget-wrap"><h4 class="widgettitle">Find Hacks by Date</h4>
524
+ <div id="calendar_wrap"><table id="wp-calendar">
525
+ <caption>April 2013</caption>
526
+ <thead>
527
+ <tr>
528
+ <th scope="col" title="Sunday">S</th>
529
+ <th scope="col" title="Monday">M</th>
530
+ <th scope="col" title="Tuesday">T</th>
531
+ <th scope="col" title="Wednesday">W</th>
532
+ <th scope="col" title="Thursday">T</th>
533
+ <th scope="col" title="Friday">F</th>
534
+ <th scope="col" title="Saturday">S</th>
535
+ </tr>
536
+ </thead>
537
+
538
+ <tfoot>
539
+ <tr>
540
+ <td colspan="3" id="prev"><a href="http://hackaday.com/2013/03/" title="View posts for March 2013">&laquo; Mar</a></td>
541
+ <td class="pad">&nbsp;</td>
542
+ <td colspan="3" id="next" class="pad">&nbsp;</td>
543
+ </tr>
544
+ </tfoot>
545
+
546
+ <tbody>
547
+ <tr>
548
+ <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>
549
+ </tr>
550
+ <tr>
551
+ <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>
552
+ </tr>
553
+ <tr>
554
+ <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>
555
+ </tr>
556
+ <tr>
557
+ <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>
558
+ </tr>
559
+ <tr>
560
+ <td>28</td><td>29</td><td>30</td>
561
+ <td class="pad" colspan="4">&nbsp;</td>
562
+ </tr>
563
+ </tbody>
564
+ </table></div></div></div>
565
+ <div id=virurl>
566
+ <!-- BEGIN - VIRURL Widget - iFrame Embed Code -->
567
+ <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"
568
+ width="300" height="600" scrolling="no" >
569
+ </iframe>
570
+ <!-- END - VIRURL Widget - iFrame Embed Code -->
571
+ </div>
572
+ <br />
573
+ <br />
574
+ <div id=tl_ad_bottom>
575
+ <script type="text/javascript"><!--
576
+ google_ad_client = "ca-pub-1812638130783065";
577
+ /* Hackaday sidebar wide skyscraper */
578
+ google_ad_slot = "1587378096";
579
+ google_ad_width = 160;
580
+ google_ad_height = 600;
581
+ google_ad_region = "test";
582
+ //-->
583
+ </script>
584
+ <script type="text/javascript"
585
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
586
+ </script>
587
+ </div>
588
+
589
+
590
+ <br />
591
+
592
+
593
+
594
+
595
+
596
+
597
+ </div> </div><!-- end #content-sidebar-wrap -->
598
+ </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 -->
599
+ <script type="text/javascript">
600
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
601
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
602
+ </script>
603
+ <script type="text/javascript">
604
+ var pageTracker = _gat._getTracker("UA-2201445-6");
605
+ pageTracker._trackPageview();
606
+ </script>
607
+ <!-- Start Quantcast tag -->
608
+ <script type="text/javascript">
609
+ _qoptions={
610
+ qacct:"p-cc6zkdHuZwUDM"
611
+ };
612
+ </script>
613
+ <script type="text/javascript"
614
+ src="http://edge.quantserve.com/quant.js"></script>
615
+ <noscript>
616
+ <img src="http://pixel.quantserve.com/pixel/p-cc6zkdHuZwUDM.gif"
617
+ style="display: none;" border="0" height="1" width="1"
618
+ alt="Quantcast"/>
619
+ </noscript></div><!-- end #wrap -->
620
+
621
+ <script type="text/javascript">
622
+ var _qevents = _qevents || [], wpcomQuantcastData = {"qacct":"p-18-mFEk4J448M","labels":",language.en,type.wpcom,vip.hackadaycom"};
623
+ function wpcomQuantcastPixel( labels, options ) {
624
+ var i, defaults = wpcomQuantcastData, data = { event: 'ajax' };
625
+
626
+ labels = labels || '';
627
+ options = options || {};
628
+
629
+ if ( typeof labels != 'string' )
630
+ options = labels;
631
+
632
+ for ( i in defaults ) {
633
+ data[i] = defaults[i];
634
+ }
635
+
636
+ for ( i in options ) {
637
+ data[i] = options[i];
638
+ }
639
+
640
+ if ( data.labels ) {
641
+ data.labels += ',' + labels;
642
+ } else {
643
+ data.labels = labels;
644
+ }
645
+
646
+ _qevents.push( data );
647
+ };
648
+ (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); })();
649
+ _qevents.push( wpcomQuantcastData );
650
+ </script>
651
+ <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>
652
+
653
+
654
+ <!-- /// LOAD CHARTBEAT /// -->
655
+ <script type="text/javascript">
656
+ var _sf_async_config={};
657
+ _sf_async_config.uid = 2021;
658
+ _sf_async_config.useCanonical = true;
659
+
660
+ (function(){
661
+ function loadChartbeat() {
662
+ window._sf_endpt=(new Date()).getTime();
663
+ var e = document.createElement('script');
664
+ e.setAttribute('language', 'javascript');
665
+ e.setAttribute('type', 'text/javascript');
666
+ e.setAttribute('src',
667
+ (("https:" == document.location.protocol) ? "https://s3.amazonaws.com/" : "http://") +
668
+ "static.chartbeat.com/js/chartbeat.js");
669
+ document.body.appendChild(e);
670
+ }
671
+ var oldonload = window.onload;
672
+ window.onload = (typeof window.onload != 'function') ?
673
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
674
+ })();
675
+ </script>
676
+ <div style="display:none">
677
+ </div>
678
+ <script type='text/javascript' src='http://s2.wp.com/_static/??-eJylzMsOREAQRuEXMoqgEwvxLC4/qjPVOl3dZh4fO3vrk+/Qz3+m3UW4SFZpxsET/D+3mtEjxQ0CJR8gnIRWOCgrfXm8lcAl0uQRFtbtlR3Cqtegl66smto0xhStPQEw5Dy+'></script>
679
+ <script type="text/javascript">
680
+ // <![CDATA[
681
+ (function() {
682
+ try{
683
+ if ( window.external &&'msIsSiteMode' in window.external) {
684
+ if (window.external.msIsSiteMode()) {
685
+ var jl = document.createElement('script');
686
+ jl.type='text/javascript';
687
+ jl.async=true;
688
+ jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
689
+ var s = document.getElementsByTagName('script')[0];
690
+ s.parentNode.insertBefore(jl, s);
691
+ }
692
+ }
693
+ }catch(e){}
694
+ })();
695
+ // ]]>
696
+ </script><script src="http://s.stats.wordpress.com/w.js?21" type="text/javascript"></script>
697
+ <script type="text/javascript">
698
+ st_go({'blog':'4779443','v':'wpcom','tz':'-7','user_id':'0','subd':'hackadaycom'});
699
+ 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();}
700
+ ex_go({'crypt':'UE40eW5QN0p8M2Y/RE1BNmNJfGhxNCVxUDExYmtXRThKbHcwXTdETWI1alhvb1oseHImN101ZFpEakVpYjlQYVFLYzBaVHRtPz0wXS9bVlFpZ3c1Qn5KSThLNS9lSHNGOE1IJk9+N3xFNWxyT2x+MUpnR1dJcFZJcWpuUHUzUnMzRFY0amxYTz1VY3hpNEYmby9Xd1N8ZENRR09QYTFTQSZSRVozT3lIJnRfOSw5JXZJcT9IeEY2LDFUX3BfOTk4ZS49ODgvbFhmYzZzaDA4L05SclZoYnRBem5DcnF3VD9PTEJYckRkUXU5akp2c0t1czlBSzdffGhyLGJYLXI='});
701
+ addLoadEvent(function(){linktracker_init('4779443',0);});
702
+ </script>
703
+ <noscript><img src="http://stats.wordpress.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
704
+ <script type="text/javascript">
705
+ // Trigger Quantcast pixel for each Infinite Scroll post load
706
+ if ( 'function' === typeof( jQuery ) ) {
707
+ jQuery( document.body ).on( 'post-load', function() {
708
+ if ( 'function' === typeof( wpcomQuantcastPixel ) )
709
+ wpcomQuantcastPixel();
710
+ } );
711
+ }
712
+ </script>
713
+ </body>
714
+ </html>