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,814 @@
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 238 seconds ago
5
+ generated in 0.621 seconds
6
+ served from batcache in 0.005 seconds
7
+ expires in 62 seconds
8
+ -->
9
+ <head profile="http://gmpg.org/xfn/11">
10
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
11
+ <title>Hack a Day — Fresh hacks every day</title>
12
+ <meta name="description" content="Fresh hacks every day" />
13
+ <meta name="robots" content="noodp,noydir" />
14
+ <link rel="Shortcut Icon" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/images/favicon.ico?m=1353160633g" type="image/x-icon" />
15
+ <link rel="stylesheet" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/style.css?m=1363789849g" type="text/css" media="screen" />
16
+
17
+ <meta name="description" content="Fresh hacks every day" />
18
+ <meta name="keywords" content="hall of fame, fpga, nook hacks, internet hacks, marijuana hacks, network hacks, high voltage hacks, palm pre hacks, blackberry hacks, podcasts, virtual reality, drone hacks, lockpicking hacks, interviews, kindle hacks, phone hacks, weekly roundup, reviews, firefox hacks, g1 hacks" />
19
+ <script src='http://r-login.wordpress.com/remote-login.php?action=js&amp;host=hackaday.com&amp;id=4779443&amp;t=1366800889&amp;back=hackaday.com%2Fpage%2F4%2F' type="text/javascript"></script>
20
+ <script type="text/javascript">
21
+ /* <![CDATA[ */
22
+ if ( 'function' === typeof WPRemoteLogin ) {
23
+ document.cookie = "wordpress_test_cookie=test; path=/";
24
+ if ( document.cookie.match( /(;|^)\s*wordpress_test_cookie\=/ ) ) {
25
+ WPRemoteLogin();
26
+ }
27
+ }
28
+ /* ]]> */
29
+ </script>
30
+ <link rel="alternate" type="application/rss+xml" title="Hack a Day &raquo; Feed" href="http://feeds2.feedburner.com/hackaday/LgoM" />
31
+ <link rel="alternate" type="application/rss+xml" title="Hack a Day &raquo; Comments Feed" href="http://hackaday.com/comments/feed/" />
32
+ <script type="text/javascript">
33
+ /* <![CDATA[ */
34
+ function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){oldonload();func();}}}
35
+ /* ]]> */
36
+ </script>
37
+ <link rel="canonical" href="http://hackaday.com/" />
38
+ <link rel='stylesheet' id='all-css-0' href='http://s0.wp.com/_static/??-eJzTLy/QTc7PK0nNK9HPLdUtyClNz8wr1s/JzE4t1s9KLSlITM7WBfP0kouLdfSxKy/ILy7RTctJzCzSLy6pzEklVm1GYlFmXjqMxtBVkpGaC3RGhol+ek5+UmIOSIF9rq2hsZmZuYmxqbFlFgANUUYu' type='text/css' media='all' />
39
+ <script type='text/javascript'>
40
+ /* <![CDATA[ */
41
+ var SafeCommentsAjax = {"ajaxurl":"http:\/\/hackaday.com\/wp-admin\/admin-ajax.php"};
42
+ /* ]]> */
43
+ </script>
44
+ <script type='text/javascript' src='http://s0.wp.com/_static/??-eJyFz0sKAjEMBuALWUsZpjvxLKXGmjp92KQz6umNogtRFAJZ5Et+opeqMPup74B0lDp1aJdnW0da6V9AJQzNMbygL5kh893VQpyAyIVv0/cYzDPC8pdF4Or8UTUgvH5c5QNInp6x6jr1gJk0uT2IrqWxsJSEPX5w0Z1lfZs2ZrB2NIOxY7wBpfljQw=='></script>
45
+ <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://hackadaycom.wordpress.com/xmlrpc.php?rsd" />
46
+ <link rel="shortcut icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" sizes="16x16" />
47
+ <link rel="icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" sizes="16x16" />
48
+ <link rel="apple-touch-icon-precomposed" href="http://1.gravatar.com/blavatar/5560f98f805877b0e332f191cb9e0af3?s=114" />
49
+ <link rel='openid.server' href='http://hackadaycom.wordpress.com/?openidserver=1' />
50
+ <link rel='openid.delegate' href='http://hackadaycom.wordpress.com/' />
51
+ <link rel="search" type="application/opensearchdescription+xml" href="http://hackaday.com/osd.xml" title="Hack a Day" />
52
+ <link rel="search" type="application/opensearchdescription+xml" href="http://wordpress.com/opensearch.xml" title="WordPress.com" />
53
+ <style>
54
+ /* <![CDATA[ */
55
+ /* Block: reblog */
56
+
57
+ .reblog-from img { margin: 0 10px 0 0; vertical-align: middle; padding: 0; border: 0; }
58
+ .reblogger-note img.avatar { float: left; padding: 0; border: 0; }
59
+ .reblogger-note-content { margin: 0 0 20px; }
60
+ .reblog-post .wpcom-enhanced-excerpt-content { border-left: 3px solid #eee; padding-left: 15px; }
61
+ .reblog-post ul.thumb-list { display: block; list-style: none; margin: 2px 0; padding: 0; clear: both; }
62
+ .reblog-post ul.thumb-list li { display: inline; margin: 0; padding: 0 1px; border: 0; }
63
+ .reblog-post ul.thumb-list li a { margin: 0; padding: 0; border: 0; }
64
+ .reblog-post ul.thumb-list li img { margin: 0; padding: 0; border: 0; }
65
+
66
+ .reblog-post .wpcom-enhanced-excerpt { clear: both; }
67
+
68
+ .reblog-post .wpcom-enhanced-excerpt address,
69
+ .reblog-post .wpcom-enhanced-excerpt li,
70
+ .reblog-post .wpcom-enhanced-excerpt h1,
71
+ .reblog-post .wpcom-enhanced-excerpt h2,
72
+ .reblog-post .wpcom-enhanced-excerpt h3,
73
+ .reblog-post .wpcom-enhanced-excerpt h4,
74
+ .reblog-post .wpcom-enhanced-excerpt h5,
75
+ .reblog-post .wpcom-enhanced-excerpt h6,
76
+ .reblog-post .wpcom-enhanced-excerpt p { font-size: 100% !important; }
77
+
78
+ .reblog-post .wpcom-enhanced-excerpt blockquote,
79
+ .reblog-post .wpcom-enhanced-excerpt pre,
80
+ .reblog-post .wpcom-enhanced-excerpt code,
81
+ .reblog-post .wpcom-enhanced-excerpt q { font-size: 98% !important; }
82
+
83
+
84
+ /* ]]> */
85
+ </style>
86
+
87
+ <script type="text/javascript">var _sf_startpt=(new Date()).getTime()</script>
88
+ <style>
89
+ .wpcom-related-posts ul li {
90
+ list-style-type: none;
91
+ display: inline-block;
92
+ }
93
+ </style>
94
+ <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
95
+ <style type="text/css">
96
+ .recentcomments a {
97
+ display: inline !important;
98
+ padding: 0 !important;
99
+ margin: 0 !important;
100
+ }
101
+
102
+ table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar {
103
+ border: 0px;
104
+ margin: 0;
105
+ }
106
+
107
+ table.recentcommentsavatartop a, table.recentcommentsavatarend a {
108
+ border: 0px !important;
109
+ background-color: transparent !important;
110
+ }
111
+
112
+ td.recentcommentsavatarend, td.recentcommentsavatartop {
113
+ padding: 0px 0px 1px 0px;
114
+ margin: 0px;
115
+ }
116
+
117
+ td.recentcommentstextend {
118
+ border: none !important;
119
+ padding: 0px 0px 2px 10px;
120
+ }
121
+
122
+ .rtl td.recentcommentstextend {
123
+ padding: 0px 10px 2px 0px;
124
+ }
125
+
126
+ td.recentcommentstexttop {
127
+ border: none !important;
128
+ padding: 0px 0px 0px 10px;
129
+ }
130
+
131
+ .rtl td.recentcommentstexttop {
132
+ padding: 0px 10px 0px 0px;
133
+ }
134
+ </style>
135
+ <meta name="application-name" content="Hack a Day" /><meta name="msapplication-window" content="width=device-width;height=device-height" /><meta name="msapplication-tooltip" content="Fresh hacks every day" /><meta name="msapplication-task" content="name=Subscribe;action-uri=http://feeds2.feedburner.com/hackaday/LgoM;icon-uri=http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" /><style id="syntaxhighlighteranchor"></style>
136
+
137
+ <script>jQuery(document).ready(function($) {
138
+ $("cswap li a").click(function() {
139
+ $("link").attr("href",$(this).attr('rel'));
140
+ return false;
141
+ });
142
+ });</script>
143
+ <meta name="google-site-verification" content="v0_F4q2HixEv6wrQCEKBEbp2Wuj0oI9ywwaN6aoV0JE" />
144
+ </head>
145
+ <body class="home blog paged paged-4 typekit-enabled header-image content-sidebar highlander-enabled highlander-light">
146
+
147
+ <div id="fb-root"></div>
148
+ <script>(function(d, s, id) {
149
+ var js, fjs = d.getElementsByTagName(s)[0];
150
+ if (d.getElementById(id)) return;
151
+ js = d.createElement(s); js.id = id;
152
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
153
+ fjs.parentNode.insertBefore(js, fjs);
154
+ }(document, 'script', 'facebook-jssdk'));</script>
155
+ <div id="wrap">
156
+ <div id="header"><div class="wrap"><div id="title-area"><h1 id="title"><a href="http://hackaday.com/" title="Hack a Day">Hack a Day</a></h1><p id="description">Fresh hacks every day</p></div><!-- end #title-area --><div class="widget-area"><div = "leaderboard">
157
+ <script type="text/javascript"><!--
158
+ google_ad_client = "ca-pub-1812638130783065";
159
+ /* Hackaday, 728x90, created 4/26/08, Leaderboard */
160
+ google_ad_slot = "4036713767";
161
+ google_ad_width = 728;
162
+ google_ad_height = 90;
163
+ //-->
164
+ </script>
165
+ <script type="text/javascript"
166
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
167
+ </script>
168
+ </div>
169
+ <div id="adslice">
170
+
171
+ <script type="text/javascript"><!--
172
+ google_ad_client = "pub-1812638130783065";
173
+ /* Hackaday, 728x15, created 4/26/08, AdSlice */
174
+ google_ad_slot = "0246324944";
175
+ google_ad_width = 728;
176
+ google_ad_height = 15;
177
+ //-->
178
+ </script>
179
+
180
+ <script type="text/javascript"
181
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
182
+ </script>
183
+
184
+ </div></div><!-- end .widget-area --></div><!-- end .wrap --></div><!--end #header--><div id="nav"><div class="wrap"><ul id="menu-main" class="menu menu-primary superfish"><li id="menu-item-90201" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-90201"><a href="http://www.hackaday.com">Home</a></li>
185
+ <li id="menu-item-77211" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-77211"><a href="http://hackaday.com/contact-hack-a-day/">Submit a tip</a></li>
186
+ <li id="menu-item-90210" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-90210"><a href="http://forums.hackaday.com">forums</a></li>
187
+ <li id="menu-item-94591" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-94591"><a href="http://hackaday.com/hackaday-staff/">Hackaday Staff</a></li>
188
+ <li class="right search">
189
+ <form method="get" class="searchform" action="http://hackaday.com/" >
190
+
191
+ <input type="text" value="Search this website &hellip;" name="s" class="s" onfocus="if (this.value == 'Search this website &hellip;') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Search this website &hellip;';}" />
192
+ <input type="submit" class="searchsubmit" value="Search" />
193
+ </form>
194
+ </li></ul></div><!-- end .wrap --></div><div id="inner"><div class="wrap"> <div id="content-sidebar-wrap">
195
+ <div id="content" class="hfeed">
196
+ <div class="post-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">
197
+
198
+ <h2 class="entry-title"><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" rel="bookmark">3D Printing sensor mounts for the Oculus&nbsp;Rift</a></h2>
199
+
200
+ <div class="post-info"><span class="date published time" title="2013-04-17T12:42:34+00:00">April 17, 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/04/17/3d-printing-sensor-mounts-for-the-oculus-rift/#comments">7 Comments</a></span> </div> <div class="entry-content">
201
+ <p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='470' height='295' src='http://www.youtube.com/embed/Nzcq_jzyLY4?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
202
+ <p>While browsing an oculus rift thread on reddit, I saw someone mention how nice it would be to have some actual mounts for external sensors on their Rift. The idea is that adding additional sensors or cameras will allow us to expand the capabilities of the rift. With something like the Razor Hydra, you can add quick positional tracking (the rift only tracks rotation, not position). With some webcams, you could theoretically do some stereoscopic augmented reality.  Unfortunately, attaching all these things to the rift is a bit of a pain at the moment.</p>
203
+ <p>I had all the things right here in front of me to make this happen, so I did! I&#8217;ve quickly tossed together two accessories for the Rift.</p>
204
+
205
+ <style type='text/css'>
206
+ #gallery-97648-1 {
207
+ margin: auto;
208
+ }
209
+ #gallery-97648-1 .gallery-item {
210
+ float: left;
211
+ margin-top: 10px;
212
+ text-align: center;
213
+ width: 33%;
214
+ }
215
+ #gallery-97648-1 img {
216
+ border: 2px solid #cfcfcf;
217
+ }
218
+ #gallery-97648-1 .gallery-caption {
219
+ margin-left: 0;
220
+ }
221
+ </style>
222
+ <!-- see gallery_shortcode() in wp-includes/media.php -->
223
+ <div data-carousel-extra='{"blog_id":4779443,"permalink":"http:\/\/hackaday.com\/2013\/04\/17\/3d-printing-sensor-mounts-for-the-oculus-rift\/","likes_blog_id":4779443}' id='gallery-97648-1' class='gallery galleryid-97648 gallery-columns-3 gallery-size-thumbnail'><dl class='gallery-item'>
224
+ <dt class='gallery-icon landscape'>
225
+ <a href='http://hackaday.com/2013/04/17/3d-printing-sensor-mounts-for-the-oculus-rift/uu6qtbc_preview_featured/' title='uU6qTBc_preview_featured'><img data-liked='0' data-reblogged='0' data-attachment-id="97649" data-orig-file="http://hackadaycom.files.wordpress.com/2013/04/uu6qtbc_preview_featured.jpg" data-orig-size="690,518" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="uU6qTBc_preview_featured" data-image-description="" data-medium-file="http://hackadaycom.files.wordpress.com/2013/04/uu6qtbc_preview_featured.jpg?w=300" data-large-file="http://hackadaycom.files.wordpress.com/2013/04/uu6qtbc_preview_featured.jpg?w=580" width="90" height="67" src="http://hackadaycom.files.wordpress.com/2013/04/uu6qtbc_preview_featured.jpg?w=90&#038;h=67" class="attachment-thumbnail" alt="with hydra attached" /></a>
226
+ </dt>
227
+ <dd class='wp-caption-text gallery-caption'>
228
+ with hydra attached
229
+ </dd></dl><dl class='gallery-item'>
230
+ <dt class='gallery-icon landscape'>
231
+ <a href='http://hackaday.com/2013/04/17/3d-printing-sensor-mounts-for-the-oculus-rift/thudpe9_preview_featured/' title='THUDpE9_preview_featured'><img data-liked='0' data-reblogged='0' data-attachment-id="97650" data-orig-file="http://hackadaycom.files.wordpress.com/2013/04/thudpe9_preview_featured.jpg" data-orig-size="690,518" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="THUDpE9_preview_featured" data-image-description="" data-medium-file="http://hackadaycom.files.wordpress.com/2013/04/thudpe9_preview_featured.jpg?w=300" data-large-file="http://hackadaycom.files.wordpress.com/2013/04/thudpe9_preview_featured.jpg?w=580" width="90" height="67" src="http://hackadaycom.files.wordpress.com/2013/04/thudpe9_preview_featured.jpg?w=90&#038;h=67" class="attachment-thumbnail" alt="nothing attached" /></a>
232
+ </dt>
233
+ <dd class='wp-caption-text gallery-caption'>
234
+ nothing attached
235
+ </dd></dl>
236
+ <br style='clear: both;' />
237
+ </div>
238
+
239
+ <p>1. a small bracket that feeds onto the velcro on the back. People will likely use this for &#8220;heavy&#8221; position sensors. They may be fairly light, but any additional weight on the front of the rift is unwanted.</p>
240
+
241
+ <style type='text/css'>
242
+ #gallery-97648-2 {
243
+ margin: auto;
244
+ }
245
+ #gallery-97648-2 .gallery-item {
246
+ float: left;
247
+ margin-top: 10px;
248
+ text-align: center;
249
+ width: 33%;
250
+ }
251
+ #gallery-97648-2 img {
252
+ border: 2px solid #cfcfcf;
253
+ }
254
+ #gallery-97648-2 .gallery-caption {
255
+ margin-left: 0;
256
+ }
257
+ </style>
258
+ <!-- see gallery_shortcode() in wp-includes/media.php -->
259
+ <div data-carousel-extra='{"blog_id":4779443,"permalink":"http:\/\/hackaday.com\/2013\/04\/17\/3d-printing-sensor-mounts-for-the-oculus-rift\/","likes_blog_id":4779443}' id='gallery-97648-2' class='gallery galleryid-97648 gallery-columns-3 gallery-size-thumbnail'><dl class='gallery-item'>
260
+ <dt class='gallery-icon landscape'>
261
+ <a href='http://hackaday.com/2013/04/17/3d-printing-sensor-mounts-for-the-oculus-rift/9n88d7c_preview_featured/' title='9n88D7C_preview_featured'><img data-liked='0' data-reblogged='0' data-attachment-id="97652" data-orig-file="http://hackadaycom.files.wordpress.com/2013/04/9n88d7c_preview_featured.jpg" data-orig-size="690,518" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="9n88D7C_preview_featured" data-image-description="" data-medium-file="http://hackadaycom.files.wordpress.com/2013/04/9n88d7c_preview_featured.jpg?w=300" data-large-file="http://hackadaycom.files.wordpress.com/2013/04/9n88d7c_preview_featured.jpg?w=580" width="90" height="67" src="http://hackadaycom.files.wordpress.com/2013/04/9n88d7c_preview_featured.jpg?w=90&#038;h=67" class="attachment-thumbnail" alt="clipped on" /></a>
262
+ </dt>
263
+ <dd class='wp-caption-text gallery-caption'>
264
+ clipped on
265
+ </dd></dl><dl class='gallery-item'>
266
+ <dt class='gallery-icon landscape'>
267
+ <a href='http://hackaday.com/2013/04/17/3d-printing-sensor-mounts-for-the-oculus-rift/fqinvay_preview_featured/' title='fqInVAY_preview_featured'><img data-liked='0' data-reblogged='0' data-attachment-id="97651" data-orig-file="http://hackadaycom.files.wordpress.com/2013/04/fqinvay_preview_featured.jpg" data-orig-size="690,518" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="fqInVAY_preview_featured" data-image-description="" data-medium-file="http://hackadaycom.files.wordpress.com/2013/04/fqinvay_preview_featured.jpg?w=300" data-large-file="http://hackadaycom.files.wordpress.com/2013/04/fqinvay_preview_featured.jpg?w=580" width="90" height="67" src="http://hackadaycom.files.wordpress.com/2013/04/fqinvay_preview_featured.jpg?w=90&#038;h=67" class="attachment-thumbnail" alt="popped off" /></a>
268
+ </dt>
269
+ <dd class='wp-caption-text gallery-caption'>
270
+ popped off
271
+ </dd></dl>
272
+ <br style='clear: both;' />
273
+ </div>
274
+
275
+ <p>2. A snap-on face plate that has a modular design. This wold be for mounting cameras on the front of the rift.</p>
276
+ <p>All of these files can be <a href="http://www.thingiverse.com/thing:74779">downloaded here</a>.</p>
277
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
278
+ <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/featured/" title="View all posts in Featured" rel="category tag">Featured</a>, <a href="http://hackaday.com/category/virtual-reality-2/" title="View all posts in Virtual Reality" rel="category tag">Virtual Reality</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/3d-printing/" rel="tag">3d printing</a>, <a href="http://hackaday.com/tag/lulzbot/" rel="tag">lulzbot</a>, <a href="http://hackaday.com/tag/oculus-rift/" rel="tag">oculus rift</a>, <a href="http://hackaday.com/tag/virtual-reality/" rel="tag">virtual reality</a>, <a href="http://hackaday.com/tag/vr/" rel="tag">vr</a></span> </div>
279
+ </div><!-- end .postclass -->
280
+ <div class="post-97590 post type-post status-publish format-standard hentry category-macs-hacks category-repair-hacks tag-apple tag-magsafe tag-power-supply tag-psu">
281
+
282
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/04/17/apple-magsafe-cord-repair/" title="Apple MagSafe cord&nbsp;repair" rel="bookmark">Apple MagSafe cord&nbsp;repair</a></h2>
283
+
284
+ <div class="post-info"><span class="date published time" title="2013-04-17T12:01:36+00:00">April 17, 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/04/17/apple-magsafe-cord-repair/#comments">39 Comments</a></span> </div> <div class="entry-content">
285
+ <p><img class="aligncenter size-large wp-image-97591" alt="repairing-apple-magsafe" src="http://hackadaycom.files.wordpress.com/2013/04/repairing-apple-magsafe.jpg?w=580&#038;h=435" width="580" height="435" /></p>
286
+ <p>[Tommy Ward] had a big problem with the cord for his laptop power supply. This thing&#8217;s not cheap so he figured out a way to <a href="http://warrantyvoidifremoved.blogspot.ie/2013/04/repairing-charredburnedbroken-cable-on.html">fix the frayed cord on his Apple MagSafe</a>. He asserts that the shortened rubber collar on the plug end of the cord is to blame for this type of damage. We think rough use may have something to do with it too, but having had to repair our own feline-damaged power cords we&#8217;re not about to start pointing fingers.</p>
287
+ <p>To pull off an appropriate fix [Tommy] pries apart the case housing the power converter. This lets him get at the solder connections of the cord. After removing it from the circuit board he clips off the damaged portion of the cable. To reuse the strain relief grommet he drilled out the old portion of wire and insulation, making room for the undamaged cable to pass through, adding a cable tie on the inside to aide in strain relief. The last part of the fix involves gluing everything back together.</p>
288
+ <p>If your power supply problems have to do with the computer connector itself <a href="http://hackaday.com/2011/11/23/fixing-that-broken-laptop-power-jack/">there&#8217;s a fix for that too</a>.</p>
289
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
290
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/macs-hacks/" title="View all posts in macs hacks" rel="category tag">macs hacks</a>, <a href="http://hackaday.com/category/repair-hacks/" title="View all posts in repair hacks" rel="category tag">repair hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/apple/" rel="tag">apple</a>, <a href="http://hackaday.com/tag/magsafe/" rel="tag">magsafe</a>, <a href="http://hackaday.com/tag/power-supply/" rel="tag">power supply</a>, <a href="http://hackaday.com/tag/psu/" rel="tag">psu</a></span> </div>
291
+ </div><!-- end .postclass -->
292
+ <div class="post-97586 post type-post status-publish format-standard hentry category-raspberry-pi-2 category-security-hacks tag-hackerspace tag-rfid tag-rpi">
293
+
294
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/04/17/hackerspace-security-system-brings-rfid-video-feedback-and-automatic-doors/" title="Hackerspace security system brings RFID, video feedback, and automatic&nbsp;doors" rel="bookmark">Hackerspace security system brings RFID, video feedback, and automatic&nbsp;doors</a></h2>
295
+
296
+ <div class="post-info"><span class="date published time" title="2013-04-17T06:01:31+00:00">April 17, 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/04/17/hackerspace-security-system-brings-rfid-video-feedback-and-automatic-doors/#comments">37 Comments</a></span> </div> <div class="entry-content">
297
+ <p><img class="aligncenter size-large wp-image-97587" alt="rfid-hackerspace-door-lock" src="http://hackadaycom.files.wordpress.com/2013/04/rfid-hackerspace-door-lock.png?w=580&#038;h=222" width="580" height="222" /></p>
298
+ <p>[Will] has been hard at work on <a href="http://nesit.org/projects/">a replacement system for his Hackerspace&#8217;s RFID door lock</a>. The original is now several years old and he&#8217;s decided to upgrade to a much more powerful processor, adding some bells and whistles along the way.</p>
299
+ <p>The control box seen above is the exterior component of the system. It&#8217;s a telephone service box like you&#8217;d find on the back of most houses in the US. They had a few of these lying around and they are a perfect choice because&#8230; well&#8230; they&#8217;re meant to be locking enclosures that brave the elements. [Will] made the jump from an Arduino which has run the locks for the last three years to a Raspberry Pi board. This gives him a lot of extra power to work with and he took advantage of that by adding a vehicle backup LCD screen for visual feedback. You can see it giving the &#8216;Access Granted&#8217; message he used during testing but the demo video after the break shows that they plan to do some image scripting to display a head shot of the RFID tag owner whenever a tag is read.</p>
300
+ <p>There are several other features included as well. The system Tweets whenever a tag is read, helping the members keep tabs on who is hanging out at the space right now. It also patches into a sliding door which one of the members automated using a garage door opener motor.</p>
301
+ <p> <a href="http://hackaday.com/2013/04/17/hackerspace-security-system-brings-rfid-video-feedback-and-automatic-doors/#more-97586" class="more-link">[Read more...]</a></p>
302
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
303
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/raspberry-pi-2/" title="View all posts in Raspberry Pi" rel="category tag">Raspberry Pi</a>, <a href="http://hackaday.com/category/security-hacks/" title="View all posts in security hacks" rel="category tag">security hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/hackerspace/" rel="tag">hackerspace</a>, <a href="http://hackaday.com/tag/rfid/" rel="tag">rfid</a>, <a href="http://hackaday.com/tag/rpi/" rel="tag">RPi</a></span> </div>
304
+ </div><!-- end .postclass -->
305
+ <div align="center">
306
+
307
+
308
+
309
+ <script type="text/javascript"><!--
310
+
311
+ google_ad_client = "ca-pub-1812638130783065";
312
+
313
+ /* Hackaday, 300x250, created 4/26/08, MedRect main column */
314
+
315
+ google_ad_slot = "3449215672";
316
+
317
+ google_ad_width = 300;
318
+
319
+ google_ad_height = 250;
320
+
321
+ //-->
322
+
323
+ </script>
324
+
325
+ <script type="text/javascript"
326
+
327
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
328
+
329
+ </script>
330
+
331
+
332
+
333
+ </div> <div class="post-97582 post type-post status-publish format-standard hentry category-macs-hacks tag-imac tag-macbook">
334
+
335
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/04/16/hacked-together-mac-isnt-a-hackintosh/" title="Hacked together Mac isn&#8217;t a&nbsp;hackintosh" rel="bookmark">Hacked together Mac isn&#8217;t a&nbsp;hackintosh</a></h2>
336
+
337
+ <div class="post-info"><span class="date published time" title="2013-04-16T14:01:32+00:00">April 16, 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/04/16/hacked-together-mac-isnt-a-hackintosh/#comments">58 Comments</a></span> </div> <div class="entry-content">
338
+ <p><img class="aligncenter size-large wp-image-97583" alt="hacked-together-macintosh" src="http://hackadaycom.files.wordpress.com/2013/04/hacked-together-macintosh.jpg?w=580&#038;h=389" width="580" height="389" /></p>
339
+ <p>Check out this 20&#8243; iMac. Notice anything peculiar? Look closely at the branding above the Apple logo. The only thing that tips you off that <a href="http://braindeadlock.net/project-eyemac-aluminum-dreams/">this iMac is a hacked together unit</a> is that Acer logo on the replacement screen.</p>
340
+ <p>As we&#8217;ve so often been caught doing, [Flippy] was browsing eBay for deals. It&#8217;s a dangerous activity because you end up falling into purchases like an Aluminum iMac for $35. That led to the purchase of a very slim LED LCD monitor to use as the display. It fits perfectly behind the iMac&#8217;s glass bezel, which has a tiny chip in the upper right corner that doesn&#8217;t bother [Flippy]. It&#8217;s thin enough that this actually left room for him to add in the guts of a MacBook Pro which he had sitting in his unused parts pile. With all of the main components accounted for the rest is really just logistics like routing all of the cable connectors and adding openings for USB ports. What he ended up with is a high-end computer for a low-end price.</p>
341
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
342
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/macs-hacks/" title="View all posts in macs hacks" rel="category tag">macs hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/imac/" rel="tag">imac</a>, <a href="http://hackaday.com/tag/macbook/" rel="tag">macbook</a></span> </div>
343
+ </div><!-- end .postclass -->
344
+ <div class="post-97578 post type-post status-publish format-standard hentry category-beer-hacks tag-chest-freezer tag-kegerator tag-tap tag-tile">
345
+
346
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/04/16/building-a-kegerator-with-visual-style/" title="Building a kegerator with visual&nbsp;style" rel="bookmark">Building a kegerator with visual&nbsp;style</a></h2>
347
+
348
+ <div class="post-info"><span class="date published time" title="2013-04-16T12:01:45+00:00">April 16, 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/04/16/building-a-kegerator-with-visual-style/#comments">13 Comments</a></span> </div> <div class="entry-content">
349
+ <p><img class="aligncenter size-large wp-image-97579" alt="kegerator-with-tile-finish" src="http://hackadaycom.files.wordpress.com/2013/04/kegerator-with-tile-finish.jpg?w=580&#038;h=346" width="580" height="346" /></p>
350
+ <p>Let&#8217;s face it, most kegerator builds go something like this: acquire old refrigerator, drill hole for tap, profit. But [GiveMeMyNickelback] recently had the opportunity to do better and he delivered. Above you can see <a href="http://imgur.com/a/LnJdJ">the stylish chest freezer mod that serves up six beers on tap</a>.</p>
351
+ <p>Chest freezers are perfect for these builds as their top door design helps keep the cold air inside to boost the efficiency. The trick is to modify them without messing up the insulating properties of the appliance housing. [GMMN's] approach is a common one, build a cuff to go in between the lid and the body of the freezer. He started by building a wooden box open at both the top and the bottom. Many would have stopped there but to bring the bling he tiled the sides and front of that cuff, leaving an empty spot for the shank of each tap. With that taken care of he glued insulation to the inside of the cuff, and added weather-stripping to the bottom to seal with the top of the case. He used the holes from the lid hinge brackets to attach his add-on so that the freeze can be converted back to stock without any sign of his alterations.</p>
352
+ <p>We&#8217;d love to see a Bluetooth or Wifi add-on <a href="http://hackaday.com/2012/11/21/kitchen-island-monitors-and-distributes-home-brew-beer/">that monitors the beer volume in each keg</a>.</p>
353
+ <p>[via <a href="http://www.reddit.com/r/DIY/comments/1c6r1m/my_old_kegerator_broke_and_this_is_my_replacement/">Reddit</a>]</p>
354
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
355
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/beer-hacks/" title="View all posts in beer hacks" rel="category tag">beer hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/chest-freezer/" rel="tag">chest freezer</a>, <a href="http://hackaday.com/tag/kegerator/" rel="tag">kegerator</a>, <a href="http://hackaday.com/tag/tap/" rel="tag">tap</a>, <a href="http://hackaday.com/tag/tile/" rel="tag">TILE</a></span> </div>
356
+ </div><!-- end .postclass -->
357
+ <div class="post-97574 post type-post status-publish format-standard hentry category-digital-audio-hacks tag-optical-mouse tag-radio tag-web-radio">
358
+
359
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/04/16/tube-radio-husk-gets-a-web-radio-transplant/" title="Tube radio husk gets a web radio&nbsp;transplant" rel="bookmark">Tube radio husk gets a web radio&nbsp;transplant</a></h2>
360
+
361
+ <div class="post-info"><span class="date published time" title="2013-04-16T06:01:58+00:00">April 16, 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/04/16/tube-radio-husk-gets-a-web-radio-transplant/#comments">32 Comments</a></span> </div> <div class="entry-content">
362
+ <p><img class="aligncenter size-large wp-image-97575" alt="tube-radio-web-radio" src="http://hackadaycom.files.wordpress.com/2013/04/tube-radio-web-radio.jpg?w=580&#038;h=388" width="580" height="388" /></p>
363
+ <p>[Dominic Buchstaller] found this German Greatz tube radio at a flea market. It only cost him about €35 and was in a bit more rough condition than the finished product you see above. He also found that a portion of the original circuitry was missing, making it completely non-function. He cleaned up the case to improve the wife-acceptance-factor, and <a href="http://2dom.github.io/the-radio/">outfitted it with hardware to make it a web radio</a>.</p>
364
+ <p>Adding modern speakers was pretty easy as he was already replacing the original cloth bezel which has several holes and tears in it. A set of elements from some Logitech computer speakers served as the organ donors for this step in the process. As he was trying to keep a stock look he came up with a really neat hack to use the original knobs. The station select happens to have a large metal wheel on the inside which is about a centimeter wide. [Dominic] used the optical sensor from a mouse to monitor the turning of the dial by aiming the sensor at this wheel. Internet connectivity was provided by a wireless router he had on hand. This way he can stream music or play from an SD card he also used in the retrofit.</p>
365
+ <p>&nbsp;</p>
366
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
367
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/digital-audio-hacks/" title="View all posts in digital audio hacks" rel="category tag">digital audio hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/optical-mouse/" rel="tag">optical mouse</a>, <a href="http://hackaday.com/tag/radio/" rel="tag">radio</a>, <a href="http://hackaday.com/tag/web-radio/" rel="tag">web radio</a></span> </div>
368
+ </div><!-- end .postclass -->
369
+ <div class="post-97570 post type-post status-publish format-standard hentry category-home-entertainment-hacks tag-bacteria tag-console tag-gaming tag-project-unity">
370
+
371
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/04/15/original-hardware-for-fifteen-consoles-jammed-into-recently-completed-project-unity/" title="Original hardware for fifteen consoles jammed into recently completed Project&nbsp;Unity" rel="bookmark">Original hardware for fifteen consoles jammed into recently completed Project&nbsp;Unity</a></h2>
372
+
373
+ <div class="post-info"><span class="date published time" title="2013-04-15T14:01:09+00:00">April 15, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/04/15/original-hardware-for-fifteen-consoles-jammed-into-recently-completed-project-unity/#comments">83 Comments</a></span> </div> <div class="entry-content">
374
+ <p><img class="aligncenter size-large wp-image-97571" alt="project_unity_finished" src="http://hackadaycom.files.wordpress.com/2013/04/project_unity_finished.png?w=580&#038;h=323" width="580" height="323" /></p>
375
+ <p>This boxy monstrosity is big for a reason. It lets you <a href="http://www.made-by-bacteria.com/unity.html">play games on the original hardware of fifteen different gaming consoles</a>. That&#8217;s right, we said <strong>original hardware</strong>. One of the main goals of Project Unity was to keep the stock equipment by making any type of emulation &#8212; hardware or otherwise &#8212; taboo. The size of the case is a function of how much stuff is actually crammed in there. But the final shape was dictated by the available opening in [Bacteria's] living room entertainment center.</p>
376
+ <p>The video after the break walks us through each aspect of the build. We&#8217;re floored by the quote of 3,500 hours of build time. But as you get a look at the wiring-hell of each different module it&#8217;s easy to understand why it didn&#8217;t just build itself. One power supply and one controller make for the least complicated user experience possible. We already looked at <a href="http://hackaday.com/2012/08/20/making-a-gigantic-18-pole-16-throw-switch/">a giant switching mechanism that selects one console at a time</a> and <a href="http://hackaday.com/2012/06/03/76101/">the singular controller unit</a>. But [Bacteria] has a lot of other tricks up his sleeve which make this gold mine of a hacking reference piece.</p>
377
+ <p> <a href="http://hackaday.com/2013/04/15/original-hardware-for-fifteen-consoles-jammed-into-recently-completed-project-unity/#more-97570" class="more-link">[Read more...]</a></p>
378
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
379
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/home-entertainment-hacks/" title="View all posts in home entertainment hacks" rel="category tag">home entertainment hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/bacteria/" rel="tag">bacteria</a>, <a href="http://hackaday.com/tag/console/" rel="tag">console</a>, <a href="http://hackaday.com/tag/gaming/" rel="tag">gaming</a>, <a href="http://hackaday.com/tag/project-unity/" rel="tag">Project Unity</a></span> </div>
380
+ </div><!-- end .postclass -->
381
+ <div class="navigation"><div class="alignleft"><a href="http://hackaday.com/page/5/" >&laquo; Older Posts</a></div><div class="alignright"><a href="http://hackaday.com/page/3/" >Newer Posts &raquo;</a></div></div><!-- end .navigation --> </div><!-- end #content -->
382
+ <div id="sidebar" class="sidebar widget-area">
383
+ <div id=tl_ad>
384
+ <script type="text/javascript"><!--
385
+ google_ad_client = "ca-pub-1812638130783065";
386
+ /* Hackaday, 300x250, created 4/26/08, MedRect sidebar */
387
+ google_ad_slot = "7800245928";
388
+ google_ad_width = 300;
389
+ google_ad_height = 250;
390
+ //-->
391
+ </script>
392
+ <script type="text/javascript"
393
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
394
+ </script>
395
+
396
+ </div>
397
+
398
+
399
+
400
+
401
+
402
+
403
+ <div class="widget">
404
+ <h4>Never Miss a Hack</h4>
405
+ <div class="textwidget">
406
+
407
+ <!-- Place this tag where you want the badge to render. -->
408
+ <div class="g-plus" data-width= "280" data-href="https://plus.google.com/114843073658390316652" data-rel="publisher" data-theme="dark"></div>
409
+ <!-- Place this tag after the last badge tag. -->
410
+ <script type="text/javascript">
411
+ (function() {
412
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
413
+ po.src = 'https://apis.google.com/js/plusone.js';
414
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
415
+ })();
416
+ </script>
417
+
418
+ <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>
419
+
420
+ <a href="https://twitter.com/hackaday" class="twitter-follow-button" data-show-count="true" data-lang="en" data-size="large">Follow @twitter</a>
421
+ <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>
422
+
423
+ <a href="http://feeds2.feedburner.com/hackaday/LgoM" target="_blank"><img src="http://hackadaycom.files.wordpress.com/2012/11/orange.png" border="0"/></a>
424
+ <div class="clear"> </div>
425
+ <!-- Begin MailChimp Signup Form -->
426
+ <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
427
+
428
+ <div id="mc_embed_signup">
429
+ <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>
430
+ <label for="mce-EMAIL">Subscribe to our mailing list for sneak previews and behind the scenes info</label>
431
+ <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
432
+ <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
433
+ </form>
434
+ </div>
435
+
436
+ <!--End mc_embed_signup-->
437
+ </div>
438
+ </div>
439
+
440
+ <div id="categories-2" class="widget widget_categories"><div class="widget-wrap"><h4 class="widgettitle">Categories</h4>
441
+ <select name='cat' id='cat' class='postform' >
442
+ <option value='-1'>Select Category</option>
443
+ <option class="level-0" value="114554125">3d Printer hacks&nbsp;&nbsp;(116)</option>
444
+ <option class="level-0" value="18020710">android hacks&nbsp;&nbsp;(240)</option>
445
+ <option class="level-0" value="18020705">arduino hacks&nbsp;&nbsp;(1029)</option>
446
+ <option class="level-0" value="27981650">ARM&nbsp;&nbsp;(51)</option>
447
+ <option class="level-0" value="33199679">Ask Hackaday&nbsp;&nbsp;(29)</option>
448
+ <option class="level-0" value="64298109">ATtiny hacks&nbsp;&nbsp;(45)</option>
449
+ <option class="level-0" value="25122024">beer hacks&nbsp;&nbsp;(63)</option>
450
+ <option class="level-0" value="12115263">blackberry hacks&nbsp;&nbsp;(8)</option>
451
+ <option class="level-0" value="10969031">cellphones hacks&nbsp;&nbsp;(337)</option>
452
+ <option class="level-0" value="35745764">chemistry hacks&nbsp;&nbsp;(102)</option>
453
+ <option class="level-0" value="24483654">classic hacks&nbsp;&nbsp;(852)</option>
454
+ <option class="level-0" value="31677810">clock hacks&nbsp;&nbsp;(189)</option>
455
+ <option class="level-0" value="18755632">cnc hacks&nbsp;&nbsp;(341)</option>
456
+ <option class="level-0" value="568165">computer hacks&nbsp;&nbsp;(390)</option>
457
+ <option class="level-0" value="78428">cons&nbsp;&nbsp;(192)</option>
458
+ <option class="level-0" value="5738">contests&nbsp;&nbsp;(136)</option>
459
+ <option class="level-0" value="3923181">cooking hacks&nbsp;&nbsp;(72)</option>
460
+ <option class="level-0" value="10969032">digital audio hacks&nbsp;&nbsp;(422)</option>
461
+ <option class="level-0" value="10969033">digital cameras hacks&nbsp;&nbsp;(415)</option>
462
+ <option class="level-0" value="10969034">downloads hacks&nbsp;&nbsp;(101)</option>
463
+ <option class="level-0" value="107827385">drone hacks&nbsp;&nbsp;(10)</option>
464
+ <option class="level-0" value="63176382">Engine Hacks&nbsp;&nbsp;(31)</option>
465
+ <option class="level-0" value="35890">Featured&nbsp;&nbsp;(72)</option>
466
+ <option class="level-0" value="551890">firefox hacks&nbsp;&nbsp;(23)</option>
467
+ <option class="level-0" value="53446541">FPGA&nbsp;&nbsp;(1)</option>
468
+ <option class="level-0" value="18020562">g1 hacks&nbsp;&nbsp;(26)</option>
469
+ <option class="level-0" value="320557">google hacks&nbsp;&nbsp;(44)</option>
470
+ <option class="level-0" value="10969036">gps hacks&nbsp;&nbsp;(108)</option>
471
+ <option class="level-0" value="24535490">green hacks&nbsp;&nbsp;(152)</option>
472
+ <option class="level-0" value="27311668">Hackaday links&nbsp;&nbsp;(146)</option>
473
+ <option class="level-0" value="21755374">Hackerspaces&nbsp;&nbsp;(93)</option>
474
+ <option class="level-0" value="6310599">HackIt&nbsp;&nbsp;(101)</option>
475
+ <option class="level-0" value="10969037">handhelds hacks&nbsp;&nbsp;(189)</option>
476
+ <option class="level-0" value="79">hardware&nbsp;&nbsp;(249)</option>
477
+ <option class="level-0" value="144422905">High Voltage Hacks&nbsp;&nbsp;(5)</option>
478
+ <option class="level-0" value="66307084">Holiday Hacks&nbsp;&nbsp;(93)</option>
479
+ <option class="level-0" value="10969038">home entertainment hacks&nbsp;&nbsp;(516)</option>
480
+ <option class="level-0" value="5660882">home hacks&nbsp;&nbsp;(705)</option>
481
+ <option class="level-0" value="2708">how-to&nbsp;&nbsp;(135)</option>
482
+ <option class="level-0" value="908478">internet hacks&nbsp;&nbsp;(2)</option>
483
+ <option class="level-0" value="831">Interviews&nbsp;&nbsp;(13)</option>
484
+ <option class="level-0" value="1416772">iphone hacks&nbsp;&nbsp;(176)</option>
485
+ <option class="level-0" value="1275163">ipod hacks&nbsp;&nbsp;(144)</option>
486
+ <option class="level-0" value="344761">kickstarter&nbsp;&nbsp;(29)</option>
487
+ <option class="level-0" value="4157506">Kindle hacks&nbsp;&nbsp;(15)</option>
488
+ <option class="level-0" value="46717088">Kinect hacks&nbsp;&nbsp;(81)</option>
489
+ <option class="level-0" value="10969048">laptops hacks&nbsp;&nbsp;(111)</option>
490
+ <option class="level-0" value="10969055">laser hacks&nbsp;&nbsp;(167)</option>
491
+ <option class="level-0" value="18020716">led hacks&nbsp;&nbsp;(695)</option>
492
+ <option class="level-0" value="10626">lifehacks&nbsp;&nbsp;(54)</option>
493
+ <option class="level-0" value="729674">linux hacks&nbsp;&nbsp;(129)</option>
494
+ <option class="level-0" value="20732807">lockpicking hacks&nbsp;&nbsp;(11)</option>
495
+ <option class="level-0" value="10969060">macs hacks&nbsp;&nbsp;(135)</option>
496
+ <option class="level-0" value="144395979">Marijuana Hacks&nbsp;&nbsp;(2)</option>
497
+ <option class="level-0" value="11284667">Medical hacks&nbsp;&nbsp;(102)</option>
498
+ <option class="level-0" value="139916">Microcontrollers&nbsp;&nbsp;(512)</option>
499
+ <option class="level-0" value="5611793">misc hacks&nbsp;&nbsp;(1747)</option>
500
+ <option class="level-0" value="18020730">multitouch hacks&nbsp;&nbsp;(89)</option>
501
+ <option class="level-0" value="22652725">musical hacks&nbsp;&nbsp;(290)</option>
502
+ <option class="level-0" value="18020722">netbook hacks&nbsp;&nbsp;(50)</option>
503
+ <option class="level-0" value="6166512">Network Hacks&nbsp;&nbsp;(4)</option>
504
+ <option class="level-0" value="103">news&nbsp;&nbsp;(1091)</option>
505
+ <option class="level-0" value="1861880">nintendo ds hacks&nbsp;&nbsp;(34)</option>
506
+ <option class="level-0" value="114555425">nintendo gameboy hacks&nbsp;&nbsp;(90)</option>
507
+ <option class="level-0" value="18020685">nintendo hacks&nbsp;&nbsp;(261)</option>
508
+ <option class="level-0" value="4992726">nintendo wii hacks&nbsp;&nbsp;(78)</option>
509
+ <option class="level-0" value="118011206">Nook Hacks&nbsp;&nbsp;(1)</option>
510
+ <option class="level-0" value="114556430">palm pre hacks&nbsp;&nbsp;(6)</option>
511
+ <option class="level-0" value="245123">parts&nbsp;&nbsp;(72)</option>
512
+ <option class="level-0" value="10969081">peripherals hacks&nbsp;&nbsp;(648)</option>
513
+ <option class="level-0" value="16325149">phone hacks&nbsp;&nbsp;(17)</option>
514
+ <option class="level-0" value="10969088">playstation hacks&nbsp;&nbsp;(120)</option>
515
+ <option class="level-0" value="2060">podcasts&nbsp;&nbsp;(8)</option>
516
+ <option class="level-0" value="10969096">portable audio hacks&nbsp;&nbsp;(66)</option>
517
+ <option class="level-0" value="10969099">portable video hacks&nbsp;&nbsp;(57)</option>
518
+ <option class="level-0" value="588444">psp hacks&nbsp;&nbsp;(47)</option>
519
+ <option class="level-0" value="23971578">radio hacks&nbsp;&nbsp;(137)</option>
520
+ <option class="level-0" value="47">rants&nbsp;&nbsp;(28)</option>
521
+ <option class="level-0" value="69218551">Raspberry Pi&nbsp;&nbsp;(153)</option>
522
+ <option class="level-0" value="21870780">repair hacks&nbsp;&nbsp;(101)</option>
523
+ <option class="level-0" value="309">reviews&nbsp;&nbsp;(19)</option>
524
+ <option class="level-0" value="10969101">robots hacks&nbsp;&nbsp;(874)</option>
525
+ <option class="level-0" value="30302">roundup&nbsp;&nbsp;(35)</option>
526
+ <option class="level-0" value="10969111">security hacks&nbsp;&nbsp;(460)</option>
527
+ <option class="level-0" value="2301">Software Development&nbsp;&nbsp;(91)</option>
528
+ <option class="level-0" value="3796421">software hacks&nbsp;&nbsp;(47)</option>
529
+ <option class="level-0" value="10969116">solar hacks&nbsp;&nbsp;(46)</option>
530
+ <option class="level-0" value="10969121">tablet pcs hacks&nbsp;&nbsp;(40)</option>
531
+ <option class="level-0" value="3075183">teardown&nbsp;&nbsp;(31)</option>
532
+ <option class="level-0" value="10969130">tool hacks&nbsp;&nbsp;(657)</option>
533
+ <option class="level-0" value="25277004">toy hacks&nbsp;&nbsp;(360)</option>
534
+ <option class="level-0" value="10969134">transportation hacks&nbsp;&nbsp;(472)</option>
535
+ <option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(332)</option>
536
+ <option class="level-0" value="3184456">video hacks&nbsp;&nbsp;(211)</option>
537
+ <option class="level-0" value="34942364">Virtual Reality&nbsp;&nbsp;(9)</option>
538
+ <option class="level-0" value="50802420">weapons hacks&nbsp;&nbsp;(63)</option>
539
+ <option class="level-0" value="12552193">wearable hacks&nbsp;&nbsp;(183)</option>
540
+ <option class="level-0" value="39510952">Weekly roundup&nbsp;&nbsp;(18)</option>
541
+ <option class="level-0" value="4891215">wireless hacks&nbsp;&nbsp;(333)</option>
542
+ <option class="level-0" value="7079455">xbox hacks&nbsp;&nbsp;(130)</option>
543
+ </select>
544
+
545
+ <script type='text/javascript'>
546
+ /* <![CDATA[ */
547
+ var dropdown = document.getElementById("cat");
548
+ function onCatChange() {
549
+ if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
550
+ location.href = "http://hackaday.com/?cat="+dropdown.options[dropdown.selectedIndex].value;
551
+ }
552
+ }
553
+ dropdown.onchange = onCatChange;
554
+ /* ]]> */
555
+ </script>
556
+
557
+ </div></div>
558
+ <div id="featured-post-2" class="widget featuredpost"><div class="widget-wrap"><h4 class="widgettitle">In case you missed it</h4>
559
+ <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()-->
560
+
561
+ <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()-->
562
+
563
+ <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()-->
564
+
565
+ <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()-->
566
+
567
+ <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()-->
568
+
569
+ <p class="more-from-category"><a href="http://hackaday.com/category/featured/" title="Featured">More Posts from this Category</a></p></div></div>
570
+ <div id="recent-comments-2" class="widget widget_recent_comments"><div class="widget-wrap"><h4 class="widgettitle">Recent comments</h4>
571
+ <ul id="recentcomments">
572
+ <li class="recentcomments">
573
+ 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>
574
+ <li class="recentcomments">
575
+ <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>
576
+ <li class="recentcomments">
577
+ 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>
578
+ <li class="recentcomments">
579
+ 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>
580
+ <li class="recentcomments">
581
+ 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>
582
+ <li class="recentcomments">
583
+ 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>
584
+ <li class="recentcomments">
585
+ 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>
586
+ <li class="recentcomments">
587
+ <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>
588
+ <li class="recentcomments">
589
+ <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>
590
+ <li class="recentcomments">
591
+ 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>
592
+ </ul>
593
+ </div></div>
594
+ <div id="calendar-2" class="widget widget_calendar"><div class="widget-wrap"><h4 class="widgettitle">Find Hacks by Date</h4>
595
+ <div id="calendar_wrap"><table id="wp-calendar">
596
+ <caption>April 2013</caption>
597
+ <thead>
598
+ <tr>
599
+ <th scope="col" title="Sunday">S</th>
600
+ <th scope="col" title="Monday">M</th>
601
+ <th scope="col" title="Tuesday">T</th>
602
+ <th scope="col" title="Wednesday">W</th>
603
+ <th scope="col" title="Thursday">T</th>
604
+ <th scope="col" title="Friday">F</th>
605
+ <th scope="col" title="Saturday">S</th>
606
+ </tr>
607
+ </thead>
608
+
609
+ <tfoot>
610
+ <tr>
611
+ <td colspan="3" id="prev"><a href="http://hackaday.com/2013/03/" title="View posts for March 2013">&laquo; Mar</a></td>
612
+ <td class="pad">&nbsp;</td>
613
+ <td colspan="3" id="next" class="pad">&nbsp;</td>
614
+ </tr>
615
+ </tfoot>
616
+
617
+ <tbody>
618
+ <tr>
619
+ <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>
620
+ </tr>
621
+ <tr>
622
+ <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>
623
+ </tr>
624
+ <tr>
625
+ <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>
626
+ </tr>
627
+ <tr>
628
+ <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>
629
+ </tr>
630
+ <tr>
631
+ <td>28</td><td>29</td><td>30</td>
632
+ <td class="pad" colspan="4">&nbsp;</td>
633
+ </tr>
634
+ </tbody>
635
+ </table></div></div></div>
636
+ <div id=virurl>
637
+ <!-- BEGIN - VIRURL Widget - iFrame Embed Code -->
638
+ <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"
639
+ width="300" height="600" scrolling="no" >
640
+ </iframe>
641
+ <!-- END - VIRURL Widget - iFrame Embed Code -->
642
+ </div>
643
+ <br />
644
+ <br />
645
+ <div id=tl_ad_bottom>
646
+ <script type="text/javascript"><!--
647
+ google_ad_client = "ca-pub-1812638130783065";
648
+ /* Hackaday sidebar wide skyscraper */
649
+ google_ad_slot = "1587378096";
650
+ google_ad_width = 160;
651
+ google_ad_height = 600;
652
+ google_ad_region = "test";
653
+ //-->
654
+ </script>
655
+ <script type="text/javascript"
656
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
657
+ </script>
658
+ </div>
659
+
660
+
661
+ <br />
662
+
663
+
664
+
665
+
666
+
667
+
668
+ </div> </div><!-- end #content-sidebar-wrap -->
669
+ </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 -->
670
+ <script type="text/javascript">
671
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
672
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
673
+ </script>
674
+ <script type="text/javascript">
675
+ var pageTracker = _gat._getTracker("UA-2201445-6");
676
+ pageTracker._trackPageview();
677
+ </script>
678
+ <!-- Start Quantcast tag -->
679
+ <script type="text/javascript">
680
+ _qoptions={
681
+ qacct:"p-cc6zkdHuZwUDM"
682
+ };
683
+ </script>
684
+ <script type="text/javascript"
685
+ src="http://edge.quantserve.com/quant.js"></script>
686
+ <noscript>
687
+ <img src="http://pixel.quantserve.com/pixel/p-cc6zkdHuZwUDM.gif"
688
+ style="display: none;" border="0" height="1" width="1"
689
+ alt="Quantcast"/>
690
+ </noscript></div><!-- end #wrap -->
691
+
692
+ <script type="text/javascript">
693
+ var _qevents = _qevents || [], wpcomQuantcastData = {"qacct":"p-18-mFEk4J448M","labels":",language.en,type.wpcom,vip.hackadaycom"};
694
+ function wpcomQuantcastPixel( labels, options ) {
695
+ var i, defaults = wpcomQuantcastData, data = { event: 'ajax' };
696
+
697
+ labels = labels || '';
698
+ options = options || {};
699
+
700
+ if ( typeof labels != 'string' )
701
+ options = labels;
702
+
703
+ for ( i in defaults ) {
704
+ data[i] = defaults[i];
705
+ }
706
+
707
+ for ( i in options ) {
708
+ data[i] = options[i];
709
+ }
710
+
711
+ if ( data.labels ) {
712
+ data.labels += ',' + labels;
713
+ } else {
714
+ data.labels = labels;
715
+ }
716
+
717
+ _qevents.push( data );
718
+ };
719
+ (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); })();
720
+ _qevents.push( wpcomQuantcastData );
721
+ </script>
722
+ <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>
723
+
724
+
725
+ <!-- /// LOAD CHARTBEAT /// -->
726
+ <script type="text/javascript">
727
+ var _sf_async_config={};
728
+ _sf_async_config.uid = 2021;
729
+ _sf_async_config.useCanonical = true;
730
+
731
+ (function(){
732
+ function loadChartbeat() {
733
+ window._sf_endpt=(new Date()).getTime();
734
+ var e = document.createElement('script');
735
+ e.setAttribute('language', 'javascript');
736
+ e.setAttribute('type', 'text/javascript');
737
+ e.setAttribute('src',
738
+ (("https:" == document.location.protocol) ? "https://s3.amazonaws.com/" : "http://") +
739
+ "static.chartbeat.com/js/chartbeat.js");
740
+ document.body.appendChild(e);
741
+ }
742
+ var oldonload = window.onload;
743
+ window.onload = (typeof window.onload != 'function') ?
744
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
745
+ })();
746
+ </script>
747
+ <div style="display:none">
748
+ </div>
749
+
750
+ <div id="carousel-reblog-box">
751
+ <form action="" name="carousel-reblog">
752
+ <textarea id="carousel-reblog-content" name="carousel-reblog-content" onclick="if ( this.value == 'Add your thoughts here... (optional)' ) { this.value = ''; }" onblur="if ( this.value == '' || this.value == '' ) { this.value = 'Add your thoughts here... (optional)'; }">Add your thoughts here... (optional)</textarea>
753
+ <label for="carousel-reblog-to-blog-id" id="carousel-reblog-lblogid">Post to</label>
754
+ <select name="carousel-reblog-to-blog-id" id="carousel-reblog-to-blog-id">
755
+ </select>
756
+
757
+ <div class="submit">
758
+ <span class="canceltext"><a href="" class="cancel">Cancel</a></span>
759
+ <input type="submit" name="carousel-reblog-submit" class="button" id="carousel-reblog-submit" value="Reblog Post" />
760
+ <input type="hidden" id="carousel-reblog-blog-id" value="4779443" />
761
+ <input type="hidden" id="carousel-reblog-blog-url" value="http://hackaday.com" />
762
+ <input type="hidden" id="carousel-reblog-blog-title" value="Hack a Day" />
763
+ <input type="hidden" id="carousel-reblog-post-url" value="" />
764
+ <input type="hidden" id="carousel-reblog-post-title" value="" />
765
+ </div>
766
+
767
+ <input type="hidden" id="_wpnonce" name="_wpnonce" value="a06e0a2bd7" /><input type="hidden" name="_wp_http_referer" value="/page/4/" /> </form>
768
+
769
+ <div class="arrow"></div>
770
+ </div>
771
+ <link rel='stylesheet' id='all-css-0' href='http://s1.wp.com/wp-content/mu-plugins/carousel/jetpack-carousel.css?m=1366208951g' type='text/css' media='all' />
772
+ <script type='text/javascript'>
773
+ /* <![CDATA[ */
774
+ var jetpackCarouselStrings = {"widths":[370,700,1000,1200,1400,2000],"is_logged_in":"","lang":"en","ajaxurl":"http:\/\/hackaday.com\/wp-admin\/admin-ajax.php","nonce":"df9199e39d","display_exif":"1","display_geo":"1","background_color":"black","comment":"Comment","post_comment":"Post Comment","loading_comments":"Loading Comments...","download_original":"View full size <span class=\"photo-size\">{0}<span class=\"photo-size-times\">\u00d7<\/span>{1}<\/span>","no_comment_text":"Please be sure to submit some text with your comment.","no_comment_email":"Please provide an email address to comment.","no_comment_author":"Please provide your name to comment.","comment_post_error":"Sorry, but there was an error posting your comment. Please try again later.","comment_approved":"Your comment was approved.","comment_unapproved":"Your comment is in moderation.","camera":"Camera","aperture":"Aperture","shutter_speed":"Shutter Speed","focal_length":"Focal Length","comment_registration":"0","require_name_email":"1","login_url":"http:\/\/hackadaycom.wordpress.com\/wp-login.php?redirect_to=http%3A%2F%2Fhackaday.com%2F2013%2F04%2F17%2F3d-printing-sensor-mounts-for-the-oculus-rift%2F","local_comments_commenting_as":"<fieldset><label for=\"email\">Email (Required)<\/label> <input type=\"text\" name=\"email\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-email-field\" \/><\/fieldset><fieldset><label for=\"author\">Name (Required)<\/label> <input type=\"text\" name=\"author\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-author-field\" \/><\/fieldset><fieldset><label for=\"url\">Website<\/label> <input type=\"text\" name=\"url\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-url-field\" \/><\/fieldset>","reblog":"Reblog","reblogged":"Reblogged","reblog_add_thoughts":"Add your thoughts here... (optional)","reblogging":"Reblogging...","post_reblog":"Post Reblog","stats_query_args":"blog=4779443&v=wpcom&tz=-7&user_id=0&subd=hackadaycom","is_public":"1"};
775
+ var jetpackCarouselStrings = {"widths":[370,700,1000,1200,1400,2000],"is_logged_in":"","lang":"en","ajaxurl":"http:\/\/hackaday.com\/wp-admin\/admin-ajax.php","nonce":"df9199e39d","display_exif":"1","display_geo":"1","background_color":"black","comment":"Comment","post_comment":"Post Comment","loading_comments":"Loading Comments...","download_original":"View full size <span class=\"photo-size\">{0}<span class=\"photo-size-times\">\u00d7<\/span>{1}<\/span>","no_comment_text":"Please be sure to submit some text with your comment.","no_comment_email":"Please provide an email address to comment.","no_comment_author":"Please provide your name to comment.","comment_post_error":"Sorry, but there was an error posting your comment. Please try again later.","comment_approved":"Your comment was approved.","comment_unapproved":"Your comment is in moderation.","camera":"Camera","aperture":"Aperture","shutter_speed":"Shutter Speed","focal_length":"Focal Length","comment_registration":"0","require_name_email":"1","login_url":"http:\/\/hackadaycom.wordpress.com\/wp-login.php?redirect_to=http%3A%2F%2Fhackaday.com%2F2013%2F04%2F17%2F3d-printing-sensor-mounts-for-the-oculus-rift%2F","local_comments_commenting_as":"<fieldset><label for=\"email\">Email (Required)<\/label> <input type=\"text\" name=\"email\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-email-field\" \/><\/fieldset><fieldset><label for=\"author\">Name (Required)<\/label> <input type=\"text\" name=\"author\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-author-field\" \/><\/fieldset><fieldset><label for=\"url\">Website<\/label> <input type=\"text\" name=\"url\" class=\"jp-carousel-comment-form-field jp-carousel-comment-form-text-field\" id=\"jp-carousel-comment-form-url-field\" \/><\/fieldset>","reblog":"Reblog","reblogged":"Reblogged","reblog_add_thoughts":"Add your thoughts here... (optional)","reblogging":"Reblogging...","post_reblog":"Post Reblog","stats_query_args":"blog=4779443&v=wpcom&tz=-7&user_id=0&subd=hackadaycom","is_public":"1"};
776
+ /* ]]> */
777
+ </script>
778
+ <script type='text/javascript' src='http://s0.wp.com/_static/??-eJyljc0OwjAMg1+ILaBJ3QnxLKMLXUqbhabh5+0ZEpN24MbJku3Phoc0fuaKXCEqjHgnj/Jso+5gE9UJMypIwUyWISCjkkKi84fKyAZqguVCOv3FDiXoOkDsk40LutRUiH/58WZYXl9pt631PlsjyQKxgh/KbIoJIlYZ/LVZjYU55eOhc67vXO/28Q2Z3GfF'></script>
779
+ <script type="text/javascript">
780
+ // <![CDATA[
781
+ (function() {
782
+ try{
783
+ if ( window.external &&'msIsSiteMode' in window.external) {
784
+ if (window.external.msIsSiteMode()) {
785
+ var jl = document.createElement('script');
786
+ jl.type='text/javascript';
787
+ jl.async=true;
788
+ jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
789
+ var s = document.getElementsByTagName('script')[0];
790
+ s.parentNode.insertBefore(jl, s);
791
+ }
792
+ }
793
+ }catch(e){}
794
+ })();
795
+ // ]]>
796
+ </script><script src="http://s.stats.wordpress.com/w.js?21" type="text/javascript"></script>
797
+ <script type="text/javascript">
798
+ st_go({'blog':'4779443','v':'wpcom','tz':'-7','user_id':'0','subd':'hackadaycom'});
799
+ 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();}
800
+ ex_go({'crypt':'UE40eW5QN0p8M2Y/RE1BNmNJfGhxNCVxUDExYmtXRThKbHcwXTdETWI1alhvb1oseHImN101ZFpEakVpYjlQYVFLYzBaVHRtPz0wXS9bVlFpZ3c1Qn5KSThLNS9lSHNGOE1IJk9+N1BfZVJmakN3bE9ZeU9DRVN8dCs9RlI9VVYsby93dSZfUGZLUDA5LFBHL1NheG9YeTFzfHVFZXl2aGx6bm8sZTFucVBiLXJdLFFSJjFXOG53JVIvJk9iLVFrT3RbZjNEQ2w0bkw3QTQsb0lOeFR3S2cwfHVHa3loOUdnMFZVeDlYbTVtSkYtXUlKdnZbTi1QVEliZHcmZTA='});
801
+ addLoadEvent(function(){linktracker_init('4779443',0);});
802
+ </script>
803
+ <noscript><img src="http://stats.wordpress.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
804
+ <script type="text/javascript">
805
+ // Trigger Quantcast pixel for each Infinite Scroll post load
806
+ if ( 'function' === typeof( jQuery ) ) {
807
+ jQuery( document.body ).on( 'post-load', function() {
808
+ if ( 'function' === typeof( wpcomQuantcastPixel ) )
809
+ wpcomQuantcastPixel();
810
+ } );
811
+ }
812
+ </script>
813
+ </body>
814
+ </html>