<?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>PeterCallaghan.com ⍾</title>
	<atom:link href="http://www.petercallaghan.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.petercallaghan.com</link>
	<description>Personal website of Peter Callaghan</description>
	<lastBuildDate>Mon, 26 Dec 2011 13:43:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Connecting to your PC from home</title>
		<link>http://www.petercallaghan.com/2011/08/connecting-to-your-pc-from-home/</link>
		<comments>http://www.petercallaghan.com/2011/08/connecting-to-your-pc-from-home/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 05:55:06 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.petercallaghan.com/?p=101</guid>
		<description><![CDATA[This article explains how you can connect to a PC over the internet using a VPN. I use this for work to allow me to connect to my work PC when I am away from the office, and it requires me to connect to our office VPN first. I won&#8217;t go into connecting to a [...]]]></description>
			<content:encoded><![CDATA[<p>This article explains how you can connect to a PC over the internet using a VPN.  I use this for work to allow me to connect to my work PC when I am away from the office, and it requires me to connect to our office VPN first.  I won&#8217;t go into connecting to a VPN in this article, but may do up a VPN guide in the near future.</p>
<p>Once you are connected to your VPN, you will need to set up a way to connect to your machine. You have two options:<br />
1) Remote Desktop &#8211; while this works just fine, I prefer the other option as I often only hibernate my machine, and if I log in via Remote Desktop, I&#8217;ll lose my current session.<br />
2) VNC &#8211; this will connect to your current session, and whether you are logged in to your machine or not.</p>
<p>For both of these options, you need to know the local IP address of your machine. You should already have this information.</p>
<hr />
<h2>Remote Desktop Configuration</h2>
<p>From the Start Menu, type &#8220;remote access&#8221; into the &#8220;Search programs and files&#8221; box.<br />
<a href="http://www.petercallaghan.com/2011/08/connecting-to-your-pc-from-home/remote_01/" rel="attachment wp-att-102"><img class="alignnone size-medium wp-image-102" title="Configure Remote Access" src="http://www.petercallaghan.com/wp-content/uploads/2011/08/remote_01-278x300.png" alt="Configure Remote Access" width="278" height="300" /></a></p>
<p>Under the Remote Desktop section, select the option to &#8220;Allow connections from computers running any version of Remote Desktop (less secure)&#8221;.</p>
<p>If your machine is set up to Hibernate, you will get a pop-up to notify you that you cannot connect if the machine is hibernated. This is not quite true, and I will explain that a little later.<br />
<a href="http://www.petercallaghan.com/2011/08/connecting-to-your-pc-from-home/remote_02/" rel="attachment wp-att-103"><img class="alignnone size-medium wp-image-103" title="Enable Remote Connections" src="http://www.petercallaghan.com/wp-content/uploads/2011/08/remote_02-300x226.png" alt="Enable Remote Connections" width="300" height="226" /></a></p>
<p>Close the alert if you got one, and then click OK.</p>
<p>That&#8217;s all you need to do for Remote Desktop. Now, from outside of the local network, you can connect to your PC using a Remote Desktop connection using your local IP address.<br />
<a href="http://www.petercallaghan.com/2011/08/connecting-to-your-pc-from-home/remote_03/" rel="attachment wp-att-105"><img class="alignnone size-medium wp-image-105" title="Connect to machine via Remote Desktop" src="http://www.petercallaghan.com/wp-content/uploads/2011/08/remote_03-300x190.png" alt="Connect to machine via Remote Desktop" width="300" height="190" /></a></p>
<hr />
<h2>VNC Configuration</h2>
<p>I prefer to connect via VNC, simply because it will connect to your machine in it&#8217;s current state. So if you are logged in with several programs running, you will see these programs exactly how you left them.</p>
<p>The best program I have used for a VNC connection is <a title="Tight VNC" href="http://www.tightvnc.com/">Tight-VNC</a>. Download the &#8220;Self-installing package for Windows&#8221;.</p>
<p>The installation is fairly self-explanatory, and most options can be left at their default settings. See screenshots below if you are unsure.</p>
<p>Install both the Server and Viewer options. You will also need this on the machine you are using to connect to your remote PC.<br />
<a href="http://www.petercallaghan.com/2011/08/connecting-to-your-pc-from-home/vnc_01/" rel="attachment wp-att-104"><img class="alignnone size-medium wp-image-104" title="Tight VNC Install" src="http://www.petercallaghan.com/wp-content/uploads/2011/08/vnc_01-300x234.png" alt="Tight VNC Install" width="300" height="234" /></a></p>
<p>On the &#8220;Select Additional Tasks&#8221; window, select the option to &#8220;Set passwords before finishing the installation&#8221;. This saves you forgetting to do it later.<br />
<a href="http://www.petercallaghan.com/2011/08/connecting-to-your-pc-from-home/vnc_02/" rel="attachment wp-att-106"><img class="alignnone size-medium wp-image-106" title="Tight VNC Install Options" src="http://www.petercallaghan.com/wp-content/uploads/2011/08/vnc_02-300x234.png" alt="Tight VNC Install Options" width="300" height="234" /></a></p>
<p>Set your passwords. The first one is for when you attempt to connect to your machine, it will ask you to authenticate. The second one is to access the control interface for VNC on the machine. The second password is optional, but probably a good idea.<br />
<a href="http://www.petercallaghan.com/2011/08/connecting-to-your-pc-from-home/vnc_03/" rel="attachment wp-att-108"><img class="alignnone size-medium wp-image-108" title="Tight VNC Install Options" src="http://www.petercallaghan.com/wp-content/uploads/2011/08/vnc_03-300x233.png" alt="Tight VNC Install Options" width="300" height="233" /></a></p>
<p>Click install, and that&#8217;s it.</p>
<p>To connect using VNC, as for Remote Desktop, connect to the VPN, make sure the VNC program is installed then you can use the TightVNC Viewer to connect to your machine using it&#8217;s local IP address.<br />
<a href="http://www.petercallaghan.com/2011/08/connecting-to-your-pc-from-home/vnc_04/" rel="attachment wp-att-109"><img class="alignnone size-medium wp-image-109" title="Connect to machine using Tight VNC" src="http://www.petercallaghan.com/wp-content/uploads/2011/08/vnc_04-300x132.png" alt="Connect to machine using Tight VNC" width="300" height="132" /></a></p>
<p>This is where it will ask for your password to connect to the VNC Server (the service you just installed).<br />
<a href="http://www.petercallaghan.com/2011/08/connecting-to-your-pc-from-home/vnc_05/" rel="attachment wp-att-110"><img class="alignnone size-medium wp-image-110" title="Tight VNC Authentication" src="http://www.petercallaghan.com/wp-content/uploads/2011/08/vnc_05-300x129.png" alt="Tight VNC Authentication" width="300" height="129" /></a></p>
<p>You will then see your login screen as if you were sitting in front of the machine. To send commands such as Ctrl-Alt-Del, there are some buttons at the top of the VNC Viewer window to send these commands to the remote machine.<br />
<a href="http://www.petercallaghan.com/2011/08/connecting-to-your-pc-from-home/vnc_06/" rel="attachment wp-att-111"><img class="alignnone size-medium wp-image-111" title="Tight VNC Special Commands" src="http://www.petercallaghan.com/wp-content/uploads/2011/08/vnc_06-300x161.png" alt="Tight VNC Special Commands" width="300" height="161" /></a></p>
<hr />
<h2>Remote Turning on your PC</h2>
<p>If your PC is switched off or hibernating, you need to power it up before you can connect to it.  For this you will need to know the PCs MAC address to send it a Wake-On-Lan Packet (sometimes referred to as a Magic Packet) to wake up the machine.</p>
<p>You will need to download a tool to send the Magic Packet, and the easiest one I found is <a href="http://www.matcode.com/wol.htm" title="Wake-On-LAN">here</a>.  Download MC-WOL.EXE and save it somewhere on your machine (C:\ is an easy place to start).  Open a command prompt at the location you saved MC-WOL.EXE, and run it giving the MAC address and IP address of your machine.  Please note, you need to be connected to the VPN first before attempting this, else the command won&#8217;t get through.  You need to pass the IP address so that you send the packet through the VPN.<br />
e.g. MC-WOL MAC-address /a IP-address</p>
<p>I find the best way to check if the machine is awake is to ping the IP address.  So once you&#8217;ve sent your WOL packet, enter ping IP-address /t (the /t will continue to send ping requests until you hit Ctrl-C).  Once you start seeing replies, you can log in using your preferred option (from above).</p>
<p>Enjoy!  As always, if you have any questions, please don&#8217;t hesitate to ask.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petercallaghan.com/2011/08/connecting-to-your-pc-from-home/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nero, Me and You (remix) &#8211; Are You Red-eh?</title>
		<link>http://www.petercallaghan.com/2011/06/nero-me-and-you-remix/</link>
		<comments>http://www.petercallaghan.com/2011/06/nero-me-and-you-remix/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 08:37:46 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[Remix]]></category>

		<guid isPermaLink="false">http://www.petercallaghan.com/?p=93</guid>
		<description><![CDATA[I just had to share this. I was watching a recent video on the Razors channel on YouTube (aggressive inline skating), and one of the music tracks was a song I recognised, but noticed it was a remix. After a quick search on YouTube, I found it. The song is Me &#038; You by Nero, [...]]]></description>
			<content:encoded><![CDATA[<p>I just had to share this.  I was watching a recent video on the Razors channel on YouTube (aggressive inline skating), and one of the music tracks was a song I recognised, but noticed it was a remix.  After a quick search on YouTube, I found it.</p>
<p>The song is Me &#038; You by Nero, and this version is remixed by Dirtyphonics.  The original song (I&#8217;ll post a link to the original below) is good on it&#8217;s own, but this remix just adds that little bit extra.  It&#8217;s just fat and dirty&#8230; love it.</p>
<p><a href='http://www.youtube.com/watch?v=ZFykqOXnZlg' class='embedvideo'>Nero &#8211; Me &amp; You (Dirtyphonics Remix)</a></p>
<p><a href='http://www.youtube.com/watch?v=bE47er6qnqg' class='embedvideo'>Nero &#8211; Me And You (Official)</a></p>
<p>I have quite a wide range in my taste in music.  So while I&#8217;m not a massive techno/electronic/house/etc fan, there are some songs that I really like.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petercallaghan.com/2011/06/nero-me-and-you-remix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is my IP?</title>
		<link>http://www.petercallaghan.com/2011/05/what-is-my-ip/</link>
		<comments>http://www.petercallaghan.com/2011/05/what-is-my-ip/#comments</comments>
		<pubDate>Fri, 27 May 2011 13:51:10 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[WILT]]></category>
		<category><![CDATA[IP Address]]></category>

		<guid isPermaLink="false">http://www.petercallaghan.com/2011/05/what-is-my-ip/</guid>
		<description><![CDATA[Occasionally, it’s handy to know what your public IP address, which is the IP address assigned to you by your ISP.  Most home users will have a Dynamic IP address, meaning they won’t always have the same IP address when connected to the internet.  People may use this public IP address for all sorts of [...]]]></description>
			<content:encoded><![CDATA[<p>Occasionally, it’s handy to know what your public IP address, which is the IP address assigned to you by your ISP.  Most home users will have a Dynamic IP address, meaning they won’t always have the same IP address when connected to the internet.  People may use this public IP address for all sorts of things, such as remote connections (e.g., for tech support), gaming, or just to see if their address has changed.</p>
<p>There are a few websites out there that will show you what your IP address is, and by far, the best one I found was <a href="http://www.whatismyip.org/">http://www.whatismyip.org/</a>.  This was a favourite of mine, simply because all it did was show your your IP address… nothing else.</p>
<p>I found that the site has become unreliable.  Quite often it does not work from the office, and I have to use one of the other sites to check my address.  whatismyip.org was always super quick because all it had to load was your IP address, so at most, a 15 byte page.  Because it had become unreliable, I decided to write my own page that mimics the functionality.</p>
<p>The first one I’ve written in ASP.NET, as this is what I primarily program in, and I have my own site to which I can easily add a new page.  So, without further ado, here’s my ASP.NET version of <a href="http://www.regionfreegames.com.au/ip.ashx" target="_blank">What Is My IP</a>.</p>
<p>The code for the page is as follows:</p>
<div class="codesnip-container" >
<div class="vb codesnip" style="font-family:monospace;">&lt;%@ WebHandler Language=<span class="st0">&quot;VB&quot;</span> Class=<span class="st0">&quot;ip&quot;</span> %&gt;<br />
Imports System<br />
Imports System.Web</p>
<p><span class="kw1">Public</span> Class ip : <span class="kw1">Implements</span> IHttpHandler<br />
&nbsp; <span class="kw1">Public</span> <span class="kw1">Sub</span> ProcessRequest(<span class="kw1">ByVal</span> context <span class="kw1">As</span> HttpContext) <span class="kw1">Implements</span> IHttpHandler.ProcessRequest<br />
&nbsp; &nbsp; context.Response.ContentType = <span class="st0">&quot;text/plain&quot;</span></p>
<p>&nbsp; &nbsp; <span class="kw1">If</span> context.Request.UserHostAddress <span class="kw1">Is</span> <span class="kw1">Nothing</span> OrElse context.Request.UserHostAddress = <span class="st0">&quot;&quot;</span> <span class="kw1">Then</span><br />
&nbsp; &nbsp; &nbsp; context.Response.Write(context.Request.ServerVariables(<span class="st0">&quot;REMOTE_ADDR&quot;</span>))<br />
&nbsp; &nbsp; <span class="kw1">Else</span><br />
&nbsp; &nbsp; &nbsp; context.Response.Write(context.Request.UserHostAddress)<br />
&nbsp; &nbsp; <span class="kw1">End</span> <span class="kw1">If</span><br />
&nbsp; <span class="kw1">End</span> <span class="kw1">Sub</span></p>
<p>&nbsp; <span class="kw1">Public</span> ReadOnly <span class="kw1">Property</span> IsReusable() <span class="kw1">As</span> <span class="kw1">Boolean</span> <span class="kw1">Implements</span> IHttpHandler.IsReusable<br />
&nbsp; &nbsp; <span class="kw1">Get</span><br />
&nbsp; &nbsp; &nbsp; Return <span class="kw1">False</span><br />
&nbsp; &nbsp; <span class="kw1">End</span> <span class="kw1">Get</span><br />
&nbsp; <span class="kw1">End</span> <span class="kw1">Property</span></p>
<p><span class="kw1">End</span> Class</div>
</div>
<p>Now, some will notice this is an ASHX page, which is an ASP.NET generic handler.  The reason I chose this filetype was simply because I wanted the resulting output to be as small as possible, and an ashx file is perfect for this.</p>
<p>There are two things going on here.  First, context.Response.ContentType = &#8220;text/plain&#8221; sets the content type of the page to a plain text document, so there is no html fluff bloating the page.  The other thing is to get the IP address, and I use one of two ways to get it.  context.Request.UserHostAddress or context.Request.ServerVariables(“REMOTE_ADDR”).  I chose to try both ways, simply because both return the public IP address, and if one fails, then you get a second chance at showing it.  I’m really not sure which one works more than the other, and I will do some logging on this to determine which is more reliable.  Check back in a few weeks for an update.</p>
<p>Now, because I’d decided to write about this page on my blog, and my blog is using WordPress (and hosted on a server that handles php), I decided to have a look at the same thing in PHP.  I’ve been meaning to learn more about PHP, so this was a good opportunity.  So, the resulting page was my PHP version of <a href="http://www.petercallaghan.com/ip.php" target="_blank">What Is My IP</a>.</p>
<p>The code for the page is as follows:</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw2">&lt;?php</span><br />
&nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;content-type: text/plain&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; <span class="kw1">echo</span> <span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st_h">&#8216;REMOTE_ADDR&#8217;</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
<span class="sy1">?&gt;</span></div>
</div>
<p>It’s glaringly obvious that the PHP version is a lot less lines of code for the same result (mind out I could cut out 4 lines of .net code if I took out the if/else statement).  This has made me even more keen on learning PHP.</p>
<p>There you have it.  At least another couple of places you can check your IP address if you need to know.  It will also be interesting to see if this page starts ranking for “What is my ip” in google.  As always, hopefully someone finds this useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petercallaghan.com/2011/05/what-is-my-ip/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sports Tonight&#8230; FAIL!</title>
		<link>http://www.petercallaghan.com/2011/05/sports-tonight-fail/</link>
		<comments>http://www.petercallaghan.com/2011/05/sports-tonight-fail/#comments</comments>
		<pubDate>Thu, 19 May 2011 14:18:42 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Rant]]></category>
		<category><![CDATA[NBA]]></category>
		<category><![CDATA[TV]]></category>

		<guid isPermaLink="false">http://www.petercallaghan.com/2011/05/sports-tonight-fail/</guid>
		<description><![CDATA[Aaaarrrrrgggghhhh!!!! You idiots on Sports Tonight (One HD). I&#8217;ve been avoiding all day seeing the score from the NBA Eastern Conference Finals Game 2, because I saw it was going to replay it tonight. Then, without warning, Brad McEwan spoils the result for me. I&#8217;m sure there are others out there on the same boat, [...]]]></description>
			<content:encoded><![CDATA[<p>Aaaarrrrrgggghhhh!!!!  You idiots on Sports Tonight (One HD). I&#8217;ve been avoiding all day seeing the score from the NBA Eastern Conference Finals Game 2, because I saw it was going to replay it tonight. Then, without warning, Brad McEwan spoils the result for me. </p>
<p>I&#8217;m sure there are others out there on the same boat, seeing the game is in late, and Sports Tonight is on the same channel.  Not happy :-/</p>
<p>While I&#8217;m having a rant, One HD is going downhill. What&#8217;s with all the movies being played? I thought One HD was supposed to be a 24 hour sports channel?!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petercallaghan.com/2011/05/sports-tonight-fail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Displaying results from two asynchronous jQuery calls</title>
		<link>http://www.petercallaghan.com/2011/05/displaying-results-from-two-asynchronous-jquery-calls/</link>
		<comments>http://www.petercallaghan.com/2011/05/displaying-results-from-two-asynchronous-jquery-calls/#comments</comments>
		<pubDate>Tue, 17 May 2011 14:05:36 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[WILT]]></category>

		<guid isPermaLink="false">http://www.petercallaghan.com/2011/05/displaying-results-from-two-asynchronous-jquery-calls/</guid>
		<description><![CDATA[I am the lead developer for an online business, and we primarily use ASP.NET for our programming, but also use other web technologies such as Javascript and jQuery to support our web application.  One of the tasks our site does is to gather a list of data from several different sources, and show the combined [...]]]></description>
			<content:encoded><![CDATA[<p>I am the lead developer for an online business, and we primarily use ASP.NET for our programming, but also use other web technologies such as Javascript and jQuery to support our web application.  One of the tasks our site does is to gather a list of data from several different sources, and show the combined results in a table, sorted by price.</p>
<p>We do this by our search results page loading with a summary of the search criteria, and then doing a jQuery Ajax call to a handler page that actually goes to get the data and return the results in a formatted HTML document to the calling page.  Now, we wanted to extend on this to add a second table of results from another source, but the new table will be different to the current table of results.</p>
<p>We wanted to do this via another ajax call, and to combine the results together.  The issue I came across was returning the results from the two ajax calls, and displaying the combined results.</p>
<p>A normal javascript (or other procedural programming language) would return the results to a variable for each function, then you can do something with those variables.  When this approach was taken with the ajax calls, the variables that were to hold the results were empty when used to display the info on the page.  The reason was the ajax call was still running when the javascript got to the bit to use the results, as is the nature of an asynchronous function (it runs in the background while other process can continue).</p>
<p>This might seem like a fairly straightforward answer, but if you’ve not used ajax a lot, it can be easily missed.  Anything that uses the response from an ajax function needs to be handled in the “Success” portion of the ajax call.  You can call other functions from here, but don’t rely on the results being available outside of the ajax call, as you can’t guarantee when the call will finish.</p>
<p>The answer to combine the results from two ajax functions was to nest the two functions.  Such as:</p>
<pre>$.ajax({
  url: 'searchresults.aspx',
  data: 'searchfor=something',
  cache: 'false',
  success: function(search){
    $.ajax({
      url: 'tools/extrainfo.ashx',
      data: 'moredetails=on+something+else',
      cache: 'false',
      success: function(more){
        countContinue=false;
        $('#tblSearchResults').html(search + more);
        Init();
      },
      error: function(){
        countContinue=false;
        $('#tblSearchResults').html(search);
        Init();
      }
    });
  }
});</pre>
<p>What’s happening here:</p>
<ol>
<li>The first ajax function looks for a response.  It gets a response, so the success handler function runs.</li>
<li>In the success handler, a second ajax function looks for a different response.  On success, the two results are combined in a table on the html page</li>
<li>If the second ajax call fails, it will just show the results from the first ajax call.</li>
</ol>
<p>This works, for us.  You could go down a different path and keep the two ajax calls completely separate, and have two sections that the results are updated to.  This would not have worked for us, as we wanted to keep the results in a single section of the calling page.</p>
<p>I have a feeling this is a fairly unique issue to our web application, but you never know, someone else out there might find the info useful.</p>
<p>Yay for my first WILT post  <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="http://www.petercallaghan.com/wp-content/uploads/2011/05/wlEmoticon-smile.png" alt="Smile" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.petercallaghan.com/2011/05/displaying-results-from-two-asynchronous-jquery-calls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What I Learnt Today (WILT)</title>
		<link>http://www.petercallaghan.com/2011/05/what-i-learnt-today-wilt/</link>
		<comments>http://www.petercallaghan.com/2011/05/what-i-learnt-today-wilt/#comments</comments>
		<pubDate>Tue, 17 May 2011 07:06:22 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[WILT]]></category>

		<guid isPermaLink="false">http://www.petercallaghan.com/2011/05/what-i-learnt-today-wilt/</guid>
		<description><![CDATA[Last week, I realised that I am not using my site enough, and I need to be putting more content here.&#160; Partially for my own reference, as it’s often good to keep things you think are interesting in the one place, for easy reference.&#160; What better place then your own website? I just had the [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, I realised that I am not using my site enough, and I need to be putting more content here.&#160; Partially for my own reference, as it’s often good to keep things you think are interesting in the one place, for easy reference.&#160; What better place then your own website?</p>
<p>I just had the idea of posting more of the things I learn, be it related to programming, or anything else of interest.&#160; Some posts will be very short, just a snippet of some information of anecdote I found interesting, so someone else might find it interesting too.&#160; Others will be a little more in depth, especially if it’s a programming related post.</p>
<p>So, today I am launching a new category… WILT – What I Learnt Today.</p>
<p>Stay tuned for my first WILT post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petercallaghan.com/2011/05/what-i-learnt-today-wilt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brisbane Floods</title>
		<link>http://www.petercallaghan.com/2011/01/brisbane-floods/</link>
		<comments>http://www.petercallaghan.com/2011/01/brisbane-floods/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 12:11:46 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Brisbane floods]]></category>

		<guid isPermaLink="false">http://www.petercallaghan.com/?p=77</guid>
		<description><![CDATA[My first hand look at the devastation caused by the Brisbane floods.]]></description>
			<content:encoded><![CDATA[<p>I have been rather slack in posting lately, and it&#8217;s mainly because there has been a lot going on in my life.  I&#8217;ve bought a house (well, a single story townhouse to be exact), and have been very busy at work and play.  I will add another post in a few days to elaborate on above, but today, I wanted to add some info on the recent flooding in Brisbane.</p>
<p>Today, I got a first hand look at the devastation the floods have caused.  I am lucky where I am on the North side of Brisbane.  All we got was a <strong><em>lot</em></strong> of rain, and some local flash flooding, but nothing compared to some of the southern and western suburbs.  Today, our entire office went out to volunteer our time to help out with the clean up.  After looking at information posted on a few web sites, we decided to head out to Yeronga, as we heard they needed volunteers out that way.  Seems everyone else had the same idea, as they had lots of people helping out.</p>
<p>Yeronga was pretty badly hit by the floods, but it got worse.  After a little while helping out at Yeronga, we decided to head on out to Goodna, a little further out west to see if we could find some people to help out there.  I tell you what, it&#8217;s sobering to see some of the houses out there.  To think that some were completely underwater, and some people have lost everything.</p>
<p>We found one such family that has lost everything, and their house was covered by the floodwater by more than two metres above their roof.  We spent the day helping them clean out the inside of their house, disinfecting everything and scrubbing out a lot of the muck off the walls, floors and ceilings in every room.  Needless to say they were very grateful for the help, and we were more than willing to lend our hands to help out.</p>
<p>The sobering thought is that was one house in their street that we helped out, and there were many others in the same boat.  To then think of the <a href="http://www.abc.net.au/news/stories/2011/01/11/3110157.htm?site=brisbane">number of suburbs affected by the floods</a>, and how many houses need the same assistance we gave, we need everyone that is able to lend some of their time to help out as much as possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petercallaghan.com/2011/01/brisbane-floods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET Uppercase text in a Textbox control</title>
		<link>http://www.petercallaghan.com/2010/06/asp-net-uppercase-text-in-a-textbox-control/</link>
		<comments>http://www.petercallaghan.com/2010/06/asp-net-uppercase-text-in-a-textbox-control/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 07:10:52 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.petercallaghan.com/?p=72</guid>
		<description><![CDATA[Earlier today I was looking for an easy way to force users to enter Uppercase text into a textbox on a web form I was creating. There are a few different solutions out there, including some Javascript functions to call when the user types into the text box, but I wanted something that wouldn&#8217;t require [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier today I was looking for an easy way to force users to enter Uppercase text into a textbox on a web form I was creating.  There are a few different solutions out there, including some Javascript functions to call when the user types into the text box, but I wanted something that wouldn&#8217;t require too much javascript (or none at all).  There were also some solutions that would allow the user to type whatever, then when the textbox loses focus, it would change to upper case.  Again, not bad, but not what I wanted.  What I wanted was, regardless of what the user entered, the textbox would display uppercase.</p>
<p>Step in CSS!  There is a CSS property text-transform, which can be either capitalize, lowercase or uppercase.  What this will do will force the text entered to display as capitalized, lowercase or uppercase (whatever you choose).  Now, this looked like a winner, as there was no scripting needed.  However, this only does half the job.  All the CSS class will do is display what is entered as uppercase, not actually convert it to uppercase.</p>
<p>The fix&#8230; when you get the text from the textbox in your codebehind, use the .ToUpper() method to convert the entered text to uppercase.</p>
<p><strong>In Summary</strong></p>
<ol>
<li>Add a CSS class with text-transform: uppercase;</li>
<li>Add this CSS class to any textbox you want to have uppercase text.</li>
<li>When getting the text from the textbox, use the .ToUpper() method to convert the text to uppercase.</li>
</ol>
<p>For me, this was the best solution, as it does not require any javascript, uses a simple CSS class, and only a very minor modification to the codebehind to make sure the uppercase text is taken as uppercase.</p>
<p>I hope someone else finds this helpful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petercallaghan.com/2010/06/asp-net-uppercase-text-in-a-textbox-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DropBox &#8211; Online data storage</title>
		<link>http://www.petercallaghan.com/2010/06/dropbox-online-data-storage/</link>
		<comments>http://www.petercallaghan.com/2010/06/dropbox-online-data-storage/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 06:23:26 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.petercallaghan.com/?p=70</guid>
		<description><![CDATA[A work colleague showed me DropBox today, as they were saying they have work files spread between their desktop at home, and a laptop. Now, I haven&#8217;t used it yet, but DropBox seems to be a nice and easy way to set up a synced folder between multiple machines. The only issue I have with [...]]]></description>
			<content:encoded><![CDATA[<p>A work colleague showed me <a href="https://www.dropbox.com/">DropBox</a> today, as they were saying they have work files spread between their desktop at home, and a laptop.  Now, I haven&#8217;t used it yet, but DropBox seems to be a nice and easy way to set up a synced folder between multiple machines.</p>
<p>The only issue I have with it is that your files are stored on the DropBox server.  You are placing faith in the security of their server to make sure your files are safe.  It got me thinking, how hard would it be to do something similar using your own server?</p>
<p>I am going to look into this and may look into developing a solution for people to use their own servers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petercallaghan.com/2010/06/dropbox-online-data-storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Theme Change</title>
		<link>http://www.petercallaghan.com/2010/06/theme-change/</link>
		<comments>http://www.petercallaghan.com/2010/06/theme-change/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 10:24:16 +0000</pubDate>
		<dc:creator>Pete</dc:creator>
				<category><![CDATA[Site Update]]></category>

		<guid isPermaLink="false">http://www.petercallaghan.com/?p=58</guid>
		<description><![CDATA[Just a quick note to say I&#8217;ve changed the theme of my site. I need to make a few minor changes which I will do shortly. Let me know what you think.]]></description>
			<content:encoded><![CDATA[<p>Just a quick note to say I&#8217;ve changed the theme of my site.  I need to make a few minor changes which I will do shortly.</p>
<p>Let me know what you think.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petercallaghan.com/2010/06/theme-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

