{"id":1189,"date":"2008-04-20T23:43:32","date_gmt":"2008-04-21T03:43:32","guid":{"rendered":"http:\/\/www.chrismclaren.com\/blog\/?p=1189"},"modified":"2008-04-20T23:46:36","modified_gmt":"2008-04-21T03:46:36","slug":"a-few-geeky-bits","status":"publish","type":"post","link":"http:\/\/www.chrismclaren.com\/blog\/2008\/04\/20\/a-few-geeky-bits\/","title":{"rendered":"A few geeky bits"},"content":{"rendered":"<p>OK, let&#8217;s do one of those patented link posts to clean out some of these open tabs&#8230;<\/p>\n<p>Let&#8217;s start with Mario.<\/p>\n<p><a href=\"http:\/\/blog.nihilogic.dk\/2008\/04\/super-mario-in-14kb-javascript.html\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.chrismclaren.com\/blog\/wp-content\/images\/2008\/04\/mario.png\" width=\"258\" height=\"210\" alt=\"Javascript Mario\" title=\"Javascript Mario\" class=\"aligncenter\"\/><\/a><\/p>\n<p>As far as programming goes, I&#8217;m a kernel guy&#8211;an engine guy. I don&#8217;t do UI, and trust me, you&#8217;re happy I don&#8217;t. I make it work under the covers. As such, I often deride and disparage the hard (and often painstaking) work of the user interface specialists.<\/p>\n<p>In the web application world, this means I often cast some stones at the &#8220;we&#8217;ll fix it with JavaScript&#8221; crowd.<\/p>\n<p>Well, maybe I should just relax that stance&#8211;I mean if someone can make <a href=\"http:\/\/blog.nihilogic.dk\/2008\/04\/super-mario-in-14kb-javascript.html\">a working version of Super Mario that runs inside a web browser in just 14K of JavaScript<\/a>, then I guess it can probably do all the things we need  business applications to do.<\/p>\n<p style=\"clear: both;\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.chrismclaren.com\/blog\/wp-content\/divider.gif\" alt=\"divider\" title=\"divider\" class=\"centered\" height=\"20\" width=\"253\"\/><\/p>\n<p>Now, let&#8217;s look at a couple of nice tools for simplifying some of the more annoying (and common) technical tasks.<\/p>\n<p>First is <a href=\"http:\/\/httpd.apache.org\/docs\/1.3\/howto\/htaccess.html\">the old .htaccess file<\/a>. If you run a web site, the odds are good that you&#8217;ve tangled with this a bit yourself. Maybe you haven&#8217;t had to because your software does it for you (WordPress <a href=\"http:\/\/codex.wordpress.org\/Using_Permalinks\">is particularly good<\/a> about jiggering the aliasing that .htaccess support), but if you&#8217;ve ever wanted to password protect parts of a site, customize error pages, change default page names, setup <a href=\"http:\/\/www.javascriptkit.com\/howto\/htaccess10.shtml\">the old &#8220;no hotlinking to my images&#8221; hack<\/a>, or many other things, then you know about the .htaccess file. The syntax for this file has all the intuitiveness of a Unix command line interface&#8211;that is to say, there&#8217;s nothing intuitive about it at all.<\/p>\n<p>Which makes it surprising that no one has come up with a simple front-end for editing the files.<\/p>\n<p><a href=\"http:\/\/www.htaccesseditor.com\/en.shtml\">Until now<\/a>. You&#8217;ve got to love the &#8220;free tools on the web&#8221; world. <a href=\"http:\/\/www.htaccesseditor.com\/en.shtml\">This interactive editor<\/a> won&#8217;t do everything you might want to do with an .htaccess file, but it certainly will simplify many of the most common tasks.<\/p>\n<p>I&#8217;ve actually used it to do a bunch of things that I&#8217;ve always meant to get around to (like changing the error pages) but that were never enough of a priority for me to look up how to do them. That&#8217;s the second order disruptive effect of this kind of thing&#8211;not that it makes some operations easier for people who needed to do it but didn&#8217;t know how, but that by making them easier it lowers the threshold for adoption even by people who could have done things anyway.<\/p>\n<p style=\"clear: both;\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.chrismclaren.com\/blog\/wp-content\/divider.gif\" alt=\"divider\" title=\"divider\" class=\"centered\" height=\"20\" width=\"253\"\/><\/p>\n<p>Another <a href=\"http:\/\/gskinner.com\/RegExr\/\">similar online tool exists for experimenting with and constructing regular expressions<\/a>.<\/p>\n<p>I&#8217;m not going to talk at length about <a href=\"http:\/\/en.wikipedia.org\/wiki\/Regular_expression\">regular expressions<\/a>, but suffice it to say that if you don&#8217;t know what they are and don&#8217;t use them on a regular (heh) basis, then you are doing a lot of work you don&#8217;t have to be doing. Understanding regular expression groups for search and replace will save you a ton of time if you ever do any serious text editing.<\/p>\n<p style=\"clear: both;\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.chrismclaren.com\/blog\/wp-content\/divider.gif\" alt=\"divider\" title=\"divider\" class=\"centered\" height=\"20\" width=\"253\"\/><\/p>\n<p>I am coming to love <a href=\"http:\/\/csunplugged.com\/index.php\/\">Computer Science Unplugged<\/a>. That site would be a gold mine even without the star bit, but when you take the <a href=\"http:\/\/csunplugged.com\/index.php\/activities.html\">Activities<\/a> section into account then it&#8217;s more than a gold mine.<\/p>\n<p>I should almost make everyone read the Information Theory section. Yes. Everyone.<\/p>\n<p style=\"clear: both;\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.chrismclaren.com\/blog\/wp-content\/divider.gif\" alt=\"divider\" title=\"divider\" class=\"centered\" height=\"20\" width=\"253\"\/><\/p>\n<p>I&#8217;ve been using <a href=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/10?id=10\">AdBlock<\/a> and <a href=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/433?id=433\">FlashBlock<\/a> for <a href=\"http:\/\/www.chrismclaren.com\/blog\/2005\/10\/07\/browser-neepery\/\">several years<\/a> now (although, I have lately been using <a href=\"https:\/\/addons.mozilla.org\/en-US\/firefox\/addon\/1865\">AdBlock Plus<\/a>, rather than the old school one), which results in a highly mediated interaction with the Internet&#8211;I literally don&#8217;t know what the Internet looks like to you if you don&#8217;t make use of these things. When I have to use Internet Explorer (which obviously doesn&#8217;t have these plugins) I am often quite shocked at how some of the sites I use regularly &#8220;really&#8221; look.<\/p>\n<p>Well, apparently enough people are doing this now that there&#8217;s some advertiser backlash, and consumer backlash against the advertiser backlash.<\/p>\n<p>Here&#8217;s <a href=\"http:\/\/www.michaelalanmiller.com\/?p=128\">the best one I&#8217;ve seen<\/a>. And read the comments for a nice review of the various arguments.<\/p>\n<p style=\"clear: both;\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.chrismclaren.com\/blog\/wp-content\/divider.gif\" alt=\"divider\" title=\"divider\" class=\"centered\" height=\"20\" width=\"253\"\/><\/p>\n<p>I love the idea of mountable remote filesystems&#8211;it&#8217;s cool enough that a bunch of machines running on a LAN can all pretend that their various drives are part of a common file system (best seen in the ages old <a href=\"http:\/\/en.wikipedia.org\/wiki\/Network_File_System_(protocol)\">unix NFS system<\/a>, or more crudely in Windows file shares), but when we&#8217;re mounting things over the Internet, and things that weren&#8217;t explicitly meant to be file systems, then things are really cool.<\/p>\n<p>A classic example would be <a href=\"http:\/\/richard.jones.name\/google-hacks\/gmail-filesystem\/gmail-filesystem.html\">GMailFS<\/a>, a file system for Linux that lets you use your GMail storage as a remote &#8220;network share&#8221;. (There is a Windows equivalent in the <a href=\"http:\/\/www.viksoe.dk\/code\/gmail.htm\">GMail Drive Shell Extension<\/a>, but Unix systems are much better designed to deal with <a href=\"http:\/\/en.wikipedia.org\/wiki\/Virtual_file_system\">virtual filesystems<\/a>.)<\/p>\n<p>Another recent example is <a href=\"http:\/\/howto.wired.com\/wiki\/Backup_Your_Flickr_Photos_With_Flickrfs\">FlickrFS<\/a>, which allows Linux users to mount their Flickr account as a filesystem&#8211;all the photos in the account appears as files in a &#8220;drive&#8221; in the operating system. Snazzy. I&#8217;ve got a Ubuntu box here&#8211;I&#8217;m totally going to set that up, just to mess around with it.<\/p>\n<p>Another example, perhaps even cooler, is the <a href=\"http:\/\/blog.wired.com\/monkeybites\/2007\/05\/mount_wikipedia.html\">WikipediaFS<\/a>, which allows you to mount Wikipedia (or any wiki running the same software) as a filesystem&#8211;seeing each article as a file that can be edited. Damn. I wonder if that could be hacked up a bit to create a WordPressFS that would make each blog entry (and uploaded files) appear as a filesystem&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">OK, let&#8217;s do one of those patented link posts to clean out some of these open tabs&#8230; Let&#8217;s start with Mario. As far as programming goes, I&#8217;m a kernel guy&#8211;an engine guy. I don&#8217;t do UI, and trust me, you&#8217;re happy I don&#8217;t. I make it work under the covers. As such, I often deride and disparage the hard (and&hellip; <a href=\"http:\/\/www.chrismclaren.com\/blog\/2008\/04\/20\/a-few-geeky-bits\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[12],"tags":[50,251,253,211,228],"class_list":["post-1189","post","type-post","status-publish","format-standard","hentry","category-linkapalooza","tag-deep-geekery","tag-games","tag-programming","tag-web-crack","tag-web-tools","xfolkentry"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5UQvw-jb","_links":{"self":[{"href":"http:\/\/www.chrismclaren.com\/blog\/wp-json\/wp\/v2\/posts\/1189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.chrismclaren.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.chrismclaren.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.chrismclaren.com\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"http:\/\/www.chrismclaren.com\/blog\/wp-json\/wp\/v2\/comments?post=1189"}],"version-history":[{"count":0,"href":"http:\/\/www.chrismclaren.com\/blog\/wp-json\/wp\/v2\/posts\/1189\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.chrismclaren.com\/blog\/wp-json\/wp\/v2\/media?parent=1189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.chrismclaren.com\/blog\/wp-json\/wp\/v2\/categories?post=1189"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.chrismclaren.com\/blog\/wp-json\/wp\/v2\/tags?post=1189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}