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
+ <head profile="http://gmpg.org/xfn/11">
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5
+ <title>Hack a Day — Fresh hacks every day</title>
6
+ <meta name="description" content="Fresh hacks every day" />
7
+ <meta name="robots" content="noodp,noydir" />
8
+ <link rel="Shortcut Icon" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/images/favicon.ico?m=1353160633g" type="image/x-icon" />
9
+ <link rel="stylesheet" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/style.css?m=1363789849g" type="text/css" media="screen" />
10
+
11
+ <meta name="description" content="Fresh hacks every day" />
12
+ <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" />
13
+ <script src='http://r-login.wordpress.com/remote-login.php?action=js&amp;host=hackaday.com&amp;id=4779443&amp;t=1366801148&amp;back=hackaday.com%2Fpage%2F28%2F' type="text/javascript"></script>
14
+ <script type="text/javascript">
15
+ /* <![CDATA[ */
16
+ if ( 'function' === typeof WPRemoteLogin ) {
17
+ document.cookie = "wordpress_test_cookie=test; path=/";
18
+ if ( document.cookie.match( /(;|^)\s*wordpress_test_cookie\=/ ) ) {
19
+ WPRemoteLogin();
20
+ }
21
+ }
22
+ /* ]]> */
23
+ </script>
24
+ <link rel="alternate" type="application/rss+xml" title="Hack a Day &raquo; Feed" href="http://feeds2.feedburner.com/hackaday/LgoM" />
25
+ <link rel="alternate" type="application/rss+xml" title="Hack a Day &raquo; Comments Feed" href="http://hackaday.com/comments/feed/" />
26
+ <script type="text/javascript">
27
+ /* <![CDATA[ */
28
+ function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){oldonload();func();}}}
29
+ /* ]]> */
30
+ </script>
31
+ <link rel="canonical" href="http://hackaday.com/" />
32
+ <link rel='stylesheet' id='all-css-0' href='http://s0.wp.com/_static/??-eJzTLy/QTc7PK0nNK9HPLdUtyClNz8wr1s/JzE4t1s9KLSlITM7WBfP0kouLdfSxKy/ILy7RTctJzCzSLy6pzEklVm1GYlFmXjqMxtBVkpGaC3RGhol+ek5+UmIOSIF9rq2hsZmZuYmxqbFlFgANUUYu' type='text/css' media='all' />
33
+ <script type='text/javascript'>
34
+ /* <![CDATA[ */
35
+ var SafeCommentsAjax = {"ajaxurl":"http:\/\/hackaday.com\/wp-admin\/admin-ajax.php"};
36
+ /* ]]> */
37
+ </script>
38
+ <script type='text/javascript' src='http://s0.wp.com/_static/??-eJyFz0sKAjEMBuALWUsZpjvxLKXGmjp92KQz6umNogtRFAJZ5Et+opeqMPup74B0lDp1aJdnW0da6V9AJQzNMbygL5kh893VQpyAyIVv0/cYzDPC8pdF4Or8UTUgvH5c5QNInp6x6jr1gJk0uT2IrqWxsJSEPX5w0Z1lfZs2ZrB2NIOxY7wBpfljQw=='></script>
39
+ <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://hackadaycom.wordpress.com/xmlrpc.php?rsd" />
40
+ <link rel="shortcut icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" sizes="16x16" />
41
+ <link rel="icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" sizes="16x16" />
42
+ <link rel="apple-touch-icon-precomposed" href="http://1.gravatar.com/blavatar/5560f98f805877b0e332f191cb9e0af3?s=114" />
43
+ <link rel='openid.server' href='http://hackadaycom.wordpress.com/?openidserver=1' />
44
+ <link rel='openid.delegate' href='http://hackadaycom.wordpress.com/' />
45
+ <link rel="search" type="application/opensearchdescription+xml" href="http://hackaday.com/osd.xml" title="Hack a Day" />
46
+ <link rel="search" type="application/opensearchdescription+xml" href="http://wordpress.com/opensearch.xml" title="WordPress.com" />
47
+ <style>
48
+ /* <![CDATA[ */
49
+ /* Block: reblog */
50
+
51
+ .reblog-from img { margin: 0 10px 0 0; vertical-align: middle; padding: 0; border: 0; }
52
+ .reblogger-note img.avatar { float: left; padding: 0; border: 0; }
53
+ .reblogger-note-content { margin: 0 0 20px; }
54
+ .reblog-post .wpcom-enhanced-excerpt-content { border-left: 3px solid #eee; padding-left: 15px; }
55
+ .reblog-post ul.thumb-list { display: block; list-style: none; margin: 2px 0; padding: 0; clear: both; }
56
+ .reblog-post ul.thumb-list li { display: inline; margin: 0; padding: 0 1px; border: 0; }
57
+ .reblog-post ul.thumb-list li a { margin: 0; padding: 0; border: 0; }
58
+ .reblog-post ul.thumb-list li img { margin: 0; padding: 0; border: 0; }
59
+
60
+ .reblog-post .wpcom-enhanced-excerpt { clear: both; }
61
+
62
+ .reblog-post .wpcom-enhanced-excerpt address,
63
+ .reblog-post .wpcom-enhanced-excerpt li,
64
+ .reblog-post .wpcom-enhanced-excerpt h1,
65
+ .reblog-post .wpcom-enhanced-excerpt h2,
66
+ .reblog-post .wpcom-enhanced-excerpt h3,
67
+ .reblog-post .wpcom-enhanced-excerpt h4,
68
+ .reblog-post .wpcom-enhanced-excerpt h5,
69
+ .reblog-post .wpcom-enhanced-excerpt h6,
70
+ .reblog-post .wpcom-enhanced-excerpt p { font-size: 100% !important; }
71
+
72
+ .reblog-post .wpcom-enhanced-excerpt blockquote,
73
+ .reblog-post .wpcom-enhanced-excerpt pre,
74
+ .reblog-post .wpcom-enhanced-excerpt code,
75
+ .reblog-post .wpcom-enhanced-excerpt q { font-size: 98% !important; }
76
+
77
+
78
+ /* ]]> */
79
+ </style>
80
+
81
+ <script type="text/javascript">var _sf_startpt=(new Date()).getTime()</script>
82
+ <style>
83
+ .wpcom-related-posts ul li {
84
+ list-style-type: none;
85
+ display: inline-block;
86
+ }
87
+ </style>
88
+ <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
89
+ <style type="text/css">
90
+ .recentcomments a {
91
+ display: inline !important;
92
+ padding: 0 !important;
93
+ margin: 0 !important;
94
+ }
95
+
96
+ table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar {
97
+ border: 0px;
98
+ margin: 0;
99
+ }
100
+
101
+ table.recentcommentsavatartop a, table.recentcommentsavatarend a {
102
+ border: 0px !important;
103
+ background-color: transparent !important;
104
+ }
105
+
106
+ td.recentcommentsavatarend, td.recentcommentsavatartop {
107
+ padding: 0px 0px 1px 0px;
108
+ margin: 0px;
109
+ }
110
+
111
+ td.recentcommentstextend {
112
+ border: none !important;
113
+ padding: 0px 0px 2px 10px;
114
+ }
115
+
116
+ .rtl td.recentcommentstextend {
117
+ padding: 0px 10px 2px 0px;
118
+ }
119
+
120
+ td.recentcommentstexttop {
121
+ border: none !important;
122
+ padding: 0px 0px 0px 10px;
123
+ }
124
+
125
+ .rtl td.recentcommentstexttop {
126
+ padding: 0px 10px 0px 0px;
127
+ }
128
+ </style>
129
+ <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>
130
+
131
+ <script>jQuery(document).ready(function($) {
132
+ $("cswap li a").click(function() {
133
+ $("link").attr("href",$(this).attr('rel'));
134
+ return false;
135
+ });
136
+ });</script>
137
+ <meta name="google-site-verification" content="v0_F4q2HixEv6wrQCEKBEbp2Wuj0oI9ywwaN6aoV0JE" />
138
+ </head>
139
+ <body class="home blog paged paged-28 typekit-enabled header-image content-sidebar highlander-enabled highlander-light">
140
+
141
+ <div id="fb-root"></div>
142
+ <script>(function(d, s, id) {
143
+ var js, fjs = d.getElementsByTagName(s)[0];
144
+ if (d.getElementById(id)) return;
145
+ js = d.createElement(s); js.id = id;
146
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
147
+ fjs.parentNode.insertBefore(js, fjs);
148
+ }(document, 'script', 'facebook-jssdk'));</script>
149
+ <div id="wrap">
150
+ <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">
151
+ <script type="text/javascript"><!--
152
+ google_ad_client = "ca-pub-1812638130783065";
153
+ /* Hackaday, 728x90, created 4/26/08, Leaderboard */
154
+ google_ad_slot = "4036713767";
155
+ google_ad_width = 728;
156
+ google_ad_height = 90;
157
+ //-->
158
+ </script>
159
+ <script type="text/javascript"
160
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
161
+ </script>
162
+ </div>
163
+ <div id="adslice">
164
+
165
+ <script type="text/javascript"><!--
166
+ google_ad_client = "pub-1812638130783065";
167
+ /* Hackaday, 728x15, created 4/26/08, AdSlice */
168
+ google_ad_slot = "0246324944";
169
+ google_ad_width = 728;
170
+ google_ad_height = 15;
171
+ //-->
172
+ </script>
173
+
174
+ <script type="text/javascript"
175
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
176
+ </script>
177
+
178
+ </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>
179
+ <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>
180
+ <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>
181
+ <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>
182
+ <li class="right search">
183
+ <form method="get" class="searchform" action="http://hackaday.com/" >
184
+
185
+ <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;';}" />
186
+ <input type="submit" class="searchsubmit" value="Search" />
187
+ </form>
188
+ </li></ul></div><!-- end .wrap --></div><div id="inner"><div class="wrap"> <div id="content-sidebar-wrap">
189
+ <div id="content" class="hfeed">
190
+ <div class="post-96359 post type-post status-publish format-standard hentry category-android-hacks category-linux-hacks tag-android tag-gingerbread tag-git tag-lighttpd tag-server">
191
+
192
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/19/carry-a-git-server-in-your-pocket/" title="Carry a Git server in your&nbsp;pocket" rel="bookmark">Carry a Git server in your&nbsp;pocket</a></h2>
193
+
194
+ <div class="post-info"><span class="date published time" title="2013-03-19T18:01:06+00:00">March 19, 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/19/carry-a-git-server-in-your-pocket/#comments">17 Comments</a></span> </div> <div class="entry-content">
195
+ <p><img class="aligncenter size-large wp-image-96360" alt="android-git-server" src="http://hackadaycom.files.wordpress.com/2013/03/android-git-server.png?w=554&#038;h=450" width="554" height="450" /></p>
196
+ <p>We love using Git for its superior version control. We often host our more advanced projects in a public Github repository. But the bulk of our little experiments are simply local repos. This is fine if you&#8217;re always at home, but if we are away from home we find ourselves having to SSH into our server to copy over the Git files. [Andrew] found a way around this slightly awkward process. He used <a href="http://ncrmnt.org/wp/2013/03/19/theres-a-server-in-my-pocket/">an old Android phone as a Git server</a>.</p>
197
+ <p>This actually makes a lot of sense when you start to think about it. Most Android phone have a microSD card slot to provide a huge storage bin (the lack of this on the Nexus 4 is baffling) so you don&#8217;t need to worry about running out of space. All of these devices have WiFi, making it easy to use them as an AP when there isn&#8217;t any other WiFi around. And the web-connected nature of the device will make syncing your repo over the Internet a snap.</p>
198
+ <p>Most of the behind the scenes work is done using Debian packages. This provides a few issues which [Andrew] walks through one by one. We also like his pointers like using &#8216;noatime&#8217; on your EXTx file systems to avoid wear on the SD card.</p>
199
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
200
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/android-hacks/" title="View all posts in android hacks" rel="category tag">android hacks</a>, <a href="http://hackaday.com/category/linux-hacks/" title="View all posts in linux hacks" rel="category tag">linux hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/android/" rel="tag">android</a>, <a href="http://hackaday.com/tag/gingerbread/" rel="tag">gingerbread</a>, <a href="http://hackaday.com/tag/git/" rel="tag">Git</a>, <a href="http://hackaday.com/tag/lighttpd/" rel="tag">lighttpd</a>, <a href="http://hackaday.com/tag/server/" rel="tag">server</a></span> </div>
201
+ </div><!-- end .postclass -->
202
+ <div class="post-96363 post type-post status-publish format-standard hentry category-microcontrollers tag-coffee-roaster tag-display tag-motor tag-pic tag-speed-controller">
203
+
204
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/19/fabricating-custom-displays-for-a-commercial-coffee-roaster/" title="Fabricating custom displays for a commercial coffee&nbsp;roaster" rel="bookmark">Fabricating custom displays for a commercial coffee&nbsp;roaster</a></h2>
205
+
206
+ <div class="post-info"><span class="date published time" title="2013-03-19T16:01:03+00:00">March 19, 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/19/fabricating-custom-displays-for-a-commercial-coffee-roaster/#comments">13 Comments</a></span> </div> <div class="entry-content">
207
+ <p><img class="aligncenter size-large wp-image-96364" alt="custom-display-panel-for-a-coffee-roaster" src="http://hackadaycom.files.wordpress.com/2013/03/custom-display-panel-for-a-coffee-roaster.jpg?w=580&#038;h=433" width="580" height="433" /></p>
208
+ <p>Roasting the perfect coffee bean is an art form. But even the most talented of roasters can use a little feedback on what&#8217;s going on with their equipment. [Ludzinc] recently helped out a friend of his by building this set of <a href="http://ludzinc.blogspot.com.au/2013/03/awesome-coffee.html">7-segment displays to show what&#8217;s happening with this coffee roaster</a>.</p>
209
+ <p>The yellow modules hiding underneath the display panel are responsible for setting the speed of the hot air blower and the rate at which the drum turns. They&#8217;re adjustable using some trimpots, but it sounds like the stock machine doesn&#8217;t give any type of speed feedback other than direct observation.</p>
210
+ <p>The solution was to patch into those speed controllers using the ADC of a PIC chip. They each output 0-10V, which [Ludzinc] measures via a voltage divider. After the speed is quantified the microcontroller outputs to one of the displays. Since there&#8217;s a different chip for each readout, the firmware can be custom tuned to suit the operator&#8217;s needs.</p>
211
+ <p>Keep this in mind if you&#8217;re still planning to <a href="http://hackaday.com/2012/07/27/building-a-coffee-roaster-from-junk/">build that coffee roaster out of a washing machine</a>.</p>
212
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
213
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/microcontrollers/" title="View all posts in Microcontrollers" rel="category tag">Microcontrollers</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/coffee-roaster/" rel="tag">coffee roaster</a>, <a href="http://hackaday.com/tag/display/" rel="tag">display</a>, <a href="http://hackaday.com/tag/motor/" rel="tag">motor</a>, <a href="http://hackaday.com/tag/pic/" rel="tag">pic</a>, <a href="http://hackaday.com/tag/speed-controller/" rel="tag">speed controller</a></span> </div>
214
+ </div><!-- end .postclass -->
215
+ <div class="post-96367 post type-post status-publish format-standard hentry category-video-hacks tag-mirror tag-monitor tag-stereoscopic">
216
+
217
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/19/stereoscopic-display-art-installation/" title="Stereoscopic display art&nbsp;installation" rel="bookmark">Stereoscopic display art&nbsp;installation</a></h2>
218
+
219
+ <div class="post-info"><span class="date published time" title="2013-03-19T14:01:40+00:00">March 19, 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/19/stereoscopic-display-art-installation/#comments">9 Comments</a></span> </div> <div class="entry-content">
220
+ <p><img class="aligncenter size-large wp-image-96368" alt="stereoscopic-display" src="http://hackadaycom.files.wordpress.com/2013/03/stereoscopic-display.jpg?w=580&#038;h=378" width="580" height="378" /></p>
221
+ <p>This rig is something of a museum or art installation, but the concept is so simple we thought it could easily inspire your next project. The two mirrors and two video sources <a href="http://www.instructables.com/id/Interactive-stereoscopic-installations-visual-rup">make up a stereoscopic display</a>.</p>
222
+ <p>The user sits between two displays (computer monitors shown here, but the post also shows images projected on two walls of a room). A pair of mirrors mounted at forty-five degrees form the eye pieces. It&#8217;s a V-shaped mirror assembly in which the narrow end pointing toward the bridge of the user&#8217;s nose. The mirrors reflect the images from the monitors, giving a different view for each eye.</p>
223
+ <p>In this case each monitor is playing back a video loop, but one is just slightly longer than the other. Each monitor has a potentiometer in front of it. The user can turn them to speed or slow the playback in an attempt to bring the video back into sync. We don&#8217;t think we&#8217;d replicate that portion of the project. But it might be fun to view some stereoscopic clips in this way. There&#8217;s even instructions on how two cameras were used to record the scenes.</p>
224
+ <p>You can get a closer view of the test apparatus in the clip after the jump.</p>
225
+ <p> <a href="http://hackaday.com/2013/03/19/stereoscopic-display-art-installation/#more-96367" class="more-link">[Read more...]</a></p>
226
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
227
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/video-hacks/" title="View all posts in video hacks" rel="category tag">video hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/mirror/" rel="tag">mirror</a>, <a href="http://hackaday.com/tag/monitor/" rel="tag">monitor</a>, <a href="http://hackaday.com/tag/stereoscopic/" rel="tag">stereoscopic</a></span> </div>
228
+ </div><!-- end .postclass -->
229
+ <div align="center">
230
+
231
+
232
+
233
+ <script type="text/javascript"><!--
234
+
235
+ google_ad_client = "ca-pub-1812638130783065";
236
+
237
+ /* Hackaday, 300x250, created 4/26/08, MedRect main column */
238
+
239
+ google_ad_slot = "3449215672";
240
+
241
+ google_ad_width = 300;
242
+
243
+ google_ad_height = 250;
244
+
245
+ //-->
246
+
247
+ </script>
248
+
249
+ <script type="text/javascript"
250
+
251
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
252
+
253
+ </script>
254
+
255
+
256
+
257
+ </div> <div class="post-96345 post type-post status-publish format-standard hentry category-internet-hacks tag-evernote tag-google-reader tag-json tag-python">
258
+
259
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/19/python-script-migrates-from-dying-google-reader-to-evernote/" title="Python script migrates from dying Google Reader to&nbsp;Evernote" rel="bookmark">Python script migrates from dying Google Reader to&nbsp;Evernote</a></h2>
260
+
261
+ <div class="post-info"><span class="date published time" title="2013-03-19T12:01:43+00:00">March 19, 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/19/python-script-migrates-from-dying-google-reader-to-evernote/#comments">17 Comments</a></span> </div> <div class="entry-content">
262
+ <p><img class="aligncenter size-full wp-image-96346" alt="google-reader-to-evernote" src="http://hackadaycom.files.wordpress.com/2013/03/google-reader-to-evernote.png?w=580&#038;h=290" width="580" height="290" /></p>
263
+ <p>We&#8217;re sure you&#8217;ve heard by now that Google has decided to close its RSS feed aggregator service called Google Reader. We&#8217;ve got to remember to get our list of thousands of great hacking blog feeds off of there before it&#8217;s gone. But just preserving the list is rather easy. [Paul Kerchen] has a bit different problem. He&#8217;s got hundreds of articles starred and he wants to preserve a way to find those pages again. His solution was to write his own <a href="https://github.com/kerchen/export_gr2evernote">Python script to migrate starred Google Reader articles over to Evernote</a>.</p>
264
+ <p>We&#8217;re not here to promote the Evernote service. But just so we&#8217;re on the same page, it&#8217;s an archiving system that lets you save things like webpages and text documents for access on a wide range of different platforms. So all that really needs to happen is for [Paul] to get the list of links from his starred articles folder formatted for import on Evernote. It starts by using <a href="https://www.google.com/takeout/">Google Takeout</a> to download an archive of his account data. Within this dump is a JSON formatted file called &#8216;starred.json&#8217;. His script parses the data and imports each article into Evernote. There&#8217;s even rate limiting to manage the daily import maximum of free accounts.</p>
265
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
266
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/internet-hacks/" title="View all posts in internet hacks" rel="category tag">internet hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/evernote/" rel="tag">evernote</a>, <a href="http://hackaday.com/tag/google-reader/" rel="tag">google reader</a>, <a href="http://hackaday.com/tag/json/" rel="tag">json</a>, <a href="http://hackaday.com/tag/python/" rel="tag">python</a></span> </div>
267
+ </div><!-- end .postclass -->
268
+ <div class="post-96349 post type-post status-publish format-standard hentry category-ask-hackaday tag-ask-hackaday tag-fail tag-hacking tag-hollywood tag-movies">
269
+
270
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/19/ask-hackaday-what-movies-have-the-bestworst-hacking-scenes/" title="Ask Hackaday: What movies have the best/worst hacking&nbsp;scenes" rel="bookmark">Ask Hackaday: What movies have the best/worst hacking&nbsp;scenes</a></h2>
271
+
272
+ <div class="post-info"><span class="date published time" title="2013-03-19T10:01:08+00:00">March 19, 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/19/ask-hackaday-what-movies-have-the-bestworst-hacking-scenes/#comments">334 Comments</a></span> </div> <div class="entry-content">
273
+ <p><img class="aligncenter size-full wp-image-96350" alt="best-and-worst-movie-hacking" src="http://hackadaycom.files.wordpress.com/2013/03/best-and-worst-movie-hacking.png?w=580&#038;h=415" width="580" height="415" /></p>
274
+ <p>It&#8217;s time to do your best impression of [Comic Book Guy] as you make your case for trash or triumph in big screen hacking scenes. We watch a lot of movies, and it&#8217;s hard not to groan when the filmmakers cut corners by doing zero research into what using a computer actually looks like. But then once in a great while you have a team that does its due diligence and puts up a scene that makes sense to those of us in the know. So we&#8217;re wondering, what movies do you think have the best hacking scenes, and which ones are the worst offenders? Leave your opinion on the topic in the comments section.</p>
275
+ <p>We realize that you can come up with tons of poorly done ones, <strong>what we would really like to hear about is who did it right.</strong> We&#8217;ll get you started with a couple of examples. The image on the upper left is a scene from <em>Tron: Legacy</em> which we think did a fantastic job of portraying actual computer usage. You can <a href="http://jtnimoy.net/?q=178">read more about the huge amount of work that went into it in this article</a> (via <a href="http://www.reddit.com/r/linux/comments/170eke/emacs_is_the_most_important_vfx_in_tron_legacy/">Reddit</a>).</p>
276
+ <p>In the lower right is one of the most shady movies scenes that comes to mind. [Hugh Jackman] is compelled to do some &#8216;hacking&#8217; by [John Travolta] in the movie <em>Swordfish</em>. The caption at the top of the screen is &#8220;COMPILER&#8221;, and who the heck knows what the rest of that is supposed to be?</p>
277
+ <p>On the hardware hacking side, it gets a little more difficult, we would LOVE some examples of <em>hardware hacks or mods</em> done right.</p>
278
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
279
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/ask-hackaday/" title="View all posts in Ask Hackaday" rel="category tag">Ask Hackaday</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/ask-hackaday/" rel="tag">Ask Hackaday</a>, <a href="http://hackaday.com/tag/fail/" rel="tag">fail</a>, <a href="http://hackaday.com/tag/hacking/" rel="tag">hacking</a>, <a href="http://hackaday.com/tag/hollywood/" rel="tag">hollywood</a>, <a href="http://hackaday.com/tag/movies/" rel="tag">movies</a></span> </div>
280
+ </div><!-- end .postclass -->
281
+ <div class="post-96291 post type-post status-publish format-standard hentry category-arduino-hacks category-drone-hacks category-toy-hacks tag-arduino-pro-mini tag-quadcopter">
282
+
283
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/19/diy-arduino-pro-mini-quadcopter/" title="DIY Arduino Pro Mini&nbsp;quadcopter" rel="bookmark">DIY Arduino Pro Mini&nbsp;quadcopter</a></h2>
284
+
285
+ <div class="post-info"><span class="date published time" title="2013-03-19T08:01:13+00:00">March 19, 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/19/diy-arduino-pro-mini-quadcopter/#comments">4 Comments</a></span> </div> <div class="entry-content">
286
+ <p><img class="alignnone size-full wp-image-96309" alt="DIY-arduino-pro-mini-quadcopter" src="http://hackadaycom.files.wordpress.com/2013/03/diy-arduino-pro-mini-quadcopter.jpg?w=470&#038;h=314" width="470" height="314" /></p>
287
+ <p>[execUc] took a stock V929 quadcopter and <a href="http://www.youtube.com/watch?v=8ePVVkbjizY">started making some crafty customizations.</a> The main change &#8211; the control electronics were replaced by an Arduino Pro Mini (16Mhz model). He soldered all the modules on a prototyping board and, although admittedly a bit heavy, the little guy takes flight with no problem.</p>
288
+ <p>Among other details, an HMC5883L (magnetometer) and MPU6050 (accelerometer / gyroscope) are used as sensors. A LiPo 7.4V battery pack supplies the power. The brushed motors are controlled by pulse-width modulation from SI2302 MOSFET with added diodes. He plans to swap out the micro-controller for an ARM7 stm32F103 for extra computing power, and needs to play with the PID values to correct a slight problem he seems to be having when rotating.</p>
289
+ <p>Check out a test flight video after the break. [execUc] has a thorough list of all the alterations he made in the video description, so be sure to read it.</p>
290
+ <p>[via <a href="http://hackedgadgets.com/">Hacked Gadgets</a>]</p>
291
+ <p> <a href="http://hackaday.com/2013/03/19/diy-arduino-pro-mini-quadcopter/#more-96291" class="more-link">[Read more...]</a></p>
292
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
293
+ <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/drone-hacks/" title="View all posts in drone hacks" rel="category tag">drone hacks</a>, <a href="http://hackaday.com/category/toy-hacks/" title="View all posts in toy hacks" rel="category tag">toy hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/arduino-pro-mini/" rel="tag">arduino pro mini</a>, <a href="http://hackaday.com/tag/quadcopter/" rel="tag">quadcopter</a></span> </div>
294
+ </div><!-- end .postclass -->
295
+ <div class="post-96306 post type-post status-publish format-standard hentry category-digital-cameras-hacks tag-gopro tag-steadycam">
296
+
297
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/19/make-your-own-steadycam-mount/" title="Make Your Own Steadycam&nbsp;Mount" rel="bookmark">Make Your Own Steadycam&nbsp;Mount</a></h2>
298
+
299
+ <div class="post-info"><span class="date published time" title="2013-03-19T06:01:10+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/make-your-own-steadycam-mount/#comments">13 Comments</a></span> </div> <div class="entry-content">
300
+ <p><a href="http://hackaday.com/?attachment_id=96312" rel="attachment wp-att-96312"><img class="aligncenter size-large wp-image-96312" alt="gopro-steadycam" src="http://hackadaycom.files.wordpress.com/2013/03/gopro-steadycam.png?w=580&#038;h=393" width="580" height="393" /></a></p>
301
+ <p>[Ryan] wrote in to tell us about his partially <a title="3D printed steady cam" href="http://www.instructables.com/id/3D-Printed-Steady-Cam/" target="_blank">3D-printed steadycam mount</a> on Instructables. In the video after the break, the camera does stay quite steady through some basic tests. The base is a paint roller handle, and the device works by using a long arm on the bottom with some weights to keep the camera upright. This handle is attached to the weights and camera through a 3-axis Gimbal system that allows the camera to stay relatively steady even if your hand isn&#8217;t. A full bill of materials and the needed STL files are provided.</p>
302
+ <p>Of course if you&#8217;re &#8220;old school&#8221; and like to use subtractive manufacturing methods, you can always check out this <a title="DIY Gadgets camera stabilizer (steady cam)" href="http://www.doityourselfgadgets.com/2012/08/camera-stabilizer.html" target="_blank">[camera stabilizer]</a> from [Do-It-Yourself Gadgets]. The device works in a nearly identical manner, but the BOM seems to be: metal, screws, threaded rod. There are some cool animated GIFs of it in action on the site, or check out the video after the break.</p>
303
+ <p>As a &#8220;camera mount&#8221; bonus, check out this super easy <a title="GoPro clamp mount" href="http://www.instructables.com/id/DIY-GoProCamera-Clamp-Mount-Under-2-Assembl/" target="_blank">[GoPro] (or any other small camera) clamp mount</a>.  Really clever. <a href="http://hackaday.com/2013/03/19/make-your-own-steadycam-mount/#more-96306" class="more-link">[Read more...]</a></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/digital-cameras-hacks/" title="View all posts in digital cameras hacks" rel="category tag">digital cameras hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/gopro/" rel="tag">GoPro</a>, <a href="http://hackaday.com/tag/steadycam/" rel="tag">steadycam</a></span> </div>
306
+ </div><!-- end .postclass -->
307
+ <div class="navigation"><div class="alignleft"><a href="http://hackaday.com/page/29/" >&laquo; Older Posts</a></div><div class="alignright"><a href="http://hackaday.com/page/27/" >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+MUpnR1dJcFZHTHpuZiVYaW5LLm9NaFNVOTh3UEZkJX5xdTdhfk10fE04NzZtWmpbVUdBUGMwVGFvUGIvdT9kZ1M4aD8lWzVqcHRMaXRHMTksY0c4UmprKz9NMX5qX0ZtdW9GTWR8QVJwMGh6RkJtSUw2Ri1qdmlWJl14OUg5SlpYWVk4R0c/ZFcsdi5LNA=='});
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>