<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Squirrels Hate Robots</title>
	<atom:link href="http://squirrelshaterobots.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://squirrelshaterobots.com</link>
	<description>It is true, I read it once.</description>
	<lastBuildDate>Tue, 13 Mar 2012 16:40:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Things about Windows and apps for Windows that really annoy me having come from OS X</title>
		<link>http://squirrelshaterobots.com/dev-station/things-about-windows-and-apps-for-windows-that-really-annoy-me-having-come-from-os-x/</link>
		<comments>http://squirrelshaterobots.com/dev-station/things-about-windows-and-apps-for-windows-that-really-annoy-me-having-come-from-os-x/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 16:40:50 +0000</pubDate>
		<dc:creator>bob</dc:creator>
				<category><![CDATA[Dev Station]]></category>
		<category><![CDATA[operating systems]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://squirrelshaterobots.com/?p=681</guid>
		<description><![CDATA[So I just realized that it would be much easier to put everything in one post than it is to rage on IRC over the course of a month. If you recall I had a post similar to this over OSX Lion when it was released. Unfortunately, this one will probably be slightly more negative. [...]]]></description>
			<content:encoded><![CDATA[<p>So I just realized that it would be much easier to put everything in one post than it is to rage on IRC over the course of a month. If you recall I had a post similar to this over OSX Lion when it was released. Unfortunately, this one will probably be slightly more negative. I have recently bought a new Alienware laptop, and for the sake of drivers and video games I have decided to make Windows the OS of choice. I do not really feel like rebooting twice every day to switch OS for gaming an working, and I am pretty sure both Linux and OSX will fail terrible on the complexity of the hardware in this machine anyway.</p>
<p>So here is a list of issues I have with Windows and applications written for Windows. Some of them are application specific, some are not. In the end I do not care if they are application specific, since Windows cannot do anything without additional software, the additional software needs to work. Most of these will probably have something to do with consistencies between Windows and OS X versions of the same app. Having used OS X for just over four years exclusively now, what we have here in these lists is mostly a collection of small stupid things that add up over time.</p>
<p><img class="aligncenter size-medium wp-image-691" title="alienware-m17x" src="http://squirrelshaterobots.com/files/2012/03/alienware-m17x-500x373.jpg" alt="" width="500" height="373" /></p>
<p>Each entry will have my complaint, followed by why I have it. This is a brand new maxed out Alienware M17x machine (horray tax refunds!) so I can PROMISE you there is not a single issue on this list related to &#8220;my computer being too slow&#8221; :p</p>
<p style="text-align: center;"><p><a href="http://squirrelshaterobots.com/dev-station/things-about-windows-and-apps-for-windows-that-really-annoy-me-having-come-from-os-x/">Continue reading: Things about Windows and apps for Windows that really annoy me having come from OS X</a></p>]]></content:encoded>
			<wfw:commentRss>http://squirrelshaterobots.com/dev-station/things-about-windows-and-apps-for-windows-that-really-annoy-me-having-come-from-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bookmarklet to search Google By Image</title>
		<link>http://squirrelshaterobots.com/dev-station/bookmarklet-to-search-google-by-image/</link>
		<comments>http://squirrelshaterobots.com/dev-station/bookmarklet-to-search-google-by-image/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 00:54:07 +0000</pubDate>
		<dc:creator>bob</dc:creator>
				<category><![CDATA[Dev Station]]></category>
		<category><![CDATA[bookmarklet]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://squirrelshaterobots.com/?p=663</guid>
		<description><![CDATA[While I surf tumblr more often than not people are not uploading the largest resolution of an image possible. This is quite annoying to me, mostly since I surf for iOS and Desktop wallpapers. This bookmarket will make it very easy to use Google to find larger versions. Step One Drag this link to your [...]]]></description>
			<content:encoded><![CDATA[<p>While I surf tumblr more often than not people are not uploading the largest resolution of an image possible. This is quite annoying to me, mostly since I surf for iOS and Desktop wallpapers. This bookmarket will make it very easy to use Google to find larger versions.</p>
<h3>Step One</h3>
<p>Drag this link to your bookmarks bar: <em><strong><a href="javascript:(function(){location.href='http://www.google.com/searchbyimage?image_url='+encodeURIComponent(location.href);})();">Google by Image</a></strong></em>. Literally, drag and drop it up there.</p>
<h3>Step Two.</h3>
<p>Have an image open in the browser.</p>
<p><a href="http://squirrelshaterobots.com/files/2012/02/google-image-bookmarklet-0002.jpg" class="lightview" rel="gallery[663]" title="google-image-bookmarklet-0002"><img class="aligncenter size-medium wp-image-665" title="google-image-bookmarklet-0002" src="http://squirrelshaterobots.com/files/2012/02/google-image-bookmarklet-0002-500x323.jpg" alt="" width="500" height="323" /></a></p>
<p>And click the bookmarlet.</p>
<p><a href="http://squirrelshaterobots.com/files/2012/02/google-image-bookmarklet-0003.jpg" class="lightview" rel="gallery[663]" title="google-image-bookmarklet-0003"><img class="aligncenter size-medium wp-image-666" title="google-image-bookmarklet-0003" src="http://squirrelshaterobots.com/files/2012/02/google-image-bookmarklet-0003-500x323.jpg" alt="" width="500" height="323" /></a></p>
<h3>Step Three</h3>
<p>Receive lots of results (sometimes). Google is also sometimes able to tell you what is even happening in the picture. In this example, panda researchers. Turns out this image is not actually as funny as I thought, since the person in the suit is actually taking his job serious. Select All Sizes.</p>
<p><a href="http://squirrelshaterobots.com/files/2012/02/google-image-bookmarklet-0004.jpg" class="lightview" rel="gallery[663]" title="google-image-bookmarklet-0004"><img class="aligncenter size-medium wp-image-667" title="google-image-bookmarklet-0004" src="http://squirrelshaterobots.com/files/2012/02/google-image-bookmarklet-0004-500x324.jpg" alt="" width="500" height="324" /></a></p>
<p>Google will show you what it knows about. I find more often than not it is more useful than Tineye.</p>
<p><a href="http://squirrelshaterobots.com/files/2012/02/google-image-bookmarklet-0005.jpg" class="lightview" rel="gallery[663]" title="google-image-bookmarklet-0005"><img class="aligncenter size-medium wp-image-668" title="google-image-bookmarklet-0005" src="http://squirrelshaterobots.com/files/2012/02/google-image-bookmarklet-0005-500x324.jpg" alt="" width="500" height="324" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://squirrelshaterobots.com/dev-station/bookmarklet-to-search-google-by-image/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GeoIP in PHP with the new php-geoipo extension</title>
		<link>http://squirrelshaterobots.com/programming/php/geoip-in-php-with-the-new-php-geoipo-extension/</link>
		<comments>http://squirrelshaterobots.com/programming/php/geoip-in-php-with-the-new-php-geoipo-extension/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 16:23:08 +0000</pubDate>
		<dc:creator>bob</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[geoip]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://squirrelshaterobots.com/?p=561</guid>
		<description><![CDATA[During the past few weeks I have been working on a brand new PHP extension to provide an easy object oriented interface for the GeoIP library from MaxMind. The original module (that I did not write) had two main issues. First the directory to find the databases could not be changed except in PHP.INI before [...]]]></description>
			<content:encoded><![CDATA[<p>During the past few weeks I have been working on a brand new PHP extension to provide an easy object oriented interface for the GeoIP library from MaxMind. The original module (that I did not write) had two main issues. First the directory to find the databases could not be changed except in PHP.INI before PHP loads (so not even ini_set would work). Second was that it was old school and not object oriented. Another issue (so that really makes three) is that it will throw E_WARNINGS for dumb things like records not being found. If there is no record found when you ask for it I would much rather just be handed a FALSE.</p>
<p style="text-align: center;"><strong>[update 2011/10/26]</strong> Official GeoIPo manual/documentation is <a href="http://squirrelshaterobots.com/projects/php-geoipo/">here</a>.</p>
<p>This new one is nearly complete, but I am still waiting to be accepted into PECL. However it works and I have the source available for use <a href="https://github.com/bobmajdakjr/php-geoipo">on GitHub</a>. Here is a little how-to on how to set up the GeoIP database and use this module.</p>
<h2>Why use GeoIP?</h2>
<ul>
<li>Perhaps your project has support for English, German, and Polish languages. With GeoIP you can try to guess what country your visitor is from and if they are from a country with a language you support you can set that language default for the user. Things like that go very far towards user experience.</li>
<li>If you have a website, I doubt many people can honestly tell me they are not curious what country their visitors are from. GeoIP is an important part of determining your reader demographics. You know all those maps that show dots about where visitors are from? You need GeoIP info to do that.</li>
<li>And the bane of all internet users &#8211; lets say you are the owner of YouTube/Spotify/iTunes and you need to prevent a certain country from viewing/watching/listening to specific content because of license restrictions. You are going to piss people off, but I guess for legal reasons it just needs to be done.</li>
</ul>
<p>These are only three of the many valid reasons you might need GeoIP information. <a href="http://zenthis.org/tests/geoip.php">Over here</a> I have a page demoing the readout of the server and visitor&#8217;s GeoIP info, with a link to the visible source at the bottom.</p><p><a href="http://squirrelshaterobots.com/programming/php/geoip-in-php-with-the-new-php-geoipo-extension/">Continue reading: GeoIP in PHP with the new php-geoipo extension</a></p>]]></content:encoded>
			<wfw:commentRss>http://squirrelshaterobots.com/programming/php/geoip-in-php-with-the-new-php-geoipo-extension/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Framework Design Challenges: Dealing with Evolution</title>
		<link>http://squirrelshaterobots.com/dev-station/framework-design-challenges-dealing-with-evolution/</link>
		<comments>http://squirrelshaterobots.com/dev-station/framework-design-challenges-dealing-with-evolution/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 18:34:48 +0000</pubDate>
		<dc:creator>bob</dc:creator>
				<category><![CDATA[Dev Station]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[evolution]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://squirrelshaterobots.com/?p=531</guid>
		<description><![CDATA[from C&#38;H explosm.net For the past  year one of my side-not-so-side projects has been the zen\this Framework. Technically the project is even older than that. It was started because many years ago I wrote a Database library for MySQL that I really liked. It wrapped mysql/mysqli into what I consider a much more common and [...]]]></description>
			<content:encoded><![CDATA[<div style="float: left; margin: 10px; text-align: center; font-size: 0.8em; font-style: italic;"><a href="http://squirrelshaterobots.com/files/2011/10/cyan2.jpeg" class="lightview" rel="gallery[531]"><img class="size-full wp-image-544" src="http://squirrelshaterobots.com/files/2011/10/cyan2.jpeg" alt="From explosm.net" width="240" height="179" /></a><br />
from C&amp;H explosm.net</div>
<p>For the past  year one of my side-not-so-side projects has been the <a href="http://zenthis.org">zen\this</a> Framework. Technically the project is even older than that. It was started because many years ago I wrote a Database library for MySQL that I really liked. It wrapped mysql/mysqli into what I consider a much more common and better interface. At the time it was designed to be portable to any codebase and handle things like injection protection without me or the other developers (who were at the time, interns) spacing about it. When I decided to write additional libraries the design challenge was to mimic the original design pattern of that database library.</p>
<p>The interface was quite simple. The main database class was a series of static functions, and there was a query object class too. This was before we had namespaces in PHP so the main database class was really just being used as a namespace. Configuration options were placed in a static array, database::$config, and most of the functions referenced that when deciding which database to query as it handled multiple connections.  This worked great as a completely stand alone library but after it evolved into the current edition in zen\this there have been some design issues.</p><p><a href="http://squirrelshaterobots.com/dev-station/framework-design-challenges-dealing-with-evolution/">Continue reading: Framework Design Challenges: Dealing with Evolution</a></p>]]></content:encoded>
			<wfw:commentRss>http://squirrelshaterobots.com/dev-station/framework-design-challenges-dealing-with-evolution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSX Lion Fullscreen &#8211; Well played Google Chrome 14, Jolly Good</title>
		<link>http://squirrelshaterobots.com/dev-station/osx-lion-fullscreen-well-played-google-chrome-14-jolly-good/</link>
		<comments>http://squirrelshaterobots.com/dev-station/osx-lion-fullscreen-well-played-google-chrome-14-jolly-good/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 22:23:45 +0000</pubDate>
		<dc:creator>bob</dc:creator>
				<category><![CDATA[Dev Station]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[fullscreen]]></category>
		<category><![CDATA[osx lion]]></category>

		<guid isPermaLink="false">http://squirrelshaterobots.com/?p=524</guid>
		<description><![CDATA[When OSX Lion came out, most apps had the ability to fullscreen by clicking on the fullscreen icon on the top right of the window titlebar. Chrome had this, and then a day later it was updated to remove it. There was speculation that it did not &#8220;work right&#8221; even though when I used it, [...]]]></description>
			<content:encoded><![CDATA[<p>When OSX Lion came out, most apps had the ability to fullscreen by clicking on the fullscreen icon on the top right of the window titlebar. Chrome had this, and then a day later it was updated to remove it. There was speculation that it did not &#8220;work right&#8221; even though when I used it, it worked just fine.</p>
<p>I then engaged in some IRC flame wars about what &#8220;full screen&#8221; really means. Most people seem to think Fullscreen means while the entire screen is used by the application, they should still see the address and tab bar of the browser. To me this is NOT fullscreen, this is just really big. Full screen to me means that all UI is hidden except for the main work area. In this case, the work area is the HTML viewport, so I believe the tabs and address bar should be hidden while in fullscreen, yet easily accessible somehow like touching the top of the screen with the mouse cursor.</p>
<p>Google Chrome 14 has finally updated with full support for OSX Lion, and I am quite impressed with their solution. Considering how bad things like the bookmark manager is in Chrome I assumed they would pick one method of fullscreen and that would be it.</p><p><a href="http://squirrelshaterobots.com/dev-station/osx-lion-fullscreen-well-played-google-chrome-14-jolly-good/">Continue reading: OSX Lion Fullscreen &#8211; Well played Google Chrome 14, Jolly Good</a></p>]]></content:encoded>
			<wfw:commentRss>http://squirrelshaterobots.com/dev-station/osx-lion-fullscreen-well-played-google-chrome-14-jolly-good/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Catching when scheduled posts finally publish in a WordPress Plugin</title>
		<link>http://squirrelshaterobots.com/hacking/wordpress/catching-when-scheduled-posts-finally-publish-in-a-wordpress-plugin/</link>
		<comments>http://squirrelshaterobots.com/hacking/wordpress/catching-when-scheduled-posts-finally-publish-in-a-wordpress-plugin/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 16:40:11 +0000</pubDate>
		<dc:creator>bob</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[publish_future_post]]></category>
		<category><![CDATA[publish_post]]></category>

		<guid isPermaLink="false">http://squirrelshaterobots.com/?p=508</guid>
		<description><![CDATA[This problem has been bothering me for a while now, and I only just came across the solution this week. The issue was that when you schedule a post for the future, when it does finally post it was seemingly not running the publish_post hook that I had set. Multiple solutions suggested using future_to_publish as [...]]]></description>
			<content:encoded><![CDATA[<p>This problem has been bothering me for a while now, and I only just came across the solution this week. The issue was that when you schedule a post for the future, when it does finally post it was seemingly not running the <tt>publish_post</tt> hook that I had set. Multiple solutions suggested using <tt>future_to_publish</tt> as a hook, and that did not work either. The actual solution was to hook to <tt>publish_future_post</tt>, but in addition the function I was executing had to be modified a bit.</p>
<p>The original function was something along these lines: When a post is published for the first time, post a link to it on Twitter. <tt>publish_post</tt> also fires when you update a post, so to make sure it was only posted on the original posting the accepted solution was to make sure post_date and post_modified dates were equal. Here is an simple example.</p>
<blockquote class="bml-box bml-php">
<div class="bml-box-title">PHP Code:</div>
<div class="bml-box-content"><code><code><span style="color: #ffffff">
<span style="color: #5555ff">&lt;?php<br /><br /></span><span style="color: #888888">//&nbsp;accepted&nbsp;solution,&nbsp;but&nbsp;this&nbsp;will&nbsp;not&nbsp;work&nbsp;as&nbsp;expected<br />//&nbsp;on&nbsp;scheduled&nbsp;posts.<br /><br /></span><span style="color: #5555ff">add_action</span><span style="color: #55aa55">(</span><span style="color: #cc5555">'publish_post'</span><span style="color: #55aa55">,</span><span style="color: #cc5555">'bob_on_publish_post'</span><span style="color: #55aa55">);<br /></span><span style="color: #5555ff">add_action</span><span style="color: #55aa55">(</span><span style="color: #cc5555">'publish_future_post'</span><span style="color: #55aa55">,</span><span style="color: #cc5555">'bob_on_publish_post'</span><span style="color: #55aa55">);<br /><br />function&nbsp;</span><span style="color: #5555ff">bob_on_publish_post</span><span style="color: #55aa55">(</span><span style="color: #5555ff">$id</span><span style="color: #55aa55">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #5555ff">$post&nbsp;</span><span style="color: #55aa55">=&nbsp;</span><span style="color: #5555ff">get_post</span><span style="color: #55aa55">(</span><span style="color: #5555ff">$id</span><span style="color: #55aa55">);<br />&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #5555ff">$post</span><span style="color: #55aa55">-&gt;</span><span style="color: #5555ff">post_modified&nbsp;</span><span style="color: #55aa55">!=&nbsp;</span><span style="color: #5555ff">$post</span><span style="color: #55aa55">-&gt;</span><span style="color: #5555ff">post_date</span><span style="color: #55aa55">)&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #888888">//&nbsp;la&nbsp;de&nbsp;da,&nbsp;doing&nbsp;stuff.<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #55aa55">return;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br /></span><span style="color: #5555ff">?&gt;</span>
</span>
</code></code></div>
</blockquote>
<p>The reason this fails is that it turns out when a post is scheduled for future posting, post_date and post_modified are not equal after all. This issue caught me by surprise because it does not exist when working with Drafts. If the post is marked as draft, saved, and then manually published later, this test will still allow the hook to run. This is probably due to how WordPress handles filling up your database with redundant revisions, but it even works if you have a Plugin disabling revisions (like me).</p><p><a href="http://squirrelshaterobots.com/hacking/wordpress/catching-when-scheduled-posts-finally-publish-in-a-wordpress-plugin/">Continue reading: Catching when scheduled posts finally publish in a WordPress Plugin</a></p>]]></content:encoded>
			<wfw:commentRss>http://squirrelshaterobots.com/hacking/wordpress/catching-when-scheduled-posts-finally-publish-in-a-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You might want to update your browsers&#8230; men&#8230;</title>
		<link>http://squirrelshaterobots.com/off-topic/you-might-want-to-update-your-browsers-men/</link>
		<comments>http://squirrelshaterobots.com/off-topic/you-might-want-to-update-your-browsers-men/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 15:44:03 +0000</pubDate>
		<dc:creator>bob</dc:creator>
				<category><![CDATA[Off Topic]]></category>
		<category><![CDATA[chart]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[user agent]]></category>

		<guid isPermaLink="false">http://squirrelshaterobots.com/?p=503</guid>
		<description><![CDATA[Interesting how the Tech Mac guys are still using old browser but the Dirty Mac guys are the only ones of the dirty people using an up to date browser (comparing Safari). [note] no not a random chart from the internet, generated it myself for the past two weeks of logs from various sites I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://squirrelshaterobots.com/files/2011/08/uareport.png" class="lightview" rel="gallery[503]" title="uareport"><img class="aligncenter size-full wp-image-504" title="uareport" src="http://squirrelshaterobots.com/files/2011/08/uareport.png" alt="" width="494" height="500" /></a></p>
<p>Interesting how the Tech Mac guys are still using old browser but the Dirty Mac guys are the only ones of the dirty people using an up to date browser (comparing Safari).</p>
<p><em>[note] no not a random chart from the internet, generated it myself for the past two weeks of logs from various sites I /friends have access to. it is generated by piwik.</em></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://squirrelshaterobots.com/off-topic/you-might-want-to-update-your-browsers-men/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Looking at the 3-Clause Revised BSD License&#8230;</title>
		<link>http://squirrelshaterobots.com/dev-station/looking-at-the-3-clause-revised-bsd-license/</link>
		<comments>http://squirrelshaterobots.com/dev-station/looking-at-the-3-clause-revised-bsd-license/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 05:51:10 +0000</pubDate>
		<dc:creator>bob</dc:creator>
				<category><![CDATA[Dev Station]]></category>
		<category><![CDATA[license]]></category>
		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://squirrelshaterobots.com/?p=492</guid>
		<description><![CDATA[For a while now I have used the Revised 3-Clause BSD License because it was not GNU. I am looking for opinions on the last clause in it, please comment! If you are not familiar with it, here are the clauses: Redistributions of source code must retain the above copyright notice, this list of conditions [...]]]></description>
			<content:encoded><![CDATA[<p>For a while now I have used the Revised 3-Clause BSD License because it was not GNU. I am looking for opinions on the last clause in it, please comment! If you are not familiar with it, here are the clauses:</p>
<ul>
<li><em>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</em></li>
<li><em>Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</em></li>
<li><em>Neither the name of the &lt;PROJECT&gt; nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.</em></li>
</ul>
<p>Originally I agreed with all of these points. First off I want my code to retain the copyright. Second, I want binaries to have my documented copyright.</p>
<p>And the third point, I originally read the third clause as &#8220;You cannot fork this project and say Bob thinks your fork is awesome unless he allows you to.&#8221; However, my latest personal project is a framework, and I am unsure if the license is clear on &#8220;works derived from&#8221; and &#8220;works derived with&#8221;.</p>
<p>For example, if the project in question is a PHP library (lets say it is called FalconPunch), would that clause prevent you from saying &#8220;Powered by FalconPunch&#8221; in the page footer? Is that using the name of the project in vain according to clause three? Using the library would mean your script is a &#8220;work derived with&#8221; or &#8220;work derived by using&#8221; it and not a &#8220;work derived from&#8221;. A &#8220;work derived from&#8221; would mean you modified the library and redistributed it under its own name.</p>
<p>Because of this I think the wording of the third clause is ambiguous and could be twisted to mean both. Is this why there is also a Simplified BSD License that is only the first two clauses? What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://squirrelshaterobots.com/dev-station/looking-at-the-3-clause-revised-bsd-license/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Problems I have personally hit in Mac OS X Lion</title>
		<link>http://squirrelshaterobots.com/dev-station/problems-i-have-personally-hit-in-mac-os-x-lion/</link>
		<comments>http://squirrelshaterobots.com/dev-station/problems-i-have-personally-hit-in-mac-os-x-lion/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 16:14:45 +0000</pubDate>
		<dc:creator>bob</dc:creator>
				<category><![CDATA[Dev Station]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[osx lion]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://squirrelshaterobots.com/?p=482</guid>
		<description><![CDATA[Here is a list of all the bugs and problems I have personally encountered in Mac OS X Lion. As I hit more, I will update this post. At the very end after being harsh I will list praises I have for Lion. [update] August 1, 2011 Bugs [new] Roughtly 50% of the time dragging from the [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a list of all the bugs and problems I have personally encountered in Mac OS X Lion. As I hit more, I will update this post. At the very end after being harsh I will list praises I have for Lion.</p>
<p>[update] August 1, 2011</p>
<h2>Bugs</h2>
<ul>
<li>[new] Roughtly 50% of the time dragging from the sidebar of Preview does nothing. Generally I drag images from the side bar to a folder on my desktop to create a copy in that folder. Also, see the Usability section.</li>
<li>Losing Launchpad icons <a href="http://www.opsat.net/temp/lpad2.png" class="lightview" rel="gallery[482]">in the void between Launchpad and Reality</a>. Once there (they bug out when trying to rearrange them sometimes) they are unresponsive and require a full logout.</li>
<li>Image Capture utility the checkbox &#8220;Delete after import&#8221; no longer deletes after import. I use this on my iPhone all the time.</li>
<li>Desktop Hot Corners, overly sensitive when I am working so I constantly shut off my monitor which I have set to the lower right corner. However by the time I want to go to bed the corners quit working completely until I go into the settings and turn them off and back on.</li>
<li>When Resume is disabled, the checkbox on the shut down / logout screen is still checked by default. It should not be.</li>
</ul>
<h2>Usability Problems</h2>
<ul>
<li>[new] Preview forces the sidebar on the left. Mac Desktop sorts Icons from the right side of the screen. This means dragging icons from the Preview sidebar to an Icon on the Desktop means I have to drag across more than 60% of the desktop width. My Macbook is widescreen. Sidebar side needs to be an option. Part of me thinks it used to be one&#8230;</li>
<li>Natural scrolling needs to allow setting each axis separately. I want <em>natural</em> scrolling when I swipe left and right, but I want <em>normal</em> scrolling for up and down. Inverted up and down scrolling only makes sense to me when I am physically touching the actual screen such as on my phone. On my macbook touch pad, magic pad, or magic mouse, the distance disconnection ruins it.</li>
<li>Preview is directly integrated with Versions. Versions is dumb. Preview was the best quick tool ever in 10.6. How it was then is exactly how I want it back, same menu options (Save As&#8230; Save All&#8230; etc). When I am editing dirty photos I do not want multiple versions floating around in the OS X nether, am I making sense?</li>
<li>I cannot delete things from Launchpad unless the item is from the App Store</li>
<li>The Apps in the App store need to quit installing installers and install the real app. Seriously.</li>
<li>When Dashboard is shown as a space I have been unable to change the background from the ugly grey bubbles to something like an actual wallpaper.</li>
<li>Didn&#8217;t the bundled PHP used to include PECL? So I could do things like install modules easy?</li>
</ul>
<h2>Bold statements I wish to make</h2>
<p>Versions sounds like a personal privacy nightmare as far as digital forensics&#8230; <a href="http://www.opsat.net/temp/iphone-locationd-log.png" class="lightview" rel="gallery[482]">remember when our iPhones were logging our locations for eternity</a> how big of a deal that was to people who have a phobia of being arrested?</p>
<p>Back on the topic of Preview. As now there is no save option or even a confirm dialog, preview just saves when you exit &#8211; what if I did not want to bother saving one of the 10 I opened? Oh just revert back to a previous version! OK like I said I do not want to keep a history of previous version of pictures that may be embarrassing. Also&#8230; where do all the versions go? I am already running low on disk space. Oh, just lock all the files! OK and you do not see how that can get annoying having to lock stuff all the time? Oh, just set the lock time to 1 day! OK and you think I want to wait 1 day just so I do not have to manually lock them?</p>
<p>Basically, Versions just needs a 100% kill switch option, perhaps it even does and it just has not been discovered. Spotlight had one, it could be killed and prevented completely through a few console commands.</p>
<h2>Good things about Lion</h2>
<ul>
<li><span class="Apple-style-span" style="font-size: 13px; font-weight: normal;">Best new feature: when I have multiple files selected and I right click, now I have &#8220;make new folder and put these things in it&#8221;.</span></li>
<li><span class="Apple-style-span" style="font-size: 13px; font-weight: normal;">I like how my terminal tabs have spinners on them now while things are processing.</span></li>
<li><span class="Apple-style-span" style="font-size: 13px; font-weight: normal;">The new login screen is pretty nice.</span></li>
<li>My World of Warcraft is running a little smoother in Lion, as in slightly higher frame rate and less random drops in frame rate and stutters.</li>
<li>Spotlight seems snappier too.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://squirrelshaterobots.com/dev-station/problems-i-have-personally-hit-in-mac-os-x-lion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building a Queue Server in PHP &#8211; Part 4 &#8211; Run as a background daemon a.k.a. forking</title>
		<link>http://squirrelshaterobots.com/programming/php/building-a-queue-server-in-php-part-4-run-as-a-background-daemon-a-k-a-forking/</link>
		<comments>http://squirrelshaterobots.com/programming/php/building-a-queue-server-in-php-part-4-run-as-a-background-daemon-a-k-a-forking/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 05:02:58 +0000</pubDate>
		<dc:creator>bob</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[fork]]></category>
		<category><![CDATA[queue]]></category>

		<guid isPermaLink="false">http://squirrelshaterobots.com/?p=448</guid>
		<description><![CDATA[The next logical step in the development of our queue service is to allow the application to push itself into the background of a system and run detached from a terminal. What is forking? Forking is when you take one process, and clone it to create another with the same state as the original. When [...]]]></description>
			<content:encoded><![CDATA[<p>The next logical step in the development of our queue service is to allow the application to push itself into the background of a system and run detached from a terminal.</p>
<h2>What is forking?</h2>
<p>Forking is when you take one process, and clone it to create another with the same state as the original. When our application executes we will clone it, let the new copy take ownership of itself, and terminate the original. This leaves a background process or daemon running in the background still ready to process our queue.</p>
<p>PHP by default does not have the functions we need enabled. In order to enable them PHP will need to be compiled with the option &#8211;enable-pcntl. This will make the pcntl_* function set available to us.</p>
<h2>Wanna fork?</h2>
<p>Forking is a fairly simple process. The best time to fork is early on in the program, because when we do it literally everything about the application state gets copied over. This means file handles, database pointers, everything&#8230; and this usually causes problems. Fork before you open your files and databases, and you will find your life running much smoother.</p><p><a href="http://squirrelshaterobots.com/programming/php/building-a-queue-server-in-php-part-4-run-as-a-background-daemon-a-k-a-forking/">Continue reading: Building a Queue Server in PHP &#8211; Part 4 &#8211; Run as a background daemon a.k.a. forking</a></p>]]></content:encoded>
			<wfw:commentRss>http://squirrelshaterobots.com/programming/php/building-a-queue-server-in-php-part-4-run-as-a-background-daemon-a-k-a-forking/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

