<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Stephan Sokolow's Blog</title>
	
	<link>http://blog.ssokolow.com</link>
	<description>Programming, Linux, Web, and the odd Fiction Review</description>
	<lastBuildDate>Fri, 18 May 2012 15:28:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>

	
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ssokolow_blog" /><feedburner:info uri="ssokolow_blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://superfeedr.com/hubbub" /><image><link>http://creativecommons.org/licenses/by-sa/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><item>
		<title>Treating The Symptom: A Privacy Law Story</title>
		<link>http://feedproxy.google.com/~r/ssokolow_blog/~3/GSwLVfSHPuA/</link>
		<comments>http://blog.ssokolow.com/archives/2012/05/18/treating-the-symptom-a-privacy-law-story/#comments</comments>
		<pubDate>Fri, 18 May 2012 15:17:03 +0000</pubDate>
		<dc:creator>Stephan Sokolow</dc:creator>
				<category><![CDATA[Web Wandering & Opinion]]></category>

		<guid isPermaLink="false">http://blog.ssokolow.com/?p=1285</guid>
		<description><![CDATA[In May 2011, new legislation was passed in the EU which was intended to require opt-in for tracking cookies. It comes into effect on May 26, 2012. Next Saturday. While people are agonizing over how compliance will gut websites&#8217; ability &#8230; <a href="http://blog.ssokolow.com/archives/2012/05/18/treating-the-symptom-a-privacy-law-story/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In May 2011, new legislation was passed in the EU which was intended to require opt-in for tracking cookies. It comes into effect on May 26, 2012. Next Saturday.</p>
<p><a title="Cookieless web analytics – report - @plannero" href="http://p.lannero.com/cookieless-web-analytics-update/">While</a> <a title="Cookie Control by Civic" href="http://civicuk.com/cookie-law/index">people</a> <a title="cPrompt - Michael Wright" href="http://michaelwright.me/cPrompt/">are</a> <a title="WordPress &gt; Support »Cookies on WordPress" href="https://wordpress.org/support/topic/cookies-on-wordpress">agonizing</a> <a title="New EU Privacy regulation: we need an 'opt-in' for statistics cookies - Piwik" href="http://forum.piwik.org/read.php?2,82741">over</a> <a title="The EU Cookies Law - ContentManagement.com" href="http://www.contentmanagement.com/the-eu-cookie-audit-law/">how</a> <a title="The “EU cookie directive”, behavioural advertising and practical considerations for Spain " href="http://www.velascolawyers.com/en/company-law/142-the-eu-cookie-directive-behavioural-advertising-and-practical-considerations-for-spain.html">compliance</a> will <a title="Flickr - Tracked Visits to ICO Website prior &amp; post explicit cookie opt-in" href="https://secure.flickr.com/photos/vickyb/5859873960/in/photostream">gut</a> websites&#8217; ability to identify and meet user demand, that&#8217;s not the problem. The problem is that, in order to have jurisdiction over attempts to weasel out of it by Google and Facebook, it <a title="Guidance on the rules on use of cookies and similar  technologies - Information Commissioner's Office" href="http://www.ico.gov.uk/news/latest_news/2011/~/media/documents/library/Privacy_and_electronic/Practical_application/guidance_on_the_new_cookies_regulations.ashx">doesn&#8217;t set clear boundaries</a>. It&#8217;s up to the judge to determine whether cookies like <code>PHPSESSID</code> require prior opt-in from users and <a title="EU cookie law: UK government crumbles? | Ecoconsultancy" href="http://econsultancy.com/us/blog/9416-eu-cookie-law-uk-government-crumbles">not even employees of the UK government are eager to comply</a>.</p>
<p>What&#8217;s worse is that it probably won&#8217;t even work. Experience with technologies like <a href="http://www.flickr.com/photos/edyson/11770771/">ActiveX</a> and Windows <a title="User Account Control - Wikipedia" href="https://en.wikipedia.org/wiki/User_Account_Control">UAC</a> has shown that people just learn to click &#8220;Accept&#8221; without reading when constantly bombarded. Even if they don&#8217;t nag, the EFF&#8217;s <a href="https://panopticlick.eff.org/">Panopticlick</a> has already demonstrated that, with an IP address and a fingerprint of a user&#8217;s browser headers, you can track individual users pretty well unless they&#8217;re all behind the same NAT and on the same IT deployment image.</p>
<p>A solitary 1&#215;1-pixel transparent GIF from a 3rd-party server is a blatant violation of any privacy laws you might care to craft, but what about a <a title="reCAPTCHA: Stop Spam, Read Books" href="http://www.google.com/recaptcha">reCAPTCHA</a>? &#8230;or a <a title="Google Web Fonts" href="http://www.google.com/webfonts">Google Font Library</a> embed? &#8230;or <a title="Google Libraries API - Developer's Guide" href="https://developers.google.com/speed/libraries/devguide">that copy of jQuery</a> everyone seems to load off Google these days? Every request for one of those leaks your current location via the <code>Referer</code> header and you can&#8217;t turn it off because that will break sites like Snopes.com, Pixiv.net, and many others which use it for hotlinking protection. (Though individual Firefox users can use <a title="RefControl :: Add-ons for Firefox" href="https://addons.mozilla.org/en-US/firefox/addon/refcontrol/">RefControl</a> to forge a nonsense <code>Referer</code> on all other sites)</p>
<p>User analytics via server logs (eg. <code>/var/log/apache2/access.log</code>) <a title="AWStats official web site" href="http://awstats.sourceforge.net/">predates</a> Javascript-based analytics and, if anyone has the raw data necessary to design a robust user fingerprint which can survive minor changes like browser upgrades (and an analytics package which uses statistical probability analysis for reliability), it&#8217;s companies like Google and Facebook.</p>
<p>Aside from driving companies to implement tracking that&#8217;s harder to neuter without companies&#8217; co-operation, my big concern is that some EU company with deep pockets will use this as an opportunity to cripple smaller competitors by forcing them to jump through too many compliance hoops. It&#8217;s bad enough that big U.S. companies achieve a similar effect with software patents.</p>
 <p><a href="http://blog.ssokolow.com/?flattrss_redirect&amp;id=1285&amp;md5=806e6d5112167fd1802351c297cd48f7" title="Flattr" target="_blank"><img src="http://blog.ssokolow.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=GSwLVfSHPuA:FJSqSaVNwEQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=GSwLVfSHPuA:FJSqSaVNwEQ:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ssokolow_blog/~4/GSwLVfSHPuA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.ssokolow.com/archives/2012/05/18/treating-the-symptom-a-privacy-law-story/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=ssokolow&amp;popout=1&amp;url=http%3A%2F%2Fblog.ssokolow.com%2Farchives%2F2012%2F05%2F18%2Ftreating-the-symptom-a-privacy-law-story%2F&amp;hidden=1&amp;language=en_GB&amp;category=text&amp;title=Treating+The+Symptom%3A+A+Privacy+Law+Story&amp;description=In+May+2011%2C+new+legislation+was+passed+in+the+EU+which+was+intended+to+require+opt-in+for+tracking+cookies.+It+comes+into+effect+on+May+26%2C+2012.+Next+Saturday.+While...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://blog.ssokolow.com/archives/2012/05/18/treating-the-symptom-a-privacy-law-story/</feedburner:origLink></item>
		<item>
		<title>The State of Digital Distribution on Linux</title>
		<link>http://feedproxy.google.com/~r/ssokolow_blog/~3/fslS3l245g4/</link>
		<comments>http://blog.ssokolow.com/archives/2012/04/26/the-state-of-digital-distribution-on-linux/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 04:38:34 +0000</pubDate>
		<dc:creator>Stephan Sokolow</dc:creator>
				<category><![CDATA[Geek Stuff]]></category>
		<category><![CDATA[Lair Improvement]]></category>

		<guid isPermaLink="false">http://blog.ssokolow.com/?p=1272</guid>
		<description><![CDATA[Note: This is cross-posted from the blog in my Desura account to ensure my backup system catches it. After one of my previous posts, showing off my obsession with flowcharts and how much I overthink buying new games, it occurred &#8230; <a href="http://blog.ssokolow.com/archives/2012/04/26/the-state-of-digital-distribution-on-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Note:</strong> This is <a href="http://www.desura.com/members/ssokolow/blogs/the-state-of-digital-distribution-on-linux">cross-posted</a> from the blog in my Desura account to ensure my backup system catches it.</p>
<p>After <a href="http://blog.ssokolow.com/archives/2012/04/22/how-i-buy-games-as-a-flowchart/">one of my previous posts</a>, showing off my obsession with flowcharts and how much I overthink buying new games, it occurred to me that I can actually focus on a question other people might care about: How <strong>does</strong> one comfortably manage their games collection on Linux these days?</p>
<p>The only options I&#8217;ve been able to find for getting Linux games online are as follows and only the first three have package management beyond &#8220;download this installer&#8221;:</p>
<ul>
<li>The free packages in your distro&#8217;s native package manager and any 3rd-party repositories like <a href="http://www.playdeb.net/updates/Ubuntu/">PlayDeb.net</a></li>
<li>A distro-specific package manager like the <a href="https://en.wikipedia.org/wiki/Ubuntu_Software_Center">Ubuntu Software Center</a> that also offers the option to purchase things.</li>
<li><a href="http://www.desura.com/">Desura</a></li>
<li><a href="http://www.gameolith.com/">Gameolith</a></li>
<li>Bundles like the <a href="http://www.humblebundle.com/">Humble Indie Bundles</a> and specific games in things like <a href="http://www.indieroyale.com/">Indie Royale Bundles</a></li>
<li>Individual games like <a href="http://www.minecraft.net/">Minecraft</a> which are playable on Linux (free or pay)</li>
<li>Running <a href="http://www.gog.com/">GOG.com</a> games inside <a href="http://www.dosbox.com/">DOSBox</a> or <a href="http://www.winehq.org/">Wine</a> or using the purchased resources in reverse-engineered engines like <a href="http://www.scummvm.org/">ScummVM</a>.</li>
</ul>
<p>However, when most people think of digital distribution (the buzzword), we think of a unified experience that takes the hassle out of managing our games for us. (In other words, something developers have to support or else like Steam)</p>
<p>Obviously, nothing as comprehensive as that exists for Linux yet, but we can try to MacGyver things up for now. I&#8217;d like to hear what your approach is in the comments, but here&#8217;s the best I&#8217;ve been able to accomplish.</p>
<p style="text-align: center;"><a title="The State of Digital Distribution on Linux - Desura" href="http://www.desura.com/members/ssokolow/images/the-state-of-digital-distribution-on-linux" target="_blank"><img class="aligncenter" src="/wp-content/my_game_roster.png" alt="The State of Digital Distribution on Linux" width="558" height="764" /></a></p>
<p>It&#8217;s not ideal, but I tried and, since I&#8217;m already using <a title=" TiddlyWiki - a reusable non-linear personal web notebook" href="http://tiddlywiki.com/">TiddlyWiki</a> to manage everything else, it&#8217;s quite comfortable.</p>
<p>The key details are:</p>
<ul>
<li>The <a href="http://www.desura.com/about">Desura button</a> is a direct link to the <a href="http://www.desura.com/install">client download</a> page.</li>
<li>The <a title="80x15 PlayDeb button" href="http://www.desura.com/members/ssokolow/images/playdeb-80x15">PlayDeb button</a> and the PPA links in the &#8220;Package Manager&#8221; section are direct links to the lines I&#8217;ll need to re-add to <code>/etc/apt/sources.list</code> if I re-install.</li>
<li>The <a title="80x15 GOG.com button" href="http://www.desura.com/members/ssokolow/images/gog-80x15">GOG.com</a> button is a direct link to the &#8220;<a href="https://www.gog.com/en/account/games">your games</a>&#8221; page.</li>
<li>The non-bracketed links in the &#8220;Package Manager&#8221; section use <a href="https://wiki.ubuntu.com/AptUrl"><code>apt:</code> URLs</a> to trigger the package installer from the browser.</li>
<li>The rest are just links to the page where you choose your download type (deb, rpm, installer, etc.)</li>
</ul>
<p>I&#8217;m still working on polishing up and streamlining everything, but I&#8217;m already making good progress on polishing up Desura as a general game launcher. Here&#8217;s what it looks like once I&#8217;ve added a few native Linux games and a few Windows games via Wine and wrapper scripts:</p>
<p style="text-align: center;"><a title="Results of set_icon.py - Desura" href="http://www.desura.com/members/ssokolow/images/results-of-set-iconpy" target="_blank"><img class="aligncenter" src="/wp-content/icons_example.png" alt="Results of set_icon.py" width="358" height="366" /></a></p>
<p>You can do this yourself, if you want, by using the <a href="http://www.desura.com/members/ssokolow/blogs/update-to-my-icon-setting-script\"><code>set_icon.py</code></a> script I wrote. It&#8217;ll even <a href="http://www.desura.com/members/ssokolow/blogs/set-iconpy-now-with-exe-icon-support">extract icons from <code>.EXE</code> files</a> for you.</p>
<p>When I have time, I&#8217;m also planning to work on:</p>
<ul>
<li>Making <a title="Simple script to set icons on locally-installed games in Desura - GitHub Gist" href="https://gist.github.com/1692707"><code>set_icon.py</code></a> work on Windows. (The main issue is using Windows methods to find Desura and extract icons from <code>.EXE</code> files rather than Linux ones)</li>
<li>A script which will create a wrapper for a Wine application, extract the icon, and add it to Desura with one command.</li>
<li>A script which will sync all the games in my Linux desktop&#8217;s launcher into Desura (both additions and deletions) with one command.</li>
</ul>
 <p><a href="http://blog.ssokolow.com/?flattrss_redirect&amp;id=1272&amp;md5=e333026f7ad4d9a5afaed9ece6125f5f" title="Flattr" target="_blank"><img src="http://blog.ssokolow.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=fslS3l245g4:tF_j-r4HmFY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=fslS3l245g4:tF_j-r4HmFY:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ssokolow_blog/~4/fslS3l245g4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.ssokolow.com/archives/2012/04/26/the-state-of-digital-distribution-on-linux/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=ssokolow&amp;popout=1&amp;url=http%3A%2F%2Fblog.ssokolow.com%2Farchives%2F2012%2F04%2F26%2Fthe-state-of-digital-distribution-on-linux%2F&amp;hidden=1&amp;language=en_GB&amp;category=text&amp;title=The+State+of+Digital+Distribution+on+Linux&amp;description=Note%3A+This+is+cross-posted+from+the+blog+in+my+Desura+account+to+ensure+my+backup+system+catches+it.+After+one+of+my+previous+posts%2C+showing+off+my+obsession+with+flowcharts...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://blog.ssokolow.com/archives/2012/04/26/the-state-of-digital-distribution-on-linux/</feedburner:origLink></item>
		<item>
		<title>Secure Cloud Backup/Sync</title>
		<link>http://feedproxy.google.com/~r/ssokolow_blog/~3/SDU3X8K24dI/</link>
		<comments>http://blog.ssokolow.com/archives/2012/04/24/secure-cloud-backupsync/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 01:01:44 +0000</pubDate>
		<dc:creator>Stephan Sokolow</dc:creator>
				<category><![CDATA[Geek Stuff]]></category>

		<guid isPermaLink="false">http://blog.ssokolow.com/?p=1257</guid>
		<description><![CDATA[Given the mounting concerns over cloud storage offerings and the increasing occurrence of bills like ACTA and CISPA, it&#8217;s becoming increasingly important to find alternatives to US-based, un-encrypted cloud storage services like Dropbox. The question for poor saps like me &#8230; <a href="http://blog.ssokolow.com/archives/2012/04/24/secure-cloud-backupsync/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Given the <a title="Oops: Dropbox Left All User Accounts Wide Open For Four Hours This Weekend - TechDirt" href="http://www.techdirt.com/articles/20110621/01361414780/oops-dropbox-left-all-user-accounts-wide-open-four-hours-this-weekend.shtml">mounting</a> <a title="Google Drive launches, but why not run internet storage yourself? - OSNews.com" href="http://www.osnews.com/comments/25870">concerns</a> over cloud storage offerings and the increasing occurrence of bills like <a title="EU data protection watchdog: ACTA &quot;highly intrusive&quot;" href="http://www.osnews.com/comments/25868">ACTA</a> and <a title="You thought SOPA &amp; PIPA were defeated? - OSNews.com" href="http://www.osnews.com/comments/25866">CISPA</a>, it&#8217;s becoming increasingly important to find alternatives to US-based, un-encrypted cloud storage services like Dropbox.</p>
<p>The question for poor saps like me is, who can we trust without paying even more money? Well, here are the cross-platform cloud backup/sync providers I&#8217;ve found which assure you that, like <a href="https://www.mozilla.org/en-US/mobile/sync/">Firefox Sync</a>, data is encrypted before it leaves your computer and they can&#8217;t recover it if you lose your key:</p>
<table>
<tbody>
<tr>
<th>Name</th>
<th>Free Plan</th>
<th>Extras</th>
</tr>
<tr>
<td><a href="https://www.wuala.com/en">Wuala</a></td>
<td>5GiB</td>
<td>Swiss subsidiary of a French company with Swiss, German, and French datacenters.</td>
</tr>
<tr>
<td><a href="https://spideroak.com/">SpiderOak</a></td>
<td>2GiB + 1GiB/referral</td>
<td>Optional 2-factor auth via smartphone. In-depth technical details of their encryption are public.</td>
</tr>
</tbody>
</table>
<p>As an alternative, if you have VPS, co-located server, or feature-rich shared hosting in a country you trust, you can also run your own service using open-source software.</p>
<p>Just keep in mind that most options don&#8217;t encrypt data on the server so, if you get hacked or police confiscate your server, they probably will grab copies of your data before someone thinks to power it off and lose your <a title="eCryptFS - Wikipedia" href="https://en.wikipedia.org/wiki/Ecryptfs">eCryptFS</a> or <a href="https://en.wikipedia.org/wiki/Encfs">EncFS</a> keys. (EncFS on the client might work though)</p>
<table>
<tbody>
<tr>
<th>Client</th>
<th>Server</th>
<th>Encrypted Storage?</th>
<th>Notes</th>
</tr>
<tr>
<td><a href="http://sparkleshare.org/">SparkleShare</a></td>
<td><a href="https://en.wikipedia.org/wiki/Secure_Shell">ssh</a>+<a href="http://git-scm.com/">git</a></td>
<td>No</td>
<td>Dropbox-like client. SSH Public-Key authentication.</td>
</tr>
<tr>
<td><a href="http://owncloud.org/sync-clients/">various</a> (<a href="https://en.wikipedia.org/wiki/WebDAV">WebDAV</a>)</td>
<td><a href="http://owncloud.org/">ownCloud</a></td>
<td>Limited Planned</td>
<td>Has WebUI. Supported by <a href="http://unhosted.org/">remoteStorage.js</a>.</td>
</tr>
<tr>
<td><a href="http://duplicity.nongnu.org/">duplicity</a></td>
<td><a href="http://openssh.com/">ssh</a>, <a href="https://en.wikipedia.org/wiki/Rsync">rsync</a>, <a href="https://en.wikipedia.org/wiki/File_Transfer_Protocol">ftp</a>, <a href="https://en.wikipedia.org/wiki/WebDAV">WebDAV</a>, <a href="https://aws.amazon.com/s3/">Amazon S3</a>, &#8230;</td>
<td>Yes</td>
<td>Linux-only. Sync is one-way like rsync. Client encrypts before sending to server.</td>
</tr>
</tbody>
</table>
<p>I&#8217;d also keep an eye on <a href="http://www.syncany.org/">Syncany</a>. It&#8217;s not out yet, but if it doesn&#8217;t end up broken or vaporware, it looks like it will be a good hybrid of SparkleShare and duplicity.</p>
<p>Please feel free to suggest further alternatives in the comments. I&#8217;ll update the post if they look good.</p>
 <p><a href="http://blog.ssokolow.com/?flattrss_redirect&amp;id=1257&amp;md5=de1277de5bb69220e2beac7288dd2b33" title="Flattr" target="_blank"><img src="http://blog.ssokolow.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=SDU3X8K24dI:vTrYKEzPL-s:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=SDU3X8K24dI:vTrYKEzPL-s:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ssokolow_blog/~4/SDU3X8K24dI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.ssokolow.com/archives/2012/04/24/secure-cloud-backupsync/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=ssokolow&amp;popout=1&amp;url=http%3A%2F%2Fblog.ssokolow.com%2Farchives%2F2012%2F04%2F24%2Fsecure-cloud-backupsync%2F&amp;hidden=1&amp;language=en_GB&amp;category=text&amp;title=Secure+Cloud+Backup%2FSync&amp;description=Given+the+mounting+concerns+over+cloud+storage+offerings+and+the+increasing+occurrence+of+bills+like+ACTA+and+CISPA%2C+it%26%238217%3Bs+becoming+increasingly+important+to+find+alternatives+to+US-based%2C+un-encrypted+cloud+storage...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://blog.ssokolow.com/archives/2012/04/24/secure-cloud-backupsync/</feedburner:origLink></item>
		<item>
		<title>How I Buy Games (as a Flowchart)</title>
		<link>http://feedproxy.google.com/~r/ssokolow_blog/~3/RtiJErFv_S8/</link>
		<comments>http://blog.ssokolow.com/archives/2012/04/22/how-i-buy-games-as-a-flowchart/#comments</comments>
		<pubDate>Sun, 22 Apr 2012 06:35:25 +0000</pubDate>
		<dc:creator>Stephan Sokolow</dc:creator>
				<category><![CDATA[Web Wandering & Opinion]]></category>

		<guid isPermaLink="false">http://blog.ssokolow.com/?p=1253</guid>
		<description><![CDATA[Being the geek that I am, one thing I&#8217;ve wanted for a while is a diagram of how I decide what to do when a video game catches my eye. I finally made one. (Note: further commentary below the diagram) &#8230; <a href="http://blog.ssokolow.com/archives/2012/04/22/how-i-buy-games-as-a-flowchart/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Being the geek that I am, one thing I&#8217;ve wanted for a while is a diagram of how I decide what to do when a video game catches my eye. I finally made one.</p>
<p>(Note: further commentary below the diagram)</p>
<p><img class="aligncenter" title="How I Buy Games" src="/wp-content/game_purchasing_flowchart.png" alt="Flowchart describing how I buy games" width="578" height="1231" /></p>
<p>Why do I require such strict conditions before I buy games? It&#8217;s fairly straightforward, actually:</p>
<ol>
<li>I have <a title="8 PCs in a Bunker: Ownership, Respect, and Principles in the Steam Era" href="http://blog.ssokolow.com/archives/2011/07/26/8-pcs-in-a-bunker-ownership-respect-and-principles-in-the-steam-era/">strong and well-justified</a> feelings about DRM.</li>
<li>I&#8217;m a student with very little money.</li>
<li>I&#8217;m a full-time Linux user and have been since I was 16.</li>
<li>When you consider all the other ways I entertain myself, I probably have more games than I&#8217;ll ever be able to beat. (In addition to the 100+ games I have as downloads, the boxes in my closet contain roughly 500 game CD-ROMs and a CD-R full of disk images made from legally-purchased diskettes)</li>
</ol>
<p>So, in that case, why do I keep buying games at all? In my own small way, I like to be a patron of the arts, so I try to give at least a little to every game I approve of, whether or not I&#8217;ll ever play it.</p>
<p>I still have to get some kind of short-term return on investment with my tight budget, but it&#8217;s better than nothing. After all, a little money to a lot of worthy developers is better than a lot to a few quasi-worthy ones&#8230; especially when I use every means at my disposal to cost them less in download bandwidth.</p>
 <p><a href="http://blog.ssokolow.com/?flattrss_redirect&amp;id=1253&amp;md5=81babf767179c3b60c1c35f8e11715f9" title="Flattr" target="_blank"><img src="http://blog.ssokolow.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=RtiJErFv_S8:s84xhf4CFv0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=RtiJErFv_S8:s84xhf4CFv0:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ssokolow_blog/~4/RtiJErFv_S8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.ssokolow.com/archives/2012/04/22/how-i-buy-games-as-a-flowchart/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=ssokolow&amp;popout=1&amp;url=http%3A%2F%2Fblog.ssokolow.com%2Farchives%2F2012%2F04%2F22%2Fhow-i-buy-games-as-a-flowchart%2F&amp;hidden=1&amp;language=en_GB&amp;category=text&amp;title=How+I+Buy+Games+%28as+a+Flowchart%29&amp;description=Being+the+geek+that+I+am%2C+one+thing+I%26%238217%3Bve+wanted+for+a+while+is+a+diagram+of+how+I+decide+what+to+do+when+a+video+game+catches+my+eye....&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://blog.ssokolow.com/archives/2012/04/22/how-i-buy-games-as-a-flowchart/</feedburner:origLink></item>
		<item>
		<title>When Linux Freezes…</title>
		<link>http://feedproxy.google.com/~r/ssokolow_blog/~3/NgFFWTQe25Q/</link>
		<comments>http://blog.ssokolow.com/archives/2012/04/15/when-linux-freezes/#comments</comments>
		<pubDate>Sun, 15 Apr 2012 18:41:02 +0000</pubDate>
		<dc:creator>Stephan Sokolow</dc:creator>
				<category><![CDATA[Web Wandering & Opinion]]></category>

		<guid isPermaLink="false">http://blog.ssokolow.com/?p=1240</guid>
		<description><![CDATA[Like many geeks, I&#8217;ve moved less tech-savvy relatives to Linux and, in my mother&#8217;s case, common ideology goes a long way to overlooking bugs and rough edges. However, working with her has revealed a serious problem in the Linux desktop &#8230; <a href="http://blog.ssokolow.com/archives/2012/04/15/when-linux-freezes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Like many geeks, I&#8217;ve moved less tech-savvy relatives to Linux and, in my mother&#8217;s case, common ideology goes a long way to overlooking bugs and rough edges. However, working with her has revealed a serious problem in the Linux desktop as implemented by all major distros.</p>
<p>Once every month or so, I get called in because &#8220;Linux froze&#8221;. Almost every time, it turns out that some program <code>XGrabPointer</code>&#8216;d the mouse, then froze, leaving the system live and the mouse moving&#8230; but no clicks being received. (The exceptions are when she&#8217;s using her laptop and an Intel graphics driver bug freezes the X server)</p>
<p>While not ideal, there used to be a clean workaround for this. Just set the appropriate <code>xorg.conf</code> toggle and teach them to use one of <code>Ctrl+Alt+Backspace</code>, <code>Ctrl+Alt+KP_Multiply</code>, or <code>Ctrl+Alt+KP_Divide</code> to recover. However, these days, the old approaches don&#8217;t work, the system is in upheaval, and nobody with any significant Google PageRank seems to care enough to keep their documentation up to date.</p>
<p>Despite my loyalty to the platform, I&#8217;m not too blind to recognize that this problem, in and of itself, is easily enough to keep Linux on the desktop constrained to households with a full-time geek. (If for no other reason than because it&#8217;s an easy PR weakness for Microsoft and Apple to attack if Linux gains any ground)</p>
<p><a href="https://en.wikipedia.org/wiki/Wayland_%28display_server_protocol%29">Wayland</a> could fix this problem if it gains adoption&#8230; but it has its own issues:</p>
<ul>
<li>It&#8217;s still <em>very</em> young</li>
<li>Some people (me) need high-performance 3D drivers, GPU acceleration for HD video, and professional-quality dual-head support, but I haven&#8217;t heard anything on whether nVidia will support it with their binary drivers (or ATi for that matter).</li>
<li>There is no clear plan for a replacement for <code>ssh -X</code> that&#8217;s better than mere VNC.</li>
<li>I haven&#8217;t been promised a compositor which will <a title="Open Letter: The issues with client-side-window-decorations" href="http://blog.martin-graesslin.com/blog/2010/05/open-letter-the-issues-with-client-side-window-decorations/">forbid client-side window decorations</a> (CSD for short).</li>
</ul>
<p>The others, I can see being solved with time, but that last one is a <em>big</em> issue. The KWin developers have already said they&#8217;ll force force-server side window decorations, but&#8230;</p>
<ul>
<li>There&#8217;s apparently nothing beyond &#8220;peer pressure will save the world&#8221; and &#8220;applications which don&#8217;t use popular widget toolkits are a myth&#8221; to prevent an application from insisting that it also show client-side ones.</li>
<li>What if I want to forbid <acronym title="Client-Side Decorations">CSD</acronym> but whitelist Chrome and preserve the effect I get by maximizing Firefox and hiding the windeco? (No, not fullscreen. Even with Xinerama hints, Firefox modifies its UI when it detects that.)</li>
<li><strong>Most important:</strong> I run LXDE because I value a useful desktop over a glitzy one. Given current trends, it&#8217;ll be at least a decade before KDE 4 is as stable and responsive as KDE 3.5 was. (I used to be a loyal KDE 3.5 user, so nobody was more disappointed by Konqueror 4 and KDE 4.1 through 4.6 as I was.)</li>
</ul>
 <p><a href="http://blog.ssokolow.com/?flattrss_redirect&amp;id=1240&amp;md5=7977173d67f82acdcda220d993860be9" title="Flattr" target="_blank"><img src="http://blog.ssokolow.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=NgFFWTQe25Q:-h19O64bQbI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=NgFFWTQe25Q:-h19O64bQbI:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ssokolow_blog/~4/NgFFWTQe25Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.ssokolow.com/archives/2012/04/15/when-linux-freezes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=ssokolow&amp;popout=1&amp;url=http%3A%2F%2Fblog.ssokolow.com%2Farchives%2F2012%2F04%2F15%2Fwhen-linux-freezes%2F&amp;hidden=1&amp;language=en_GB&amp;category=text&amp;title=When+Linux+Freezes%26%238230%3B&amp;description=Like+many+geeks%2C+I%26%238217%3Bve+moved+less+tech-savvy+relatives+to+Linux+and%2C+in+my+mother%26%238217%3Bs+case%2C+common+ideology+goes+a+long+way+to+overlooking+bugs+and+rough+edges.+However%2C+working+with...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://blog.ssokolow.com/archives/2012/04/15/when-linux-freezes/</feedburner:origLink></item>
		<item>
		<title>Preventing Broken Links</title>
		<link>http://feedproxy.google.com/~r/ssokolow_blog/~3/T2aTGeGPmK0/</link>
		<comments>http://blog.ssokolow.com/archives/2012/04/01/preventing-broken-links/#comments</comments>
		<pubDate>Sun, 01 Apr 2012 05:27:54 +0000</pubDate>
		<dc:creator>Stephan Sokolow</dc:creator>
				<category><![CDATA[Geek Stuff]]></category>

		<guid isPermaLink="false">http://blog.ssokolow.com/?p=1233</guid>
		<description><![CDATA[TL;DR: If you&#8217;re going to move to a new URL, fill out my templates and put them at the old one to make damn sure other people&#8217;s links don&#8217;t break. Yesterday, I finally found a use for the root http://ssokolow.com &#8230; <a href="http://blog.ssokolow.com/archives/2012/04/01/preventing-broken-links/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>TL;DR:</strong> If you&#8217;re going to move to a new URL, fill out <a href="https://gist.github.com/2271546">my templates</a> and put them at the old one to make damn sure other people&#8217;s links don&#8217;t break.</p>
<p>Yesterday, I finally found a use for the root <a href="http://ssokolow.com/">http://ssokolow.com</a> domain&#8230; I delegated it to GitHub to shorten and professionalize URLs for my projects. (eg. <a href="http://ssokolow.com/quicktile/">http://ssokolow.com/quicktile</a>)</p>
<p>&#8230;but that meant that I could no longer use <code>.htaccess</code> to set up permanent redirects on URLs like <a href="http://www.ssokolow.com/ContactMe">http://www.ssokolow.com/ContactMe</a>.</p>
<p>After a little research, it turns out that <a href="http://pages.github.com/">GitHub Pages</a> doesn&#8217;t seem to have a method of declaring HTTP redirects&#8230; but Google and Yahoo will treat no-delay meta redirects as if they were HTTP 301.</p>
<p>Here&#8217;s what I came up with for a general, thorough way to ensure the least chance of broken links. (including <code>.htaccess</code> in case I switch hosting in the future) The example assumes you&#8217;re moving a whole domain (eg. from <a href="http://fatfree.sourceforge.net/">SourceForge</a> to <a href="http://bcosca.github.com/fatfree/">GitHub</a>), but it applies equally well to specific URLs within a domain.</p>
<p>(Also, don&#8217;t forget to use the change-of-address notification feature in Yahoo and Google Webmaster Tools)</p>
<div id="gist-2271546" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'># The proper way to HTTP Redirect... but not all hosts listen to .htaccess (eg. GitHub Pages)</div><div class='line' id='LC2'># Some hosts also provide a special redirect option in their hosting controls.</div><div class='line' id='LC3'><br/></div><div class='line' id='LC4'>RedirectPermanent / http://www.newsite.com/</div><div class='line' id='LC5'><br/></div><div class='line' id='LC6'># Probably never used, but just to be thorough.</div><div class='line' id='LC7'>ErrorDocument 404 /404.html</div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/2271546/84506461d1b42013fd322d1b56bdd24c35201705/.htaccess" style="float:right;">view raw</a>
            <a href="https://gist.github.com/2271546#file_.htaccess" style="float:right;margin-right:10px;color:#666">.htaccess</a>
            <a href="https://gist.github.com/2271546">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="cp">&lt;!DOCTYPE html&gt;</span></div><div class='line' id='LC2'><span class="nt">&lt;html&gt;</span></div><div class='line' id='LC3'>&nbsp;<span class="nt">&lt;head&gt;</span></div><div class='line' id='LC4'>&nbsp;&nbsp;<span class="c">&lt;!--</span></div><div class='line' id='LC5'><span class="c">   Custom 404 page. (GitHub Pages version)</span></div><div class='line' id='LC6'><br/></div><div class='line' id='LC7'><span class="c">   This will provide a last-ditch protection against broken links for actual users.</span></div><div class='line' id='LC8'><span class="c">   However, search engines won&#39;t recognize it as a redirect. Hence why index.html is necessary.</span></div><div class='line' id='LC9'><br/></div><div class='line' id='LC10'><span class="c">   IMPORTANT: You should also activate your old site in Yahoo and Google Webmaster Tools.</span></div><div class='line' id='LC11'><span class="c">     That will allow you to file a change of address notification in their search indexes</span></div><div class='line' id='LC12'><span class="c">     for all pages within your domain.</span></div><div class='line' id='LC13'><span class="c">  --&gt;</span></div><div class='line' id='LC14'>&nbsp;&nbsp;<span class="nt">&lt;meta</span> <span class="na">http-equiv=</span><span class="s">&quot;content-type&quot;</span> <span class="na">content=</span><span class="s">&quot;text/html; charset=utf-8&quot;</span> <span class="nt">/&gt;</span></div><div class='line' id='LC15'>&nbsp;&nbsp;<span class="nt">&lt;script </span><span class="na">type=</span><span class="s">&quot;text/javascript&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC16'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="kd">var</span> <span class="nx">NEW_HOST</span> <span class="o">=</span> <span class="s1">&#39;www.newsite.com&#39;</span><span class="p">;</span></div><div class='line' id='LC17'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nx">location</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="nx">location</span><span class="p">.</span><span class="nx">protocol</span> <span class="o">+</span> <span class="s1">&#39;//&#39;</span> <span class="o">+</span> <span class="nx">NEW_HOST</span> <span class="o">+</span> <span class="nx">location</span><span class="p">.</span><span class="nx">pathname</span> <span class="o">+</span> <span class="nx">location</span><span class="p">.</span><span class="nx">search</span> <span class="o">+</span> <span class="nx">location</span><span class="p">.</span><span class="nx">hash</span><span class="p">);</span></div><div class='line' id='LC18'>&nbsp;&nbsp;<span class="nt">&lt;/script&gt;</span></div><div class='line' id='LC19'>&nbsp;<span class="nt">&lt;/head&gt;</span></div><div class='line' id='LC20'>&nbsp;<span class="nt">&lt;body&gt;</span></div><div class='line' id='LC21'>&nbsp;&nbsp;<span class="nt">&lt;noscript&gt;&lt;p&gt;</span>This content has moved. Please replace the <span class="nt">&lt;code&gt;</span>http://www.oldsite.com/<span class="nt">&lt;/code&gt;</span> portion of</div><div class='line' id='LC22'>&nbsp;&nbsp;&nbsp;the address in your address bar with <span class="nt">&lt;code&gt;</span>http://www.newsite.com/<span class="nt">&lt;/code&gt;</span>.<span class="nt">&lt;/p&gt;&lt;/noscript&gt;</span></div><div class='line' id='LC23'>&nbsp;<span class="nt">&lt;/body&gt;</span></div><div class='line' id='LC24'><span class="nt">&lt;/html&gt;</span></div><div class='line' id='LC25'><br/></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/2271546/1cda5c71b78e474e9c0230849f6f10beed6284a9/404.html" style="float:right;">view raw</a>
            <a href="https://gist.github.com/2271546#file_404.html" style="float:right;margin-right:10px;color:#666">404.html</a>
            <a href="https://gist.github.com/2271546">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="cp">&lt;!DOCTYPE html&gt;</span></div><div class='line' id='LC2'><span class="nt">&lt;html&gt;</span></div><div class='line' id='LC3'>&nbsp;<span class="nt">&lt;head&gt;</span></div><div class='line' id='LC4'>&nbsp;&nbsp;<span class="c">&lt;!--</span></div><div class='line' id='LC5'><span class="c">   The less-than-ideal way to redirect that relies on the browser rather than the server.</span></div><div class='line' id='LC6'><br/></div><div class='line' id='LC7'><span class="c">   Requires a browser or other compatible User Agent and only covers the site root, </span></div><div class='line' id='LC8'><span class="c">   but Google and Yahoo treat it as equivalent to a proper HTTP 301 redirect.</span></div><div class='line' id='LC9'><span class="c">   Source: http://sebastians-pamphlets.com/google-and-yahoo-treat-undelayed-meta-refresh-as-301-redirect/</span></div><div class='line' id='LC10'><span class="c">  --&gt;</span></div><div class='line' id='LC11'>&nbsp;&nbsp;<span class="nt">&lt;meta</span> <span class="na">http-equiv=</span><span class="s">&quot;content-type&quot;</span> <span class="na">content=</span><span class="s">&quot;text/html; charset=utf-8&quot;</span> <span class="nt">/&gt;</span></div><div class='line' id='LC12'>&nbsp;&nbsp;<span class="nt">&lt;meta</span> <span class="na">http-equiv=</span><span class="s">&quot;refresh&quot;</span> <span class="na">content=</span><span class="s">&quot;0;url=http://www.newsite.com/&quot;</span> <span class="nt">/&gt;</span></div><div class='line' id='LC13'>&nbsp;<span class="nt">&lt;/head&gt;</span></div><div class='line' id='LC14'>&nbsp;<span class="nt">&lt;body&gt;</span></div><div class='line' id='LC15'>&nbsp;&nbsp;<span class="nt">&lt;p&gt;</span>This content has moved to <span class="nt">&lt;a</span> <span class="na">href=</span><span class="s">&quot;http://www.newsite.com/&quot;</span><span class="nt">&gt;</span>http://www.newsite.com/<span class="nt">&lt;/a&gt;</span>. Attempting to automatically redirect you.<span class="nt">&lt;/p&gt;</span></div><div class='line' id='LC16'>&nbsp;<span class="nt">&lt;/body&gt;</span></div><div class='line' id='LC17'><span class="nt">&lt;/html&gt;</span></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/2271546/9e0915f60ec7524b0eed6319e802c5ef2273dd02/index.html" style="float:right;">view raw</a>
            <a href="https://gist.github.com/2271546#file_index.html" style="float:right;margin-right:10px;color:#666">index.html</a>
            <a href="https://gist.github.com/2271546">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>

 <p><a href="http://blog.ssokolow.com/?flattrss_redirect&amp;id=1233&amp;md5=c5d209df583066faa208986cc067688e" title="Flattr" target="_blank"><img src="http://blog.ssokolow.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=T2aTGeGPmK0:ZG26Zk4QsOg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=T2aTGeGPmK0:ZG26Zk4QsOg:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ssokolow_blog/~4/T2aTGeGPmK0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.ssokolow.com/archives/2012/04/01/preventing-broken-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=ssokolow&amp;popout=1&amp;url=http%3A%2F%2Fblog.ssokolow.com%2Farchives%2F2012%2F04%2F01%2Fpreventing-broken-links%2F&amp;hidden=1&amp;language=en_GB&amp;category=text&amp;title=Preventing+Broken+Links&amp;description=TL%3BDR%3A+If+you%26%238217%3Bre+going+to+move+to+a+new+URL%2C+fill+out+my+templates+and+put+them+at+the+old+one+to+make+damn+sure+other+people%26%238217%3Bs+links+don%26%238217%3Bt+break....&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://blog.ssokolow.com/archives/2012/04/01/preventing-broken-links/</feedburner:origLink></item>
		<item>
		<title>My Issues With AppIndicators</title>
		<link>http://feedproxy.google.com/~r/ssokolow_blog/~3/ZMVrtk27PWQ/</link>
		<comments>http://blog.ssokolow.com/archives/2012/02/16/my-issues-with-appindicators/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 15:47:15 +0000</pubDate>
		<dc:creator>Stephan Sokolow</dc:creator>
				<category><![CDATA[Geek Stuff]]></category>

		<guid isPermaLink="false">http://blog.ssokolow.com/?p=1222</guid>
		<description><![CDATA[With the work I&#8217;ve been doing on my systray icons in the last few days, it occurred to me that I should probably mention that, when given the choice, I explicitly turn off Ubuntu-style AppIndicators for applications with regular systray &#8230; <a href="http://blog.ssokolow.com/archives/2012/02/16/my-issues-with-appindicators/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>With the work I&#8217;ve been doing on my systray icons in the last few days, it occurred to me that I should probably mention that, when given the choice, I explicitly turn off Ubuntu-style AppIndicators for applications with regular systray icons.</p>
<p>It&#8217;s not that I don&#8217;t like the idea. I think it&#8217;s a good one. The problem is that the year is 2012 and I&#8217;m using Linux. When I left-click an icon, I expect it to toggle application visibility, not display a context menu where I have to use <em>another</em> click to toggle visibility. That&#8217;s reserved for right-click.</p>
<p>Just because Apple took so long to accept the reality of the two-button mouse doesn&#8217;t mean my Linux desktop should punish me for not using some kind of desktop widget system to glance at things like torrent status. (Though, given how many other matter-of-personal-taste apple-isms Ubuntu has been adopting, like the global menubar and the titlebar buttons on the left-hand side, it doesn&#8217;t really surprise me that they&#8217;d blindly adopt that design quirk too.)</p>
<p>Now, if AppIndicators gain the ability to relegate the menu to right-click and bind a window handle to left-click, I&#8217;ll be the first person to welcome consistency between different applications&#8217; definitions of &#8220;toggle a window that&#8217;s already shown but is on another desktop or is below other windows&#8221;. (Personally, I think it should be &#8220;If the window isn&#8217;t on this desktop <em>and</em> top of the stack, then raise it on this desktop.&#8221;)</p>
 <p><a href="http://blog.ssokolow.com/?flattrss_redirect&amp;id=1222&amp;md5=313f6475ef80501a098cc8941617604b" title="Flattr" target="_blank"><img src="http://blog.ssokolow.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=ZMVrtk27PWQ:JUHAMoAjZ1c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=ZMVrtk27PWQ:JUHAMoAjZ1c:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ssokolow_blog/~4/ZMVrtk27PWQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.ssokolow.com/archives/2012/02/16/my-issues-with-appindicators/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=ssokolow&amp;popout=1&amp;url=http%3A%2F%2Fblog.ssokolow.com%2Farchives%2F2012%2F02%2F16%2Fmy-issues-with-appindicators%2F&amp;hidden=1&amp;language=en_GB&amp;category=text&amp;title=My+Issues+With+AppIndicators&amp;description=With+the+work+I%26%238217%3Bve+been+doing+on+my+systray+icons+in+the+last+few+days%2C+it+occurred+to+me+that+I+should+probably+mention+that%2C+when+given+the+choice%2C+I...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://blog.ssokolow.com/archives/2012/02/16/my-issues-with-appindicators/</feedburner:origLink></item>
		<item>
		<title>Polishing up the Lubuntu Notification Area</title>
		<link>http://feedproxy.google.com/~r/ssokolow_blog/~3/FQmwfDc571w/</link>
		<comments>http://blog.ssokolow.com/archives/2012/02/15/polishing-up-the-lubuntu-notification-area/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 11:44:25 +0000</pubDate>
		<dc:creator>Stephan Sokolow</dc:creator>
				<category><![CDATA[Geek Stuff]]></category>

		<guid isPermaLink="false">http://blog.ssokolow.com/?p=1210</guid>
		<description><![CDATA[Whether you call them system tray icons, systray icons, or notification icons, you have to admit that these things can easily get out of control, even on Linux. Attempts are being made to tidy them up, like appindicators and the &#8230; <a href="http://blog.ssokolow.com/archives/2012/02/15/polishing-up-the-lubuntu-notification-area/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Whether you call them system tray icons, systray icons, or notification icons, you have to admit that these things can easily get out of control, even on Linux. Attempts are being made to tidy them up, like <a title="Application Panel Indicators - Ubuntu Wiki" href="https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators">appindicators</a> and the <a title="Messaging Menu - Ubuntu Wiki" href="https://wiki.ubuntu.com/MessagingMenu">messaging menu</a> but, when you get right down to it, there&#8217;s always going to be a certain amount of discretion necessary on the part of the end-user.</p>
<p>Given that lxpanel (and, therefore, anything based on plain vanilla LXDE) doesn&#8217;t have a KDE-style &#8220;hide these icons&#8221; feature and that I couldn&#8217;t figure out how to get the messaging menu to work inside the lxpanel appindicator harness, let&#8217;s see how much we can polish up the tray.</p>
<h2>Goals</h2>
<ul>
<li>There should be as few tray icons as feasibly possible</li>
<li>Tray icons should, as much as possible, be activity-oriented rather than tool-oriented.</li>
<li>Icons must not be a distracting mish-mash of color. (Not even the transient ones)</li>
<li>Icons should act effectively as indicators that applications require my attention.</li>
</ul>
<h2>Solution (Manual Version)</h2>
<h3>Step 1: Just a few activity-oriented icons</h3>
<p>The first point takes a little bit of thought, but is mostly simple if you pick the right tools. Here&#8217;s how my load-out looks:</p>
<table>
<tbody>
<tr>
<th>Icon</th>
<th>Purpose</th>
</tr>
<tr>
<td><a href="https://www.dropbox.com/">Dropbox</a></td>
<td>Backup, Sync, Share</td>
</tr>
<tr>
<td><a href="https://launchpad.net/xpad">XPad</a></td>
<td>Scratch and short-term TODOs</td>
</tr>
<tr>
<td><a href="http://basket.kde.org/">BasKet Note Pads</a></td>
<td>Long-term records and reference<br />
(Use the <a href="http://www.trinitydesktop.org/">Trinity</a> version for stability)</td>
</tr>
<tr>
<td><a href="http://audacious-media-player.org/">Audacious Media Player</a></td>
<td>
<ul>
<li>Playback control via right-click</li>
<li>Volume via scroll wheel</li>
</ul>
</td>
</tr>
<tr>
<td><a href="http://www.pidgin.im/">Pidgin</a></td>
<td>All real-time communications<br />
(<a href="https://en.wikipedia.org/wiki/Empathy_%28software%29">Empathy</a> might be better for some people)</td>
</tr>
<tr>
<td><a href="https://www.mozilla.org/en-US/thunderbird/">Thunderbird</a></td>
<td>
<ul>
<li>All non-realtime communications</li>
<li>RSS Reader</li>
<li>Use <a href="https://addons.mozilla.org/en-US/firefox/addon/firetray/">FireTray</a> for a tray icon</li>
</ul>
</td>
</tr>
<tr>
<td><a href="http://parcellite.sourceforge.net/">Parcellite</a></td>
<td>Clipboard history</td>
</tr>
</tbody>
</table>
<p>That&#8217;s probably the most compact I can get it for now.</p>
<h3>Step 2: Icons shouldn&#8217;t be distracting</h3>
<p>I&#8217;ve chosen to accomplish this by making permanent residents of the tray look like carved indentations without any color and temporary residents look like monochrome glyphs.</p>
<ol>
<li><a title="Making the Pidgin Tray Icon Show Status in Lubuntu" href="http://blog.ssokolow.com/archives/2012/02/13/making-the-pidgin-tray-icon-show-status-in-lubuntu/">Fix</a> the Pidgin icon&#8217;s ability to display status notifications.</li>
<li>Copy icons from <a href="http://danrabbit.deviantart.com/art/elementary-Icons-65437279">Elementary</a> into ~/.local/share/icons/elementary-mono-dark to give Dropbox&#8217;s idle icon, Pidgin&#8217;s available, idle, and away icons the look of carved indentations.</li>
<li>Do the same thing with Elementary&#8217;s icon for Tomboy Notes but put it into ~/.trinity/share/icons/ instead and mind the use of &#8220;22&#215;22&#8243; form rather than &#8220;22&#8243; for folder names.</li>
<li><a href="http://blog.ssokolow.com/archives/2012/02/14/converting-faenza-paneltoolbar-icons-into-elementary-panel-icons/">Adjust the Faenza icons</a> for Tomboy Notes and Audacious (use the former for XPad). (And, if you use Deluge rather than Transmission, you&#8217;ll need to grab that from Faenza too)</li>
<li>Grab the <a href="http://ramzea.deviantart.com/art/Elementary-Parcellite-Icon-161636577">Elementary Parcellite</a> icon and, if you use JDownloader, my <a title="JDownloader Elementary Panel Icon (Dark)" href="http://gnome-look.org/content/show.php?content=148894">quick icon for that</a>.</li>
</ol>
<p>I&#8217;m still working on the best solution for Thunderbird, but here&#8217;s what it looks like sans Thunderbird:</p>
<p><img class="aligncenter" title=" " src="/wp-content/subdued_elementary_tray.png" alt="Screenshot" width="146" height="21" /></p>
<p>Step 3: Icons should act as indicators</p>
<p>The final step is to make icons significantly more noticeable when they need attention. This is actually surprisingly easy for the ones which support changing their state.</p>
<p>For ones like Deluge which blink to get your attention, this is already done. For the rest, just mix and match so the normal icons and the attention icons are from different themes.</p>
<ul>
<li>Just use the elementary-mono-dark icons for non-idle Dropbox the way they&#8217;re supposed to be used. (White icons that contrast well with the black will jump out at you when you&#8217;re used to it being a carved hole in the black)</li>
<li>For Pidgin, just make sure you don&#8217;t have an icon for &#8220;message needs attention&#8221; and it&#8217;ll fall through to the default app icon&#8230; which, in Elementary, is a purple speech balloon with an exclamation mark.</li>
<li>If you want to remind yourself to not leave Pidgin on &#8220;do not disturb&#8221; or &#8220;invisible&#8221; grab the icons from <a href="http://mastropino.deviantart.com/art/elementary-Pidgin-2-Helper-152655347?">Elementary Pidgin 2</a> and use them as your icons for those statuses.</li>
<li>FireTray can handle showing a well-contrasting message count when you&#8217;ve got mail, so just replace the default Thunderbird icon with something that <em>doesn&#8217;t</em> contrast and you&#8217;re all set.</li>
</ul>
<p>The only thing I could think of to make this better would be if Audacious supported showing play/pause/stop icons for its tray icon. Don&#8217;t you agree?</p>
<p><img class="aligncenter" src="/wp-content/subdued_elementary_tray_indicators.png" alt="Screenshot" width="174" height="22" /></p>
<h2>Solution (5-minute Version)</h2>
<p><a href="https://github.com/ssokolow/profile/commit/1b9031ef72e413377b3aebc56e3358361157279b">Pop over to GitHub</a> (link is to a specific revision) and grab these directories from my profile repo:</p>
<ul>
<li>home/.local/share/icons</li>
<li>home/.trinity/share/icons</li>
<li>home/.local/share/images (optional)</li>
</ul>
 <p><a href="http://blog.ssokolow.com/?flattrss_redirect&amp;id=1210&amp;md5=8a85bfb0cb1659fcd96e7b7e5d6334a8" title="Flattr" target="_blank"><img src="http://blog.ssokolow.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=FQmwfDc571w:nDv0La7HA4U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=FQmwfDc571w:nDv0La7HA4U:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ssokolow_blog/~4/FQmwfDc571w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.ssokolow.com/archives/2012/02/15/polishing-up-the-lubuntu-notification-area/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=ssokolow&amp;popout=1&amp;url=http%3A%2F%2Fblog.ssokolow.com%2Farchives%2F2012%2F02%2F15%2Fpolishing-up-the-lubuntu-notification-area%2F&amp;hidden=1&amp;language=en_GB&amp;category=text&amp;title=Polishing+up+the+Lubuntu+Notification+Area&amp;description=Whether+you+call+them+system+tray+icons%2C+systray+icons%2C+or+notification+icons%2C+you+have+to+admit+that+these+things+can+easily+get+out+of+control%2C+even+on+Linux.+Attempts+are...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://blog.ssokolow.com/archives/2012/02/15/polishing-up-the-lubuntu-notification-area/</feedburner:origLink></item>
		<item>
		<title>Converting Faenza Panel/Toolbar Icons into Elementary Panel Icons</title>
		<link>http://feedproxy.google.com/~r/ssokolow_blog/~3/3_dEpopULjs/</link>
		<comments>http://blog.ssokolow.com/archives/2012/02/14/converting-faenza-paneltoolbar-icons-into-elementary-panel-icons/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 11:20:23 +0000</pubDate>
		<dc:creator>Stephan Sokolow</dc:creator>
				<category><![CDATA[Geek Stuff]]></category>

		<guid isPermaLink="false">http://blog.ssokolow.com/?p=1212</guid>
		<description><![CDATA[Icons that look like they&#8217;re carved into their substrate are all the rage these days, but if you&#8217;re not an artist, making them can be tricky and the Elementary them Lubuntu uses by default doesn&#8217;t have a large selection ready &#8230; <a href="http://blog.ssokolow.com/archives/2012/02/14/converting-faenza-paneltoolbar-icons-into-elementary-panel-icons/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Icons that look like they&#8217;re carved into their substrate are all the rage these days, but if you&#8217;re not an artist, making them can be tricky and the <a href="http://danrabbit.deviantart.com/art/elementary-Icons-65437279"> Elementary</a> them Lubuntu uses by default doesn&#8217;t have a large selection ready to be patched into Elementary Dark to get that effect.</p>
<p>In this tutorial, I&#8217;m going to show you how quickly and easily adjust PNG-format toolbar and panel icons from Faenza (another popular, GPLed icon theme) to fit in alongside Elementary&#8217;s panel icons. (Good for quickly replacing tray icons from niche applications with less distracting ones.)</p>
<h3>Step 1: Faenza icons are too dark</h3>
<p>Simply open up the PNG in GIMP and set the layer opacity to 50%. That should match the general icon brightness (at least against the default Lubuntu panel background) but the icon will now feel flat and the edges won&#8217;t be as sharp as in Elementary.</p>
<h3>Step 2: Sharpen the lines</h3>
<p>Using the &#8220;Select By Color&#8221; tool (and, if necessary, the manual rectangle select), shift-click to add colors and ctrl-click to remove them until you&#8217;ve selected only the white outlines of your icon.</p>
<p>Copy the selected pixels, create a new transparent layer above the existing one, and paste them onto it. Set this layer&#8217;s opacity to between 5% and 20%. 10% is often correct but you may want to load the icon into the panel to check.</p>
<h3>Step 3: Un-flatten the icon</h3>
<p>Using the Magic Wand and shift-click, select just the dark inside of the icon. Then create a new transparent layer above the existing two.</p>
<p>Now, select the gradient tool and make sure you&#8217;ve got a black-to-white gradient (black foreground color, white background color, and the &#8220;FG to BG (RGB)&#8221; gradient).</p>
<p>With the new layer and the inside of the icon still selected, you want to  draw a straight, vertical gradient from about 5 pixels above the canvas to about 5 pixels below it. Set this last layer to about 10% opacity and you&#8217;re done.</p>
<p><img class="aligncenter" title=" " src="/wp-content/elementary_faenza.png" alt="Screenshot" width="122" height="21" /></p>
<p>Can you tell which of these are original Elementary Icons and which are modified Faenza ones?</p>
 <p><a href="http://blog.ssokolow.com/?flattrss_redirect&amp;id=1212&amp;md5=1a9a35275c15e56d05e3e09990616805" title="Flattr" target="_blank"><img src="http://blog.ssokolow.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=3_dEpopULjs:NXKAj6Fi3MQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=3_dEpopULjs:NXKAj6Fi3MQ:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ssokolow_blog/~4/3_dEpopULjs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.ssokolow.com/archives/2012/02/14/converting-faenza-paneltoolbar-icons-into-elementary-panel-icons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=ssokolow&amp;popout=1&amp;url=http%3A%2F%2Fblog.ssokolow.com%2Farchives%2F2012%2F02%2F14%2Fconverting-faenza-paneltoolbar-icons-into-elementary-panel-icons%2F&amp;hidden=1&amp;language=en_GB&amp;category=text&amp;title=Converting+Faenza+Panel%2FToolbar+Icons+into+Elementary+Panel+Icons&amp;description=Icons+that+look+like+they%26%238217%3Bre+carved+into+their+substrate+are+all+the+rage+these+days%2C+but+if+you%26%238217%3Bre+not+an+artist%2C+making+them+can+be+tricky+and+the+Elementary+them...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://blog.ssokolow.com/archives/2012/02/14/converting-faenza-paneltoolbar-icons-into-elementary-panel-icons/</feedburner:origLink></item>
		<item>
		<title>Making the Pidgin Tray Icon Show Status in Lubuntu</title>
		<link>http://feedproxy.google.com/~r/ssokolow_blog/~3/HDWCtBJcsqo/</link>
		<comments>http://blog.ssokolow.com/archives/2012/02/13/making-the-pidgin-tray-icon-show-status-in-lubuntu/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 11:24:03 +0000</pubDate>
		<dc:creator>Stephan Sokolow</dc:creator>
				<category><![CDATA[Geek Stuff]]></category>

		<guid isPermaLink="false">http://blog.ssokolow.com/?p=1197</guid>
		<description><![CDATA[Symptoms On these Lubuntu Linux versions (and possibly others), the Pidgin tray icon never changes to show your status or notify you of unread messages. Lubuntu 11.10 (Oneiric Ocelot) Lubuntu 11.04 (Natty Narwhal) Lubuntu 10.10 (Maverick Meerkat) Reason Pidgin uses &#8230; <a href="http://blog.ssokolow.com/archives/2012/02/13/making-the-pidgin-tray-icon-show-status-in-lubuntu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3>Symptoms</h3>
<p>On these Lubuntu Linux versions (and possibly others), the Pidgin tray icon never changes to show your status or notify you of unread messages.</p>
<ul>
<li>Lubuntu 11.10 (Oneiric Ocelot)</li>
<li>Lubuntu 11.04 (Natty Narwhal)</li>
<li>Lubuntu 10.10 (Maverick Meerkat)</li>
</ul>
<h3>Reason</h3>
<p title="elementary Icons by DanRabbit on deviantART">Pidgin uses its own names for status icons (eg. <code>status/22/pidgin-tray-busy.svg</code>) rather than the standard ones (eg. <code>panel/22/user-busy-panel.svg</code>) and doesn&#8217;t fall back to its default ones if they are missing&#8230; it just uses the application icon for any ones it can&#8217;t find.</p>
<p title="elementary Icons by DanRabbit on deviantART">The default Lubuntu icon theme (lubuntu) is a very minor tweak on the <a title="elementary Icons by DanRabbit on deviantART" href="http://danrabbit.deviantart.com/art/elementary-Icons-65437279">elementary-mono-dark</a> theme and neither elementary nor elementary-mono-dark provide symlinks to offer the filenames Pidgin expects.</p>
<h3>Solution</h3>
<p>To make the tray icon show status, symlink the standard panel icons to the names Pidgin expects. There seems to be no standard panel status icon for &#8220;message waiting&#8221;, but since the Pidgin application icon in elementary is a purple speech balloon with an exclamation mark in it, the fallback works perfectly.</p>
<p>I&#8217;ve written a little script to automate the process. Run it to fix your <code>lubuntu</code>, <code>elementary</code> and <code>elementary Dark</code> themes. To fix other themes, just edit the two lines near the bottom which tell it where the themes are.</p>
<div id="gist-1815976" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="c">#!/usr/bin/env python</span></div><div class='line' id='LC2'><span class="c"># -*- coding: utf-8 -*-</span></div><div class='line' id='LC3'><span class="sd">&quot;&quot;&quot;Quick-fix script for Pidgin status tray icon in Lubuntu&quot;&quot;&quot;</span></div><div class='line' id='LC4'><br/></div><div class='line' id='LC5'><span class="n">__appname__</span> <span class="o">=</span> <span class="s">&quot;Lubuntu Pidgin Tray Icon QuickFix&quot;</span></div><div class='line' id='LC6'><span class="n">__author__</span>  <span class="o">=</span> <span class="s">&quot;Stephan Sokolow (deitarion/SSokolow)&quot;</span></div><div class='line' id='LC7'><span class="n">__version__</span> <span class="o">=</span> <span class="s">&quot;0.1&quot;</span></div><div class='line' id='LC8'><span class="n">__license__</span> <span class="o">=</span> <span class="s">&quot;MIT&quot;</span></div><div class='line' id='LC9'><br/></div><div class='line' id='LC10'><span class="kn">import</span> <span class="nn">os</span><span class="o">,</span> <span class="nn">re</span><span class="o">,</span> <span class="nn">sys</span></div><div class='line' id='LC11'><br/></div><div class='line' id='LC12'><span class="n">ICON_RE</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="s">&#39;user-(.+?)-panel.(svg|png)&#39;</span><span class="p">)</span></div><div class='line' id='LC13'><br/></div><div class='line' id='LC14'><span class="k">def</span> <span class="nf">fix_pidgin_icons</span><span class="p">(</span><span class="n">src</span><span class="p">,</span> <span class="n">tgt</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span></div><div class='line' id='LC15'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">src_base</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">src</span><span class="p">,</span> <span class="s">&#39;panel&#39;</span><span class="p">)</span></div><div class='line' id='LC16'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">tgt_base</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tgt</span> <span class="ow">or</span> <span class="n">src</span><span class="p">,</span> <span class="s">&#39;status&#39;</span><span class="p">)</span></div><div class='line' id='LC17'><br/></div><div class='line' id='LC18'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">for</span> <span class="n">size</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">src_base</span><span class="p">):</span></div><div class='line' id='LC19'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">src_size_base</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">src_base</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span></div><div class='line' id='LC20'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">tgt_size_base</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tgt_base</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span></div><div class='line' id='LC21'><br/></div><div class='line' id='LC22'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">for</span> <span class="n">icon</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">src_size_base</span><span class="p">):</span></div><div class='line' id='LC23'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="n">ICON_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">icon</span><span class="p">):</span></div><div class='line' id='LC24'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">src_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">src_size_base</span><span class="p">,</span> <span class="n">icon</span><span class="p">)</span></div><div class='line' id='LC25'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">tgt_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tgt_size_base</span><span class="p">,</span> <span class="n">ICON_RE</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s">r&#39;pidgin-tray-\1.\2&#39;</span><span class="p">,</span> <span class="n">icon</span><span class="p">))</span></div><div class='line' id='LC26'><br/></div><div class='line' id='LC27'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">src_path_rel</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">relpath</span><span class="p">(</span><span class="n">src_path</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">tgt_path</span><span class="p">))</span></div><div class='line' id='LC28'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">dest_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">tgt_path</span><span class="p">)</span></div><div class='line' id='LC29'><br/></div><div class='line' id='LC30'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">dest_dir</span><span class="p">):</span></div><div class='line' id='LC31'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">dest_dir</span><span class="p">)</span></div><div class='line' id='LC32'><br/></div><div class='line' id='LC33'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">tgt_path</span><span class="p">)</span> <span class="ow">or</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">islink</span><span class="p">(</span><span class="n">tgt_path</span><span class="p">):</span></div><div class='line' id='LC34'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">tgt_path</span><span class="p">)</span></div><div class='line' id='LC35'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">print</span> <span class="s">&quot;Symlinking: </span><span class="si">%s</span><span class="s"> -&gt; </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">src_path_rel</span><span class="p">,</span> <span class="n">tgt_path</span><span class="p">)</span></div><div class='line' id='LC36'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">os</span><span class="o">.</span><span class="n">symlink</span><span class="p">(</span><span class="n">src_path_rel</span><span class="p">,</span> <span class="n">tgt_path</span><span class="p">)</span></div><div class='line' id='LC37'><br/></div><div class='line' id='LC38'><span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&#39;__main__&#39;</span><span class="p">:</span></div><div class='line' id='LC39'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">geteuid</span><span class="p">()</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span></div><div class='line' id='LC40'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">print</span> <span class="s">&quot;Re-calling self via sudo...&quot;</span></div><div class='line' id='LC41'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">os</span><span class="o">.</span><span class="n">execvp</span><span class="p">(</span><span class="s">&#39;sudo&#39;</span><span class="p">,</span> <span class="p">[</span><span class="s">&#39;sudo&#39;</span><span class="p">]</span> <span class="o">+</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span></div><div class='line' id='LC42'><br/></div><div class='line' id='LC43'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">fix_pidgin_icons</span><span class="p">(</span><span class="s">&#39;/usr/share/icons/elementary-mono-dark&#39;</span><span class="p">)</span></div><div class='line' id='LC44'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">fix_pidgin_icons</span><span class="p">(</span><span class="s">&#39;/usr/share/icons/elementary&#39;</span><span class="p">)</span></div><div class='line' id='LC45'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">print</span> <span class="s">&quot;</span><span class="se">\n</span><span class="s">If you still experience problems, try re-running this script after running this command:&quot;</span></div><div class='line' id='LC46'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">print</span> <span class="s">&quot;</span><span class="se">\n\t</span><span class="s">sudo rm /usr/share/icons/elementary/status/*/pidgin-tray-*.*&quot;</span></div><div class='line' id='LC47'><br/></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/1815976/09a3182946b9b594d3225fb1f462eb040a40cc8c/fix_pidgin_elementary.py" style="float:right;">view raw</a>
            <a href="https://gist.github.com/1815976#file_fix_pidgin_elementary.py" style="float:right;margin-right:10px;color:#666">fix_pidgin_elementary.py</a>
            <a href="https://gist.github.com/1815976">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>

<p>If you want to track the progress of getting this issue fixed upstream, <a href="https://bugs.launchpad.net/ubuntu/+source/elementary-icon-theme/+bug/931387">I&#8217;ve filed a bug</a>.</p>
<p><strong>UPDATE:</strong> The icon theme bug got WONTFIX&#8217;d over it being an application-specific thing. Here&#8217;s the <a href="http://developer.pidgin.im/ticket/14981">pidgin bug</a> I filed.</p>
<p>I&#8217;ve made sure both bugs reference each other and now I want to try to distance myself from the issue. However, if you happen to read this months later and there doesn&#8217;t seem to be any progress made, please give them a polite nudge via the proper channels to let them know people care about it.</p>
 <p><a href="http://blog.ssokolow.com/?flattrss_redirect&amp;id=1197&amp;md5=18bb1f843a21b62e59a457fa628e6471" title="Flattr" target="_blank"><img src="http://blog.ssokolow.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=HDWCtBJcsqo:H7R-0lxivWQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ssokolow_blog?a=HDWCtBJcsqo:H7R-0lxivWQ:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/ssokolow_blog?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ssokolow_blog/~4/HDWCtBJcsqo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.ssokolow.com/archives/2012/02/13/making-the-pidgin-tray-icon-show-status-in-lubuntu/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
	<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=ssokolow&amp;popout=1&amp;url=http%3A%2F%2Fblog.ssokolow.com%2Farchives%2F2012%2F02%2F13%2Fmaking-the-pidgin-tray-icon-show-status-in-lubuntu%2F&amp;hidden=1&amp;language=en_GB&amp;category=text&amp;title=Making+the+Pidgin+Tray+Icon+Show+Status+in+Lubuntu&amp;description=Symptoms+On+these+Lubuntu+Linux+versions+%28and+possibly+others%29%2C+the+Pidgin+tray+icon+never+changes+to+show+your+status+or+notify+you+of+unread+messages.+Lubuntu+11.10+%28Oneiric+Ocelot%29+Lubuntu...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://blog.ssokolow.com/archives/2012/02/13/making-the-pidgin-tray-icon-show-status-in-lubuntu/</feedburner:origLink></item>
	</channel>
</rss>

