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,795 @@
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 95 seconds ago
5
+ generated in 0.321 seconds
6
+ served from batcache in 0.002 seconds
7
+ expires in 205 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=1366801047&amp;back=hackaday.com%2Fpage%2F20%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-20 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-96878 post type-post status-publish format-standard hentry category-android-hacks category-led-hacks tag-android tag-bluetooth tag-led tag-minecraft tag-rgb-led">
197
+
198
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/27/android-controlled-minecraft-ores/" title="Android controlled Minecraft&nbsp;ores" rel="bookmark">Android controlled Minecraft&nbsp;ores</a></h2>
199
+
200
+ <div class="post-info"><span class="date published time" title="2013-03-27T06:00:43+00:00">March 27, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/brianbenchoff/" class="fn n" title="Brian Benchoff" rel="author">Brian Benchoff</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/27/android-controlled-minecraft-ores/#comments">6 Comments</a></span> </div> <div class="entry-content">
201
+ <p><img class="aligncenter size-full wp-image-96880" alt="P3260071" src="http://hackadaycom.files.wordpress.com/2013/03/p3260071.jpg?w=580&#038;h=313" width="580" height="313" /></p>
202
+ <p>[Ryan] has a friend with a birthday coming up, and being inspired by ever 12-year-olds favorite game, he decided to<a href="http://www.ryandiver.com/wordpress/2013/03/26/minecraft-cube/#more-36"> make a Minecraft ore block</a> with RGB LEDs. The block can change from diamonds to emeralds via commands send from an Android phone.</p>
203
+ <p>After a few false starts, [Ryan] eventually had his ore cube laser cut at Acess Space, a hackerspace-ish group in Sheffield. The box was constructed out of 3mm MDF, while the windows were laser cut out of frosted acrylic, while the stone pattern on the cube is one giant custom-made sticker.</p>
204
+ <p>With the tedious part of the build out of the way, [Ryan] set to work on the electronics. He used a PIC attached to a few very large RGB LEDs, and a Bluetooth module that allows him to connect his phone to an ore block. Dialing in the right colors took some work, but eventually, [Ryan] had an Android-controlled Minecraft ore block, able to transmutate between gold, iron, diamond, emerald, lapis, and redstone.</p>
205
+ <p>You can check out a video of [Ryan]&#8216;s ore block in action after the break.</p>
206
+ <p> <a href="http://hackaday.com/2013/03/27/android-controlled-minecraft-ores/#more-96878" class="more-link">[Read more...]</a></p>
207
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
208
+ <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/led-hacks/" title="View all posts in led hacks" rel="category tag">led hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/android/" rel="tag">android</a>, <a href="http://hackaday.com/tag/bluetooth/" rel="tag">bluetooth</a>, <a href="http://hackaday.com/tag/led/" rel="tag">led</a>, <a href="http://hackaday.com/tag/minecraft/" rel="tag">minecraft</a>, <a href="http://hackaday.com/tag/rgb-led/" rel="tag">RGB LED</a></span> </div>
209
+ </div><!-- end .postclass -->
210
+ <div class="post-96874 post type-post status-publish format-standard hentry category-tool-hacks tag-eagle tag-kicad tag-pcb tag-pcbmode">
211
+
212
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/27/turning-pcbs-into-art/" title="Turning PCBs into&nbsp;art" rel="bookmark">Turning PCBs into&nbsp;art</a></h2>
213
+
214
+ <div class="post-info"><span class="date published time" title="2013-03-27T04:00:14+00:00">March 27, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/brianbenchoff/" class="fn n" title="Brian Benchoff" rel="author">Brian Benchoff</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/27/turning-pcbs-into-art/#comments">34 Comments</a></span> </div> <div class="entry-content">
215
+ <p><img class="aligncenter size-full wp-image-96875" alt="board" src="http://hackadaycom.files.wordpress.com/2013/03/board.png?w=580&#038;h=349" width="580" height="349" /></p>
216
+ <p>Designing a circuit, laying out a board, and sending it off to be fabbed is so easy anyone can do it. A lot of people are, in fact, and with the traditional tools like KiCAD and Eagle, a lot of different boards look very, very similar. You could always add some cool silkscreen graphics to your board to make it stand out, but [Saar] has a better solution: it&#8217;s called <a href="http://boldport.blogspot.com/2013/01/introducing-pcbmode.html">PCBmodE</a>, and it allows you to draw circuits artistically instead of the 45° angles we&#8217;ve become so accustomed to.</p>
217
+ <p>PCBmodE takes the parts, pads, signals, and vias for boards stored in JSON files and converts them to an SVG representation. The file is then routed (manually, but [Saar] is working on automated routing) and Gerberized so it can be sent off to a production house.</p>
218
+ <p>You can grab PCBmodE <a href="https://bitbucket.org/boldport/pcbmode/overview">over on bitbucket</a>, but right now it&#8217;s still a very early version. <a href="http://boldport.blogspot.com/2013/03/pcbmode-update-copper-pours-and-stuff.html">Vias and copper pours are working</a>, but [Saar] has only fabbed <a href="http://boldport.blogspot.com/2013/02/first-look-at-pieceof.html">this board</a> so far.</p>
219
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
220
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/tool-hacks/" title="View all posts in tool hacks" rel="category tag">tool hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/eagle/" rel="tag">eagle</a>, <a href="http://hackaday.com/tag/kicad/" rel="tag">KiCAD</a>, <a href="http://hackaday.com/tag/pcb/" rel="tag">pcb</a>, <a href="http://hackaday.com/tag/pcbmode/" rel="tag">PCBmodE</a></span> </div>
221
+ </div><!-- end .postclass -->
222
+ <div class="post-96858 post type-post status-publish format-standard hentry category-arduino-hacks category-clock-hacks tag-arduino tag-atmega8 tag-atomic-clock tag-skull">
223
+
224
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/26/atomic-skull-clock-reminds-us-were-dying/" title="Atomic skull clock reminds us we&#8217;re&nbsp;dying" rel="bookmark">Atomic skull clock reminds us we&#8217;re&nbsp;dying</a></h2>
225
+
226
+ <div class="post-info"><span class="date published time" title="2013-03-26T18:01:38+00:00">March 26, 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/26/atomic-skull-clock-reminds-us-were-dying/#comments">25 Comments</a></span> </div> <div class="entry-content">
227
+ <p><img class="alignnone size-large wp-image-96859" alt="atomic-skull-clock" src="http://hackadaycom.files.wordpress.com/2013/03/atomic-skull-clock.jpg?w=580&#038;h=384" width="580" height="384" /></p>
228
+ <p>Whether you like it or not, every second that passes brings you one step closer to your own demise. It&#8217;s not a comforting topic to dwell upon, but it&#8217;s reality. <a href="http://www.mar.li/memento_mori.php">This art installation entitled &#8216;Memento Mori&#8217; is a haunting reminder of just that</a>. Even with all the advanced technology we have today, we still have absolutely no way of knowing just <em>when</em> our time will come.</p>
229
+ <p>[Martin] cast a real human skull, then added a 4 digit LED display that&#8217;s attached to a <a href="http://en.wikipedia.org/wiki/Rubidium_atomic_clock">rubidium atomic clock</a> (running a FE-5680A frequency standard). The display counts down a single second over and over, measured in millisecond-steps, from 1.000 to 0.001. He built a custom electronic circuit to convert the 10 MHz sine wave into a 1 kHz pulse signal, and used ATmega8 chips running an Arduino sketch to do the rest of the dirty work.</p>
230
+ <p>Watching the video after the break, with that smooth mysterious music in the background, one can&#8217;t help but ponder our mortality. On a personal note, this totally feels like something you&#8217;d find in a video game.</p>
231
+ <p>[Thanks Martin]</p>
232
+ <p> <a href="http://hackaday.com/2013/03/26/atomic-skull-clock-reminds-us-were-dying/#more-96858" class="more-link">[Read more...]</a></p>
233
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
234
+ <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/clock-hacks/" title="View all posts in clock hacks" rel="category tag">clock hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/arduino/" rel="tag">arduino</a>, <a href="http://hackaday.com/tag/atmega8/" rel="tag">atmega8</a>, <a href="http://hackaday.com/tag/atomic-clock/" rel="tag">atomic clock</a>, <a href="http://hackaday.com/tag/skull/" rel="tag">skull</a></span> </div>
235
+ </div><!-- end .postclass -->
236
+ <div align="center">
237
+
238
+
239
+
240
+ <script type="text/javascript"><!--
241
+
242
+ google_ad_client = "ca-pub-1812638130783065";
243
+
244
+ /* Hackaday, 300x250, created 4/26/08, MedRect main column */
245
+
246
+ google_ad_slot = "3449215672";
247
+
248
+ google_ad_width = 300;
249
+
250
+ google_ad_height = 250;
251
+
252
+ //-->
253
+
254
+ </script>
255
+
256
+ <script type="text/javascript"
257
+
258
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
259
+
260
+ </script>
261
+
262
+
263
+
264
+ </div> <div class="post-96840 post type-post status-publish format-standard hentry category-digital-cameras-hacks category-parts tag-apple tag-camera tag-quicktake tag-serial-cable tag-xp-emulator">
265
+
266
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/26/diy-6-serial-cable-for-vintage-apple-quicktake-cameras/" title="DIY $6 serial cable for vintage Apple QuickTake&nbsp;cameras" rel="bookmark">DIY $6 serial cable for vintage Apple QuickTake&nbsp;cameras</a></h2>
267
+
268
+ <div class="post-info"><span class="date published time" title="2013-03-26T16:01:39+00:00">March 26, 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/26/diy-6-serial-cable-for-vintage-apple-quicktake-cameras/#comments">15 Comments</a></span> </div> <div class="entry-content">
269
+ <p><img class="alignnone size-large wp-image-96841" alt="diy-serial-cable-for-vintage-apple-cameras" src="http://hackadaycom.files.wordpress.com/2013/03/diy-serial-cable-for-vintage-apple-cameras.jpg?w=580&#038;h=400" width="580" height="400" /></p>
270
+ <p>Knowing he was a guy who liked electronics and taking things apart, one of [Erik]&#8216;s friends sent him a vintage Apple QuickTake 100/150 digital camera as a bit of a joke. [Erik] enjoyed the gift, but since his friend hadn&#8217;t sent the necessary serial cable he really couldn&#8217;t do that much with it. He searched online only to discover the cable is very difficult to find these days, and thus very expensive. So, being the handy guy he is, <a href="http://myriadofthings.com/make-a-serial-cable-for-the-apple-quicktake-100150-for-5-35-without-soldering/">he built his own</a>.</p>
271
+ <p>Starting with an Apple MiniDin8 Male cable, he cut off one end and attached the wiring to a RJ45 connector. That got plugged into a modular adapter with a DB9 Female Plug end and wired up. The procedure required no soldering, and cost less than $6. Awesome.</p>
272
+ <p>Unfortunately the lack of serial cable isn&#8217;t the only problem he faced. QuickTake isn&#8217;t compatible with newer Apple computers that use Intel. You have to either have a much older Mac, or use a Windows XP emulator. If that wasn&#8217;t bad enough, the cameras only want to save photos in QuickTake file format. Luckily, [Erik] documents how he overcome all these issues in his post.</p>
273
+ <p>[Thanks Erik]</p>
274
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
275
+ <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>, <a href="http://hackaday.com/category/parts/" title="View all posts in parts" rel="category tag">parts</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/apple/" rel="tag">apple</a>, <a href="http://hackaday.com/tag/camera/" rel="tag">camera</a>, <a href="http://hackaday.com/tag/quicktake/" rel="tag">quicktake</a>, <a href="http://hackaday.com/tag/serial-cable/" rel="tag">serial cable</a>, <a href="http://hackaday.com/tag/xp-emulator/" rel="tag">xp emulator</a></span> </div>
276
+ </div><!-- end .postclass -->
277
+ <div class="post-96831 post type-post status-publish format-standard hentry category-raspberry-pi-2 tag-dos tag-emulation tag-raspi">
278
+
279
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/26/raspberry-pi-the-perfect-machine-for-old-dos-games/" title="Raspberry Pi: the perfect machine for old DOS&nbsp;games" rel="bookmark">Raspberry Pi: the perfect machine for old DOS&nbsp;games</a></h2>
280
+
281
+ <div class="post-info"><span class="date published time" title="2013-03-26T14:00:35+00:00">March 26, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/brianbenchoff/" class="fn n" title="Brian Benchoff" rel="author">Brian Benchoff</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/26/raspberry-pi-the-perfect-machine-for-old-dos-games/#comments">61 Comments</a></span> </div> <div class="entry-content">
282
+ <p><img class="aligncenter size-full wp-image-96835" alt="DOS" src="http://hackadaycom.files.wordpress.com/2013/03/dos.jpg?w=570&#038;h=147" width="570" height="147" /></p>
283
+ <p>There&#8217;s a treasure trove of excellent yet ancient games made for DOS that are nearly unplayable on modern computers. Awesome games like the Lucasarts SCUMM adventures, the original Civilization and SimCity, Starflight, the King&#8217;s Quest series and even Leisure Suit Larry aren&#8217;t played much today because of the near impossibilities of getting them to run on modern hardware or setting up an emulator with proper sound.</p>
284
+ <p>[Patrick] has been doing his best to help out classic gamers with <a href="http://rpix86.patrickaalto.com/index.html">an x86 emulator for the Raspberry Pi</a>. It&#8217;s designed to be a very capable DOS box with 20 MB of extended memory, a 640&#215;480 display with 256 colors, an ~20MHz 486 emulated CPU, and a Soundblaster 2.0 sound card.</p>
285
+ <p>There&#8217;s still a lot of work to be done, but outside of finding a 20-year-old computer, emulation on a Raspberry Pi it probably the most authentic DOS gaming experience you&#8217;ll get.</p>
286
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
287
+ <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></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/dos/" rel="tag">dos</a>, <a href="http://hackaday.com/tag/emulation/" rel="tag">emulation</a>, <a href="http://hackaday.com/tag/raspi/" rel="tag">Raspi</a></span> </div>
288
+ </div><!-- end .postclass -->
289
+ <div class="post-96814 post type-post status-publish format-standard hentry category-arduino-hacks tag-arduino-due tag-asterisk tag-phones tag-ruby tag-sinatra">
290
+
291
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/26/get-phone-calls-answered-with-the-moshi-moshi/" title="Get Phone Calls Answered with the Moshi&nbsp;Moshi" rel="bookmark">Get Phone Calls Answered with the Moshi&nbsp;Moshi</a></h2>
292
+
293
+ <div class="post-info"><span class="date published time" title="2013-03-26T12:01:44+00:00">March 26, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/ericevenchick/" class="fn n" title="Eric Evenchick" rel="author">Eric Evenchick</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/26/get-phone-calls-answered-with-the-moshi-moshi/#comments">28 Comments</a></span> </div> <div class="entry-content">
294
+ <p><a href="http://hackaday.com/?attachment_id=96815" rel="attachment wp-att-96815"><img class="alignnone size-large wp-image-96815" alt="Moshi Moshi" src="http://hackadaycom.files.wordpress.com/2013/03/moshimoshi.jpg?w=580&#038;h=387" width="580" height="387" /></a></p>
295
+ <p>Have a significant other that isn&#8217;t the best at picking up the phone? [Aaron] was having a hard time reaching his wife, so he hacked up a solution. The <a title="Moshi Moshi" href="http://aaron-sherwood.com/blog/?p=712">Moshi Moshi</a> detects calls from [Aaron], and plays music to get her attention.</p>
296
+ <p>A remote server running Asterisk picks up the call and uses a Ruby script to log the call. Every ten seconds, an Arduino Due with an Ethernet shield polls a Sinatra web server to see if a call has arrived. If a new call has come in, a music loop is played. Getting the Due to loop audio was a bit of a challenge, but the end result sounds good.</p>
297
+ <p>Quite a bit of tech is brought together to make the Moshi Moshi, and all the code is provided in the write up. This could be helpful to anyone looking to combine hardware with the Asterisk PBX. After the break, [Aaron] shows us how the system works.</p>
298
+ <p> <a href="http://hackaday.com/2013/03/26/get-phone-calls-answered-with-the-moshi-moshi/#more-96814" class="more-link">[Read more...]</a></p>
299
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
300
+ <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></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/arduino-due/" rel="tag">Arduino DUE</a>, <a href="http://hackaday.com/tag/asterisk/" rel="tag">asterisk</a>, <a href="http://hackaday.com/tag/phones/" rel="tag">phones</a>, <a href="http://hackaday.com/tag/ruby/" rel="tag">ruby</a>, <a href="http://hackaday.com/tag/sinatra/" rel="tag">sinatra</a></span> </div>
301
+ </div><!-- end .postclass -->
302
+ <div class="post-96822 post type-post status-publish format-standard hentry category-classic-hacks tag-dumb-terminal tag-teletype tag-terminal">
303
+
304
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/26/having-fun-with-dumb-terminals/" title="Having fun with dumb&nbsp;terminals" rel="bookmark">Having fun with dumb&nbsp;terminals</a></h2>
305
+
306
+ <div class="post-info"><span class="date published time" title="2013-03-26T10:00:39+00:00">March 26, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/brianbenchoff/" class="fn n" title="Brian Benchoff" rel="author">Brian Benchoff</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/26/having-fun-with-dumb-terminals/#comments">36 Comments</a></span> </div> <div class="entry-content">
307
+ <p><img class="aligncenter size-full wp-image-96823" alt="terminal" src="http://hackadaycom.files.wordpress.com/2013/03/terminal.jpg?w=580&#038;h=263" width="580" height="263" /></p>
308
+ <p>For a long time now, [Morgan] has been wanting an old serial terminal. In a stroke of luck, one of his pals at the Quelab hackerspace scored an awesome ADM-3A terminal from a collector. It&#8217;s a historically significant piece of computing and UNIX history, so obviously [Morgan] <a href="http://quelab.net/wordpress/6391/old-tech-adm-3a-serial-terminal/">needed to get it working</a>.</p>
309
+ <p>The ADM-3A terminal pre-dates the famous DEC VT-100 terminal, but since [Morgan]&#8216;s new acquisition speaks RS-232, he had a good shot at getting it to work with one of his more modern boxes. He&#8217;s using a Windows laptop loaded up with FreeBSD in a VM to talk to the terminal. Surprisingly, the only additional hardware required was a USB to serial cable and a DE9-DB25 serial adapter.</p>
310
+ <p>It may not be as cool (or as loud) as Quelab&#8217;s <a href="http://www.flickr.com/photos/killbox/7839549408/in/set-72157626476715713/lightbox/">Teletype ASR-35</a> they have set up for Zork sessions, but it&#8217;s great to see ancient hardware have <em>some<span style="text-decoration:underline;"><br />
311
+ </span></em> use. Right now, [Morgan] is editing files with vi and of course playing Zork. Seems like there&#8217;s plenty of life left in this old dumb terminal. After looking for an old VT-100 for a while now, I&#8217;ve got to say I&#8217;m pretty jealous.</p>
312
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
313
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/classic-hacks/" title="View all posts in classic hacks" rel="category tag">classic hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/dumb-terminal/" rel="tag">dumb terminal</a>, <a href="http://hackaday.com/tag/teletype/" rel="tag">teletype</a>, <a href="http://hackaday.com/tag/terminal/" rel="tag">terminal</a></span> </div>
314
+ </div><!-- end .postclass -->
315
+ <div class="navigation"><div class="alignleft"><a href="http://hackaday.com/page/21/" >&laquo; Older Posts</a></div><div class="alignright"><a href="http://hackaday.com/page/19/" >Newer Posts &raquo;</a></div></div><!-- end .navigation --> </div><!-- end #content -->
316
+ <div id="sidebar" class="sidebar widget-area">
317
+ <div id=tl_ad>
318
+ <script type="text/javascript"><!--
319
+ google_ad_client = "ca-pub-1812638130783065";
320
+ /* Hackaday, 300x250, created 4/26/08, MedRect sidebar */
321
+ google_ad_slot = "7800245928";
322
+ google_ad_width = 300;
323
+ google_ad_height = 250;
324
+ //-->
325
+ </script>
326
+ <script type="text/javascript"
327
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
328
+ </script>
329
+
330
+ </div>
331
+
332
+
333
+
334
+
335
+
336
+
337
+ <div class="widget">
338
+ <h4>Never Miss a Hack</h4>
339
+ <div class="textwidget">
340
+
341
+ <!-- Place this tag where you want the badge to render. -->
342
+ <div class="g-plus" data-width= "280" data-href="https://plus.google.com/114843073658390316652" data-rel="publisher" data-theme="dark"></div>
343
+ <!-- Place this tag after the last badge tag. -->
344
+ <script type="text/javascript">
345
+ (function() {
346
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
347
+ po.src = 'https://apis.google.com/js/plusone.js';
348
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
349
+ })();
350
+ </script>
351
+
352
+ <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>
353
+
354
+ <a href="https://twitter.com/hackaday" class="twitter-follow-button" data-show-count="true" data-lang="en" data-size="large">Follow @twitter</a>
355
+ <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>
356
+
357
+ <a href="http://feeds2.feedburner.com/hackaday/LgoM" target="_blank"><img src="http://hackadaycom.files.wordpress.com/2012/11/orange.png" border="0"/></a>
358
+ <div class="clear"> </div>
359
+ <!-- Begin MailChimp Signup Form -->
360
+ <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
361
+
362
+ <div id="mc_embed_signup">
363
+ <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>
364
+ <label for="mce-EMAIL">Subscribe to our mailing list for sneak previews and behind the scenes info</label>
365
+ <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
366
+ <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
367
+ </form>
368
+ </div>
369
+
370
+ <!--End mc_embed_signup-->
371
+ </div>
372
+ </div>
373
+
374
+ <div id="categories-2" class="widget widget_categories"><div class="widget-wrap"><h4 class="widgettitle">Categories</h4>
375
+ <select name='cat' id='cat' class='postform' >
376
+ <option value='-1'>Select Category</option>
377
+ <option class="level-0" value="114554125">3d Printer hacks&nbsp;&nbsp;(116)</option>
378
+ <option class="level-0" value="18020710">android hacks&nbsp;&nbsp;(240)</option>
379
+ <option class="level-0" value="18020705">arduino hacks&nbsp;&nbsp;(1029)</option>
380
+ <option class="level-0" value="27981650">ARM&nbsp;&nbsp;(51)</option>
381
+ <option class="level-0" value="33199679">Ask Hackaday&nbsp;&nbsp;(29)</option>
382
+ <option class="level-0" value="64298109">ATtiny hacks&nbsp;&nbsp;(45)</option>
383
+ <option class="level-0" value="25122024">beer hacks&nbsp;&nbsp;(63)</option>
384
+ <option class="level-0" value="12115263">blackberry hacks&nbsp;&nbsp;(8)</option>
385
+ <option class="level-0" value="10969031">cellphones hacks&nbsp;&nbsp;(337)</option>
386
+ <option class="level-0" value="35745764">chemistry hacks&nbsp;&nbsp;(102)</option>
387
+ <option class="level-0" value="24483654">classic hacks&nbsp;&nbsp;(852)</option>
388
+ <option class="level-0" value="31677810">clock hacks&nbsp;&nbsp;(189)</option>
389
+ <option class="level-0" value="18755632">cnc hacks&nbsp;&nbsp;(341)</option>
390
+ <option class="level-0" value="568165">computer hacks&nbsp;&nbsp;(390)</option>
391
+ <option class="level-0" value="78428">cons&nbsp;&nbsp;(192)</option>
392
+ <option class="level-0" value="5738">contests&nbsp;&nbsp;(136)</option>
393
+ <option class="level-0" value="3923181">cooking hacks&nbsp;&nbsp;(72)</option>
394
+ <option class="level-0" value="10969032">digital audio hacks&nbsp;&nbsp;(422)</option>
395
+ <option class="level-0" value="10969033">digital cameras hacks&nbsp;&nbsp;(415)</option>
396
+ <option class="level-0" value="10969034">downloads hacks&nbsp;&nbsp;(101)</option>
397
+ <option class="level-0" value="107827385">drone hacks&nbsp;&nbsp;(10)</option>
398
+ <option class="level-0" value="63176382">Engine Hacks&nbsp;&nbsp;(31)</option>
399
+ <option class="level-0" value="35890">Featured&nbsp;&nbsp;(72)</option>
400
+ <option class="level-0" value="551890">firefox hacks&nbsp;&nbsp;(23)</option>
401
+ <option class="level-0" value="53446541">FPGA&nbsp;&nbsp;(1)</option>
402
+ <option class="level-0" value="18020562">g1 hacks&nbsp;&nbsp;(26)</option>
403
+ <option class="level-0" value="320557">google hacks&nbsp;&nbsp;(44)</option>
404
+ <option class="level-0" value="10969036">gps hacks&nbsp;&nbsp;(108)</option>
405
+ <option class="level-0" value="24535490">green hacks&nbsp;&nbsp;(152)</option>
406
+ <option class="level-0" value="27311668">Hackaday links&nbsp;&nbsp;(146)</option>
407
+ <option class="level-0" value="21755374">Hackerspaces&nbsp;&nbsp;(93)</option>
408
+ <option class="level-0" value="6310599">HackIt&nbsp;&nbsp;(101)</option>
409
+ <option class="level-0" value="10969037">handhelds hacks&nbsp;&nbsp;(189)</option>
410
+ <option class="level-0" value="79">hardware&nbsp;&nbsp;(249)</option>
411
+ <option class="level-0" value="144422905">High Voltage Hacks&nbsp;&nbsp;(5)</option>
412
+ <option class="level-0" value="66307084">Holiday Hacks&nbsp;&nbsp;(93)</option>
413
+ <option class="level-0" value="10969038">home entertainment hacks&nbsp;&nbsp;(516)</option>
414
+ <option class="level-0" value="5660882">home hacks&nbsp;&nbsp;(705)</option>
415
+ <option class="level-0" value="2708">how-to&nbsp;&nbsp;(135)</option>
416
+ <option class="level-0" value="908478">internet hacks&nbsp;&nbsp;(2)</option>
417
+ <option class="level-0" value="831">Interviews&nbsp;&nbsp;(13)</option>
418
+ <option class="level-0" value="1416772">iphone hacks&nbsp;&nbsp;(176)</option>
419
+ <option class="level-0" value="1275163">ipod hacks&nbsp;&nbsp;(144)</option>
420
+ <option class="level-0" value="344761">kickstarter&nbsp;&nbsp;(29)</option>
421
+ <option class="level-0" value="4157506">Kindle hacks&nbsp;&nbsp;(15)</option>
422
+ <option class="level-0" value="46717088">Kinect hacks&nbsp;&nbsp;(81)</option>
423
+ <option class="level-0" value="10969048">laptops hacks&nbsp;&nbsp;(111)</option>
424
+ <option class="level-0" value="10969055">laser hacks&nbsp;&nbsp;(167)</option>
425
+ <option class="level-0" value="18020716">led hacks&nbsp;&nbsp;(695)</option>
426
+ <option class="level-0" value="10626">lifehacks&nbsp;&nbsp;(54)</option>
427
+ <option class="level-0" value="729674">linux hacks&nbsp;&nbsp;(129)</option>
428
+ <option class="level-0" value="20732807">lockpicking hacks&nbsp;&nbsp;(11)</option>
429
+ <option class="level-0" value="10969060">macs hacks&nbsp;&nbsp;(135)</option>
430
+ <option class="level-0" value="144395979">Marijuana Hacks&nbsp;&nbsp;(2)</option>
431
+ <option class="level-0" value="11284667">Medical hacks&nbsp;&nbsp;(102)</option>
432
+ <option class="level-0" value="139916">Microcontrollers&nbsp;&nbsp;(512)</option>
433
+ <option class="level-0" value="5611793">misc hacks&nbsp;&nbsp;(1747)</option>
434
+ <option class="level-0" value="18020730">multitouch hacks&nbsp;&nbsp;(89)</option>
435
+ <option class="level-0" value="22652725">musical hacks&nbsp;&nbsp;(290)</option>
436
+ <option class="level-0" value="18020722">netbook hacks&nbsp;&nbsp;(50)</option>
437
+ <option class="level-0" value="6166512">Network Hacks&nbsp;&nbsp;(4)</option>
438
+ <option class="level-0" value="103">news&nbsp;&nbsp;(1091)</option>
439
+ <option class="level-0" value="1861880">nintendo ds hacks&nbsp;&nbsp;(34)</option>
440
+ <option class="level-0" value="114555425">nintendo gameboy hacks&nbsp;&nbsp;(90)</option>
441
+ <option class="level-0" value="18020685">nintendo hacks&nbsp;&nbsp;(261)</option>
442
+ <option class="level-0" value="4992726">nintendo wii hacks&nbsp;&nbsp;(78)</option>
443
+ <option class="level-0" value="118011206">Nook Hacks&nbsp;&nbsp;(1)</option>
444
+ <option class="level-0" value="114556430">palm pre hacks&nbsp;&nbsp;(6)</option>
445
+ <option class="level-0" value="245123">parts&nbsp;&nbsp;(72)</option>
446
+ <option class="level-0" value="10969081">peripherals hacks&nbsp;&nbsp;(648)</option>
447
+ <option class="level-0" value="16325149">phone hacks&nbsp;&nbsp;(17)</option>
448
+ <option class="level-0" value="10969088">playstation hacks&nbsp;&nbsp;(120)</option>
449
+ <option class="level-0" value="2060">podcasts&nbsp;&nbsp;(8)</option>
450
+ <option class="level-0" value="10969096">portable audio hacks&nbsp;&nbsp;(66)</option>
451
+ <option class="level-0" value="10969099">portable video hacks&nbsp;&nbsp;(57)</option>
452
+ <option class="level-0" value="588444">psp hacks&nbsp;&nbsp;(47)</option>
453
+ <option class="level-0" value="23971578">radio hacks&nbsp;&nbsp;(137)</option>
454
+ <option class="level-0" value="47">rants&nbsp;&nbsp;(28)</option>
455
+ <option class="level-0" value="69218551">Raspberry Pi&nbsp;&nbsp;(153)</option>
456
+ <option class="level-0" value="21870780">repair hacks&nbsp;&nbsp;(101)</option>
457
+ <option class="level-0" value="309">reviews&nbsp;&nbsp;(19)</option>
458
+ <option class="level-0" value="10969101">robots hacks&nbsp;&nbsp;(874)</option>
459
+ <option class="level-0" value="30302">roundup&nbsp;&nbsp;(35)</option>
460
+ <option class="level-0" value="10969111">security hacks&nbsp;&nbsp;(460)</option>
461
+ <option class="level-0" value="2301">Software Development&nbsp;&nbsp;(91)</option>
462
+ <option class="level-0" value="3796421">software hacks&nbsp;&nbsp;(47)</option>
463
+ <option class="level-0" value="10969116">solar hacks&nbsp;&nbsp;(46)</option>
464
+ <option class="level-0" value="10969121">tablet pcs hacks&nbsp;&nbsp;(40)</option>
465
+ <option class="level-0" value="3075183">teardown&nbsp;&nbsp;(31)</option>
466
+ <option class="level-0" value="10969130">tool hacks&nbsp;&nbsp;(657)</option>
467
+ <option class="level-0" value="25277004">toy hacks&nbsp;&nbsp;(360)</option>
468
+ <option class="level-0" value="10969134">transportation hacks&nbsp;&nbsp;(472)</option>
469
+ <option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(332)</option>
470
+ <option class="level-0" value="3184456">video hacks&nbsp;&nbsp;(211)</option>
471
+ <option class="level-0" value="34942364">Virtual Reality&nbsp;&nbsp;(9)</option>
472
+ <option class="level-0" value="50802420">weapons hacks&nbsp;&nbsp;(63)</option>
473
+ <option class="level-0" value="12552193">wearable hacks&nbsp;&nbsp;(183)</option>
474
+ <option class="level-0" value="39510952">Weekly roundup&nbsp;&nbsp;(18)</option>
475
+ <option class="level-0" value="4891215">wireless hacks&nbsp;&nbsp;(333)</option>
476
+ <option class="level-0" value="7079455">xbox hacks&nbsp;&nbsp;(130)</option>
477
+ </select>
478
+
479
+ <script type='text/javascript'>
480
+ /* <![CDATA[ */
481
+ var dropdown = document.getElementById("cat");
482
+ function onCatChange() {
483
+ if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
484
+ location.href = "http://hackaday.com/?cat="+dropdown.options[dropdown.selectedIndex].value;
485
+ }
486
+ }
487
+ dropdown.onchange = onCatChange;
488
+ /* ]]> */
489
+ </script>
490
+
491
+ </div></div>
492
+ <div id="featured-post-2" class="widget featuredpost"><div class="widget-wrap"><h4 class="widgettitle">In case you missed it</h4>
493
+ <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()-->
494
+
495
+ <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()-->
496
+
497
+ <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()-->
498
+
499
+ <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()-->
500
+
501
+ <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()-->
502
+
503
+ <p class="more-from-category"><a href="http://hackaday.com/category/featured/" title="Featured">More Posts from this Category</a></p></div></div>
504
+ <div id="recent-comments-2" class="widget widget_recent_comments"><div class="widget-wrap"><h4 class="widgettitle">Recent comments</h4>
505
+ <ul id="recentcomments">
506
+ <li class="recentcomments">
507
+ 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>
508
+ <li class="recentcomments">
509
+ <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>
510
+ <li class="recentcomments">
511
+ 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>
512
+ <li class="recentcomments">
513
+ 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>
514
+ <li class="recentcomments">
515
+ 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>
516
+ <li class="recentcomments">
517
+ Arlet on <a href="http://hackaday.com/2013/04/23/rattle-generator-is-a-new-type-of-dynamo-for-a-bicycle/comment-page-1/#comment-997017">Rattle generator is a new type of dynamo for a&nbsp;bicycle</a> </li>
518
+ <li class="recentcomments">
519
+ 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>
520
+ <li class="recentcomments">
521
+ <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>
522
+ <li class="recentcomments">
523
+ <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>
524
+ <li class="recentcomments">
525
+ 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>
526
+ </ul>
527
+ </div></div>
528
+ <div id="calendar-2" class="widget widget_calendar"><div class="widget-wrap"><h4 class="widgettitle">Find Hacks by Date</h4>
529
+ <div id="calendar_wrap"><table id="wp-calendar">
530
+ <caption>April 2013</caption>
531
+ <thead>
532
+ <tr>
533
+ <th scope="col" title="Sunday">S</th>
534
+ <th scope="col" title="Monday">M</th>
535
+ <th scope="col" title="Tuesday">T</th>
536
+ <th scope="col" title="Wednesday">W</th>
537
+ <th scope="col" title="Thursday">T</th>
538
+ <th scope="col" title="Friday">F</th>
539
+ <th scope="col" title="Saturday">S</th>
540
+ </tr>
541
+ </thead>
542
+
543
+ <tfoot>
544
+ <tr>
545
+ <td colspan="3" id="prev"><a href="http://hackaday.com/2013/03/" title="View posts for March 2013">&laquo; Mar</a></td>
546
+ <td class="pad">&nbsp;</td>
547
+ <td colspan="3" id="next" class="pad">&nbsp;</td>
548
+ </tr>
549
+ </tfoot>
550
+
551
+ <tbody>
552
+ <tr>
553
+ <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
554
+ Doctor Who-style&nbsp;WiFi
555
+ Kindle weather and recycling&nbsp;display
556
+ Windmill made from washing machine, 555&nbsp;chip
557
+ SNES headphones scream out for Bluetooth&nbsp;control
558
+ 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
559
+ Dual displays on a Playstation&nbsp;2
560
+ Ask Hackaday: Hacking lingo&nbsp;fails
561
+ Cooling a photomultiplier&nbsp;tube
562
+ Hackerspace tour: Arch Reactor in St. Louis&nbsp;Missouri
563
+ Adafruit launches educational show aimed at&nbsp;kids
564
+ CNC Tic Tac&nbsp;Toe
565
+ Building a vehicle parking&nbsp;camera
566
+ April Fools&#8217; project teaches coworkers not to touch your&nbsp;stuff
567
+ 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
568
+ Powering the Oculus Rift with&nbsp;USB
569
+ Upgrading a router with impeccable soldering&nbsp;skills
570
+ Homebuilt Laser Cutter&nbsp;Ideas
571
+ Building a&nbsp;Theremincello
572
+ Microscope ring light with a number of different&nbsp;features
573
+ Hall effect limit switches for a 3D&nbsp;printer
574
+ 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
575
+ MP3/USB/Aux hack hidden behind cassette&nbsp;facade
576
+ Pranking a hackerspace IRC for April Fool&#8217;s&nbsp;Day
577
+ Turning an easter egg hunt into a fox&nbsp;hunt
578
+ Wireless Temperature Control for a&nbsp;Microbrewery
579
+ Melting Metal with a DIY Foundry&nbsp;Furnace
580
+ Top 10 Hacking Failures in movies: part&nbsp;2
581
+ Steampunk theremin&nbsp;goggles
582
+ High speed circuit design for quantum physics light&nbsp;sensing
583
+ 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
584
+ Electric tricycle build log is like hacker&nbsp;crack
585
+ H-bot style 3D printer moves bed for&nbsp;Z-axis
586
+ Stapler hack fastens infinitely large sheets of&nbsp;paper
587
+ 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
588
+ Rolling your own minimal USB to serial Arduino&nbsp;programmer
589
+ Making PLA stick to a 3D printer build platform by using hairspray or an acetone ABS&nbsp;slurry">6</a></td>
590
+ </tr>
591
+ <tr>
592
+ <td><a href="http://hackaday.com/2013/04/07/" title="Acoustic bass guitar uses water jug and two&nbsp;strings
593
+ Solar powered robot mows your lawn while you chill&nbsp;indoors
594
+ 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
595
+ Combo lock uses relays and logic&nbsp;gates
596
+ 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
597
+ The RedBull creation contest&nbsp;begins!
598
+ Recurve bow make from wood and&nbsp;skis
599
+ 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
600
+ MIDI pedal project looks as good as it&nbsp;sounds
601
+ 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
602
+ Guitar EQ levels trigger the stage&nbsp;lights
603
+ Top 10 best hacking scenes in&nbsp;movies
604
+ Automating a mechanical&nbsp;typewriter
605
+ 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
606
+ Horribly complicated electric guitar&nbsp;keyboard
607
+ Generating electricity from&nbsp;alcohol">12</a></td><td><a href="http://hackaday.com/2013/04/13/" title="Network-controlled fireworks&nbsp;launcher
608
+ Working 3D printed stepper&nbsp;motor
609
+ SqueezeBerry: a Raspberri Pi powered Squeezebox&nbsp;appliance">13</a></td>
610
+ </tr>
611
+ <tr>
612
+ <td><a href="http://hackaday.com/2013/04/14/" title="Teaching a computer to play Mario&#8230; seemingly through&nbsp;voodoo
613
+ Building a replacement for a broken dehumidifier&nbsp;controller
614
+ 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
615
+ [FlorianH] shows off MinimaBL, the next generation of his quadcopter&nbsp;project
616
+ 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
617
+ Building a kegerator with visual&nbsp;style
618
+ 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
619
+ Apple MagSafe cord&nbsp;repair
620
+ 3D Printing sensor mounts for the Oculus&nbsp;Rift
621
+ 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
622
+ Semi-automatic pick and place&nbsp;machine
623
+ Living night light with glowing&nbsp;algae
624
+ 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
625
+ Replace your project power supplies with recycled Li-Ion cells and a switching&nbsp;regulator
626
+ 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
627
+ GUI window manager on an AVR&nbsp;chip
628
+ Mood lamp/notifier uses neat modular PCB&nbsp;design">20</a></td>
629
+ </tr>
630
+ <tr>
631
+ <td><a href="http://hackaday.com/2013/04/21/" title="3D printing some sweet&nbsp;music
632
+ Drop-in pcb makes Nintendo Four Score a USB&nbsp;joystick
633
+ 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
634
+ Connect a Retina display to a regular&nbsp;computer
635
+ 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
636
+ What are the best hacking&nbsp;documentaries?
637
+ OTM-02 is a 3D printed&nbsp;wristwatch
638
+ 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>
639
+ </tr>
640
+ <tr>
641
+ <td>28</td><td>29</td><td>30</td>
642
+ <td class="pad" colspan="4">&nbsp;</td>
643
+ </tr>
644
+ </tbody>
645
+ </table></div></div></div>
646
+ <div id=virurl>
647
+ <!-- BEGIN - VIRURL Widget - iFrame Embed Code -->
648
+ <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"
649
+ width="300" height="600" scrolling="no" >
650
+ </iframe>
651
+ <!-- END - VIRURL Widget - iFrame Embed Code -->
652
+ </div>
653
+ <br />
654
+ <br />
655
+ <div id=tl_ad_bottom>
656
+ <script type="text/javascript"><!--
657
+ google_ad_client = "ca-pub-1812638130783065";
658
+ /* Hackaday sidebar wide skyscraper */
659
+ google_ad_slot = "1587378096";
660
+ google_ad_width = 160;
661
+ google_ad_height = 600;
662
+ google_ad_region = "test";
663
+ //-->
664
+ </script>
665
+ <script type="text/javascript"
666
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
667
+ </script>
668
+ </div>
669
+
670
+
671
+ <br />
672
+
673
+
674
+
675
+
676
+
677
+
678
+ </div> </div><!-- end #content-sidebar-wrap -->
679
+ </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 -->
680
+ <script type="text/javascript">
681
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
682
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
683
+ </script>
684
+ <script type="text/javascript">
685
+ var pageTracker = _gat._getTracker("UA-2201445-6");
686
+ pageTracker._trackPageview();
687
+ </script>
688
+ <!-- Start Quantcast tag -->
689
+ <script type="text/javascript">
690
+ _qoptions={
691
+ qacct:"p-cc6zkdHuZwUDM"
692
+ };
693
+ </script>
694
+ <script type="text/javascript"
695
+ src="http://edge.quantserve.com/quant.js"></script>
696
+ <noscript>
697
+ <img src="http://pixel.quantserve.com/pixel/p-cc6zkdHuZwUDM.gif"
698
+ style="display: none;" border="0" height="1" width="1"
699
+ alt="Quantcast"/>
700
+ </noscript></div><!-- end #wrap -->
701
+
702
+ <script type="text/javascript">
703
+ var _qevents = _qevents || [], wpcomQuantcastData = {"qacct":"p-18-mFEk4J448M","labels":",language.en,type.wpcom,vip.hackadaycom"};
704
+ function wpcomQuantcastPixel( labels, options ) {
705
+ var i, defaults = wpcomQuantcastData, data = { event: 'ajax' };
706
+
707
+ labels = labels || '';
708
+ options = options || {};
709
+
710
+ if ( typeof labels != 'string' )
711
+ options = labels;
712
+
713
+ for ( i in defaults ) {
714
+ data[i] = defaults[i];
715
+ }
716
+
717
+ for ( i in options ) {
718
+ data[i] = options[i];
719
+ }
720
+
721
+ if ( data.labels ) {
722
+ data.labels += ',' + labels;
723
+ } else {
724
+ data.labels = labels;
725
+ }
726
+
727
+ _qevents.push( data );
728
+ };
729
+ (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); })();
730
+ _qevents.push( wpcomQuantcastData );
731
+ </script>
732
+ <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>
733
+
734
+
735
+ <!-- /// LOAD CHARTBEAT /// -->
736
+ <script type="text/javascript">
737
+ var _sf_async_config={};
738
+ _sf_async_config.uid = 2021;
739
+ _sf_async_config.useCanonical = true;
740
+
741
+ (function(){
742
+ function loadChartbeat() {
743
+ window._sf_endpt=(new Date()).getTime();
744
+ var e = document.createElement('script');
745
+ e.setAttribute('language', 'javascript');
746
+ e.setAttribute('type', 'text/javascript');
747
+ e.setAttribute('src',
748
+ (("https:" == document.location.protocol) ? "https://s3.amazonaws.com/" : "http://") +
749
+ "static.chartbeat.com/js/chartbeat.js");
750
+ document.body.appendChild(e);
751
+ }
752
+ var oldonload = window.onload;
753
+ window.onload = (typeof window.onload != 'function') ?
754
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
755
+ })();
756
+ </script>
757
+ <div style="display:none">
758
+ </div>
759
+ <script type='text/javascript' src='http://s2.wp.com/_static/??-eJylzMsOREAQRuEXMoqgEwvxLC4/qjPVOl3dZh4fO3vrk+/Qz3+m3UW4SFZpxsET/D+3mtEjxQ0CJR8gnIRWOCgrfXm8lcAl0uQRFtbtlR3Cqtegl66smto0xhStPQEw5Dy+'></script>
760
+ <script type="text/javascript">
761
+ // <![CDATA[
762
+ (function() {
763
+ try{
764
+ if ( window.external &&'msIsSiteMode' in window.external) {
765
+ if (window.external.msIsSiteMode()) {
766
+ var jl = document.createElement('script');
767
+ jl.type='text/javascript';
768
+ jl.async=true;
769
+ jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
770
+ var s = document.getElementsByTagName('script')[0];
771
+ s.parentNode.insertBefore(jl, s);
772
+ }
773
+ }
774
+ }catch(e){}
775
+ })();
776
+ // ]]>
777
+ </script><script src="http://s.stats.wordpress.com/w.js?21" type="text/javascript"></script>
778
+ <script type="text/javascript">
779
+ st_go({'blog':'4779443','v':'wpcom','tz':'-7','user_id':'0','subd':'hackadaycom'});
780
+ 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();}
781
+ ex_go({'crypt':'UE40eW5QN0p8M2Y/RE1BNmNJfGhxNCVxUDExYmtXRThKbHcwXTdETWI1alhvb1oseHImN101ZFpEakVpYjlQYVFLYzBaVHRtPz0wXS9bVlFpZ3c1Qn5KSThLNS9lSHNGOE1IJk9+N3xFNWxyT2x+MUpnR1dJcFZJPSZmJkpmX0Rodm9+Rkk/cDMmZ0wrMmNxOV1Kfk0xJl9tP2pPUGxEfk5sZ1RodSZGWGpsbzg3OC0meXxnMjUzcmRNP0psb21banBMNDJpJl9BcDAtcn5mQnlVLGlmVXV4WHBsM1gwXWJXfit5LDdsdkpzcC5pb0dnbS9oJkJ3VUMrXX4sbGY='});
782
+ addLoadEvent(function(){linktracker_init('4779443',0);});
783
+ </script>
784
+ <noscript><img src="http://stats.wordpress.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
785
+ <script type="text/javascript">
786
+ // Trigger Quantcast pixel for each Infinite Scroll post load
787
+ if ( 'function' === typeof( jQuery ) ) {
788
+ jQuery( document.body ).on( 'post-load', function() {
789
+ if ( 'function' === typeof( wpcomQuantcastPixel ) )
790
+ wpcomQuantcastPixel();
791
+ } );
792
+ }
793
+ </script>
794
+ </body>
795
+ </html>