<?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>Jozza.net</title>
	<atom:link href="http://www.jozza.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jozza.net/blog</link>
	<description>The Blog of Joel Cass. Cycling, Programming, Fishkeeping, Public Transport, Armchair Philosophy, whatever.</description>
	<lastBuildDate>Mon, 12 Nov 2012 23:33:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Month, day, and year are required&#8230;</title>
		<link>http://www.jozza.net/blog/month-day-and-year-are-required/513/</link>
		<comments>http://www.jozza.net/blog/month-day-and-year-are-required/513/#comments</comments>
		<pubDate>Mon, 12 Nov 2012 23:14:20 +0000</pubDate>
		<dc:creator>joel.cass</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.jozza.net/blog/?p=513</guid>
		<description><![CDATA[I had a bit of a brain fart earlier this week whilst trying to diagnose some SELinux issues. I had tried everything. Scanned the messages, audit log, used some tools like audit2allow, and for some reason I just could not get apache to talk to python. SELinux was blocking it, with nothing recorded anywhere. In [...]]]></description>
			<content:encoded><![CDATA[<p>I had a bit of a brain fart earlier this week whilst trying to diagnose some SELinux issues. I had tried everything. Scanned the messages, audit log, used some tools like audit2allow, and for some reason I just could not get apache to talk to python. SELinux was blocking it, with nothing recorded anywhere. In the end I had to give up and set SELinux to permissive.</p>
<p>At any rate, I was banging my head against a wall with the ausearch program:</p>
<p><a href="http://www.jozza.net/blog/wp-content/uploads/2012/11/help.png"><img src="http://www.jozza.net/blog/wp-content/uploads/2012/11/help.png" alt="ausearch date format unknown" title="ausearch date format unknown" width="676" height="399" class="aligncenter size-full wp-image-514" /></a></p>
<p>I was almost screaming, pulling my hair out! Geez, the response is so cryptic, the month, day, and year are there, I add the time and then it complains the time is not there! <strong><em>FFS! What date format do you want!!!!</em></strong> Gahhh!</p>
<p>Calm down Joel&#8230; Ok, so ausearch &#8211;help reveals nothing. What about man ausearch. Ah:</p>
<p><a href="http://www.jozza.net/blog/wp-content/uploads/2012/11/help_man1.png"><img src="http://www.jozza.net/blog/wp-content/uploads/2012/11/help_man1.png" alt="man ausearch" title="man ausearch" width="643" height="389" class="aligncenter size-full wp-image-516" /></a></p>
<p>So it should be mm/dd/yyyy, not yyyy/mm/dd or dd/mm/yyyy. It&#8217;s making sense now. But why don&#8217;t they just state the format in the error message? It&#8217;s funny how the web is so focused on UX yet even the latest commands are stuck in the dark ages.</p>
<p>In the end it turned out that execute access was being blocked when python was run under the apache context, this was because I had compiled a special version of python to run with one of our legacy apps. A simple call to chcon to match the context of my compiled python with the installed python resolved the issue. It&#8217;s funny how neither audit2allow or scanning the messages and audit log showed the error I was looking for.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jozza.net/blog/month-day-and-year-are-required/513/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sydney to Wollongong 2012</title>
		<link>http://www.jozza.net/blog/sydney-to-wollongong-2012/525/</link>
		<comments>http://www.jozza.net/blog/sydney-to-wollongong-2012/525/#comments</comments>
		<pubDate>Mon, 05 Nov 2012 23:30:37 +0000</pubDate>
		<dc:creator>joel.cass</dc:creator>
				<category><![CDATA[Cycling]]></category>

		<guid isPermaLink="false">http://www.jozza.net/blog/?p=525</guid>
		<description><![CDATA[It&#8217;s over once again, and a big thanks to all who donated towards such a worthy cause. This year I have videotaped the entire thing and made a short movie about it. This is my first venture into movie making so excuse me if it&#8217;s a bit rusty:

This was a great ride and was enjoyed [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s over once again, and a big thanks to all who donated towards such a worthy cause. This year I have videotaped the entire thing and made a short movie about it. This is my first venture into movie making so excuse me if it&#8217;s a bit rusty:</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/FXyToEJTaP8" frameborder="0" allowfullscreen></iframe></p>
<p>This was a great ride and was enjoyed by all. It was great to be part of an excellent team. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.jozza.net/blog/sydney-to-wollongong-2012/525/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abusive bus drivers and ignorant call centres &#8211; does anyone know the road rules?</title>
		<link>http://www.jozza.net/blog/abusive-bus-drivers-and-ignorant-call-centres-does-anyone-know-the-road-rules/509/</link>
		<comments>http://www.jozza.net/blog/abusive-bus-drivers-and-ignorant-call-centres-does-anyone-know-the-road-rules/509/#comments</comments>
		<pubDate>Fri, 26 Oct 2012 06:55:17 +0000</pubDate>
		<dc:creator>joel.cass</dc:creator>
				<category><![CDATA[Cycling]]></category>

		<guid isPermaLink="false">http://www.jozza.net/blog/?p=509</guid>
		<description><![CDATA[ It&#8217;s been a while since I posted here, mainly because I&#8217;ve either been too busy with work, away for holidays, or riding my bike in whatever free time I have. Part of my free time is spent on the commute to/from work. These days I&#8217;ve been trying to regain my fitness by riding to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jozza.net/blog/wp-content/uploads/2012/10/2000ST-2012-11-07_08-00.jpg"><img src="http://www.jozza.net/blog/wp-content/uploads/2012/10/2000ST-2012-11-07_08-00-300x168.jpg" alt="Ignorant Bus driver" title="Ignorant Bus driver" width="300" height="168" align="left" class="alignleft size-medium wp-image-519" /></a> It&#8217;s been a while since I posted here, mainly because I&#8217;ve either been too busy with work, away for holidays, or riding my bike in whatever free time I have. Part of my free time is spent on the commute to/from work. These days I&#8217;ve been trying to regain my fitness by riding to work, hence I haven&#8217;t had the capacity to post here.</p>
<p>Today is different. I&#8217;m catching a train and it&#8217;s because I&#8217;m still a little shaken from what happened yesterday. On the ride into work I was tailgated and abused by a sydney bus driver whilst I was riding into work. </p>
<p>Usually I do not have a problem with bus drivers, they are very courteous and usually once I pass them I never see them again anyway, due to the large number of stops on this road. However, yesterday was different. I was riding down Victoria Road toward the city. Things had been going pretty swell so far. I hit iron cove bridge and continued past the traffic at a high rate of speed, probably hitting around 45-50km/h for most of the stretch.</p>
<p>I could hear a honking in the distance. I figured it must have been one of those drivers that wants to get around the traffic by using the bus lane. I look back again and the number of cars seems to have dropped off but I still hear the honking. I pass an intersection and the last of the cars behind me turns off so it&#8217;s just a bus behind me now. Yet I still hear the honking. </p>
<p>I come to a stop behind another bus that takes off, I follow that bus and then the honking begins again. This time it sounds very close. I look behind me and there is a bus right on my tail. Literally inches away &#8211; perhaps 6-12 inches. I jump in shock, figuring that my life is in danger so I pull off and let the driver pass. Still he is honking at me. </p>
<p>He pulls over to pick up passengers at the top of the hill so I confront him and ask what his problem is. He states, &#8220;the bus lane is for buses, the bike lane is for bikes&#8221; or something like that with a few curse words thrown in. I ask him how the hell he got his license because knowing the rights of other road users is part of the test. I get no reply, I cannot remember what I said after this but by now I was quite upset so it was probably not very pleasant. I flip him the finger and continue on my way. He&#8217;s still honking.</p>
<p>I pull over and decide to report him. The lady at 131500 starts taking down details and then says something like &#8220;I&#8217;m pretty sure you&#8217;re not allowed to ride in bus lanes during peak hours&#8221;! I was truly shocked to hear this. I ask her to check. I&#8217;m sitting there for quite a while waiting for a reply. She comes back simply with an &#8220;I don&#8217;t know&#8221; answer. I continue to report exactly what happened as well as the bus number and my contact details, wanting the depot to contact me. 131500 lady says I can contact RTA for the road rules.</p>
<p>I call the RTA number 132243, and am greeted by another helpful lady, who once again thinks that bicycles shouldn&#8217;t be allowed to ride in bus lanes. I challenge this response and we start going through the legislation. </p>
<p>Road rules 2008, part 158, 2, c, i:</p>
<blockquote><p>&#8220;158 Exceptions to driving in special purpose lanes etc<br />
(2) The driver of <strong>any vehicle may drive in a bicycle lane</strong>, bus lane, tram lane, transit lane or truck lane <strong>if</strong>: (c) the driver is (i) <strong>riding a bicycle in a bus lane</strong> (other than a bus only lane), tram lane, transit lane or truck lane&#8221;
</p></blockquote>
<p>Oh, look at this, it seems cyclists <strong>can</strong> ride in bus lanes, and there does not seem to be any limitations on timing or circumstance. Reading this for what it is, it groups bicycles with buses, taxis, and motorbikes. So if a bicycle is not allowed in the bus lane, neither is a bus!</p>
<p>By now I&#8217;m truly pissed off. I want to bury this bus driver, I&#8217;m going to contact the police. I call them on 131444 and start to run through what happened. And what am I confronted with? &#8220;Oh, I&#8217;m pretty sure you&#8217;re not allowed to ride in bus lanes&#8221; &#8211; what the hell!!! I start going through the legislation, after which the lady says, &#8220;Oh, sorry I can not offer you any advice on that&#8221;, and then a couple of sentences later &#8220;but if you ever need any help on anything, you can call our number anytime.&#8221;. Help? define help! Were you helpful? Hell no. Not calling that number again.</p>
<p>So now I wait for a response from the depot. And maybe I will see if I can drop by a police station and log a formal report, regardless of the &#8220;legality&#8221; &#8211; I felt threatened and my life endangered. This is a huge failure of all NSW government departments I had contacted &#8211; it shows that there is a huge lack of education in all departments regarding the rights of road users, especially cyclists. Something seriously needs to be done about this.</p>
<p><em><strong>Update: </strong>I was involved in another incident a week later, where a bus driver tried running me off the road (pictured). After this was reported the depot got back to me right away and unfortunately because the industry is so tightly unionized, the investigator can&#8217;t really do much, so he recommended I report them to the police. I called 131 444 again and this time got someone a bit more understanding. I still had to report it in person to a police office.</p>
<p>The people at the police office seemed a bit dismissive and needed some persuasion. I doubt much will be done, apparently the tapes are only kept for 2 weeks and it&#8217;s past that time now for the first incident. If anything at least a few drivers will learn that they can&#8217;t pick on cyclists.</p>
<p>And the shared use path following Victoria Road on the Iron Cove bridge is still closed.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jozza.net/blog/abusive-bus-drivers-and-ignorant-call-centres-does-anyone-know-the-road-rules/509/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fuzzy result matching in Google &#8211; it sucks and there&#8217;s no way to stop it.</title>
		<link>http://www.jozza.net/blog/google-sucks/497/</link>
		<comments>http://www.jozza.net/blog/google-sucks/497/#comments</comments>
		<pubDate>Mon, 16 Jul 2012 23:41:31 +0000</pubDate>
		<dc:creator>joel.cass</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.jozza.net/blog/?p=497</guid>
		<description><![CDATA[Lately I&#8217;ve been having a lot of trouble finding the correct results on google. For example, a few weeks ago I wanted to know what is the quietest carriage (e.g. the carriage with the least number of people) on a peak hour cityrail train. So I search &#8220;what is the quietest carriage cityrail train&#8221; what [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been having a lot of trouble finding the correct results on google. For example, a few weeks ago I wanted to know what is the quietest carriage (e.g. the carriage with the least number of people) on a peak hour cityrail train. So I search &#8220;what is the quietest carriage cityrail train&#8221; what are my results? Well, they completely ignored my request and figured I was looking for quiet carriages, not &#8220;quietest&#8221; carriages. So I get spammed with propaganda about quiet carriages.</p>
<a href="http://www.jozza.net/blog/wp-content/uploads/2012/07/google_sucks_1.png"><img src="http://www.jozza.net/blog/wp-content/uploads/2012/07/google_sucks_1-300x244.png" alt="Stupid google search results" title="Stupid google search results" width="300" height="244" class="size-medium wp-image-498" /></a>
<p>Next, I tried searching &#8220;what is the +++++&#8221;quietest&#8221; carriage cityrail train&#8221; &#8211; no effect, same results..</p>
<a href="http://www.jozza.net/blog/wp-content/uploads/2012/07/google_sucks_2.png"><img src="http://www.jozza.net/blog/wp-content/uploads/2012/07/google_sucks_2-300x217.png" alt="Google shitty search results" title="Google shitty search results" width="300" height="217" class="size-medium wp-image-499" /></a>
<p>So today after during my morning ride I noticed a light squeaking noise from the bottom bracket, so I searched for &#8220;squeaky bottom bracket&#8221;.. It decided to show results for &#8220;creaky bottom bracket&#8221;. I then try &#8220;+&#8221;squeaky&#8221; bottom bracket&#8221;. Same thing.</p>
<a href="http://www.jozza.net/blog/wp-content/uploads/2012/07/google_sucks_3.png"><img src="http://www.jozza.net/blog/wp-content/uploads/2012/07/google_sucks_3-300x240.png" alt="Google is not matching my keywords" title="Google is not matching my keywords" width="300" height="240" class="size-medium wp-image-507" /></a>
<p>The fix? Searching for &#8220;+&#8221;squeaky&#8221; bottom bracket -creaky&#8221; removed the offending results. But this is just plain stupid, this means that my results may not include pages that contain squeaky and creaky &#8211; what if the page I want contains both keywords?</p>
<a href="http://www.jozza.net/blog/wp-content/uploads/2012/07/google_sucks_4.png"><img src="http://www.jozza.net/blog/wp-content/uploads/2012/07/google_sucks_4-300x224.png" alt="Google tries in vain to render my search query" title="Google tries in vain to render my search query" width="300" height="224" class="size-medium wp-image-501" /></a>
<p>This reminds me of the days of the &#8220;excite&#8221; search engine &#8211; which was actually pretty good, until they started making the results fuzzy by just showing anything that matched <strong>any</strong> of your keywords. Then it just turned to shit. And where are they now? Gone.</p>
<p>Google, I hope you get your act together. I love it is free to search the web and lets face it, up to a few months ago the results were pretty good but it&#8217;s turning to rubbish. Even just having an option to disabled fuzzy searching would do for most of us!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jozza.net/blog/google-sucks/497/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using the SmarterStats Query API service in ColdFusion</title>
		<link>http://www.jozza.net/blog/using-the-query-api-service-in-smarterstats/486/</link>
		<comments>http://www.jozza.net/blog/using-the-query-api-service-in-smarterstats/486/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 05:53:39 +0000</pubDate>
		<dc:creator>joel.cass</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.jozza.net/blog/?p=486</guid>
		<description><![CDATA[I must admit that it&#8217;s been a while since I&#8217;ve posted anything in this blog. To be honest, it&#8217;s mainly because there&#8217;s been nothing remarkable to post about. Nothing anyone would benefit from knowing, really.
It&#8217;s even to the point that my role involves much more than just programming these days &#8211; recently I have been [...]]]></description>
			<content:encoded><![CDATA[<p>I must admit that it&#8217;s been a while since I&#8217;ve posted anything in this blog. To be honest, it&#8217;s mainly because there&#8217;s been nothing remarkable to post about. Nothing anyone would benefit from knowing, really.</p>
<p>It&#8217;s even to the point that my role involves much more than just programming these days &#8211; recently I have been involved in reviewing web statistics packages in the hope of landing on a solution. Well, the solution is found in SmarterStats &#8211; quite a remarkable web statistics package that does most things. It even has an API.</p>
<p>About that API &#8211; it has a largely undocumented &#8216;Query&#8217; webservice. It is not enabled by default, but once enabled it allows you to query the statistics data via a web service.</p>
<p>To enable the service, you will need to create an authorisation key. A good one to use is a UUID. Then, you need to define that key in [SmarterStats_Root]\MRS\App_Data\Config\AppConfig.xml:</p>
<pre class="brush_xml">
    &lt;LocalHostDeleted&gt;false&lt;/LocalHostDeleted&gt;
++  &lt;WebServiceAuthorizationCode&gt;nnnnnnnn-nnnn-nnnn-nnnnnnnnnnnnnnnn&lt;/WebServiceAuthorizationCode&gt;
    &lt;ExpirationNotification /&gt;
</pre>
<p>Then you can access the service via http://localhost:9999/Services/Query.asmx, WSDL path http://localhost:9999/Services/Query.asmx?wsdl</p>
<p>The query service uses some form of psuedo-sql that runs a query against what looks like a function result, ie. <code>SELECT * FROM fTableName(siteId, dateFrom, dateTo<em>, maxItems, extraParam**</em>) WHERE blah=blah ORDER BY blah</code>. </p>
<p><em>** Parameters maxItems and extraParam are undocumented and were found by chance. MaxItems is pretty obvious, it&#8217;s the number of records to retrieve. Use extraParam to filter certain queries by page. Only certain queries support the extra parameter so try them out.</em></p>
<p>A list of tables is available in the file [SmarterStats_Root]\MRS\App_Data\Config\ReportConfig.xml &#8211; you can copy this to your development directory and then use it to generate a list of available reports.</p>
<p>Here are some example reports you can call using the web service (assume site id = 1):</p>
<ul>
<li>Get Daily Site Traffic
<pre class="brush_sql">SELECT * FROM fActivityTotalTrend(1, '2012-01-01T00:00:00', '2012-01-27T00:00:00', 50)</pre>
</li>
<li>Get Daily traffic to home page
<pre class="brush_sql">SELECT * FROM fDailyActivityForFile(1, '2012-01-01T00:00:00', '2012-01-27T00:00:00', 20, '/')</pre>
</li>
<li>All pages, ordered by popularity
<pre class="brush_sql">SELECT * FROM fTopPages(1, '2012-01-01T00:00:00', '2012-01-27T00:00:00')</pre>
</li>
<li>Top 10 most popular pages
<pre class="brush_sql">SELECT * FROM fTopPages(1, '2012-01-01T00:00:00', '2012-01-27T00:00:00', 10)</pre>
</li>
<li>Web browsers
<pre class="brush_sql">SELECT * FROM fBrowsers(1, '2012-01-01T00:00:00', '2012-01-27T00:00:00')</pre>
</li>
<li>Visitors by City
<pre class="brush_sql">SELECT * FROM fGeographicCountryByCity(1, '2012-01-01T00:00:00', '2012-01-27T00:00:00')</pre>
</li>
<li>Visitors by City, to a certain URL
<pre class="brush_sql">SELECT * FROM fGeographicsByFile(1, '2012-01-01T00:00:00', '2012-01-27T00:00:00', 20, '/some/url/')</pre>
</li>
</ul>
<p>Calling the web service from coldfusion is pretty easy:</p>
<pre class="brush_coldfusion">
&lt;cfsetting enablecfoutputonly="true"&gt;

&lt;!--- 'static' service parameters ---&gt;
&lt;cfset strUsername = "username"&gt;
&lt;cfset strPassword = "password"&gt;
&lt;cfset strAuthCode = "nnnnnnnn-nnnn-nnnn-nnnnnnnnnnnnnnnn"&gt;
&lt;cfset strWebServiceUrl = "http://127.0.0.1:9999/Services/Query.asmx?wsdl"&gt;

&lt;!--- initialise web service ---&gt;
&lt;cfset objWebService = createObject("webservice", strWebServiceUrl)&gt;

&lt;!--- query parameters (you can pass these in from a form) ---&gt;
&lt;cfset strReport = "fTopPages"&gt;
&lt;cfset numSiteId = 1&gt;
&lt;cfset dateFrom = createDate(year(now()), month(now()), 1)&gt;
&lt;cfset dateTo = createDate(year(now()), month(now()), day(now()))&gt;
&lt;cfset numRows = 20&gt;

&lt;!--- compose query ---&gt;
&lt;cfset strQuery = "SELECT * FROM #strReport#(#numSiteId#, '#dateformat(dateFrom,'yyyy-mm-dd')#T00:00:00', '#dateformat(dateTo,'yyyy-mm-dd')#T00:00:00')"&gt;

&lt;!--- execute query ---&gt;
&lt;cfset dsResult = objWebservice.executeQuery(strUsername, strPassword, strAuthCode, numSiteId, strQuery, numRows)&gt;

&lt;!--- convert to query ---&gt;
&lt;cfset qryResult = datasetToQuery(dsResult, 'Table1')&gt;&lt;!--- version 7: it is 'Table1', version 6: it is 'results' ---&gt;

&lt;!--- output result ---&gt;
&lt;cfdump var="#qryResult#"&gt;

&lt;!--- FUNCTION TO CONVERT .NET DATASET TO QUERY (added here for convenience - move to helper class) ---&gt;

&lt;cffunction name="datasetToQuery" access="public" returntype="query" output="false"&gt;
	&lt;cfargument type="any" name="dataset" required="true"&gt;
	&lt;cfargument type="string" name="tablename" required="true"&gt;

	&lt;!--- dataset has 2 nodes: 1) Column definitions 2) Data ---&gt;

	&lt;cfset var qryResult = ""&gt;
	&lt;cfset var lstColumns = ""&gt;
	&lt;cfset var lstTypes = ""&gt;
	&lt;cfset var aryDataset = ARGUMENTS.dataset.get_any()&gt;
	&lt;cfset var aryColumns = XmlSearch(aryDataset[1].getAsString(), "/xs:schema/xs:element[@name='#ARGUMENTS.tablename#']/xs:complexType/xs:sequence/xs:element")&gt;
	&lt;cfset var aryData = XmlSearch(aryDataset[2].getAsString(), "/diffgr:diffgram/NewDataSet/#ARGUMENTS.tablename#")&gt;
	&lt;cfset var i = 0&gt;
	&lt;cfset var c = 0&gt;

	&lt;!--- get columns ---&gt;
	&lt;cfloop from="1" to="#arrayLen(aryColumns)#" index="i"&gt;
		&lt;cfset lstColumns = listAppend(lstColumns, aryColumns[i].xmlAttributes.name)&gt;
		&lt;cfswitch expression="#aryColumns[i].xmlAttributes.type#"&gt;
			&lt;cfcase value="xs:double,xs:long"&gt;
				&lt;cfset lstTypes = listAppend(lstTypes, 'double')&gt;
			&lt;/cfcase&gt;
			&lt;cfcase value="xs:date"&gt;
				&lt;cfset lstTypes = listAppend(lstTypes, 'timestamp')&gt;
			&lt;/cfcase&gt;
			&lt;cfdefaultcase&gt;
				&lt;cfset lstTypes = listAppend(lstTypes, 'varchar')&gt;
			&lt;/cfdefaultcase&gt;
		&lt;/cfswitch&gt;
	&lt;/cfloop&gt;

	&lt;!--- create query object ---&gt;
	&lt;cfset qryResult = queryNew(lstColumns, lstTypes)&gt;

	&lt;!--- populate query ---&gt;
	&lt;cfloop from="1" to="#arrayLen(aryData)#" index="i"&gt;
		&lt;cfset queryAddRow(qryResult)&gt;
		&lt;cfloop from="1" to="#arrayLen(aryData[i].xmlChildren)#" index="c"&gt;
			&lt;cfset querySetCell(qryResult, aryData[i].xmlChildren[c].xmlName, aryData[i].xmlChildren[c].xmlText)&gt;
		&lt;/cfloop&gt;
	&lt;/cfloop&gt;

	&lt;cfreturn qryResult&gt;
&lt;/cffunction&gt;

&lt;cfsetting enablecfoutputonly="false"&gt;
</pre>
<p>All this was tested in SmarterStats 7.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jozza.net/blog/using-the-query-api-service-in-smarterstats/486/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sydney to Gong &#8211; a big thanks</title>
		<link>http://www.jozza.net/blog/sydney-to-gong-a-big-thanks/477/</link>
		<comments>http://www.jozza.net/blog/sydney-to-gong-a-big-thanks/477/#comments</comments>
		<pubDate>Sun, 06 Nov 2011 21:58:00 +0000</pubDate>
		<dc:creator>joel.cass</dc:creator>
				<category><![CDATA[Cycling]]></category>

		<guid isPermaLink="false">http://www.jozza.net/blog/sydney-to-gong-a-big-thanks/477/</guid>
		<description><![CDATA[
Sydney to gong is over again, and thank you all who have supported me and helped fundraise over $400. 
This year was different, as I wasnt riding alone this time, but instead as part of &#8220;team cellarbrations&#8221;, affiliated with the LACC and my previous employer, metcash. 
What also made this year different was the lack [...]]]></description>
			<content:encoded><![CDATA[<div align="center"><a href="http://www.jozza.net/blog/wp-content/uploads/2011/11/IMAG0018.jpg"><img src="http://www.jozza.net/blog/wp-content/uploads/2011/11/IMAG0018.jpg?w=600" alt="The Cellarbrations Team" title="The Cellarbrations Team" width="600" class="aligncenter size-full wp-image-482" /></a></div>
<p>Sydney to gong is over again, and thank you all who have supported me and helped fundraise over $400. </p>
<p>This year was different, as I wasnt riding alone this time, but instead as part of &#8220;team cellarbrations&#8221;, affiliated with the LACC and my previous employer, metcash. </p>
<p>What also made this year different was the lack of sleep, as it just happened that the Janet Jackson concert was the night before. With only 3 hours of sleep, it was a bit of a stretch for me.</p>
<p>At any rate, I managed to better last years&#8217; attempt, having arrived before 9am. According to the speedo it was about 2 hrs and 38 minutes. It was different riding in a team but just as enjoyable.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jozza.net/blog/sydney-to-gong-a-big-thanks/477/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sydney to Gong &#8211; It&#8217;s on again!</title>
		<link>http://www.jozza.net/blog/sydney-to-gong-its-on-again/470/</link>
		<comments>http://www.jozza.net/blog/sydney-to-gong-its-on-again/470/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 06:20:12 +0000</pubDate>
		<dc:creator>joel.cass</dc:creator>
				<category><![CDATA[Cycling]]></category>

		<guid isPermaLink="false">http://www.jozza.net/blog/?p=470</guid>
		<description><![CDATA[


  


It&#8217;s on again!
I have entered the 2011 MS Sydney to the Gong Bike Ride and have committed to fundraise $1000.00 in support of people living with Multiple Sclerosis. This year MS Australia aims to raise $4.5 Million through the event, and I want to play my part and &#8220;ride for a purpose&#8221;.
Multiple Sclerosis [...]]]></description>
			<content:encoded><![CDATA[<div style="float:left;width:310px;margin:0 10px 10px 0">
<!--[if IE]><br />
  <object width="300" height="465" type="application/x-shockwave-flash" quality="high" id="W4b7218c357385a5c"><param value="http://register.gongride.org.au/2011-Sydney-to-Gong-Ride/widget/Novel_Individual_Widget.swf?feed=http://register.gongride.org.au/2011-Sydney-to-Gong-Ride/widget/_feed.member.inc.php?id=3615" name="movie"/><![endif]--><br />
<!--[if !IE]><!--><br />
  <object width="300" height="465" type="application/x-shockwave-flash" id="W4b7218c357385a5c" data="http://register.gongride.org.au/2011-Sydney-to-Gong-Ride/widget/Novel_Individual_Widget.swf?feed=http://register.gongride.org.au/2011-Sydney-to-Gong-Ride/widget/_feed.member.inc.php?id=3615"><br />
<!--<![endif]--><param name="wmode" value="transparent"/><param name="allowScriptAccess" value="always"/><param name="allowNetworking" value="all"/></object>
</div>
<p>It&#8217;s on again!</p>
<p>I have entered the 2011 MS Sydney to the Gong Bike Ride and have committed to fundraise $1000.00 in support of people living with Multiple Sclerosis. This year MS Australia aims to raise $4.5 Million through the event, and I want to play my part and &#8220;ride for a purpose&#8221;.</p>
<p>Multiple Sclerosis is a disease of the central nervous system affecting more young adult Australians than any other neurological condition. Your donation will go directly towards providing a wide range of services and support to people living with MS. </p>
<p>Did you know?<br />
- The average age of diagnosis of MS is just 30 years<br />
- 3 times more women than men are affected by MS<br />
- An estimated 20,000 people in Australia have MS<br />
- There is no known cause or cure</p>
<p>Please take a moment to view my online fundraising web page and help me reach my goal. It&#8221;s quick and easy. You can donate securely online using your credit card by clicking on the link below:<br />
<a href="http://register.gongride.org.au/2011-Sydney-to-Gong-Ride/jozza81/e">http://register.gongride.org.au/2011-Sydney-to-Gong-Ride/jozza81/e</a> </p>
<p>All information is secure and all donations will be sent electronically to MS Australia ACT/NSW/VIC. A tax-deductible receipt will automatically be emailed to you once the donation is verified. </p>
<p>Your support is greatly appreciated.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jozza.net/blog/sydney-to-gong-its-on-again/470/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ColdFusion on Linux &#8211; Make sure your hostname is correct!</title>
		<link>http://www.jozza.net/blog/coldfusion-on-linux-make-sure-your-hostname-is-correct/467/</link>
		<comments>http://www.jozza.net/blog/coldfusion-on-linux-make-sure-your-hostname-is-correct/467/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 00:52:31 +0000</pubDate>
		<dc:creator>joel.cass</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.jozza.net/blog/?p=467</guid>
		<description><![CDATA[Recently I have been given the task to install ColdFusion on CentOS. Everything went well, Apache installed fine, related dependencies installed fine, even ColdFusion installed fine. Until I tried accessing the site, upon which I was presented with this error:

java.lang.NullPointerException
	at java.lang.String.indexOf(String.java:1733)
	at java.lang.String.indexOf(String.java:1715)
	at jrun.servlet.session.SessionService.getUrlSessionID(SessionService.java:1097)
	at jrun.servlet.ForwardRequest.getRequestedSessionId(ForwardRequest.java:426)
	at jrun.servlet.ForwardRequest.isRequestedSessionIdValid(ForwardRequest.java:467)
	at jrun.servlet.ForwardRequest.getSession(ForwardRequest.java:344)
	at jrun.servlet.ForwardRequest.create(ForwardRequest.java:135)
	at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:253)
	at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
	at jrun.servlet.http.WebService.invokeRunnable(WebService.java:172)
	at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
	at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

I had installed ColdFusion [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I have been given the task to install ColdFusion on CentOS. Everything went well, Apache installed fine, related dependencies installed fine, even ColdFusion installed fine. Until I tried accessing the site, upon which I was presented with this error:</p>
<pre class="brush_javascript">
java.lang.NullPointerException
	at java.lang.String.indexOf(String.java:1733)
	at java.lang.String.indexOf(String.java:1715)
	at jrun.servlet.session.SessionService.getUrlSessionID(SessionService.java:1097)
	at jrun.servlet.ForwardRequest.getRequestedSessionId(ForwardRequest.java:426)
	at jrun.servlet.ForwardRequest.isRequestedSessionIdValid(ForwardRequest.java:467)
	at jrun.servlet.ForwardRequest.getSession(ForwardRequest.java:344)
	at jrun.servlet.ForwardRequest.create(ForwardRequest.java:135)
	at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:253)
	at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
	at jrun.servlet.http.WebService.invokeRunnable(WebService.java:172)
	at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
	at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
</pre>
<p>I had installed ColdFusion 9, in a similar method to that described <a href="http://www.aaronwest.net/blog/index.cfm/2011/2/7/Super-Guide-Installing-ColdFusion-9-on-CentOS-Linux">here</a>. So, I tried installing ColdFusion 8 following the same method. Still got the error. I then tried installing ColdFusion 9 to use the root user (not recommended). Still got the error.</p>
<p>So I pulled my hair out for a bit, and then started scanning logs, upon which I came across this line:
<pre class="brush_javascript">08/16 23:23:54 error centostemplate.xxxx.xxx.au: centostemplate.xxxx.xxx.au
java.net.UnknownHostException: centostemplate.xxxx.xxx.au: centostemplate.xxxx.xxx.au</pre>
<p>&#8230;and then it all fell together! The instance I had been given was created off a template, in which the host name was set in /etc/sysconfig/network to &#8216;centostemplate.xxxx.xxx.au&#8217; &#8211; which did not resolve via DNS! So, the easy fix was to map this over in /etc/hosts to localhost, i.e.
<pre class="brush_javascript">127.0.0.1    centostemplate.xxxx.xxx.au</pre>
<p>Restart the services, fixed! This is CentOS in my case, but I think if you ever run into this problem on a *nix platform, check your network config and ensure that your configured hostname resolves to an IP address.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jozza.net/blog/coldfusion-on-linux-make-sure-your-hostname-is-correct/467/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Telstra wireless broadband &#8211; lessons learned</title>
		<link>http://www.jozza.net/blog/telstra-wireless-broadband-lessons-learned/465/</link>
		<comments>http://www.jozza.net/blog/telstra-wireless-broadband-lessons-learned/465/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 22:16:23 +0000</pubDate>
		<dc:creator>joel.cass</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.jozza.net/blog/?p=465</guid>
		<description><![CDATA[Telstra sucks. It&#8217;s a well-known fact and while I&#8217;ve avoided being a customer of theirs for the last 10 years or so, I&#8217;ve been having a lot of trouble getting coverage from my Vodafone wireless broadband service. So, I walked into a Telstra store, purchased a prepaid Internet router (Telstra Elite) from the reluctant staff [...]]]></description>
			<content:encoded><![CDATA[<p>Telstra sucks. It&#8217;s a well-known fact and while I&#8217;ve avoided being a customer of theirs for the last 10 years or so, I&#8217;ve been having a lot of trouble getting coverage from my Vodafone wireless broadband service. So, I walked into a Telstra store, purchased a prepaid Internet router (Telstra Elite) from the reluctant staff member who then proceeded to take copies of my driver&#8217;s licence (don&#8217;t know why since I had to fill in all the details all over again), opened the package, read the instructions, it all seemed so &#8217;simple&#8217;.</p>
<p>Yet, when I actually try using the thing it doesn&#8217;t work. First things first, the card provided with the modem says you can be connected in *just* 3 simple steps! Wrong! The manual actually mentions (on an left-sided page with no headings) that you have to actually activate the modem by calling a number. Simple.</p>
<p>I call the number. Automated message tells me I should go online, after all, it&#8217;s &#8220;quick and easy&#8221;(!). I hate automated phone services, so I decided to go online. Fill out all my details and then, theoretically, my modem should be activated in the next two hours. The next morning I try to connect (about 12 hours later). I still can&#8217;t connect.</p>
<p>I check the modem settings. Fine, no problem there. The connection between my laptop and the modem is very fast. I click on the &#8216;check your account&#8217; link. It loads! Oh, I have zero credit. But what about the 5GB included with the modem? It looks like I&#8217;ll need to buy credit before I can use my &#8216;bonus&#8217; credit. Fucking Telstra!!!</p>
<p>So I give the call centre a call. Following the prompts, got there eventually. I was served by someone named &#8216;Joy&#8217; &#8211; oh the irony. After resetting my modem, and resetting the computer (she asked me if it was &#8216;XP or Vista&#8217; &#8211; ha it&#8217;s a Mac!), everything just magically worked.</p>
<p>I refreshed the &#8216;My Account&#8217; page &#8211; miraculously a dollar was added to my credit! And everything just seemed to work!</p>
<p>Two hours later I check to see if it&#8217;s still working. Nope. Broken again. I refresh the &#8216;My Account&#8217; screen. Zero credit again!</p>
<p>I call up again, this time I am greeted by Mark. He starts rolling out the normal questions, asking me to reboot my computer etc etc. Check the SIM card, fine, fine, fine&#8230; Then he realises my account was set up as a mobile phone account! </p>
<p>The whole problem was that I used the Internet to enable my prepaid broadband service &#8211; it can only be enabled over the phone. Hence, they don&#8217;t mention the Internet in the manual &#8211; however, the greeting when calling to activate the account starts off by recommending that you go online to enable your account, after all, it&#8217;s &#8220;quick and easy&#8221;! It was neither quick, nor easy, in fact, it was painful!</p>
<p>What I can&#8217;t stand about Telstra&#8217;s approach is how many times the words &#8217;simply&#8217;, &#8216;easily&#8217;, and &#8216;just&#8217; were mentioned in their documentation and on the prerecorded phone messages &#8211; not only is it patronising but it&#8217;s an outright lie! The documentation should read as follows:</p>
<p>You can set up your modem in 7 easy steps!</p>
<ol>
<li>Simply crack your nails trying to open the back shell of the modem. Easily realise that isn&#8217;t working, and then just use the corner of a credit card to crack the shell open.</li>
<li>Simply insert the battery into the back of the modem so that the contacts meet the pins (which aren&#8217;t gold by the way).
</li>
<li>Put the blue card that came with your modem in front of you. Turn on your computer, and set up a new wireless network. Select the network name entered on the card and enter your WPA password.</li>
<li>4. Simply open up a web browser and realise nothing is working. Open a new window and enter &#8216;http://192.168.0.1&#8242; into the address bar &#8211; a page should load up immediately. This confirms that you have your network set up correctly.</li>
<li>Call 125 8887 and follow the prompts to activate your card. DO NOT go on the Internet to activate the card. </li>
<li>Simply Wait 2 hours</li>
<li>Check to see if your account works. If not, call 125 8887 and simply follow the prompts (4, 2, 1). Consult your friend at the other end of the line.</li>
<li>Repeat step 7 as many times as necessary. Step 6 may be necessary as well.</li>
</ol>
<p>But this will never be a reality. Telstra seem to assume that their customers cannot count past 3 and also, the process is not &#8217;simple&#8217; nor is it &#8216;quick&#8217; and &#8216;easy&#8217;.</p>
<p>Great network, poor systems, and a workforce that knows nothing about the customer. Enter Telstra. And people wonder why their shares don&#8217;t get good returns.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jozza.net/blog/telstra-wireless-broadband-lessons-learned/465/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Great Hunter Cycling Classic</title>
		<link>http://www.jozza.net/blog/the-great-hunter-cycling-classic/461/</link>
		<comments>http://www.jozza.net/blog/the-great-hunter-cycling-classic/461/#comments</comments>
		<pubDate>Mon, 23 May 2011 22:22:32 +0000</pubDate>
		<dc:creator>joel.cass</dc:creator>
				<category><![CDATA[Cycling]]></category>

		<guid isPermaLink="false">http://www.jozza.net/blog/?p=461</guid>
		<description><![CDATA[The Great Hunter Cycling Classic (or the all spokes festival as it is also known by) is a series of races held in the Hunter Valley, first a criterium on Saturday, then a 60 or 100 kilometre race held on Sunday. This was my first time at this race, and also the third race I [...]]]></description>
			<content:encoded><![CDATA[<p>The Great Hunter Cycling Classic (or the all spokes festival as it is also known by) is a series of races held in the Hunter Valley, first a criterium on Saturday, then a 60 or 100 kilometre race held on Sunday. This was my first time at this race, and also the third race I had signed up for. Being as dumb and naive as I were, I decided I could do the 100km race. After all, I&#8217;ve done many 100km rides without issue, I should be able to hold my own. At least that&#8217;s what I was thinking&#8230;</p>
<p>I missed the criteriums, mainly because I don&#8217;t have the right license, but arrived on Sunday morning for registration and warm-up. Registration was easy; however pinning the numbers on took more time than it should<br />
have. By 7:50 I was ready for warm-ups, which gave me barely 15 minutes. I still felt lethargic from the night before and the lack of a hearty breakfast.</p>
<p>Being such a long race, I was expecting it to start softly and then go from there. It was quite the opposite. As soon as the start was announced, everyone took off. The pace soon lifted to around 50km/h. Then it lifted again. I could feel my legs already, I was not prepared for such a start. After trying to hold on for about 10km the peloton started creeping away. And after the second hill I knew I could not catch them no more.</p>
<p>So I resigned to a recovery pace for a while, sticking it to around 30-35km/h. A few more hills and a couple of corners later I was passed by another group. I tacked onto the back of them and found their pace a lot more comfortable, sitting between 35-40km/h. </p>
<p>The next thing I didn&#8217;t see coming was the straight leading up the the finish line. The were more potholes on the road then there were bitumen. Just one awful patch-up job after the next. Going over these sections at 40km/h could be likened to sitting on top of an out of control machine gun. The bike was going everywhere. I dropped my chain at least once.. Lucky it was on the big ring.</p>
<p>The first lap was done and it was onto the second. Now the group had gotten a rhythm and everyone was humming along rather well. More hills, more potholes, and then another lap of the same. By the end of the fourth lap I could really feel my legs. Furthermore, the group was starting to pick up given that the final lap was around the corner. </p>
<p>In my mind, I fell as if my body had almost resigned that the last lap was a cool-down session, as soon as I passed the line everything just caved in. At the first hill my legs cramped up, one started working against the other. Things started getting a bit blurry and I found myself in a world of pain. I drank some water &#8211; it tasted like domestos &#8211;  why did I have to fill my bottles at the hotel? Soon I saw my group fade into the distance. Then I was on my own.</p>
<p>It was a struggle. My legs aching, my chest sore, nothing top do but find a gear where I could sit comfortably at 90rpm and forget any chances of winning or even doing well. What was I thinking that I even had a chance? These guys were way too fast, and furthermore all my 100k rides have had breaks in them.</p>
<p>Soon it became a matter of mind versus body. Things were shutting down left right and centre. I started getting tunnel vision. My legs weren&#8217;t getting any better. I kept my eyes on the speedo. &#8220;90rpm&#8221;, I remind<br />
myself, &#8220;keep it at 90rpm&#8221; &#8211; the hills came and I was out of gears. &#8220;Out of gears on a 6% incline? What&#8217;s wrong with you?&#8221; things start getting nasty and every antagonistic, anxiety-inducing thought comes out to play. Then it turns to &#8220;that bank on the left looks nice, lets get some sleep&#8221;, or just plain &#8220;ow, ow, ow, ow, ow&#8221;&#8230;</p>
<p>Finally the last corner comes in. I pass one guy that was obviously in the same world of pain I was. We shouted some encouraging words back at each other but soon lost touch. The potholes come around again and it&#8217;s almost as if my legs had come back to life &#8211; perhaps it were the bumps triggering some sort of adrenalin rush, or just that my legs had recovered whilst riding at snail pace.</p>
<p>I was counting the hills to the finish line, 3&#8230; 2&#8230; 1&#8230; The finish line was in sight &#8211; before I knew it, the 500m sign past, then 200m, 100m and then all I could hear were gears grinding &#8211; in the last 100m a group of riders passes. Where were they before? At any rate I placed somewhere in the middle of them and the race was over. And strangely I did not feel tired, exhausted, nor exhilarated. Just plain relaxed that it was all over. I guess I found my limits and experienced phenomenon I had only read about, in the end I was glad just to have finished.</p>
<p>It pays to set goals. My goals started out ambitious &#8211; &#8220;keep up with the group&#8221;, &#8220;try some tactics&#8221;, &#8220;have a good sprint at the finish&#8221;&#8230; It soon changed to &#8220;finish the race&#8221;, &#8220;don&#8217;t pass out&#8221;, &#8220;don&#8217;t throw up&#8221;&#8230; Funny how things change on the day and I always find myself short of preparation.</p>
<p>In the end it was a good ride, the scenery was excellent, the weather perfect, and even though there was a lot of pain, I had learned a lot about my limits. And I actually came out of the race feeling good, like it was all just one big workout. A coffee, a little bit of food and it was time to head back to the big smoke to recover whatever was left of the weekend.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jozza.net/blog/the-great-hunter-cycling-classic/461/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
