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,707 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
3
+ <head profile="http://gmpg.org/xfn/11">
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5
+ <title>Hack a Day — Fresh hacks every day</title>
6
+ <meta name="description" content="Fresh hacks every day" />
7
+ <meta name="robots" content="noodp,noydir" />
8
+ <link rel="Shortcut Icon" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/images/favicon.ico?m=1353160633g" type="image/x-icon" />
9
+ <link rel="stylesheet" href="http://s1.wp.com/wp-content/themes/vip/hackaday2/style.css?m=1363789849g" type="text/css" media="screen" />
10
+
11
+ <meta name="description" content="Fresh hacks every day" />
12
+ <meta name="keywords" content="hall of fame, fpga, nook hacks, internet hacks, marijuana hacks, network hacks, high voltage hacks, palm pre hacks, blackberry hacks, podcasts, virtual reality, drone hacks, lockpicking hacks, interviews, kindle hacks, phone hacks, weekly roundup, reviews, firefox hacks, g1 hacks" />
13
+ <script src='http://r-login.wordpress.com/remote-login.php?action=js&amp;host=hackaday.com&amp;id=4779443&amp;t=1366801138&amp;back=hackaday.com%2Fpage%2F15%2F' type="text/javascript"></script>
14
+ <script type="text/javascript">
15
+ /* <![CDATA[ */
16
+ if ( 'function' === typeof WPRemoteLogin ) {
17
+ document.cookie = "wordpress_test_cookie=test; path=/";
18
+ if ( document.cookie.match( /(;|^)\s*wordpress_test_cookie\=/ ) ) {
19
+ WPRemoteLogin();
20
+ }
21
+ }
22
+ /* ]]> */
23
+ </script>
24
+ <link rel="alternate" type="application/rss+xml" title="Hack a Day &raquo; Feed" href="http://feeds2.feedburner.com/hackaday/LgoM" />
25
+ <link rel="alternate" type="application/rss+xml" title="Hack a Day &raquo; Comments Feed" href="http://hackaday.com/comments/feed/" />
26
+ <script type="text/javascript">
27
+ /* <![CDATA[ */
28
+ function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){oldonload();func();}}}
29
+ /* ]]> */
30
+ </script>
31
+ <link rel="canonical" href="http://hackaday.com/" />
32
+ <link rel='stylesheet' id='all-css-0' href='http://s0.wp.com/_static/??-eJzTLy/QTc7PK0nNK9HPLdUtyClNz8wr1s/JzE4t1s9KLSlITM7WBfP0kouLdfSxKy/ILy7RTctJzCzSLy6pzEklVm1GYlFmXjqMxtBVkpGaC3RGhol+ek5+UmIOSIF9rq2hsZmZuYmxqbFlFgANUUYu' type='text/css' media='all' />
33
+ <script type='text/javascript'>
34
+ /* <![CDATA[ */
35
+ var SafeCommentsAjax = {"ajaxurl":"http:\/\/hackaday.com\/wp-admin\/admin-ajax.php"};
36
+ /* ]]> */
37
+ </script>
38
+ <script type='text/javascript' src='http://s0.wp.com/_static/??-eJyFz0sKAjEMBuALWUsZpjvxLKXGmjp92KQz6umNogtRFAJZ5Et+opeqMPup74B0lDp1aJdnW0da6V9AJQzNMbygL5kh893VQpyAyIVv0/cYzDPC8pdF4Or8UTUgvH5c5QNInp6x6jr1gJk0uT2IrqWxsJSEPX5w0Z1lfZs2ZrB2NIOxY7wBpfljQw=='></script>
39
+ <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://hackadaycom.wordpress.com/xmlrpc.php?rsd" />
40
+ <link rel="shortcut icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" sizes="16x16" />
41
+ <link rel="icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" sizes="16x16" />
42
+ <link rel="apple-touch-icon-precomposed" href="http://1.gravatar.com/blavatar/5560f98f805877b0e332f191cb9e0af3?s=114" />
43
+ <link rel='openid.server' href='http://hackadaycom.wordpress.com/?openidserver=1' />
44
+ <link rel='openid.delegate' href='http://hackadaycom.wordpress.com/' />
45
+ <link rel="search" type="application/opensearchdescription+xml" href="http://hackaday.com/osd.xml" title="Hack a Day" />
46
+ <link rel="search" type="application/opensearchdescription+xml" href="http://wordpress.com/opensearch.xml" title="WordPress.com" />
47
+ <style>
48
+ /* <![CDATA[ */
49
+ /* Block: reblog */
50
+
51
+ .reblog-from img { margin: 0 10px 0 0; vertical-align: middle; padding: 0; border: 0; }
52
+ .reblogger-note img.avatar { float: left; padding: 0; border: 0; }
53
+ .reblogger-note-content { margin: 0 0 20px; }
54
+ .reblog-post .wpcom-enhanced-excerpt-content { border-left: 3px solid #eee; padding-left: 15px; }
55
+ .reblog-post ul.thumb-list { display: block; list-style: none; margin: 2px 0; padding: 0; clear: both; }
56
+ .reblog-post ul.thumb-list li { display: inline; margin: 0; padding: 0 1px; border: 0; }
57
+ .reblog-post ul.thumb-list li a { margin: 0; padding: 0; border: 0; }
58
+ .reblog-post ul.thumb-list li img { margin: 0; padding: 0; border: 0; }
59
+
60
+ .reblog-post .wpcom-enhanced-excerpt { clear: both; }
61
+
62
+ .reblog-post .wpcom-enhanced-excerpt address,
63
+ .reblog-post .wpcom-enhanced-excerpt li,
64
+ .reblog-post .wpcom-enhanced-excerpt h1,
65
+ .reblog-post .wpcom-enhanced-excerpt h2,
66
+ .reblog-post .wpcom-enhanced-excerpt h3,
67
+ .reblog-post .wpcom-enhanced-excerpt h4,
68
+ .reblog-post .wpcom-enhanced-excerpt h5,
69
+ .reblog-post .wpcom-enhanced-excerpt h6,
70
+ .reblog-post .wpcom-enhanced-excerpt p { font-size: 100% !important; }
71
+
72
+ .reblog-post .wpcom-enhanced-excerpt blockquote,
73
+ .reblog-post .wpcom-enhanced-excerpt pre,
74
+ .reblog-post .wpcom-enhanced-excerpt code,
75
+ .reblog-post .wpcom-enhanced-excerpt q { font-size: 98% !important; }
76
+
77
+
78
+ /* ]]> */
79
+ </style>
80
+
81
+ <script type="text/javascript">var _sf_startpt=(new Date()).getTime()</script>
82
+ <style>
83
+ .wpcom-related-posts ul li {
84
+ list-style-type: none;
85
+ display: inline-block;
86
+ }
87
+ </style>
88
+ <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
89
+ <style type="text/css">
90
+ .recentcomments a {
91
+ display: inline !important;
92
+ padding: 0 !important;
93
+ margin: 0 !important;
94
+ }
95
+
96
+ table.recentcommentsavatartop img.avatar, table.recentcommentsavatarend img.avatar {
97
+ border: 0px;
98
+ margin: 0;
99
+ }
100
+
101
+ table.recentcommentsavatartop a, table.recentcommentsavatarend a {
102
+ border: 0px !important;
103
+ background-color: transparent !important;
104
+ }
105
+
106
+ td.recentcommentsavatarend, td.recentcommentsavatartop {
107
+ padding: 0px 0px 1px 0px;
108
+ margin: 0px;
109
+ }
110
+
111
+ td.recentcommentstextend {
112
+ border: none !important;
113
+ padding: 0px 0px 2px 10px;
114
+ }
115
+
116
+ .rtl td.recentcommentstextend {
117
+ padding: 0px 10px 2px 0px;
118
+ }
119
+
120
+ td.recentcommentstexttop {
121
+ border: none !important;
122
+ padding: 0px 0px 0px 10px;
123
+ }
124
+
125
+ .rtl td.recentcommentstexttop {
126
+ padding: 0px 10px 0px 0px;
127
+ }
128
+ </style>
129
+ <meta name="application-name" content="Hack a Day" /><meta name="msapplication-window" content="width=device-width;height=device-height" /><meta name="msapplication-tooltip" content="Fresh hacks every day" /><meta name="msapplication-task" content="name=Subscribe;action-uri=http://feeds2.feedburner.com/hackaday/LgoM;icon-uri=http://0.gravatar.com/blavatar/4f3e6b6daa090af416a1ba595885efd1?s=16" /><style id="syntaxhighlighteranchor"></style>
130
+
131
+ <script>jQuery(document).ready(function($) {
132
+ $("cswap li a").click(function() {
133
+ $("link").attr("href",$(this).attr('rel'));
134
+ return false;
135
+ });
136
+ });</script>
137
+ <meta name="google-site-verification" content="v0_F4q2HixEv6wrQCEKBEbp2Wuj0oI9ywwaN6aoV0JE" />
138
+ </head>
139
+ <body class="home blog paged paged-15 typekit-enabled header-image content-sidebar highlander-enabled highlander-light">
140
+
141
+ <div id="fb-root"></div>
142
+ <script>(function(d, s, id) {
143
+ var js, fjs = d.getElementsByTagName(s)[0];
144
+ if (d.getElementById(id)) return;
145
+ js = d.createElement(s); js.id = id;
146
+ js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
147
+ fjs.parentNode.insertBefore(js, fjs);
148
+ }(document, 'script', 'facebook-jssdk'));</script>
149
+ <div id="wrap">
150
+ <div id="header"><div class="wrap"><div id="title-area"><h1 id="title"><a href="http://hackaday.com/" title="Hack a Day">Hack a Day</a></h1><p id="description">Fresh hacks every day</p></div><!-- end #title-area --><div class="widget-area"><div = "leaderboard">
151
+ <script type="text/javascript"><!--
152
+ google_ad_client = "ca-pub-1812638130783065";
153
+ /* Hackaday, 728x90, created 4/26/08, Leaderboard */
154
+ google_ad_slot = "4036713767";
155
+ google_ad_width = 728;
156
+ google_ad_height = 90;
157
+ //-->
158
+ </script>
159
+ <script type="text/javascript"
160
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
161
+ </script>
162
+ </div>
163
+ <div id="adslice">
164
+
165
+ <script type="text/javascript"><!--
166
+ google_ad_client = "pub-1812638130783065";
167
+ /* Hackaday, 728x15, created 4/26/08, AdSlice */
168
+ google_ad_slot = "0246324944";
169
+ google_ad_width = 728;
170
+ google_ad_height = 15;
171
+ //-->
172
+ </script>
173
+
174
+ <script type="text/javascript"
175
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
176
+ </script>
177
+
178
+ </div></div><!-- end .widget-area --></div><!-- end .wrap --></div><!--end #header--><div id="nav"><div class="wrap"><ul id="menu-main" class="menu menu-primary superfish"><li id="menu-item-90201" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-90201"><a href="http://www.hackaday.com">Home</a></li>
179
+ <li id="menu-item-77211" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-77211"><a href="http://hackaday.com/contact-hack-a-day/">Submit a tip</a></li>
180
+ <li id="menu-item-90210" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-90210"><a href="http://forums.hackaday.com">forums</a></li>
181
+ <li id="menu-item-94591" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-94591"><a href="http://hackaday.com/hackaday-staff/">Hackaday Staff</a></li>
182
+ <li class="right search">
183
+ <form method="get" class="searchform" action="http://hackaday.com/" >
184
+
185
+ <input type="text" value="Search this website &hellip;" name="s" class="s" onfocus="if (this.value == 'Search this website &hellip;') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Search this website &hellip;';}" />
186
+ <input type="submit" class="searchsubmit" value="Search" />
187
+ </form>
188
+ </li></ul></div><!-- end .wrap --></div><div id="inner"><div class="wrap"> <div id="content-sidebar-wrap">
189
+ <div id="content" class="hfeed">
190
+ <div class="post-97094 post type-post status-publish format-standard hentry category-featured category-news tag-april-fools">
191
+
192
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/04/01/hackadays-very-first-kickstarter-campaign/" title="Hackaday&#8217;s very first Kickstarter&nbsp;campaign" rel="bookmark">Hackaday&#8217;s very first Kickstarter&nbsp;campaign</a></h2>
193
+
194
+ <div class="post-info"><span class="date published time" title="2013-04-01T04:01:55+00:00">April 1, 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/01/hackadays-very-first-kickstarter-campaign/#comments">58 Comments</a></span> </div> <div class="entry-content">
195
+ <p style="text-align:center;"><a href="http://hackadaycom.files.wordpress.com/2013/03/hackaday-kickstarter.jpg"><img class="aligncenter size-large wp-image-97095" title="typical kickstarter... at least we share hardware details. " alt="" src="http://hackadaycom.files.wordpress.com/2013/03/hackaday-kickstarter.jpg?w=580&#038;h=349" width="580" height="349" /></a></p>
196
+ <p>Here at hackaday, we often find ourselves wondering how we can use the vast technological abilities of our community to make the world a better place.  We have finally decided to step up to the plate and make a difference. We are proud to introduce <a href="http://kickstarter.hackaday.com.nyud.net/">our very first kickstarter project</a>.</p>
197
+ <p> <a href="http://hackaday.com/2013/04/01/hackadays-very-first-kickstarter-campaign/#more-97094" class="more-link">[Read more...]</a></p>
198
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
199
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/featured/" title="View all posts in Featured" rel="category tag">Featured</a>, <a href="http://hackaday.com/category/news/" title="View all posts in news" rel="category tag">news</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/april-fools/" rel="tag">april fools</a></span> </div>
200
+ </div><!-- end .postclass -->
201
+ <div class="post-97146 post type-post status-publish format-standard hentry category-internet-hacks category-led-hacks tag-api tag-color tag-led-matrix tag-python tag-twitter">
202
+
203
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/31/visualize-twitter-with-an-led-matrix/" title="Visualize Twitter with an LED&nbsp;matrix" rel="bookmark">Visualize Twitter with an LED&nbsp;matrix</a></h2>
204
+
205
+ <div class="post-info"><span class="date published time" title="2013-03-31T20:01:12+00:00">March 31, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/31/visualize-twitter-with-an-led-matrix/#comments">3 Comments</a></span> </div> <div class="entry-content">
206
+ <p><img class="aligncenter size-large wp-image-97147" alt="visualizing-twitter" src="http://hackadaycom.files.wordpress.com/2013/03/visualizing-twitter.jpg?w=580&#038;h=326" width="580" height="326" /></p>
207
+ <p>What&#8217;s your favorite color? Don&#8217;t tell us, Tweet it to [Sebastian's] <a href="http://hackedfrompieces.wordpress.com/2013/03/29/twittermatrix-tweets-as-a-color-source/">favorite color Twitter display</a> and you&#8217;ll be contributing to the artwork hanging on his wall.</p>
208
+ <p>This answers a very important question, what do you do with your projects after they&#8217;re completed? For us the best part is the planning and building. Once it&#8217;s done the thrill is pretty much gone for us. We haven&#8217;t even switched on <a href="http://hackaday.com/2011/01/31/how-to-build-a-ping-pong-ball-display/">our Ping Pong clock</a> in over a year. But [Sebastian] recently dusted <a href="http://hackaday.com/2010/02/26/10x10-led-matrix/">his 10&#215;10 LED matrix</a> for this project.</p>
209
+ <p>Tweets are parsed by a Python project he wrote to try out the Twitter API. It looks for a set list of colors . He asserts that people aren&#8217;t that creative when you solicit their favorite color but to prove him wrong we&#8217;re going to say our favorite is Amaranth. After it finds the color it pushes it to the next pixel in the spiraling pattern shown above. But wait, there&#8217;s more! To give the pixels a but if extra meaning he uses the total length of the tweet to set intensity.</p>
210
+ <p>If you need a Titter enabled hack that displays a bit more specific data you&#8217;ll want <a href="http://hackaday.com/2012/11/01/beaglebone-powers-this-networked-led-marquee/">something that can actually display what was Tweeted</a>.</p>
211
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
212
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/internet-hacks/" title="View all posts in internet hacks" rel="category tag">internet hacks</a>, <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/api/" rel="tag">api</a>, <a href="http://hackaday.com/tag/color/" rel="tag">color</a>, <a href="http://hackaday.com/tag/led-matrix/" rel="tag">led matrix</a>, <a href="http://hackaday.com/tag/python/" rel="tag">python</a>, <a href="http://hackaday.com/tag/twitter/" rel="tag">twitter</a></span> </div>
213
+ </div><!-- end .postclass -->
214
+ <div class="post-97142 post type-post status-publish format-standard hentry category-computer-hacks tag-6502 tag-ram tag-veronica">
215
+
216
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/31/building-ram-into-veronica-the-6502-computer/" title="Building RAM into Veronica &#8211; the 6502&nbsp;computer" rel="bookmark">Building RAM into Veronica &#8211; the 6502&nbsp;computer</a></h2>
217
+
218
+ <div class="post-info"><span class="date published time" title="2013-03-31T18:01:48+00:00">March 31, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/31/building-ram-into-veronica-the-6502-computer/#comments">3 Comments</a></span> </div> <div class="entry-content">
219
+ <p><img class="aligncenter size-large wp-image-97143" alt="ram-for-veronica" src="http://hackadaycom.files.wordpress.com/2013/03/ram-for-veronica.jpg?w=580&#038;h=433" width="580" height="433" /></p>
220
+ <p>It seems strange that <a href="http://quinndunki.com/blondihacks/?p=1291">RAM is being added to a computer</a> so late in the build, but [Quinn Dunki] must have had it in the back of her mind the whole time because it turns out to be a rather painless experience. For those of you keeping score, this makes her Veronica project <a href="http://en.wikipedia.org/wiki/Turing_completeness">Turing complete</a>.</p>
221
+ <p>The brightly colored rats nest pictured above connects the new components to the 6502 computer backplane seen in the upper left. [Quinn] decided to go with two 32K SRAM modules which need very little in the way of drive hardware (it&#8217;s hanging out on the breadboard to the left). The RAM module will simply listen for its address and react accordingly. There is one hitch regarding a two-phase clock and the need to protect the RAM from erroneous data during the first of those phases.</p>
222
+ <p>Getting this all to work actually pointed out a bug in the ROM module she had long ago completed. After picking up on the problem she was able to correct it simply by cutting traces and soldering in jumper wires.</p>
223
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
224
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/computer-hacks/" title="View all posts in computer hacks" rel="category tag">computer hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/6502/" rel="tag">6502</a>, <a href="http://hackaday.com/tag/ram/" rel="tag">ram</a>, <a href="http://hackaday.com/tag/veronica/" rel="tag">veronica</a></span> </div>
225
+ </div><!-- end .postclass -->
226
+ <div align="center">
227
+
228
+
229
+
230
+ <script type="text/javascript"><!--
231
+
232
+ google_ad_client = "ca-pub-1812638130783065";
233
+
234
+ /* Hackaday, 300x250, created 4/26/08, MedRect main column */
235
+
236
+ google_ad_slot = "3449215672";
237
+
238
+ google_ad_width = 300;
239
+
240
+ google_ad_height = 250;
241
+
242
+ //-->
243
+
244
+ </script>
245
+
246
+ <script type="text/javascript"
247
+
248
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
249
+
250
+ </script>
251
+
252
+
253
+
254
+ </div> <div class="post-97138 post type-post status-publish format-standard hentry category-security-hacks tag-aes-256 tag-encrypted-data tag-hidden tag-image tag-png">
255
+
256
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/31/images-carrying-an-encrypted-data-payload/" title="Images carrying an encrypted data&nbsp;payload" rel="bookmark">Images carrying an encrypted data&nbsp;payload</a></h2>
257
+
258
+ <div class="post-info"><span class="date published time" title="2013-03-31T16:01:45+00:00">March 31, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/31/images-carrying-an-encrypted-data-payload/#comments">27 Comments</a></span> </div> <div class="entry-content">
259
+ <p><img class="aligncenter size-large wp-image-97139" alt="encrypted-data-image" src="http://hackadaycom.files.wordpress.com/2013/03/encrypted-data-image.png?w=580&#038;h=325" width="580" height="325" /></p>
260
+ <p>This is a tidy looking banner image. But according to [Ian] <a href="http://www.joshianlindsay.com/index.php?id=126">it contains 52KB of source code</a>. You can&#8217;t just read out all of that data. Well, you can but it will be gibberish. Before hiding the bits in plain sight he encrypted them with two different keys.</p>
261
+ <p>He&#8217;s using AES-256 encryption to keep his data away from prying eyes. But if that wasn&#8217;t enough, he also wrote a PHP program to hide the bits in a PNG image. Not just any picture will do (otherwise your eye will be able to see something&#8217;s awry). The post linked above focuses mainly on how to choose an image that will hide your data most easily. We asked him if he would share his techniques for actually merging the encrypted file with the picture and he delivered. Head on over to <a href="https://github.com/jspark311/BuriedUnderTheNoiseFloor">his repository</a> if you want to take a look at the generator code.</p>
262
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
263
+ <div class="post-meta"><span class="categories">Filed Under: <a href="http://hackaday.com/category/security-hacks/" title="View all posts in security hacks" rel="category tag">security hacks</a></span> <span class="tags">Tagged With: <a href="http://hackaday.com/tag/aes-256/" rel="tag">aes 256</a>, <a href="http://hackaday.com/tag/encrypted-data/" rel="tag">encrypted data</a>, <a href="http://hackaday.com/tag/hidden/" rel="tag">hidden</a>, <a href="http://hackaday.com/tag/image/" rel="tag">image</a>, <a href="http://hackaday.com/tag/png/" rel="tag">png</a></span> </div>
264
+ </div><!-- end .postclass -->
265
+ <div class="post-97135 post type-post status-publish format-standard hentry category-tool-hacks tag-eprom tag-zif tag-zif-socket">
266
+
267
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/31/add-features-that-should-have-already-been-there-to-an-eprom-programmer/" title="Add features (that should have already been there) to an EPROM&nbsp;programmer" rel="bookmark">Add features (that should have already been there) to an EPROM&nbsp;programmer</a></h2>
268
+
269
+ <div class="post-info"><span class="date published time" title="2013-03-31T14:05:08+00:00">March 31, 2013</span> By <span class="author vcard"><span class="fn"><a href="http://hackaday.com/author/mikehackaday/" class="fn n" title="Mike Szczys" rel="author">Mike Szczys</a></span></span> <span class="post-comments"><a href="http://hackaday.com/2013/03/31/add-features-that-should-have-already-been-there-to-an-eprom-programmer/#comments">6 Comments</a></span> </div> <div class="entry-content">
270
+ <p><img class="aligncenter size-large wp-image-97136" alt="extending-an-eprom-programmer" src="http://hackadaycom.files.wordpress.com/2013/03/extending-an-eprom-programmer.jpg?w=580&#038;h=433" width="580" height="433" /></p>
271
+ <p>[Morten Overgaard Hansen] has a cheap EPROM programmer which he uses to program chips for retro gaming (among other things). He was surprised that although the device includes a 40-pin ZIF socket it seems to lack the ability to program 16-bit chips. He figured he could get it to play ball if he put in a little effort. Above you can see that <a href="http://elgensrepairs.blogspot.dk/2012/05/extending-usage-of-top2005-universal.html">a few add-on parts enabled 16-bit programming</a> on the device.</p>
272
+ <p>If you look inside the case you may be surprised to find it uses an FPGA. [Morten] searched around and found a few others online who had been looking to stretch the functionality of these types of programmer. Specifically, he came across a Python program for this programmer&#8217;s bigger bother that already implemented the functions necessary to program the larger chips. He used it as a guide when writing his own programming application.</p>
273
+ <p>On the hardware side of things he needed to feed a higher voltage to the VCC pin, which is done with the boost converter seen to the right. He also added some jumper wires to manage the output enable signal. To make the whole thing modular he ordered a ZIF socket with long pins and soldered the alterations in place. Look closely and you&#8217;ll see two levers for ZIF sockets. The one on the right is for the original socket, the one on the left is for the adapter.</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/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/eprom/" rel="tag">eprom</a>, <a href="http://hackaday.com/tag/zif/" rel="tag">zif</a>, <a href="http://hackaday.com/tag/zif-socket/" rel="tag">zif socket</a></span> </div>
276
+ </div><!-- end .postclass -->
277
+ <div class="post-97125 post type-post status-publish format-standard hentry category-musical-hacks category-tool-hacks tag-air-raid-siren tag-siren">
278
+
279
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/31/building-a-wooden-air-raid-siren/" title="Building a wooden air raid&nbsp;siren" rel="bookmark">Building a wooden air raid&nbsp;siren</a></h2>
280
+
281
+ <div class="post-info"><span class="date published time" title="2013-03-31T08:00:51+00:00">March 31, 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/31/building-a-wooden-air-raid-siren/#comments">44 Comments</a></span> </div> <div class="entry-content">
282
+ <p><img class="aligncenter size-full wp-image-97126" alt="siren" src="http://hackadaycom.files.wordpress.com/2013/03/siren.jpg?w=580&#038;h=303" width="580" height="303" /></p>
283
+ <p>A while back, [Matthias] was working on a dust collector for his shop. Being the master woodsmith he is, he decided to build a dust collection system out of wood. Everything worked out in the end, but in creating wooden impellers and blowers, he discovered his creations made a lot of noise. For this project, instead of trying to quiet his blower, he decided <a href="http://woodgears.ca/siren/index.html">to make one as loud as possible</a> in the form of an air raid siren.</p>
284
+ <p>The basic idea behind [Matthias]&#8216; air raid siren is to make two impellers that force air through two stators along the perimeter of the rotor. As the siren spins, the air coming from the impellers is either blocked or passes through the stators, creating an alternating high and low pressure; to be more accurate, it creates a <em>ton </em>of noise. Stack two of these impellers together and you&#8217;ve got a two-tone air raid siren made out of wood.</p>
285
+ <p>For something that&#8217;s spinning very fast, we&#8217;re surprised [Matthias] didn&#8217;t have more problems with balancing his siren than he did. There are a few useful tricks to be picked up from his tutorial, though: balancing everything on a marble really seemed to help with the build.</p>
286
+ <p>As for how loud the siren is, [Matthias] can&#8217;t give us a decibel volume. From the video after the break, though, we can tell you it&#8217;s really, really loud.</p>
287
+ <p>Thanks [Dimitar] for sending this in. [Matthias], it&#8217;s alright if you send projects in yourself. You&#8217;ve earned the right to say, &#8220;I am so cool!&#8221;</p>
288
+ <p> <a href="http://hackaday.com/2013/03/31/building-a-wooden-air-raid-siren/#more-97125" class="more-link">[Read more...]</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/musical-hacks/" title="View all posts in musical hacks" rel="category tag">musical hacks</a>, <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/air-raid-siren/" rel="tag">air raid siren</a>, <a href="http://hackaday.com/tag/siren/" rel="tag">siren</a></span> </div>
291
+ </div><!-- end .postclass -->
292
+ <div class="post-97120 post type-post status-publish format-standard hentry category-tool-hacks tag-eagle tag-eagle-library tag-eagle-parts tag-tools">
293
+
294
+ <h2 class="entry-title"><a href="http://hackaday.com/2013/03/31/coding-new-parts-in-eagle/" title="Coding new parts in&nbsp;Eagle" rel="bookmark">Coding new parts in&nbsp;Eagle</a></h2>
295
+
296
+ <div class="post-info"><span class="date published time" title="2013-03-31T06:00:34+00:00">March 31, 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/31/coding-new-parts-in-eagle/#comments">8 Comments</a></span> </div> <div class="entry-content">
297
+ <p><img class="aligncenter size-full wp-image-97121" alt="chip" src="http://hackadaycom.files.wordpress.com/2013/03/chip1.png?w=580&#038;h=294" width="580" height="294" /></p>
298
+ <p>Making new parts in Eagle CAD isn&#8217;t the easiest thing in the world, especially if you&#8217;re dealing with a package that isn&#8217;t in one of the default libraries. Usually, making a new part means digging out a datasheet and drawing a new part in Eagle. A better solution would be to generate new parts with code &#8211; define the number of pads, the shape of the pads, the symmetry of the chip, and so forth. <a href="https://github.com/andete/madparts/wiki">[Joost]&#8216;s madparts</a> does just that, allowing anyone to create new parts in Eagle by entering numbers instead of drawing lines.</p>
299
+ <p>The idea behind madparts is to code new entries in Eagle libraries with Coffeescript. It has instant graphical feedback for the part you&#8217;re designing, and is able to import from and export to Eagle libraries. A KiCAD-enabled release is coming soon, but until then, madparts looks like a great way to create your own parts in weird packages in Eagle.</p>
300
+ <div id="jp-post-flair" class="sharedaddy sd-like-enabled sd-sharing-enabled"></div> </div><!-- end .entry-content -->
301
+ <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/eagle-library/" rel="tag">eagle library</a>, <a href="http://hackaday.com/tag/eagle-parts/" rel="tag">eagle parts</a>, <a href="http://hackaday.com/tag/tools/" rel="tag">tools</a></span> </div>
302
+ </div><!-- end .postclass -->
303
+ <div class="navigation"><div class="alignleft"><a href="http://hackaday.com/page/16/" >&laquo; Older Posts</a></div><div class="alignright"><a href="http://hackaday.com/page/14/" >Newer Posts &raquo;</a></div></div><!-- end .navigation --> </div><!-- end #content -->
304
+ <div id="sidebar" class="sidebar widget-area">
305
+ <div id=tl_ad>
306
+ <script type="text/javascript"><!--
307
+ google_ad_client = "ca-pub-1812638130783065";
308
+ /* Hackaday, 300x250, created 4/26/08, MedRect sidebar */
309
+ google_ad_slot = "7800245928";
310
+ google_ad_width = 300;
311
+ google_ad_height = 250;
312
+ //-->
313
+ </script>
314
+ <script type="text/javascript"
315
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
316
+ </script>
317
+
318
+ </div>
319
+
320
+
321
+
322
+
323
+
324
+
325
+ <div class="widget">
326
+ <h4>Never Miss a Hack</h4>
327
+ <div class="textwidget">
328
+
329
+ <!-- Place this tag where you want the badge to render. -->
330
+ <div class="g-plus" data-width= "280" data-href="https://plus.google.com/114843073658390316652" data-rel="publisher" data-theme="dark"></div>
331
+ <!-- Place this tag after the last badge tag. -->
332
+ <script type="text/javascript">
333
+ (function() {
334
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
335
+ po.src = 'https://apis.google.com/js/plusone.js';
336
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
337
+ })();
338
+ </script>
339
+
340
+ <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>
341
+
342
+ <a href="https://twitter.com/hackaday" class="twitter-follow-button" data-show-count="true" data-lang="en" data-size="large">Follow @twitter</a>
343
+ <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>
344
+
345
+ <a href="http://feeds2.feedburner.com/hackaday/LgoM" target="_blank"><img src="http://hackadaycom.files.wordpress.com/2012/11/orange.png" border="0"/></a>
346
+ <div class="clear"> </div>
347
+ <!-- Begin MailChimp Signup Form -->
348
+ <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
349
+
350
+ <div id="mc_embed_signup">
351
+ <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>
352
+ <label for="mce-EMAIL">Subscribe to our mailing list for sneak previews and behind the scenes info</label>
353
+ <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
354
+ <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
355
+ </form>
356
+ </div>
357
+
358
+ <!--End mc_embed_signup-->
359
+ </div>
360
+ </div>
361
+
362
+ <div id="categories-2" class="widget widget_categories"><div class="widget-wrap"><h4 class="widgettitle">Categories</h4>
363
+ <select name='cat' id='cat' class='postform' >
364
+ <option value='-1'>Select Category</option>
365
+ <option class="level-0" value="114554125">3d Printer hacks&nbsp;&nbsp;(116)</option>
366
+ <option class="level-0" value="18020710">android hacks&nbsp;&nbsp;(240)</option>
367
+ <option class="level-0" value="18020705">arduino hacks&nbsp;&nbsp;(1029)</option>
368
+ <option class="level-0" value="27981650">ARM&nbsp;&nbsp;(51)</option>
369
+ <option class="level-0" value="33199679">Ask Hackaday&nbsp;&nbsp;(29)</option>
370
+ <option class="level-0" value="64298109">ATtiny hacks&nbsp;&nbsp;(45)</option>
371
+ <option class="level-0" value="25122024">beer hacks&nbsp;&nbsp;(63)</option>
372
+ <option class="level-0" value="12115263">blackberry hacks&nbsp;&nbsp;(8)</option>
373
+ <option class="level-0" value="10969031">cellphones hacks&nbsp;&nbsp;(337)</option>
374
+ <option class="level-0" value="35745764">chemistry hacks&nbsp;&nbsp;(102)</option>
375
+ <option class="level-0" value="24483654">classic hacks&nbsp;&nbsp;(852)</option>
376
+ <option class="level-0" value="31677810">clock hacks&nbsp;&nbsp;(189)</option>
377
+ <option class="level-0" value="18755632">cnc hacks&nbsp;&nbsp;(341)</option>
378
+ <option class="level-0" value="568165">computer hacks&nbsp;&nbsp;(390)</option>
379
+ <option class="level-0" value="78428">cons&nbsp;&nbsp;(192)</option>
380
+ <option class="level-0" value="5738">contests&nbsp;&nbsp;(136)</option>
381
+ <option class="level-0" value="3923181">cooking hacks&nbsp;&nbsp;(72)</option>
382
+ <option class="level-0" value="10969032">digital audio hacks&nbsp;&nbsp;(422)</option>
383
+ <option class="level-0" value="10969033">digital cameras hacks&nbsp;&nbsp;(415)</option>
384
+ <option class="level-0" value="10969034">downloads hacks&nbsp;&nbsp;(101)</option>
385
+ <option class="level-0" value="107827385">drone hacks&nbsp;&nbsp;(10)</option>
386
+ <option class="level-0" value="63176382">Engine Hacks&nbsp;&nbsp;(31)</option>
387
+ <option class="level-0" value="35890">Featured&nbsp;&nbsp;(72)</option>
388
+ <option class="level-0" value="551890">firefox hacks&nbsp;&nbsp;(23)</option>
389
+ <option class="level-0" value="53446541">FPGA&nbsp;&nbsp;(1)</option>
390
+ <option class="level-0" value="18020562">g1 hacks&nbsp;&nbsp;(26)</option>
391
+ <option class="level-0" value="320557">google hacks&nbsp;&nbsp;(44)</option>
392
+ <option class="level-0" value="10969036">gps hacks&nbsp;&nbsp;(108)</option>
393
+ <option class="level-0" value="24535490">green hacks&nbsp;&nbsp;(152)</option>
394
+ <option class="level-0" value="27311668">Hackaday links&nbsp;&nbsp;(146)</option>
395
+ <option class="level-0" value="21755374">Hackerspaces&nbsp;&nbsp;(93)</option>
396
+ <option class="level-0" value="6310599">HackIt&nbsp;&nbsp;(101)</option>
397
+ <option class="level-0" value="10969037">handhelds hacks&nbsp;&nbsp;(189)</option>
398
+ <option class="level-0" value="79">hardware&nbsp;&nbsp;(249)</option>
399
+ <option class="level-0" value="144422905">High Voltage Hacks&nbsp;&nbsp;(5)</option>
400
+ <option class="level-0" value="66307084">Holiday Hacks&nbsp;&nbsp;(93)</option>
401
+ <option class="level-0" value="10969038">home entertainment hacks&nbsp;&nbsp;(516)</option>
402
+ <option class="level-0" value="5660882">home hacks&nbsp;&nbsp;(705)</option>
403
+ <option class="level-0" value="2708">how-to&nbsp;&nbsp;(135)</option>
404
+ <option class="level-0" value="908478">internet hacks&nbsp;&nbsp;(2)</option>
405
+ <option class="level-0" value="831">Interviews&nbsp;&nbsp;(13)</option>
406
+ <option class="level-0" value="1416772">iphone hacks&nbsp;&nbsp;(176)</option>
407
+ <option class="level-0" value="1275163">ipod hacks&nbsp;&nbsp;(144)</option>
408
+ <option class="level-0" value="344761">kickstarter&nbsp;&nbsp;(29)</option>
409
+ <option class="level-0" value="4157506">Kindle hacks&nbsp;&nbsp;(15)</option>
410
+ <option class="level-0" value="46717088">Kinect hacks&nbsp;&nbsp;(81)</option>
411
+ <option class="level-0" value="10969048">laptops hacks&nbsp;&nbsp;(111)</option>
412
+ <option class="level-0" value="10969055">laser hacks&nbsp;&nbsp;(167)</option>
413
+ <option class="level-0" value="18020716">led hacks&nbsp;&nbsp;(695)</option>
414
+ <option class="level-0" value="10626">lifehacks&nbsp;&nbsp;(54)</option>
415
+ <option class="level-0" value="729674">linux hacks&nbsp;&nbsp;(129)</option>
416
+ <option class="level-0" value="20732807">lockpicking hacks&nbsp;&nbsp;(11)</option>
417
+ <option class="level-0" value="10969060">macs hacks&nbsp;&nbsp;(135)</option>
418
+ <option class="level-0" value="144395979">Marijuana Hacks&nbsp;&nbsp;(2)</option>
419
+ <option class="level-0" value="11284667">Medical hacks&nbsp;&nbsp;(102)</option>
420
+ <option class="level-0" value="139916">Microcontrollers&nbsp;&nbsp;(512)</option>
421
+ <option class="level-0" value="5611793">misc hacks&nbsp;&nbsp;(1747)</option>
422
+ <option class="level-0" value="18020730">multitouch hacks&nbsp;&nbsp;(89)</option>
423
+ <option class="level-0" value="22652725">musical hacks&nbsp;&nbsp;(290)</option>
424
+ <option class="level-0" value="18020722">netbook hacks&nbsp;&nbsp;(50)</option>
425
+ <option class="level-0" value="6166512">Network Hacks&nbsp;&nbsp;(4)</option>
426
+ <option class="level-0" value="103">news&nbsp;&nbsp;(1091)</option>
427
+ <option class="level-0" value="1861880">nintendo ds hacks&nbsp;&nbsp;(34)</option>
428
+ <option class="level-0" value="114555425">nintendo gameboy hacks&nbsp;&nbsp;(90)</option>
429
+ <option class="level-0" value="18020685">nintendo hacks&nbsp;&nbsp;(261)</option>
430
+ <option class="level-0" value="4992726">nintendo wii hacks&nbsp;&nbsp;(78)</option>
431
+ <option class="level-0" value="118011206">Nook Hacks&nbsp;&nbsp;(1)</option>
432
+ <option class="level-0" value="114556430">palm pre hacks&nbsp;&nbsp;(6)</option>
433
+ <option class="level-0" value="245123">parts&nbsp;&nbsp;(72)</option>
434
+ <option class="level-0" value="10969081">peripherals hacks&nbsp;&nbsp;(648)</option>
435
+ <option class="level-0" value="16325149">phone hacks&nbsp;&nbsp;(17)</option>
436
+ <option class="level-0" value="10969088">playstation hacks&nbsp;&nbsp;(120)</option>
437
+ <option class="level-0" value="2060">podcasts&nbsp;&nbsp;(8)</option>
438
+ <option class="level-0" value="10969096">portable audio hacks&nbsp;&nbsp;(66)</option>
439
+ <option class="level-0" value="10969099">portable video hacks&nbsp;&nbsp;(57)</option>
440
+ <option class="level-0" value="588444">psp hacks&nbsp;&nbsp;(47)</option>
441
+ <option class="level-0" value="23971578">radio hacks&nbsp;&nbsp;(137)</option>
442
+ <option class="level-0" value="47">rants&nbsp;&nbsp;(28)</option>
443
+ <option class="level-0" value="69218551">Raspberry Pi&nbsp;&nbsp;(153)</option>
444
+ <option class="level-0" value="21870780">repair hacks&nbsp;&nbsp;(101)</option>
445
+ <option class="level-0" value="309">reviews&nbsp;&nbsp;(19)</option>
446
+ <option class="level-0" value="10969101">robots hacks&nbsp;&nbsp;(874)</option>
447
+ <option class="level-0" value="30302">roundup&nbsp;&nbsp;(35)</option>
448
+ <option class="level-0" value="10969111">security hacks&nbsp;&nbsp;(460)</option>
449
+ <option class="level-0" value="2301">Software Development&nbsp;&nbsp;(91)</option>
450
+ <option class="level-0" value="3796421">software hacks&nbsp;&nbsp;(47)</option>
451
+ <option class="level-0" value="10969116">solar hacks&nbsp;&nbsp;(46)</option>
452
+ <option class="level-0" value="10969121">tablet pcs hacks&nbsp;&nbsp;(40)</option>
453
+ <option class="level-0" value="3075183">teardown&nbsp;&nbsp;(31)</option>
454
+ <option class="level-0" value="10969130">tool hacks&nbsp;&nbsp;(657)</option>
455
+ <option class="level-0" value="25277004">toy hacks&nbsp;&nbsp;(360)</option>
456
+ <option class="level-0" value="10969134">transportation hacks&nbsp;&nbsp;(472)</option>
457
+ <option class="level-0" value="1">Uncategorized&nbsp;&nbsp;(332)</option>
458
+ <option class="level-0" value="3184456">video hacks&nbsp;&nbsp;(211)</option>
459
+ <option class="level-0" value="34942364">Virtual Reality&nbsp;&nbsp;(9)</option>
460
+ <option class="level-0" value="50802420">weapons hacks&nbsp;&nbsp;(63)</option>
461
+ <option class="level-0" value="12552193">wearable hacks&nbsp;&nbsp;(183)</option>
462
+ <option class="level-0" value="39510952">Weekly roundup&nbsp;&nbsp;(18)</option>
463
+ <option class="level-0" value="4891215">wireless hacks&nbsp;&nbsp;(333)</option>
464
+ <option class="level-0" value="7079455">xbox hacks&nbsp;&nbsp;(130)</option>
465
+ </select>
466
+
467
+ <script type='text/javascript'>
468
+ /* <![CDATA[ */
469
+ var dropdown = document.getElementById("cat");
470
+ function onCatChange() {
471
+ if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
472
+ location.href = "http://hackaday.com/?cat="+dropdown.options[dropdown.selectedIndex].value;
473
+ }
474
+ }
475
+ dropdown.onchange = onCatChange;
476
+ /* ]]> */
477
+ </script>
478
+
479
+ </div></div>
480
+ <div id="featured-post-2" class="widget featuredpost"><div class="widget-wrap"><h4 class="widgettitle">In case you missed it</h4>
481
+ <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()-->
482
+
483
+ <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()-->
484
+
485
+ <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()-->
486
+
487
+ <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()-->
488
+
489
+ <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()-->
490
+
491
+ <p class="more-from-category"><a href="http://hackaday.com/category/featured/" title="Featured">More Posts from this Category</a></p></div></div>
492
+ <div id="recent-comments-2" class="widget widget_recent_comments"><div class="widget-wrap"><h4 class="widgettitle">Recent comments</h4>
493
+ <ul id="recentcomments">
494
+ <li class="recentcomments">
495
+ 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>
496
+ <li class="recentcomments">
497
+ <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>
498
+ <li class="recentcomments">
499
+ 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>
500
+ <li class="recentcomments">
501
+ 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>
502
+ <li class="recentcomments">
503
+ 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>
504
+ <li class="recentcomments">
505
+ 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>
506
+ <li class="recentcomments">
507
+ 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>
508
+ <li class="recentcomments">
509
+ <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>
510
+ <li class="recentcomments">
511
+ <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>
512
+ <li class="recentcomments">
513
+ 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>
514
+ </ul>
515
+ </div></div>
516
+ <div id="calendar-2" class="widget widget_calendar"><div class="widget-wrap"><h4 class="widgettitle">Find Hacks by Date</h4>
517
+ <div id="calendar_wrap"><table id="wp-calendar">
518
+ <caption>April 2013</caption>
519
+ <thead>
520
+ <tr>
521
+ <th scope="col" title="Sunday">S</th>
522
+ <th scope="col" title="Monday">M</th>
523
+ <th scope="col" title="Tuesday">T</th>
524
+ <th scope="col" title="Wednesday">W</th>
525
+ <th scope="col" title="Thursday">T</th>
526
+ <th scope="col" title="Friday">F</th>
527
+ <th scope="col" title="Saturday">S</th>
528
+ </tr>
529
+ </thead>
530
+
531
+ <tfoot>
532
+ <tr>
533
+ <td colspan="3" id="prev"><a href="http://hackaday.com/2013/03/" title="View posts for March 2013">&laquo; Mar</a></td>
534
+ <td class="pad">&nbsp;</td>
535
+ <td colspan="3" id="next" class="pad">&nbsp;</td>
536
+ </tr>
537
+ </tfoot>
538
+
539
+ <tbody>
540
+ <tr>
541
+ <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>
542
+ </tr>
543
+ <tr>
544
+ <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>
545
+ </tr>
546
+ <tr>
547
+ <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>
548
+ </tr>
549
+ <tr>
550
+ <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>
551
+ </tr>
552
+ <tr>
553
+ <td>28</td><td>29</td><td>30</td>
554
+ <td class="pad" colspan="4">&nbsp;</td>
555
+ </tr>
556
+ </tbody>
557
+ </table></div></div></div>
558
+ <div id=virurl>
559
+ <!-- BEGIN - VIRURL Widget - iFrame Embed Code -->
560
+ <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"
561
+ width="300" height="600" scrolling="no" >
562
+ </iframe>
563
+ <!-- END - VIRURL Widget - iFrame Embed Code -->
564
+ </div>
565
+ <br />
566
+ <br />
567
+ <div id=tl_ad_bottom>
568
+ <script type="text/javascript"><!--
569
+ google_ad_client = "ca-pub-1812638130783065";
570
+ /* Hackaday sidebar wide skyscraper */
571
+ google_ad_slot = "1587378096";
572
+ google_ad_width = 160;
573
+ google_ad_height = 600;
574
+ google_ad_region = "test";
575
+ //-->
576
+ </script>
577
+ <script type="text/javascript"
578
+ src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
579
+ </script>
580
+ </div>
581
+
582
+
583
+ <br />
584
+
585
+
586
+
587
+
588
+
589
+
590
+ </div> </div><!-- end #content-sidebar-wrap -->
591
+ </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 -->
592
+ <script type="text/javascript">
593
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
594
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
595
+ </script>
596
+ <script type="text/javascript">
597
+ var pageTracker = _gat._getTracker("UA-2201445-6");
598
+ pageTracker._trackPageview();
599
+ </script>
600
+ <!-- Start Quantcast tag -->
601
+ <script type="text/javascript">
602
+ _qoptions={
603
+ qacct:"p-cc6zkdHuZwUDM"
604
+ };
605
+ </script>
606
+ <script type="text/javascript"
607
+ src="http://edge.quantserve.com/quant.js"></script>
608
+ <noscript>
609
+ <img src="http://pixel.quantserve.com/pixel/p-cc6zkdHuZwUDM.gif"
610
+ style="display: none;" border="0" height="1" width="1"
611
+ alt="Quantcast"/>
612
+ </noscript></div><!-- end #wrap -->
613
+
614
+ <script type="text/javascript">
615
+ var _qevents = _qevents || [], wpcomQuantcastData = {"qacct":"p-18-mFEk4J448M","labels":",language.en,type.wpcom,vip.hackadaycom"};
616
+ function wpcomQuantcastPixel( labels, options ) {
617
+ var i, defaults = wpcomQuantcastData, data = { event: 'ajax' };
618
+
619
+ labels = labels || '';
620
+ options = options || {};
621
+
622
+ if ( typeof labels != 'string' )
623
+ options = labels;
624
+
625
+ for ( i in defaults ) {
626
+ data[i] = defaults[i];
627
+ }
628
+
629
+ for ( i in options ) {
630
+ data[i] = options[i];
631
+ }
632
+
633
+ if ( data.labels ) {
634
+ data.labels += ',' + labels;
635
+ } else {
636
+ data.labels = labels;
637
+ }
638
+
639
+ _qevents.push( data );
640
+ };
641
+ (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); })();
642
+ _qevents.push( wpcomQuantcastData );
643
+ </script>
644
+ <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>
645
+
646
+
647
+ <!-- /// LOAD CHARTBEAT /// -->
648
+ <script type="text/javascript">
649
+ var _sf_async_config={};
650
+ _sf_async_config.uid = 2021;
651
+ _sf_async_config.useCanonical = true;
652
+
653
+ (function(){
654
+ function loadChartbeat() {
655
+ window._sf_endpt=(new Date()).getTime();
656
+ var e = document.createElement('script');
657
+ e.setAttribute('language', 'javascript');
658
+ e.setAttribute('type', 'text/javascript');
659
+ e.setAttribute('src',
660
+ (("https:" == document.location.protocol) ? "https://s3.amazonaws.com/" : "http://") +
661
+ "static.chartbeat.com/js/chartbeat.js");
662
+ document.body.appendChild(e);
663
+ }
664
+ var oldonload = window.onload;
665
+ window.onload = (typeof window.onload != 'function') ?
666
+ loadChartbeat : function() { oldonload(); loadChartbeat(); };
667
+ })();
668
+ </script>
669
+ <div style="display:none">
670
+ </div>
671
+ <script type='text/javascript' src='http://s2.wp.com/_static/??-eJylzMsOREAQRuEXMoqgEwvxLC4/qjPVOl3dZh4fO3vrk+/Qz3+m3UW4SFZpxsET/D+3mtEjxQ0CJR8gnIRWOCgrfXm8lcAl0uQRFtbtlR3Cqtegl66smto0xhStPQEw5Dy+'></script>
672
+ <script type="text/javascript">
673
+ // <![CDATA[
674
+ (function() {
675
+ try{
676
+ if ( window.external &&'msIsSiteMode' in window.external) {
677
+ if (window.external.msIsSiteMode()) {
678
+ var jl = document.createElement('script');
679
+ jl.type='text/javascript';
680
+ jl.async=true;
681
+ jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
682
+ var s = document.getElementsByTagName('script')[0];
683
+ s.parentNode.insertBefore(jl, s);
684
+ }
685
+ }
686
+ }catch(e){}
687
+ })();
688
+ // ]]>
689
+ </script><script src="http://s.stats.wordpress.com/w.js?21" type="text/javascript"></script>
690
+ <script type="text/javascript">
691
+ st_go({'blog':'4779443','v':'wpcom','tz':'-7','user_id':'0','subd':'hackadaycom'});
692
+ 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();}
693
+ ex_go({'crypt':'UE40eW5QN0p8M2Y/RE1BNmNJfGhxNCVxUDExYmtXRThKbHcwXTdETWI1alhvb1oseHImN101ZFpEakVpYjlQYVFLYzBaVHRtPz0wXS9bVlFpZ3c1Qn5KSThLNS9lSHNGOE1IJk9+N3xFNWxyT2x+MUpnR1dJcFZHMlVhPTBJbWdibnZaME1HWjZMdHRSOGY/RXZ0TGk1cTlBTWZaUy4wMUs4bi4sc1lNYVJRLmJ8RS1bNiY2JWF1T0YwQk9ieS8wVzFbJkVoLXxCPyVnR2crLkJZVnFHMmJGeCU/ZTdWfHglYW81OU1tYjlyRG5zWVRidEhBTmR6K35WLS1bUA=='});
694
+ addLoadEvent(function(){linktracker_init('4779443',0);});
695
+ </script>
696
+ <noscript><img src="http://stats.wordpress.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
697
+ <script type="text/javascript">
698
+ // Trigger Quantcast pixel for each Infinite Scroll post load
699
+ if ( 'function' === typeof( jQuery ) ) {
700
+ jQuery( document.body ).on( 'post-load', function() {
701
+ if ( 'function' === typeof( wpcomQuantcastPixel ) )
702
+ wpcomQuantcastPixel();
703
+ } );
704
+ }
705
+ </script>
706
+ </body>
707
+ </html>