<?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>Will's Blog &#187; Work</title>
	<atom:link href="http://will.hughesfamily.net.au/category/work/feed/" rel="self" type="application/rss+xml" />
	<link>http://will.hughesfamily.net.au</link>
	<description>Travel, Photography, Geek Stuff</description>
	<lastBuildDate>Sat, 19 Nov 2011 14:26:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Leaving Massive</title>
		<link>http://will.hughesfamily.net.au/20100923/leaving-massive/</link>
		<comments>http://will.hughesfamily.net.au/20100923/leaving-massive/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 21:03:24 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://will.hughesfamily.net.au/?p=1042</guid>
		<description><![CDATA[For the last three years (give or take a month or so) I&#8217;ve been working with the great folks at Massive. Time has come for me to move on and find other great opportunities. If you know of any interesting .NET Jobs opening up in Sydney (or Melbourne), please let me know. I&#8217;ll be available [...]]]></description>
			<content:encoded><![CDATA[<p>For the last three years (give or take a month or so) I&#8217;ve been working with the great folks at Massive.<br />
Time has come for me to move on and find other great opportunities.</p>
<p>If you know of any interesting .NET Jobs opening up in Sydney (or Melbourne), please let me know.<br />
I&#8217;ll be available to start from about the 16th of November. Update: I&#8217;m no longer looking for work, thanks.</p>
<p>Things I&#8217;m currently interested in:</p>
<ul>
<li>Playing with cool gadgets: Android &amp; Windows Phone 7</li>
<li>Multithreading &amp; Parallel Processing in .NET 3.5 and 4.0. (ParallelFx, Rx, etc)</li>
<li>IPTV / Streaming Media Delivery</li>
<li>ASP.NET MVC</li>
</ul>
<p>Things I&#8217;ve been working with most recently:</p>
<ul>
<li>ASP.NET Web Apps (.NET 3.5/WebForms)</li>
<li>RESTful WCF Services</li>
<li>Building Custom Serialisation/Deserialistion Adaptors &amp; APIs for third party services.</li>
<li>Build Management</li>
</ul>
<p>To all the folks at Massive: It&#8217;s been a great ride; Working with some of the smartest folks I know. Thanks for all the fish.</p>
]]></content:encoded>
			<wfw:commentRss>http://will.hughesfamily.net.au/20100923/leaving-massive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Your skills are useless if you don&#8217;t like the work</title>
		<link>http://will.hughesfamily.net.au/20100426/your-skills-are-useless-if-you-dont-like-the-work/</link>
		<comments>http://will.hughesfamily.net.au/20100426/your-skills-are-useless-if-you-dont-like-the-work/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 12:27:29 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://will.hughesfamily.net.au/20100928/your-skills-are-useless-if-you-dont-like-the-work/</guid>
		<description><![CDATA[(Originally posted by me on AuTechHeads, April 26th 2010, and preserved here) Why a fancy resume is useless if you have no enthusiasm for technology. One of the things rarely discussed in guides on how to get a job in IT is enthusiasm for technology. I am of the opinion that first and foremost, you [...]]]></description>
			<content:encoded><![CDATA[<p>(<a href="http://www.autechheads.com/blogs/entryid/67/your-skills-are-useless-if-you-dont-like-the-work">Originally posted by me on AuTechHeads, April 26th 2010</a>, and preserved here)</p>
<p><em> </em></p>
<p>Why a fancy resume is useless if you have no enthusiasm for technology.</p>
<p>One of the things rarely discussed in guides on how to get a job in IT is enthusiasm for technology. I am of the opinion that first and foremost, you need to be a technology geek if you want to work in IT.</p>
<p>Don&#8217;t confuse being a technology geek with being the stereotypical pimply-faced, pale skinned, greasy haired dweeb. I talk simply of people who have an innate understanding of some area of IT. The kind of person that hears about some new thing and gets a little (or lot) excited.</p>
<p>Personally, I can&#8217;t understand why would anyone choose a job in IT if they didn&#8217;t like tech.<br />
It would be like me choosing a career in marketing or interior design. Areas in which I really have zero interest.</p>
<p>Yet when interviewing candidates for software development positions, I find far too many of these people. They tend to express no particular interest in any part of software development in particular, or technology in general.<br />
My only conclusion is that they are in IT because it&#8217;s a reasonably well paying job.</p>
<p>The not-so-funny thing about it is that these people have fantastic resumes, with years of experience across all sorts of tehnologies. Often they&#8217;ve worked for big name companies.</p>
<p>Perhaps these people work well in development teams where there&#8217;s a large corporate structure that treats developers like cogs. But for smaller development shops &#8211; you really need your wits about you.<br />
Situations inevitably arise where nobody on the team has experience with some particular technology.</p>
<p>A technology geek will be able to solve the problem (either on their own, or with the assistance of the team) and draw on their own experiences gained while reading about or experimenting with other related technology.</p>
<p>That, in my opinion is why you must be a technology geek to work in IT.</p>
<p>So, readers: What is your opinion &#8211; is there a role for non-tech-geek folks in IT?</p>
]]></content:encoded>
			<wfw:commentRss>http://will.hughesfamily.net.au/20100426/your-skills-are-useless-if-you-dont-like-the-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making WCF and ELMAH play nice together.</title>
		<link>http://will.hughesfamily.net.au/20090505/making-wcf-and-elmah-play-nice-together/</link>
		<comments>http://will.hughesfamily.net.au/20090505/making-wcf-and-elmah-play-nice-together/#comments</comments>
		<pubDate>Tue, 05 May 2009 11:42:44 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://will.hughesfamily.net.au/?p=972</guid>
		<description><![CDATA[Edit: This post was linked from Stack Overflow &#8211; you might want to check back there for more/better discussion about the topic. Recently Jeff Attwood wrote about how they are using ELMAH to get more information about the types of errors occurring in Stack Overflow. Effectively ELMAH is designed as a &#8216;drop in&#8217; fault capturing [...]]]></description>
			<content:encoded><![CDATA[<p>Edit: This post was linked from Stack Overflow &#8211; you might want <a href="http://stackoverflow.com/questions/895901/exception-logging-for-wcf-services-using-elmah">to check back there for more/better discussion about </a>the topic.</p>
<p>Recently Jeff Attwood wrote about how they are using ELMAH to get more information about the types of errors occurring in Stack Overflow.</p>
<p>Effectively ELMAH is designed as a &#8216;drop in&#8217; fault capturing system for ASP.NET. It works really well there, and for many situations you can get along just fine without even needing to recompile your application (it does need some editing of the web.config though).</p>
<p>I wanted a way to capture more detail about the faults occurring in our dev and production environments, especially when working with WCF &#8211; since a lot of error detail tends to be hidden, or is difficult to reproduce.</p>
<p>Dropping in ELMAH into a WCF application will by default mean you miss the vast majority of errors &#8211; WCF swallows the error, and doesn&#8217;t let it get back up to ASP.NET.</p>
<p>There&#8217;s two ways you can go about fixing this:<br />
<em>Side Note: If you&#8217;re not hosting WCF in ASP.NET, then Option 2 may not be directly possible for you without some modification. </em></p>
<p><strong>#1 &#8211; Wrap everything in try/catch blocks (if you didn&#8217;t already) and sprinkle this line around everywhere: </strong></p>
<pre>Elmah.ErrorSignal.FromCurrentContext().Raise(YourExceptionHere);</pre>
<p><strong>#2 Add a HttpHandler, and Decorate your Service(s) with an Error Handling attribute. </strong></p>
<p>I borrowed the ServiceErrorBehaviourAttribute code from somewhere else, and I can&#8217;t find the source of it at the moment. Effectively this was so I could manipulate the HTTP Status Codes going back to the client when there was an error.  It just so happens that this is a great way of capturing Exceptions and sending them to ELMAH at the same time.</p>
<pre style="overflow: scroll; width: 400px; height: 300px;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Dispatcher;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using System.Collections.ObjectModel;
using System.Net;
using System.Web;
using System.IO;
using Elmah;
namespace YourApplication
{
	/// &lt;summary&gt;
	/// Your handler to actually tell ELMAH about the problem.
	/// &lt;/summary&gt;
    public class HttpErrorHandler : IErrorHandler
    {
        public bool HandleError(Exception error)
        {
            return false;
        }

        public void ProvideFault(Exception error, MessageVersion version, ref Message fault)
        {
            if (error != null ) // Notify ELMAH of the exception.
            {
                Elmah.ErrorSignal.FromCurrentContext().Raise(error);
            }
        }
    }
	/// &lt;summary&gt;
	/// So we can decorate Services with the [ServiceErrorBehaviour(typeof(HttpErrorHandler))]
	/// ...and errors reported to ELMAH
	/// &lt;/summary&gt;
	public class ServiceErrorBehaviourAttribute : Attribute, IServiceBehavior
    {
        Type errorHandlerType;

        public ServiceErrorBehaviourAttribute(Type errorHandlerType)
        {
            this.errorHandlerType = errorHandlerType;
        }

        public void Validate(ServiceDescription description, ServiceHostBase serviceHostBase)
        {
        }

        public void AddBindingParameters(ServiceDescription description, ServiceHostBase serviceHostBase, Collection endpoints, BindingParameterCollection parameters)
        {
        }

        public void ApplyDispatchBehavior(ServiceDescription description, ServiceHostBase serviceHostBase)
        {
            IErrorHandler errorHandler;
            errorHandler = (IErrorHandler)Activator.CreateInstance(errorHandlerType);
            foreach (ChannelDispatcherBase channelDispatcherBase in serviceHostBase.ChannelDispatchers)
            {
                ChannelDispatcher channelDispatcher = channelDispatcherBase as ChannelDispatcher;
                channelDispatcher.ErrorHandlers.Add(errorHandler);
            }
        }
    }
}</pre>
<p>Once you&#8217;ve added that, then it&#8217;s just a matter of decorating your Service like so:</p>
<pre>    [ServiceContract(Namespace = "http://example.com/api/v1.0/")]
    [ServiceErrorBehaviour(typeof(HttpErrorHandler))]
    public class MyServiceService
    {
      // ...
    }</pre>
<p>&#8230;and then making sure ELMAH is added as a reference, and adding it&#8217;s entries to your web.config.</p>
<p>Then you&#8217;ll be getting a whole stack of errors you otherwise may not have seen.</p>
<p>It&#8217;s also possible to log exceptions from higher up the chain (eg Databases, Files, etc) by using the line of code from Option 1.</p>
<p><strong>Issues</strong></p>
<p>Whilst ELMAH is great for capturing information about the request, I havn&#8217;t yet found any way to capture the original HTTP Request &#8211; this would be the ultimate goal for me.</p>
<p>It&#8217;s also not particularly easy to capture additional information (such as database records, or objects in cache, etc)  without rolling your own copy of ELMAH.</p>
<p>All in all though &#8211; for a few minutes work, it&#8217;s one additional way to capture errors that your existing code may not be able to.</p>
<p>Yes, ELMAH even captures errors (in most situations) when your WCF services can&#8217;t start up (eg your fubar&#8217;ed some attributes).</p>
<p>Hope that helps.</p>
<p>NB: Use this code at your own risk, don&#8217;t blame me if it brings down your multi-million-dollar-per-hour application and causes you to go bankrupt.</p>
]]></content:encoded>
			<wfw:commentRss>http://will.hughesfamily.net.au/20090505/making-wcf-and-elmah-play-nice-together/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Two WCF Stumbles</title>
		<link>http://will.hughesfamily.net.au/20080316/two-wcf-stumbles/</link>
		<comments>http://will.hughesfamily.net.au/20080316/two-wcf-stumbles/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 14:10:15 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://will.hughesfamily.net.au/20080316/two-wcf-stumbles/</guid>
		<description><![CDATA[Here&#8217;s two things that caused me a bit of pain when working with WCF. Hopefully these pointers should help you get back to more productive things. No Output when returning Serialized / Serialised objects. I had been working on adding a significant number of methods and properties to a series of classes, and when I [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s two things that caused me a bit of pain when working with WCF. Hopefully these pointers should help you get back to more productive things.</p>
<h3>No Output when returning Serialized / Serialised objects. </h3>
<p>I had been working on adding a significant number of methods and properties to a series of classes, and when I went to test the service I got literally no output. </p>
<p>Debug points indicated that all properties were there, and valid &#8211; but still WCF wasn&#8217;t returning anything. There was no exceptions&nbsp; being returned to the client. </p>
<p>The best tool for debugging these sorts of solutions is to first of all enable Tracing and MessageLogging.&nbsp; This is done via the WCF Service Configuration Editor, on the Diagnostics tab.&nbsp; </p>
<p>Once you&#8217;ve done that, and re-run the projects &#8211; you can open up Service Trace Viewer.&nbsp; For me under Visual Studio 2008, this was under Microsoft Windows SDK v6.0A &gt; Tools.</p>
<p><img height="251" alt="image" src="http://will.hughesfamily.net.au/wp-content/uploads/2008/03/image.png" width="240" border="0"> </p>
<p>This tool then lets you open up the trace log generated in your solution directory, and see all the activity that&#8217;s been happening. </p>
<p><img height="301" alt="debugging-wcf-services" src="http://will.hughesfamily.net.au/wp-content/uploads/2008/03/debugging-wcf-services.jpg" width="502" border="0"> </p>
<p>From here, it was just a matter of scrolling down to the activity entry that had the yellow hilighting (indicating a warning), selecting it &#8211; then clicking on the Errors. </p>
<p>For me, the first time this happened to me, it was because <a href="http://will.hughesfamily.net.au/20080313/wcf-service-giving-blank-or-no-response/">I had stuffed up the DataMember Name values</a>. It has also occurred for other reasons, such as a property not being populated, when I had specified that it was both required, and also that it could not emit a default value. </p>
<h3>Can&#8217;t get mex to work</h3>
<p>No, this isn&#8217;t a misguided racial slur. I was having issues setting up the mexHttpBinding on an ASP.NET AJAX WCF Service. </p>
<p>The solutions all point towards the same thing, that you need to set up an endpoint, and set the contract to IMetaDataExchange, then set the behaviour to have &lt;serviceMetadata /&gt;. Except that it just wouldn&#8217;t let me add that property to my endpoint behaviour, and whenever I changed it to a service behaviour it would then not allow me&nbsp; to set the other properties I needed for that. </p>
<p>Well, perhaps I&#8217;m particularly slow &#8211; but hopefully this pointer will help someone else. </p>
<p>1: Create a NEW service behaviour: </p>
<blockquote><pre>
&lt;serviceBehaviors&gt;
&nbsp; &lt;behavior name="MyServiceBehavior"&gt;
&nbsp;&nbsp;&nbsp; &lt;serviceMetadata
      httpGetEnabled="true"/&gt;
    &lt;serviceDebug
     includeExceptionDetailInFaults="true"
     /&gt;
&nbsp; &lt;/behavior&gt;&lt;/serviceBehaviors&gt;</pre>
</blockquote>
<p>2: Add a new endpoint to your&nbsp; <strong>existing</strong> service</p>
<pre>&lt;endpoint
   address="mex"
   binding="mexHttpBinding"
   bindingConfiguration=""
   contract="IMetadataExchange" /&gt;</pre>
<p>3: Add the behaviorConfiguration you added in Step 1 to the <strong>Service </strong>(NOT the endpoint). </p>
<pre>&lt;service
  <strong>behaviorConfiguration="MyServiceBehavior"</strong>
  name="MyProject.MyService"&gt;</pre>
<p>I kept trying to add it to the endpoint, and failing miserably. So much time spent back-and-forth on this! </p>
<p>&nbsp;</p>
<p>That&#8217;s it for this instalment of &#8220;WCF is great, but I wish the config was a bit easier to understand&#8221;. Stay tuned for more exciting episodes!</p>
]]></content:encoded>
			<wfw:commentRss>http://will.hughesfamily.net.au/20080316/two-wcf-stumbles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WCF Service Giving Blank or No Response</title>
		<link>http://will.hughesfamily.net.au/20080313/wcf-service-giving-blank-or-no-response/</link>
		<comments>http://will.hughesfamily.net.au/20080313/wcf-service-giving-blank-or-no-response/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 06:18:43 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://will.hughesfamily.net.au/20080313/wcf-service-giving-blank-or-no-response/</guid>
		<description><![CDATA[Today I spent about half an hour banging my head against this problem: Whenever I would try and return a business object, I&#8217;d simply get no response from my WCF Service. Litterally nothing. The problem turned out to be that I had accidentally specified the DataMember Name of a property in a sub object twice. [...]]]></description>
			<content:encoded><![CDATA[<p>Today I spent about half an hour banging my head against this problem:<br />
Whenever I would try and return a business object, I&#8217;d simply get no response from my WCF Service. Litterally nothing. </p>
<p>The problem turned out to be that I had accidentally specified the DataMember Name of a property in a sub object twice. </p>
<p>So, I had my broken class set up like: </p>
<p><code><br />
    [DataContract(Name = "MyClass", Namespace = "Example")]<br />
    public partial class MyClass<br />
    {<br />
        [DataMember(Name = "property1")]  public int Property1 { get; set; }<br />
        [DataMember(Name = "property1")]  public string Property2{ get; set; }<br />
    }<br />
</code></p>
<p>An instance of this class was used as a property in another object, which was being returned from WCF. </p>
<p>.NET didn&#8217;t throw any sort of error unless I tried to return just &#8220;MyClass&#8221;. </p>
<p>Sure, it was my fault, but if you have a complex data structure, this could get awefully difficult to find without some sort of message from WCF. </p>
<p>Yes, this is part of that ultra nifty WCF JSON .NET 3.5 Flex project at work. <img src='http://will.hughesfamily.net.au/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://will.hughesfamily.net.au/20080313/wcf-service-giving-blank-or-no-response/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>LINQ to SQL, WCF, JSON and Flex. Oh My.</title>
		<link>http://will.hughesfamily.net.au/20080308/linq-to-sql-wcf-json-and-flex-oh-my/</link>
		<comments>http://will.hughesfamily.net.au/20080308/linq-to-sql-wcf-json-and-flex-oh-my/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 18:49:02 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://will.hughesfamily.net.au/20080308/linq-to-sql-wcf-json-and-flex-oh-my/</guid>
		<description><![CDATA[(A note to readers: This is all pure geek/coder content &#8211; Please skip this if nothing in the subject line makes sense) I started on a new project at work for a client a bit over a week ago, by virtue of the requirements, we decided to investigate the use of new version of Microsoft&#8217;s&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>(A note to readers: This is all pure geek/coder content &#8211; Please skip this if nothing in the subject line makes sense)</p>
<p>I started on a new project at work for a client a bit over a week ago, by virtue of the requirements, we decided to investigate the use of new version of Microsoft&#8217;s&nbsp; .NET Framework, Version 3.5, for all of the server-side services. </p>
<p>Microsoft have been quite strongly pushing the benefits of the new features of .NET 3.5. There&#8217;s been a few key features which are particularly interesting, and if all goes according to the marketing hype, should end up saving a huge amount of time and effort, whilst ensuring that we use well known and standardised interfaces. </p>
<h3>What features?</h3>
<p>Windows Communications Foundation (WCF) is particularly interesting because it promises to let you (mostly) remove the whole &#8216;how&#8217; and &#8216;where&#8217; portion of communications between tiers, and let you focus on the &#8216;what&#8217; and &#8216;when&#8217;. </p>
<p>In essence, WCF should let me state that I want to create (say) a Web Service, that accepts information in format X, and outputs responses in some other format. It doesn&#8217;t have to be a Web Service either, it could be a Peer to Peer network speaking in straight binary streams.</p>
<p>For this project the client-functionality is all in Flex, so we need to ensure that the Flex guys can quickly decode all the responses and turn them into Action Script objects. Through a bit of experimenting and application prior experience &#8211; Web Services speaking JSON appeared to be the easiest and most light weight method of doing this. </p>
<p>Language Integrated Queries (LINQ) is another particularly interesting technology, particularly because it lets me focus on what I want to do with the data I have, rather than spending time transforming it from the Database tables, rows, and procedures, into .NET objects and methods. </p>
<p>There are a number of implementations of LINQ, which enables you to query a variety of sources &#8211; the one that I&#8217;m most likely to use is LINQ to SQL (talking to SQL Server). Regardless of what I&#8217;m accessing however, the syntax is identical &#8211; again, removing the need to modify my code if I need to query an XML file, Oracle or MySQL Database, or even native .NET objects. </p>
<p>You can probably see a common theme here &#8211; WCF lets me focus on communication with the outside world without needing to write that interface or conversion functionality, and LINQ lets me access and manipulate data, without needing to write that interface either. </p>
<h3>So, it&#8217;s all plug and play?</h3>
<p>Well, that depends entirely on what you&#8217;re doing with your data. If you&#8217;ve got something like a CRM application where the client is responsible for managing (most of) the data, then yes it can quite possibly be almost plug and play if you&#8217;re going with a &#8220;CRUD&#8221; interface. </p>
<p>If your data structure is more complex, then you need to determine exactly where the split is. In this specific project, I&#8217;m presenting an abstracted view of the data that the client needs, and doing all of the business logic to manage data management in the SQL and Web Services Layer. </p>
<p>So far, the whole WCF and LINQ combination looks good. I&#8217;m hoping to post some more detailed posts later on.</p>
<h3>Further Reading</h3>
<p>I highly recommend Scott Guthrie&#8217;s LINQ to SQL series of posts. Start with <a href="http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx">Part 1: Introduction to LINQ to SQL</a></p>
<p>These resources have also been of a great help in getting my head around the whole LINQ thing:</p>
<ul>
<li><a href="http://blogs.msdn.com/kaevans/archive/2007/09/04/using-wcf-json-linq-and-ajax-passing-complex-types-to-wcf-services-with-json-encoding.aspx">Kirk Allen Evans&#8217;s Blog : Using WCF, JSON, LINQ, and AJAX: Passing Complex Types to WCF Services with JSON Encoding</a></li>
<li><a href="http://channel9.msdn.com/ShowPost.aspx?PostID=335761">Programming JSON with WCF in .NET Framework 3.5</a></li>
<li><a href="http://www.hookedonlinq.com/Default.aspx?Page=LINQtoSQL5MinuteOverview&amp;AspxAutoDetectCookieSupport=1">LINQ to SQL &#8211; 5 Minute Overview &#8211; Hooked on LINQ</a></li>
<li><a href="http://dotnet.org.za/rudi/archive/2007/11/12/wcf-linq.aspx">WCF + LINQ? &#8211; Rudi Grobler</a></li>
<li><a href="http://giantflyingsaucer.com/blog/?p=20">Talking to WCF with Flex 3 via JSON or XML</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://will.hughesfamily.net.au/20080308/linq-to-sql-wcf-json-and-flex-oh-my/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Good News, everybody!</title>
		<link>http://will.hughesfamily.net.au/20080210/good-news-everybody/</link>
		<comments>http://will.hughesfamily.net.au/20080210/good-news-everybody/#comments</comments>
		<pubDate>Sat, 09 Feb 2008 14:19:40 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://will.hughesfamily.net.au/20080210/good-news-everybody/</guid>
		<description><![CDATA[Last week I got made an offer that I couldn&#8217;t refuse.&#160; Massive &#8211; the company that I&#8217;ve been working for as a contractor through the nice folks at Happener since November &#8211; offered me a full time position. I accepted, and I&#8217;m now a Senior Developer for Massive Interactive.&#160; That title sounds strange to me. [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I got made an offer that I couldn&#8217;t refuse.&nbsp; </p>
<p>Massive &#8211; the company that I&#8217;ve been working for as a contractor through the nice folks at <a href="http://www.happener.com">Happener</a> since November &#8211; offered me a full time position. I accepted, and I&#8217;m now a Senior Developer for <a href="http://www.massive.com.au">Massive Interactive</a>.&nbsp; </p>
<p>That title sounds strange to me. <em>Senior</em> developer? Does that mean I&#8217;m over the hill now? <br />I suppose it&#8217;s somewhat similar to when I say I&#8217;m a .NET Developer, non-tech people generally go &#8220;Oh, you build websites&#8221;&#8230; not quite. (Hint: It&#8217;s a speciality in a certain set of technologies. Like saying you&#8217;re a Pediatric Nurse.)</p>
<p>Part of the role as a senior developer is to help provide direction to the more junior staff, so, that should be interesting to see how it works out. </p>
<p>Not much else has been happening &#8211; I&#8217;ve been busy with work for the most part. I&#8217;m still enjoying it, obviously.&nbsp; It&#8217;s nothing like working for Telstra, which for me. is a really good thing. </p>
<p>What&#8217;s news with you folks? </p>
]]></content:encoded>
			<wfw:commentRss>http://will.hughesfamily.net.au/20080210/good-news-everybody/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Will&#8217;s Moving: FAQ</title>
		<link>http://will.hughesfamily.net.au/20071022/wills-moving-faq/</link>
		<comments>http://will.hughesfamily.net.au/20071022/wills-moving-faq/#comments</comments>
		<pubDate>Sun, 21 Oct 2007 23:08:00 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://will.hughesfamily.net.au/20071022/wills-moving-faq/</guid>
		<description><![CDATA[Because people seem to be asking the same five or so questions about my new job, I thought I&#8217;d put up a FAQ. I&#8217;m sure it won&#8217;t stop people asking anyway though Who is the new job with? It&#8217;s a contract position through an agency. Who their client is (where I&#8217;ll be working) I&#8217;m not [...]]]></description>
			<content:encoded><![CDATA[<p>Because people seem to be asking the same five or so questions about my new job, I thought I&#8217;d put up a FAQ.<br />
I&#8217;m sure it won&#8217;t stop people asking anyway though <img src='http://will.hughesfamily.net.au/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  </p>
<p><b>Who is the new job with?</b><br />
It&#8217;s a contract position through an agency. Who their client is (where I&#8217;ll be working) I&#8217;m not saying yet &#8211; I&#8217;ll wait until I get to know the guys first. They&#8217;re located right in the centre of Sydney &#8211; 10 minutes from Central Station. </p>
<p><b>When do you leave / have you left Telstra yet?</b><br />
My last day at Telstra is Friday the 26th of October (so, this week is my last). </p>
<p><b>When do you start at the new job?</b><br />
Monday 5th November. </p>
<p><b>Are you commuting from Toronto?</b><br />
Nope &#8211; I&#8217;m moving down to Sydney. A 3 hour commute *each way* really isn&#8217;t anyone&#8217;s idea of a good time. </p>
<p><b>Have you got a place in Sydney yet? / When are you moving?</b><br />
Not yet. I&#8217;m staying with one of my Uncle&#8217;s first &#8211; he&#8217;s got a place about 15 minutes walk from the new job.<br />
I&#8217;m looking for my own place at the moment, again somewhere near the centre of Sydney. </p>
]]></content:encoded>
			<wfw:commentRss>http://will.hughesfamily.net.au/20071022/wills-moving-faq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Farewell, Auf Wiedersehen, Au revoir</title>
		<link>http://will.hughesfamily.net.au/20070928/farewell-auf-wiedersehen-au-revoir/</link>
		<comments>http://will.hughesfamily.net.au/20070928/farewell-auf-wiedersehen-au-revoir/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 01:10:55 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://will.hughesfamily.net.au/20070928/farewell-auf-wiedersehen-au-revoir/</guid>
		<description><![CDATA[For over five years, I&#8217;ve held a bit of an open secret: I&#8217;m an alien from fluidic space. Err, wait, let me start that again. For over five years, I&#8217;ve been working for Telstra. I started off &#8220;on the phones&#8221;, working in a service call centre. Due to me being a smart-ass (and critical of [...]]]></description>
			<content:encoded><![CDATA[<p><s>For over five years, I&#8217;ve held a bit of an open secret: I&#8217;m an <a href="http://en.wikipedia.org/wiki/Species_8472">alien from fluidic space</a>.</s> </p>
<p>Err, wait, let me start that again. </p>
<p>For over five years, I&#8217;ve been working for <a href="http://www.telstra.com">Telstra</a>. I started off &#8220;on the phones&#8221;, working in a service call centre. Due to me being a smart-ass (and critical of some very inefficient systems) I was taken off the phones after about two weeks, to write some reporting tools. </p>
<p>From that first app in Excel 97 using VBA to generate charts, I converted to a full-time employee, and went on to bigger and better things. When I wrote that there&#8217;s a <a href="http://will.hughesfamily.net.au/20070913/i-work-on-the-web/">reasonably good chance of my code having touched your life in some subtle way</a>, I wasn&#8217;t joking. The software I wrote helps people in Telstra do their jobs: Routing messages, generating reports, storing data, and keeping an eye on other applications.<br />
I&#8217;m proud of the work I&#8217;ve done, despite it not being world changing or highly visible. Sure there&#8217;s some icky bits (VBA, Oracle, MS Access, Classic ASP), but overall I hope that it&#8217;s made people&#8217;s lives better, and/or their jobs easier, in some small way. </p>
<p>Today, I resigned from my position at Telstra. It&#8217;s not something I did lightly, but, after consideration I&#8217;ve decided I need to move on. </p>
<p>For those that are curious, I&#8217;m not going to be unemployed &#8211; Today I&#8217;ve also accepted a contract role to a digital media company in Sydney. I won&#8217;t say who, yet, until I&#8217;ve had a chance to speak with them some more, but suffice to say it looks like a great company to work for, doing interesting things and meeting interesting people. </p>
<p>Oh, and yes, this means that I&#8217;ll be moving from Newcastle / Toronto. I&#8217;m still at Telstra until the 26th of October and then I&#8217;ll be off to Sydney and new things. </p>
<p>I&#8217;d also like to throw a quick shout-out to <a href="http://www.nickhodge.com/">Nick Hodge</a> for putting in a good word for me, and listening to me rant a little about work; Jack Greenrich for plenty of coding advice and guidance; <a href="http://wardy.plebian.net">Ian Ward</a> for getting me hired at Telstra and started down the software development path; and both Markus Hafner and Greg Dwyer of <a href="http://www.happener.com">Happener Recruitment</a> for helping me to get this new position. </p>
<p>Exciting times ahead, for sure&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://will.hughesfamily.net.au/20070928/farewell-auf-wiedersehen-au-revoir/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Hello from Tech.Ed On the Gold Coast</title>
		<link>http://will.hughesfamily.net.au/20070809/hello-from-teched-on-the-gold-coast/</link>
		<comments>http://will.hughesfamily.net.au/20070809/hello-from-teched-on-the-gold-coast/#comments</comments>
		<pubDate>Thu, 09 Aug 2007 04:15:49 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Travel]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://will.hughesfamily.net.au/20070809/hello-from-teched-on-the-gold-coast/</guid>
		<description><![CDATA[The Gold Coast has put on some great weather &#8211; nice and cool at night, warm and sunny during the day. I&#8217;ve taken a bunch of photos during Tech.Ed, I&#8217;ll upload them soon. In the mean time &#8211; Nick Hodge has heaps of photos on his photo stream. I&#8217;ve attended a bunch of interesting sessions [...]]]></description>
			<content:encoded><![CDATA[<p>The Gold Coast has put on some great weather &#8211; nice and cool at night, warm and sunny during the day. <br />I&#8217;ve taken a bunch of photos during Tech.Ed, I&#8217;ll upload them soon. In the mean time &#8211; Nick Hodge has <a href="http://www.flickr.com/photos/nickhodge/sets/72157601208725679/">heaps of photos on his photo stream</a>.</p>
<p>I&#8217;ve attended a bunch of interesting sessions &#8211; but there&#8217;s a heap of information on offer, so it&#8217;s easy to overload.</p>
<p>Next year I think MSFT needs to organise a few more social-networking things around the events. For example, get attendees to put &#8216;teched07au&#8217; tags on photos on Flickr, and blog posts, etc. Use SMS-broadcasts (possibly through twitter) to inform people of session changes and things like that (link it back to their commnet subcription). <br />I&#8217;ll probably think of a bunch of other small improvements as time goes on.</p>
<p>Overall, it&#8217;s been good fun the last few days, and I have learnt things which are relevant to my job, and which will help a little further on too.</p>
<p>I&#8217;ve also successfully avoided the vendors who want to steal my information so they can sell me stuff.</p>
<hr />
<p><b>Updates &#8211; LOLCode.NET, Movieworld, Bye-Bye Developer Guy</b></p>
<p><a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6791.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="240" alt="_MG_6791" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6791-thumb.jpg" width="167" align="left" border="0"></a> Nick gave his LOLCode presentation, to much incredulity by some people who attended. </p>
<p>Yes, LOLCode is a proper Turing complete language. And LOLCode.NET compiles into MSIL as well. </p>
<p style="clear: both"><a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6823.jpg" atomicselection="true" rel="lightbox[745]"><a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6936.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="_MG_6936" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6936-thumb.jpg" width="240" border="0"></a></a>&nbsp;Movie world was&#8230; interesting.&nbsp;About 3,000 people were packed into busses and trundled&nbsp;up&nbsp;to movie world for&nbsp;dinner and&nbsp;some rides.&nbsp;&nbsp; There was the BatWing, Superman and a few others &#8211; we didn&#8217;t have access to the full park, but there was a large area open. </p>
<p style="clear: both"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="162" alt="_MG_6823" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6823-thumb.jpg" width="240" align="left" border="0"></p>
<p style="clear: both"><a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6827.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="240" alt="_MG_6827" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6827-thumb.jpg" width="164" border="0"></a> </p>
<p style="clear: both"><a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6830.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="240" alt="_MG_6830" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6830-thumb.jpg" width="169" border="0"></a>&nbsp;</p>
<p style="clear: both"><a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6834.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="157" alt="_MG_6834" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6834-thumb.jpg" width="240" border="0"></a></p>
<p style="clear: both"><a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6842.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="240" alt="_MG_6842" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6842-thumb.jpg" width="160" border="0"></a> </p>
<p style="clear: both"><a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6856.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="240" alt="_MG_6856" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6856-thumb.jpg" width="237" border="0"></a>&nbsp;</p>
<p style="clear: both"><a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6875.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="_MG_6875" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6875-thumb.jpg" width="240" border="0"></a> </p>
<p style="clear: both"><a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6901.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="167" alt="_MG_6901" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6901-thumb.jpg" width="240" border="0"></a> </p>
<p style="clear: both"><a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6912.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="124" alt="_MG_6912" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6912-thumb.jpg" width="240" border="0"></a>&nbsp;</p>
<p style="clear: both"><a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6917.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="240" alt="_MG_6917" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6917-thumb.jpg" width="160" border="0"></a>&nbsp;</p>
<p style="clear: both"><a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6934.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="240" alt="_MG_6934" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6934-thumb.jpg" width="160" border="0"></a>&nbsp;</p>
<p style="clear: both">&nbsp;<a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6961.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="_MG_6961" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6961-thumb.jpg" width="240" border="0"></a>&nbsp;Homeward Bound</p>
<p style="clear: both">&nbsp;<a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6969.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="240" alt="_MG_6969" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6969-thumb.jpg" width="160" border="0"></a></p>
<p style="clear: both">&nbsp;<a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6971.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="160" alt="_MG_6971" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6971-thumb.jpg" width="240" border="0"></a> </p>
<p style="clear: both"><a href="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6990.jpg" atomicselection="true" rel="lightbox[745]"><img style="border-right: 0px; border-top: 0px; margin: 0px 5px 0px 0px; border-left: 0px; border-bottom: 0px" height="160" alt="_MG_6990" src="http://will.hughesfamily.net.au/wp-content/uploads/2007/08/mg-6990-thumb.jpg" width="240" align="left" border="0"></a>Frank&#8217;s &#8220;Catch Up with Frank&#8221; talk was interrupted so he could be serenaded to a version of Don McLean&#8217;s &#8220;American Pie&#8221; called &#8220;Developer Guy&#8221;. </p>
<p style="clear: both">
]]></content:encoded>
			<wfw:commentRss>http://will.hughesfamily.net.au/20070809/hello-from-teched-on-the-gold-coast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

