<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Western Devs</title>
  
  <link href="/feeds/darcy_lussier" rel="self" type="application/atom+xml"/>
  <link href="https://westerndevs.com" rel="alternate" type="application/atom+xml"/>
  
  <updated>2026-03-22T17:42:31.809Z</updated>
  <id>https://westerndevs.com/</id>
  
  <author>
    <name>Western Devs</name>
	<uri>https://westerndevs.com</uri>
    <email>info@westerndevs.com</email>
  </author>
  
  <generator uri="http://hexo.io/">Hexo</generator>
  
  <entry>
    <title type="html">The Cloud Is The Internet</title>
    <link href="https://westerndevs.com/cloud/azure/The-Cloud-Is-The-Internet/" rel="alternate" type="text/html"/>
    <id>https://westerndevs.com/cloud/azure/The-Cloud-Is-The-Internet/</id>
    <published>2017-04-22T15:30:00.000Z</published>
    <updated>2026-03-22T17:42:31.809Z</updated>
	<author>
	
	  
	  <name>D&#39;Arcy Lussier</name>
	  <email>darcy.lussier@gmail.com</email>
	
	  <uri>https://westerndevs.com</uri>
	</author>
    
    <content type="html"><![CDATA[<p>A number of years ago someone made this sticker and it became popular on the internet:</p><p> </p><p><img src="https://darcyblogimages.blob.core.windows.net/wdimages/ThereIsNoCloud.png" alt=""></p><p>It spoke to everyone's frustration with the failure of marketing and sales to properly communicate whatcloud computing was and how platforms like Azure and AWS fit into this new computing paradigm. In this post I want to give a fresh perspective on what cloud computing is and what we can do with it.</p><h3>Defining Cloud</h3><p>Microsoft defines the cloud this way:</p><blockquote><p><strong>&quot;Simply put, cloud computing is the delivery of computing services—servers, storage, databases, networking, software, analytics, and more—over the Internet (“the cloud”).&quot;</strong></p></blockquote><p>Cloud computing is leveraging the internet in new ways. We've been evolving cloud computing since the internet existed.</p><p>Consider the earliest days - the dawn of the World Wide Web that allowed us to post static pages of information that was discoverable over the internet. Soonsearch providers emerged, making information even easier to find; these were the first cloud applications.</p><p>We began adding dynamic aspects to web development. Technologies like Classic ASP, Java, PHP, and JavaScript emerged that opened up the internet to a new era ofinformation sharing and ecommerce. Messaging and chat applications emerged and while they were still installed locally on the client pc, it was the internetthat provided the ability to communicate.</p><p>More complex web frameworks emerged like ASP.NET, Cold Fusion, Java Server Pages, and others. The new scenarios they introduced required new connectivity options,and we saw service frameworks like WCF and REST emerge to better communicate over the internet.</p><p>More recently we've seen how client side libraries and asynchornous programming is changing internet computing again. Alongside that,cloud platforms like Azure and AWS have emerged offering evolved services from the simple data-transfer ones.</p><p>So all of this is to say: Cloud computing is the evolution of using the internet as a development platform.</p><h3>Cloud Service Providers</h3><p>Now that we've defined what cloud is, how does this change our view of what Azure, AWS, and other cloud service providers are? Microsoft provides us witha great definition of Azure, which we can apply to the others:</p><blockquote><p><strong>Microsoft Azure is a growing collection of integrated cloud services that developers and IT professionals use to build, deploy, and manage applications through Microsoft’s global network of datacenters.</strong></p></blockquote><p>This is an important distinction. Azure itself is not a cloud; its cloud enabled services (meaning it relies on the internet) and they happen to use ahuge number of large datacenters to operate those services.</p><p>What differentiates cloud service platforms from previous cloud computing implementations (like web mail or web app hosting) are certain tenets that cloud service platforms share:</p><ul><li><p>Reduced Costs - You aren't buying the servers or network components or running the datacenters yourself</p></li><li><p>Speed – Able to provision resources in minutes, capacity planning becomes administrative instead of managing physical assets</p></li><li><p>Global Scale – Scale elastically and provide the right amount of IT resources when its needed from the right geographical location</p></li><li><p>Productivity – Removes mundane IT activities, focuses on high value activities</p></li><li><p>Performance – Worldwide networks that offer benefits like reduced network latency and greater economies of scale</p></li><li><p>Reliability – Data backup, disaster recovery, and business continuity easier and less expensive</p></li></ul><h3>The Cloud Enables our Applications</h3><p>When we shift our view of cloud away from the physical datacenters and infrastructure powering cloud service providers and to the original meaning of cloud - the internet - then things make a lot more sense.Cloud computing has been changing the way we work, play, and connect ever since the internet was invented. We're just now seeing how far the cloud service providers are able to push the envelope.</p><p>There is a cloud, and it enables our applications to do amazing things!</p><p> </p><p><img src="https://darcyblogimages.blob.core.windows.net/wdimages/ThereIsACloud.png" alt=""></p>]]></content>
    
    <summary type="html">
    
      Let&#39;s reset our definitions and thinking around what cloud computing and cloud service providers are.
    
    </summary>
    
      <category term="cloud" scheme="https://westerndevs.com/categories/cloud/"/>
    
      <category term="azure" scheme="https://westerndevs.com/categories/cloud/azure/"/>
    
    
  </entry>
  
  <entry>
    <title type="html">Paper Cuts - My Review of PaperCall.io</title>
    <link href="https://westerndevs.com/conference/services/Paper-Cuts-My-Review-Of-PaperCall/" rel="alternate" type="text/html"/>
    <id>https://westerndevs.com/conference/services/Paper-Cuts-My-Review-Of-PaperCall/</id>
    <published>2017-03-07T16:30:00.000Z</published>
    <updated>2026-03-22T17:42:31.808Z</updated>
	<author>
	
	  
	  <name>D&#39;Arcy Lussier</name>
	  <email>darcy.lussier@gmail.com</email>
	
	  <uri>https://westerndevs.com</uri>
	</author>
    
    <content type="html"><![CDATA[<h2>Conference Time</h2><p>My next <a href="http://www.prairiedevcon.com" target="_blank" rel="noopener">Prairie Dev Con</a> is coming up June 6-7 2017, and this year I decided to use a service that's become very popular for speaker submissions called <a href="http://www.papercall.io" target="_blank" rel="noopener">PaperCall.io</a>. For speakers this service is fantastic - for free you can create a profile and add any number of talk abstracts. Then when a call for speakers opens, you can easily with just a few clicks submit any number of talks.</p><p>People can create events and open call-for-papers (CFP's) for free as well. Conferences are then included in their Open CFP list, with certain paid-level events getting &quot;featured&quot; treatment at the top of the list.</p><p>This creates a very attractive ecosystem for speakers and events, and removes the need for conferences to build their own system or use tools (i.e. SurveyMonkey) that weren't built specifically for conference session submission.</p><p>So that's the backdrop for the rest of this post. I went in very much looking forward to using PaperCall.io and I'm still very optimistic about the platform! But there are some crucial pain points that need to be addressed before I'd consider using it again for one of my conferences.</p><h2>Issue 1 - The Grid</h2><p>When you have people submit their talks, the conference view displays them in a grid as per the image below.</p><p><img src="https://darcyblogimages.blob.core.windows.net/wdimages/PC_Grid.JPG" alt="&amp;quot;PaperCall Grid&amp;quot;"></p><p>I want to point out a few things about the grid.</p><h3>20 Record Per Page Limit</h3><p>There's paging, but it limits you to 20 records per page. You can't change this to see larger number or even all.</p><h3>No Sorting By Speaker</h3><p>The headings you see are what you get. You can't do a sort by Speaker for instance. You also can't add your own columns so if you wanted to sort based on location you're out of luck.There is a search box, but that's only useful once you know what you're looking for (i.e. speaker name, location, etc.).</p><h3>No Bulk Status Update for Free Tier</h3><p>Talks can be Submitted, Accepted, Rejected, or Waitlist (Declined is reserved for speakers who are accepted but decline after the fact I guess). Setting a talk to one of those settings via the drop list actually triggers a post back (let me check...yes, we're in 2017 here). So if you have 10 talks that you want to set as accepted, you have to manually one at a time set their drop list value to Accepted. This feature is listed in the Professional tier, but I don't know how its implemented.</p><h3>No Filtering</h3><p>You can't set filters on the data either.</p><h3>Rating Style Doesn't Display</h3><p>I selected the &quot;Simple&quot; rating style (yes, maybe, no) compared to Five Star, but the Five Star is what was displayed in my grid.</p><h2>Issue 2 - Downloading Submissions</h2><p>So why not just download the data and manipulate it outside of PaperCall? If the service is supposed to be a one-stop-shop, then I shouldn't need to. I should be able to manage my speakers however I want within the application. But since we're limited to the grid as it is, exporting the data is the next best thing. Unfortuntaely you can only get to your data if a) you're on the paid tier, or b) you've identified talks as being Accepted. That's right - you have to go through the grid interface and assign statuses before you can export your own data (if you're using the free tier). Also note that the only download option you have is for Accepted talks, not Rejected or Waitlisted. If you're on the paid tier there's an API you can connect to...more on the pricing and features of the tiers later though.</p><h2>Issue 3 - Speaker Communication</h2><p>I'm a fan of having an end-to-end ecosystem for speakers and conference organizers, but the speaker communication suffers from a few clunky parts.</p><h3>No Email Contact</h3><p>Unless the speaker specifically puts their email address or Twitter handle into their profile, there's no way to communicate outside of the PaperCall &quot;Communications with Speaker&quot; mechanism. One of the problems with this is its tied ot a speaker AND a talk. So if you want to communicate with a speaker about 3 of their talks, you either pick one talk and include all the communication there (which ties it to the selected talk) or you break it up over the three talks. You get an email notification about the communication, which has a From that looks like this...</p><p>reply+ASERWQREWQREWQGASGAERWFSAFDFSAGHG343243242SFAFwerwfewf223432FRSDFDSFSF23GFSGWGWGEWFEWDE2FEWGWGWGWEFEWFEWFEWGEWGEWGEWGF32432432FEWFEWFFR32R32FSF==@mg.papercall.io</p><p>(that's not a real one, and its actually a longer address)</p><p>I find it looks messy and unprofessional.</p><h3>No Speaker Search for Organizers</h3><p>As a conference organizer I have no way to search the speaker profiles. They aren't public (at least at the free tier), and unless a speaker sends you their URL there's no way to get to it. I understand that this model puts the power in the hands of the speakers and prevents conferences from blanketing speakers with harassing communication about their event - I'm on board with that. But if I have a speaker who's submitted a talk to my event, it would be great to be able to see all the talks that speaker could present. Perhaps I really like the speaker but their submitted talk isn't a right fit, or has been filled by someone else already, or whatever. It would be great to see other talk options. Currently I would have to request that via the speaker communication channel mentioned above.</p><h3>Accepted/Rejected Communication Confusion</h3><p>Once you've identified talks as Accepted or Rejected you can then send an email message to the speakers letting them know. There's an issue though - you're accepting or rejecting the talk, not necessarily the speaker. I could have a speaker have 2 talks accepted but 3 rejected. With how the email works, that speaker would get &quot;Unfortunately your talk was not picked. Thanks for applying, and I hope we see you as an attendee (that's a paraphrase to the stock verbiage sent out).&quot; but then they'd get &quot;Congratulations, your talk was picked&quot; as well! That's confusing. I imagine speakers get multiple emails as well, since one seems to be sent for each session submitted. UGH!</p><p>The way I avoided this was to assign rejected sessions for speakers who were actually accepted into the Waitlist group. Definitely a workaround/hack solution.</p><h3>Speaker Headshots Default to Gravatar</h3><p>Although the interface seems to suggest that you can upload your own headshot, my Accepted Talk export provided a bunch of links to headshots that defaulted to the Gravatar for the person (if they don't have one, its the stock imgage). Not the worst thing in the world, but not the most ideal either.</p><h2>Issue 4 - Pricing</h2><p>There's three tiers for PaperCall - Community (Free), Professional ($499 USD/event), and Custom. I'll ignore Custom for now and focus on the Community and Professional.</p><p><img src="https://darcyblogimages.blob.core.windows.net/wdimages/PC_Pricing.JPG" alt="&amp;quot;PaperCall Pricing&amp;quot;"></p><p>Over Community, Pro provides:</p><ul><li>15 more organizers</li><li>Unlimited submissions</li><li>Read-Only API Access + Webhooks</li><li>Bulk Tagging/Submission Management</li><li>Privately Tag Your Submissions</li><li>Added promotion on the homepage</li><li>24 Hour email support</li></ul><p>So for $500 I still have to use the web site to manage my data, as the API is read-only. I can add private tags, but that means I can filter by search only and not in the grid. Also I'm thinking there's no way to bulk-tag talks.</p><p>Let me frame this in the context of Prairie Dev Con. I typically get under 200 sessions submitted. I'm the only organizer (even if I added more organizers, I can't see it going beyond 5). The <em>only</em> thing $500 gets me is the read-only API so I can export my data and 24 hour email support. This is a tough justification.</p><p>If the grid had a better interface, I was able to better communicate with speakers, and I could export my data whenever I wanted to work on it offline, I would absolutely pay $200 per event for the service...maybe even $300. And I think there are MANY conferences that are mid-range that would be open to that tier level. As it stands now, the mid-range conferences are likely looking to make the Free tier work and the mega conferences that are using the paid tier are getting a crazy deal.</p><h2>In Conclusion</h2><p>I love the idea of PaperCall. Speakers are on board, and through PaperCall I've had speakers submit that normally wouldn't have even known about my conference. But its definitely in need of some improvements, especially at the price points they've listed. All of my criticisms in this post are meant to share how to make the product better because I <em>want</em> PaperCall to be better!</p><p>But let's be honest, CFP isn't a complicated business process and there's no reason a competitor could come up with a better process. It's in PaperCall's best interest to listen to their customers, especially those willing to become paying customers if only certain functionality is added. We'll see if any advancement is made come later this Spring when I open up PrDC Deliver CFP.</p>]]></content>
    
    <summary type="html">
    
      My experience using PaperCall.io, a conference session submission service.
    
    </summary>
    
      <category term="conference" scheme="https://westerndevs.com/categories/conference/"/>
    
      <category term="services" scheme="https://westerndevs.com/categories/conference/services/"/>
    
    
  </entry>
  
  <entry>
    <title type="html">O365 Custom Domains - Configuring It For A Website</title>
    <link href="https://westerndevs.com/O365/Azure/O365DomainsForWebsites/" rel="alternate" type="text/html"/>
    <id>https://westerndevs.com/O365/Azure/O365DomainsForWebsites/</id>
    <published>2016-06-20T04:00:00.000Z</published>
    <updated>2026-03-22T17:42:31.806Z</updated>
	<author>
	
	  
	  <name>D&#39;Arcy Lussier</name>
	  <email>darcy.lussier@gmail.com</email>
	
	  <uri>https://westerndevs.com</uri>
	</author>
    
    <content type="html"><![CDATA[<p>Here's the situation - you've registered a custom domain and you've gone ahead and set it up to work withOffice 365 so you can have yourname@yourdomain.com for emails. Fantastic!</p><a id="more"></a><p>Now you've created a website and you'd like to use that same custom domain for it. That's whre I found myself tonightand as you'll read below the process isn't as straightforward as you'd think.</p><p>I'm hosting my website in Azure, and the first step there is to set up a CNAME record on the domain. I logged in tomy registrar's website (where I purchsaed the domain) but it informed me that I'd have to point my domain DNS <em>back</em>to theirs in order to make the change...which seemed silly. Or, they said, you can change it wherever I had moved thedomain to. In this case, it was to Microsoft's domain servers which I did when I set up Office 365.</p><p>So the question is...how do I now manage my domain when its hosted by Microsoft? Where is the domain administration tool?</p><p>The answer is...Office 365. Here's how you can access your domain's settings to add new entries like CNAME.</p><p>Step 1 - Log in to your Office 365 Administration portal, go down to Settings and select Domains.</p><p><img src="http://i.imgur.com/8E4aIG4.png" alt="http://i.imgur.com/8E4aIG4.png"></p><p>Step 2 - Select the domain from the list that you want to add a setting to.</p><p><img src="http://i.imgur.com/bTxyHar.png" alt="http://i.imgur.com/bTxyHar.png"></p><p>Step 3 - You'll be given three options. While DNS Management may seem like the likely stop, its not. Press the Check DNSbutton instead.</p><p><img src="http://i.imgur.com/DsuXUrK.png" alt="http://i.imgur.com/DsuXUrK.png"></p><p>Step 4 - The system will verify that &quot;All DNS records are correct, no errors found&quot; and will enable a DNS Settings area underneath.Click it.</p><p><img src="http://i.imgur.com/VSeo2Yv.png" alt="http://i.imgur.com/VSeo2Yv.png"></p><p>Step 5 - Under the DNS Settings options, expand the Custom Records and then click the New Custom Record button.</p><p><img src="http://i.imgur.com/4yW4SZg.png" alt="http://i.imgur.com/4yW4SZg.png"></p><p>Step 6 - Now we can select the type of record we want to add. Fill it out and hit Save.</p><p><img src="http://i.imgur.com/OOS19NM.png" alt="http://i.imgur.com/OOS19NM.png"></p><p>Step 7 - You'll now see a listing of the custom records entered for this domain.</p><p><img src="http://i.imgur.com/ZJeVxaf.png" alt="http://i.imgur.com/ZJeVxaf.png"></p><p>In my case, just needed to set the CNAME up with the settings Microsoft Azure instructed me to, and do some final configurationin the Azure portal to enable the custom domain for my website. You may have different instructions based on where you're hostingyour website at.</p><p>So just to recap: If you've set up a custom domain with Office 365, then you'll need to mangae your domain from the Office 365administration console going forward and not yourr domain registrar.</p><p>Any questions or clarifications needed, please leave a comment!</p><p>Thanks,</p><p>D</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;Here&#39;s the situation - you&#39;ve registered a custom domain and you&#39;ve gone ahead and set it up to work with
Office 365 so you can have yourname@yourdomain.com for emails. Fantastic!&lt;/p&gt;
    
    </summary>
    
      <category term="O365" scheme="https://westerndevs.com/categories/O365/"/>
    
      <category term="Azure" scheme="https://westerndevs.com/categories/O365/Azure/"/>
    
    
  </entry>
  
  <entry>
    <title type="html">Addendum To My Demystifying The Cloud Talk</title>
    <link href="https://westerndevs.com/_/Addendum-To-My-Demystifying-The-Cloud-Talk/" rel="alternate" type="text/html"/>
    <id>https://westerndevs.com/_/Addendum-To-My-Demystifying-The-Cloud-Talk/</id>
    <published>2016-03-03T05:00:00.000Z</published>
    <updated>2026-03-22T17:42:31.805Z</updated>
	<author>
	
	  
	  <name>D&#39;Arcy Lussier</name>
	  <email>darcy.lussier@gmail.com</email>
	
	  <uri>https://westerndevs.com</uri>
	</author>
    
    <content type="html"><![CDATA[<p>Back in November 2015 I spoke on &quot;Demystifying the Cloud&quot; <a href="http://www.sdeconf.com/" target="_blank" rel="noopener">at SDEC here in Winnipeg</a>. That session just got posted to InfoQ (<a href="http://www.infoq.com/presentations/cloud-2015" target="_blank" rel="noopener">you can view it here</a>), but in four months a lot can changein the IT industry. So here's an addendum to what was talked about.</p><h2>Microsoft Data Centers</h2><p>I mentioned it in the session, but wanted to point out again that Microsoft is bringing Azure data centers to Canada in 2016. <a href="http://reimagine.microsoft.ca/en-ca/" target="_blank" rel="noopener">You can read the story about this here.</a></p><h2>AWS Data Centers</h2><p>In January 2016 Amazon announced that they were going to open an AWS region in Montreal. From <a href="https://aws.amazon.com/blogs/aws/in-the-works-aws-region-in-canada/" target="_blank" rel="noopener">their blog post</a>:</p><blockquote><p>I am happy to announce that we will be opening an AWS region in Montreal, Québec, Canada in the coming year. This region will be carbon-neutral and powered almost entirely by clean, renewable hydro power.The planned Canada-Montreal region will give AWS partners and customers the ability to run their workloads and store their data in Canada.</p></blockquote><p>As of this post I haven't read anything about concrete dates beyond &quot;launching in 2016&quot;.</p><h2>IBM Enters Commercial Cloud Services</h2><p>At one point in my session an attendee pointed out that IBM has had cloud services in Canada already, so the Azure and Amazon announcements suggesting that the cloud &quot;is finally coming to Canada&quot; wasn't 100%. And he was right.</p><p>In 2013 IBM bought SoftLayer, a cloud platform company in Texas. In 2014 <a href="http://www.softlayer.com/press/ibm-opens-first-softlayer-data-center-canada" target="_blank" rel="noopener">IBM opened its first Canadian SoftLayer data center</a>, providing IaaS from a Canadian footprint. Services were limited to servers, storage, and networking though - not the PaaS or SaaS offerings of Azure/Microsoft and AWS.</p><p>But in mid 2014 <a href="http://www.ibm.com/cloud-computing/bluemix/" target="_blank" rel="noopener">IBM launched BlueMix</a>, their cloud platform for developers! In typical IBM fashion, their marketing on this has been non-existent (they just can't seem to understand how consumer-based marketing works); which is unfortunatebecause the platform looks REALLY interesting - <a href="http://www.ibm.com/cloud-computing/bluemix/watson/" target="_blank" rel="noopener">who wouldn't want to try integrating Watson into their app?!</a> BlueMix gives developers an IBM version of Azure's PaaS, and a solid 3rd option (ok, 4th if you count Google). Unfortunately thoughBlueMix isn't currently available <em>from</em> a Canadian data center.</p><h2>The Cloud Always Changes</h2><p>In the same way that an actual cloud changes shape as it moves through the air, the technical cloud does the same. The rate of growth, evolution, and change in cloud computing happens at an ongoing, rapid pace that can be hard to keep up to - especially for those of us whoblog or speak on the subject. But cloud is an important discussion to have, especially with more Canadian options enabling public and private organizations to take advantage of the cloud.</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;Back in November 2015 I spoke on &amp;quot;Demystifying the Cloud&amp;quot; &lt;a href=&quot;http://www.sdeconf.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;at S
    
    </summary>
    
    
  </entry>
  
  <entry>
    <title type="html">Octopus Deploy Gotchas: 400 Error and Can&#39;t Create File When It Exists</title>
    <link href="https://westerndevs.com/News/OctopusDeployGotchas/" rel="alternate" type="text/html"/>
    <id>https://westerndevs.com/News/OctopusDeployGotchas/</id>
    <published>2016-01-29T05:00:00.000Z</published>
    <updated>2026-03-22T17:42:31.804Z</updated>
	<author>
	
	  
	  <name>D&#39;Arcy Lussier</name>
	  <email>darcy.lussier@gmail.com</email>
	
	  <uri>https://westerndevs.com</uri>
	</author>
    
    <content type="html"><![CDATA[<p>I came across two isues with setting up a deployment with TFS and Octopus that seem pretty common based on my web searches. I wanted to document the root causes and the solutions I used to get around them.</p><h3>400 Error</h3><p>I began seeing 400 - Bad Request error messages when queueing up a build in TFS. The weird thing is that a build done seconds before was fine, but any subsequent build after that would throw the 400.</p><p>The reason for this is because the NuGet package being pushed had the same identifier as the previous NuGet package. To avoid this, you can do a few things:</p><ol><li>Manually set the version number.</li><li>Write some script that will set the package version number.</li><li>Enable auto-incrementing on your project's asembly info.</li></ol><p>I did #3. This is as simple as going into the AssemblyInfo.cs file of any project that will be deployed as part of the build and changing the AssemblyVersion value to..</p><p>[assembly: AssemblyVersion(&quot;1.0.*&quot;)]</p><p>OctoPack will automagically take the automatically incremented assembly version and use that for creating the NuGet package version number. The caveat here is that you must <strong><em>change code</em></strong> for this to work - by that I mean change a code file in your project which will trigger the assembly version to be incremented when a new build kicks off. For web projects, remember that <strong><em>HTML files don't get compiled</em></strong> so adding a line break in one of your views won't help because those don't get compiled and ergo don't trigger the assembly version increment.</p><p>This is not the ideal way to deal with this; its a stop gap. I shouldn't have to change a code file just to push new web files or images or whatever. I'm looking at how to implement a better solution, but for now this does work.</p><p>Also while there is docmentation that says adding &quot;?replace=true&quot; to your OctoPackPublishPackageToHttp MSBuild argument will force a NuGet package to deploy regardless if its the same version, I couldn't get that working. I have an email in to Octopus support and I'll update this post if I get it figured out.</p><h3>Cannot Create a File When It Already Exists</h3><p>Once Octopus does the deployment, you may see this error:</p><p><strong><em>Web site is stopped. Attempting to start...</em></strong></p><p><strong><em>start-webitem : Cannot create a file when that file already exists</em></strong></p><p>In my case, my deployments were completed when I manually checked them but this error forced all my deployments to show as having errored out and unsuccessful.</p><p>This issue seems to happen if you're deploying to a virtual directory in IIS and you're not using the &quot;IIS6+ Home Directory&quot; feature.</p><p>In Octopus select a project, click on Process, then click on the package you have set to deploy to IIS. Click on <strong><em>Configure Features</em></strong> (it's a hyperlink found closer to the bottom of the page. It's not obvious, so even doing a text search for it on the page can be a help).</p><p>This will bring up a dialogue of Enabled Features. Here you want to <strong><em>deselect the &quot;IIS Web Site and Application Pool&quot;</em></strong> and instead <strong><em>select &quot;IIS6+ Home Directory&quot;</em></strong>. Now part of your step will have an area to specify a site/virtualdirectory path. You can only have one of the IIS-related features enabled at a time so make sure you uncheck &quot;IIS Web Site and Application Pool&quot; feature if its checked.</p><p>On a side note, but hand-in-hand with typical virtual directory deployments, if you need to have your app deployed in a specific spot (read: your virtual directory points to a folder outside of IIS) then also enable the Custom Install Directory option in Configuration Features; this will let you specify which folder the package contents should be deployed to.</p>]]></content>
    
    <summary type="html">
    
      Lessons from setting up a successful Octopus deployment.
    
    </summary>
    
      <category term="News" scheme="https://westerndevs.com/categories/News/"/>
    
    
      <category term="Octopus" scheme="https://westerndevs.com/tags/Octopus/"/>
    
      <category term="TFS" scheme="https://westerndevs.com/tags/TFS/"/>
    
      <category term="TFS Build" scheme="https://westerndevs.com/tags/TFS-Build/"/>
    
      <category term="OctopusDeploy" scheme="https://westerndevs.com/tags/OctopusDeploy/"/>
    
  </entry>
  
  <entry>
    <title type="html">ASP.net 5 is now ASP.net Core 1.0, Get Over It</title>
    <link href="https://westerndevs.com/News/ASPNetCoreGetOverIt/" rel="alternate" type="text/html"/>
    <id>https://westerndevs.com/News/ASPNetCoreGetOverIt/</id>
    <published>2016-01-20T05:00:00.000Z</published>
    <updated>2026-03-22T17:42:31.804Z</updated>
	<author>
	
	  
	  <name>D&#39;Arcy Lussier</name>
	  <email>darcy.lussier@gmail.com</email>
	
	  <uri>https://westerndevs.com</uri>
	</author>
    
    <content type="html"><![CDATA[<p>You know who I love? Simon Timms, that's who I love. And the thing with love is that you can disagree about something, but that doesn't mean you stop loving.</p><p>So with that said, let me tell you what's WRONG <a href="http://www.westerndevs.com/News/ASP-Net-5-rename/" target="_blank" rel="noopener">with his recent post about the renaming of ASP.NET 5 to ASP.NET Core 1.0.</a></p><p>Actually my first beef isn't with Simon, its with Scott.<a href="http://www.hanselman.com/blog/ASPNET5IsDeadIntroducingASPNETCore10AndNETCore10.aspx" target="_blank" rel="noopener"> Do we really have to be all dramatic about how &quot;ASP.NET 5 is DEAD&quot;?</a> It's not dead, its just being renamed. Let's not make this more dramatic than it needs to be.</p><h3>The Issue</h3><p>Back to Simon's post. The problem he seems to have is the legacy attachment to the term ASP. For those who weren't doing web development in the late 90's, ASP (Active Server Pages) was a Microsoft technology for creating dynamic web applications. You added VBScript into your web pages to make it render things, which was processed on the server. When .NET came out, Microsoft kept the ASP name for their .NET based web technology - ASP.NET was born. Over the years ASP.NET has become a catch all for all sorts of Microsoft web tech - Webforms, MVC, Ajax, etc. There's an established base of developers who know and understand what ASP.NET means.</p><h3>What's in a Name?</h3><p>And that matters. Having a reference point to a technology for the masses that already associate Microsoft web technologies to ASP.NET matters a lot. It matters in technology adoption, it matters in approachability, it matters in how easy it is to sell new developers on something.</p><p>I don't think the ASP name is kept to communicate that &quot;it isn't any different&quot; as Simon suggests. It's kept to give people a reference point; it encourages people who are attached to ASP.NET technologies to look at this new Core 1.0 offering. Consider these two conversations.</p><hr><p>&quot;Hey, have you guys checked out the new web framework SimonSays?&quot;</p><p>&quot;No...we do ASP.NET.</p><p>&quot;Oh...no, it's from Microsoft!&quot;</p><p>&quot;Yeah, so was Silverlight. We'll stick to our proven framework&quot;</p><hr><p>&quot;Hey, have you guys checked out the new web framework ASP.NET 1.0 Core?&quot;</p><p>&quot;Oh...we do ASP.NET...I didn't realize there was a new framework out? What's all this about?&quot;</p><hr><p>And that is where the human element comes into play. People don't like change - that's why we have all these adages that &quot;change is hard&quot;. Remember when Coke changed their recipe? They didn't change the name, they just said it was &quot;New&quot; Coke. Why? Because Coke as a brand was important to people...it meant something...it was a point of reference. ASP.NET is the same thing, its a brand...a point of reference.</p><p>Let's look at Simon's other point: &quot;People shouldn't be moving to your framework because of subterfuge they should be moving because it is legitimately better. ASP.NET Core is legitimately better.&quot;</p><p><em>People should do the right thing because the right thing is the right thing.</em></p><p>If this were true, we wouldn't have an entire job category called Sales and Marketing. Also, this assumes that a well architected system based on ASP.NET 4.6 is somehow null and void since ASP.NET Core 1.0 is out. Of course it isn't - the value of a system does not lie in what technology it was written in but in how much value it provides its users.</p><p>Please read that last line again. Would I ever write something new in COBOL? No. Does that invalidate reliable, running systems written in it today? Of course not.</p><p>So this leaves us with a new platform that we must now sell to developers - not in a money sense, but in a &quot;please try it, please learn it, please understand what issues this solves in our previous technologies&quot;. And what better way to introduce something new than to give people a familiar frame of reference - ASP.NET.</p><h3>About That 9-5 Comment...</h3><p>Not directly associated with ASP.NET but a point I'll still address is the blanket assumption of what a &quot;9-5&quot; developer is. I'm going to tell you a big secret that I've learned while being at a 9-5 public entity - the reason that most devs don't move forward with new technology is because they're busy maintaining the systems they already have. Being able to test out a new framework or a new tool comes in spurts as greenfield projects come up, not as a design choice because some vendor released something new. And if you talk to those 9-5ers you may find that while the technology might not be bleeding edge the problems they are solving are pretty impressive. ASP.NET Core 1.0 is not beyond a 9-5ers ability.</p><p>What Simon doesn't do in his post, and what I'd love to hear, is what he thinks it SHOULD have been named. What name would have opened the door to all those new non-Microsoft developers while at the same time given existing ASP.NET devs a reason to even look its way when they have a moment to come up for air?</p><p>How about...Silverlight?</p>]]></content>
    
    <summary type="html">
    
      What the rename was and why it&#39;s the right one.
    
    </summary>
    
      <category term="News" scheme="https://westerndevs.com/categories/News/"/>
    
    
      <category term="ASP.NET 5" scheme="https://westerndevs.com/tags/ASP-NET-5/"/>
    
      <category term="ASP.NET Core" scheme="https://westerndevs.com/tags/ASP-NET-Core/"/>
    
  </entry>
  
  <entry>
    <title type="html">Setting Up Octopus Build Task on TFS 2015 On-Prem</title>
    <link href="https://westerndevs.com/tfs/octopus/continuous-delivery/Setting-Up-Octopus-Build-Task-on-TFS-2015-On-Prem/" rel="alternate" type="text/html"/>
    <id>https://westerndevs.com/tfs/octopus/continuous-delivery/Setting-Up-Octopus-Build-Task-on-TFS-2015-On-Prem/</id>
    <published>2016-01-06T18:47:46.000Z</published>
    <updated>2026-03-22T17:42:31.804Z</updated>
	<author>
	
	  
	  <name>D&#39;Arcy Lussier</name>
	  <email>darcy.lussier@gmail.com</email>
	
	  <uri>https://westerndevs.com</uri>
	</author>
    
    <content type="html"><![CDATA[<p>Last week I worked on getting Octopus Deploy's Build Task installed in TFS 2015. What I found was that there was a lot of great articles that all had parts of the process, but there was nothing that brought all the steps together. So here's my list, complete with links to the various posts/blogs with the details.</p><!-- more --><h3>Step 1 - Add OctoPack To Your Project</h3><p>OctoPack is... &quot;The easiest way to package your applications from your continuous integration/automated build process is to use OctoPack. OctoPack adds a custom MSBuild target that hooks into the build process of your solution. When enabled, OctoPack will package your Windows Service and ASP.NET applications when MSBuild runs.&quot; (from <a href="http://docs.octopusdeploy.com/display/OD/Using+OctoPack" target="_blank" rel="noopener">http://docs.octopusdeploy.com/display/OD/Using+OctoPack</a>).</p><p>OctoPack creates a nice little NuGet package out of your project which gets consumed by Octopus Deploy (which uses its own Nuget server under the hood to facilitate deployments). You can install OctoPack by adding it as a Nuget package in Visual Studio and you should add it <em>to all the projects you'll be deploying.</em> As an example, you'd add it to your web project but not to your unit test project.</p><h3>Step 2 – Create an API Key</h3><p>You'll need this API key for setting the Visual Studio Build step's MSBuild arguments in the next step. To generate this, follow the instructions on this help doc:</p><p><a href="http://docs.octopusdeploy.com/display/OD/How+to+create+an+API+key" target="_blank" rel="noopener">http://docs.octopusdeploy.com/display/OD/How+to+create+an+API+key</a></p><h3>Step 3 - Modify the MSBuild Arguments in your Visual Studio Build Step</h3><p>Over in TFS, you need to add some arguments to the MSBuild Arguments field in your Visual Studio Build step.</p><p> <img src="https://gwb.blob.core.windows.net/dlussier/Setting-Up-Octopus-Build-Task-on-TFS-2015-On-Prem_170820/OctopusDeployStep2_1100442752.png" alt="" title="OctopusDeployStep2_1100442752.png"></p><p>The arguments you need to use are:</p><pre><code>/p:RunOctoPack=true/p:OctoPackPublishPackageToHttp=http://&lt;path to octopus&gt;/nuget/packages/p:OctoPackPublishApiKey=&lt;api key you generated in step 2&gt;</code></pre><h3>Step 4 – Create a Generic Connected Service</h3><p>You need a generic service for the custom task to work. This service and your team project will share the same API key, which lets your build kick off the deployment via the service.</p><p>To create one, go into your team project and click the little gear icon in the top right corner (next to your user name). This will take you to the admin page, where you should see a number of tabs like Overview, Iterations, etc. Services will be the last one, click it.</p><p> </p><p><img src="https://gwb.blob.core.windows.net/dlussier/Setting-Up-Octopus-Build-Task-on-TFS-2015-On-Prem_170820/OctopusDeployStep4_860833856.png" alt="" title="OctopusDeployStep4_860833856.png"></p><p>On the Services page, click &quot;Add New Service Connection&quot; and select General. Fill in the values into the form that appears:</p><p>Connection Name:  Whatever you want to name this service connection.</p><p>Server URL: Where your Octopus server is</p><p>User name: Just put Octopus. Why? <a href="https://marketplace.visualstudio.com/items/octopusdeploy.octopus-deploy-build-release-tasks" target="_blank" rel="noopener">Dunno, that's what this post told me to do</a>.</p><p>Password/Token Key: Past in the API key that you created a few steps ago.</p><h3>Step 5 – Install Node and NPM (for TFX-CLI)</h3><p>Installing the Octo Build Task for Visual Studio Online is super easy, but for on-premise it requires some extra steps. To install the task (or any task for that matter, see the links at the end of this post for more info on that) you need a tool called TFX-CLI (TFS Cross Platform Command Line Interface). This is a tool that lets you do various things with TFS from a console, but it requires Node.JS and NPM.</p><p>Node is a JavaScript runtime and NPM is a package manager (think Nuget, Chocolatey, etc.).</p><p>So before you install TFX-CLI, you need Node and NPM on your system. Note that this doesn't need to be installed on your TFS server. As long as you have the proper permissions, you can install this locally on your machine and just connect to your TFS box.</p><p>To install Node, just head to their website and click on the download links. NPM should install with it by default. <a href="https://nodejs.org/en/" target="_blank" rel="noopener">https://nodejs.org/en/</a></p><h3>Step 6 – Install TFX-CLI</h3><p>Once you have Node and NPM installed, you can install TFX-CLI using NPM. Just open a command prompt and type in</p><pre><code>npm install –g tfx-cli</code></pre><p>You need to have an internet connection for this to work, as its going out and getting the latest copy.</p><h3>Step 7 – Enable Basic Authentication on TFS</h3><p>You can connect using TFX-CLI in two ways – with a personal access token (VSO) or with Basic Authentication. Microsoft NTLM isn't supported for TFX-CLI yet, so while you'll be passing in your domain credentials you'll be doing it over &quot;basic&quot; auth. Note that if you want to secure it (i.e. SSL) then you have to do that yourself manually, you don't get it out of the box.</p><p>Check out this help file from the TFX-CLI project site for a walkthrough on setting up basic authentication. <a href="https://github.com/Microsoft/tfs-cli/blob/master/docs/configureBasicAuth.md" target="_blank" rel="noopener">https://github.com/Microsoft/tfs-cli/blob/master/docs/configureBasicAuth.md</a></p><p>One thing I will call out – make sure you set the basic auth at the <em>web application</em> level and not the <em>web site</em> level, otherwise you'll just get invalid login responses in TFX-CLI.</p><h3>Step 8 – Clone the OctoTFS repo from Github</h3><p>Pull down the OctoTFS project from Github. You'll need Git installed for this to work (<a href="https://git-scm.com/" target="_blank" rel="noopener">https://git-scm.com/</a>).</p><p> <img src="https://gwb.blob.core.windows.net/dlussier/Setting-Up-Octopus-Build-Task-on-TFS-2015-On-Prem_170820/OctopusDeployStep8_-2114270080.png" alt="" title="OctopusDeployStep8_-2114270080.png"></p><p>Here I'm putting the OctoTFS project in a folder called &quot;OctoTFS&quot; in my C: drive.</p><h3>Step 9 – Login to TFS in TFX-CLI and Upload the Octopus Build Task</h3><p>FINALLY we can get the Octopus Build Task installed in TFS!</p><p>First, log in to TFX-CLI. Open a command prompt and type...</p><pre><code>tfx</code></pre><p>at the prompt (without the quotes). You should see this when you hit enter:</p><p> </p><p><img src="https://gwb.blob.core.windows.net/dlussier/Setting-Up-Octopus-Build-Task-on-TFS-2015-On-Prem_170820/OctopusDeployStep9_-176892480.png" alt="" title="OctopusDeployStep9_-176892480.png"></p><p>Now you need to log in to your TFS server. Type <code>tfx login –auth-type basic</code>.</p><p>You'll be asked to enter in the Service URL, which is the URL to the TFS collection you want to connect to. For your username and password, enter in your domain credentials or if you have a local account on the TFS server log in with that.</p><p> </p><p><img src="https://gwb.blob.core.windows.net/dlussier/Setting-Up-Octopus-Build-Task-on-TFS-2015-On-Prem_170820/OctopusDeployStep9-2_1644126400.png" alt="" title="OctopusDeployStep9-2_1644126400.png"></p><p>All of this has been leading up to this next moment – installing the build task! In the command line navigate to the OctopusBuildTasks folder. See the image below for the path where I installed mine earlier – if you follow the same steps, it should be there for you as well. Once you're there, type...</p><pre><code>tfx build tasks upload</code></pre><p>This will prompt you to put in the task path, which is one level below. Type...</p><pre><code>./CreateOctopusRelease</code></pre><p>and hit enter. You should see green text saying that the build task was uploaded successfully!</p><p> </p><p><img src="https://gwb.blob.core.windows.net/dlussier/Setting-Up-Octopus-Build-Task-on-TFS-2015-On-Prem_170820/OctopusDeployStep9-3_-1831133056.png" alt="" title="OctopusDeployStep9-3_-1831133056.png"></p><h3>Step 10 – Verification</h3><p>Head over to your TFS instance and bring up one of the projects within the collection you specified. Edit one of the builds (or create a new one) and add a deployment step. You should now see the Octopus Deploy Build Step as an option!</p><p> </p><p><img src="https://gwb.blob.core.windows.net/dlussier/Setting-Up-Octopus-Build-Task-on-TFS-2015-On-Prem_170820/OctopusDeployStep10_1810252032.png" alt="" title="OctopusDeployStep10_1810252032.png"></p><h3>Conclusion</h3><p>TFS will have to suffer through awkward deployment scenarios like this compared to the ease of installation that Visual Studio Online provides (adding this build task to VSO is automated and requires only a few button clicks to install). While it's great that we have tools like TFX-CLI, better (and updated) documentation would go a long way to help those of us trying to get as much out of our on-prem TFS.</p><p>You may be wondering why this isn't documented anywhere already. There actually is a lot of documentation out there about this process, but none that covered everything start to finish. Hopefully anyone else looking to get this working in their on-prem TFS environment can avoid some of the pain I went through (or even better, the install process for custom build tasks improves and this whole post becomes irrelevant).  </p><p>If you're intrigued at the idea of creating your own custom build tasks now that you know how to install them, Colin Dembovsky has a great series of blog posts that will walk you through that process, definitely check it out at the links below:</p><p><a href="http://colinsalmcorner.com/post/developing-a-custom-build-vnext-task-part-1" target="_blank" rel="noopener">http://colinsalmcorner.com/post/developing-a-custom-build-vnext-task-part-1</a></p><p><a href="http://colinsalmcorner.com/post/developing-a-custom-build-vnext-task-part-2" target="_blank" rel="noopener">http://colinsalmcorner.com/post/developing-a-custom-build-vnext-task-part-2</a></p>]]></content>
    
    <summary type="html">
    
      A step-by-step guide with screenshots
    
    </summary>
    
      <category term="tfs" scheme="https://westerndevs.com/categories/tfs/"/>
    
      <category term="octopus" scheme="https://westerndevs.com/categories/tfs/octopus/"/>
    
      <category term="continuous delivery" scheme="https://westerndevs.com/categories/tfs/octopus/continuous-delivery/"/>
    
    
  </entry>
  
  <entry>
    <title type="html">On Co-Location, Email, and Face-to-Face Communication</title>
    <link href="https://westerndevs.com/_/on-co-location-email-and-face-to-face-communication/" rel="alternate" type="text/html"/>
    <id>https://westerndevs.com/_/on-co-location-email-and-face-to-face-communication/</id>
    <published>2015-11-20T19:13:24.000Z</published>
    <updated>2026-03-22T17:42:31.824Z</updated>
	<author>
	
	  
	  <name>D&#39;Arcy Lussier</name>
	  <email>darcy.lussier@gmail.com</email>
	
	  <uri>https://westerndevs.com</uri>
	</author>
    
    <content type="html"><![CDATA[<p>I broke my own rule – I tweeted a thought as a controversial statement.</p><a id="more"></a><p><img src="https://gwb.blob.core.windows.net/dlussier/WindowsLiveWriter/OnCoLocationEmailandFaceToFaceCommunicat_6672/image_thumb.png" alt="image"></p><p>From this erupted responses from numerous people from the other point of view (mainly on the co-location piece and whether face-to-face is necessary, not so much defending email). So instead of trying to discuss this in 140 characters, here's my full train of thought on this.</p><p>The tweet was born out of two different events:</p><ol><li>A tweet by Steve Porter that &quot;email is not a collaboration tool&quot; (I fav'd it).</li><li>My team had just worked through some design decisions in our team room, where we all sit together.</li></ol><p>I was riding a high of team collaboration mixed with crusading angst against email when I combined all that into a single tweet.</p><p>Now let me talk through my thought process on all these.</p><h2>Co-Location is Incredibly Important</h2><p>When I think of the teams I've been on that have succeeded the most, they all share a common theme – they all worked in the same room or the same area (physical impediments (walls, hallways, different floors) are <em>real</em> barriers to teams collaborating together). Being co-located had the spin off benefit that the team felt more like a team than a group of employees assigned to the same project – there's a difference. Eating together, playing board games together, building relationships with each other – all of these happened, and ultimately benefited how we worked together because we were co-located.</p><p>There's a growing thought that employees don't need to be co-located, and in this wired &amp; connected world it shouldn't matter where we work. I can't (and am not trying to) argue with people's personal experiences where they feel they've had success. That's basically what I'm saying in this post – when I've had the most success in projects, co-location has been a factor.</p><p>Consider Mob Programming, which is somewhat of the extreme of this position and one that I'm <em>not</em> 100% sold on. Mob programming &quot;is very similar to Pair Programming, but the whole team works together on the same &quot;problem&quot; at the same time at the same computer.&quot; That's business owner, developers, testers…everyone, in one room, working on the same problem. Below is a video of a company that has adopted this as how they work every…single…day.</p><iframe height="315" src="https://www.youtube.com/embed/p_pvslS4gEI" frameborder="0" width="420" allowfullscreen="allowfullscreen"></iframe><p>If you talked to them, I'm sure they'd rave about how awesome this has worked for them. And really, when we talk about how to best organize a team, this speaks to the real truth: the best approach as to where team members should work – remote, co-located, or on top of each other all day – is best left to the individuals that make the team to decide.</p><p>For me, I will always defer to co-locating with a team I'm a part of than being remote. For me I find communication is best done face to face, with video chatting being at the very least of that. Which brings us to…</p><h2>Face to Face Is Necessary</h2><p>I think we all agree email isn't a collaboration tool and on this point I will argue with anyone. So let's deal with the face-to-face portion of the tweet.</p><p>No, I'm not going to quote the whole &quot;90% of communication is non-verbal&quot; because that opens up a whole new can of worms about how that theory has been debunked and that you can't really set a number to something like this because of how people are different, etc. etc. But, there is a lot of research into this area that does support that non-verbal cues DO make influence how we communicate and interpret communication. If you'd like to learn more on this, <a href="https://www.google.ca/webhp?sourceid=chrome-instant&amp;ion=1&amp;espv=2&amp;ie=UTF-8#q=ted+talks+non+verbal+communication" target="_blank" rel="noopener">there's a number of great TED talks on the subject</a>.</p><p>I've also found that face to face communication removes any interpretation or guesswork that an individual has to do around inferring tone and emotion. Consider this.</p><p>&quot;Hi Joe, please come by my office – I need to discuss something with you.&quot;</p><p>We've probably all gotten an email like this or similar in the past. What thoughts go through your mind when you see this? Without any context this can be read as everything from getting a promotion to getting fired.</p><p>Now imagine you're casually walking down the hallway and your boss passes by and says to you &quot;Hi Joe. Hey, can you please come by my office later? I need to discuss something with you.&quot; Your boss is relaxed, he even smiles when he sees you. He doesn't seem agitated or concerned. Now what goes through your mind? Probably that you just need to go talk about something with the boss and the thought that you may be in trouble doesn't even cross your mind.</p><p>Seeing someone, hearing the tone in their voice, experiencing their non-verbal cues, all plays in to how we <em>effectively</em> communicate with others, whether we're receiving or delivering the message.</p><p>I have a love/hate with Slack. I've had a couple of teams that used it extensively, and for some reason I always seem to get with people who – like me, admittedly – love to bug and poke each other. But sometimes, without understanding the non-verbal piece of communication, those messages can be misinterpreted as being meant-spirited or even cruel. I actually took a self-imposed hiatus from Slack for a bit because it was becoming counter-productive to the blissful communication utopia the platform promises.</p><p>I mentioned how effectively communicating plays in when receiving <em>or delivering</em>. Face to face communication allows us to pick up cues about the receiver and what state they're in. Are they happy, sad, frustrated? Are they in a place where a comment made would hurt them? Without non-verbal cues I have <em>no opportunity to alter my message to ensure its communicated effectively.</em></p><p>Where face to face or video isn't an option, voice is great as well. I'm also a proponent of using emoticons in emails to convey sentiment – its better than forcing someone to infer what your tone is.</p><h2>Let's Wrap Up</h2><p>Everyone is different – personalities, drivers, needs, wants, etc. Everyone communicates in their own way and has their own preferences. And no solution fits everyone. Mob Programming isn't for everyone, just like an all-remote team isn't for everyone either. For me, I will always look for co-locating with my team and doing face-to-face communication as much as possible, because that's where I've seen the  most success personally. If you're being successful in what you're doing – great, keep it up! If not, look at yourself, your team, and how you're working/communicating and see if there's an opportunity to change things.</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;I broke my own rule – I tweeted a thought as a controversial statement.&lt;/p&gt;
    
    </summary>
    
    
  </entry>
  
  <entry>
    <title type="html">Adventures in Windows IoT Core for Raspberry Pi 2</title>
    <link href="https://westerndevs.com/_/adventures-in-windows-iot-core-for-raspberry-pi-2/" rel="alternate" type="text/html"/>
    <id>https://westerndevs.com/_/adventures-in-windows-iot-core-for-raspberry-pi-2/</id>
    <published>2015-09-22T18:50:22.000Z</published>
    <updated>2026-03-22T17:42:31.818Z</updated>
	<author>
	
	  
	  <name>D&#39;Arcy Lussier</name>
	  <email>darcy.lussier@gmail.com</email>
	
	  <uri>https://westerndevs.com</uri>
	</author>
    
    <content type="html"><![CDATA[<p>Ever since I won a Raspberry Pi 2 at Microsoft Ignite I've been trying to figure out what to do with it. This week I decided to look at the Windows 10 IoT Core for Raspberry Pi 2 and see what I could do to get something up and running.</p><a id="more"></a><p>I'm not going to re-hash how to set up the device or how to configure your development environment; there's already some great articles that cover this which I link to further below. But I will share some first impressions which may prep you for working with the platform.</p><p>Windows IoT Core (WIoTC) is, as their own website states, a work in progress; a very early work in progress. Compared to Raspian, which has a desktop-like GUI complete with windows, WIoTC seems very primitive. You're very limited in what information you can get (I couldn't get the MAC address of the Raspberry Pi 2 from the WIoTC interface) and the suggested way to manage your device seems to be through PowerShell via another PC on the same network.</p><p>Deployed apps can either be a Universal Windows App or Headless (background process). Only one UWA will be displayed at a time. There's no built in menu or anything, so don't think of this as a Windows Phone type of experience…its less than that. Users won't automatically have an &quot;Installed Programs&quot; list to refer to. Also, while you can deploy a Universal Windows App to the Pi, <a href="http://ms-iot.github.io/content/en-US/win10/UnavailableApis.htm" target="_blank" rel="noopener">there's a documented list of unavailable APIs that aren't part of WIoTC</a>. So you can't just assume what you write for Win 10 desktop or even the phone platform will transfer over easily.</p><p>WIoTC doesn't take full advantage of the hardware yet either. <a href="https://twitter.com/mdf200" target="_blank" rel="noopener">Mike Dailly</a> posted <a href="https://vine.co/v/eDu3FF5Prdr" target="_blank" rel="noopener">a Vine showing that GameMaker Studio games can run</a> on the platform, but very slowly due to the GPU not being used at all (graphics are drawn using software emulation).</p><p>This may sound very negative, but considering how new WIoTC is and that they likely targeting the base/required functionality for an initial release I think its pretty cool that using Visual Studio I can deploy an app to this mini-computer on my desk. There's great opportunity with WIoTC and I'm actually happy they didn't try to force a bloated platform out for v1; better to involve the community and develop things as needed instead of making assumptions.</p><p>Now that I've done my first Hello World app, its time to start looking at the next step of playing with my Raspberry Pi. Stay tuned!</p><h4>Links</h4><p>Microsoft Dev Center – IoT<br><a href="https://dev.windows.com/en-us/iot" target="_blank" rel="noopener">https://dev.windows.com/en-us/iot</a>This site is the best starting point for setting up your device, dev environment, doing your first project, and getting up to date information.</p><p>Michael Crump's Guided Tour of Windows 10 IoT Core<br><a href="http://developer.telerik.com/featured/a-guided-tour-of-windows-10-iot-core/" target="_blank" rel="noopener">http://developer.telerik.com/featured/a-guided-tour-of-windows-10-iot-core/</a>Great walkthrough by <a href="https://twitter.com/mbcrump" target="_blank" rel="noopener">Michael Crump</a> which also shows how to use one of the Telerik controls and links to related topics.</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;Ever since I won a Raspberry Pi 2 at Microsoft Ignite I&#39;ve been trying to figure out what to do with it. This week I decided to look at the Windows 10 IoT Core for Raspberry Pi 2 and see what I could do to get something up and running.&lt;/p&gt;
    
    </summary>
    
    
  </entry>
  
  <entry>
    <title type="html">Microsoft&#39;s Clear Message for Canadian Partners</title>
    <link href="https://westerndevs.com/_/microsofts-clear-message-for-canadian-partners/" rel="alternate" type="text/html"/>
    <id>https://westerndevs.com/_/microsofts-clear-message-for-canadian-partners/</id>
    <published>2015-07-12T23:34:10.000Z</published>
    <updated>2026-03-22T17:42:31.824Z</updated>
	<author>
	
	  
	  <name>D&#39;Arcy Lussier</name>
	  <email>darcy.lussier@gmail.com</email>
	
	  <uri>https://westerndevs.com</uri>
	</author>
    
    <content type="html"><![CDATA[<p>I attended the Microsoft Worldwide Partner Conference in 2011 and 2012. Even 3-4 years ago we were hearing about the changing focus at Microsoft. While 2000-2008 was all about winning the platform war (.NET vs Java), 2008 had ushered in the cloud era in the Microsoft world. While Azure's platform as a service seemed front and center, WPC started beating the Office 365 drums. The message from Microsoft was starting to take shape – partners needed to get on board with where Microsoft was going with Azure and Office 365. Those that did would keep the attention and support of Microsoft.</p><a id="more"></a><p>In a discussion with a Microsoft Canada Tele-Managed Partner Manager within the last year, I heard this message refined and pointed – Yes there were sales support dollars available but only for initiatives/opportunities where there was a clear cloud component. Have a large custom .NET app dev opportunity that would be deployed on premise to the client's infrastructure? Great, good luck, but not the marching orders Redmond gave its sales teams.</p><p>This year, if there was any doubt where Microsoft has moved its focus, this tweet should put those doubts to rest.</p><p><img src="https://gwb.blob.core.windows.net/dlussier/WindowsLiveWriter/MicrosoftsFrankMessageforCanadianPartner_13BC2/image_thumb.png" alt="image" title="image"></p><p>&quot;<a href="http://www.twitter.com/mpncanada" target="_blank" rel="noopener">@MPNCanada</a> <em>We measure our success by Cloud, Customer Acquisition &amp; Consumption, and Usage&quot;</em></p><p>That tweet seemed to be attributed to Janet Kennedy, President of Microsoft Canada. It lays out clearly how Microsoft Canada is measured, and by extension how the Partner community is measured.</p><h3>Cloud</h3><p>Booking business for Azure, Office365, or any other cloud-based service/platform Microsoft offers</p><h3>Customer Acquisition &amp; Consumption</h3><p>Getting customers to purchase cloud services (either a-la carte or through an enterprise license agreement (ELA). Consumption is different than usage though, which we'll cover next. Consumption is getting a client to agree to move some servers to Azure, or purchase 100 licenses of Office 365. Consumption gets the Microsoft products <em>in production</em> at the client.</p><p>Over the years I heard of many large enterprise-size organizations who had an ELA which provided all sorts of licenses. Incredibly some products that the ELA provided valid licenses for were never deployed; they were never <em>consumed</em>. You can't get usage traction unless a customer actually uses (consumes) the product.</p><h3>Usage</h3><p>Usage is the recurring revenue generated by using metered cloud services. This is the part where the meter runs and Microsoft (and the Partners) make money. Remember the example client we talked about who moved some servers to Azure? Maybe they realized some great cost savings over maintaining physical servers. Maybe they decide to move MORE servers to Azure, and more applications/processes to those servers, requiring bigger Azure VM instances. This is how <em>consumption</em> can lead to higher <em>usage</em>.</p><h3>So Look Partners...</h3><p>Back in 2011 and 2012, the message was less frank and more suggestive.</p><p>&quot;Hey, we're moving in this direction. You should _really _listen to what we're saying. Things are going to be changing.&quot;</p><p>Now in 2015, the message is loud and clear.  &quot;The cloud train has already left the station. A lot of partners are already on board, but if you run you can catch up and get on too. But we aren't slowing down for stragglers.&quot;</p><p>And this isn't a bad thing, or a mean thing, or anything out of malice. Microsoft had to change their business to evolve, and having a partner program they rely on to move their product through means those partners need to be open to changing their focus as Microsoft does. Microsoft sets the vision for their partners, not the other way around.</p><p>Those partners that were part of the program from 2000 to 2010 and built their business on custom app dev and on-premise IT services have a choice to make – adapt to the new world of Microsoft, or figure out how to live in a world without Microsoft's support.</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;I attended the Microsoft Worldwide Partner Conference in 2011 and 2012. Even 3-4 years ago we were hearing about the changing focus at Microsoft. While 2000-2008 was all about winning the platform war (.NET vs Java), 2008 had ushered in the cloud era in the Microsoft world. While Azure&#39;s platform as a service seemed front and center, WPC started beating the Office 365 drums. The message from Microsoft was starting to take shape – partners needed to get on board with where Microsoft was going with Azure and Office 365. Those that did would keep the attention and support of Microsoft.&lt;/p&gt;
    
    </summary>
    
    
  </entry>
  
  <entry>
    <title type="html">The Changing Winnipeg Technology Consulting Landscape</title>
    <link href="https://westerndevs.com/_/the-changing-winnipeg-technology-consulting-landscape/" rel="alternate" type="text/html"/>
    <id>https://westerndevs.com/_/the-changing-winnipeg-technology-consulting-landscape/</id>
    <published>2015-07-12T23:26:59.000Z</published>
    <updated>2026-03-22T17:42:31.828Z</updated>
	<author>
	
	  
	  <name>D&#39;Arcy Lussier</name>
	  <email>darcy.lussier@gmail.com</email>
	
	  <uri>https://westerndevs.com</uri>
	</author>
    
    <content type="html"><![CDATA[<p>I've been noticing a few things lately here in Winnipeg:</p><ul><li><p>Less large custom application development projects</p></li><li><p>More adoption of packaged software</p></li><li><p>More adoption of Software as a Service platforms</p></li><li><p>Organizations wanting control over technology projects, only looking for augmentation roles to fill gaps</p></li><li><p>The commoditization of software developers with broad skills</p></li></ul><a id="more"></a><p>The cloud is removing the need for organizations to manage and maintain their own infrastructure. Software as a Service provides a model where organizations can rent lower-priority applications/services while focusing their own development staff on higher priority initiatives. Consultants with specialized skills in mobile, integration, security, and platforms (SharePoint, SAP, etc.) still demand higher rates, but organizations are no longer willing to pay a premium for .NET or Java developers.</p><p>Consulting firms who sell professional services need to become aware of these trends and pivot on what they offer to their marketplace. Consider the items below, all of which should have initiatives in flight or be on the radar for any professional services company.</p><h3>Cloud</h3><p>Azure and AWS are gaining more customers by the day, and releasing new features and offerings on their cloud platform. Microsoft announced at Ignite this year that organizations would be able to install the exact same Azure software that Microsoft uses in the public Azure cloud, meaning organizations can get on board with Azure on prem and move to a hybrid or hosted cloud model when ready. Consultants need to be able to show customers how to move to the cloud, the benefits of moving to the cloud, and provide the services to bridge the knowledge gaps in developing software for the cloud.</p><h3>Software as a Service</h3><p>The <em>Buy/Build</em> mantra has been replaced with <em>Buy/SaaS/...I guess we'll consider building</em>. If a package solution can't be found, organizations are more than willing to consider a SaaS solution before investing in a custom built application that must then be maintained. Consultants need to be aware of available solutions when advising clients on the best options for their needs. There's also an opportunity for consulting organizations to create their own SaaS and enter the product market.</p><p>Also note that even if an organization opts to build a custom application, most enterprises employ skilled developers who can deliver it instead of sourcing out to a consulting firm; more and more I've seen professional service organizations be contacted for resource augmentation rather than taking an entire project.</p><h3>Security</h3><p>Security has been largely ignored for years. With recent hacks, threats of cyber-attacks, and the continual onslaught of viruses, organizations are finally realizing that they need to treat security seriously. While this is a growing area, there is still more work available than service providers that can offer it.</p><h3>Mobile</h3><p>If you aren't in the mobile space already then you're lagging behind. Companies that invested in mobile skills are reaping the rewards now. Organizations are realizing that mobile solutions aren't just about empowering the internal workforce; its also about reaching customers and the community at large. What those organizations need are partners who can help show what's possible.</p><h3>Integration</h3><p>As organizations incorporate non-centralized IT solutions with cloud, SaaS, and mobile into their environments that probably include enterprise systems alongside custom/niche applications, sharing data across all of these will be an important consideration. Integration consultants who can help clients navigate their system landscape and implement things like ESBs, data warehouses, and BI/Analytics solutions will find opportunities – although in laggard markets there will be a need to educate clients on the benefits.</p><h3>What About Your Market?</h3><p>I'd be curious to hear if people in other markets, whether in Canada or in the US, are seeing/experiencing the same type of trends. Or maybe you're in Winnipeg and have a different take on the market. If you have comments, either leave them below or if you decide to do your own blog post please leave a link to it in the comments.</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;I&#39;ve been noticing a few things lately here in Winnipeg:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Less large custom application development projects&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;More adoption of packaged software&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;More adoption of Software as a Service platforms&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Organizations wanting control over technology projects, only looking for augmentation roles to fill gaps&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The commoditization of software developers with broad skills&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
    
    </summary>
    
    
  </entry>
  
  <entry>
    <title type="html">Running your first code camp</title>
    <link href="https://westerndevs.com/_/running-your-first-code-camp/" rel="alternate" type="text/html"/>
    <id>https://westerndevs.com/_/running-your-first-code-camp/</id>
    <published>2015-07-05T19:33:21.000Z</published>
    <updated>2026-03-22T17:42:31.827Z</updated>
	<author>
	
	  
	  <name>D&#39;Arcy Lussier</name>
	  <email>darcy.lussier@gmail.com</email>
	
	  <uri>https://westerndevs.com</uri>
	</author>
    
    <content type="html"><![CDATA[<p>Every now and then I get people asking me about how to run a conference. One thing I encourage is that people start small and build from there. I ran the Winnipeg Code Camp for a number of years before evolving it into Prairie Dev Con, and the foundation of the code camp is the base that Prairie Dev Con grew out of.</p><p>So below are my thoughts on how to run a one day, multi-track, Code Camp.</p><h3>What's a Code Camp</h3><p>Code Camps became popular in the 00's. They were free one day technology conferences that focused on showing off technology (so more code, less marketechture). This is the true volunteer event – low budget, high volunteerism, but still high quality and lots of fun. All costs are covered by sponsors and there's never an entry fee for attendees.</p><p>Ok, so let's start planning our Code Camp!</p><h3>The Code Camp Format</h3><p>For a first-time code camp, I would suggest doing a single day event on a Saturday, running two or three tracks of sessions (this will be based on your market size and speaker pool). Schedule will look like this:</p><p>8:30 – 9:30 Breakfast/Registration<br>9:30 – 9:45 Welcome<br>9:45 – 10:45 Session<br>11:00 – 12:00 Session<br>12:00 – 1:00 Lunch<br>1:00 – 2:00 Session<br>2:15 – 3:15 Session<br>3:30 – 4:30 Session<br>4:30 – 5:00 Wrap-Up</p><p>That gives you 10 sessions for a two track or 15 sessions for a three track setup.</p><h3>Step 1 – Gauge Interest</h3><p>A big part of a Code Camp's success is the energy and commitment that an organizer brings to it, but you also need to know if your community shares your vision and will support the event. Reaching out to local technology user groups to see if their organizers and members share the same excitement is your starting point. It also makes it easier to promote the event if you can get leaders of those communities on board.</p><p>Now realize you're just gauging interest here, not commitment. I ran a PrDC where community leaders – who were all very well meaning – said I'd get well over 300 attendees out; I struggled to get 180. The reality is that until you run your first event you won't have an idea of how many people you'll actually get out, so early on you're just gauging <em>interest</em> and not looking for <em>commitment</em>.</p><p>You also need to gauge interest with the people who will be speaking at the Code Camp. We'll talk about doing a call-for-speakers later, but especially for an initial event you want to have a good number of speakers already lined up and committed to the event.</p><h3>Step 2 – Source Venues</h3><p>If there's enough interest, now is the time to look at venues. For a Code Camp you want to do this on the cheap. Don't even bother with hotels or conference centers. You're first hit should be to local schools, colleges, and universities. Here's why:</p><p>They'll already have lecture halls and classrooms set up with projectors (verify that projectors are included in room rental prices)</p><p>They're usually cheaper to rent rooms space from then hotels/conference centers</p><p>No classes happen on Saturdays (typically) so space will be more generally available</p><p>They <em>can</em> be located on more convenient public transportation routes (buses, subways, etc.) so easier to get to for people</p><p>If you have any contacts with the administration, you may be able to pitch this as a good community event that students will benefit from and get a discount on the rooms.</p><p>When sourcing venues keep in mind that you need n+1 rooms, where n is the number of tracks you're running. The +1 is for your <em>plenary</em> room – the place that all attendees will meet for meals, for the welcome/kickoff in the morning, and for the wrapup at the end of the day. All rooms should be close together so attendees aren't required to go walking all over the place.</p><p>Make sure that you ask about parking – if its free, if there's paid lots nearby and what the costs are, and what the street parking rules are. You'll want to communicate this to your attendees.</p><p>Also ask about internet access – is there public wi-fi, is there a charge, is a passcode required, etc. This information will be important to provide to speakers as well if any require internet access for their planned talks.</p><p>Finally, while this shouldn't be an issue with building codes and current laws, make sure that the venue you select is easily accessible for people with disabilities.</p><h4>Step 2.1 – Food</h4><p>For your first code camp food is definitely optional – although if you decide to not do food you should try to ensure that there's enough restaurant options and coffee shops for attendees nearby the venue.</p><p>If you do decide to do food check what your venue's policies are. Most venues will have a policy that you must use their own food services and can't bring from outside sources; and that also means that price will be higher because venue-based food is almost always more expensive (always in my experience). This is where gauging interest is important because since you aren't charging a fee there's no way to know how many people will show up. If you charged a fee, even if they no-show you could still cover their food, but in this case its all about estimation.</p><p>You could run your first code camp, gauge attendees, and use that to base future events off of and incorporate food later. Or if you're confident in your estimations then figure out a reasonable menu. Code camps are the <em>only</em> event where I think continental breakfasts are ok. Also look at sandwiches, pizza, or chicken fingers &amp; salad for lunch – typically on the lower side of cost and generally liked by most people. Do take into account people's dietary needs (allergies, cultural preferences, etc.). I avoid any food option based on pork or seafood and stick to chicken or beef from a meat point of view. You could have vegetarian and vegan folks as well. Just make sure when you review the available menu that there are options in case you need alternate meals.</p><h3>Step 3 – Who's Running This?</h3><p>Now that you have your venue, a date, and food cost, it's time to start approaching sponsors. But first, this is when you should tighten up your leadership organization if you haven't already. These types of events get run by very well meaning individuals who want to improve their communities, but they're also run by people who aren't perfect and stuff can happen (<a href="http://geekswithblogs.net/dlussier/archive/2013/07/05/153351.aspx" target="_blank" rel="noopener">I blogged about a community event gone bad here</a>). So let's talk about how you can organize this.</p><p>For the Winnipeg Code Camp although I'd organize it we'd use the Winnipeg .NET User Group as a neutral and already set up organization to run finances, sponsorship, and communication through. Finances because a community group account was already set up and the guy who handles finances was willing to be the pass through for everything. It's also good to have a neutral body be the host for sponsorship – some companies don't want the perception that they're <em>partnering with competition</em> to put on an event, but they'll definitely sponsor a neutral organization's event (so they're sponsoring the .NET User Group's Code Camp, not putting one on with competitors).</p><p>Here are options:</p><p>Leverage an existing organization to act as the &quot;host&quot;. A technology user group is ideal for this, however note that whoever is seen as hosting is also owning liability for the event as well. We'll talk about that in a second.</p><p>Write up an organizer's agreement stating who is responsible for what and who is accepting liability for the event. Yes this sounds scary, but its a necessity. The reality is that putting on any type of event, free or not, holds some level of risk that needs to be mitigated. This also protects all organizers.</p><p>Create a corporation to run your events out of. This is probably extreme though, but its what I ended up doing for my conferences. For code camp events you probably don't want to go through this rigor but it does dot ALL the i's and cross ALL the t's. It's also costly and time consuming.</p><p>A note on liability – this is always a consideration when running an event. Even if you're the nicest person in the world putting on a free community event for the betterment of the community, if someone eats bad food or trips and breaks their leg you could still be named in a lawsuit. Event insurance is very inexpensive. For Prairie Dev Con I pay $300 - $500 which covers me for food-borne illness and any type of injury that could occur while at the conference. The insurance will need to be made by a person or entity though, and unless you're running this under a structured legal entity then somebody may be the one to <em>own</em> the liability coverage (and any liability).</p><h3>Step 3 – Sponsors</h3><p>Now that you have venue costs and an estimate on food costs, you can approach sponsors – which is how code camps are typically funded. You should create a package you can present to sponsors:</p><p>What is the event and what is the vision for it, what are the goals.</p><p>Who is involved and who will the attendees be.</p><p>What is the ask of the sponsor.</p><p>What will they get in return (logo recognition on marketing, website, opportunity to do a presentation, etc.)</p><p>I would <em>not</em> put a limit on the number of sponsorships you have available. Have a number that you need to get to in mind to cover your costs, but if you get more sponsors that's ok – you can spend the money for prizes or extra perks at the code camp. Just have the mindset that you want to spend ALL of the money on the event – there's rules/tax implications for volunteer groups who carry money forward and I don't know them all (I have an incorporation now so I just run stuff through that).</p><h3>Step 4 – Website and Ticketing</h3><p>You may want to get a website set up before you approach Sponsors, just so they can see that there's an online presence and the event is legit – or you may not if you have personal connections to those you're looking to get sponsorship from Regardless, you should get some website up as early as possible once you have a good idea on whether the event will be a go or not.</p><p>You will also need some way for attendees to register. There's lots of ticketing/event-registration sites out there, my fav is <a href="https://www.picatic.com/" target="_blank" rel="noopener">Picatic</a>. Your registration method needs to be more than just collecting a name/email and tracking registration numbers. There's a few key pieces of info you need to ask.</p><p>Food Allergies/Preferences – Does the person have any food allergies? Are there any preferences you need to be aware of (personal preference, religious/cultural, etc.)?</p><p>Emergency Contact Info – In the event something happens, who should be contacted.</p><p>Consent to Media – Are you planning on taking pictures and posting it to social media? You may want to get their permission to use them in pictures online. At one conference I had an attendee ask that she not be included in any event pictures because of fears about an ex-boyfriend who was looking for her.</p><p>Most good ticketing sites will let you add custom questions to the process, which is the easiest way to collect this information. (Note – one way to handle the &quot;can I take your picture or not&quot; practically is to provide a slightly different name badge (colour, ribbon, etc.) to identify those who wish to not be photographed).</p><h3>Step 5 – Speakers</h3><p>You can approach speakers and sponsors at the same time, but I put it here in the order because you need to have sponsors lined up first to ensure you can cover venue costs and book the venue. Ideally you start gauging speaker interest early and continue looking throughout the organization process so you can have some people/sessions ready to post on the website when it goes live.</p><p>For code camps, speakers tend to be locally sourced and while outside speakers can definitely be invited a code camp usually doesn't have the dollars to pay for travel or hotel. I've known many speakers (and have done this myself as a speaker) who will pay their own way for a code camp, but I see code camps as a great opportunity to groom new and upcoming speakers and give them a stage to help improve their presentation skills. The point of a code camp is to <em>learn from each other</em>, not come out and see big-name speakers.</p><p>In fact for my code camps I wouldn't vette out speaker submissions – I ran it as a first come/first served basis. I would however discuss with a speaker if they submitted a duplicate talk as someone else, or if we had an imbalance of sessions (i.e. you don't need 5 talks on Intro to ASP.NET) and work it that way. I would also offer guidance and coaching for those that are new to speaking.</p><p>Call for speakers can be as simple as providing the info to various community leaders to spread through their membership groups, leveraging social media, posting to services like <a href="https://groups.google.com/forum/#!forum/speaknet" target="_blank" rel="noopener">SpeakNet</a>, and also asking sponsors if they have anyone in their organizations who are interested (but not for a sales/marketing point of view – has to be about code/technology). Of course you should have a method for people to submit their session submissions that can be shared on your event website and social media. I use <a href="https://www.surveymonkey.com/" target="_blank" rel="noopener">Survey Monkey</a> for this – you can build a &quot;survey&quot; that captures speaker info and their session details <em>for free</em>.</p><h3>Step 6 – Promotion</h3><p>Time to promote the event! Social media helps out a lot here, but there's still some things that will require in-person contact of some sort. Working personal connections to get the word out works wonders, especially if its seen as a low cost, community driven, learning event open to everyone (like a code camp typically is).</p><p>Also look for non-traditional local industry groups to help get the word out – groups that deal with management/decision-maker level folks in IT (i.e. <a href="http://www.ictam.ca/" target="_blank" rel="noopener">ICTAM</a>) or Chambers of Commerce. Newspapers will sometimes allow events to be posted for free in their business sections under upcoming events.</p><p>Speaking of newspapers, definitely reach out to local media at print, radio, and TV either to get visibility before the event or at the event.</p><h3>Step 7 – Prep for The Event</h3><p>The event is coming up and its time to start prepping for it! Whether a low-budget code camp or a for-pay single day event, here are some tips for getting ready!</p><p>One rule of thumb I've learnt is that you need to invest money into the areas of your event that provide the most value. Especially for a code camp, you shouldn't worry too much about all the &quot;nice-to-haves&quot;; you don't <em>need</em> t-shirts or fancy badge holders or big banners. If, after you cover the basics, you still have budget left over then by all means look at adding some special things to the event. But don't put them at the top of your list.</p><p>Nametags – Amazon is your friend here! You can get plastic name-tag holders and lanyards for much cheaper than paying retail at places like Staples. If you're only doing a small amount to 200 nametags, you can print them off yourself with a home printer and nametag printer sheets (also available at Amazon).</p><p>Signage – Staples is actually a great place to get posters made. a 4x3 feet poster is about $35 here in Canada, which is pretty inexpensive.</p><p>Mobile App – I used <a href="https://guidebook.com/" target="_blank" rel="noopener">Guidebook</a> for Prairie Dev Con Regina 2015 and was very happy with it! It provides iOS and Android apps with full schedule and the ability to build your own schedule, as well as other features like showing venue maps and custom lists. And its FREE for events under 200!</p><p>Print Schedules – Event with the mobile app, many people still like to have a physical, paper schedule in hand. Black and white is fine unless you have extra funds to do colour. Make sure that whatever you print matches what's on the website and mobile app</p><p>Confirm Venue Access and Review Schedule – Make sure that you confirm that you'll have access to your venue space before your event is scheduled to start. You'll at least need to be there a few hours before your event starts to do any setup (registration table, signage, etc.). Make sure that security for the venue is aware of your event and what time you'll be getting access to the rooms. Confirm numbers and times for food. If you need to drop anything off the night before, know where the materials will be locked up and who will be able to get you access.</p><p>Communicate with Your Attendees – Make sure via email, social media, blog, etc. to remind attendees (and speakers) about venue, times, locations in the venue, and the schedule, and where to get more information. Don't forget to include information about venue parking! One thing I strongly suggest is to have an Attendee FAQ area on your event website where you can post all this information and make it easy to refer people to it (just send them the URL). People are busy and providing a friendly reminder is definitely appreciated as they may have registered a while back and not had a chance to keep up with event announcements.</p><p>Social Media – Make sure you have all your social media accounts created and hashtags decided on.</p><h3>Step 8 – Run the Event!</h3><p>Time for the big day! Running a code camp is a lot of fun, but if its your first time it can seem daunting. No worries though, you'll do great!</p><p>Remember the timing format we talked about earlier:</p><p>8:30 – 9:30 Breakfast/Registration<br>9:30 – 9:45 Welcome<br>9:45 – 10:45 Session<br>11:00 – 12:00 Session<br>12:00 – 1:00 Lunch<br>1:00 – 2:00 Session<br>2:15 – 3:15 Session<br>3:30 – 4:30 Session<br>4:30 – 5:00 Wrap-Up</p><p>Let's break this down.</p><p><strong><em>7:00 AM – 8:30 AM</em></strong></p><p>Get to the venue early, at least an hour ahead of time based on how much pre-event prep you've completed. Make sure the venue has a table outside your main meeting room for registration. I usually put out nametags alphabetically on a table and let attendees pick them up, with one or two people available to help and re-organize the tags. If there's any swag or materials (like schedule hand outs), have them available at the registration desk as well. If there's any signage you want to post giving attendees directions get that up during this time.</p><p><strong><em>8:30 AM – 9:30 AM</em></strong></p><p>Direct attendees to where food is and the plenary room. In the room, have a laptop setup with a rolling PowerPoint with information like venue wi-fi (if available), link to session surveys (Survey Monkey is great for this as well), thanks to sponsors with sponsor logos displayed, and any other important information.</p><p><strong><em>9:30 AM – 9:45 AM</em></strong></p><p>This is where you welcome everyone to the event, introduce yourself and the organizers, thank the sponsors, and go over housekeeping things like reviewing the venue map (point out both rooms and things like where bathrooms are), reviewing the schedule, where attendees can submit session surveys, encouraging them to use social media and what accounts/hashtags to use, and how you'll be drawing for prizes at the end of the day (if you are). Don't forget to thank the speakers and the attendees – code camps need everyone to succeed and the effort people put forward, even just giving up a Saturday to attend, should be acknowledged.</p><p><strong><em>9:45 AM – 12:00 PM</em></strong></p><p>The rest of the day will be all about the sessions. As an organizer you should be making rounds ensuring that everything is going well. Your biggest issue during this time will be technology issues – people not being able to connect to a projector, laptops crashing, projector bulbs burning out, etc. If you can, have a backup projector of your own on hand and a back up laptop so that worst case scenario files can be transferred over. At one code camp I had a presenter have his VGA port die between when he successfully practiced that morning to when his session was that afternoon. Weird stuff can happen.</p><p>Also gauge social media – watch for how people are enjoying the event and if they post any concerns or issues.</p><p><strong><em>12:00 PM – 1:00 PM</em></strong></p><p>Lunch time! Use this time to make any announcements, updates, or reminders in the plenary room.</p><p><strong><em>1:00 PM – 4:30 PM</em></strong></p><p>Same as the morning sessions.</p><p><strong><em>4:30 PM – 5:00 PM</em></strong></p><p>Here you bring everyone together for a wrap-up. Here's where you thank everyone again for coming, thank the speakers and sponsors, review the days events, and do any prize draws.</p><p>Don't be surprised if the number of people you started the day with is smaller at the end. Not everyone can make it the whole day, and that's ok.</p><p>Once you're done, all materials you had are packed up and you're ready to leave, this is a great opportunity to go out somewhere for after-code-camp beers/food/whatever and continue the awesome community building!</p><p><strong><em>Post-Event</em></strong></p><p>Once the event is done, your role as organizer isn't. There's still some after-event items you need to do.</p><p>Send out an email to your sponsors thanking them for their support and also providing information on how well the event went. Sponsors want to know that their sponsorship dollars were put to good use, so let them know!</p><p>Send out an email to attendees thanking them for coming out and encouraging them to continue the conversations started at the code camp – give links to various user groups in the community, show where they can get session materials, and let them know where to submit feedback for a post-event survey (you should have a post-event survey btw…Survey Monkey is great for this).</p><p>Do a post-event review with the other organizers. Talk about what you could do better next year, what you'd want to keep the same, and how you can make the event better.</p><p>Do you have money left over? You shouldn't but if you do figure out what to do with it. Finding a local tech-related (or not) charity to donate the money to is a good option if you have no other ideas. Remember that the idea is to have no left-over dollars by the end of the event.</p><h3>And That's It!</h3><p>We covered a LOT of information in this post, and if you felt a little hesitant before you <em>may</em> be feeling very hesitant now. PLEASE DON'T BE! Running the Winnipeg Code Camp was one of the most rewarding and fun experiences for me, and putting on a code camp can be a great experience for you too! If you have any questions or comments, or want to discuss in more detail how to get your code camp or one-day event off the ground, please either leave a comment below or hit me up on <a href="http://www.twitter.com/darcy_lussier" target="_blank" rel="noopener">Twitter</a>!</p><p>Thanks for reading!</p><p>D</p>]]></content>
    
    <summary type="html">
    
      Thoughts on how to run a one-day, multi-track code camp
    
    </summary>
    
    
  </entry>
  
  <entry>
    <title type="html">Review - Guidebook, mobile app for conferences/events</title>
    <link href="https://westerndevs.com/_/guidebook-mobile-app-for-conferences/" rel="alternate" type="text/html"/>
    <id>https://westerndevs.com/_/guidebook-mobile-app-for-conferences/</id>
    <published>2015-06-22T00:09:05.000Z</published>
    <updated>2026-03-22T17:42:31.823Z</updated>
	<author>
	
	  
	  <name>D&#39;Arcy Lussier</name>
	  <email>darcy.lussier@gmail.com</email>
	
	  <uri>https://westerndevs.com</uri>
	</author>
    
    <content type="html"><![CDATA[<p>For Prairie Dev Con Regina I decided to use <a href="https://guidebook.com/" target="_blank" rel="noopener">Guidebook</a> – a service that provides a mobile application for conferences and events along with online administration/content-management tools. If you're running any sort of conference/event, you should definitely check it out! Overall I was really happy with it, only a few minor gripes. Here's my review.</p><a id="more"></a><p><img src="data:image/png;base64,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" alt="Image result for guidebook logo"></p><p>The way Guidebook works is that you create your &quot;Guidebook&quot; on their website. Then your attendees download the Guidebook app and access your specific guidebook. There's different pricing tiers which grants different features, but for the free tier (which is capped at 200 downloads comes with almost all the key features. For PrDC Regina I used the following:</p><p>General Info – Info about the event, contact information etc.</p><p>Schedule – Mobile version of the schedule, complete with session description and the ability to &quot;add to favorites&quot;</p><p>My Schedule – Allows you to see all your favourited sessions by day and time! Worked really well.</p><p>Maps – You upload your own map images for the venue, its displayed here. Multiple maps are allowed.</p><p>ToDo – Just a place for attendees to add notes.</p><p>Twitter – A twitter feed based on whatever accounts you pre-configure.</p><p>Inbox – This allows you to message attendees with updates, although I don't think you can get push messages unless you do a higher tier of service.</p><p>Custom List – You can add custom lists of information. I'll talk about what I used this for later.</p><p>For most events, this is more than sufficient – it worked great and it was free! Feedback on the app from attendees was very positive as well. Critique wise, there's only a few things I'd mention.</p><h3>Maps</h3><p>If you want to see multiple maps, you have to press on the navigation arrows at the top. Some people didn't realize that, because their default was to try and swipe left or right from the map image to get to the next one.</p><h3>Speaker Integration</h3><p>It would have been great to have a Speakers section as well, and integrate the speaker information with the schedule data – so attendees could see the abstract for a session as well as the speaker details.</p><h3>Feedback and Surveys</h3><p>Remember that custom list I mentioned about? So you don't get feedback and surveys unless you go for a higher tier of service. What I did was put a link to the Survey Monkey survey for session feedback in a custom list and made it available. Now, I don't want to necessarily suggest that this needs to be available in the free edition because I get it – Guidebook is a business and they incentivize people to get more features by paying. But this leads me to my final point…</p><h3>Payment Tiers</h3><p>The tiers seem a little…off. You get a lot of features for free up to 200 attendees. My events usually cap out at 150 so I'm good. I'd love to offer the surveys and feedback feature in the app directly, but I can't justify the $1750 price tag <em>just</em> for that feature. It would be awesome if they had an a-la-carte type of scheme, where for x dollars I could get different features, or have another tier for smaller events that provide some of the other features but for a cost (just capped at 200 downloads).</p><p>I love what Guidebook is doing and I applaud them for providing such an awesome service at a free tier that so many community-based events can take advantage of! Very happy with the experience and I'll be looking to use them again at next year's PrDC!</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;For Prairie Dev Con Regina I decided to use &lt;a href=&quot;https://guidebook.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Guidebook&lt;/a&gt; – a service that provides a mobile application for conferences and events along with online administration/content-management tools. If you&#39;re running any sort of conference/event, you should definitely check it out! Overall I was really happy with it, only a few minor gripes. Here&#39;s my review.&lt;/p&gt;
    
    </summary>
    
    
  </entry>
  
  <entry>
    <title type="html">Thoughts on building, making, being positive, fearing failure, and smoking meat</title>
    <link href="https://westerndevs.com/_/thoughts-on-building-making/" rel="alternate" type="text/html"/>
    <id>https://westerndevs.com/_/thoughts-on-building-making/</id>
    <published>2015-06-15T00:09:05.000Z</published>
    <updated>2026-03-22T17:42:31.828Z</updated>
	<author>
	
	  
	  <name>D&#39;Arcy Lussier</name>
	  <email>darcy.lussier@gmail.com</email>
	
	  <uri>https://westerndevs.com</uri>
	</author>
    
    <content type="html"><![CDATA[<p>I was recently gifted a smoker from my awesome Prairie Dev Con speakers – an electric Bradley 4 rack smoker! Upon reading the instructions, I realized that due to the &quot;electronic&quot; nature of the device, it can't just be left outside to the elements like a BBQ can. So I started looking around at custom enclosures people were building and got some ideas. Now, I'm <em>not</em> what you would call a handy-man type of guy. I didn't grow up doing carpentry projects or working on cars or anything like that, but regardless yesterday I built it. Here's what it looks like (still needs stain and one more piece of plywood for the back)…</p><a id="more"></a><p><img src="https://gwb.blob.core.windows.net/dlussier/WindowsLiveWriter/ThoughtsonBuildingMakingBeingPositiveFea_A71D/SmokerEnclosure_thumb.png" alt="SmokerEnclosure" title="SmokerEnclosure"></p><p>The experience was fantastic – I had my daughters help me with most of the construction, so we were able to make this a quality-time project building something together. I also got to use some tools I received as an office Christmas gift from years back that I hadn't before. And I learned a lot – even though I know there are things I would have done differently in retrospect, and things I know I'd like to tweak with it even after its &quot;finished&quot;, it was a fantastic learning experience.</p><p>I was really encouraged at Prairie Dev Con earlier this month in Regina. We had a number of hands-on-labs that were very well attended and I was in awe of how willingly people were to jump in and try something hands on that's new to them. This 'makers' movement in the IoT space, and also people willing to learn new ways of doing web development (as one commenter put it &quot;ready to start using new skills at work right away!&quot;) was really exciting to see. And it inspired me to &quot;make&quot; more.</p><p>I've been scared at times to try something new – actually it wasn't even the &quot;starting&quot;, but more of the possible failing. I don't know if its <a href="http://www.hanselman.com/blog/ImAPhonyAreYou.aspx" target="_blank" rel="noopener">a case of imposter syndrome</a> or not wanting to come across as being inept or what. But the first step, the first movement on a journey, can be the beginning of something awesome. The positive What If as opposed to the negative. The possibilities instead of the pitfalls. The rewards instead of the costs.</p><p>One thing I've learned is that the true feeling of success doesn't come from outside, but from within. That feeling of accomplishment that you receive when you complete something – even if that something isn't 100% perfect. I approached the enclosure project like an agile software project – this was iteration 1, done in a day, and with a retrospective of what I'd have done differently next time. And its functional, which is great because I want to start smoking some meat. :)</p><p>I feel like I'm rambling a bit – look, here's the thing. MAKE STUFF. BUILD STUFF. EXPERIMENT WITH STUFF. Don't allow external pressures or fears of &quot;Am I good enough&quot;, &quot;Will I be accepted?&quot;, &quot;Doesn't anything I do need to be perfect?&quot;, and their ilk ruin your ability to have new experiences, in life or at work.</p><p>In a few weeks I'll be starting on a new adventure. I'll be working with a new team, in a new domain, on systems that are new to me. And I'm excited, even with all the unknowns, because I can't wait to see what I can help build with my colleagues. I never want those nagging, negative &quot;What Ifs&quot; to get in the way of what's possible.</p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;I was recently gifted a smoker from my awesome Prairie Dev Con speakers – an electric Bradley 4 rack smoker! Upon reading the instructions, I realized that due to the &amp;quot;electronic&amp;quot; nature of the device, it can&#39;t just be left outside to the elements like a BBQ can. So I started looking around at custom enclosures people were building and got some ideas. Now, I&#39;m &lt;em&gt;not&lt;/em&gt; what you would call a handy-man type of guy. I didn&#39;t grow up doing carpentry projects or working on cars or anything like that, but regardless yesterday I built it. Here&#39;s what it looks like (still needs stain and one more piece of plywood for the back)…&lt;/p&gt;
    
    </summary>
    
    
  </entry>
  
</feed>
