<?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>Bits n Bobs</title>
	<atom:link href="http://www.alwayssunny.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.alwayssunny.com/blog</link>
	<description>Probably of no interest to anyone other than me</description>
	<lastBuildDate>Fri, 13 Apr 2012 10:28:09 +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>installing oc8i extension in debian</title>
		<link>http://www.alwayssunny.com/blog/?p=270</link>
		<comments>http://www.alwayssunny.com/blog/?p=270#comments</comments>
		<pubDate>Fri, 13 Apr 2012 10:28:09 +0000</pubDate>
		<dc:creator>maxmil</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[pecl]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.alwayssunny.com/blog/?p=270</guid>
		<description><![CDATA[At the time of writing there are only the instantclient-basic and instantclient-sqlplus packages available in the debian repos. Building the extension from source (using pecl) requires the instantclient-sdk package. Since i could not find this for debian i used the rpm&#8217;s on oracles download site. First convert them to deb&#8217;s using alien. Then dpkg -i [...]]]></description>
			<content:encoded><![CDATA[<p>At the time of writing there are only the instantclient-basic and instantclient-sqlplus packages available in the debian repos.</p>
<p>Building the extension from source (using pecl) requires the instantclient-sdk package.</p>
<p>Since i could not find this for debian i used the rpm&#8217;s on oracles download site.</p>
<p>First convert them to deb&#8217;s using alien.</p>
<p>Then dpkg -i</p>
<p>Then pecl install oci8</p>
<p>Finally add the extension to the php.ini used by apache and reload apache.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alwayssunny.com/blog/?feed=rss2&#038;p=270</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex memory leaks and watching property chains</title>
		<link>http://www.alwayssunny.com/blog/?p=263</link>
		<comments>http://www.alwayssunny.com/blog/?p=263#comments</comments>
		<pubDate>Wed, 07 Sep 2011 15:50:56 +0000</pubDate>
		<dc:creator>maxmil</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[memory leaks]]></category>

		<guid isPermaLink="false">http://www.alwayssunny.com/blog/?p=263</guid>
		<description><![CDATA[As a general rule it&#8217;s a good idea to always unset any change watchers created via BindingUtils.bindProperty or Changewatcher.watch. However in display objects this often requires a whole lot of boilerplate code listening for when your component is removed from the stage and even more if you consider that it might be re added at [...]]]></description>
			<content:encoded><![CDATA[<p>As a general rule it&#8217;s a good idea to always unset any change watchers created via BindingUtils.bindProperty or Changewatcher.watch. </p>
<p>However in display objects this often requires a whole lot of boilerplate code listening for when your component is removed from the stage and even more if you consider that it might be re added at a later date.</p>
<p>Fortunately if you create a change watcher within your display object the scope of that change watcher is limited to the scope of the display object and so it doesn&#8217;t prevent the garbage collector from removing the object and watcher when the object is removed from the stage and you can avoid the boilerplate.</p>
<p>However whilst profiling my app today i have discovered that if your change watcher is listening to a property chain rather than a single property then this is not the case.</p>
<p>In this case multiple ChangeWatchers are created that reference each other and this, for some reason unknown to me, prevents the GC from collecting the ChangeWatchers and hence your display object.</p>
<p>Unfortunately in this case the boilerplate seems necessary <img src='http://www.alwayssunny.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Love to hear if anyone could explain what is happening here&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alwayssunny.com/blog/?feed=rss2&#038;p=263</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>/var/lib/dpkg/status and invalid character in revision</title>
		<link>http://www.alwayssunny.com/blog/?p=254</link>
		<comments>http://www.alwayssunny.com/blog/?p=254#comments</comments>
		<pubDate>Mon, 27 Jun 2011 08:46:23 +0000</pubDate>
		<dc:creator>maxmil</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[apt-get]]></category>
		<category><![CDATA[aptitude]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[dpkg]]></category>
		<category><![CDATA[package management]]></category>

		<guid isPermaLink="false">http://www.alwayssunny.com/blog/?p=254</guid>
		<description><![CDATA[This error appears often in my system related to the names of virtualbox packages. The current release of virtualbox packages no longer have this problem however the old packages are not removed from the status file. The only solution seems to be to modify the status file by hand and remove the packages. Another solution [...]]]></description>
			<content:encoded><![CDATA[<p>This error appears often in my system related to the names of virtualbox packages.</p>
<p>The current release of virtualbox packages no longer have this problem however the old packages are not removed from the status file.</p>
<p>The only solution seems to be to modify the status file by hand and remove the packages.</p>
<p>Another solution is to use this <a href="http://www.kirya.net/tips/clear-dpkg-status-file/">script</a> written by Julien Valroff that clears purged packages from your status file.</p>
<p>Thankyou Julien.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alwayssunny.com/blog/?feed=rss2&#038;p=254</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exclude hidden (dot) files from find</title>
		<link>http://www.alwayssunny.com/blog/?p=247</link>
		<comments>http://www.alwayssunny.com/blog/?p=247#comments</comments>
		<pubDate>Wed, 08 Jun 2011 08:04:09 +0000</pubDate>
		<dc:creator>maxmil</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[GNU find]]></category>

		<guid isPermaLink="false">http://www.alwayssunny.com/blog/?p=247</guid>
		<description><![CDATA[find . -type f ! -iname ".*"]]></description>
			<content:encoded><![CDATA[<p><code>find . -type f ! -iname ".*"</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alwayssunny.com/blog/?feed=rss2&#038;p=247</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using apt with an http proxy</title>
		<link>http://www.alwayssunny.com/blog/?p=248</link>
		<comments>http://www.alwayssunny.com/blog/?p=248#comments</comments>
		<pubDate>Tue, 07 Jun 2011 10:48:54 +0000</pubDate>
		<dc:creator>maxmil</dc:creator>
				<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://www.alwayssunny.com/blog/?p=248</guid>
		<description><![CDATA[First export http_proxy environmental variable. sudo export http_proxy=http://uname:pass@proxy:port apt / aptitude will now use that proxy.]]></description>
			<content:encoded><![CDATA[<p>First export http_proxy environmental variable.</p>
<p><code>sudo export http_proxy=http://uname:pass@proxy:port</code></p>
<p>apt / aptitude will now use that proxy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alwayssunny.com/blog/?feed=rss2&#038;p=248</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up apache forward proxy with basic authentication</title>
		<link>http://www.alwayssunny.com/blog/?p=243</link>
		<comments>http://www.alwayssunny.com/blog/?p=243#comments</comments>
		<pubDate>Tue, 07 Jun 2011 08:54:15 +0000</pubDate>
		<dc:creator>maxmil</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.alwayssunny.com/blog/?p=243</guid>
		<description><![CDATA[To set up an apache forward proxy with username password authentication you need to add something like this to a catch all virtual host. If apache is only listening on port 80 this would be your default virtual host. ProxyRequests on &#60;Proxy *&#62; Order deny,allow Allow from all AuthType Basic AuthName "Password Required" AuthUserFile /etc/apache2/proxy.passwd [...]]]></description>
			<content:encoded><![CDATA[<p>To set up an apache forward proxy with username password authentication you need to add something like this to a catch all virtual host. If apache is only listening on port 80 this would be your default virtual host.</p>
<p><code><br />
    ProxyRequests on<br />
    &lt;Proxy *&gt;<br />
       Order deny,allow<br />
       Allow from all<br />
       AuthType Basic<br />
       AuthName "Password Required"<br />
       AuthUserFile /etc/apache2/proxy.passwd<br />
       Require valid-user<br />
    &lt;/Proxy&gt;<br />
</code></p>
<p>You must obviously have mod_proxy activated in your apache.<br />
<code><br />
LoadModule proxy_module modules/mod_proxy.so<br />
LoadModule proxy_http_module modules/mod_proxy_http.so<br />
</code></p>
<p>To create the password file and add a user alice do<br />
<code><br />
htpasswd -c /etc/apache2/proxy.passwd alice<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alwayssunny.com/blog/?feed=rss2&#038;p=243</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Find out which process is listening on a given port</title>
		<link>http://www.alwayssunny.com/blog/?p=239</link>
		<comments>http://www.alwayssunny.com/blog/?p=239#comments</comments>
		<pubDate>Mon, 09 May 2011 08:34:32 +0000</pubDate>
		<dc:creator>maxmil</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.alwayssunny.com/blog/?p=239</guid>
		<description><![CDATA[In GNU land, for port 123 this goes like lsof -i :123 Or on Windows netstat -aon &#124; findstr 123 (get the process id) tasklist &#124; findstr processId]]></description>
			<content:encoded><![CDATA[<p>In GNU land, for port 123 this goes like<br />
<code>lsof -i :123<br />
</code></p>
<p>Or on Windows<br />
<code><br />
netstat -aon | findstr 123 (get the process id)<br />
tasklist | findstr processId<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alwayssunny.com/blog/?feed=rss2&#038;p=239</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Move with wildcards</title>
		<link>http://www.alwayssunny.com/blog/?p=226</link>
		<comments>http://www.alwayssunny.com/blog/?p=226#comments</comments>
		<pubDate>Thu, 30 Dec 2010 08:42:24 +0000</pubDate>
		<dc:creator>maxmil</dc:creator>
				<category><![CDATA[bash]]></category>

		<guid isPermaLink="false">http://www.alwayssunny.com/blog/?p=226</guid>
		<description><![CDATA[Just found problems with a directory of images that had some extensions in uppercase (JPG) and others in lowercase (jpg). I wanted to move all the uppercase JPG to lowercase. This is the script that did it: for f in *.JPG do new=${f:0:${#f}-4} mv $f ${new}.jpg done]]></description>
			<content:encoded><![CDATA[<p>Just found problems with a directory of images that had some extensions in uppercase (JPG) and others in lowercase (jpg).</p>
<p>I wanted to move all the uppercase JPG to lowercase.</p>
<p>This is the script that did it:</p>
<p>for f in *.JPG<br />
do<br />
    new=${f:0:${#f}-4}<br />
    mv $f ${new}.jpg<br />
done</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alwayssunny.com/blog/?feed=rss2&#038;p=226</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>at, Cron for Windows</title>
		<link>http://www.alwayssunny.com/blog/?p=222</link>
		<comments>http://www.alwayssunny.com/blog/?p=222#comments</comments>
		<pubDate>Wed, 24 Nov 2010 17:21:45 +0000</pubDate>
		<dc:creator>maxmil</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.alwayssunny.com/blog/?p=222</guid>
		<description><![CDATA[Just had to configure a scheduled task on a Windows server and have discovered a cron equivalent: at At the command line typing &#8220;at&#8221; shows the programmed tasks. To add a task use something like at 02:00 /every:M,T,W,Th,F,S,Su c:\path\to\script.bat]]></description>
			<content:encoded><![CDATA[<p>Just had to configure a scheduled task on a Windows server and have discovered a cron equivalent: at</p>
<p>At the command line typing &#8220;at&#8221; shows the programmed tasks.</p>
<p>To add a task use something like</p>
<p>at 02:00 /every:M,T,W,Th,F,S,Su c:\path\to\script.bat</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alwayssunny.com/blog/?feed=rss2&#038;p=222</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up SSL certificates for Chrome on Debian</title>
		<link>http://www.alwayssunny.com/blog/?p=216</link>
		<comments>http://www.alwayssunny.com/blog/?p=216#comments</comments>
		<pubDate>Fri, 12 Nov 2010 09:06:14 +0000</pubDate>
		<dc:creator>maxmil</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.alwayssunny.com/blog/?p=216</guid>
		<description><![CDATA[Just a reminder of how to set up NSS shared DB that chrome uses on Linux for authenticating certificates. First make sure that libnss3-tools are installed: sudo aptitude install libnss3-tools Then download the certificates for CAcerts wget -o "cacert-class3.crt" "http://www.cacert.org/certs/class3.crt" &#160; wget -o "cacert-class3.crt" "http://www.cacert.org/certs/class3.crt" Import them into the database certutil -d sql:$HOME/.pki/nssdb -A -t [...]]]></description>
			<content:encoded><![CDATA[<p>Just a reminder of how to set up NSS shared DB that chrome uses on Linux for authenticating certificates.</p>
<p>First make sure that libnss3-tools are installed:<br />
<code>sudo aptitude install libnss3-tools</code></p>
<p>Then download the certificates for CAcerts</p>
<p><code>wget -o "cacert-class3.crt" "http://www.cacert.org/certs/class3.crt"<br />
&nbsp;<br />
wget -o "cacert-class3.crt" "http://www.cacert.org/certs/class3.crt"</code></p>
<p>Import them into the database</p>
<p><code>certutil -d sql:$HOME/.pki/nssdb -A -t "TC,," \<br />
          -n "CAcert.org" -i cacert-root.crt<br />
&nbsp;<br />
certutil -d sql:$HOME/.pki/nssdb -A -t "TC,," \<br />
          -n "CAcert.org Class 3" -i cacert-class3.crt</code></p>
<p>What is this?</p>
<p><strong>-d</strong> = where the database resides<br />
<strong>-A</strong> = add action<br />
<strong>-t</strong> = trust flags. In this case T identifies these certificates as certificate issuers any certificate issued by these authorites will be trusted. The C identifies the certificate as a root CA certificate. There are three different situations in which you can define trust flags: SSL, email and object signing. Here we just define the first one SSL.<br />
<strong>-n</strong> = nickname<br />
<strong>-i</strong> = certificate file</p>
<p>Lastly we can delete the downloaded files<br />
<code>$rm cacert-root.crt cacert-class3.crt</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alwayssunny.com/blog/?feed=rss2&#038;p=216</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

