<?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>Damian Beresford</title>
	<atom:link href="http://www.damianberesford.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.damianberesford.com</link>
	<description>My perspective on the world of software development</description>
	<lastBuildDate>Tue, 29 Jan 2013 08:58:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Simple fractional odds conversion app..</title>
		<link>http://www.damianberesford.com/2011/03/22/simple-fractional-odds-conversion-app/</link>
		<comments>http://www.damianberesford.com/2011/03/22/simple-fractional-odds-conversion-app/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 22:46:24 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[odds mobile android]]></category>

		<guid isPermaLink="false">http://www.damianberesford.com/?p=126</guid>
		<description><![CDATA[I was never very good at understanding gambling odds until I had to run a book for our annual golf trip last year (and had to learn by being thrown in the deep end!). Everything you need to know about odds/gambling/book making/probability can be found in these three articles: Odds Mathematics of bookmaking Soccer Betting [...]]]></description>
			<content:encoded><![CDATA[<p>I was never very good at understanding gambling odds until I had to run a book for our annual golf trip last year (and had to learn by being thrown in the deep end!). Everything you need to know about odds/gambling/book making/probability can be found in these three articles:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Odds">Odds</a></li>
<li><a href="http://en.wikipedia.org/wiki/Mathematics_of_bookmaking">Mathematics of bookmaking</a></li>
<li><a href="http://www.isfa.com/betting-odds-probability.php">Soccer Betting</a></li>
</ul>
<p>Requires a little bit of study but it&#8217;s worth it!</p>
<p>However, I still find fractional odds confusing and too difficult to process in my head (especially when being discussed in a pub!), so I wrote a very trivial mobile app that lists common fractional odds and their decimal equivalent (and associated probability). So if someone drunkenly offers you odds of 11/8 on something, you can do a quick lookup to see that 13/8 is 2.38 in decimal odds (i.e. you get back your money multiplied by 2.38), and also that 13/8 has an implied probability of 42.02% (i.e. the chance of this happening). I hope this saves me a fortune <img src='http://www.damianberesford.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>You can browse to it on your phone <a href="http://www.damianberesford.com/OddsConverter/index.html">here</a> (and make a shortcut to it from your phones desktop for quick pub access). If you have an Android phone you can also download the app to your phones sd card from <a href="http://www.damianberesford.com/files/OddsConverter.apk">here</a> and install it directly using an Android App Installer (see <a href="http://www.brighthub.com/mobile/google-android/articles/37151.aspx">this</a> article for instructions). </p>
<p>Also, this app was written using &#8216;Mobl&#8217;, see <a href="http://www.mobl-lang.org">www.mobl-lang.org</a>. The source .mobl file for it is on GitHub <a href="https://gist.github.com/882042">here</a>. The HTML5 that Mobl generates from this file can be found <a href="https://github.com/dberesford/OddsConverter">here</a>.</p>
<p><img src="http://www.damianberesford.com/files/OddsConverter.png" alt="OddsConverter screenshot" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.damianberesford.com/2011/03/22/simple-fractional-odds-conversion-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exiv2 native extension for Node.js</title>
		<link>http://www.damianberesford.com/2011/02/23/exiv2-native-extension-for-node-js/</link>
		<comments>http://www.damianberesford.com/2011/02/23/exiv2-native-extension-for-node-js/#comments</comments>
		<pubDate>Wed, 23 Feb 2011 19:47:26 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Mini-projects]]></category>
		<category><![CDATA[node.js]]></category>

		<guid isPermaLink="false">http://www.damianberesford.com/?p=97</guid>
		<description><![CDATA[I&#8217;ve been dabbling a bit recently in writing native extensions for node.js, specifically, I wanted to use exiv2 from within Node. Exiv2 is a fantasic tool for reading and writing Exif (and IPCT/XMP) metadata to/from photos, see Wikipedia or exif.org for more info. The ability to manipulate Exif data in my photos is just a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been dabbling a bit recently in writing native extensions for <a href="http://nodejs.org/">node.js</a>, specifically, I wanted to use <a href="http://www.exiv2.org/">exiv2</a> from within Node. <a href="http://www.exiv2.org/">Exiv2</a> is a fantasic tool for reading and writing <a href="http://en.wikipedia.org/wiki/Exif">Exif</a> (and IPCT/XMP) metadata to/from photos, see <a href="http://en.wikipedia.org/wiki/Exif">Wikipedia</a> or <a href="http://www.exif.org/">exif.org</a> for more info. The ability to manipulate Exif data in my photos is just a small part of a bigger pet project I&#8217;ve been working on, which uses Node..</p>
<p>Rather than launch the exiv2 process from within Node (messy), I had a go at writing a native C++ extension that would use the exiv2 <a href="http://www.exiv2.org/doc/index.html">library</a> to do the reading/writing. Additionally, this processing happens on a background thread, so its asynchronous when used from within Node itself (in keeping with the non-blocking Node way of doing things).</p>
<p>The result is here on GitHub: <a href="https://github.com/dberesford/exiv2node">https://github.com/dberesford/exiv2node</a>. See the <a href="https://github.com/dberesford/exiv2node/blob/master/README.md">README</a> for usage, etc. Doesn&#8217;t cover all of exiv2&#8242;s functionality, but can be easily extended if necessary. </p>
<p>I also learned quite a lot about <a href="http://nodejs.org/docs/v0.4.1/api/all.html">Node</a> &#038; <a href="http://code.google.com/p/v8/">V8</a> in the process, the ability to add easily add asynchronous extensions like this is a really awesome feature of Node. Some links I found useful for developing native Node extensions:</p>
<ul>
<li><a href="https://www.cloudkick.com/">CloudKick</a> have an excellent <a href="https://www.cloudkick.com/blog/2010/aug/23/writing-nodejs-native-extensions">tutorial</a> </li>
<li>V8 <a href="http://code.google.com/intl/ko-KR/apis/v8/embed.html">Embedders Guide</a> </li>
<li>V8 <a href="http://create.tpsitulsa.com/wiki/V8_Cookbook">Cookbook</a></li>
<li>The <a href="https://github.com/ry/node">source code</a> for Node itself is a good reference for how to use V8</li>
</ul>
<p>Finally, many thanks to everyone behind both <a href="http://nodejs.org/">Node</a> and <a href="http://www.exiv2.org/">Exiv2</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.damianberesford.com/2011/02/23/exiv2-native-extension-for-node-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows build of ZeroMQ and C# bindings..</title>
		<link>http://www.damianberesford.com/2010/12/01/windows-build-of-zeromq-and-c-bindings/</link>
		<comments>http://www.damianberesford.com/2010/12/01/windows-build-of-zeromq-and-c-bindings/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 21:58:28 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[zeromq]]></category>

		<guid isPermaLink="false">http://www.damianberesford.com/?p=80</guid>
		<description><![CDATA[Took a look at ZeroMQ this evening and as its a source only distribution, I thought I&#8217;d share my compiled windows library binaries and &#8216;hello world&#8217; projects. (Note you can also get the library binaries through NuGet as described here if you wish). The following zip file contains: A build of zeromq library, version 2.0.10, [...]]]></description>
			<content:encoded><![CDATA[<p>Took a look at <a href="http://www.zeromq.org">ZeroMQ </a>this evening and as its a source only distribution, I thought I&#8217;d share my compiled windows library binaries and &#8216;hello world&#8217; projects. (Note you can also get the library binaries through <a href="http://nuget.codeplex.com/">NuGet </a>as described <a href="http://www.zeromq.org/bindings:clr">here</a> if you wish). </p>
<p>The following <a href="https://docs.google.com/leaf?id=0B9cR3B4iDJ3dNDNlNTFiNjItYTkwNC00YmIwLWIwYjAtYjEyNTExZmJjZjI1&#038;sort=name&#038;layout=list&#038;num=50">zip file</a> contains:</p>
<ul>
<li>A build of zeromq library, version 2.0.10, built with Visual Studio 2008 </li>
<li>A build of the C# &#8216;<a href="http://www.zeromq.org/bindings:clr">clrzmq2</a>&#8216; bindings (Version 2), also built with Visual Studio 2008 (not 2010, which version 2 is targeted for)</li>
<li>Visual Studio 2008 C# Solution containing the ZeroMQ &#8216;Hello World&#8217; C# client and server demo applications, as documented in the <a href="http://zguide.zeromq.org/">ZeroMQ Guide</a>.</li>
</ul>
<p>Congrats to all everyone involved in ZeroMQ, very impressed so far.</p>
<div id="attachment_84" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.damianberesford.com/wp-content/uploads/2010/12/zeromq-helloworld.PNG"><img src="http://www.damianberesford.com/wp-content/uploads/2010/12/zeromq-helloworld-300x174.PNG" alt="hwclient and hwserver in action" title="zeromq-helloworld" width="300" height="174" class="size-medium wp-image-84" /></a><p class="wp-caption-text">hwclient and hwserver in action</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.damianberesford.com/2010/12/01/windows-build-of-zeromq-and-c-bindings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Our unusual unit testing..</title>
		<link>http://www.damianberesford.com/2010/07/16/ingenico-telium-testsuite/</link>
		<comments>http://www.damianberesford.com/2010/07/16/ingenico-telium-testsuite/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 11:23:49 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.damianberesford.com/?p=69</guid>
		<description><![CDATA[We&#8217;re currently developing an application for the Ingenico iCT 220/250 Telium terminals. Nifty little devices, ARM9, Linux, GNU C with an Eclipse based development environment. It&#8217;s pretty bare bones from a development perspective however, so the first thing we developed was a unit test framework (pretty hard to do TDD without one!). Here it is [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re currently developing an application for the <a href="http://www.ingenico.com/en">Ingenico</a> iCT <a href="http://www.ingenico.com/SITEFORUM?&#038;t=/Default/gateway&#038;i=1218450834674&#038;application=story&#038;active=no&#038;ParentID=1219247335209&#038;StoryID=1224504597884&#038;xref=">220/250</a> Telium terminals. Nifty little devices, ARM9, Linux, GNU C with an <a href="http://eclipse.org/">Eclipse</a> based development environment.</p>
<p>It&#8217;s pretty bare bones from a development perspective however, so the first thing we developed was a unit test framework (pretty hard to do <a href="http://en.wikipedia.org/wiki/Test-driven_development">TDD</a> without one!). Here it is in action:<br />
<div class="wp-caption alignleft" style="width: 318px"><img alt="Ingenico iCT 220" src="http://damianberesford.com/files/Ingenico-ICT-220.jpg" title="Ingenico iCT 220" width="308" height="410" /><p class="wp-caption-text">Ingenico iCT 220</p></div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.damianberesford.com/2010/07/16/ingenico-telium-testsuite/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DIY Burglar Alarm</title>
		<link>http://www.damianberesford.com/2010/03/02/diy-burglar-alarm/</link>
		<comments>http://www.damianberesford.com/2010/03/02/diy-burglar-alarm/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 21:24:28 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.damianberesford.com/?p=57</guid>
		<description><![CDATA[Not that I have much faith in burglar alarms (having a dog is apparently more of a deterrent for thieves) but we were fast becoming the only house in our small estate that didn&#8217;t have one. I got a quote to have one installed but thought it was a bit on the high side (to [...]]]></description>
			<content:encoded><![CDATA[<p>Not that I have much faith in <a href="http://en.wikipedia.org/wiki/Burglar_alarm">burglar alarms</a> (having a dog is apparently more of a deterrent for thieves) but we were fast becoming the only house in our small estate that didn&#8217;t have one. I got a quote to have one installed but thought it was a bit on the high side (to put it politely), given that the alarm units themselves don&#8217;t cost all that much (and there&#8217;s also not really *that* much to <a href="http://home.howstuffworks.com/home-improvement/household-safety/security/burglar-alarm.htm">them</a> <img src='http://www.damianberesford.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . So I went down the DIY route.</p>
<p>If you&#8217;re thinking of doing the same (or getting one put installed for you for that matter), first figure out what your requirements are, i.e. broadly speaking, do you want:<br />
 &#8211; wired or wireless alarm (probably depends on if your house is already wired for an alarm)<br />
 &#8211; with or without auto-dialer (i.e. do you want it to contact you or not)<br />
 &#8211; how many door contacts and IR detectors you need</p>
<p>Like securing anything, the more secure you make it the greater the costs involved, and this is particularly true when it comes to figuring how many sensors you need to secure your house to a level that you (and your pocket) are happy with. E.g. for our house, I went with a wireless alarm with an auto-dialer, contacts for all the external doors and enough IR detectors to protect the main downstairs areas and the upstairs landing.</p>
<p>So product wise, I eventually went with a Friedland <a href="http://www.responseelectronics.com/store/home.php">Response</a> alarm. I got the base <a href="http://www.responseelectronics.com/store/SA5-Friedland-Response-Wireless-Alarm-pr-4.html">SA5 package</a> with the few additional sensors I wanted and an additional <a href="http://www.responseelectronics.com/store/Response-Wirefree-433MHz-Remote-Control-SAR-pr-9.html">remote control</a>. The main reason I went with Response is because they have their instruction manuals all online <a href="http://www.responseelectronics.com/store/pages.php?pageid=1">here</a>, so you know in advance how it all fits together and whats involved in installing it. (When also get a really handy DVD when you buy the kit; its a pity they don&#8217;t have this online too as its a better illustration of what&#8217;s involved in installing each component). </p>
<p><img src="http://damianberesford.com/files/sa5.jpg" alt="Response SA5 Alarm" /></p>
<p>After a bit of shopping around, I found that Amazon is <a href="http://www.amazon.co.uk/Friedland-Response-SK5-Wirefree-Telecommunicating/dp/B001FX95EI/ref=sr_1_7?ie=UTF8&#038;s=diy&#038;qid=1267562659&#038;sr=8-7">cheapest</a> for an SK5 kit, however (and rather annoyingly) they don&#8217;t deliver to Ireland (apparently they don&#8217;t/can&#8217;t fly batteries across the pond for security issues &#8211; don&#8217;t know if this is actually true or not). I also found the the local B&#038;Q are selling an SA5 kit for €380, that&#8217;s quite a paddy tax guys! There also wasn&#8217;t much available on ebay at the time (although there are quite a few generic looking wireless alarms for sale if you want to chance a cheaper kit). So in the end I bought it from the Response website themselves, they do deliver to Ireland if you ring them up and ask them to courier it (costs an extra £11.50).</p>
<p>Installation wise it all went quite smooth (I&#8217;ve had much harder self assembly jobs!), but I did take my time at it and it&#8217;s always fun to get the drill out. You definitely don&#8217;t need to be an electrician to put in a wireless alarm. Configuring everything from the control panel (i.e. the zones, numbers to dial, etc) is just a case of following the steps in the manual. The one thing I was a bit worried about before hand was how to drill the door contacts in to the patio door, but thankfully they optionally come with sticky bits so installing them only takes a minute, result! </p>
<p>So in all it&#8217;s worked out very well all told. If you are considering the DIY route and have any questions, leave a comment below or drop me a <a href="<a href="http://twitter.com/dberesford">twitter</a>&#8220;>tweet</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.damianberesford.com/2010/03/02/diy-burglar-alarm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>&#8216;New-WebServiceProxy&#8217; cmdlet in PowerShell 2.0</title>
		<link>http://www.damianberesford.com/2009/11/09/powershell-new-webserviceproxy-cmdlet/</link>
		<comments>http://www.damianberesford.com/2009/11/09/powershell-new-webserviceproxy-cmdlet/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 20:46:42 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.damianberesford.com/?p=48</guid>
		<description><![CDATA[I&#8217;ve been using PowerShell quite a bit of late, bit of a learning curve but when you get into it it really is amazingly powerful (the ability to pipe objects (and not just text) is a game changer). Hence the name I suppose! In the last while, I&#8217;ve been using PowerShell 2.0 in Windows 7, [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">I&#8217;ve been using PowerShell quite a bit of late, bit of a learning curve but when you get into it it really is amazingly powerful (the ability to pipe objects (and not just text) is a game changer). Hence the name I suppose!</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">In the last while, I&#8217;ve been using PowerShell 2.0 in Windows 7, and with it the excellent &#8216;New-WebServiceProxy&#8217; cmdlet. In a nutshell, this allows you to use Web Services API&#8217;s directly from the shell, which I&#8217;m finding incredibly productive.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Here&#8217;s a short example of using a relatively non-trivial Web Service: the BetFair API.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$bfExchange = New-WebServiceProxy -uri</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">https://api.betfair.com/exchange/v5/BFExchangeService.wsdl -Namespace</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">BFE</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$bfGlobal = New-WebServiceProxy -uri</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">https://api.betfair.com/global/v3/BFGlobalService.wsdl -Namespace BFG</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$loginReq = new-object BFG.LoginReq</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$loginReq.username = &lt;your betfair username&gt;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$loginReq.password = &lt;your betfair password&gt;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$loginReq.productId = 82</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$loginReq.vendorSoftwareId = 0</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$loginResp = $bfGlobal.login($loginReq)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Get some Betfair Events, happening in the next 3 hours</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$marketsReq = New-Object BFE.GetAllMarketsReq</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$marketsReq.header = New-Object BFE.APIRequestHeader</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$marketsReq.header.sessionToken = $loginResp.header.sessionToken</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$marketsReq.fromDate = Get-Date</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$marketsReq.toDate = (Get-Date).AddHours(3)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Invoke the call</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$marketResp = $bfExchange.getAllMarkets($marketsReq)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># The format of the Markets, etc, is all documented here:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># http://bdphelp.betfair.com/API6/6.0/RefGuide/wwhelp/wwhimpl/js/html/wwhelp.htm</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">foreach($market in $marketResp.marketData.Split(&#8216;:&#8217;)) {</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$data = $market.Split(&#8216;~&#8217;)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Write-Host &#8220;Market: &#8221; $data[1] &#8220;Path: &#8221; $data[5]</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">}</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Although trivial, its a good example of &#8216;feeling your way around&#8217; an external Web Service without having to write any real code (i.e. fire up VSTS).</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">If your thinking of trying out powershell, give PowerGui a look http://www.powergui.org, and also I find Console to be way better than the default Windows cmd. I&#8217;ve also plenty of interesting Powershell links bookmarked on delicious: http://delicious.com/dberesford/powershell</div>
<p>I&#8217;ve been using <a href="http://en.wikipedia.org/wiki/Windows_PowerShell">PowerShell</a> quite a bit of late, bit of a small learning curve but when you get into it it really is amazingly powerful (hence the name I suppose!). The ability to pipe objects, and not just text, makes it excellent &#8216;glue&#8217; for which to bind things together (e.g. data in SQL Server, Excel, Email, your own .NET components/services, etc).</p>
<p>In the last while, I&#8217;ve been using PowerShell 2.0 in Windows 7, and with it the excellent <a href="http://msdn.microsoft.com/en-us/library/microsoft.powershell.commands.newwebserviceproxy(VS.85).aspx">&#8216;New-WebServiceProxy&#8217;</a> cmdlet. This allows you to use Web Service API&#8217;s directly from the shell, which I&#8217;m finding incredibly useful. (You could do this in Powershel 1.0 but it was a bit more <a href="http://www.leeholmes.com/blog/CallingAWebserviceFromPowerShell.aspx">involved</a>)</p>
<p>Here&#8217;s a short example of using a relatively non-trivial Web Service, the <a href="http://bdp.betfair.com/">BetFair API</a>:</p>
<p><code>#short script to log on to Betfair and grab some upcoming events</code></p>
<p><code>$bfExchange = New-WebServiceProxy -uri https://api.betfair.com/exchange/v5/BFExchangeService.wsdl -Namespace BFE</code></p>
<p><code>$bfGlobal = New-WebServiceProxy -uri https://api.betfair.com/global/v3/BFGlobalService.wsdl -Namespace BFG</p>
<p>$loginReq = new-object BFG.LoginReq</p>
<p>$loginReq.username = &lt;your betfair username&gt;</p>
<p>$loginReq.password = &lt;your betfair password&gt;</p>
<p>$loginReq.productId = 82</p>
<p>$loginReq.vendorSoftwareId = 0</p>
<p>$loginResp = $bfGlobal.login($loginReq)</p>
<p># Get some Betfair Events, happening in the next 3 hours</p>
<p>$marketsReq = New-Object BFE.GetAllMarketsReq</p>
<p>$marketsReq.header = New-Object BFE.APIRequestHeader</p>
<p>$marketsReq.header.sessionToken = $loginResp.header.sessionToken</p>
<p>$marketsReq.fromDate = Get-Date</p>
<p>$marketsReq.toDate = (Get-Date).AddHours(3)</p>
<p># Invoke the call</p>
<p>$marketResp = $bfExchange.getAllMarkets($marketsReq)</p>
<p># The format of the Markets, etc, is all documented here:</p>
<p># http://bdphelp.betfair.com/API6/6.0/RefGuide/wwhelp/wwhimpl/js/html/wwhelp.htm</p>
<p>foreach($market in $marketResp.marketData.Split(':')) {</p>
<p>$data = $market.Split('~')</p>
<p>Write-Host "Market: " $data[1] "Path: " $data[5]</p>
<p>}</p>
<p></code></p>
<p>Although trivial, its a good example of &#8216;feeling your way around&#8217; an external Web Service without having to write any real code (i.e. fire up VSTS).</p>
<p>If your thinking of trying out powershell, give <a href="http://www.powergui.org">PowerGui</a> a look, and I also  find <a href="http://sourceforge.net/projects/console/">Console</a> to be way better than the default Windows cmd. I&#8217;ve also plenty of Powershell links bookmarked on <a href="http://delicious.com/dberesford/powershell">delicious</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.damianberesford.com/2009/11/09/powershell-new-webserviceproxy-cmdlet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows build of &#8216;PJSUA&#8217;</title>
		<link>http://www.damianberesford.com/2009/09/21/windows-build-of-pjsua/</link>
		<comments>http://www.damianberesford.com/2009/09/21/windows-build-of-pjsua/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 15:59:36 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[Mini-projects]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.damianberesford.com/?p=41</guid>
		<description><![CDATA[I was doing a bit of research into SIP development and I struggled to find to pre-built binary for PJSUA (a sample console application for the excellent PJSIP) for windows. There are quite a few steps involved in building PJSIP on windows, so if anyone is looking for a pre-built binary for PJSUA for windows, here it [...]]]></description>
			<content:encoded><![CDATA[<p>I was doing a bit of research into <a href="http://en.wikipedia.org/wiki/Session_Initiation_Protocol">SIP</a> development and I struggled to find to pre-built binary for <a href="http://www.pjsip.org/pjsip/docs/html/page_pjsip_samples_pjsua.htm">PJSUA</a> (a sample console application for the excellent <a href="http://www.pjsip.org">PJSIP</a>) for windows.</p>
<p>There are quite a few steps involved in <a href="http://www.pjsip.org/using.htm#vs">building PJSIP on windows</a>, so if anyone is looking for a pre-built binary for PJSUA for windows, <a href="http://www.damianberesford.com/files/pjsua-i386-Win32-vc8-Release.zip">here</a> it is. It&#8217;s built with <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&amp;displaylang=en">MS SDK 7</a>, and version 2914 of the pjsip trunk.</p>
<p>Although it is billed as a reference application, PJSUA is really quite comprehensive in terms of functionality, and works very well when run against my <a href="http://www.blueface.ie/">Blueface</a> account.</p>
<p>Many thanks to everyone behind the PJSIP project, I hope to use it in earnest in the near future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.damianberesford.com/2009/09/21/windows-build-of-pjsua/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Open week in Tramore Tennis Club</title>
		<link>http://www.damianberesford.com/2009/08/04/open-week-in-tramore-tennis-club/</link>
		<comments>http://www.damianberesford.com/2009/08/04/open-week-in-tramore-tennis-club/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 12:48:31 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[Waterford]]></category>

		<guid isPermaLink="false">http://www.damianberesford.com/?p=40</guid>
		<description><![CDATA[It&#8217;s Senior Open Week in the local Tennis Club and for the first time ever (yes, this is 2009!) the fixtures and results for each day are all available on the website: http://www.tramoretennis.com. (Disclaimer: I host the website, and my better half sits in on committee meetings and keeps the site updated) The results/fixture management is done [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>It&#8217;s Senior Open Week in the local Tennis Club and for the first time ever (yes, this is 2009!) the fixtures and results for each day are all available on the website: <a href="http://www.tramoretennis.com ">http://www.tramoretennis.com</a>. <em>(Disclaimer: I host the website, and my better half sits in on committee meetings and keeps the site updated)</em></p>
<p>The results/fixture management is done using a copy of <a href="http://www.tournamentsoftware.com/">Tournament Software</a> which is used in the club office by the hard working people who run Open Week, and the updates are published to the Tournament Software web site every evening. Works quite well, previously all this information was just posted on the club notice board. So far we&#8217;ve had a great reaction to it and hits on the website are way up (from the usual dribble of visits it gets).</p>
<p>Senior Open Week is the highlight of the year in the club, there are over 200 entrants &#8211; mainly from the surrounding Waterford clubs but also a few from further a field; Cork, Kilkenny, and even Dublin! <img src='http://www.damianberesford.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />   I usually make a point of seeing the &#8216;A&#8217; finals (which will be on next Sunday, August 9&#8242;th) each year where the standard of tennis is just incredible to watch. Good prize money for the winners I believe, and the cakes and sandwiches are usually top notch too!</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.damianberesford.com/2009/08/04/open-week-in-tramore-tennis-club/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bealtaine Festival of Outdoor Science 2009</title>
		<link>http://www.damianberesford.com/2009/05/20/bealtaine-festival-2009/</link>
		<comments>http://www.damianberesford.com/2009/05/20/bealtaine-festival-2009/#comments</comments>
		<pubDate>Wed, 20 May 2009 18:54:04 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[Waterford]]></category>

		<guid isPermaLink="false">http://www.damianberesford.com/?p=38</guid>
		<description><![CDATA[CALMAST are running the Bealtaine Festival of Outdoor Science from May 17 &#8211; 24th with an incredible line up of outdoor activites for school kids and the general public in the local Tramore and surrounding areas (with the majority of the outdoor events happening along the Copper Coast), see the full schedule here. These two [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.livingearth.ie/index.html">CALMAST</a> are running the <a href="http://www.livingearth.ie/Bealtaine%20festival%20intro">Bealtaine Festival of Outdoor Science</a> from May 17 &#8211; 24th with an incredible line up of outdoor activites for school kids and the general public in the local Tramore and surrounding areas (with the majority of the outdoor events happening along the <a href="http://www.coppercoastgeopark.com/">Copper Coast</a>), see the full schedule <a href="http://www.livingearth.ie/Full%20Events%20Listing">here</a>.</p>
<p>These two in particular grabbed my attention:</p>
<blockquote>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td colspan="2" width="300" valign="top">Saturday 23<sup>rd</sup> May</td>
<td colspan="2" width="208" valign="top">
<p align="right">For Family groups. General public</p>
</td>
</tr>
<tr>
<td width="92" valign="top">Event</td>
<td colspan="3" width="416" valign="top">Mosaic on Annestown Beach</td>
</tr>
<tr>
<td width="92" valign="top">Venue</td>
<td colspan="3" width="416" valign="top">Annestown Beach Co. Waterford</td>
</tr>
<tr>
<td colspan="4" width="508" valign="top">Build a giant Mosaic on Annestown using natural materials found on beach with Artist Sinead Driver and geologist Tina Keating of the Copper Coast Geopark<br />
The Copper Coast Geopark runs between Tramore and Dungarvan, in Co. Waterford and comprises 25 km of beautiful coastline. But did you know that this part of Ireland was once close to the South Pole, exposed to violent volcanic eruptions and earthquakes? Did you know that the area was once a desert, dissected by large rivers, long before the landscape was gouged by glaciers? Here&#8217;s your chance to find out. The Copper Coast Geopark has it all, 460 million years of Earth history recorded in the rocks, explained on panels, brochures or during school visits and excursions throughout the year and guided tours in the summer.&#8221;
</td>
</tr>
</tbody>
</table>
</blockquote>
<p>And the Comeragh walks (I received a little bit more information about this via email):</p>
<blockquote><p>Woodlands and Uplands &#8211; 2 short walks in the Comeraghs </p>
<p>The Crough Walk is a 1.5km woodland walk along the banks of the Mahon Stream, where we plan to do some nature-spotting – mammal-tracking, tree-naming, stream-dipping and bird calls. We will then go to the Mahon Falls Walk to see some upland habitat and blanket bog and the special flora associated with it. </p>
<p>Date:   Sunday 24th May 2009 </p>
<p>Venue:  Mahonbridge / Comeragh Mountains</p>
<p>The Comeragh Mountains form part of the largest SAC (Special Area of Conservation)  in Co. Waterford, protected under law for important habitats. May 24th is Wildwatch Day, when events take place all around the country for people to get out, experience the wild and learn about the nature on their own doorstep. The Irish Wildlife Trust volunteers organise regular outings to places with interesting natural history: </p>
<p>Time:   2 pm </p>
<p>Duration: 2 hours approx </p>
<p>Age group:  All Ages Welcome. Children under supervision </p>
<p>Meeting point if different to venue:  Mahonbridge Village. There is limited parking at the walk start, so car-pooling is encouraged </p>
<p>To Book: Log onto www.livingearth.ie </p>
<p>Contact Person for more info: Marie Power Mobile: 086 8124275 </p>
<p>Walk Leader:  Denis Cullen </p>
<p>Special requirements for participants: The walk has been well finished by the Comeragh Community Group/Coillte and is suitable for buggies/wheels. However, it is an uphill course for the first half. </p>
<p>Directions to venue:  From Waterford, take the N25. Turn off just past Kilmacthomas, for Mahonbridge. Follow signs for 3km approx. until you arrive in the village. The walk start is just 50m away, through village on the Comeragh Drive. Mahonbridge is located on the main Dungarvan to Carrick-on-Suir Road, about 16km from Dungarvan. </p></blockquote>
<p>Plenty there to interest everyone, again see the full event list here: <a href="http://www.livingearth.ie/Full%20Events%20Listing">http://www.livingearth.ie/Full%20Events%20Listing</a>. I think I might skip the &#8216;cooking seaweed&#8217; event myself however <img src='http://www.damianberesford.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.damianberesford.com/2009/05/20/bealtaine-festival-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>April 2009 Budget Calculator</title>
		<link>http://www.damianberesford.com/2009/04/07/april-2009-budget-calculator/</link>
		<comments>http://www.damianberesford.com/2009/04/07/april-2009-budget-calculator/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 23:28:27 +0000</pubDate>
		<dc:creator>Damian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.damianberesford.com/?p=37</guid>
		<description><![CDATA[Myself and John have released a Budget Calculator for this emergency 2009 Budget which you can run here. Your not likely to find good news, so please don&#8217;t shoot the messenger! By the way, RedOakTaxRefunds is the relaunched &#38; rebranded version of Tax123.ie. Plenty of disquiet around the country over this budget, a lot of [...]]]></description>
			<content:encoded><![CDATA[<p>Myself and <a href="http://www.redoaktaxrefunds.ie">John</a> have released a Budget Calculator for this emergency 2009 Budget which you can run <a href="http://www.redoaktaxrefunds.ie/index.php?contentid=budget-calculator">here</a>.<a href="http://www.redoaktaxrefunds.ie/index.php?contentid=budget-calculator"><br />
</a></p>
<p>Your not likely to find good news, so please don&#8217;t shoot the messenger! By the way, <a href="http://www.redoaktaxrefunds.ie">RedOakTaxRefunds</a> is the relaunched &amp; rebranded version of <a href="http://www.tax123.ie/blog%5Credoaktaxrefunds_launch">Tax123.ie</a>.</p>
<p>Plenty of disquiet around the country over this budget, a lot of unhappy campers (myself included!):</p>
<p><a href="http://search.twitter.com/search?q=bludget">http://search.twitter.com/search?q=bludget</a></p>
<p><a href="http://www.scribblelive.com/Event/Irish_Emergency_Budget_2009">http://www.scribblelive.com/Event/Irish_Emergency_Budget_2009</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.damianberesford.com/2009/04/07/april-2009-budget-calculator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
