{"id":208,"date":"2009-01-13T02:55:12","date_gmt":"2009-01-13T07:55:12","guid":{"rendered":"http:\/\/vgable.com\/blog\/2009\/01\/13\/automatically-closing-nsfw-content-beta\/"},"modified":"2009-01-13T02:55:14","modified_gmt":"2009-01-13T07:55:14","slug":"automatically-closing-nsfw-content-beta","status":"publish","type":"post","link":"https:\/\/vgable.com\/blog\/2009\/01\/13\/automatically-closing-nsfw-content-beta\/","title":{"rendered":"Automatically Closing NSFW Content (Beta)"},"content":{"rendered":"<p>I&#8217;ve finally implemented a neat feature for <a href=\"http:\/\/www.vgable.com\/imlocation\/\">IMLocation<\/a> that I&#8217;ve wanted to do for a while now, <strong>when you arrive at work, it can automagically close NSFW webpages<\/strong>.  NSFW content is detected using <a href=\"http:\/\/developer.apple.com\/DOCUMENTATION\/DARWIN\/Reference\/ManPages\/man1\/lsm.1.html\">the same technology<\/a> behind Mac OS X&#8217;s Parental Controls.<\/p>\n<p>I recommend <a href=\"http:\/\/www.vgable.com\/imlocation\/IMLocation.dmg\">downloading IMLocation<\/a> to get the full effect, but you can also <a href=\"http:\/\/vgable.com\/files\/Close%20Private%20Webpages%20in%20Safari.action.zip\">get just the automator action<\/a>.  Leopard is required, and it only works with Safari right now.<\/p>\n<p>As you guessed, there is a trade-off between accidentally closing important webpages and letting questionable content slip through.  I&#8217;m not yet sure what the best way to expose tweaking this tradeoff is.  In the mean time I&#8217;ve chosen the more-confusing-but-powerful road, because I think it&#8217;s best to start with something that can do the job, and then refine and simplify it.<\/p>\n<h3>Firefox?<\/h3>\n<p>I want this to work with Firefox, but I am hamstrung by Firefox&#8217;s poor-to-nonexistant AppleScript support.  (In the meantime you can try the <a href=\"http:\/\/corknut.org\/worksafer\/\">worksafer<\/a> Firefox plugin, but it&#8217;s not a true substitute).<\/p>\n<p>Firefox is geared towards extension through plugins, while Safari has a less-rich plugin architecture, but good scripting support.  Arguably, the Firefox way is better for a web-browser.  I&#8217;ve seen some really cool Firefox plugins that extend the web-browsing experience in ways a script just can&#8217;t.  Unfortunately, what I&#8217;m trying to do &#8212; have NSFW content automatically closed <em>for you<\/em> when you get to work &#8212; is the sort of thing a script does well, and a plugin does cumbersomely, if at all.<\/p>\n<p>If anyone has some advice on how to hack around Firefox&#8217;s limitations please drop me a line.  Right now my prognosis is &#8220;a lot of work for a clunky payoff&#8221;, so right now I&#8217;m focusing on more pressing concerns.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve finally implemented a neat feature for IMLocation that I&#8217;ve wanted to do for a while now, when you arrive at work, it can automagically close NSFW webpages. NSFW content is detected using the same technology behind Mac OS X&#8217;s Parental Controls. I recommend downloading IMLocation to get the full effect, but you can also [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[53,3],"tags":[73,301,302,87],"class_list":["post-208","post","type-post","status-publish","format-standard","hentry","category-announcement","category-macosx","tag-automator","tag-imlocation","tag-latent-semantic-mapping","tag-leopard"],"_links":{"self":[{"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/posts\/208","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/comments?post=208"}],"version-history":[{"count":0,"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/posts\/208\/revisions"}],"wp:attachment":[{"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/media?parent=208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/categories?post=208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vgable.com\/blog\/wp-json\/wp\/v2\/tags?post=208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}