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,717 @@
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 in 0.374 seconds
5
+ 66659 bytes batcached for 300 seconds
6
+ -->
7
+ <head profile="http://gmpg.org/xfn/11">
8
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
9
+ <title>Hack a Day — Fresh hacks every day</title>
10
+ <meta name="description" content="Fresh hacks every day" />
11
+ <meta name="robots" content="noodp,noydir" />
12
+ <link rel="Shortcut Icon" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/images/favicon.ico?m=1353160633g" type="image/x-icon" />
13
+ <link rel="stylesheet" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/style.css?m=1363789849g" type="text/css" media="screen" />
14
+
15
+ <meta name="description" content="Fresh hacks every day" />
16
+ <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" />
17
+ <script src='http://r-login.wordpress.com/remote-login.php?action=js&amp;host=hackaday.com&amp;id=4779443&amp;t=1366801145&amp;back=hackaday.com%2Fpage%2F24%2F' type="text/javascript"></script>
18
+ <script type="text/javascript">
19
+ /* <![CDATA[ */
20
+ if ( 'function' === typeof WPRemoteLogin ) {
21
+ document.cookie = "wordpress_test_cookie=test; path=/";
22
+ if ( document.cookie.match( /(;|^)\s*wordpress_test_cookie\=/ ) ) {
23
+ WPRemoteLogin();
24
+ }
25
+ }
26
+ /* ]]> */
27
+ </script>
28
+ <link rel="alternate" type="application/rss+xml" title="Hack a Day &raquo; Feed" href="http://feeds2.feedburner.com/hackaday/LgoM" />
29
+ <link rel="alternate" type="application/rss+xml" title="Hack a Day &raquo; Comments Feed" href="http://hackaday.com/comments/feed/" />
30
+ <script type="text/javascript">
31
+ /* <![CDATA[ */
32
+ function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){oldonload();func();}}}
33
+ /* ]]> */
34
+ </script>
35
+ <link rel="canonical" href="http://hackaday.com/" />
36
+ <link rel='stylesheet' id='all-css-0' href='http://s0.wp.com/_static/??-eJzTLy/QTc7PK0nNK9HPLdUtyClNz8wr1s/JzE4t1s9KLSlITM7WBfP0kouLdfSxKy/ILy7RTctJzCzSLy6pzEklVm1GYlFmXjqMxtBVkpGaC3RGhol+ek5+UmIOSIF9rq2hsZmZuYmxqbFlFgANUUYu' type='text/css' media='all' />
37
+ <script type='text/javascript'>
38
+ /* <![CDATA[ */
39
+ var SafeCommentsAjax = {"ajaxurl":"http:\/\/hackaday.com\/wp-admin\/admin-ajax.php"};
40
+ /* ]]> */
41
+ </script>
42
+ <script type='text/javascript' src='http://s0.wp.com/_static/??-eJyFz0sKAjEMBuALWUsZpjvxLKXGmjp92KQz6umNogtRFAJZ5Et+opeqMPup74B0lDp1aJdnW0da6V9AJQzNMbygL5kh893VQpyAyIVv0/cYzDPC8pdF4Or8UTUgvH5c5QNInp6x6jr1gJk0uT2IrqWxsJSEPX5w0Z1lfZs2ZrB2NIOxY7wBpfljQw=='></script>
43
+ <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://hackadaycom.wordpress.com/xmlrpc.php?rsd" />
44
+ <link rel="shortcut icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" sizes="16x16" />
45
+ <link rel="icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" sizes="16x16" />
46
+ <link rel="apple-touch-icon-precomposed" href="http://1.gravatar.com/blavatar/5560f98f805877b0e332f191cb9e0af3?s=114" />
47
+ <link rel='openid.server' href='http://hackadaycom.wordpress.com/?openidserver=1' />
48
+ <link rel='openid.delegate' href='http://hackadaycom.wordpress.com/' />
49
+ <link rel="search" type="application/opensearchdescription+xml" href="http://hackaday.com/osd.xml" title="Hack a Day" />
50
+ <link rel="search" type="application/opensearchdescription+xml" href="http://wordpress.com/opensearch.xml" title="WordPress.com" />
51
+ <style>
52
+ /* <![CDATA[ */
53
+ /* Block: reblog */
54
+
55
+ .reblog-from img { margin: 0 10px 0 0; vertical-align: middle; padding: 0; border: 0; }
56
+ .reblogger-note img.avatar { float: left; padding: 0; border: 0; }
57
+ .reblogger-note-content { margin: 0 0 20px; }
58
+ .reblog-post .wpcom-enhanced-excerpt-content { border-left: 3px solid #eee; padding-left: 15px; }
59
+ .reblog-post ul.thumb-list { display: block; list-style: none; margin: 2px 0; padding: 0; clear: both; }
60
+ .reblog-post ul.thumb-list li { display: inline; margin: 0; padding: 0 1px; border: 0; }
61
+ .reblog-post ul.thumb-list li a { margin: 0; padding: 0; border: 0; }
62
+ .reblog-post ul.thumb-list li img { margin: 0; padding: 0; border: 0; }
63
+
64
+ .reblog-post .wpcom-enhanced-excerpt { clear: both; }
65
+
66
+ .reblog-post .wpcom-enhanced-excerpt address,
67
+ .reblog-post .wpcom-enhanced-excerpt li,
68
+ .reblog-post .wpcom-enhanced-excerpt h1,
69
+ .reblog-post .wpcom-enhanced-excerpt h2,
70
+ .reblog-post .wpcom-enhanced-excerpt h3,
71
+ .reblog-post .wpcom-enhanced-excerpt h4,
72
+ .reblog-post .wpcom-enhanced-excerpt h5,
73
+ .reblog-post .wpcom-enhanced-excerpt h6,
74
+ .reblog-post .wpcom-enhanced-excerpt p { font-size: 100% !important; }
75
+
76
+ .reblog-post .wpcom-enhanced-excerpt blockquote,
77
+ .reblog-post .wpcom-enhanced-excerpt pre,
78
+ .reblog-post .wpcom-enhanced-excerpt code,
79
+ .reblog-post .wpcom-enhanced-excerpt q { font-size: 98% !important; }
80
+
81
+
82
+ /* ]]> */
83
+ </style>
84
+
85
+ <script type="text/javascript">var _sf_startpt=(new Date()).getTime()</script>
86
+ <style>
87
+ .wpcom-related-posts ul li {
88
+ list-style-type: none;
89
+ display: inline-block;
90
+ }
91
+ </style>
92
+ <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
93
+ <style type="text/css">
94
+ .recentcomments a {
95
+ display: inline !important;
96
+ padding: 0 !important;
97
+ margin: 0 !important;
98
+ }
99
+
100
+ table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar {
101
+ border: 0px;
102
+ margin: 0;
103
+ }
104
+
105
+ table.recentcommentsavatartop a, table.recentcommentsavatarend a {
106
+ border: 0px !important;
107
+ background-color: transparent !important;
108
+ }
109
+
110
+ td.recentcommentsavatarend, td.recentcommentsavatartop {
111
+ padding: 0px 0px 1px 0px;
112
+ margin: 0px;
113
+ }
114
+
115
+ td.recentcommentstextend {
116
+ border: none !important;
117
+ padding: 0px 0px 2px 10px;
118
+ }
119
+
120
+ .rtl td.recentcommentstextend {
121
+ padding: 0px 10px 2px 0px;
122
+ }
123
+
124
+ td.recentcommentstexttop {
125
+ border: none !important;
126
+ padding: 0px 0px 0px 10px;
127
+ }
128
+
129
+ .rtl td.recentcommentstexttop {
130
+ padding: 0px 10px 0px 0px;
131
+ }
132
+ </style>
133
+ <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>
134
+
135
+ <script>jQuery(document).ready(function($) {
136
+ $("cswap li a").click(function() {
137
+ $("link").attr("href",$(this).attr('rel'));
138
+ return false;
139
+ });
140
+ });</script>
141
+ <meta name="google-site-verification" content="v0_F4q2HixEv6wrQCEKBEbp2Wuj0oI9ywwaN6aoV0JE" />
142
+ </head>
143
+ <body class="home blog paged paged-24 typekit-enabled header-image content-sidebar highlander-enabled highlander-light">
144
+
145
+ <div id="fb-root"></div>
146
+ <script>(function(d, s, id) {
147
+ var js, fjs = d.getElementsByTagName(s)[0];
148
+ if (d.getElementById(id)) return;
149
+ js = d.createElement(s); js.id = id;
150
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
151
+ fjs.parentNode.insertBefore(js, fjs);
152
+ }(document, 'script', 'facebook-jssdk'));</script>
153
+ <div id="wrap">
154
+ <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">
155
+ <script type="text/javascript"><!--
156
+ google_ad_client = "ca-pub-1812638130783065";
157
+ /* Hackaday, 728x90, created 4/26/08, Leaderboard */
158
+ google_ad_slot = "4036713767";
159
+ google_ad_width = 728;
160
+ google_ad_height = 90;
161
+ //-->
162
+ </script>
163
+ <script type="text/javascript"
164
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
165
+ </script>
166
+ </div>
167
+ <div id="adslice">
168
+
169
+ <script type="text/javascript"><!--
170
+ google_ad_client = "pub-1812638130783065";
171
+ /* Hackaday, 728x15, created 4/26/08, AdSlice */
172
+ google_ad_slot = "0246324944";
173
+ google_ad_width = 728;
174
+ google_ad_height = 15;
175
+ //-->
176
+ </script>
177
+
178
+ <script type="text/javascript"
179
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
180
+ </script>
181
+
182
+ </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>
183
+ <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>
184
+ <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>
185
+ <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>
186
+ <li class="right search">
187
+ <form method="get" class="searchform" action="http://hackaday.com/" >
188
+
189
+ <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;';}" />
190
+ <input type="submit" class="searchsubmit" value="Search" />
191
+ </form>
192
+ </li></ul></div><!-- end .wrap --></div><div id="inner"><div class="wrap"> <div id="content-sidebar-wrap">
193
+ <div id="content" class="hfeed">
194
+ <div class="post-96603 post type-post status-publish format-standard hentry category-security-hacks tag-html tag-javascript tag-redirect">
195
+
196
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/23/html-link-tag-hack-sends-you-to-the-wrong-place/" title="HTML link tag hack sends you to the wrong&nbsp;place" rel="bookmark">HTML link tag hack sends you to the wrong&nbsp;place</a></h2>
197
+
198
+ <div class="post-info"><span class="date published time" title="2013-03-23T08:01:59+00:00">March 23, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/23/html-link-tag-hack-sends-you-to-the-wrong-place/#comments">16 Comments</a></span> </div> <div class="entry-content">
199
+ <p><img class="aligncenter size-full wp-image-96604" alt="hacking-html-a-tag" src="http://hackadaycom.files.wordpress.com/2013/03/hacking-html-a-tag.png?w=580&#038;h=256" width="580" height="256" /></p>
200
+ <p>We consider ourselves fairly cautions Internet warriors. We know when to watch out for malicious links and tread lightly during those times. But this hack will still bite even the most cautions of link followers. It&#8217;s a <a href="http://bilaw.al/2013/03/17/hacking-the-a-tag-in-100-characters.html">hack that changes where a link is sending you <em><b>after</b></em><b> </b>you click on it</a>.</p>
201
+ <p>The concept is driven home right away by a link in the post which lists PayPal as the target when you hover over it with your mouse. Clicking on it will give you a warning that it could have been a malicious page you were redirected to. Of course the address line of the page shows that you were sent somewhere else, but it&#8217;s still an interesting issue. The hack is accomplished with just a few lines of JavaScript. In fact, the original example was 100 characters but a revision boils that down to just 67.</p>
202
+ <p>So who&#8217;s vulnerable to this kind of thing? It sounds like everyone that&#8217;s not using the Opera browser, which has been patched against the exploit. There are also some updates at the bottom of the post which mention that Firefox has been notified about it and Chrome is working on a patch.</p>
203
+ <p>[via <a href="http://www.reddit.com/r/programming/comments/1ao06m/hacking_the_a_tag_in_100_characters/">Reddit</a>]</p>
204
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
205
+ <div class="post-meta"><span class="categories">Filed Under: <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/html/" rel="tag">html</a>, <a href="http://hackaday.com/tag/javascript/" rel="tag">javascript</a>, <a href="http://hackaday.com/tag/redirect/" rel="tag">redirect</a></span> </div>
206
+ </div><!-- end .postclass -->
207
+ <div class="post-96609 post type-post status-publish format-standard hentry category-peripherals-hacks tag-cherry tag-g80-3000 tag-keyboard tag-numpad tag-usb">
208
+
209
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/23/hacking-the-right-side-of-a-keyboard-completely-off/" title="Hacking the right side of a keyboard completely&nbsp;off" rel="bookmark">Hacking the right side of a keyboard completely&nbsp;off</a></h2>
210
+
211
+ <div class="post-info"><span class="date published time" title="2013-03-23T06:01:04+00:00">March 23, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/23/hacking-the-right-side-of-a-keyboard-completely-off/#comments">12 Comments</a></span> </div> <div class="entry-content">
212
+ <p><img class="aligncenter size-large wp-image-96610" alt="hacking-the-right-side-of-your-keyboard" src="http://hackadaycom.files.wordpress.com/2013/03/hacking-the-right-side-of-your-keyboard.jpg?w=580&#038;h=386" width="580" height="386" /></p>
213
+ <p>The form factor of this keyboard just doesn&#8217;t look right. What&#8217;s missing? Oh, <a href="http://imgur.com/a/78WwF">the numpad has been completely removed</a>! We use our numpad almost exclusively (especially when coding) so it&#8217;s a little hard to figure out why [Ludw] did this. His only mention of motive is that he wanted the mouse closer to the main part of the keyboard and that he didn&#8217;t use the numpad. No matter what the reason, we still think he did an amazing job of giving new life to the older keyboard.</p>
214
+ <p>It started out as a plain old beige Cherry G80-3000 keyboard. After cracking open the case [Ludw] carefully traced out the connections between the key matrix and the PCB which provides the USB connection. This is because the controller is mounted over on the part of the PCB he his about to remove. Before making the cuts he desoldered all seventeen switches (these can be reused to <a href="http://hackaday.com/2011/05/21/bamf2011-keyboards-built-from-scratch/">fabricate a new keyboard</a>, or <a href="http://hackaday.com/2013/01/14/kitchen-scale-key-transplant/">add switches to various projects</a>). He then lopped off the depopulated substrate and used point-to-point soldering to reconnect the controller. A bit of case alteration removed the extra space while also reusing the nicely molded edges. A clean and tidy paint job finishes the hack.</p>
215
+ <p>[via <a href="http://www.reddit.com/r/DIY/comments/1ar35m/i_modded_my_keyboard_removed_numpad_paintjob/">Reddit</a>]</p>
216
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
217
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/peripherals-hacks/" title="View all posts in peripherals hacks" rel="category tag">peripherals hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/cherry/" rel="tag">cherry</a>, <a href="http://hackaday.com/tag/g80-3000/" rel="tag">g80-3000</a>, <a href="http://hackaday.com/tag/keyboard/" rel="tag">keyboard</a>, <a href="http://hackaday.com/tag/numpad/" rel="tag">numpad</a>, <a href="http://hackaday.com/tag/usb/" rel="tag">usb</a></span> </div>
218
+ </div><!-- end .postclass -->
219
+ <div class="post-96598 post type-post status-publish format-standard hentry category-teardown tag-apple tag-asix tag-ax88772alf tag-bridge tag-ethernet tag-fake tag-knock-off tag-usb">
220
+
221
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/22/comparing-usb-to-ethernet-converters-apple-vs-knock-off/" title="Comparing USB to Ethernet converters: Apple vs.&nbsp;Knock-off" rel="bookmark">Comparing USB to Ethernet converters: Apple vs.&nbsp;Knock-off</a></h2>
222
+
223
+ <div class="post-info"><span class="date published time" title="2013-03-22T18:01:53+00:00">March 22, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/22/comparing-usb-to-ethernet-converters-apple-vs-knock-off/#comments">4 Comments</a></span> </div> <div class="entry-content">
224
+ <p><img class="aligncenter size-large wp-image-96599" alt="usb-ethernet-comparison" src="http://hackadaycom.files.wordpress.com/2013/03/usb-ethernet-comparison.png?w=580&#038;h=389" width="580" height="389" /></p>
225
+ <p>[Angus Gratton] recently <a href="http://projectgus.com/2013/03/anatomy-of-a-cheap-usb-ethernet-adapter/">cracked open a pair of USB to Ethernet converters</a> to see what&#8217;s inside. One was an Apple branded device, the other a no-name from eBay. The former rings in at $30, with the latter just $4. This type of comparison is one of our favorites. It&#8217;s especially interesting with Apple products as they are known for solid hardware choices and <a href="http://hackaday.com/2012/10/10/raspberry-pi-foundation-looks-a-counterfeit-apple-power-supplies/">the knock-offs are equally infamous for shoddy imitations</a>.</p>
226
+ <p>From the outside both devices look about the same. The internal differences start right away with a whole-board metal shield on the Apple dongle and none on the off-brand. But the hardware inside is actually quite similar. There&#8217;s an RJ-45 jack on the left, followed by the Ethernet isolation chip next to it. From there we start to see differences. The off-brand had a blank chip where Apple&#8217;s ASIX AX88772ALF USB to Ethernet bridge controller is located. There is also a difference with the clock; Apple is using two crystals with the other using just one.</p>
227
+ <p>[via <a href="http://www.reddit.com/r/electronics/comments/1an0bj/anatomy_of_a_cheap_usb_to_ethernet_adapter/">Reddit</a>]</p>
228
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
229
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/teardown/" title="View all posts in teardown" rel="category tag">teardown</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/apple/" rel="tag">apple</a>, <a href="http://hackaday.com/tag/asix/" rel="tag">asix</a>, <a href="http://hackaday.com/tag/ax88772alf/" rel="tag">ax88772alf</a>, <a href="http://hackaday.com/tag/bridge/" rel="tag">bridge</a>, <a href="http://hackaday.com/tag/ethernet/" rel="tag">ethernet</a>, <a href="http://hackaday.com/tag/fake/" rel="tag">fake</a>, <a href="http://hackaday.com/tag/knock-off/" rel="tag">knock-off</a>, <a href="http://hackaday.com/tag/usb/" rel="tag">usb</a></span> </div>
230
+ </div><!-- end .postclass -->
231
+ <div align="center">
232
+
233
+
234
+
235
+ <script type="text/javascript"><!--
236
+
237
+ google_ad_client = "ca-pub-1812638130783065";
238
+
239
+ /* Hackaday, 300x250, created 4/26/08, MedRect main column */
240
+
241
+ google_ad_slot = "3449215672";
242
+
243
+ google_ad_width = 300;
244
+
245
+ google_ad_height = 250;
246
+
247
+ //-->
248
+
249
+ </script>
250
+
251
+ <script type="text/javascript"
252
+
253
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
254
+
255
+ </script>
256
+
257
+
258
+
259
+ </div> <div class="post-96593 post type-post status-publish format-standard hentry category-classic-hacks tag-2764 tag-atari tag-atari-800 tag-cartridge tag-eprom">
260
+
261
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/22/atari-800-eprom-cartridge-hack/" title="Atari 800 EPROM cartridge&nbsp;hack" rel="bookmark">Atari 800 EPROM cartridge&nbsp;hack</a></h2>
262
+
263
+ <div class="post-info"><span class="date published time" title="2013-03-22T16:01:56+00:00">March 22, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/22/atari-800-eprom-cartridge-hack/#comments">1 Comment</a></span> </div> <div class="entry-content">
264
+ <p><img class="aligncenter size-large wp-image-96595" alt="atari-800-eeprom-hack" src="http://hackadaycom.files.wordpress.com/2013/03/atari-800-eeprom-hack.png?w=580&#038;h=355" width="580" height="355" /></p>
265
+ <p>[Chris Osborn] had an old Atari 800 collecting dust and decided to pull it out and get to work. The problem is that it&#8217;s seen some rough storage conditions over the years including what appears to be moisture damage. He&#8217;s read about a cartridge called SALT II which can run automatic diagnostics. Getting your hands on that original hardware can be almost impossible, but if he had a flashable cartridge he could just download an image. So <a href="http://www.insentricity.com/a.cl/200/A800-2764">he bought the cheapest cartridge he could find and modified it</a> to use an EPROM.</p>
266
+ <p>When he cracked open his new purchase he was greeted with the what you see on the left. It&#8217;s a PCB with the edge connector and two 24-pin sockets. These are designed to take 4k ROMs. He dropped in an EPROM of the same size but the pin-out doesn&#8217;t match what the board layout had in mind. After following the traces he found that it is pretty much an exact match for an Intel 2764 chip. The one problem being that the chip has 28-pins, four too many for the footprint. The interesting thing is that the larger footprint (compared to the 2732) uses all the same pins, simply adding to the top and moving the power pins. A small amount of jumper wire soldering and [Chris] is in business.</p>
267
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
268
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/classic-hacks/" title="View all posts in classic hacks" rel="category tag">classic hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/2764/" rel="tag">2764</a>, <a href="http://hackaday.com/tag/atari/" rel="tag">atari</a>, <a href="http://hackaday.com/tag/atari-800/" rel="tag">atari 800</a>, <a href="http://hackaday.com/tag/cartridge/" rel="tag">cartridge</a>, <a href="http://hackaday.com/tag/eprom/" rel="tag">eprom</a></span> </div>
269
+ </div><!-- end .postclass -->
270
+ <div class="post-96585 post type-post status-publish format-standard hentry category-radio-hacks tag-amateur-radio tag-ham-radio tag-radio tag-uv3r">
271
+
272
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/22/writing-new-firmware-for-a-handheld-radio/" title="Writing new firmware for a handheld&nbsp;radio" rel="bookmark">Writing new firmware for a handheld&nbsp;radio</a></h2>
273
+
274
+ <div class="post-info"><span class="date published time" title="2013-03-22T14:00:48+00:00">March 22, 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/22/writing-new-firmware-for-a-handheld-radio/#comments">11 Comments</a></span> </div> <div class="entry-content">
275
+ <p><img class="aligncenter size-full wp-image-96586" alt="HAM" src="http://hackadaycom.files.wordpress.com/2013/03/ham.jpg?w=580&#038;h=280" width="580" height="280" /></p>
276
+ <p>When playing around with a cheap, handheld, dual-band radio, [Lior], a.k.a. [KK6BWA], found a schematic for a similar and even cheaper radio. He realized the programming pads were very accessible and the dev tools for the radio&#8217;s microcontroller were available from the manufacturer. After these discoveries, there really was only one thing to do: <a href="http://www.liorelazary.com/index.php?option=com_content&amp;view=article&amp;id=51:hacking-the-uv3r&amp;catid=14:baofeng-uv5r&amp;Itemid=17">write new firmware for a $40 radio</a>, and making a great tool for playing around in the 2 meter and 70 cm bands.</p>
277
+ <p><a href="http://www.liorelazary.com/index.php?option=com_content&amp;view=article&amp;id=51%3Ahacking-the-uv3r&amp;catid=14%3Abaofeng-uv5r&amp;Itemid=17&amp;limitstart=2">The instructions</a> for reflashing the firmware on this radio only require an Arduino and a handful of miscellaneous components. [Lior]&#8216;s <a href="https://github.com/lelazary/UV3RMod">new firmware</a> for the uv3r radio isn&#8217;t quite finished yet, but he plans on adding some really impressive features. Things like a better UI for a four-button radio, a mode for tracking satellites, a digital mode, and a computer-controlled mode are all possible and on <a href="https://github.com/lelazary/UV3RMod/blob/master/WISHLIST">[Lior]&#8216;s project wishlist</a>.</p>
278
+ <p>Getting a $40 radio to do your bidding with an Arduino is cool enough, but [Lior] says this mod for the uv3r can be taken even further: if you&#8217;ve got an amateur radio license, it&#8217;s possible to use the uv3r to control an Arduino or other microcontroller from miles away. It&#8217;s a great hack, right up there with the <a href="http://hackaday.com/2012/03/20/software-defined-radio-from-a-usb-tv-capture-card/">USB TV tuner/software defined radio thing</a> we saw almost exactly one year ago.</p>
279
+ <p>You can check out a demo of some custom software running on the uv3r after the break. The radio listens for a DTMF tone (supplied by the uv3r&#8217;s big brother, the uv5r), and plays back a three-digit DTMF tone. There&#8217;s also a more through walk through of what [Lior]&#8216;s new radio can do as well.</p>
280
+ <p> <a href="http://hackaday.com/2013/03/22/writing-new-firmware-for-a-handheld-radio/#more-96585" class="more-link">[Read more...]</a></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/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/amateur-radio/" rel="tag">amateur radio</a>, <a href="http://hackaday.com/tag/ham-radio/" rel="tag">ham radio</a>, <a href="http://hackaday.com/tag/radio/" rel="tag">radio</a>, <a href="http://hackaday.com/tag/uv3r/" rel="tag">uv3r</a></span> </div>
283
+ </div><!-- end .postclass -->
284
+ <div class="post-96580 post type-post status-publish format-standard hentry category-3d-printer-hacks category-news tag-3d-printer tag-giveaway tag-lulzbot">
285
+
286
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/22/lulzbot-is-giving-away-more-printers/" title="LulzBot is giving away more&nbsp;printers" rel="bookmark">LulzBot is giving away more&nbsp;printers</a></h2>
287
+
288
+ <div class="post-info"><span class="date published time" title="2013-03-22T12:00:10+00:00">March 22, 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/22/lulzbot-is-giving-away-more-printers/#comments">1 Comment</a></span> </div> <div class="entry-content">
289
+ <p><img class="alignnone aligncenter" alt="" src="http://hackadaycom.files.wordpress.com/2013/02/lulzbot-3d-printer-rt.jpg?w=580&#038;h=379&#038;h=379" width="580" height="379" /></p>
290
+ <p>LulzBot, the awesomely named 3D printer manufacturer and parts supplier,<a href="https://www.lulzbot.com/?q=news/printer-giveaway"> is giving away eight of their AO-100 printers</a> to eight lucky hackerspaces.</p>
291
+ <p>It&#8217;s not so much a contest, but instead a giveaway aimed at eight community-operated hackerspaces who come up with a great idea on how to use a 3D printer. If you&#8217;re part of a well-established hackerspace that doesn&#8217;t have a 3D printer yet, this is a great opportunity to get your hands on a very nice printer.</p>
292
+ <p>A while back, <a href="http://hackaday.com/2013/02/09/adventures-in-3d-printing-our-first-week-with-the-lulzbot-ao-100/">we acquired one of these LulzBot printers</a> to print off some custom gaming controllers for gamers with physical disabilities (and to make some other cool stuff as well). Our boss man [Caleb] says the AO-100 is a great printer, and in my dealings and purchases with LulzBot, they seem like a great company with great support. We&#8217;re sure the hackerspaces that win these printers LulzBot is giving away will be able to put them to use quickly by making some really cool stuff.</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/3d-printer-hacks/" title="View all posts in 3d Printer hacks" rel="category tag">3d Printer hacks</a>, <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/3d-printer/" rel="tag">3d printer</a>, <a href="http://hackaday.com/tag/giveaway/" rel="tag">giveaway</a>, <a href="http://hackaday.com/tag/lulzbot/" rel="tag">lulzbot</a></span> </div>
295
+ </div><!-- end .postclass -->
296
+ <div class="post-96630 post type-post status-publish format-standard hentry category-news tag-comments tag-dislike-trolls">
297
+
298
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/22/finally-upgrading-our-comment-system/" title="Finally upgrading our comment&nbsp;system." rel="bookmark">Finally upgrading our comment&nbsp;system.</a></h2>
299
+
300
+ <div class="post-info"><span class="date published time" title="2013-03-22T11:38:14+00:00">March 22, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/calebkraft/" class="fn n" title="Caleb Kraft" rel="author">Caleb Kraft</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/22/finally-upgrading-our-comment-system/#comments">18 Comments</a></span> </div> <div class="entry-content">
301
+ <p><a href="http://hackadaycom.files.wordpress.com/2013/03/intense.jpg"><img class="aligncenter size-large wp-image-96631" alt="intense" src="http://hackadaycom.files.wordpress.com/2013/03/intense.jpg?w=580&#038;h=162" width="580" height="162" /></a></p>
302
+ <p><span style="color:#ff0000;"><strong>UPDATE: I&#8217;m working on making the visual style fit better. It really needs some work.</strong></span></p>
303
+ <p>Yes Ladies and Gentlemen, we&#8217;re finally taking the plunge into a more robust commenting system. This one has a ton of features, but the following few have been asked for quite frequently.</p>
304
+ <ul>
305
+ <li>You can now edit your comments. Yes, finally. No seriously, try it. To do this, you&#8217;ll need to log in though!</li>
306
+ <li>Subscription to a comment thread is now optional. Horay!</li>
307
+ <li>You can now &#8220;Like&#8221; or dislike comments.</li>
308
+ </ul>
309
+ <p>IntenseDebate is converting our old comments over, so they should begin to appear soon. Please feel free to email me directly[caleb@] with any issue you encounter using the new system. I know you&#8217;ve been asking for it for a very long time, I&#8217;ll do my best to make sure that it goes as smoothly as possible.</p>
310
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
311
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/news/" title="View all posts in news" rel="category tag">news</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/comments/" rel="tag">comments</a>, <a href="http://hackaday.com/tag/dislike-trolls/" rel="tag">dislike trolls</a></span> </div>
312
+ </div><!-- end .postclass -->
313
+ <div class="navigation"><div class="alignleft"><a href="http://hackaday.com/page/25/" >&laquo; Older Posts</a></div><div class="alignright"><a href="http://hackaday.com/page/23/" >Newer Posts &raquo;</a></div></div><!-- end .navigation --> </div><!-- end #content -->
314
+ <div id="sidebar" class="sidebar widget-area">
315
+ <div id=tl_ad>
316
+ <script type="text/javascript"><!--
317
+ google_ad_client = "ca-pub-1812638130783065";
318
+ /* Hackaday, 300x250, created 4/26/08, MedRect sidebar */
319
+ google_ad_slot = "7800245928";
320
+ google_ad_width = 300;
321
+ google_ad_height = 250;
322
+ //-->
323
+ </script>
324
+ <script type="text/javascript"
325
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
326
+ </script>
327
+
328
+ </div>
329
+
330
+
331
+
332
+
333
+
334
+
335
+ <div class="widget">
336
+ <h4>Never Miss a Hack</h4>
337
+ <div class="textwidget">
338
+
339
+ <!-- Place this tag where you want the badge to render. -->
340
+ <div class="g-plus" data-width= "280" data-href="https://plus.google.com/114843073658390316652" data-rel="publisher" data-theme="dark"></div>
341
+ <!-- Place this tag after the last badge tag. -->
342
+ <script type="text/javascript">
343
+ (function() {
344
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
345
+ po.src = 'https://apis.google.com/js/plusone.js';
346
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
347
+ })();
348
+ </script>
349
+
350
+ <div class="fb-like" data-href="https://www.facebook.com/pages/Hack-a-Day/136115233068429?ref=hl" data-send="true" data-width="280" data-show-faces="true" data-colorscheme="dark"></div>
351
+
352
+ <a href="https://twitter.com/hackaday" class="twitter-follow-button" data-show-count="true" data-lang="en" data-size="large">Follow @twitter</a>
353
+ <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
354
+
355
+ <a href="http://feeds2.feedburner.com/hackaday/LgoM" target="_blank"><img src="http://hackadaycom.files.wordpress.com/2012/11/orange.png" border="0"/></a>
356
+ <div class="clear"> </div>
357
+ <!-- Begin MailChimp Signup Form -->
358
+ <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
359
+
360
+ <div id="mc_embed_signup">
361
+ <form action="http://mahalo.us5.list-manage.com/subscribe/post?u=126b2ab712043075d9bd7210e&amp;id=cb1aa8bd16" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
362
+ <label for="mce-EMAIL">Subscribe to our mailing list for sneak previews and behind the scenes info</label>
363
+ <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
364
+ <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
365
+ </form>
366
+ </div>
367
+
368
+ <!--End mc_embed_signup-->
369
+ </div>
370
+ </div>
371
+
372
+ <div id="categories-2" class="widget widget_categories"><div class="widget-wrap"><h4 class="widgettitle">Categories</h4>
373
+ <select name='cat' id='cat' class='postform' >
374
+ <option value='-1'>Select Category</option>
375
+ <option class="level-0" value="114554125">3d Printer hacks&nbsp;&nbsp;(116)</option>
376
+ <option class="level-0" value="18020710">android hacks&nbsp;&nbsp;(240)</option>
377
+ <option class="level-0" value="18020705">arduino hacks&nbsp;&nbsp;(1029)</option>
378
+ <option class="level-0" value="27981650">ARM&nbsp;&nbsp;(51)</option>
379
+ <option class="level-0" value="33199679">Ask Hackaday&nbsp;&nbsp;(29)</option>
380
+ <option class="level-0" value="64298109">ATtiny hacks&nbsp;&nbsp;(45)</option>
381
+ <option class="level-0" value="25122024">beer hacks&nbsp;&nbsp;(63)</option>
382
+ <option class="level-0" value="12115263">blackberry hacks&nbsp;&nbsp;(8)</option>
383
+ <option class="level-0" value="10969031">cellphones hacks&nbsp;&nbsp;(337)</option>
384
+ <option class="level-0" value="35745764">chemistry hacks&nbsp;&nbsp;(102)</option>
385
+ <option class="level-0" value="24483654">classic hacks&nbsp;&nbsp;(852)</option>
386
+ <option class="level-0" value="31677810">clock hacks&nbsp;&nbsp;(189)</option>
387
+ <option class="level-0" value="18755632">cnc hacks&nbsp;&nbsp;(341)</option>
388
+ <option class="level-0" value="568165">computer hacks&nbsp;&nbsp;(390)</option>
389
+ <option class="level-0" value="78428">cons&nbsp;&nbsp;(192)</option>
390
+ <option class="level-0" value="5738">contests&nbsp;&nbsp;(136)</option>
391
+ <option class="level-0" value="3923181">cooking hacks&nbsp;&nbsp;(72)</option>
392
+ <option class="level-0" value="10969032">digital audio hacks&nbsp;&nbsp;(422)</option>
393
+ <option class="level-0" value="10969033">digital cameras hacks&nbsp;&nbsp;(415)</option>
394
+ <option class="level-0" value="10969034">downloads hacks&nbsp;&nbsp;(101)</option>
395
+ <option class="level-0" value="107827385">drone hacks&nbsp;&nbsp;(10)</option>
396
+ <option class="level-0" value="63176382">Engine Hacks&nbsp;&nbsp;(31)</option>
397
+ <option class="level-0" value="35890">Featured&nbsp;&nbsp;(72)</option>
398
+ <option class="level-0" value="551890">firefox hacks&nbsp;&nbsp;(23)</option>
399
+ <option class="level-0" value="53446541">FPGA&nbsp;&nbsp;(1)</option>
400
+ <option class="level-0" value="18020562">g1 hacks&nbsp;&nbsp;(26)</option>
401
+ <option class="level-0" value="320557">google hacks&nbsp;&nbsp;(44)</option>
402
+ <option class="level-0" value="10969036">gps hacks&nbsp;&nbsp;(108)</option>
403
+ <option class="level-0" value="24535490">green hacks&nbsp;&nbsp;(152)</option>
404
+ <option class="level-0" value="27311668">Hackaday links&nbsp;&nbsp;(146)</option>
405
+ <option class="level-0" value="21755374">Hackerspaces&nbsp;&nbsp;(93)</option>
406
+ <option class="level-0" value="6310599">HackIt&nbsp;&nbsp;(101)</option>
407
+ <option class="level-0" value="10969037">handhelds hacks&nbsp;&nbsp;(189)</option>
408
+ <option class="level-0" value="79">hardware&nbsp;&nbsp;(249)</option>
409
+ <option class="level-0" value="144422905">High Voltage Hacks&nbsp;&nbsp;(5)</option>
410
+ <option class="level-0" value="66307084">Holiday Hacks&nbsp;&nbsp;(93)</option>
411
+ <option class="level-0" value="10969038">home entertainment hacks&nbsp;&nbsp;(516)</option>
412
+ <option class="level-0" value="5660882">home hacks&nbsp;&nbsp;(705)</option>
413
+ <option class="level-0" value="2708">how-to&nbsp;&nbsp;(135)</option>
414
+ <option class="level-0" value="908478">internet hacks&nbsp;&nbsp;(2)</option>
415
+ <option class="level-0" value="831">Interviews&nbsp;&nbsp;(13)</option>
416
+ <option class="level-0" value="1416772">iphone hacks&nbsp;&nbsp;(176)</option>
417
+ <option class="level-0" value="1275163">ipod hacks&nbsp;&nbsp;(144)</option>
418
+ <option class="level-0" value="344761">kickstarter&nbsp;&nbsp;(29)</option>
419
+ <option class="level-0" value="4157506">Kindle hacks&nbsp;&nbsp;(15)</option>
420
+ <option class="level-0" value="46717088">Kinect hacks&nbsp;&nbsp;(81)</option>
421
+ <option class="level-0" value="10969048">laptops hacks&nbsp;&nbsp;(111)</option>
422
+ <option class="level-0" value="10969055">laser hacks&nbsp;&nbsp;(167)</option>
423
+ <option class="level-0" value="18020716">led hacks&nbsp;&nbsp;(695)</option>
424
+ <option class="level-0" value="10626">lifehacks&nbsp;&nbsp;(54)</option>
425
+ <option class="level-0" value="729674">linux hacks&nbsp;&nbsp;(129)</option>
426
+ <option class="level-0" value="20732807">lockpicking hacks&nbsp;&nbsp;(11)</option>
427
+ <option class="level-0" value="10969060">macs hacks&nbsp;&nbsp;(135)</option>
428
+ <option class="level-0" value="144395979">Marijuana Hacks&nbsp;&nbsp;(2)</option>
429
+ <option class="level-0" value="11284667">Medical hacks&nbsp;&nbsp;(102)</option>
430
+ <option class="level-0" value="139916">Microcontrollers&nbsp;&nbsp;(512)</option>
431
+ <option class="level-0" value="5611793">misc hacks&nbsp;&nbsp;(1747)</option>
432
+ <option class="level-0" value="18020730">multitouch hacks&nbsp;&nbsp;(89)</option>
433
+ <option class="level-0" value="22652725">musical hacks&nbsp;&nbsp;(290)</option>
434
+ <option class="level-0" value="18020722">netbook hacks&nbsp;&nbsp;(50)</option>
435
+ <option class="level-0" value="6166512">Network Hacks&nbsp;&nbsp;(4)</option>
436
+ <option class="level-0" value="103">news&nbsp;&nbsp;(1091)</option>
437
+ <option class="level-0" value="1861880">nintendo ds hacks&nbsp;&nbsp;(34)</option>
438
+ <option class="level-0" value="114555425">nintendo gameboy hacks&nbsp;&nbsp;(90)</option>
439
+ <option class="level-0" value="18020685">nintendo hacks&nbsp;&nbsp;(261)</option>
440
+ <option class="level-0" value="4992726">nintendo wii hacks&nbsp;&nbsp;(78)</option>
441
+ <option class="level-0" value="118011206">Nook Hacks&nbsp;&nbsp;(1)</option>
442
+ <option class="level-0" value="114556430">palm pre hacks&nbsp;&nbsp;(6)</option>
443
+ <option class="level-0" value="245123">parts&nbsp;&nbsp;(72)</option>
444
+ <option class="level-0" value="10969081">peripherals hacks&nbsp;&nbsp;(648)</option>
445
+ <option class="level-0" value="16325149">phone hacks&nbsp;&nbsp;(17)</option>
446
+ <option class="level-0" value="10969088">playstation hacks&nbsp;&nbsp;(120)</option>
447
+ <option class="level-0" value="2060">podcasts&nbsp;&nbsp;(8)</option>
448
+ <option class="level-0" value="10969096">portable audio hacks&nbsp;&nbsp;(66)</option>
449
+ <option class="level-0" value="10969099">portable video hacks&nbsp;&nbsp;(57)</option>
450
+ <option class="level-0" value="588444">psp hacks&nbsp;&nbsp;(47)</option>
451
+ <option class="level-0" value="23971578">radio hacks&nbsp;&nbsp;(137)</option>
452
+ <option class="level-0" value="47">rants&nbsp;&nbsp;(28)</option>
453
+ <option class="level-0" value="69218551">Raspberry Pi&nbsp;&nbsp;(153)</option>
454
+ <option class="level-0" value="21870780">repair hacks&nbsp;&nbsp;(101)</option>
455
+ <option class="level-0" value="309">reviews&nbsp;&nbsp;(19)</option>
456
+ <option class="level-0" value="10969101">robots hacks&nbsp;&nbsp;(874)</option>
457
+ <option class="level-0" value="30302">roundup&nbsp;&nbsp;(35)</option>
458
+ <option class="level-0" value="10969111">security hacks&nbsp;&nbsp;(460)</option>
459
+ <option class="level-0" value="2301">Software Development&nbsp;&nbsp;(91)</option>
460
+ <option class="level-0" value="3796421">software hacks&nbsp;&nbsp;(47)</option>
461
+ <option class="level-0" value="10969116">solar hacks&nbsp;&nbsp;(46)</option>
462
+ <option class="level-0" value="10969121">tablet pcs hacks&nbsp;&nbsp;(40)</option>
463
+ <option class="level-0" value="3075183">teardown&nbsp;&nbsp;(31)</option>
464
+ <option class="level-0" value="10969130">tool hacks&nbsp;&nbsp;(657)</option>
465
+ <option class="level-0" value="25277004">toy hacks&nbsp;&nbsp;(360)</option>
466
+ <option class="level-0" value="10969134">transportation hacks&nbsp;&nbsp;(472)</option>
467
+ <option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(332)</option>
468
+ <option class="level-0" value="3184456">video hacks&nbsp;&nbsp;(211)</option>
469
+ <option class="level-0" value="34942364">Virtual Reality&nbsp;&nbsp;(9)</option>
470
+ <option class="level-0" value="50802420">weapons hacks&nbsp;&nbsp;(63)</option>
471
+ <option class="level-0" value="12552193">wearable hacks&nbsp;&nbsp;(183)</option>
472
+ <option class="level-0" value="39510952">Weekly roundup&nbsp;&nbsp;(18)</option>
473
+ <option class="level-0" value="4891215">wireless hacks&nbsp;&nbsp;(333)</option>
474
+ <option class="level-0" value="7079455">xbox hacks&nbsp;&nbsp;(130)</option>
475
+ </select>
476
+
477
+ <script type='text/javascript'>
478
+ /* <![CDATA[ */
479
+ var dropdown = document.getElementById("cat");
480
+ function onCatChange() {
481
+ if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
482
+ location.href = "http://hackaday.com/?cat="+dropdown.options[dropdown.selectedIndex].value;
483
+ }
484
+ }
485
+ dropdown.onchange = onCatChange;
486
+ /* ]]> */
487
+ </script>
488
+
489
+ </div></div>
490
+ <div id="featured-post-2" class="widget featuredpost"><div class="widget-wrap"><h4 class="widgettitle">In case you missed it</h4>
491
+ <div class="post-97657 post type-post status-publish format-standard hentry category-3d-printer-hacks category-featured tag-algae tag-bioluminescence tag-dinoflagellate tag-glowing tag-phosphorescence"><a href="http://hackaday.com/2013/04/18/living-night-light-with-glowing-algae/" title="Living night light with glowing&nbsp;algae" class="alignleft"><img width="90" height="61" src="http://hackadaycom.files.wordpress.com/2013/04/thumb1.jpg?w=90" class="attachment-thumbnail" alt="thumb" /></a><h2><a href="http://hackaday.com/2013/04/18/living-night-light-with-glowing-algae/" title="Living night light with glowing&nbsp;algae">Living night light with glowing&nbsp;algae</a></h2><p class="byline post-info"><br /> <span class="post-comments"><a href="http://hackaday.com/2013/04/18/living-night-light-with-glowing-algae/#comments">67 Comments</a></span></p></div><!--end post_class()-->
492
+
493
+ <div class="post-97648 post type-post status-publish format-standard hentry category-3d-printer-hacks category-featured category-virtual-reality-2 tag-3d-printing tag-lulzbot tag-oculus-rift tag-virtual-reality tag-vr"><a href="http://hackaday.com/2013/04/17/3d-printing-sensor-mounts-for-the-oculus-rift/" title="3D Printing sensor mounts for the Oculus&nbsp;Rift" class="alignleft"><img width="90" height="67" src="http://hackadaycom.files.wordpress.com/2013/04/thumb.jpg?w=90" class="attachment-thumbnail" alt="thumb" /></a><h2><a href="http://hackaday.com/2013/04/17/3d-printing-sensor-mounts-for-the-oculus-rift/" title="3D Printing sensor mounts for the Oculus&nbsp;Rift">3D Printing sensor mounts for the Oculus&nbsp;Rift</a></h2><p class="byline post-info"><br /> <span class="post-comments"><a href="http://hackaday.com/2013/04/17/3d-printing-sensor-mounts-for-the-oculus-rift/#comments">7 Comments</a></span></p></div><!--end post_class()-->
494
+
495
+ <div class="post-97564 post type-post status-publish format-standard hentry category-featured category-virtual-reality-2 tag-adaliight tag-ambilight tag-oculus-rift tag-virtual-reality tag-vr"><a href="http://hackaday.com/2013/04/11/hacking-the-oculus-rift-the-oculight/" title="Hacking the Oculus Rift: the&nbsp;Oculight" class="alignleft"><img width="90" height="54" src="http://hackadaycom.files.wordpress.com/2013/04/screen-shot-2013-04-14-at-9-52-43-am.png?w=90" class="attachment-thumbnail" alt="Screen Shot 2013-04-14 at 9.52.43 AM" /></a><h2><a href="http://hackaday.com/2013/04/11/hacking-the-oculus-rift-the-oculight/" title="Hacking the Oculus Rift: the&nbsp;Oculight">Hacking the Oculus Rift: the&nbsp;Oculight</a></h2><p class="byline post-info"><br /> <span class="post-comments"><a href="http://hackaday.com/2013/04/11/hacking-the-oculus-rift-the-oculight/#comments">20 Comments</a></span></p></div><!--end post_class()-->
496
+
497
+ <div class="post-97538 post type-post status-publish format-standard hentry category-featured category-news tag-top-10 tag-wins"><a href="http://hackaday.com/2013/04/11/top-10-best-hacking-scenes-in-movies/" title="Top 10 best hacking scenes in&nbsp;movies" class="alignleft"><img width="90" height="55" src="http://hackadaycom.files.wordpress.com/2013/04/screen-shot-2013-04-14-at-9-51-38-am.png?w=90" class="attachment-thumbnail" alt="Screen Shot 2013-04-14 at 9.51.38 AM" /></a><h2><a href="http://hackaday.com/2013/04/11/top-10-best-hacking-scenes-in-movies/" title="Top 10 best hacking scenes in&nbsp;movies">Top 10 best hacking scenes in&nbsp;movies</a></h2><p class="byline post-info"><br /> <span class="post-comments"><a href="http://hackaday.com/2013/04/11/top-10-best-hacking-scenes-in-movies/#comments">88 Comments</a></span></p></div><!--end post_class()-->
498
+
499
+ <div class="post-97094 post type-post status-publish format-standard hentry category-featured category-news tag-april-fools"><a href="http://hackaday.com/2013/04/01/hackadays-very-first-kickstarter-campaign/" title="Hackaday&#8217;s very first Kickstarter&nbsp;campaign" class="alignleft"><img width="90" height="54" src="http://hackadaycom.files.wordpress.com/2013/03/hackaday-kickstarter.jpg?w=90" class="attachment-thumbnail" alt="hackaday-kickstarter" /></a><h2><a href="http://hackaday.com/2013/04/01/hackadays-very-first-kickstarter-campaign/" title="Hackaday&#8217;s very first Kickstarter&nbsp;campaign">Hackaday&#8217;s very first Kickstarter&nbsp;campaign</a></h2><p class="byline post-info"><br /> <span class="post-comments"><a href="http://hackaday.com/2013/04/01/hackadays-very-first-kickstarter-campaign/#comments">58 Comments</a></span></p></div><!--end post_class()-->
500
+
501
+ <p class="more-from-category"><a href="http://hackaday.com/category/featured/" title="Featured">More Posts from this Category</a></p></div></div>
502
+ <div id="recent-comments-2" class="widget widget_recent_comments"><div class="widget-wrap"><h4 class="widgettitle">Recent comments</h4>
503
+ <ul id="recentcomments">
504
+ <li class="recentcomments">
505
+ echodelta on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-997083">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
506
+ <li class="recentcomments">
507
+ <a href='http://jsutton.co.uk' rel='external nofollow' class='url'>James</a> on <a href="http://hackaday.com/2013/04/23/console-radio-given-new-life-with-a-wifi-router-retrofit/comment-page-1/#comment-997080">Console radio given new life with a WiFi router&nbsp;retrofit</a> </li>
508
+ <li class="recentcomments">
509
+ nhede on <a href="http://hackaday.com/2013/04/22/20-pounds-and-a-gut-feeling-yields-a-configurable-rubidium-atomic-clock-source/comment-page-1/#comment-997074">20 pounds and a gut feeling yields a configurable Rubidium atomic clock&nbsp;source</a> </li>
510
+ <li class="recentcomments">
511
+ Dax on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-997071">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
512
+ <li class="recentcomments">
513
+ TacticalNinja on <a href="http://hackaday.com/2013/04/23/otm-02-is-a-3d-printed-wristwatch/comment-page-1/#comment-997070">OTM-02 is a 3D printed&nbsp;wristwatch</a> </li>
514
+ <li class="recentcomments">
515
+ Arlet on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-997017">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
516
+ <li class="recentcomments">
517
+ Arlet on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-997016">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
518
+ <li class="recentcomments">
519
+ <a href='http://smonson.com/' rel='external nofollow' class='url'>Smonson</a> on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-996997">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
520
+ <li class="recentcomments">
521
+ <a href='http://twitter.com/admsch' rel='external nofollow' class='url'>Adam Scheuring (@admsch)</a> on <a href="http://hackaday.com/2013/04/23/otm-02-is-a-3d-printed-wristwatch/comment-page-1/#comment-996993">OTM-02 is a 3D printed&nbsp;wristwatch</a> </li>
522
+ <li class="recentcomments">
523
+ JoSSte on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-996990">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
524
+ </ul>
525
+ </div></div>
526
+ <div id="calendar-2" class="widget widget_calendar"><div class="widget-wrap"><h4 class="widgettitle">Find Hacks by Date</h4>
527
+ <div id="calendar_wrap"><table id="wp-calendar">
528
+ <caption>April 2013</caption>
529
+ <thead>
530
+ <tr>
531
+ <th scope="col" title="Sunday">S</th>
532
+ <th scope="col" title="Monday">M</th>
533
+ <th scope="col" title="Tuesday">T</th>
534
+ <th scope="col" title="Wednesday">W</th>
535
+ <th scope="col" title="Thursday">T</th>
536
+ <th scope="col" title="Friday">F</th>
537
+ <th scope="col" title="Saturday">S</th>
538
+ </tr>
539
+ </thead>
540
+
541
+ <tfoot>
542
+ <tr>
543
+ <td colspan="3" id="prev"><a href="http://hackaday.com/2013/03/" title="View posts for March 2013">&laquo; Mar</a></td>
544
+ <td class="pad">&nbsp;</td>
545
+ <td colspan="3" id="next" class="pad">&nbsp;</td>
546
+ </tr>
547
+ </tfoot>
548
+
549
+ <tbody>
550
+ <tr>
551
+ <td colspan="1" class="pad">&nbsp;</td><td><a href="http://hackaday.com/2013/04/01/" title="Hackaday&#8217;s very first Kickstarter&nbsp;campaign, 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>
552
+ </tr>
553
+ <tr>
554
+ <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>
555
+ </tr>
556
+ <tr>
557
+ <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>
558
+ </tr>
559
+ <tr>
560
+ <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>
561
+ </tr>
562
+ <tr>
563
+ <td>28</td><td>29</td><td>30</td>
564
+ <td class="pad" colspan="4">&nbsp;</td>
565
+ </tr>
566
+ </tbody>
567
+ </table></div></div></div>
568
+ <div id=virurl>
569
+ <!-- BEGIN - VIRURL Widget - iFrame Embed Code -->
570
+ <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"
571
+ width="300" height="600" scrolling="no" >
572
+ </iframe>
573
+ <!-- END - VIRURL Widget - iFrame Embed Code -->
574
+ </div>
575
+ <br />
576
+ <br />
577
+ <div id=tl_ad_bottom>
578
+ <script type="text/javascript"><!--
579
+ google_ad_client = "ca-pub-1812638130783065";
580
+ /* Hackaday sidebar wide skyscraper */
581
+ google_ad_slot = "1587378096";
582
+ google_ad_width = 160;
583
+ google_ad_height = 600;
584
+ google_ad_region = "test";
585
+ //-->
586
+ </script>
587
+ <script type="text/javascript"
588
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
589
+ </script>
590
+ </div>
591
+
592
+
593
+ <br />
594
+
595
+
596
+
597
+
598
+
599
+
600
+ </div> </div><!-- end #content-sidebar-wrap -->
601
+ </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 -->
602
+ <script type="text/javascript">
603
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
604
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
605
+ </script>
606
+ <script type="text/javascript">
607
+ var pageTracker = _gat._getTracker("UA-2201445-6");
608
+ pageTracker._trackPageview();
609
+ </script>
610
+ <!-- Start Quantcast tag -->
611
+ <script type="text/javascript">
612
+ _qoptions={
613
+ qacct:"p-cc6zkdHuZwUDM"
614
+ };
615
+ </script>
616
+ <script type="text/javascript"
617
+ src="http://edge.quantserve.com/quant.js"></script>
618
+ <noscript>
619
+ <img src="http://pixel.quantserve.com/pixel/p-cc6zkdHuZwUDM.gif"
620
+ style="display: none;" border="0" height="1" width="1"
621
+ alt="Quantcast"/>
622
+ </noscript></div><!-- end #wrap -->
623
+
624
+ <script type="text/javascript">
625
+ var _qevents = _qevents || [], wpcomQuantcastData = {"qacct":"p-18-mFEk4J448M","labels":",language.en,type.wpcom,vip.hackadaycom"};
626
+ function wpcomQuantcastPixel( labels, options ) {
627
+ var i, defaults = wpcomQuantcastData, data = { event: 'ajax' };
628
+
629
+ labels = labels || '';
630
+ options = options || {};
631
+
632
+ if ( typeof labels != 'string' )
633
+ options = labels;
634
+
635
+ for ( i in defaults ) {
636
+ data[i] = defaults[i];
637
+ }
638
+
639
+ for ( i in options ) {
640
+ data[i] = options[i];
641
+ }
642
+
643
+ if ( data.labels ) {
644
+ data.labels += ',' + labels;
645
+ } else {
646
+ data.labels = labels;
647
+ }
648
+
649
+ _qevents.push( data );
650
+ };
651
+ (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); })();
652
+ _qevents.push( wpcomQuantcastData );
653
+ </script>
654
+ <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>
655
+
656
+
657
+ <!-- /// LOAD CHARTBEAT /// -->
658
+ <script type="text/javascript">
659
+ var _sf_async_config={};
660
+ _sf_async_config.uid = 2021;
661
+ _sf_async_config.useCanonical = true;
662
+
663
+ (function(){
664
+ function loadChartbeat() {
665
+ window._sf_endpt=(new Date()).getTime();
666
+ var e = document.createElement('script');
667
+ e.setAttribute('language', 'javascript');
668
+ e.setAttribute('type', 'text/javascript');
669
+ e.setAttribute('src',
670
+ (("https:" == document.location.protocol) ? "https://s3.amazonaws.com/" : "http://") +
671
+ "static.chartbeat.com/js/chartbeat.js");
672
+ document.body.appendChild(e);
673
+ }
674
+ var oldonload = window.onload;
675
+ window.onload = (typeof window.onload != 'function') ?
676
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
677
+ })();
678
+ </script>
679
+ <div style="display:none">
680
+ </div>
681
+ <script type='text/javascript' src='http://s2.wp.com/_static/??-eJylzMsOREAQRuEXMoqgEwvxLC4/qjPVOl3dZh4fO3vrk+/Qz3+m3UW4SFZpxsET/D+3mtEjxQ0CJR8gnIRWOCgrfXm8lcAl0uQRFtbtlR3Cqtegl66smto0xhStPQEw5Dy+'></script>
682
+ <script type="text/javascript">
683
+ // <![CDATA[
684
+ (function() {
685
+ try{
686
+ if ( window.external &&'msIsSiteMode' in window.external) {
687
+ if (window.external.msIsSiteMode()) {
688
+ var jl = document.createElement('script');
689
+ jl.type='text/javascript';
690
+ jl.async=true;
691
+ jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
692
+ var s = document.getElementsByTagName('script')[0];
693
+ s.parentNode.insertBefore(jl, s);
694
+ }
695
+ }
696
+ }catch(e){}
697
+ })();
698
+ // ]]>
699
+ </script><script src="http://s.stats.wordpress.com/w.js?21" type="text/javascript"></script>
700
+ <script type="text/javascript">
701
+ st_go({'blog':'4779443','v':'wpcom','tz':'-7','user_id':'0','subd':'hackadaycom'});
702
+ 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();}
703
+ ex_go({'crypt':'UE40eW5QN0p8M2Y/RE1BNmNJfGhxNCVxUDExYmtXRThKbHcwXTdETWI1alhvb1oseHImN101ZFpEakVpYjlQYVFLYzBaVHRtPz0wXS9bVlFpZ3c1Qn5KSThLNS9lSHNGOE1IJk9+N3xFNWxyT2x+MUpnR1dJcFZJZUJmJkpmX0Rodm9+Rkk/cDMmZ0wrMmNxOV1Kfk0xJl9tP2pPUGxEfk5sZ1RodSZGWGpsbzg3OC0meXxnMjUzcmRNP0psb21banBMNDJpJl9BcDAtcn5mQnlVLGlmVXV4WHBsM1gwXWJXfit5LDdsdkpzcC5pb0dnbS9oJkJOd1BPZUxSV1s='});
704
+ addLoadEvent(function(){linktracker_init('4779443',0);});
705
+ </script>
706
+ <noscript><img src="http://stats.wordpress.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
707
+ <script type="text/javascript">
708
+ // Trigger Quantcast pixel for each Infinite Scroll post load
709
+ if ( 'function' === typeof( jQuery ) ) {
710
+ jQuery( document.body ).on( 'post-load', function() {
711
+ if ( 'function' === typeof( wpcomQuantcastPixel ) )
712
+ wpcomQuantcastPixel();
713
+ } );
714
+ }
715
+ </script>
716
+ </body>
717
+ </html>