<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>willcodeforcoffee.com &#187; Personal</title>
	<atom:link href="http://willcodeforcoffee.com/category/personal/feed/" rel="self" type="application/rss+xml" />
	<link>http://willcodeforcoffee.com</link>
	<description>The personal programming blog of Eric Hoff.</description>
	<lastBuildDate>Wed, 18 Jan 2012 20:03:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How the iPad won me over</title>
		<link>http://willcodeforcoffee.com/2010/10/05/how-the-ipad-won-me-over/</link>
		<comments>http://willcodeforcoffee.com/2010/10/05/how-the-ipad-won-me-over/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 02:39:21 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[My Two Cents]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://willcodeforcoffee.com/?p=125</guid>
		<description><![CDATA["Magical" is not the word to describe the iPad, but it certainly does change the game. <a href="http://willcodeforcoffee.com/2010/10/05/how-the-ipad-won-me-over/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was probably the most skeptical person out the when Steve Jobs was making the announcement about his &#8220;magical&#8221; iPad. In this day and age you can&#8217;t take any salesman seriously when he uses <em>that</em> kind of language. But when I saw one in action surfing the Internet the other day I started to see the potential of the platform.<br />
<span id="more-125"></span><br />
It&#8217;s all about web browsing and the consumption of media. The iPad is the perfect tiny web browser. Its just the right size for reading and a good resolution for surfing, about 1024 pixel wide when leaned on its side. It is much better than surfing on a phone, not as good as a computer.<br />
It&#8217;s all about consuming media (via apps), but not just the Internet: Marvel Comics, Netflix videos, iBooks and Amazon Kindle, Globe &#038; Mail, The New Yorker, etc&#8230; These apps are all about consuming media on the iPad. And it works fantastic!<br />
On the flip side I tried to write this blog post on the iPad, but I ended up getting sore fingers and moved back to my laptop. The iPad is not for creating content. It works, but trying to place the cursor anywhere on the screen using your finger is an exercise in frustration. <em>Extreme</em> frustration. It is so bad I wonder why there are so many writing and composing applications for the iPad. The &#8220;keyboard dock&#8221; accessory also lacks cursors. The most typing I want to do on an iPad is a username and password, that is all.<br />
So in short, and for what it is, the iPad just could be a revolutionary new device, no hocus pokus. </p>
]]></content:encoded>
			<wfw:commentRss>http://willcodeforcoffee.com/2010/10/05/how-the-ipad-won-me-over/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A New Start, A New Discipline</title>
		<link>http://willcodeforcoffee.com/2009/09/14/a-new-start-a-new-discipline/</link>
		<comments>http://willcodeforcoffee.com/2009/09/14/a-new-start-a-new-discipline/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 23:34:08 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Starting Up]]></category>

		<guid isPermaLink="false">http://willcodeforcoffee.com/?p=103</guid>
		<description><![CDATA[I am taking an even bigger picture look at the future of my career and the future of my company. I've still got a lot to look at, work on, and learn - but it is exciting. <a href="http://willcodeforcoffee.com/2009/09/14/a-new-start-a-new-discipline/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working as a consultant for a few years now, and while I think I&#8217;ve enjoyed a fair bit of success, one thing that is missing for me is the ownership of the projects I&#8217;m working on. In the last two years I&#8217;ve worked on five or six different web sites and web applications: one was put on indefinite hiatus and I&#8217;m unsure of its current state, one was completed by another developer, and at least three were canceled just short of completion because of lack of funds. It&#8217;s the canceled projects that are the most discouraging because excellent progress was made and hard work was put into them, but now they are in limbo and out of my hands!</p>
<p><span id="more-103"></span></p>
<p>The lack of ownership bothers me, because what happens with those projects now? I would sure like to know! I spent long hours and some late nights on them, sometimes I was the only one working on them. Unfortunately I can&#8217;t see what happens now because those unfinished programs belong to my customers.</p>
<p>So (now that I am between unfinished projects) I have started working on some projects of my own. This has led me to learn some new things about myself. Working from home on my own projects requires so much discipline it is almost like learning a new job. I do allow myself opportunities to work on home projects, but I have to be really careful not to let things get out of hand. I don&#8217;t want to end up with more unfinished projects!</p>
<p>I&#8217;ve also been setting goals for myself as a new company. I&#8217;m hoping to start earning revenue through other streams besides just consulting. This is a daunting shift for me, especially because I&#8217;m not earning revenue while I&#8217;m developing right now. Hopefully some projects will start earning recurring money soon though. That means I have to set priorities.</p>
<p>I&#8217;m also giving myself some time every morning to evaluate or re-evaluate my goals and to setup tasks to achieve those goals. This is a little different from what I do while consulting for clients, when I would simply set tasks for the day or week in order to get the project done. Now I am taking an even bigger picture look at the future of my career and the future of my company. I&#8217;ve still got a <em>lot </em>to look at, work on, and learn &#8211; but it is exciting.</p>
<p>I&#8217;m also hoping that the next contracts I will work on will be for longer-term contracts. The last few were under six months, I&#8217;m hoping to find work on 9 month+, multi-developer contracts from now on so that I will not only have time to finish them but also work on some larger teams and take more of a leadership role rather than be the sole developer.</p>
<p>I&#8217;m also going to keep in mind that not every change is permanent! I&#8217;ll be evaluating what I&#8217;m working on daily to see what is working and what isn&#8217;t. It&#8217;s a sort-of &#8220;agile&#8221; way for me to treat my business, career and life! I&#8217;m excited and looking forward to the future.</p>
<p>Oh, and one more goal is to blog at least twice a week. I&#8217;ve made that promise to myself before, but this time I&#8217;m giving myself time to do it instead of trying to find time to do it in.</p>
]]></content:encoded>
			<wfw:commentRss>http://willcodeforcoffee.com/2009/09/14/a-new-start-a-new-discipline/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Project Wrapup</title>
		<link>http://willcodeforcoffee.com/2009/03/16/project-wrapup/</link>
		<comments>http://willcodeforcoffee.com/2009/03/16/project-wrapup/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 17:17:53 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://willcodeforcoffee.com/?p=73</guid>
		<description><![CDATA[I just completed another project contract on Friday.  After decompressing over the weekend I wanted to write a few thoughts out about some of the successes and failures I&#8217;ve learned during this project. This project was a pretty good one. &#8230; <a href="http://willcodeforcoffee.com/2009/03/16/project-wrapup/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just completed another project contract on Friday.  After decompressing over the weekend I wanted to write a few thoughts out about some of the successes and failures I&#8217;ve learned during this project.</p>
<p><span id="more-73"></span>This project was a pretty good one.  Even though we put the application into production, the customer didn&#8217;t have enough money to keep me on long enough to finish the project in a state I would have been more happier with.  There were a few reasons for this I think: 1) the customer did not have a clear enough spec, in his mind, before I started, 2) the customer was too busy with other projects to give me enough attention and direction with the design, 3) the customer was too busy to help me get the application into a User Acceptance test site earlier than two days before the contract expired.  If we had a little more time, maybe one more month I think we could have turned the application into something excellent, and I could have seen it in use long enough to know if my design assumptions were good ones.</p>
<p>That said, I did spend a lot of time with one of the Users who was a database modelling expert.  I did learn a lot from him, and he really helped me understand more about what they were expecting as a customer.  Unfortunately he worked in another building, so access to him was severely limited too.</p>
<p>Another success was that this was my first ASP.NET MVC project to be deployed.  It was also my first use of NHibernate, which I also thought was very successful.  I also used jQuery and jQuery UI extensively for Web 2.0 stuff like dialogs (death to window.open!) and AJAX.  Those things were a lot of fun.</p>
<p>I also got to use a of new architectural planning and design (Domain Driven Design) pattern that I learned from a talk given by <a href="http://igloocoder.com/" target="_blank">Donald Belcham (aka The Igloo Coder)</a>.  I&#8217;ve been reading the <a href="http://www.amazon.ca/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/" target="_blank">book by Eric Evans</a> as well.  This definitely seems like the new way to go.  DDD is about modelling your application and also about understanding the client&#8217;s needs.  I&#8217;m really impressed and eager to use it in future projects and products as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://willcodeforcoffee.com/2009/03/16/project-wrapup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Those Dangerous UpdatePanels and &#8220;The Intern&#8221;</title>
		<link>http://willcodeforcoffee.com/2008/10/31/those-dangerous-updatepanels-and-the-intern/</link>
		<comments>http://willcodeforcoffee.com/2008/10/31/those-dangerous-updatepanels-and-the-intern/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 16:32:48 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://willcodeforcoffee.com/?p=49</guid>
		<description><![CDATA[At my current contract I am saddled working with an intern. He&#8217;s a bright kid, and he&#8217;s gone through three years of school, but I&#8217;m kind of staggered by how much he doesn&#8217;t actually know! Development is extremely difficult because &#8230; <a href="http://willcodeforcoffee.com/2008/10/31/those-dangerous-updatepanels-and-the-intern/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>At my current contract I am <span style="text-decoration: line-through;">saddled</span> working with an intern. He&#8217;s a bright kid, and he&#8217;s gone through three years of <a href="http://nait.ca/" target="_blank">school</a>, but I&#8217;m kind of staggered by how much he doesn&#8217;t actually know! Development is extremely difficult because he doesn&#8217;t know much about JavaScript, AJAX, jQuery, CSS styling and positioning, Web Services, C#, UpdatePanels, LINQ, Ruby on Rails, MVC, DLL Libraries, ReSharper, and the list goes on and on! It&#8217;s hard to believe what eight years of experience teaches you, and I&#8217;m finding it difficult, and sometimes limiting because I have to move at a slower speed bringing him up to speed.</p>
<p>I was using some cool features of jQuery to do AJAX instead of using UpdatePanels, but when The Intern wanted to do some AJAX he got totally lost. In the end I taught him to use both jQuery and (<a href="http://willcodeforcoffee.com/2008/09/23/those-dangerous-updatepanels/" target="_blank">despite how dangerous it is)</a>, Ihow to use UpdatePanels.  In the end I encouraged him to use the UpdatePanel with his pages, read on to find out why.</p>
<p><span id="more-49"></span><strong>1.  Updating the DOM using jQuery and Web Services is an Advanced Skill</strong></p>
<p>Oh yes, both you and I can look at the code and figure out exactly what is happening.  We see the JS file linked in the ScriptManagerProxy control, we can follow the JavaScript code to the webservice call, and even more, but it is a <em>very</em> advanced skill.</p>
<p><strong>2.  Updating the DOM using jQuery and Web Services Reduced Maintainability</strong></p>
<p>Even with all of my knowledge, it&#8217;s still a long, messy trail of code until you get to the end (the web service). You&#8217;re crossing several files, including C#, ASPX, JavaScript, and ASMX files.  In my opinion this <em>drastically </em>decreases maintainability and makes the code much less readable and obvious to other .NET developers, even those who <strong>have</strong> read Encosia&#8217;s article.</p>
<p><strong>3.  Using UpdatePanels Doesn&#8217;t Change the ASP.NET PostBack Model</strong></p>
<p>The UpdatePanel is just another ASP.NET tag.  The PostBack model is retained, you still have Button OnClick events, you still have TextBox.Text, Page_Load etc. All of the code is still retained within one ASPX/ASPX.CS file pair. Almost any .NET developer, no matter how junior, should be able to follow this code. That makes the code maintainable.</p>
<p>In the end, even though jQuery will be shipping with future versions of ASP.NET, the .NET Framework, and Visual Studio, it&#8217;s still a relatively new concept. We need to proceed with it, but this is new ground so we have to blaze a trail that the slower movings guys can follow.</p>
<p>One of the big benefits we have as .NET developers is the <a href="http://msdn.microsoft.com/en-ca/library/default.aspx" target="_blank">MSDN Library</a>. I like to use MSDN as a scale for maintainability. If it is in MSDN then I consider it general knowledge that a new developer should know or be able to find easily. Otherwise I have to document it really well so that at least a mid-level developer should be able to figure out my application.</p>
<p>We have to be careful that the people maintaining the code behind us know what we&#8217;ve done, otherwise our awesome code gets rewritten by newb developers who can&#8217;t figure it out. If we can write maintainable code then hopefully the developers behind us will learn something and eventually become more advanced in their skills too.</p>
]]></content:encoded>
			<wfw:commentRss>http://willcodeforcoffee.com/2008/10/31/those-dangerous-updatepanels-and-the-intern/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Farewell to Redengine</title>
		<link>http://willcodeforcoffee.com/2008/06/30/farewell-to-redengine/</link>
		<comments>http://willcodeforcoffee.com/2008/06/30/farewell-to-redengine/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 23:55:58 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://willcodeforcoffee.com/2008/06/30/farewell-to-redengine/</guid>
		<description><![CDATA[Today marks the end of a six month contract with Redengine.&#160; It&#8217;s sad to leave, but I wish them the best with their future endeavors! I&#8217;ll be spending the summer looking for work, working on stuff around the house and &#8230; <a href="http://willcodeforcoffee.com/2008/06/30/farewell-to-redengine/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today marks the end of a six month contract with <a href="http://redengine.com/" target="_blank">Redengine</a>.&#160; It&#8217;s sad to leave, but I wish them the best with their future endeavors!</p>
<p>I&#8217;ll be spending the summer looking for work, working on stuff around the house and on personal programming projects under <a href="http://hoffsoftcorp.com/" target="_blank">Hoffsoft Consulting Services Corporation</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://willcodeforcoffee.com/2008/06/30/farewell-to-redengine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

