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,711 @@
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 94 seconds ago
5
+ generated in 0.371 seconds
6
+ served from batcache in 0.002 seconds
7
+ expires in 206 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=1366801055&amp;back=hackaday.com%2Fpage%2F29%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-29 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-96327 post type-post status-publish format-standard hentry category-clock-hacks tag-clock tag-escapement tag-mechanical-clock tag-pendulum tag-wood-gears">
197
+
198
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/19/designing-and-building-a-wooden-mechanical-clock/" title="Designing and Building a Wooden Mechanical&nbsp;Clock" rel="bookmark">Designing and Building a Wooden Mechanical&nbsp;Clock</a></h2>
199
+
200
+ <div class="post-info"><span class="date published time" title="2013-03-19T04:01:07+00:00">March 19, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/jeremyscook/" class="fn n" title="Jeremy Cook" rel="author">Jeremy Cook</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/19/designing-and-building-a-wooden-mechanical-clock/#comments">15 Comments</a></span> </div> <div class="entry-content">
201
+ <p><a href="http://hackaday.com/?attachment_id=96328" rel="attachment wp-att-96328"><img class="aligncenter size-large wp-image-96328" alt="wooden-clock-prototype" src="http://hackadaycom.files.wordpress.com/2013/03/wooden-clock-prototype.jpg?w=580&#038;h=366" width="580" height="366" /></a></p>
202
+ <p>Electronics are undoubtedly the basis for our modern society. Leaving out transistor-based devices, and a mechanical clock would be one of the most intricate devices man has come up with. As a Mechanical Engineer, I thought it would be a fun challenge to design and <a title="designing and building a mechanical clock" href="http://www.jcopro.net/2013/03/18/first-mechanical-clock-partially-working/" target="_blank">build my own gear-driven clock.</a></p>
203
+ <p>Because clocks have obviously been invented, I wouldn&#8217;t be starting from scratch, and I don&#8217;t think I could have figured out an escapement on my own. I explain my initial <a title="wooden clock initial design" href="http://www.jcopro.net/2013/03/04/building-a-clock-from-design-to-not-quite-working-prototype/" target="_blank">clock escapement and gear reduction design</a> thoughts in this post, and originally getting the escapement to work was my biggest fear.</p>
204
+ <p>As seen in the first video after the break, the escapement gear is still a big problem, but not really for the reason I expected. The shaft that the gear sits on seems to be bent, so it allows the escapement to &#8220;go free&#8221; for part of it&#8217;s cycle, losing any sense of accurate timekeeping. Be sure to also check out the second video, especially around 1:50 when I show what happens when an escapement gear goes much faster than a normal clock. <a href="http://hackaday.com/2013/03/19/designing-and-building-a-wooden-mechanical-clock/#more-96327" class="more-link">[Read more...]</a></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/clock-hacks/" title="View all posts in clock hacks" rel="category tag">clock hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/clock/" rel="tag">clock</a>, <a href="http://hackaday.com/tag/escapement/" rel="tag">escapement</a>, <a href="http://hackaday.com/tag/mechanical-clock/" rel="tag">mechanical clock</a>, <a href="http://hackaday.com/tag/pendulum/" rel="tag">pendulum</a>, <a href="http://hackaday.com/tag/wood-gears/" rel="tag">wood gears</a></span> </div>
207
+ </div><!-- end .postclass -->
208
+ <div class="post-96215 post type-post status-publish format-standard hentry category-robots-hacks tag-animal-testing tag-depression tag-mouse tag-rat tag-robot">
209
+
210
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/18/robotic-rat-torments-and-depresses-real-rats/" title="Robotic rat torments and depresses real&nbsp;rats" rel="bookmark">Robotic rat torments and depresses real&nbsp;rats</a></h2>
211
+
212
+ <div class="post-info"><span class="date published time" title="2013-03-18T18:01:39+00:00">March 18, 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/18/robotic-rat-torments-and-depresses-real-rats/#comments">85 Comments</a></span> </div> <div class="entry-content">
213
+ <p><img class="alignnone size-large wp-image-96216" alt="robotic-rat-torments-real-rats" src="http://hackadaycom.files.wordpress.com/2013/03/robotic-rat-torments-real-rats.jpg?w=580&#038;h=326" width="580" height="326" /></p>
214
+ <p>Animal testing has always been a subject of much debate. On one hand, it allows us to determine if something is probably safe for humans. On the other hand, it&#8217;s injuring and killing the very animals that help us escape that same fate. Any way you look at it, be thankful you&#8217;re not a lab rat. Being a mammal, they share a similar physiology with us. They are also easy to breed and easy to dispose of. These characteristics make them the prime subject for testing the safety of drugs and treatments that might one day be used on humans. Scientists at <a href="http://www.waseda.jp/top/index-e.html">Waseda University in Tokyo, Japan,</a> have created a new rat nemesis &#8211; the WR-3, a robot designed specifically to stress and depress lab animals in the name of science.</p>
215
+ <p>Depression isn&#8217;t normally something rats have to worry about in the wild. So, the WR-3 tries to instill it upon them. The robot has three functions: attacking continuously (relentlessly rams the victim), attacking interactively (attacks for 5 seconds whenever the victim moves, then stops), and chasing (stays right next to the victim but never attacks). The scientists found that the best way to make the rats depressed was to attack them continuously in their youth, then attack interactively as they get older.</p>
216
+ <p>With the data the scientists gain from these new experiments, they hope to learn more about human depression and hopefully come up with more successful treatments. There isn&#8217;t a lot of specific information we could find about the WR-3, but we&#8217;ll keep you posted.</p>
217
+ <p>[via <a href="http://gizmodo.com/">Gizmodo</a>]</p>
218
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
219
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/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/animal-testing/" rel="tag">animal testing</a>, <a href="http://hackaday.com/tag/depression/" rel="tag">depression</a>, <a href="http://hackaday.com/tag/mouse/" rel="tag">mouse</a>, <a href="http://hackaday.com/tag/rat/" rel="tag">rat</a>, <a href="http://hackaday.com/tag/robot/" rel="tag">robot</a></span> </div>
220
+ </div><!-- end .postclass -->
221
+ <div class="post-96270 post type-post status-publish format-standard hentry category-radio-hacks tag-coffee-can tag-ee tag-mit tag-opencourseware tag-radar tag-uc-davis">
222
+
223
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/18/uc-davis-students-build-coffee-can-radar-project-inspired-by-mit/" title="UC Davis students build coffee can radar project inspired by&nbsp;MIT" rel="bookmark">UC Davis students build coffee can radar project inspired by&nbsp;MIT</a></h2>
224
+
225
+ <div class="post-info"><span class="date published time" title="2013-03-18T16:04:58+00:00">March 18, 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/18/uc-davis-students-build-coffee-can-radar-project-inspired-by-mit/#comments">24 Comments</a></span> </div> <div class="entry-content">
226
+ <p><img class="aligncenter size-large wp-image-96271" alt="student-built-coffee-can-radar" src="http://hackadaycom.files.wordpress.com/2013/03/student-built-coffee-can-radar.png?w=580&#038;h=317" width="580" height="317" /></p>
227
+ <p>Blinking lights is a lot of fun, but if you&#8217;re getting an EE degree the cool stuff becomes a bit more involved. In this case, building your own radar is the thing to do. Here&#8217;s <a href="http://www.youtube.com/watch?v=VaTdotYE_dw">a coffee can radar setup</a> being shown off by a group of UC Davis students. Regular readers will recognize the concept as <a href="http://hackaday.com/2012/12/18/build-a-360-synthetic-aperture-radar-with-mits-opencourseware">one we looked at in December</a>. The project was inspired by the MIT OpenCourseware project.</p>
228
+ <p>One of the cans is being used as a transmitter, the other as the collector. The neat thing about this rig is that the analysis is performed on a PC, with the sound card as the collection device. The video after the break shows off the hardware as well as the results it collected. About a minute and a half into the clip they show a real-time demonstration where a student walks in front of the apparatus while another takes a video of the plot results. As the subject moves away from the receiver the computer graph changes accordingly. The rest of the video covers some operational theory and pcb assembly.</p>
229
+ <p> <a href="http://hackaday.com/2013/03/18/uc-davis-students-build-coffee-can-radar-project-inspired-by-mit/#more-96270" 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/radio-hacks/" title="View all posts in radio hacks" rel="category tag">radio hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/coffee-can/" rel="tag">coffee can</a>, <a href="http://hackaday.com/tag/ee/" rel="tag">ee</a>, <a href="http://hackaday.com/tag/mit/" rel="tag">mit</a>, <a href="http://hackaday.com/tag/opencourseware/" rel="tag">opencourseware</a>, <a href="http://hackaday.com/tag/radar/" rel="tag">radar</a>, <a href="http://hackaday.com/tag/uc-davis/" rel="tag">uc davis</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-96274 post type-post status-publish format-standard hentry category-lifehacks tag-foam tag-peltier tag-storage tag-wine tag-wine-cellar">
262
+
263
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/18/temperature-controlled-wine-cellar-substitute/" title="Temperature controlled wine cellar&nbsp;substitute" rel="bookmark">Temperature controlled wine cellar&nbsp;substitute</a></h2>
264
+
265
+ <div class="post-info"><span class="date published time" title="2013-03-18T14:04:56+00:00">March 18, 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/18/temperature-controlled-wine-cellar-substitute/#comments">11 Comments</a></span> </div> <div class="entry-content">
266
+ <p><img class="aligncenter size-large wp-image-96275" alt="temperature-controlled-wine-cellar-substitute" src="http://hackadaycom.files.wordpress.com/2013/03/temperature-controlled-wine-cellar-substitute.png?w=436&#038;h=450" width="436" height="450" /></p>
267
+ <p>Serious wine enthusiasts keep their bottles in a room built for the task. If you don&#8217;t have that kind of space you can still fabricate a similar storage environment. This foam box keeps stored wine at a controlled temperature. It also keeps light off of the precious goods. [Michael] built it himself to use in his apartment and published <a href="http://musclyguppies.com/WineBeerFridge/">a description of the build process</a>.</p>
268
+ <p>He picked up some foil-coated foam board from the home store. Six sections come together into a box about the size of a mini-fridge; 24&#8243; by 24&#8243;. A square hole was cut in the center of the top section. This receives the smaller of two heat sinks mounted to a Peltier cooler. The temperature inside is monitored by a thermistor which [Michael] tore out of an old iPod battery. To give him some visual feedback on the internal temperature he added that yellow and black striped meat thermometer.</p>
269
+ <p>Since this is for long-term storage, we&#8217;d bet the system is rather efficient. As long as the door isn&#8217;t frequently opened the temperature change should be quite slow thanks to the insulation and the cool liquid in wine bottles.</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/lifehacks/" title="View all posts in lifehacks" rel="category tag">lifehacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/foam/" rel="tag">foam</a>, <a href="http://hackaday.com/tag/peltier/" rel="tag">peltier</a>, <a href="http://hackaday.com/tag/storage/" rel="tag">storage</a>, <a href="http://hackaday.com/tag/wine/" rel="tag">wine</a>, <a href="http://hackaday.com/tag/wine-cellar/" rel="tag">wine cellar</a></span> </div>
272
+ </div><!-- end .postclass -->
273
+ <div class="post-96278 post type-post status-publish format-standard hentry category-arduino-hacks category-led-hacks tag-matrix tag-max7219 tag-module">
274
+
275
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/18/prototyping-a-modular-led-matrix/" title="Prototyping a modular LED&nbsp;matrix" rel="bookmark">Prototyping a modular LED&nbsp;matrix</a></h2>
276
+
277
+ <div class="post-info"><span class="date published time" title="2013-03-18T12:04:54+00:00">March 18, 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/18/prototyping-a-modular-led-matrix/#comments">22 Comments</a></span> </div> <div class="entry-content">
278
+ <p><img class="aligncenter size-large wp-image-96279" alt="led-matrix-modular-prototype" src="http://hackadaycom.files.wordpress.com/2013/03/led-matrix-modular-prototype.jpg?w=580&#038;h=348" width="580" height="348" /></p>
279
+ <p>[Will] was toying with the idea of creating a scrolling LED marquee to display messages as his wedding in May. But you&#8217;ve got to crawl before you can walk so he decided to see what he could do with the MAX7219 LED driver chips. They do come in a DIP package, but the 24-pin 0.1&#8243; pitch chip will end up being larger than the 8&#215;8 LED modules he wanted to use. So he opted to go with a surface mount part and <a href="http://www.mobilewill.us/2013/03/led-matrix-link-prototype.html">spun a PCB which makes the LEDs modular</a>.</p>
280
+ <p>These drivers are great when you&#8217;re dealing with a lot of LEDs (like <a href="http://hackaday.com/2012/09/14/helmet-of-many-leds-built-for-burning-man/">the motorcycle helmet of many blinking colors</a>). Since they use SPI for communications it&#8217;s possible to chain the chips with a minimum of connections. [Will] designed his board to have a male header on one side and a female socket on the other. Not only does it make aligning and connecting each block simple, but it allows you to change your mind at any time about  which microcontroller to use to command them. For his first set of tests he plugged the male header into a breadboard and drove it with an Arduino. We hope to hear back from him with an update when gets the final device assembled in time for the big day.</p>
281
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
282
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/arduino-hacks/" title="View all posts in arduino hacks" rel="category tag">arduino hacks</a>, <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/matrix/" rel="tag">matrix</a>, <a href="http://hackaday.com/tag/max7219/" rel="tag">MAX7219</a>, <a href="http://hackaday.com/tag/module/" rel="tag">module</a></span> </div>
283
+ </div><!-- end .postclass -->
284
+ <div class="post-96266 post type-post status-publish format-standard hentry category-wireless-hacks tag-2-4-ghz tag-dspic tag-dspic33 tag-mrf24j40ma">
285
+
286
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/18/wireless-base-station-eavesdrops-on-robot-communications/" title="Wireless base station eavesdrops on robot&nbsp;communications" rel="bookmark">Wireless base station eavesdrops on robot&nbsp;communications</a></h2>
287
+
288
+ <div class="post-info"><span class="date published time" title="2013-03-18T10:01:22+00:00">March 18, 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/18/wireless-base-station-eavesdrops-on-robot-communications/#comments">6 Comments</a></span> </div> <div class="entry-content">
289
+ <p><img class="aligncenter size-full wp-image-96267" alt="wireless-base-station-evesdrops-on-robot-communications" src="http://hackadaycom.files.wordpress.com/2013/03/wireless-base-station-evesdrops-on-robot-communications.jpg?w=500&#038;h=225" width="500" height="225" /></p>
290
+ <p>The good [Doctor Iguana] has been working on a pair of robots which communicate with each other using mRF24J40MA wireless transceivers. This presents a challenge in debugging, as he really didn&#8217;t have an easy way of monitoring those communications. His solution was to <a href="http://www.dr-iguana.com/prj_fitzy_and_carraldo/prj_fitzy_and_carraldo_basestation_alpha/index.html">build his own base station</a> which lets him use a computer to monitor what each robot is saying.</p>
291
+ <p>He spun his own board for the project. USB connectivity is provided by an FTDI chip, the FT232RL. This converts the USB communications in to serial for the dsPIC33 microcontroller. The FTDI chip comes with a fairly fine-pitch, but the footprint can still be fabricated using toner transfer if you&#8217;re fairly familiar with the process. [Dr. Iguana] took some close-up images of the unpopulated board which might make you a little nervous with the soldering iron. The other end of the board hosts the same Microchip wireless module as he used in his robots.</p>
292
+ <p>After a bit of rework (noted on the photo labels) he got this up and running. Now he can capture all of the wireless communications and see if problems are due to the sender or the receiver.</p>
293
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
294
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/wireless-hacks/" title="View all posts in wireless hacks" rel="category tag">wireless hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/2-4-ghz/" rel="tag">2.4 ghz</a>, <a href="http://hackaday.com/tag/dspic/" rel="tag">dsPic</a>, <a href="http://hackaday.com/tag/dspic33/" rel="tag">dspic33</a>, <a href="http://hackaday.com/tag/mrf24j40ma/" rel="tag">mRF24J40MA</a></span> </div>
295
+ </div><!-- end .postclass -->
296
+ <div class="post-96262 post type-post status-publish format-standard hentry category-news tag-gtx690 tag-nvidia tag-quadro-k5000 tag-resistor">
297
+
298
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/18/hack-removes-firmware-crippling-from-nvidia-graphics-card/" title="Hack removes firmware crippling from NVIDIA graphics&nbsp;card" rel="bookmark">Hack removes firmware crippling from NVIDIA graphics&nbsp;card</a></h2>
299
+
300
+ <div class="post-info"><span class="date published time" title="2013-03-18T08:01:14+00:00">March 18, 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/18/hack-removes-firmware-crippling-from-nvidia-graphics-card/#comments">122 Comments</a></span> </div> <div class="entry-content">
301
+ <p><img class="aligncenter size-full wp-image-96263" alt="remove-nvidia-firmware-crippling" src="http://hackadaycom.files.wordpress.com/2013/03/remove-nvidia-firmware-crippling.jpg?w=384&#038;h=375" width="384" height="375" /></p>
302
+ <p>If hardware manufacturers want to keep their firmware crippling a secret, perhaps they shouldn&#8217;t mess with Linux users? We figure if you&#8217;re using Linux you&#8217;re quite a bit more likely than the average Windows user to crack something open and see what&#8217;s hidden inside. And so we get to the story of how [Gnif] figured out that <a href="http://www.eevblog.com/forum/projects/hacking-nvidia-cards-into-their-professional-counterparts/">the NVIDIA GTX690 can be hacked to perform like the Quadro K5000</a>. The thing is, the latter costs nearly $800 more than the former!</p>
303
+ <p>[Gnif] wanted the card for gaming and to support multiple monitors. It has no problem driving up to three screens under Windows. But the Linux drivers only allow this on the professional counterpart to the GTX690, the Quadro K5000. It turns out that the card responds to a device ID as assigned by a series of analog values. These can be tweaked by swapping, yanking, or adding resistors in just the right places. As with <a href="http://hackaday.com/2013/03/14/eeprom-hack-unlocks-crippled-features-in-agilent-multimeter-and-lcr-meter/">that Agilent multimeter unlock of his</a> which we saw a few days ago, he somehow managed to figure out the secret sauce that unlocks the power hidden in this card.</p>
304
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
305
+ <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/gtx690/" rel="tag">gtx690</a>, <a href="http://hackaday.com/tag/nvidia/" rel="tag">NVIDIA</a>, <a href="http://hackaday.com/tag/quadro-k5000/" rel="tag">quadro k5000</a>, <a href="http://hackaday.com/tag/resistor/" rel="tag">resistor</a></span> </div>
306
+ </div><!-- end .postclass -->
307
+ <div class="navigation"><div class="alignleft"><a href="http://hackaday.com/page/30/" >&laquo; Older Posts</a></div><div class="alignright"><a href="http://hackaday.com/page/28/" >Newer Posts &raquo;</a></div></div><!-- end .navigation --> </div><!-- end #content -->
308
+ <div id="sidebar" class="sidebar widget-area">
309
+ <div id=tl_ad>
310
+ <script type="text/javascript"><!--
311
+ google_ad_client = "ca-pub-1812638130783065";
312
+ /* Hackaday, 300x250, created 4/26/08, MedRect sidebar */
313
+ google_ad_slot = "7800245928";
314
+ google_ad_width = 300;
315
+ google_ad_height = 250;
316
+ //-->
317
+ </script>
318
+ <script type="text/javascript"
319
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
320
+ </script>
321
+
322
+ </div>
323
+
324
+
325
+
326
+
327
+
328
+
329
+ <div class="widget">
330
+ <h4>Never Miss a Hack</h4>
331
+ <div class="textwidget">
332
+
333
+ <!-- Place this tag where you want the badge to render. -->
334
+ <div class="g-plus" data-width= "280" data-href="https://plus.google.com/114843073658390316652" data-rel="publisher" data-theme="dark"></div>
335
+ <!-- Place this tag after the last badge tag. -->
336
+ <script type="text/javascript">
337
+ (function() {
338
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
339
+ po.src = 'https://apis.google.com/js/plusone.js';
340
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
341
+ })();
342
+ </script>
343
+
344
+ <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>
345
+
346
+ <a href="https://twitter.com/hackaday" class="twitter-follow-button" data-show-count="true" data-lang="en" data-size="large">Follow @twitter</a>
347
+ <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>
348
+
349
+ <a href="http://feeds2.feedburner.com/hackaday/LgoM" target="_blank"><img src="http://hackadaycom.files.wordpress.com/2012/11/orange.png" border="0"/></a>
350
+ <div class="clear"> </div>
351
+ <!-- Begin MailChimp Signup Form -->
352
+ <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
353
+
354
+ <div id="mc_embed_signup">
355
+ <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>
356
+ <label for="mce-EMAIL">Subscribe to our mailing list for sneak previews and behind the scenes info</label>
357
+ <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
358
+ <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
359
+ </form>
360
+ </div>
361
+
362
+ <!--End mc_embed_signup-->
363
+ </div>
364
+ </div>
365
+
366
+ <div id="categories-2" class="widget widget_categories"><div class="widget-wrap"><h4 class="widgettitle">Categories</h4>
367
+ <select name='cat' id='cat' class='postform' >
368
+ <option value='-1'>Select Category</option>
369
+ <option class="level-0" value="114554125">3d Printer hacks&nbsp;&nbsp;(116)</option>
370
+ <option class="level-0" value="18020710">android hacks&nbsp;&nbsp;(240)</option>
371
+ <option class="level-0" value="18020705">arduino hacks&nbsp;&nbsp;(1029)</option>
372
+ <option class="level-0" value="27981650">ARM&nbsp;&nbsp;(51)</option>
373
+ <option class="level-0" value="33199679">Ask Hackaday&nbsp;&nbsp;(29)</option>
374
+ <option class="level-0" value="64298109">ATtiny hacks&nbsp;&nbsp;(45)</option>
375
+ <option class="level-0" value="25122024">beer hacks&nbsp;&nbsp;(63)</option>
376
+ <option class="level-0" value="12115263">blackberry hacks&nbsp;&nbsp;(8)</option>
377
+ <option class="level-0" value="10969031">cellphones hacks&nbsp;&nbsp;(337)</option>
378
+ <option class="level-0" value="35745764">chemistry hacks&nbsp;&nbsp;(102)</option>
379
+ <option class="level-0" value="24483654">classic hacks&nbsp;&nbsp;(852)</option>
380
+ <option class="level-0" value="31677810">clock hacks&nbsp;&nbsp;(189)</option>
381
+ <option class="level-0" value="18755632">cnc hacks&nbsp;&nbsp;(341)</option>
382
+ <option class="level-0" value="568165">computer hacks&nbsp;&nbsp;(390)</option>
383
+ <option class="level-0" value="78428">cons&nbsp;&nbsp;(192)</option>
384
+ <option class="level-0" value="5738">contests&nbsp;&nbsp;(136)</option>
385
+ <option class="level-0" value="3923181">cooking hacks&nbsp;&nbsp;(72)</option>
386
+ <option class="level-0" value="10969032">digital audio hacks&nbsp;&nbsp;(422)</option>
387
+ <option class="level-0" value="10969033">digital cameras hacks&nbsp;&nbsp;(415)</option>
388
+ <option class="level-0" value="10969034">downloads hacks&nbsp;&nbsp;(101)</option>
389
+ <option class="level-0" value="107827385">drone hacks&nbsp;&nbsp;(10)</option>
390
+ <option class="level-0" value="63176382">Engine Hacks&nbsp;&nbsp;(31)</option>
391
+ <option class="level-0" value="35890">Featured&nbsp;&nbsp;(72)</option>
392
+ <option class="level-0" value="551890">firefox hacks&nbsp;&nbsp;(23)</option>
393
+ <option class="level-0" value="53446541">FPGA&nbsp;&nbsp;(1)</option>
394
+ <option class="level-0" value="18020562">g1 hacks&nbsp;&nbsp;(26)</option>
395
+ <option class="level-0" value="320557">google hacks&nbsp;&nbsp;(44)</option>
396
+ <option class="level-0" value="10969036">gps hacks&nbsp;&nbsp;(108)</option>
397
+ <option class="level-0" value="24535490">green hacks&nbsp;&nbsp;(152)</option>
398
+ <option class="level-0" value="27311668">Hackaday links&nbsp;&nbsp;(146)</option>
399
+ <option class="level-0" value="21755374">Hackerspaces&nbsp;&nbsp;(93)</option>
400
+ <option class="level-0" value="6310599">HackIt&nbsp;&nbsp;(101)</option>
401
+ <option class="level-0" value="10969037">handhelds hacks&nbsp;&nbsp;(189)</option>
402
+ <option class="level-0" value="79">hardware&nbsp;&nbsp;(249)</option>
403
+ <option class="level-0" value="144422905">High Voltage Hacks&nbsp;&nbsp;(5)</option>
404
+ <option class="level-0" value="66307084">Holiday Hacks&nbsp;&nbsp;(93)</option>
405
+ <option class="level-0" value="10969038">home entertainment hacks&nbsp;&nbsp;(516)</option>
406
+ <option class="level-0" value="5660882">home hacks&nbsp;&nbsp;(705)</option>
407
+ <option class="level-0" value="2708">how-to&nbsp;&nbsp;(135)</option>
408
+ <option class="level-0" value="908478">internet hacks&nbsp;&nbsp;(2)</option>
409
+ <option class="level-0" value="831">Interviews&nbsp;&nbsp;(13)</option>
410
+ <option class="level-0" value="1416772">iphone hacks&nbsp;&nbsp;(176)</option>
411
+ <option class="level-0" value="1275163">ipod hacks&nbsp;&nbsp;(144)</option>
412
+ <option class="level-0" value="344761">kickstarter&nbsp;&nbsp;(29)</option>
413
+ <option class="level-0" value="4157506">Kindle hacks&nbsp;&nbsp;(15)</option>
414
+ <option class="level-0" value="46717088">Kinect hacks&nbsp;&nbsp;(81)</option>
415
+ <option class="level-0" value="10969048">laptops hacks&nbsp;&nbsp;(111)</option>
416
+ <option class="level-0" value="10969055">laser hacks&nbsp;&nbsp;(167)</option>
417
+ <option class="level-0" value="18020716">led hacks&nbsp;&nbsp;(695)</option>
418
+ <option class="level-0" value="10626">lifehacks&nbsp;&nbsp;(54)</option>
419
+ <option class="level-0" value="729674">linux hacks&nbsp;&nbsp;(129)</option>
420
+ <option class="level-0" value="20732807">lockpicking hacks&nbsp;&nbsp;(11)</option>
421
+ <option class="level-0" value="10969060">macs hacks&nbsp;&nbsp;(135)</option>
422
+ <option class="level-0" value="144395979">Marijuana Hacks&nbsp;&nbsp;(2)</option>
423
+ <option class="level-0" value="11284667">Medical hacks&nbsp;&nbsp;(102)</option>
424
+ <option class="level-0" value="139916">Microcontrollers&nbsp;&nbsp;(512)</option>
425
+ <option class="level-0" value="5611793">misc hacks&nbsp;&nbsp;(1747)</option>
426
+ <option class="level-0" value="18020730">multitouch hacks&nbsp;&nbsp;(89)</option>
427
+ <option class="level-0" value="22652725">musical hacks&nbsp;&nbsp;(290)</option>
428
+ <option class="level-0" value="18020722">netbook hacks&nbsp;&nbsp;(50)</option>
429
+ <option class="level-0" value="6166512">Network Hacks&nbsp;&nbsp;(4)</option>
430
+ <option class="level-0" value="103">news&nbsp;&nbsp;(1091)</option>
431
+ <option class="level-0" value="1861880">nintendo ds hacks&nbsp;&nbsp;(34)</option>
432
+ <option class="level-0" value="114555425">nintendo gameboy hacks&nbsp;&nbsp;(90)</option>
433
+ <option class="level-0" value="18020685">nintendo hacks&nbsp;&nbsp;(261)</option>
434
+ <option class="level-0" value="4992726">nintendo wii hacks&nbsp;&nbsp;(78)</option>
435
+ <option class="level-0" value="118011206">Nook Hacks&nbsp;&nbsp;(1)</option>
436
+ <option class="level-0" value="114556430">palm pre hacks&nbsp;&nbsp;(6)</option>
437
+ <option class="level-0" value="245123">parts&nbsp;&nbsp;(72)</option>
438
+ <option class="level-0" value="10969081">peripherals hacks&nbsp;&nbsp;(648)</option>
439
+ <option class="level-0" value="16325149">phone hacks&nbsp;&nbsp;(17)</option>
440
+ <option class="level-0" value="10969088">playstation hacks&nbsp;&nbsp;(120)</option>
441
+ <option class="level-0" value="2060">podcasts&nbsp;&nbsp;(8)</option>
442
+ <option class="level-0" value="10969096">portable audio hacks&nbsp;&nbsp;(66)</option>
443
+ <option class="level-0" value="10969099">portable video hacks&nbsp;&nbsp;(57)</option>
444
+ <option class="level-0" value="588444">psp hacks&nbsp;&nbsp;(47)</option>
445
+ <option class="level-0" value="23971578">radio hacks&nbsp;&nbsp;(137)</option>
446
+ <option class="level-0" value="47">rants&nbsp;&nbsp;(28)</option>
447
+ <option class="level-0" value="69218551">Raspberry Pi&nbsp;&nbsp;(153)</option>
448
+ <option class="level-0" value="21870780">repair hacks&nbsp;&nbsp;(101)</option>
449
+ <option class="level-0" value="309">reviews&nbsp;&nbsp;(19)</option>
450
+ <option class="level-0" value="10969101">robots hacks&nbsp;&nbsp;(874)</option>
451
+ <option class="level-0" value="30302">roundup&nbsp;&nbsp;(35)</option>
452
+ <option class="level-0" value="10969111">security hacks&nbsp;&nbsp;(460)</option>
453
+ <option class="level-0" value="2301">Software Development&nbsp;&nbsp;(91)</option>
454
+ <option class="level-0" value="3796421">software hacks&nbsp;&nbsp;(47)</option>
455
+ <option class="level-0" value="10969116">solar hacks&nbsp;&nbsp;(46)</option>
456
+ <option class="level-0" value="10969121">tablet pcs hacks&nbsp;&nbsp;(40)</option>
457
+ <option class="level-0" value="3075183">teardown&nbsp;&nbsp;(31)</option>
458
+ <option class="level-0" value="10969130">tool hacks&nbsp;&nbsp;(657)</option>
459
+ <option class="level-0" value="25277004">toy hacks&nbsp;&nbsp;(360)</option>
460
+ <option class="level-0" value="10969134">transportation hacks&nbsp;&nbsp;(472)</option>
461
+ <option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(332)</option>
462
+ <option class="level-0" value="3184456">video hacks&nbsp;&nbsp;(211)</option>
463
+ <option class="level-0" value="34942364">Virtual Reality&nbsp;&nbsp;(9)</option>
464
+ <option class="level-0" value="50802420">weapons hacks&nbsp;&nbsp;(63)</option>
465
+ <option class="level-0" value="12552193">wearable hacks&nbsp;&nbsp;(183)</option>
466
+ <option class="level-0" value="39510952">Weekly roundup&nbsp;&nbsp;(18)</option>
467
+ <option class="level-0" value="4891215">wireless hacks&nbsp;&nbsp;(333)</option>
468
+ <option class="level-0" value="7079455">xbox hacks&nbsp;&nbsp;(130)</option>
469
+ </select>
470
+
471
+ <script type='text/javascript'>
472
+ /* <![CDATA[ */
473
+ var dropdown = document.getElementById("cat");
474
+ function onCatChange() {
475
+ if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
476
+ location.href = "http://hackaday.com/?cat="+dropdown.options[dropdown.selectedIndex].value;
477
+ }
478
+ }
479
+ dropdown.onchange = onCatChange;
480
+ /* ]]> */
481
+ </script>
482
+
483
+ </div></div>
484
+ <div id="featured-post-2" class="widget featuredpost"><div class="widget-wrap"><h4 class="widgettitle">In case you missed it</h4>
485
+ <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()-->
486
+
487
+ <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()-->
488
+
489
+ <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()-->
490
+
491
+ <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()-->
492
+
493
+ <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()-->
494
+
495
+ <p class="more-from-category"><a href="http://hackaday.com/category/featured/" title="Featured">More Posts from this Category</a></p></div></div>
496
+ <div id="recent-comments-2" class="widget widget_recent_comments"><div class="widget-wrap"><h4 class="widgettitle">Recent comments</h4>
497
+ <ul id="recentcomments">
498
+ <li class="recentcomments">
499
+ 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>
500
+ <li class="recentcomments">
501
+ <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>
502
+ <li class="recentcomments">
503
+ 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>
504
+ <li class="recentcomments">
505
+ 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>
506
+ <li class="recentcomments">
507
+ 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>
508
+ <li class="recentcomments">
509
+ 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>
510
+ <li class="recentcomments">
511
+ 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>
512
+ <li class="recentcomments">
513
+ <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>
514
+ <li class="recentcomments">
515
+ <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>
516
+ <li class="recentcomments">
517
+ 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>
518
+ </ul>
519
+ </div></div>
520
+ <div id="calendar-2" class="widget widget_calendar"><div class="widget-wrap"><h4 class="widgettitle">Find Hacks by Date</h4>
521
+ <div id="calendar_wrap"><table id="wp-calendar">
522
+ <caption>April 2013</caption>
523
+ <thead>
524
+ <tr>
525
+ <th scope="col" title="Sunday">S</th>
526
+ <th scope="col" title="Monday">M</th>
527
+ <th scope="col" title="Tuesday">T</th>
528
+ <th scope="col" title="Wednesday">W</th>
529
+ <th scope="col" title="Thursday">T</th>
530
+ <th scope="col" title="Friday">F</th>
531
+ <th scope="col" title="Saturday">S</th>
532
+ </tr>
533
+ </thead>
534
+
535
+ <tfoot>
536
+ <tr>
537
+ <td colspan="3" id="prev"><a href="http://hackaday.com/2013/03/" title="View posts for March 2013">&laquo; Mar</a></td>
538
+ <td class="pad">&nbsp;</td>
539
+ <td colspan="3" id="next" class="pad">&nbsp;</td>
540
+ </tr>
541
+ </tfoot>
542
+
543
+ <tbody>
544
+ <tr>
545
+ <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>
546
+ </tr>
547
+ <tr>
548
+ <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>
549
+ </tr>
550
+ <tr>
551
+ <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>
552
+ </tr>
553
+ <tr>
554
+ <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>
555
+ </tr>
556
+ <tr>
557
+ <td>28</td><td>29</td><td>30</td>
558
+ <td class="pad" colspan="4">&nbsp;</td>
559
+ </tr>
560
+ </tbody>
561
+ </table></div></div></div>
562
+ <div id=virurl>
563
+ <!-- BEGIN - VIRURL Widget - iFrame Embed Code -->
564
+ <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"
565
+ width="300" height="600" scrolling="no" >
566
+ </iframe>
567
+ <!-- END - VIRURL Widget - iFrame Embed Code -->
568
+ </div>
569
+ <br />
570
+ <br />
571
+ <div id=tl_ad_bottom>
572
+ <script type="text/javascript"><!--
573
+ google_ad_client = "ca-pub-1812638130783065";
574
+ /* Hackaday sidebar wide skyscraper */
575
+ google_ad_slot = "1587378096";
576
+ google_ad_width = 160;
577
+ google_ad_height = 600;
578
+ google_ad_region = "test";
579
+ //-->
580
+ </script>
581
+ <script type="text/javascript"
582
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
583
+ </script>
584
+ </div>
585
+
586
+
587
+ <br />
588
+
589
+
590
+
591
+
592
+
593
+
594
+ </div> </div><!-- end #content-sidebar-wrap -->
595
+ </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 -->
596
+ <script type="text/javascript">
597
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
598
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
599
+ </script>
600
+ <script type="text/javascript">
601
+ var pageTracker = _gat._getTracker("UA-2201445-6");
602
+ pageTracker._trackPageview();
603
+ </script>
604
+ <!-- Start Quantcast tag -->
605
+ <script type="text/javascript">
606
+ _qoptions={
607
+ qacct:"p-cc6zkdHuZwUDM"
608
+ };
609
+ </script>
610
+ <script type="text/javascript"
611
+ src="http://edge.quantserve.com/quant.js"></script>
612
+ <noscript>
613
+ <img src="http://pixel.quantserve.com/pixel/p-cc6zkdHuZwUDM.gif"
614
+ style="display: none;" border="0" height="1" width="1"
615
+ alt="Quantcast"/>
616
+ </noscript></div><!-- end #wrap -->
617
+
618
+ <script type="text/javascript">
619
+ var _qevents = _qevents || [], wpcomQuantcastData = {"qacct":"p-18-mFEk4J448M","labels":",language.en,type.wpcom,vip.hackadaycom"};
620
+ function wpcomQuantcastPixel( labels, options ) {
621
+ var i, defaults = wpcomQuantcastData, data = { event: 'ajax' };
622
+
623
+ labels = labels || '';
624
+ options = options || {};
625
+
626
+ if ( typeof labels != 'string' )
627
+ options = labels;
628
+
629
+ for ( i in defaults ) {
630
+ data[i] = defaults[i];
631
+ }
632
+
633
+ for ( i in options ) {
634
+ data[i] = options[i];
635
+ }
636
+
637
+ if ( data.labels ) {
638
+ data.labels += ',' + labels;
639
+ } else {
640
+ data.labels = labels;
641
+ }
642
+
643
+ _qevents.push( data );
644
+ };
645
+ (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); })();
646
+ _qevents.push( wpcomQuantcastData );
647
+ </script>
648
+ <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>
649
+
650
+
651
+ <!-- /// LOAD CHARTBEAT /// -->
652
+ <script type="text/javascript">
653
+ var _sf_async_config={};
654
+ _sf_async_config.uid = 2021;
655
+ _sf_async_config.useCanonical = true;
656
+
657
+ (function(){
658
+ function loadChartbeat() {
659
+ window._sf_endpt=(new Date()).getTime();
660
+ var e = document.createElement('script');
661
+ e.setAttribute('language', 'javascript');
662
+ e.setAttribute('type', 'text/javascript');
663
+ e.setAttribute('src',
664
+ (("https:" == document.location.protocol) ? "https://s3.amazonaws.com/" : "http://") +
665
+ "static.chartbeat.com/js/chartbeat.js");
666
+ document.body.appendChild(e);
667
+ }
668
+ var oldonload = window.onload;
669
+ window.onload = (typeof window.onload != 'function') ?
670
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
671
+ })();
672
+ </script>
673
+ <div style="display:none">
674
+ </div>
675
+ <script type='text/javascript' src='http://s2.wp.com/_static/??-eJylzMsOREAQRuEXMoqgEwvxLC4/qjPVOl3dZh4fO3vrk+/Qz3+m3UW4SFZpxsET/D+3mtEjxQ0CJR8gnIRWOCgrfXm8lcAl0uQRFtbtlR3Cqtegl66smto0xhStPQEw5Dy+'></script>
676
+ <script type="text/javascript">
677
+ // <![CDATA[
678
+ (function() {
679
+ try{
680
+ if ( window.external &&'msIsSiteMode' in window.external) {
681
+ if (window.external.msIsSiteMode()) {
682
+ var jl = document.createElement('script');
683
+ jl.type='text/javascript';
684
+ jl.async=true;
685
+ jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
686
+ var s = document.getElementsByTagName('script')[0];
687
+ s.parentNode.insertBefore(jl, s);
688
+ }
689
+ }
690
+ }catch(e){}
691
+ })();
692
+ // ]]>
693
+ </script><script src="http://s.stats.wordpress.com/w.js?21" type="text/javascript"></script>
694
+ <script type="text/javascript">
695
+ st_go({'blog':'4779443','v':'wpcom','tz':'-7','user_id':'0','subd':'hackadaycom'});
696
+ 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();}
697
+ ex_go({'crypt':'UE40eW5QN0p8M2Y/RE1BNmNJfGhxNCVxUDExYmtXRThKbHcwXTdETWI1alhvb1oseHImN101ZFpEakVpYjlQYVFLYzBaVHRtPz0wXS9bVlFpZ3c1Qn5KSThLNS9lSHNGOE1IJk9+N3xFNWxyT2x+MUpnR1dJcFYrczNsTHhsUXRJRVQtMnNkXUEycFlifix8SFZGMEJQVVolRCVpVjU2fEkyNW54L3Q5ZTFNRnEmbjczPWQ4M0pjUEolWjV6ZEJmRlgzekolL3k3S2twYldTRkRhbXxLMFVjNmZsYy1vMTBoZ21GNy92R0RbTWpEcG1SbnAlQ1pRUVcsZ25lPQ=='});
698
+ addLoadEvent(function(){linktracker_init('4779443',0);});
699
+ </script>
700
+ <noscript><img src="http://stats.wordpress.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
701
+ <script type="text/javascript">
702
+ // Trigger Quantcast pixel for each Infinite Scroll post load
703
+ if ( 'function' === typeof( jQuery ) ) {
704
+ jQuery( document.body ).on( 'post-load', function() {
705
+ if ( 'function' === typeof( wpcomQuantcastPixel ) )
706
+ wpcomQuantcastPixel();
707
+ } );
708
+ }
709
+ </script>
710
+ </body>
711
+ </html>