<?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>Ian Winter &#187; Technology</title>
	<atom:link href="http://ianwinter.co.uk/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://ianwinter.co.uk</link>
	<description>Have you found the instructions yet?</description>
	<lastBuildDate>Thu, 13 May 2010 21:03:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Simplicity with o2</title>
		<link>http://ianwinter.co.uk/2010/04/26/simplicity-with-o2/</link>
		<comments>http://ianwinter.co.uk/2010/04/26/simplicity-with-o2/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 22:23:29 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[o2]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://ianwinter.co.uk/?p=1142</guid>
		<description><![CDATA[If you&#8217;ve got yourself an iPhone, particular a 3G, odds are you&#8217;re out of, or, coming up to being out of contract. You&#8217;re probably paying £35/m right now as well. If like me you&#8217;re holding on for June/July to see if a new iPhone is launched, which, it probably will be you&#8217;re not going to [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve got yourself an iPhone, particular a 3G, odds are you&#8217;re out of, or, coming up to being out of contract. You&#8217;re probably paying £35/m right now as well. If like me you&#8217;re holding on for June/July to see if a new iPhone is launched, which, it probably will be you&#8217;re not going to want to jump into a 18/24 month contract to upgrade to a 3GS (albeit tempting). O2 actually seem to have an answer in their reasonable new <a href="http://shop.o2.co.uk/tariffs/simplicity/iphone/1_month" target="_blank">Simplicity</a> SIM only tariffs. For £20/m you can get unlimited texts and 300 minutes inclusive.</p>
<p>It&#8217;s also really easy to switch online once you&#8217;ve found the right links. If you click on the &#8220;Shop&#8221; dropdown at the top you&#8217;ll see an <a href="http://shop.o2.co.uk/Mobile_Phone_Upgrades" target="_blank">Upgrade Your Phone</a> link. Follow that, enter your mobile number and then the code you&#8217;ll get by SMS. Once in you can pick from the don&#8217;t want a phone section and just pick the new tariff. You can also just go on a month to month rolling contract which is great, saves you money and hopefully makes you ready for the iPhone 4G. You can also &#8220;downgrade&#8221; to these tariffs and save £5/m if you go for a 12 month contract.</p>
<p>I&#8217;ve gone through the process just now and as yet not received a confirmation email but hopefully that&#8217;ll turn up soon!</p>
<p><strong>Edit:</strong> Still no email but now the O2 iPhone app shows I&#8217;m on to simplicity 20 tariff. </p>
]]></content:encoded>
			<wfw:commentRss>http://ianwinter.co.uk/2010/04/26/simplicity-with-o2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL and 0x0B</title>
		<link>http://ianwinter.co.uk/2010/04/23/mysql-and-0x0b/</link>
		<comments>http://ianwinter.co.uk/2010/04/23/mysql-and-0x0b/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 11:01:37 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[charsets]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://ianwinter.co.uk/?p=1125</guid>
		<description><![CDATA[You may or may not know about the wonderful vertical tab character 0x0B. It&#8217;s a character that&#8217;s not easy to see and can cause issues across a number of different programming languages. In my case a Rails developer was having trouble passing some data from an API. A JSON parser was throwing errors about a [...]]]></description>
			<content:encoded><![CDATA[<p>You may or may not know about the wonderful vertical tab character 0x0B. It&#8217;s a character that&#8217;s not easy to see and can cause issues across a number of different programming languages. In my case a Rails developer was having trouble passing some data from an API. A JSON parser was throwing errors about a specific character. Originally we suspected line breaks were causing the issue but after more digging and examination using Textmate and the Text bundle we spotted the invisible characters and having converted it to hex found out it was 0x0B. A quick Google brings back quite a few results of people having the same problem.</p>
<p>In order to find them in the database I knocked up the following SQL:</p>
<pre class="brush: sql; light: true;">SELECT * FROM table WHERE data LIKE CONCAT('%',CHAR(0x0B),'%');</pre>
<p>Then to replace them quickly (assuming the 3 records have ID&#8217;s 1,2 and 3):</p>
<pre class="brush: sql; light: true;">UPDATE table SET data = REPLACE(data,CHAR(0x0B),'') WHERE id IN (1,2,3);</pre>
]]></content:encoded>
			<wfw:commentRss>http://ianwinter.co.uk/2010/04/23/mysql-and-0x0b/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tweeting from the command line</title>
		<link>http://ianwinter.co.uk/2010/04/21/tweeting-from-the-command-line/</link>
		<comments>http://ianwinter.co.uk/2010/04/21/tweeting-from-the-command-line/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 16:22:27 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://ianwinter.co.uk/?p=1120</guid>
		<description><![CDATA[I read an article over at OS X Daily about posting a tweet from the command line using the twitter API. Taking this one step further here&#8217;s a handy little script that&#8217;ll even stop you posting nothing and stuff that&#8217;s too long. #!/bin/bash TWEET=$1 TWEETLEN=${#TWEET} if [ $TWEETLEN -eq 0 ] &#124;&#124; [ $TWEETLEN -gt [...]]]></description>
			<content:encoded><![CDATA[<p>I read an article over at <a href="http://osxdaily.com/2010/04/20/post-a-twitter-update-via-the-command-line/" target="_blank">OS X Daily</a> about posting a tweet from the command line using the twitter API. Taking this one step further here&#8217;s a handy little script that&#8217;ll even stop you posting nothing and stuff that&#8217;s too long.</p>
<pre class="brush: bash;">
#!/bin/bash
TWEET=$1
TWEETLEN=${#TWEET}
if [ $TWEETLEN -eq 0 ] || [ $TWEETLEN -gt 140 ]; then
	if [ $TWEETLEN -gt 140 ]; then
		let EXTRA=$TWEETLEN-140
		echo &quot;Usage: tweet \&quot;message\&quot; (140 chars or less, you're $EXTRA over)&quot;
	else
		echo &quot;Usage: tweet \&quot;message\&quot; (140 chars or less)&quot;
	fi
	exit 1
else
	curl -u username:password -d status=&quot;$1&quot; http://twitter.com/statuses/update.xml
fi
exit 0
</pre>
<p>Save the file as &#8220;tweet&#8221; and make sure it&#8217;s in the path with executable permissions of 755.</p>
<pre class="brush: bash; light: true;">chmod 755 tweet</pre>
]]></content:encoded>
			<wfw:commentRss>http://ianwinter.co.uk/2010/04/21/tweeting-from-the-command-line/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Phatnoise</title>
		<link>http://ianwinter.co.uk/2010/02/06/phatnoise/</link>
		<comments>http://ianwinter.co.uk/2010/02/06/phatnoise/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 15:56:28 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[music manager]]></category>
		<category><![CDATA[phatbox]]></category>
		<category><![CDATA[phatnoise]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://ianwinter.co.uk/?p=1108</guid>
		<description><![CDATA[First blog post in a while, but, here goes anyway! I&#8217;ve got a Phatnoise MP3 system in my Golf and have had the same music on the cartridge for ages. The problem is the company who make it don&#8217;t really seem to be around to much and I think have been acquired by Harmon. Either [...]]]></description>
			<content:encoded><![CDATA[<p>First blog post in a while, but, here goes anyway!</p>
<p>I&#8217;ve got a Phatnoise MP3 system in my Golf and have had the same music on the cartridge for ages. The problem is the company who make it don&#8217;t really seem to be around to much and I think have been acquired by Harmon. Either way if you need the latest version of the Phatnoise music / media manager I suggest you go check out <a href="http://forum.phathack.com/index.php/topic,1053.0.html">this post </a>on a very handy forum!</p>
]]></content:encoded>
			<wfw:commentRss>http://ianwinter.co.uk/2010/02/06/phatnoise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asynchronous Tracking with Google</title>
		<link>http://ianwinter.co.uk/2009/12/02/asynchronous-tracking-with-google/</link>
		<comments>http://ianwinter.co.uk/2009/12/02/asynchronous-tracking-with-google/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 13:43:07 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tracking]]></category>

		<guid isPermaLink="false">http://ianwinter.co.uk/?p=1103</guid>
		<description><![CDATA[Google Analytics has had its latest update by now allowing asynchronous tracking cools. Pretty neat and also useful if you&#8217;re suffering or concerned on page load times. Interesting to see how it would work with multiple GA accounts, but, in theory should be easy to tweak. http://code.google.com/apis/analytics/docs/tracking/asyncTracking.htm]]></description>
			<content:encoded><![CDATA[<p>Google Analytics has had its latest update by now allowing asynchronous tracking cools. Pretty neat and also useful if you&#8217;re suffering or concerned on page load times. Interesting to see how it would work with multiple GA accounts, but, in theory should be easy to tweak.</p>
<p><a href="http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html">http://code.google.com/apis/analytics/docs/tracking/asyncTracking.htm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ianwinter.co.uk/2009/12/02/asynchronous-tracking-with-google/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ruby Enterprise Install</title>
		<link>http://ianwinter.co.uk/2009/11/09/ruby-enterprise-install/</link>
		<comments>http://ianwinter.co.uk/2009/11/09/ruby-enterprise-install/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 13:31:41 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://ianwinter.co.uk/?p=1100</guid>
		<description><![CDATA[Trying to install Ruby Enterprise on a fresh RHEL5 64 bit box this morning and hit a few issues. Initially just the standard install requests for gcc, gcc-c++, readline-devel, openssl-devel and zlib-devel. They all installed fine, but, when I tried running the installer I got an error like this: In file included from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/algorithm:65, from [...]]]></description>
			<content:encoded><![CDATA[<p>Trying to install Ruby Enterprise on a fresh RHEL5 64 bit box this morning and hit a few issues. Initially just the standard install requests for gcc, gcc-c++, readline-devel, openssl-devel and zlib-devel. They all installed fine, but, when I tried running the installer I got an error like this:</p>
<pre class="brush: bash;">In file included from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/algorithm:65,
from src/tcmalloc.cc:112:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algobase.h:64:28: error: bits/c++config.h: No such file or directory
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algobase.h:69,
from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/algorithm:65,
from src/tcmalloc.cc:112:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/iosfwd:45:29: error: bits/c++locale.h: No such file or directory
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/iosfwd:46:25: error: bits/c++io.h: No such file or directory
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/memory:54,
from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_tempbuf.h:64,
from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:66,
from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/algorithm:68,
from src/tcmalloc.cc:112:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/allocator.h:52:31: error: bits/c++allocator.h: No such file or directory
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.h:45,
from /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/string:52,
from src/base/commandlineflags.h:52,
from src/tcmalloc.cc:114:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/atomicity.h:38:30: error: bits/atomic_word.h: No such file or directory
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/allocator.h:82: error: expected template-name before ‘&amp;lt;’ token
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/allocator.h:82: error: expected `{' before ‘&amp;lt;’ token
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/allocator.h:82: error: expected unqualified-id before ‘&amp;lt;’ token
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h: In function ‘void std::random_shuffle(_RandomAccessIterator, _RandomAccessIterator)’:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_algo.h:1906: error: ‘rand’ is not a member of ‘std’
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/atomicity.h: At global scope:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/atomicity.h:44: error: expected constructor, destructor, or type conversion before ‘__exchange_and_add’
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/atomicity.h:48: error: expected ‘,’ or ‘...’ before ‘*’ token
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.h:150: error: ‘_Atomic_word’ does not name a type
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.h: In member function ‘void std::basic_string&amp;lt;_CharT, _Traits, _Alloc&amp;gt;::_Rep::_M_dispose(const _Alloc&amp;amp;)’:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.h:232: error: ‘__exchange_and_add’ is not a member of ‘__gnu_cxx’
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.h: In member function ‘typename _Alloc::rebind&amp;lt;_CharT&amp;gt;::other::size_type std::basic_string&amp;lt;_CharT, _Traits, _Alloc&amp;gt;::_M_check(typename _Alloc::rebind&amp;lt;_CharT&amp;gt;::other::size_type, const char*) const’:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.h:306: error: there are no arguments to ‘__N’ that depend on a template parameter, so a declaration of ‘__N’ must be available
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.h:306: error: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.h: In member function ‘void std::basic_string&amp;lt;_CharT, _Traits, _Alloc&amp;gt;::_M_check_length(typename _Alloc::rebind&amp;lt;_CharT&amp;gt;::other::size_type, typename _Alloc::rebind&amp;lt;_CharT&amp;gt;::other::size_type, const char*) const’:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.h:314: error: there are no arguments to ‘__N’ that depend on a template parameter, so a declaration of ‘__N’ must be available
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.h: In member function ‘typename _Alloc::rebind&amp;lt;_CharT&amp;gt;::other::const_reference std::basic_string&amp;lt;_CharT, _Traits, _Alloc&amp;gt;::at(typename _Alloc::rebind&amp;lt;_CharT&amp;gt;::other::size_type) const’:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.h:726: error: tnction ‘typename _Alloc::rebind&amp;lt;_CharT&amp;gt;::other::const_reference std::basic_string&amp;lt;_CharT, _Traits, _Alloc&amp;gt;::at(typename _Alloc::rebind&amp;lt;_CharT&amp;gt;::other::size_type) const’:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.h:726: error: there are no arguments to ‘__N’ that depend on a template parameter, so a declaration of ‘__N’ must be available
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.h: In member function ‘typename _Alloc::rebind&amp;lt;_CharT&amp;gt;::other::reference std::basic_string&amp;lt;_CharT, _Traits, _Alloc&amp;gt;::at(typename _Alloc::rebind&amp;lt;_CharT&amp;gt;::other::size_type)’:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.h:745: error: there are no arguments to ‘__N’ that depend on a template parameter, so a declaration of ‘__N’ must be available
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.tcc: In static member function ‘static _CharT* std::basic_string&amp;lt;_CharT, _Traits, _Alloc&amp;gt;::_S_construct(_InIterator, _InIterator, const _Alloc&amp;amp;, std::forward_iterator_tag)’:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.tcc:145: error: there are no arguments to ‘__N’ that depend on a template parameter, so a declaration of ‘__N’ must be available
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.tcc: In static member function ‘static typename std::basic_string&amp;lt;_CharT, _Traits, _Alloc&amp;gt;::_Rep* std::basic_string&amp;lt;_CharT, _Traits, _Alloc&amp;gt;::_Rep::_S_create(typename _Alloc::rebind&amp;lt;_CharT&amp;gt;::other::size_type, typename _Alloc::rebind&amp;lt;_CharT&amp;gt;::other::size_type, const _Alloc&amp;amp;)’:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/basic_string.tcc:533: error: there are no arguments to ‘__N’ that depend on a template parameter, so a declaration</pre>
<p>The fix was two steps, first a simple install of libstdc++-devel then follow the <a href="http://www.rubyenterpriseedition.com/documentation.html#_step_3_install_tcmalloc">instructions </a>to install tcmalloc which is required. Odd that on a 32 bit system it installed straight away.</p>
]]></content:encoded>
			<wfw:commentRss>http://ianwinter.co.uk/2009/11/09/ruby-enterprise-install/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MSIE SSL Oddness</title>
		<link>http://ianwinter.co.uk/2009/10/16/msie-ssl-oddness/</link>
		<comments>http://ianwinter.co.uk/2009/10/16/msie-ssl-oddness/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 14:09:41 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ERROR_INTERNET_SECURITY_CHANNEL_ERROR]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[msie]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://ianwinter.co.uk/?p=1083</guid>
		<description><![CDATA[Internet Explorer strikes again, sometimes. In Chrome, Firefox and Safari the problem doesn&#8217;t present. On a couple of webservers in a cluster we recently noticed the following type of error being returned randomly on images, CSS and JavaScript files when calling the page via SSL. GET ERROR_INTERNET_SECURITY_CHANNEL_ERROR image/gif https://www.domain.com/path/to/image.gif Now the majority of our SSL [...]]]></description>
			<content:encoded><![CDATA[<p>Internet Explorer strikes again, sometimes. In Chrome, Firefox and Safari the problem doesn&#8217;t present. On a couple of webservers in a cluster we recently noticed the following type of error being returned randomly on images, CSS and JavaScript files when calling the page via SSL.</p>
<p><code>GET ERROR_INTERNET_SECURITY_CHANNEL_ERROR image/gif https://www.domain.com/path/to/image.gif<br />
</code></p>
<p>Now the majority of our SSL certificates for the site in question are server out via a SSL accelerator on our Cisco LBAL&#8217;s but this site wasn&#8217;t. It was still using a cert on the local box. Having dug deeper I noticed that a couple of the servers had the following lines of code in whereas all the others didn&#8217;t. Due to the load balancing that solves the randomness side of it.</p>
<p><code>AddType application/x-x509-ca-cert .crt<br />
AddType application/x-pkcs7-crl    .crl<br />
SSLPassPhraseDialog  builtin<br />
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)<br />
SSLSessionCacheTimeout  300<br />
SSLMutex default<br />
SSLRandomSeed startup file:/dev/urandom  256<br />
SSLRandomSeed connect builtin<br />
SSLCryptoDevice builtin</code></p>
<p>Something in those lines of code causes the issues, I&#8217;m stabbing in the dark that it&#8217;s the session cache as none of the others would seem to be causing the problem. I&#8217;ve not tried line by line to find the offender.</p>
<p>Hopefully that will help someone out as I found lots of results in Google but not many solutions!</p>
]]></content:encoded>
			<wfw:commentRss>http://ianwinter.co.uk/2009/10/16/msie-ssl-oddness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get a domain from a URL</title>
		<link>http://ianwinter.co.uk/2009/10/07/get-a-domain-from-a-url/</link>
		<comments>http://ianwinter.co.uk/2009/10/07/get-a-domain-from-a-url/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 16:11:14 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[coldfusion]]></category>

		<guid isPermaLink="false">http://ianwinter.co.uk/?p=1077</guid>
		<description><![CDATA[Been looking for a function in ColdFusion to get the root domain from a url. There are a few but none actually cope with the many combinations. This function by no means copes with every combination however it does cover quite a lot. Comments inline indicate which domains the rules handle. &#60;cffunction name="getRootDomain" returntype="string" output="no" [...]]]></description>
			<content:encoded><![CDATA[<p>Been looking for a function in ColdFusion to get the root domain from a url. There are a few but none actually cope with the many combinations. This function by no means copes with every combination however it does cover quite a lot. Comments inline indicate which domains the rules handle.</p>
<p><code><br />
&lt;cffunction name="getRootDomain" returntype="string" output="no" hint="Take a URL and get the domain from it."&gt;<br />
	&lt;cfargument name="url" type="string" required="true"&gt;<br />
	&lt;cfset var dots = listLen(arguments.url,".")&gt;<br />
	&lt;/cfset&gt;&lt;cfset var domain = ""&gt;<br />
	&lt;/cfset&gt;&lt;cfset host = arguments.url&gt;<br />
	&lt;!--- host.com, host.biz, host.ly ---&gt;<br />
	&lt;cfif dots eq 2&gt;<br />
		&lt;cfset domain = host&gt;<br />
	&lt;/cfset&gt;&lt;/cfif&gt;<br />
	&lt;cfif dots eq 3&gt;<br />
		&lt;!--- www.host.com, sub.host.com, www.host.mobi, www.host.ly, del.icio.us ---&gt;<br />
		&lt;/cfif&gt;&lt;cfif listfirst(host,".") eq "www" or<br />
			((len(listgetat(host,3,".")) eq 3 or len(listgetat(host,3,".")) eq 2) and len(listgetat(host,"2",".")) gte 3)&gt;<br />
			&lt;cfset domain = listdeleteat(host,1,".")&gt;<br />
		&lt;/cfset&gt;&lt;/cfif&gt;<br />
		&lt;!--- host.co.uk, host.com.za ---&gt;<br />
		&lt;cfif (len(listgetat(host,3,".")) eq 2 and (len(listgetat(host,2,".")) eq 2) or len(listgetat(host,2,".")) eq 3)&gt;<br />
			&lt;cfset domain = host&gt;<br />
		&lt;/cfset&gt;&lt;/cfif&gt;<br />
	&lt;cfif dots eq 4&gt;<br />
		&lt;!--- www.host.ltd.uk, www.host.co.uk ---&gt;<br />
		&lt;/cfif&gt;&lt;cfif len(listgetat(host,4,".")) eq 2 and (len(listgetat(host,3,".")) eq 2 or len(listgetat(host,3,".")) eq 3)&gt;<br />
			&lt;cfset domain = listdeleteat(host,1,".")&gt;<br />
		&lt;/cfset&gt;&lt;/cfif&gt;<br />
		&lt;!--- www.sub.host.com, sub.sub.host.com ---&gt;<br />
		&lt;cfif len(listgetat(host,4,".")) eq 3 and len(listgetat(host,4,".")) gte 3&gt;<br />
			&lt;cfset domain = listdeleteat(listdeleteat(host,1,"."),1,".")&gt;<br />
		&lt;/cfset&gt;&lt;/cfif&gt;<br />
	&lt;cfif dots eq 5&gt;<br />
		&lt;!--- sub.sub.host.co.uk, www.sub.host.co.uk, www.sub.host.com.za ---&gt;<br />
		&lt;/cfif&gt;&lt;cfif len(listgetat(host,5,".")) eq 2 and (len(listgetat(host,4,".")) eq 2 or len(listgetat(host,4,".")) eq 3)&gt;<br />
			&lt;cfset domain = listdeleteat(listdeleteat(host,1,"."),1,".")&gt;<br />
		&lt;/cfset&gt;&lt;/cfif&gt;<br />
	&lt;cfreturn domain /&gt;<br />
&lt;/cfset&gt;&lt;/cfargument&gt;&lt;/cffunction&gt;<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://ianwinter.co.uk/2009/10/07/get-a-domain-from-a-url/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ColdFusion Leap Year bug still there</title>
		<link>http://ianwinter.co.uk/2009/07/13/coldfusion-leap-year-bug-still-there/</link>
		<comments>http://ianwinter.co.uk/2009/07/13/coldfusion-leap-year-bug-still-there/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 15:45:48 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[coldfusion]]></category>

		<guid isPermaLink="false">http://ianwinter.co.uk/?p=1071</guid>
		<description><![CDATA[So just got ColdFusion 9 Beta 2 up and running and my old leap year bug is still there. I&#8217;ve posted a public bug, #78713 now the tracker has been launched. It effects 7, 8 &#38; 9 so hopefully it&#8217;ll get fixed!]]></description>
			<content:encoded><![CDATA[<p>So just got ColdFusion 9 Beta 2 up and running and my old <a href="http://ianwinter.co.uk/2008/02/28/coldfusion-possible-leap-year-bug/">leap year bug</a> is still there. I&#8217;ve posted a public bug, <a href="http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html#bugId=78713" target="_blank">#78713</a> now the tracker has been launched. It effects 7, 8 &amp; 9 so hopefully it&#8217;ll get fixed!</p>
]]></content:encoded>
			<wfw:commentRss>http://ianwinter.co.uk/2009/07/13/coldfusion-leap-year-bug-still-there/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Releases</title>
		<link>http://ianwinter.co.uk/2009/07/13/new-releases/</link>
		<comments>http://ianwinter.co.uk/2009/07/13/new-releases/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 12:17:26 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[coldfusion]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://ianwinter.co.uk/?p=1068</guid>
		<description><![CDATA[A few new releases for you to catch up on. Firstly WordPress 2.8.1 &#8211; essentially a bug fix and security release by the look of it but worth doing anyway, quick note that if you get stuck with a maintenance page check in your web root for a file called .maintenance, just rename that and [...]]]></description>
			<content:encoded><![CDATA[<p>A few new releases for you to catch up on. Firstly <a href="http://wordpress.org/development/2009/07/wordpress-2-8-1/" target="_blank">WordPress 2.8.1</a> &#8211; essentially a bug fix and security release by the look of it but worth doing anyway, quick note that if you get stuck with a maintenance page check in your web root for a file called .maintenance, just rename that and the site will come back.</p>
<p>Next up two public beta&#8217;s from Adobe. <a href="http://labs.adobe.com/technologies/coldfusion9/" target="_blank">ColdFusion 9</a> boasting some new useful and some not so useful/utterly pointless changes and the <a href="http://labs.adobe.com/technologies/coldfusionbuilder/" target="_blank">ColdFusion Builder</a> which can either be standalone or as a plugin to Eclipse.</p>
]]></content:encoded>
			<wfw:commentRss>http://ianwinter.co.uk/2009/07/13/new-releases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
