{"id":51,"date":"2015-12-24T23:22:50","date_gmt":"2015-12-24T23:22:50","guid":{"rendered":"http:\/\/www.ferzkopp.org\/wordpress\/?p=51"},"modified":"2016-01-08T07:44:29","modified_gmt":"2016-01-08T15:44:29","slug":"snippet-mania","status":"publish","type":"post","link":"https:\/\/www.ferzkopp.net\/wordpress\/2015\/12\/24\/snippet-mania\/","title":{"rendered":"Snippet Mania"},"content":{"rendered":"<p>Every coder has a collection of \u201csnippets\u201d \u2013 little bits of code that did something useful at some point in time.<\/p>\n<p><!--more--><\/p>\n<h5>Perl Snippets<\/h5>\n<p>Useful perl code fragments.<\/p>\n<p><strong>base64.pl<\/strong><\/p>\n<pre>#!\/usr\/bin\/perl -w\r\nuse strict;\r\nuse CGI qw(:standard);\r\nuse MIME::Base64 qw(encode_base64);\r\nmy $filename;\r\nmy $buffer;$filename = param('f');\r\nprint \"Content-type: text\/html\\r\\n\\r\\n\";\r\nprint \"\\&lt;FILE name='$filename' encoding='base64'\\&gt;\\r\\n\";\r\nopen(FILE, \"$filename\") or die \"$!\";\r\nwhile (read(FILE, $buffer, 60*57)) {\r\n print encode_base64($buffer);\r\n}\r\nprint \"\\&lt;\\\/FILE\\&gt;\\r\\n\";<\/pre>\n<p><strong>url-encode.pl<\/strong><\/p>\n<pre>sub URLEncode {\r\n my $theURL = $_[0];\r\n my $MetaChars = quotemeta( ';,\/?\\|=+)(*&amp;^%$#@!~:');\r\n $theURL =~ s\/([$MetaChars\\\"\\'\\x80-\\xFF])\/\"%\" .\r\n uc(sprintf(\"%2.2x\",         ord($1)))\/eg;\r\n $theURL =~ s\/ \/\\+\/g;\r\n return $theURL;\r\n}<\/pre>\n<p><strong>Unicode to ASCII Conversion <\/strong><\/p>\n<pre>use Unicode::String;\r\nlocal $\/; # slurp mode\r\n$line=&lt;&gt;;\r\n$u=Unicode::String::utf8($line);\r\n$latin1=$u-&gt;latin1;\r\nprint $latin1;\r\n\r\n<\/pre>\n<p><strong>Load a Google-News Search as RSS Feed<\/strong><\/p>\n<pre>use LWP::UserAgent;\r\n# RSS feed to load\r\n$url = \"http:\/\/news.google.com\/news?hl=en&amp;ned=&amp;q=cancer&amp;ie=UTF-8&amp;output=rss\";\r\n# Load data\r\n$ua = LWP::UserAgent-&gt;new;\r\n$ua-&gt;timeout(5);\r\n$ua-&gt;agent(\"Mozilla\/5.0\");\r\n$response = $ua-&gt;get($url);\r\nif ($response-&gt;is_success()) {\r\n # Data is content of request\r\n $rss_xml = $response-&gt;content;\r\n # Info and count\r\n $result .= \"XML loaded from URL '$url' ...\\n\";\r\n} else {\r\n # Load failed\r\n $result .= \"Load error for URL '$url' ...\\n\";\r\n $result .= $response-&gt;status_line . \"\\n\";\r\n}\r\nprint $result;<\/pre>\n<h5>JavaScript Snippets<\/h5>\n<p>Useful JavaScript code fragments.<\/p>\n<p><strong>IsEmail()<\/strong><\/p>\n<pre>function IsEmail(emailStr) {\r\n  if (  emailStr.match( new RegExp(\r\n                        '^(\\\\s*)((\"[^\"]*\")|\\\\w+([*&amp;+~!-\\\\.]\\\\w+)*)\r\n                         @\\\\w+([-\\\\.]\\\\w+)*\\\\.\\\\w{1,3}(\\\\s*)$'\r\n                                   ) ) == null )\r\n\treturn false;\r\n  return true;\r\n}<\/pre>\n<p><strong>IsNumber()<\/strong><\/p>\n<pre>function IsNumber(sText)\r\n{\r\n   var ValidChars = \"0123456789\";\r\n   var IsNumber=true;\r\n   var Char;   for (i = 0; i &lt; sText.length &amp;&amp; IsNumber == true; i++) { \r\n      Char = sText.charAt(i); \r\n      if (ValidChars.indexOf(Char) == -1) {\r\n         IsNumber = false;\r\n      }\r\n   }\r\n   return IsNumber;\r\n}<\/pre>\n<p><strong>GetUrlParameter()<\/strong><\/p>\n<pre>function GetUrlParameter(param) {\r\n var val = \"\";\r\n var qs = window.location.search;\r\n var start = qs.indexOf(param); if (start != -1) {\r\n  start += param.length + 1;\r\n  var end = qs.indexOf(\"&amp;\", start);\r\n  if (end == -1) {\r\n   end = qs.length\r\n  }\r\n  val = qs.substring(start,end);\r\n }\r\n return val;\r\n}<\/pre>\n<h5>C\/C++ Snippets<\/h5>\n<p>Useful C\/C++ code fragments.<\/p>\n<p>Fast Line Algorithm<br \/>\n<a href=\"http:\/\/www.ferzkopp.net\/Software\/Snippets\/fastLineAlgorithm.txt\">fastLineAlgorithm.txt<br \/>\n<\/a><br \/>\nFast Triangle Intersection Test<br \/>\n<a href=\"http:\/\/www.ferzkopp.net\/Software\/Snippets\/fastTriangleIntersectionTest.txt\">fastTriangleIntersectionTest.txt<\/a><\/p>\n<p>TwoFish Encryption<br \/>\n<a href=\"http:\/\/www.ferzkopp.net\/Software\/Snippets\/twofish-reference-c.zip\">Reference<\/a> <a href=\"http:\/\/www.ferzkopp.net\/Software\/Snippets\/twofish-optimized-c.zip\">Optimized<\/a><\/p>\n<p>DLL demo<br \/>\n<a href=\"http:\/\/www.ferzkopp.net\/Software\/Snippets\/dll-demo.zip\">dll-demo.zip<\/a><\/p>\n<h5>Shell Snippets<\/h5>\n<p>Various shell scripts and commandline fragments that come in handy from time to time.<\/p>\n<p><strong>rsync Folder Mirroring Syntax<\/strong><\/p>\n<p>rsync -e ssh -av \/home\/user\/Source\/ <a href=\"mailto:user@www.hostname.net\">user@www.hostname.net<\/a>:\/home\/user\/Target<\/p>\n<p><strong>Start a VNC Server<\/strong><\/p>\n<p>vncserver -kill :1<br \/>\nvncserver :1 -geometry 1024&#215;768 -depth 16 -name MyVNC -rfbport 5021 -httpport 5022<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Every coder has a collection of \u201csnippets\u201d \u2013 little bits of code that did something useful at some point in time.<\/p>\n","protected":false},"author":1,"featured_media":139,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[22],"tags":[63,26,27,24,23,25],"class_list":["post-51","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","tag-bash","tag-cc","tag-javascript","tag-perl","tag-source","tag-unix"],"_links":{"self":[{"href":"https:\/\/www.ferzkopp.net\/wordpress\/wp-json\/wp\/v2\/posts\/51","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ferzkopp.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ferzkopp.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ferzkopp.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ferzkopp.net\/wordpress\/wp-json\/wp\/v2\/comments?post=51"}],"version-history":[{"count":4,"href":"https:\/\/www.ferzkopp.net\/wordpress\/wp-json\/wp\/v2\/posts\/51\/revisions"}],"predecessor-version":[{"id":199,"href":"https:\/\/www.ferzkopp.net\/wordpress\/wp-json\/wp\/v2\/posts\/51\/revisions\/199"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ferzkopp.net\/wordpress\/wp-json\/wp\/v2\/media\/139"}],"wp:attachment":[{"href":"https:\/\/www.ferzkopp.net\/wordpress\/wp-json\/wp\/v2\/media?parent=51"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ferzkopp.net\/wordpress\/wp-json\/wp\/v2\/categories?post=51"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ferzkopp.net\/wordpress\/wp-json\/wp\/v2\/tags?post=51"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}