<?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>ThinkRobot</title>
	<atom:link href="http://think-robot.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://think-robot.com</link>
	<description>Design &#38; Development Blog</description>
	<lastBuildDate>Mon, 23 Feb 2015 22:34:55 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>Killednloading MeteorJS Issue</title>
		<link>http://think-robot.com/2015/02/killednloading-meteorjs-issue/</link>
		<comments>http://think-robot.com/2015/02/killednloading-meteorjs-issue/#comments</comments>
		<pubDate>Mon, 23 Feb 2015 22:34:55 +0000</pubDate>
		<dc:creator><![CDATA[Joanna]]></dc:creator>
				<category><![CDATA[Articles]]></category>

		<guid isPermaLink="false">http://think-robot.com/?p=340</guid>
		<description><![CDATA[When deploying my meteor app to a new server I run into a weird issue that didn&#8217;t seem to come back with any helpful errors. Running: meteor would get stuck on Download meteor-tool@3.0.38 which would eventually exit with a &#8220;killednloading&#8221; message. For anyone else stuck scratching their heads, it seem to be an out of [&#8230;]<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li></ul><div class="crp_clear"></div></div>]]></description>
				<content:encoded><![CDATA[<p>When deploying my meteor app to a new server I run into a weird issue that didn&#8217;t seem to come back with any helpful errors.</p>
<p>Running:</p>
<p><code>
<pre>meteor</pre>
<p></code></p>
<p>would get stuck on <strong>Download meteor-tool@3.0.38</strong> which would eventually exit with a &#8220;killednloading&#8221; message.</p>
<p>For anyone else stuck scratching their heads, it seem to be an out of memory issue.</p>
<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li></ul><div class="crp_clear"></div></div>]]></content:encoded>
			<wfw:commentRss>http://think-robot.com/2015/02/killednloading-meteorjs-issue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SailsJS 0.9.8 and Bootstrap 3.0.3 LESS</title>
		<link>http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/</link>
		<comments>http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/#comments</comments>
		<pubDate>Thu, 23 Jan 2014 06:54:21 +0000</pubDate>
		<dc:creator><![CDATA[Joanna]]></dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[grunt]]></category>
		<category><![CDATA[less]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[sailsjs]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://think-robot.com/?p=333</guid>
		<description><![CDATA[While trying to setup a starter project I hit a bit of a snag. Turns out the latest less files don&#8217;t want to play nice with the grunt-contrib-less (0.5.2) that comes with SailsJS (0.9.8). parse error: failed at &#038;:extend(.clearfix all); Since the required version is written explicitly in SailsJS package.json it&#8217;s not enough to just [&#8230;]<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li></ul><div class="crp_clear"></div></div>]]></description>
				<content:encoded><![CDATA[<p>While trying to setup a starter project I hit a bit of a snag. Turns out the latest less files don&#8217;t want to play nice with the grunt-contrib-less (0.5.2) that comes with SailsJS (0.9.8). </p>
<pre><code>parse error: failed at &#038;:extend(.clearfix all);
</code></pre>
<p>Since the required version is written explicitly in SailsJS package.json it&#8217;s not enough to just update your own project dependencies to the newer grunt/less versions (duh! took me a while before I realized that). </p>
<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li></ul><div class="crp_clear"></div></div>]]></content:encoded>
			<wfw:commentRss>http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Admin &#8211; Insufficient Permissions</title>
		<link>http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/</link>
		<comments>http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/#comments</comments>
		<pubDate>Mon, 07 Jan 2013 04:19:44 +0000</pubDate>
		<dc:creator><![CDATA[Joanna]]></dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://think-robot.com/?p=327</guid>
		<description><![CDATA[Run into a strange issue today. Was setting up a new blog using the cpanel worpress add-on and everything was fine until I tried to login as admin into the backed. Sure enough the details were accepted, but instead of the dashboard I was greeted with this message: You do not have sufficient permissions to [&#8230;]<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2015/02/killednloading-meteorjs-issue/"     class="crp_title">Killednloading MeteorJS Issue</a></li><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li><li><a href="http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/"     class="crp_title">SailsJS 0.9.8 and Bootstrap 3.0.3 LESS</a></li></ul><div class="crp_clear"></div></div>]]></description>
				<content:encoded><![CDATA[<p>Run into a strange issue today. Was setting up a new blog using the cpanel worpress add-on and everything was fine until I tried to login as admin into the backed. Sure enough the details were accepted, but instead of the dashboard I was greeted with this message:</p>
<p><strong>You do not have sufficient permissions to access this page error.</strong></p>
<p>After a bit of searching it seemed it could be a corrupt db, so I reinstalled, but the same thing happened. Then I had a hunch, this was the first time I was trying to setup a custom table prefix. <strong>Sure enough changing the prefix back to just &#8220;wp&#8221; in the installation form fixed it</strong>.</p>
<p>WordPress: v3.2.1</p>
<p>Must be something messed up in the install script or somewhere refers to the default prefix where it should use the custom one.</p>
<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2015/02/killednloading-meteorjs-issue/"     class="crp_title">Killednloading MeteorJS Issue</a></li><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li><li><a href="http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/"     class="crp_title">SailsJS 0.9.8 and Bootstrap 3.0.3 LESS</a></li></ul><div class="crp_clear"></div></div>]]></content:encoded>
			<wfw:commentRss>http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Text file busy &#8211; db/test.sqlite3</title>
		<link>http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/</link>
		<comments>http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/#comments</comments>
		<pubDate>Tue, 18 Dec 2012 00:55:35 +0000</pubDate>
		<dc:creator><![CDATA[Joanna]]></dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[guard]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rails3]]></category>
		<category><![CDATA[rake]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://think-robot.com/?p=321</guid>
		<description><![CDATA[Sometimes things are just too obvious&#8230; When trying to setup the test database for my new rails app I kept getting stuck with this error message: $ rake db:test:prepare rake aborted! Text file busy - db/test.sqlite3 Tasks: TOP => db:test:load => db:test:purge (See full trace by running task with --trace) Turns out the file was [&#8230;]<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2015/02/killednloading-meteorjs-issue/"     class="crp_title">Killednloading MeteorJS Issue</a></li><li><a href="http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/"     class="crp_title">SailsJS 0.9.8 and Bootstrap 3.0.3 LESS</a></li><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li></ul><div class="crp_clear"></div></div>]]></description>
				<content:encoded><![CDATA[<p>Sometimes things are just too obvious&#8230;</p>
<p>When trying to setup the test database for my new rails app I kept getting stuck with this error message:</p>
<pre><code><b>$ rake db:test:prepare</b>

rake aborted!
Text file busy - db/test.sqlite3

Tasks: TOP => db:test:load => db:test:purge
(See full trace by running task with --trace)
</code></pre>
<p>Turns out the file was in use&#8230; If you have <b>guard</b> running in the background, that needs to be closed down while you run the rake test db commands.</p>
<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2015/02/killednloading-meteorjs-issue/"     class="crp_title">Killednloading MeteorJS Issue</a></li><li><a href="http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/"     class="crp_title">SailsJS 0.9.8 and Bootstrap 3.0.3 LESS</a></li><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li></ul><div class="crp_clear"></div></div>]]></content:encoded>
			<wfw:commentRss>http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick fix for the Social Counter Widget plugin</title>
		<link>http://think-robot.com/2012/04/quick-fix-for-the-social-counter-widget-plugin/</link>
		<comments>http://think-robot.com/2012/04/quick-fix-for-the-social-counter-widget-plugin/#comments</comments>
		<pubDate>Sun, 22 Apr 2012 23:58:32 +0000</pubDate>
		<dc:creator><![CDATA[Joanna]]></dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://think-robot.com/?p=308</guid>
		<description><![CDATA[I&#8217;ve been doing some charity work recently and as they will have a social presence the blog was in need of some social media buttons. I thought the Social Counter Widget plugin looked quite nice (after the slightly prettier Social Impact Widget decided to just error when I did not enter a Google plus account [&#8230;]<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/"     class="crp_title">SailsJS 0.9.8 and Bootstrap 3.0.3 LESS</a></li><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li></ul><div class="crp_clear"></div></div>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been doing some charity work recently and as they will have a social presence the blog was in need of some social media buttons. I thought the <a href="http://wordpress.org/extend/plugins/social-counter-widget" target="_blank">Social Counter Widget</a> plugin looked quite nice (after the slightly prettier <a href="http://wordpress.org/extend/plugins/social-impact-widget/" target="_blank">Social Impact Widget</a> decided to just error when I did not enter a Google plus account &#8211; guess you have to go all or nothing for this plugin).</p>
<p>Unfortunately it wouldn&#8217;t even install, giving the following error:</p>
<pre><code>PHP Parse error:  syntax error, unexpected $end in <br/>/(...)/wp-content/plugins/social-counter-widget/scw_stats.class.php on line 73
</code></pre>
<p>A quick check revealed that it was a mistyped php open tag on line 70 that caused the problems. If you need to fix it before the plugin author submits an updated version just change &#8220;&lt;?&#8221; to &#8220;&lt;?php&#8221; on line 70 of the <strong>wp-content/plugins/social-counter-widget/scw_stats.class.php</strong> file.</p>
<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/"     class="crp_title">SailsJS 0.9.8 and Bootstrap 3.0.3 LESS</a></li><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li></ul><div class="crp_clear"></div></div>]]></content:encoded>
			<wfw:commentRss>http://think-robot.com/2012/04/quick-fix-for-the-social-counter-widget-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Edit BIOS in Lenovo ThinkPad x220t</title>
		<link>http://think-robot.com/2011/08/edit-bios-in-lenovo-thinkpad-x220t/</link>
		<comments>http://think-robot.com/2011/08/edit-bios-in-lenovo-thinkpad-x220t/#comments</comments>
		<pubDate>Tue, 09 Aug 2011 16:56:32 +0000</pubDate>
		<dc:creator><![CDATA[Joanna]]></dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[bios]]></category>
		<category><![CDATA[Lenovo]]></category>
		<category><![CDATA[tablet]]></category>
		<category><![CDATA[ThinkPad]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://think-robot.com/?p=302</guid>
		<description><![CDATA[As it&#8217;s changed from the previous model it had me scratching my head for a few minutes. To enter the BIOS setup just use F1 during laptop startup.<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2015/02/killednloading-meteorjs-issue/"     class="crp_title">Killednloading MeteorJS Issue</a></li><li><a href="http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/"     class="crp_title">SailsJS 0.9.8 and Bootstrap 3.0.3 LESS</a></li><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li></ul><div class="crp_clear"></div></div>]]></description>
				<content:encoded><![CDATA[<p>As it&#8217;s changed from the previous model it had me scratching my head for a few minutes. To enter the BIOS setup just use <strong>F1 during laptop startup</strong>.</p>
<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2015/02/killednloading-meteorjs-issue/"     class="crp_title">Killednloading MeteorJS Issue</a></li><li><a href="http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/"     class="crp_title">SailsJS 0.9.8 and Bootstrap 3.0.3 LESS</a></li><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li></ul><div class="crp_clear"></div></div>]]></content:encoded>
			<wfw:commentRss>http://think-robot.com/2011/08/edit-bios-in-lenovo-thinkpad-x220t/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress update permission issues</title>
		<link>http://think-robot.com/2011/06/wordpress-update-permission-issues/</link>
		<comments>http://think-robot.com/2011/06/wordpress-update-permission-issues/#comments</comments>
		<pubDate>Sun, 05 Jun 2011 22:24:19 +0000</pubDate>
		<dc:creator><![CDATA[Joanna]]></dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[permissions]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://think-robot.com/?p=297</guid>
		<description><![CDATA[WordPress can often be such a pain to deal with&#8230; Recently I was trying to get an installation updated as well as some of the plugins. What should have been a straightforward task, turned out to be several hours of messing around with permissions and trying to figure out why even 777 isn&#8217;t enough for [&#8230;]<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li><li><a href="http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/"     class="crp_title">SailsJS 0.9.8 and Bootstrap 3.0.3 LESS</a></li><li><a href="http://think-robot.com/2015/02/killednloading-meteorjs-issue/"     class="crp_title">Killednloading MeteorJS Issue</a></li><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li></ul><div class="crp_clear"></div></div>]]></description>
				<content:encoded><![CDATA[<p>WordPress can often be such a pain to deal with&#8230;</p>
<p>Recently I was trying to get an installation updated as well as some of the plugins. What should have been a straightforward task, turned out to be several hours of messing around with permissions and trying to figure out why even 777 isn&#8217;t enough for the updates to NOT fail and what user should own what.</p>
<p>Well it turns out that it&#8217;s only partly the fault of WordPress as it is an <strong>issue with the FTP server</strong>. Still some better messaging would be helpful&#8230;</p>
<p>There were mentions about a patch and fixes in potentially in the <strong>3.2 WP version</strong> related to the error I was getting:</p>
<pre><code>Could not copy file.: /public_html/wp-admin/css/theme-editor.dev.css</code></pre>
<p>However only after stumbling across <a href="http://www.aeromental.net/2011/01/11/automatic-update-public_htmlwp-admincsstheme-editor-dev-css/" class="external">this page</a> I found an easy and quick solution.</p>
<p>Turns out it was enough to just switch from Pure-FTPD to <strong>Pro-FTPD</strong>.</p>
<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li><li><a href="http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/"     class="crp_title">SailsJS 0.9.8 and Bootstrap 3.0.3 LESS</a></li><li><a href="http://think-robot.com/2015/02/killednloading-meteorjs-issue/"     class="crp_title">Killednloading MeteorJS Issue</a></li><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li></ul><div class="crp_clear"></div></div>]]></content:encoded>
			<wfw:commentRss>http://think-robot.com/2011/06/wordpress-update-permission-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top Level Cookies in Opera for Custom Domain Names</title>
		<link>http://think-robot.com/2011/04/top-level-cookies-in-opera-for-custom-domain-names/</link>
		<comments>http://think-robot.com/2011/04/top-level-cookies-in-opera-for-custom-domain-names/#comments</comments>
		<pubDate>Sat, 02 Apr 2011 23:36:14 +0000</pubDate>
		<dc:creator><![CDATA[Joanna]]></dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[host]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[top level]]></category>

		<guid isPermaLink="false">http://think-robot.com/?p=288</guid>
		<description><![CDATA[For our local development at work we all use the same fake domain &#8211; helps with setting API keys and other things across the board and isn&#8217;t hard to setup whatever system any new developer might have. It also happens to be not a &#8220;.com&#8221;: www.local.bnt &#8211; which is nice for not confusing it with [&#8230;]<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li><li><a href="http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/"     class="crp_title">SailsJS 0.9.8 and Bootstrap 3.0.3 LESS</a></li><li><a href="http://think-robot.com/2015/02/killednloading-meteorjs-issue/"     class="crp_title">Killednloading MeteorJS Issue</a></li></ul><div class="crp_clear"></div></div>]]></description>
				<content:encoded><![CDATA[<p>For our local development at work we all use the same fake domain &#8211; helps with setting API keys and other things across the board and isn&#8217;t hard to setup whatever system any new developer might have. It also happens to be not a &#8220;.com&#8221;: <strong>www.local.bnt</strong> &#8211; which is nice for not confusing it with real sites.</p>
<p>While developing cross-subdomain authentication we suddenly realised that it didn&#8217;t work on Opera. After a bit of research it turns out that it&#8217;s not the setting of the cookie path (&#8220;.local.bnt&#8221;) that is the problem, but <a target="_blank" href="http://my.opera.com/yngve/blog/show.dml/267415">the way Opera checks which part of the domain name is the top level domain</a>:</p>
<blockquote><p>&#8220;Here at Opera we went for the rule-of-thumb method: When Opera is checking a cookie whose target domain matches certain criteriea (e.g. it is not a .com domain), <strong>we do a DNS name lookup for the target domain, to see if there is an IP address for that domain</strong>. If there is an IP address for the domain (e.g. example.no) we assume that the domain is a normal company domain, not a co.uk like domain, and therefore safe. If there is no IP address we assume that the domain is co.uk-like and therefore unsafe, and only allows the cookie to be set for the server that sent the cookie.&#8221;</p></blockquote>
<p>So that&#8217;s the problem right there and with an easy fix once you know the above&#8230; However the whole article is worth a read as it does shed some light on the multiple problems related to top level domains and cookies.</p>
<p>If you want to keep your random local domain name make sure your <strong>hosts file</strong> contains not only your sub domains, but the main one as well even if it is not used directly.</p>
<pre><code>127.0.0.1    www.local.bnt
<strong>127.0.0.1    local.bnt</strong>
</code></pre>
<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li><li><a href="http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/"     class="crp_title">SailsJS 0.9.8 and Bootstrap 3.0.3 LESS</a></li><li><a href="http://think-robot.com/2015/02/killednloading-meteorjs-issue/"     class="crp_title">Killednloading MeteorJS Issue</a></li></ul><div class="crp_clear"></div></div>]]></content:encoded>
			<wfw:commentRss>http://think-robot.com/2011/04/top-level-cookies-in-opera-for-custom-domain-names/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Multiple Events Without Default Behaviour</title>
		<link>http://think-robot.com/2011/03/jquery-multiple-events-without-default-behaviour/</link>
		<comments>http://think-robot.com/2011/03/jquery-multiple-events-without-default-behaviour/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 22:51:34 +0000</pubDate>
		<dc:creator><![CDATA[Joanna]]></dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://think-robot.com/?p=276</guid>
		<description><![CDATA[Sometimes you trip over the little things. With several people working on the same page while we were recreating some JS functionality from scratch I&#8217;ve noticed one of my buttons suddenly stopped working. Scratched my head a bit, and for a minute thought that maybe it&#8217;s not having a &#8220;return false;&#8221; in my jQuery live() [&#8230;]<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li></ul><div class="crp_clear"></div></div>]]></description>
				<content:encoded><![CDATA[<p>Sometimes you trip over the little things.</p>
<p>With several people working on the same page while we were recreating some JS functionality from scratch I&#8217;ve noticed one of my buttons suddenly stopped working. Scratched my head a bit, and for a minute thought that maybe it&#8217;s not having a &#8220;return false;&#8221; in my jQuery live() event handler.</p>
<p>Turned out though that it was actually one of the other developers actually putting a &#8220;return false;&#8221; in their event handler that just happened to target the same element&#8230; </p>
<p>Ideally we needed to propagate the event through a variable number of events but prevent the default behaviour of a link kicking in. <strong>preventDefault()</strong> to the rescue! <img src="http://think-robot.com/wp-includes/images/smilies/simple-smile.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<pre><code>$('#tag').live('click', function(event){
    (...)
    event.preventDefault();
});
</code></pre>
<p>Now, before blindly applying this piece of code I&#8217;d encourage everyone to first read up on <a target="_blank" href="http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/">why &#8220;return false;&#8221; is evil</a>. <img src="http://s.w.org/images/core/emoji/72x72/1f609.png" alt="&#x1f609;" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>And for a quick reference here&#8217;s a table featured on a related <a target="_blank" href="http://stackoverflow.com/questions/5302903/jquery-event-stopimmediatepropagation-vs-return-false">StackOverflow question</a>:</p>
<table>
<thead>
<tr>
<td>&nbsp;</td>
<th>stop propagation</th>
<th>prevent default action</th>
<th>prevent &#8220;same element&#8221; event handlers</th>
</tr>
</thead>
<tbody>
<tr>
<th>return false</th>
<td>X</td>
<td>X</td>
<td>&nbsp;</td>
</tr>
<tr>
<th>preventDefault</th>
<td>&nbsp;</td>
<td>X</td>
<td>&nbsp;</td>
</tr>
<tr>
<th>stopPropagation</th>
<td>X</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<th>stopImmediatePropagation</th>
<td>X</td>
<td>&nbsp;</td>
<td>X</td>
</tr>
</tbody>
</table>
<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li></ul><div class="crp_clear"></div></div>]]></content:encoded>
			<wfw:commentRss>http://think-robot.com/2011/03/jquery-multiple-events-without-default-behaviour/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enable delayed messages in Zend_Queue</title>
		<link>http://think-robot.com/2011/01/enable-delayed-messages-in-zend_queue/</link>
		<comments>http://think-robot.com/2011/01/enable-delayed-messages-in-zend_queue/#comments</comments>
		<pubDate>Sun, 30 Jan 2011 11:57:52 +0000</pubDate>
		<dc:creator><![CDATA[Joanna]]></dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[classes]]></category>
		<category><![CDATA[examples]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[queue]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Zend_Queue]]></category>

		<guid isPermaLink="false">http://think-robot.com/?p=268</guid>
		<description><![CDATA[The default Zend_Queue DB implementation unfortunately does not allow you to pass a timeout value when saving a message on the queue. However not all is lost and you can easily extend the standard Zend classes to add that functionality. All you need is your own Db adapter and Queue class. For the adapter you [&#8230;]<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li><li><a href="http://think-robot.com/2015/02/killednloading-meteorjs-issue/"     class="crp_title">Killednloading MeteorJS Issue</a></li><li><a href="http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/"     class="crp_title">SailsJS 0.9.8 and Bootstrap 3.0.3 LESS</a></li></ul><div class="crp_clear"></div></div>]]></description>
				<content:encoded><![CDATA[<p>The default Zend_Queue DB implementation unfortunately does not allow you to <strong>pass a timeout value</strong> when saving a message on the queue. However not all is lost and you can easily extend the standard Zend classes to add that functionality.</p>
<p>All you need is your own <strong>Db adapter</strong> and <strong>Queue class</strong>.</p>
<p>For the adapter you only need to overwrite <strong>the send()</strong> function. The highlighted code below is the only change to the original class (2 lines affected&#8230;). You could actually apply this without extending Zend_Queue, but this way will be easier if you ever need to update your Zend library.</p>
<pre><code>&lt;?php

class TS_Queue_Adapter_Db extends Zend_Queue_Adapter_Db {

    /**
     * Send a message to the queue
     *
     * @param  string     $message Message to send to the active queue
     * @param  Zend_Queue $queue
     * @param  Timestamp $timeout
     * @return Zend_Queue_Message
     * @throws Zend_Queue_Exception - database error
     */
    public function send($message, Zend_Queue $queue = null<strong>, $timeout = null</strong>){
        if ($this->_messageRow === null) {
            $this->_messageRow = $this->_messageTable->createRow();
        }

        if ($queue === null) {
            $queue = $this->_queue;
        }

        if (is_scalar($message)) {
            $message = (string) $message;
        }
        if (is_string($message)) {
            $message = trim($message);
        }

        if (!$this->isExists($queue->getName())) {
            require_once 'Zend/Queue/Exception.php';
            throw new Zend_Queue_Exception('Queue does not exist:' . $queue->getName());
        }

        $msg = clone $this->_messageRow;
        $msg->queue_id = $this->getQueueId($queue->getName());
        $msg->created = time();
        $msg->body = $message;
        $msg->md5 = md5($message);
<strong>        $msg->timeout = $timeout;</strong>

        try {
            $msg->save();
        } catch (Exception $e) {
            require_once 'Zend/Queue/Exception.php';
            throw new Zend_Queue_Exception($e->getMessage(), $e->getCode(), $e);
        }

        $options = array(
            'queue' => $queue,
            'data' => $msg->toArray(),
        );

        $classname = $queue->getMessageClass();
        if (!class_exists($classname)) {
            require_once 'Zend/Loader.php';
            Zend_Loader::loadClass($classname);
        }
        return new $classname($options);
    }
}</code></pre>
<p>Your Queue class only needs to extend the <strong>send()</strong> function again to allow you to pass the timeout through. obviously you can use this class to add other functionality too.</p>
<pre><code>&lt;?php

class TS_Queue extends Zend_Queue {

	/**
	 * Send a message to the queue
	 *
	 * @param  mixed $message message
	 * @return Zend_Queue_Message
	 * @throws Zend_Queue_Exception
	 */
	public function send($message, $timeout = null){
		return $this->getAdapter()->send($message, null, $timeout);
	}
}</code></pre>
<div class="crp_related"><h2>Related Articles:</h2><ul><li><a href="http://think-robot.com/2013/01/wordpress-admin-insufficient-permissions/"     class="crp_title">WordPress Admin &#8211; Insufficient Permissions</a></li><li><a href="http://think-robot.com/2012/12/text-file-busy-dbtest-sqlite3/"     class="crp_title">Text file busy &#8211; db/test.sqlite3</a></li><li><a href="http://think-robot.com/2015/02/killednloading-meteorjs-issue/"     class="crp_title">Killednloading MeteorJS Issue</a></li><li><a href="http://think-robot.com/2014/01/sailsjs-0-9-8-and-bootstrap-3-0-3-less/"     class="crp_title">SailsJS 0.9.8 and Bootstrap 3.0.3 LESS</a></li></ul><div class="crp_clear"></div></div>]]></content:encoded>
			<wfw:commentRss>http://think-robot.com/2011/01/enable-delayed-messages-in-zend_queue/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
