<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>Hal Helms On Web Development</title>
			<link>http://www.halhelms.com/blog/index.cfm</link>
			<description>Hal Helms talks about web development.</description>
			<language>en-us</language>
			<pubDate>Sat, 25 May 2013 14:27:28 -0400</pubDate>
			<lastBuildDate>Sat, 03 Dec 2011 17:39:00 -0400</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>hal@halhelms.com</managingEditor>
			<webMaster>hal@halhelms.com</webMaster>
			
			<item>
				<title>Final Report: Teaching Programming to Non-Programmers</title>
				<link>http://www.halhelms.com/blog/index.cfm/2011/12/3/Final-Report-Teaching-Programming-to-NonProgrammers</link>
				<description>
				
				Well, 6 months ago, I undertook to teach programming to 3 non-programmers. The three were: my wife and two stepsons, W and E. I told them that if they persevered, by the end of six months, they would have a new career and be able to find a good-paying job. So, how did they (and I) do?  [More]
				</description>
				
				<category>Training</category>				
				
				<category>Software Development</category>				
				
				<pubDate>Sat, 03 Dec 2011 17:39:00 -0400</pubDate>
				<guid>http://www.halhelms.com/blog/index.cfm/2011/12/3/Final-Report-Teaching-Programming-to-NonProgrammers</guid>
				
			</item>
			
			<item>
				<title>Pair Programming and Git</title>
				<link>http://www.halhelms.com/blog/index.cfm/2011/12/3/Pair-Programming-and-Git</link>
				<description>
				
				I&apos;ve read a fair amount about workflows with git. It seems the conventional wisdom is to create a branch related to some feature. I&apos;ve tried to do that with prototyping (see my last post) but feature branches just don&apos;t work for me. Rather, I find that either I&apos;ve made a complete hash out of something -- or I just like an earlier version better. I&apos;m much more likely to say &quot;You know, I like the version I had last night better.&quot; But when branches are feature-based, my time-based desires don&apos;t match.

That led me to the idea of having larger feature branches with smaller time-based ones. Pretty much &lt;em&gt;all&lt;/em&gt; my production code is pair-programmed. We use a little app called Pomodoro on our Macs. It has a voice feature and every half hour, I have it say &quot;OK, guys. Switch. And heeeeerrre we go!&quot;

Before turning over the keyboard, the current typist commits the current branch and creates a new one using the current date and time. Something like &quot;02Dec1430&quot;. When that half-hour is done, we switch places and start with &quot;02Dec1500&quot;. Occasionally, we&apos;ll roll everything up to &quot;develop&quot; and then to &quot;master&quot; -- but I really like having the flexibility of a highly-granular, time-based branching system for git. 
				</description>
				
				<category>Software Development</category>				
				
				<pubDate>Sat, 03 Dec 2011 16:45:00 -0400</pubDate>
				<guid>http://www.halhelms.com/blog/index.cfm/2011/12/3/Pair-Programming-and-Git</guid>
				
			</item>
			
			<item>
				<title>Prototyping and Rails</title>
				<link>http://www.halhelms.com/blog/index.cfm/2011/12/3/Prototyping-and-Rails</link>
				<description>
				
				I&apos;ve been a believer in the power of prototyping to deliver software that clients actually want for almost as long as I&apos;ve been programming. I learned the hard way that any other technique I (or others I observed) tried just didn&apos;t work. Despite the best of intentions and tremendous dedication to the project.

I&apos;ve tried many different prototyping tools, including Justinmind Prototyper, Balsamiq, Azure, Protoshare, Pidoco--well the list could go on and on. It&apos;s not that these aren&apos;t all good products; they are. Some of them are &lt;em&gt;very&lt;/em&gt; good. But somehow, they didn&apos;t &lt;em&gt;quite&lt;/em&gt; deliver what I wanted in the way I wanted. My latest attempts are proving more successful.  [More]
				</description>
				
				<category>Training</category>				
				
				<category>Software Development</category>				
				
				<category>Ruby on Rails</category>				
				
				<pubDate>Sat, 03 Dec 2011 15:37:00 -0400</pubDate>
				<guid>http://www.halhelms.com/blog/index.cfm/2011/12/3/Prototyping-and-Rails</guid>
				
			</item>
			
			<item>
				<title>Ruby on Rails, an Immersive Introduction</title>
				<link>http://www.halhelms.com/blog/index.cfm/2011/11/15/Ruby-on-Rails-an-Immersive-Introduction</link>
				<description>
				
				Several people are asking about my Ruby on Rails, An Immersive Introduction class (see last post). Here&apos;s the rundown on what you&apos;ll learn:

The class begins at 9.00 and finishes at 6.30 for 5 days.

We provide a catered lunch.

And Aspirin.

&lt;h3&gt;What You&apos;ll Learn&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Just Enough Ruby&lt;/strong&gt;: you&apos;ll get comfortable with the major constructs of this wonderful language&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rails MVC Architectural Implementation&lt;/strong&gt;you&apos;ll learn about the many defined folders and files that make up a Rails app&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Routing, Forwards and Back&lt;/strong&gt;: initially confusing, Rails routing is tremendously helpful--if you understand how to make use of it (with special emphasis on RESTful end points)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configuring Databases&lt;/strong&gt;: Oracle? SQL Server? MySQL? Postgres? SQLLite? Rails can handle them all -- even different databases for development v. testing v. production&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Migrations&lt;/strong&gt;: source control for databases? Why didn&apos;t someone think of this sooner?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Models&lt;/strong&gt;: the heart of your application&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Forms from Models&lt;/strong&gt;: more labor-saving goodness from Rails&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model form validations&lt;/strong&gt;: a bevy of built-in validators -- or create your own, custom validators&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rails Console&lt;/strong&gt;: you&apos;ll spend lots of time here probing your application&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Layouts&lt;/strong&gt;: simple, elegant solution for section- or application-wide HTML&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unit Testing&lt;/strong&gt;: unit testing is really this simple?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sessions and Authentication&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model Associations&lt;/strong&gt;: hooking your models up, err...so to speak&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&quot;Getting&quot; Rails ActiveRecord&lt;/strong&gt;: first, you&apos;ll hate it; then you&apos;ll love it&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Debugging Rails Applications&lt;/strong&gt;: Stop the application while it&apos;s running, interrogate it to see what&apos;s going on under the hood -- one of my favorite aspects of Rails&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Asset Pipeline&lt;/strong&gt;: a good and simple idea that I have yet to see explained well&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ActiveRecord Query Interface&lt;/strong&gt;: why you won&apos;t miss SQL (and how to use SQL for those times AR doesn&apos;t make sense)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Events in Rails&lt;/strong&gt;: learn this and it will revolutionize the way you write applications. Seriously.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ajax and Rails&lt;/strong&gt;: very flexible; very easy&lt;/li&gt;
&lt;/ul&gt;

Again, the price is $3500. If you want to attend, send me an email at hal@halhelms.com or call me at 941.716.6909

Location: Austin, TX
Dates: Jan 26-30, 2012 
				</description>
				
				<category>Training</category>				
				
				<category>Software Development</category>				
				
				<category>Ruby on Rails</category>				
				
				<pubDate>Tue, 15 Nov 2011 02:30:00 -0400</pubDate>
				<guid>http://www.halhelms.com/blog/index.cfm/2011/11/15/Ruby-on-Rails-an-Immersive-Introduction</guid>
				
			</item>
			
			<item>
				<title>Ruby on Rails class: Jan 26 - 30, 2012</title>
				<link>http://www.halhelms.com/blog/index.cfm/2011/11/10/Ruby-on-Rails-class-Jan-26--30-2012</link>
				<description>
				
				Something must be in the air. In the past week, I&apos;ve heard from four ColdFusion developers who are seriously looking at Ruby on Rails. I&apos;ll gush about how great Rails is another time. For this post, I&apos;m just announcing an introductory 5-day Ruby on Rails class in Austin, TX. The class will be an intense learning session and is limited to six developers. The cost is $3500. 

If you want to really master Ruby on Rails, contact me at hal@halhelms.com. 
				</description>
				
				<pubDate>Thu, 10 Nov 2011 01:03:00 -0400</pubDate>
				<guid>http://www.halhelms.com/blog/index.cfm/2011/11/10/Ruby-on-Rails-class-Jan-26--30-2012</guid>
				
			</item>
			
			<item>
				<title>Interim Report: Teaching Programming to Non-Programmers, Week 4</title>
				<link>http://www.halhelms.com/blog/index.cfm/2011/8/1/Interim-Report-Teaching-Programming-to-NonProgrammers-Week-4</link>
				<description>
				
				Several weeks ago, a crazy idea popped into my head: why don&apos;t I teach programming to my family? Here are the list of characters:

G: my wife, a very gifted artistic person. She uses Facebook, but struggles with anything more complicated. She&apos;s convinced the computer is out to get her. 

E: my stepson, a graduate of Fashion Institute of Technology. He&apos;s used computers for Adobe Photoshop, but not much more.

W: my stepson, a year of college. He has a Facebook page and understands a little about how to use a web browser, but nothing more.

I presented the idea to them like this...  [More]
				</description>
				
				<category>Training</category>				
				
				<category>Ruby on Rails</category>				
				
				<pubDate>Mon, 01 Aug 2011 23:15:00 -0400</pubDate>
				<guid>http://www.halhelms.com/blog/index.cfm/2011/8/1/Interim-Report-Teaching-Programming-to-NonProgrammers-Week-4</guid>
				
			</item>
			
			<item>
				<title>How I Got Started in ColdFusion</title>
				<link>http://www.halhelms.com/blog/index.cfm/2011/8/1/How-I-Got-Started-in-ColdFusion</link>
				<description>
				
				What does a philosophy major do after college? Woodworking, of course! Initial small woodworking projects gave way to larger projects and I found I needed some way of automating the &quot;cut lists&quot; used to pre-cut all the pieces of wood for a project. 

My first step was acquiring a Texas Instrument programmable calculator. I forget the exact price -- $300-400 --but it had these things called &quot;variables&quot;! And I could plug them into a formula I wrote to get the exact size of pieces. Amazing stuff.

From there, I went on to write Lotus 1-2-3 macros, then tackled BASIC. From there, it was learning DataCAD and learning their programming language. Finally, I slipped the woodworking tether completely and sold my company. A good friend of mine, a technologist, hired me and shipped me off to this strange place called &quot;Palo Alto Research Center&quot;. Xerox PARC was the legendary research facility where Bill Gates and Steve Jobs first saw a windowing system and a mouse, all powered by the language, Smalltalk. 

Fast-forward a few years and I found myself the head of &quot;the Web group&quot;. One of the early questions was which language we would use. Java was the odds-on favorite, but this was version 1. It was buggy and slow. Steve Jobs was peddling Web Objects, but the cost was much too high. Then, there was this little language, &quot;Cold Fusion&quot;, that had a lot of promise (and a fair amount of risk). I decided to risk it.

That was when ColdFusion was at 3.5. During that time, I&apos;ve seen the language evolve and grow. &quot;Cold Fusion&quot; lost the space in its name; features have been added; the underlying platform has changed. Through all its changes, ColdFusion has never lost sight of its roots: making life easier for developers. And the culture that grew up around ColdFusion has always seemed to me one of its greatest assets. While developers in other languages might tell newbies to RTFM, ColdFusion folks have always been warm and open, ready to share and learn from each other freely.

Thanks to Jeremy, JJ, Ben -- and all those who labored to bring ColdFusion to where it is today. 
				</description>
				
				<category>ColdFusion</category>				
				
				<pubDate>Mon, 01 Aug 2011 20:13:00 -0400</pubDate>
				<guid>http://www.halhelms.com/blog/index.cfm/2011/8/1/How-I-Got-Started-in-ColdFusion</guid>
				
			</item>
			
			<item>
				<title>A ColdFusion Developer Examines Ruby on Rails: A Night in Austin</title>
				<link>http://www.halhelms.com/blog/index.cfm/2011/7/29/A-ColdFusion-Developer-Examines-Ruby-on-Rails-A-Night-in-Austin</link>
				<description>
				
				On July 27, I had the distinct pleasure of meeting with other ColdFusion developers at the Austin CFUG. I wanted to share
 what I had learned in the process of learning Ruby on Rails. You see, I was tricked into learning Rails. John, a very good friend (and another ColdFusion developer) had learned Rails and tried to interest me in it as well. I would have none of it. I didn&apos;t need it and I didn&apos;t like it. Further, I didn&apos;t like those smug Rails fanboys. I had been working in ColdFusion for almost fifteen years and I had run into very few situations where I needed something else. And I always had Java that I could use if the need arose. So who needed Ruby on Rails? Not me. I thought.  [More]
				</description>
				
				<category>Ruby on Rails</category>				
				
				<pubDate>Fri, 29 Jul 2011 13:27:00 -0400</pubDate>
				<guid>http://www.halhelms.com/blog/index.cfm/2011/7/29/A-ColdFusion-Developer-Examines-Ruby-on-Rails-A-Night-in-Austin</guid>
				
			</item>
			
			<item>
				<title>Hiring and Cultivating Great Developers</title>
				<link>http://www.halhelms.com/blog/index.cfm/2011/5/16/Hiring-and-Cultivating-Great-Developers</link>
				<description>
				
				Recently, I was commissioned by Vin 65 to write up a guide to hiring and cultivating great developers. They were generous enough to allow me to share it with everyone. It&apos;s much too long for a blog post, but here&apos;s the URL to the PDF: &lt;a href=&quot;https://github.com/halhelms/Hiring-and-Cultivating-Great-Developers&quot;&gt;https://github.com/halhelms/Hiring-and-Cultivating-Great-Developers&lt;/a&gt;. 
				</description>
				
				<category>Project Management</category>				
				
				<category>Code</category>				
				
				<pubDate>Mon, 16 May 2011 18:51:00 -0400</pubDate>
				<guid>http://www.halhelms.com/blog/index.cfm/2011/5/16/Hiring-and-Cultivating-Great-Developers</guid>
				
			</item>
			
			<item>
				<title>Ayn Rand&apos;s Objectivism Embodied</title>
				<link>http://www.halhelms.com/blog/index.cfm/2011/5/11/Ayn-Rands-Objectivism-Embodied</link>
				<description>
				
				I&apos;m not much of an Ayn Rand fan. Although I confess to a certain guilty pleasure reading &lt;em&gt;Atlas Shrugged&lt;/em&gt; and &lt;em&gt;The Fountainhead&lt;/em&gt; (despite prose that can charitably be called leaden), her thinking I found to be naive in its positivism.  [More]
				</description>
				
				<category>Philosophy</category>				
				
				<pubDate>Wed, 11 May 2011 00:43:00 -0400</pubDate>
				<guid>http://www.halhelms.com/blog/index.cfm/2011/5/11/Ayn-Rands-Objectivism-Embodied</guid>
				
			</item>
			
			<item>
				<title>Learning ColdBox: IV</title>
				<link>http://www.halhelms.com/blog/index.cfm/2011/4/24/Learning-ColdBox-IV</link>
				<description>
				
				Over the last couple of weeks since starting this &quot;Learning ColdBox&quot; series, I&apos;ve been working more extensively with the framework. There&apos;s a lot in ColdBox and it took me quite a while to really feel comfortable with it. Having gotten over that initial hurdle, I&apos;m very glad I did. Many thanks to my colleague, Ben Densmore, who has been always willing to answer my naive ColdBox questions -- even at 2.00 AM. I&apos;m by no means an expert; I&apos;ve just gotten to the point where I&apos;m happy being a bit reckless!  [More]
				</description>
				
				<category>Training</category>				
				
				<category>Software Development</category>				
				
				<category>Code</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Sun, 24 Apr 2011 19:23:00 -0400</pubDate>
				<guid>http://www.halhelms.com/blog/index.cfm/2011/4/24/Learning-ColdBox-IV</guid>
				
			</item>
			
			<item>
				<title>Learning ColdBox: III</title>
				<link>http://www.halhelms.com/blog/index.cfm/2011/4/6/Learning-ColdBox-III</link>
				<description>
				
				Before we get into writing the application, I want to ask about logging with LogBox. A while ago, I felt the need for something more than I could get with native logging. During development, I wanted to have the ability to log something. That something might be a simple value, an array, a struct, an object, etc. 

While I didn&apos;t want logging to occur when code moved to production (for obvious reasons), I &lt;em&gt;did&lt;/em&gt; want to leave the code in place (so that, for example, I could turn it on if some anomaly occurred or if I wished to time certain processes while running in production). And finally, I didn&apos;t want to wrap logging code in &lt;span&gt;if&lt;/span&gt; statements. That&apos;s ugly and, with enough of them, could become expensive. What to do?  [More]
				</description>
				
				<category>Training</category>				
				
				<category>Software Development</category>				
				
				<category>Code</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Wed, 06 Apr 2011 06:36:00 -0400</pubDate>
				<guid>http://www.halhelms.com/blog/index.cfm/2011/4/6/Learning-ColdBox-III</guid>
				
			</item>
			
			<item>
				<title>Learning ColdBox: II.V : Wherein I Ask for Expert Help...</title>
				<link>http://www.halhelms.com/blog/index.cfm/2011/4/3/Learning-ColdBox-IIV--Wherein-I-Ask-for-Expert-Help</link>
				<description>
				
				With the (very) basics behind, I&apos;m ready to try my hand at a CRUD application. (Hopefully, that won&apos;t prove to be prophetically named...) But before I start, I want to explain how I do things presently -- and ask expert ColdBoxers for some guidance as to what should be changed to best use ColdBox.  [More]
				</description>
				
				<category>Training</category>				
				
				<category>Software Development</category>				
				
				<category>Code</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Sun, 03 Apr 2011 22:15:00 -0400</pubDate>
				<guid>http://www.halhelms.com/blog/index.cfm/2011/4/3/Learning-ColdBox-IIV--Wherein-I-Ask-for-Expert-Help</guid>
				
			</item>
			
			<item>
				<title>Learning ColdBox: II</title>
				<link>http://www.halhelms.com/blog/index.cfm/2011/4/1/Learning-ColdBox-II</link>
				<description>
				
				In &lt;em&gt;&lt;a href=&quot;http://www.halhelms.com/blog/index.cfm?mode=entry&amp;entry=1335E13E-FF20-683A-FDBC97080C71BC1E&quot; target=&quot;newwin&quot;&gt;Learning ColdBox: I&lt;/a&gt;&lt;/em&gt;, we began creating an app by getting ColdBox installed and responding. Today, we&apos;re going to go a bit deeper -- adding &lt;em&gt;event handlers&lt;/em&gt; and associated &lt;em&gt;events&lt;/em&gt;.  [More]
				</description>
				
				<category>Training</category>				
				
				<category>Software Development</category>				
				
				<category>Code</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 01 Apr 2011 20:58:00 -0400</pubDate>
				<guid>http://www.halhelms.com/blog/index.cfm/2011/4/1/Learning-ColdBox-II</guid>
				
			</item>
			
			<item>
				<title>Learning ColdBox: I</title>
				<link>http://www.halhelms.com/blog/index.cfm/2011/4/1/Learning-ColdBox-I</link>
				<description>
				
				So...my first step is going to the ColdBox site to download the framework: &lt;span&gt;&lt;a href=&quot;http://www.coldbox.org/download&quot; target=&quot;newwin&quot;&gt;http://www.coldbox.org/download&lt;/a&gt;&lt;/span&gt;. I created a &lt;span&gt;coldbox&lt;/span&gt; directory directly under &lt;span&gt;wwwroot&lt;/span&gt;. For now, I&apos;m going with my idea of a Philosopher Battle game (see yesterday&apos;s post). (BTW, as Phil Nacelli pointed out, ColdBox comes with several sample applications already! Why not just one of these? See below...) So, let&apos;s start with creating a &quot;Philosophy Game&quot; app.  [More]
				</description>
				
				<category>Training</category>				
				
				<category>Software Development</category>				
				
				<category>Code</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Fri, 01 Apr 2011 18:00:00 -0400</pubDate>
				<guid>http://www.halhelms.com/blog/index.cfm/2011/4/1/Learning-ColdBox-I</guid>
				
			</item>
			</channel></rss>