<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Kevin W. Griffin</title>
	
	<link>http://www.kevgriffin.com</link>
	<description>The Life Lessons of Griff</description>
	<lastBuildDate>Tue, 14 May 2013 15:34:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/KevinGriffin" /><feedburner:info uri="kevingriffin" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Specifying Visual Studio Version in NPM Installs</title>
		<link>http://feedproxy.google.com/~r/KevinGriffin/~3/ASDjzejjm44/</link>
		<comments>http://www.kevgriffin.com/specifying-visual-studio-version-in-npm-installs/#comments</comments>
		<pubDate>Tue, 14 May 2013 15:34:08 +0000</pubDate>
		<dc:creator>Kevin Griffin</dc:creator>
				<category><![CDATA[node.js]]></category>
		<category><![CDATA[npm]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://www.kevgriffin.com/?p=965</guid>
		<description><![CDATA[<p>Sometimes when you install a NPM package, you&#8217;ll run into an issue like this: C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(35,5): error MSB8020: The builds tools for Visual Studio 2010 (Platform Toolset = &#8216;v100&#8242;) cannot be found. To build using the v100 build tools, &#8230; <a href="http://www.kevgriffin.com/specifying-visual-studio-version-in-npm-installs/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://www.kevgriffin.com/specifying-visual-studio-version-in-npm-installs/">Specifying Visual Studio Version in NPM Installs</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p>]]></description>
			<content:encoded><![CDATA[<p>Sometimes when you install a NPM package, you&#8217;ll run into an issue like this:</p>
<blockquote><p>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(35,5): error MSB8020: The builds tools for Visual Studio 2010 (Platform Toolset = &#8216;v100&#8242;) cannot be found. To build using the v100 build tools, either click the Project menu or right-click the solution, and then select &#8220;Update VC++ Projects&#8230;&#8221;. Install Visual Studio 2010 to build using the Visual Studio 2010 build tools.</p></blockquote>
<p>Normally you&#8217;ll get this if you&#8217;re only running VS2012 and it wants VS2010/VS2008.  You can ask NPM to use Visual Studio 2012 instead by using with &#8220;&#8211;msvs_version=2012&#8243; command.</p>
<p>Example:</p>
<blockquote><p>npm install socket.io &#8211;msvs_version=2012</p></blockquote>
<p>Tada.  This should work almost every time.</p>
<p>The post <a href="http://www.kevgriffin.com/specifying-visual-studio-version-in-npm-installs/">Specifying Visual Studio Version in NPM Installs</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=ASDjzejjm44:1qlm6CxZc6c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=ASDjzejjm44:1qlm6CxZc6c:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=ASDjzejjm44:1qlm6CxZc6c:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=ASDjzejjm44:1qlm6CxZc6c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=ASDjzejjm44:1qlm6CxZc6c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=ASDjzejjm44:1qlm6CxZc6c:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=ASDjzejjm44:1qlm6CxZc6c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.kevgriffin.com/specifying-visual-studio-version-in-npm-installs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kevgriffin.com/specifying-visual-studio-version-in-npm-installs/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=specifying-visual-studio-version-in-npm-installs</feedburner:origLink></item>
		<item>
		<title>MADExpo Alumni?  What’s your best moment in MADExpo history?</title>
		<link>http://feedproxy.google.com/~r/KevinGriffin/~3/SbDbxVqSxzw/</link>
		<comments>http://www.kevgriffin.com/madexpo-alumni-whats-your-best-moment-in-madexpo-history/#comments</comments>
		<pubDate>Thu, 25 Apr 2013 17:00:31 +0000</pubDate>
		<dc:creator>Kevin Griffin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kevgriffin.com/?p=956</guid>
		<description><![CDATA[<p>MADExpo 2013 has recently opened it&#8217;s doors, marking the third year of this awesome conference.  We feel that MADExpo is a great conference for bringing together old friends, cultivating new friendships, and overall: building amazing things! But my opinion of &#8230; <a href="http://www.kevgriffin.com/madexpo-alumni-whats-your-best-moment-in-madexpo-history/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://www.kevgriffin.com/madexpo-alumni-whats-your-best-moment-in-madexpo-history/">MADExpo Alumni?  What&#8217;s your best moment in MADExpo history?</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p>]]></description>
			<content:encoded><![CDATA[<p>MADExpo 2013 has recently opened it&#8217;s doors, marking the third year of this awesome conference.  We feel that MADExpo is a great conference for bringing together old friends, cultivating new friendships, and overall: building amazing things!</p>
<p>But my opinion of MADExpo is biased.  I&#8217;ve been involved with the conference since the inception.  I really want to hear from you all.  Your opinions shape this conference, and directly influence how we make it better.</p>
<p><strong>Here&#8217;s my request to you: I really want to hear about one of your favorite moments in MADExpo history</strong>.  Maybe it was a great game of bowling at our attendee party last year?  Maybe it was watching the high school robotics team show off their latest hoop shooting robot?  Whatever it was, we want to know!</p>
<p>If you have a blog, we&#8217;d love to see a post about what MADExpo meant to you (don&#8217;t forget to tell us about it).  If you don&#8217;t, leave a comment.  We&#8217;d love to showcase all the great moments of MADExpo, via our Twitter and Facebook pages.  And you never know, maybe we&#8217;ll have prizes for some of the best moments to cross our path.</p>
<p>If you blog about your best moment, tell us either via our <a href="http://twitter.com/madexpo" target="_blank">Twitter </a>account or here on my blog.  I&#8217;ll make sure that it gets into our pipeline.</p>
<p>The post <a href="http://www.kevgriffin.com/madexpo-alumni-whats-your-best-moment-in-madexpo-history/">MADExpo Alumni?  What&#8217;s your best moment in MADExpo history?</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=SbDbxVqSxzw:zlKiASc1amk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=SbDbxVqSxzw:zlKiASc1amk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=SbDbxVqSxzw:zlKiASc1amk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=SbDbxVqSxzw:zlKiASc1amk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=SbDbxVqSxzw:zlKiASc1amk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=SbDbxVqSxzw:zlKiASc1amk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=SbDbxVqSxzw:zlKiASc1amk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.kevgriffin.com/madexpo-alumni-whats-your-best-moment-in-madexpo-history/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kevgriffin.com/madexpo-alumni-whats-your-best-moment-in-madexpo-history/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=madexpo-alumni-whats-your-best-moment-in-madexpo-history</feedburner:origLink></item>
		<item>
		<title>High School Programming Problems: How Do I Love Thee?</title>
		<link>http://feedproxy.google.com/~r/KevinGriffin/~3/egOcTHFqbyQ/</link>
		<comments>http://www.kevgriffin.com/high-school-programming-problems-how-do-i-love-thee/#comments</comments>
		<pubDate>Tue, 05 Mar 2013 16:00:37 +0000</pubDate>
		<dc:creator>Kevin Griffin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[competiiton]]></category>
		<category><![CDATA[high school]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.kevgriffin.com/?p=943</guid>
		<description><![CDATA[<p>I&#8217;m in the process of working with some high school student on preparing for an upcoming programming competition, and their teacher kindly sent me a few past examples of questions they&#8217;ve had to work through.  I thought it would be &#8230; <a href="http://www.kevgriffin.com/high-school-programming-problems-how-do-i-love-thee/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://www.kevgriffin.com/high-school-programming-problems-how-do-i-love-thee/">High School Programming Problems: How Do I Love Thee?</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m in the process of working with some high school student on preparing for an upcoming programming competition, and their teacher kindly sent me a few past examples of questions they&#8217;ve had to work through.  I thought it would be fun to make these available for everyone to see and try their hand at.  Choose the language of your choice.  For reference, the language requested by this example was Java (I know&#8230; now you have TWO problems).</p>
<blockquote><p>Write a program which asks the user to input a whole number (positive integer). The program should respond by printing out all the ways that smaller numbers could be used to add up to the user&#8217;s number. Here is a sample of the way the user dialog might look:<br/><br />
Do you wish to quit the program (Y/N)? N<br />
What is your number? -12.7<br />
Illegal number; try again.<br />
What is your number? 5<br />
The ways of adding to 5 are:<br />
1+4<br />
1+1+3<br />
1+1+1+2<br />
1+1+1+1+1<br />
1+2+2<br />
2+3<br />
Do you wish to quit the program (Y/N)? etc&#8230;&#8230;&#8230;&#8230;<br/><br/><br />
The exact dialog and the order of output might vary in your program. However, you should avoid giving the same answer twice. For example, &#8220;1+4&#8243; and &#8220;4+1&#8243; are both the same answer.</p></blockquote>
<p>How would you solve this problem?  Let me know in the comments!</p>
<p>The post <a href="http://www.kevgriffin.com/high-school-programming-problems-how-do-i-love-thee/">High School Programming Problems: How Do I Love Thee?</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=egOcTHFqbyQ:VxPSkAsgeRc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=egOcTHFqbyQ:VxPSkAsgeRc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=egOcTHFqbyQ:VxPSkAsgeRc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=egOcTHFqbyQ:VxPSkAsgeRc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=egOcTHFqbyQ:VxPSkAsgeRc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=egOcTHFqbyQ:VxPSkAsgeRc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=egOcTHFqbyQ:VxPSkAsgeRc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.kevgriffin.com/high-school-programming-problems-how-do-i-love-thee/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.kevgriffin.com/high-school-programming-problems-how-do-i-love-thee/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=high-school-programming-problems-how-do-i-love-thee</feedburner:origLink></item>
		<item>
		<title>Simple HTML Formatting in Sublime Text</title>
		<link>http://feedproxy.google.com/~r/KevinGriffin/~3/EZ0xnD2t-NU/</link>
		<comments>http://www.kevgriffin.com/simple-html-formatting-in-sublime-text/#comments</comments>
		<pubDate>Wed, 27 Feb 2013 16:00:16 +0000</pubDate>
		<dc:creator>Kevin Griffin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[formatting]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[sublime text]]></category>

		<guid isPermaLink="false">http://www.kevgriffin.com/?p=936</guid>
		<description><![CDATA[<p>One common questions I&#8217;ve asked and seen asked quite a bit about Sublime Text is how to quickly and easily format HTML while editing.  There isn&#8217;t a default key binding for this, but if you select all text and then &#8230; <a href="http://www.kevgriffin.com/simple-html-formatting-in-sublime-text/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://www.kevgriffin.com/simple-html-formatting-in-sublime-text/">Simple HTML Formatting in Sublime Text</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p>]]></description>
			<content:encoded><![CDATA[<p>One common questions I&#8217;ve asked and seen asked quite a bit about Sublime Text is how to quickly and easily format HTML while editing.  There isn&#8217;t a default key binding for this, but if you select all text and then go to:</p><pre class="crayon-plain-tag">Edit -&gt; Lines -&gt; Reindent</pre><p>Want to create your own keybinding?  Go to Preferences, Key Bindings &#8211; User and add this line:</p><pre class="crayon-plain-tag">{ "keys": ["ctrl+shift+r"], "command": "reindent" , "args": {"single_line": false}}</pre><p>Enjoy!</p>
<p>The post <a href="http://www.kevgriffin.com/simple-html-formatting-in-sublime-text/">Simple HTML Formatting in Sublime Text</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=EZ0xnD2t-NU:omshWYZCuMA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=EZ0xnD2t-NU:omshWYZCuMA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=EZ0xnD2t-NU:omshWYZCuMA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=EZ0xnD2t-NU:omshWYZCuMA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=EZ0xnD2t-NU:omshWYZCuMA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=EZ0xnD2t-NU:omshWYZCuMA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=EZ0xnD2t-NU:omshWYZCuMA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.kevgriffin.com/simple-html-formatting-in-sublime-text/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kevgriffin.com/simple-html-formatting-in-sublime-text/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=simple-html-formatting-in-sublime-text</feedburner:origLink></item>
		<item>
		<title>Where Do I Fly or Train In For MADExpo?</title>
		<link>http://feedproxy.google.com/~r/KevinGriffin/~3/cQ6Da5pMqPQ/</link>
		<comments>http://www.kevgriffin.com/where-do-i-fly-or-train-in-for-madexpo/#comments</comments>
		<pubDate>Mon, 28 Jan 2013 16:00:31 +0000</pubDate>
		<dc:creator>Kevin Griffin</dc:creator>
				<category><![CDATA[MADExpo]]></category>
		<category><![CDATA[Amtrak]]></category>
		<category><![CDATA[ORF]]></category>
		<category><![CDATA[PHF]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://www.kevgriffin.com/?p=931</guid>
		<description><![CDATA[<p>If you&#8217;re planning on travelling to MADExpo, and need to fly into the area, there are two great airports for you to choose from. Newport News/Williamsburg International Airport (PHF) PHF is the closest airport to the convention center, but it&#8217;s &#8230; <a href="http://www.kevgriffin.com/where-do-i-fly-or-train-in-for-madexpo/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://www.kevgriffin.com/where-do-i-fly-or-train-in-for-madexpo/">Where Do I Fly or Train In For MADExpo?</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re planning on travelling to MADExpo, and need to fly into the area, there are two great airports for you to choose from.</p>
<p><strong>Newport News/Williamsburg International Airport (PHF)<br />
</strong>PHF is the closest airport to the convention center, but it&#8217;s a very small airport.  If you&#8217;re flying in on allegiant, Delta, Frontier, PEOPLExpress, or US Airways, this is going to be a great airport for you to look into.  Check in and security is a breeze.  TSA won&#8217;t give you the 3rd degree here.</p>
<p>From PHF to the convention center is about 15 minutes.  Quick taxi ride and you&#8217;re there!</p>
<p><strong>Norfolk International Airport (ORF)<br />
</strong>ORF is where you fly into for the best assortment of airlines and travel times.  Most people will fly into ORF because it&#8217;s the easiest to get really good flights for.  Beware though that travel time from ORF to the convention center is hit or miss.  You have to pass Norfolk Naval Base (World&#8217;s <em>Largest</em> Naval Base), and it&#8217;s a crap shoot in the early morning or mid afternoon.  With no traffic, it&#8217;s a 20-30 minute interstate drive to the airport.  In traffic, add another 30 minutes.</p>
<p>TSA at ORF is alright.  There are two checkpoints, and each one takes about 10 minutes on a heavy day.</p>
<p><strong>Amtrak<br />
</strong>If you&#8217;re the type of person who likes to take the train, there is a stop at Newport News.  From their you can take a taxi to the convention center/hotel, all in about 20 minutes.</p>
<p>The post <a href="http://www.kevgriffin.com/where-do-i-fly-or-train-in-for-madexpo/">Where Do I Fly or Train In For MADExpo?</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=cQ6Da5pMqPQ:Yb3qFfXNcbY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=cQ6Da5pMqPQ:Yb3qFfXNcbY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=cQ6Da5pMqPQ:Yb3qFfXNcbY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=cQ6Da5pMqPQ:Yb3qFfXNcbY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=cQ6Da5pMqPQ:Yb3qFfXNcbY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=cQ6Da5pMqPQ:Yb3qFfXNcbY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=cQ6Da5pMqPQ:Yb3qFfXNcbY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.kevgriffin.com/where-do-i-fly-or-train-in-for-madexpo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kevgriffin.com/where-do-i-fly-or-train-in-for-madexpo/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=where-do-i-fly-or-train-in-for-madexpo</feedburner:origLink></item>
		<item>
		<title>50 Ways to Avoid, Find and Fix ASP.NET Performance Issues</title>
		<link>http://feedproxy.google.com/~r/KevinGriffin/~3/HHiCBS1fh0k/</link>
		<comments>http://www.kevgriffin.com/50-ways-to-avoid-find-and-fix-asp-net-performance-issues/#comments</comments>
		<pubDate>Fri, 25 Jan 2013 15:00:46 +0000</pubDate>
		<dc:creator>Kevin Griffin</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://www.kevgriffin.com/?p=926</guid>
		<description><![CDATA[<p>A couple weeks ago there was a public request on Twitter from the great folks at RedGate to provide tips and tricks for performance in ASP.NET applications.  Come to find out, they selected one of my tips and published it &#8230; <a href="http://www.kevgriffin.com/50-ways-to-avoid-find-and-fix-asp-net-performance-issues/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://www.kevgriffin.com/50-ways-to-avoid-find-and-fix-asp-net-performance-issues/">50 Ways to Avoid, Find and Fix ASP.NET Performance Issues</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p>]]></description>
			<content:encoded><![CDATA[<p>A couple weeks ago there was a public request on Twitter from the great folks at RedGate to provide tips and tricks for performance in ASP.NET applications.  Come to find out, they selected one of my tips and published it in their ebook &#8220;50 Ways to Avoid, Find and Fix ASP.NET Performance Issues&#8221;.</p>
<p>It&#8217;s a free download: <a href="http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/entrypage/avoid-find-fix-asp-problems">http://www.red-gate.com/products/dotnet-development/ants-performance-profiler/entrypage/avoid-find-fix-asp-problems</a></p>
<p>Go grab it today!</p>
<p>The post <a href="http://www.kevgriffin.com/50-ways-to-avoid-find-and-fix-asp-net-performance-issues/">50 Ways to Avoid, Find and Fix ASP.NET Performance Issues</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=HHiCBS1fh0k:ZXHumVGi1GA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=HHiCBS1fh0k:ZXHumVGi1GA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=HHiCBS1fh0k:ZXHumVGi1GA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=HHiCBS1fh0k:ZXHumVGi1GA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=HHiCBS1fh0k:ZXHumVGi1GA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=HHiCBS1fh0k:ZXHumVGi1GA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=HHiCBS1fh0k:ZXHumVGi1GA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.kevgriffin.com/50-ways-to-avoid-find-and-fix-asp-net-performance-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kevgriffin.com/50-ways-to-avoid-find-and-fix-asp-net-performance-issues/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=50-ways-to-avoid-find-and-fix-asp-net-performance-issues</feedburner:origLink></item>
		<item>
		<title>We Want You To Speak at MADExpo 2013</title>
		<link>http://feedproxy.google.com/~r/KevinGriffin/~3/tOmn0tLMi0E/</link>
		<comments>http://www.kevgriffin.com/we-want-you-to-speak-at-madexpo-2013/#comments</comments>
		<pubDate>Wed, 23 Jan 2013 18:27:18 +0000</pubDate>
		<dc:creator>Kevin Griffin</dc:creator>
				<category><![CDATA[Developer Community]]></category>
		<category><![CDATA[MADExpo]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[madkidz]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[robotics]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[speaking]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://www.kevgriffin.com/?p=918</guid>
		<description><![CDATA[<p>MADExpo is June 24-26 in Hampton, VA.  Think beaches, museums, historical sites, NASA research, theme parks, and great fun at a technical conference! It&#8217;s that time of year again, and MADExpo Speaker Submissions are open to the public!  As the &#8230; <a href="http://www.kevgriffin.com/we-want-you-to-speak-at-madexpo-2013/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://www.kevgriffin.com/we-want-you-to-speak-at-madexpo-2013/">We Want You To Speak at MADExpo 2013</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" style="line-height: 21px;" title="MADExpo" src="http://madexpo.us/images/MADExpoLogo.png" alt="" width="313" height="73" /></p>
<p><strong>MADExpo is June 24-26 in Hampton, VA.  Think beaches, museums, historical sites, NASA research, theme parks, and great fun at a technical conference!</strong></p>
<p>It&#8217;s that time of year again, and MADExpo Speaker Submissions are open to the public!  As the speaker coordinator, I wanted to take a moment and chat with you all about what we&#8217;re looking for as far as speakers.</p>
<blockquote><p><strong>TL;D</strong><strong>R</strong> Just go register to speak <a href="http://madexpo.us/speakers">http://madexpo.us/speakers</a></p></blockquote>
<p><strong>What technologies does MADExpo focus on?</strong></p>
<p>It might be a little misleading that a lot of the leadership of MADExpo might come from a heavy Microsoft and .NET background.  Does that mean we&#8217;re trying to shape MADExpo to be yet another .NET oriented conference.  <strong>Of course not.</strong>  I like .NET, but also really enjoy learning about other technologies that people use to solve problems.</p>
<p>I *want* people to submit talks on Ruby, iOS, Java, .NET, Android, [insert technology of your choice].  Our selection is based on how well you communicate the intent of your session.  If you&#8217;re passionate about a topic, we&#8217;re passionate about having you speak at MADExpo!</p>
<p>If you want the &#8220;itemized&#8221; list of what we&#8217;re looking for, here you go:</p>
<ul>
<li>Languages and Frameworks</li>
<li>Databases</li>
<li>CMS (Drupal, WordPress, SharePoint, etc)</li>
<li>UI/UX</li>
<li>Soft Skills and Best Practices</li>
<li>Electronics and Robotics</li>
<li>Business (startups or general)</li>
<li>MADKidz</li>
<li>Surprise us!  You never know!</li>
</ul>
<p><strong>How many sessions should I submit?</strong></p>
<p>We like variety.  If you give us one talk, there is only one reason to select you.  If you give us five talks, you&#8217;re giving us something to work with!  You might have a really great session on &#8220;Building Epic Applications with jQuery&#8221;, but I can ensure you that ten other people do as well.  A great range of topics makes it easier for us to select you for MADExpo.  In the past, we&#8217;ve also leaned a lot towards speakers that could do more than one talk (it&#8217;s not a requirement, just holds more weight).</p>
<p><strong>Are you offering workshops?</strong></p>
<p>This option is definitely on the table (new this year).  If you have an idea for a half-day workshop, please let us know about it.</p>
<p><strong>Can I submit for MADKidz this year?</strong></p>
<p>If you&#8217;re not familiar, MADKidz is our sub-conference for kids only!  In the last two years, this has been unstructured, but highly enjoyable for the kids that attended (and the adults that were present as well).</p>
<p>This year, we&#8217;re working on structuring the content of MADKidz a little more.  One thing to note is that we&#8217;ll have separate rooms for kids ages 6-9 and ages 10-12.  If you have a session that would appeal to either these age groups, SUBMIT it!</p>
<p><strong>When will I know if I&#8217;m selected?</strong></p>
<p>We are slating to announce speakers on March 18th.  Speakers will know before that date if they were selected or not.</p>
<p><strong>Where do I sign up?</strong></p>
<p><a href="http://madexpo.us/speakers"> http://madexpo.us/speakers</a> and tell your friends/colleagues about us!</p>
<p>The post <a href="http://www.kevgriffin.com/we-want-you-to-speak-at-madexpo-2013/">We Want You To Speak at MADExpo 2013</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=tOmn0tLMi0E:98BMm8cC-rs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=tOmn0tLMi0E:98BMm8cC-rs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=tOmn0tLMi0E:98BMm8cC-rs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=tOmn0tLMi0E:98BMm8cC-rs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=tOmn0tLMi0E:98BMm8cC-rs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=tOmn0tLMi0E:98BMm8cC-rs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=tOmn0tLMi0E:98BMm8cC-rs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.kevgriffin.com/we-want-you-to-speak-at-madexpo-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kevgriffin.com/we-want-you-to-speak-at-madexpo-2013/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=we-want-you-to-speak-at-madexpo-2013</feedburner:origLink></item>
		<item>
		<title>Using Unity for Dependency Injection with SignalR</title>
		<link>http://feedproxy.google.com/~r/KevinGriffin/~3/xJkcZ0LMabw/</link>
		<comments>http://www.kevgriffin.com/using-unity-for-dependency-injection-with-signalr/#comments</comments>
		<pubDate>Tue, 08 Jan 2013 16:00:31 +0000</pubDate>
		<dc:creator>Kevin Griffin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[dependency injection]]></category>
		<category><![CDATA[di]]></category>
		<category><![CDATA[inversion of control]]></category>
		<category><![CDATA[ioc]]></category>
		<category><![CDATA[signalr]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://www.kevgriffin.com/?p=905</guid>
		<description><![CDATA[<p>I&#8217;ve had bit of a day, and a large part of it was learning how to wrangle SignalR into using my dependency injection provider (in this case, being Unity).  There are a couple thoughts, that I&#8217;d like to communicate to &#8230; <a href="http://www.kevgriffin.com/using-unity-for-dependency-injection-with-signalr/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://www.kevgriffin.com/using-unity-for-dependency-injection-with-signalr/">Using Unity for Dependency Injection with SignalR</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had bit of a day, and a large part of it was learning how to wrangle SignalR into using my dependency injection provider (in this case, being Unity).  There are a couple thoughts, that I&#8217;d like to communicate to you all in case you&#8217;re looking to do the same thing.  Also, if you have suggestions on what I could do differently, I&#8217;m more than open to hearing.  This is solution that worked for me, and I&#8217;m hoping it&#8217;ll work for you.</p>
<p><strong>NOTE: This is built using SignalR v1.0-RC, which is a Prerelease NuGet package.  I&#8217;ll try to update if this changes after release.</strong></p>
<p>First, what do we want to do?</p><pre class="crayon-plain-tag">public class MyHub : Hub
{
   public MyHub(ISomeInterface interface)
   {
      // handle constructor injection here
   }
}</pre><p>There&#8217;s a hub, but it doesn&#8217;t have a default constructor.  I&#8217;d like to be able to have SignalR automatically INJECT the constructor requirements when we load a new instance of the Hub.</p>
<p>There are TWO things we need to do.  First, we need to build our container (with Unity) and tell SignalR to use it.</p><pre class="crayon-plain-tag">public static void Initialise() // this isn't my misspelling, it's in the Unity.MVC NuGet package.
        {
            var container = BuildUnityContainer();

            var unityDependencyResolver = new UnityDependencyResolver(container);

            // used for MVC
            DependencyResolver.SetResolver(unityDependencyResolver);
            // used for WebAPI
            GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(container);
            // used for SignalR
            GlobalHost.DependencyResolver = new SignalRUnityDependencyResolver(container);
        }

        private static IUnityContainer BuildUnityContainer()
        {
            var container = new UnityContainer();

            // register all your dependencies here.
            container.RegisterType&lt;ISomeInterface, SomeInterface&gt;();

            return container;
        }</pre><p>Simple enough. You might want to know what SignalRUnityDependencyResolver looks like:</p><pre class="crayon-plain-tag">public class SignalRUnityDependencyResolver : DefaultDependencyResolver
    {
        private IUnityContainer _container;

        public SignalRUnityDependencyResolver(IUnityContainer container)
        {
            _container = container;
        }

        public override object GetService(Type serviceType)
        {
            if (_container.IsRegistered(serviceType)) return _container.Resolve(serviceType);
            else return base.GetService(serviceType);
        }

        public override IEnumerable&lt;object&gt; GetServices(Type serviceType)
        {
            if (_container.IsRegistered(serviceType)) return _container.ResolveAll(serviceType);
            else return base.GetServices(serviceType);
        }

    }</pre><p>What&#8217;s going on here? We&#8217;re creating a new SignalR dependency resolver, and inheriting from the default dependency resolver that SignalR uses. When SignalR goes to resolve a dependency, we&#8217;re first going to ask Unity if it has an existing implementation. If it does not, we pass the request on to SignalR to get its default (if one is available).</p>
<p>Why do we have do this? First, you can just replace the IoC container altogether, but I have had no luck registering all the various types that SignalR uses. This was by far an easier approach.</p>
<p>You&#8217;d like to think everything will just work now, right? Wrong. The dependencies in your hub still will not injected. My understanding is that this is by design, so here&#8217;s how to work with it.</p><pre class="crayon-plain-tag">private static IUnityContainer BuildUnityContainer()
        {
            var container = new UnityContainer();

            container.RegisterType&lt;ISomeInterface, SomeInterface&gt;();
            container.RegisterType&lt;MyHub&gt;(new InjectionFactory(CreateMyHub));

            return container;
        }

        private static object CreateMyHub(IUnityContainer p)
        {
            var myHub= new MyHub(p.Resolve&lt;ISomeInterface&gt;());

            return myHub;
        }</pre><p>This should be simple to follow. I&#8217;m registering a new type: MyHub, and telling Unity how to create a new instance of it. Creating it involves resolving the interface myself, and creating the new instance. This instance gets routed through SignalR and eventually executed.</p>
<p>I&#8217;m also a user of StructureMap and Ninject, and I need to sit down to figure out this same process with those frameworks (if I even need to).  If you already have experience with them, let me know what you did.</p>
<p>The post <a href="http://www.kevgriffin.com/using-unity-for-dependency-injection-with-signalr/">Using Unity for Dependency Injection with SignalR</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=xJkcZ0LMabw:8DqMzeVqll8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=xJkcZ0LMabw:8DqMzeVqll8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=xJkcZ0LMabw:8DqMzeVqll8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=xJkcZ0LMabw:8DqMzeVqll8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=xJkcZ0LMabw:8DqMzeVqll8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=xJkcZ0LMabw:8DqMzeVqll8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=xJkcZ0LMabw:8DqMzeVqll8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.kevgriffin.com/using-unity-for-dependency-injection-with-signalr/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.kevgriffin.com/using-unity-for-dependency-injection-with-signalr/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=using-unity-for-dependency-injection-with-signalr</feedburner:origLink></item>
		<item>
		<title>Griff’s Year in Review 2012</title>
		<link>http://feedproxy.google.com/~r/KevinGriffin/~3/nMOcStfTZKM/</link>
		<comments>http://www.kevgriffin.com/griffs-year-in-review-2012/#comments</comments>
		<pubDate>Tue, 01 Jan 2013 16:00:09 +0000</pubDate>
		<dc:creator>Kevin Griffin</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[2012]]></category>
		<category><![CDATA[2013]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[HRNUG]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[startups]]></category>
		<category><![CDATA[winsitter]]></category>
		<category><![CDATA[year in review]]></category>

		<guid isPermaLink="false">http://www.kevgriffin.com/?p=899</guid>
		<description><![CDATA[<p>Another year has come and gone, and now I guess it&#8217;s time to reflect about what got done. My most popular post of the year was Why Should ASP.NET Developers Consider SignalR for All Projects?  I felt really good about &#8230; <a href="http://www.kevgriffin.com/griffs-year-in-review-2012/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://www.kevgriffin.com/griffs-year-in-review-2012/">Griff&#8217;s Year in Review 2012</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p>]]></description>
			<content:encoded><![CDATA[<p>Another year has come and gone, and now I guess it&#8217;s time to reflect about what got done.</p>
<p>My most popular post of the year was <a href="http://www.kevgriffin.com/why-should-asp-net-developers-consider-signalr-for-all-projects/">Why Should ASP.NET Developers Consider SignalR for All Projects?</a>  I felt really good about this post, because I&#8217;ve been following SignalR since it was first announced, and I&#8217;ve seen it grow from a small beta release to a full part of the ASP.NET stack</p>
<p>2012 also brought on changes in my career.  Last year (2011), I started my own company and did a whole bunch of work with ComponentOne.  Early in the year, we parted ways and I moved on full time as a software consultant.  These past several months have been the most beneficial to me professionally.  I&#8217;ve worked with several fantastic clients, and I&#8217;m hoping to see many of them continue on into 2013.</p>
<p>I&#8217;d also say that 2012 marked my departure from .NET as a &#8220;go-to&#8221; solution for all my projects.  As I&#8217;m growing professionally, I&#8217;m learning that there are tons of great platforms for solving problems.  Most of my non-.NET time was spent working with node.js.  You might even notice that a good number of my blog posts are reflecting around this topic.  I absolutely love where this technology is going.</p>
<p>This year was successful for my startup, <a href="http://winsitter.com" target="_blank">Winsitter</a>.  My business partner, <a href="http://www.fishbrains.com" target="_blank">Bret</a>, and I did lots of great work and got Winsitter into public beta for all to see.  While we had hopes of going live with our paid model before the end of the year, we&#8217;ve wanted to make sure that everything was in a place where we felt comfortable before charging people money for our product.  My next big push with Winsitter is to get the last wrinkle ironed out, and start grabbing some credit card numbers.</p>
<p>As we go into 2013, I have big goals for myself.</p>
<p>First, I&#8217;d like to see my businesses grow substantially.  Both Winsitter and Griffin Consulting have the potential to be larger businesses.  I also have a couple other small business ideas that I&#8217;d like to pursue.  You never know, I might build something over the course of a weekend that makes millions of dollars (so start saving up).  By the way, did you know I&#8217;m available for <a title="Hire Me" href="http://www.kevgriffin.com/hire-me/" target="_blank">consulting</a>?</p>
<p>Second, I want to promote developers in the Norfolk/Virginia Beach area much more than I have in the past.  The Hampton Roads .NET Users Group has been great to me, and I still think it&#8217;s the premier developer group in Hampton Roads.  However, I feel it&#8217;s very much one-sided.  Keep an eye open if you&#8217;re in the area, because I have plans.</p>
<p>Third, INETA growth.  You&#8217;re going to see some big changes in how INETA interacts with user groups in the community.  I only have one more year to serve on the board, and many of my plans should start falling into place (mwhahaha).</p>
<p>Fourth, I&#8217;d really like to speak at a large conference (aka not a code camp).  I feel like I really have a lot of great material to work with and share.  All I need to do is get that material in front of an audience.  You&#8217;ll see me submitting to several of the large conferences, and then praying that I get accepted.</p>
<p>That&#8217;s a good place to stop.  I&#8217;m looking forward to 2013, and I hope you are too.  Rock on folks, and be awesome.</p>
<p>&nbsp;</p>
<p>The post <a href="http://www.kevgriffin.com/griffs-year-in-review-2012/">Griff&#8217;s Year in Review 2012</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=nMOcStfTZKM:va6qI_hktrY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=nMOcStfTZKM:va6qI_hktrY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=nMOcStfTZKM:va6qI_hktrY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=nMOcStfTZKM:va6qI_hktrY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=nMOcStfTZKM:va6qI_hktrY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=nMOcStfTZKM:va6qI_hktrY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=nMOcStfTZKM:va6qI_hktrY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.kevgriffin.com/griffs-year-in-review-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.kevgriffin.com/griffs-year-in-review-2012/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=griffs-year-in-review-2012</feedburner:origLink></item>
		<item>
		<title>Node.js: Using require to load your own files</title>
		<link>http://feedproxy.google.com/~r/KevinGriffin/~3/nNIopX-0yi8/</link>
		<comments>http://www.kevgriffin.com/node-js-using-require-to-load-your-own-files/#comments</comments>
		<pubDate>Mon, 31 Dec 2012 16:00:31 +0000</pubDate>
		<dc:creator>Kevin Griffin</dc:creator>
				<category><![CDATA[node.js]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[npm]]></category>
		<category><![CDATA[require]]></category>

		<guid isPermaLink="false">http://www.kevgriffin.com/?p=890</guid>
		<description><![CDATA[<p>For a lot of JavaScript developers that are moving over from traditional &#8220;browser&#8221; development to node.js, they might be casually aware of the require keyword that node.js provides you. If you&#8217;re wondering what I&#8217;m talking about, allow me to explain. &#8230; <a href="http://www.kevgriffin.com/node-js-using-require-to-load-your-own-files/">Continue reading <span class="meta-nav">&#8594;</span></a></p><p>The post <a href="http://www.kevgriffin.com/node-js-using-require-to-load-your-own-files/">Node.js: Using require to load your own files</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p>]]></description>
			<content:encoded><![CDATA[<p>For a lot of JavaScript developers that are moving over from traditional &#8220;browser&#8221; development to node.js, they might be casually aware of the require keyword that node.js provides you.</p>
<p>If you&#8217;re wondering what I&#8217;m talking about, allow me to explain.  In node.js, you can use the node package manager (NPM) to install packages that your application can use.  <a href="http://expressjs.com/" target="_blank">Express</a>, for example,<a href="http://expressjs.com/" target="_blank"> </a>is a great framework for serving up web applications, and you can grab it via NPM.</p>
<p>To load Express into your application, you tell node.js that you &#8220;require&#8221; it be loading into memory.</p><pre class="crayon-plain-tag">var express = require("express");</pre><p>Node follows a couple rules to find modules.  First, you can ask for a module by <strong>name </strong>or by <strong>folder.  </strong>Let&#8217;s look at Express more closely.  If you were to download Express via NPM, you&#8217;d find there is no <em>express.js</em> file in the root directly of the /node_modules/express folder.  However, there is a <em>package.json</em> file that defines the main executable file for express (for fun, go look it up).</p>
<p>Now, if packages.json doesn&#8217;t exist or the main executable isn&#8217;t present, node will resort to looking for your filename with either a <strong>.js</strong>, <strong>.json</strong>, or <strong>.node</strong> extension (unless you&#8217;ve specified).</p>
<h2>Where&#8217;s this going?</h2>
<p>I know, I know&#8230; the point.</p>
<p>Let&#8217;s say you want to abstract out a piece of your application into another file.</p><pre class="crayon-plain-tag">var userRepository = function (){
   var self = this;
   self.addUser = function (...){
   };
   self.get = function (...){
   }
};

module.exports = userRepository;</pre><p>Add this to a file called <strong>userRepository.js</strong>. The last line is VERY IMPORTANT! It tells node.js what you&#8217;d like to export from this file. This should make more since if you try to use the file.</p>
<p>In your main.js or wherever you&#8217;d like to use userRepository:</p><pre class="crayon-plain-tag">var userRepository = require("userRepository.js");

var userRepositoryInstance = new userRepository();
userRepositoryInstance.addUser({...});
userRepositoryInstance.get(...);</pre><p>Looks simple doesn&#8217;t it? Pretty much whatever you assign to <strong>module.exports</strong> will be passed into the variable that calls require().</p>
<p>Use this to keep your code clean and uncluttered.  This is only the basics of using require for your own projects, but I think it&#8217;s a great starting point for developers building their knowledge of node.js.  In the future, I&#8217;d like to expand on this topic and show you how you can take this even farther.</p>
<p>The post <a href="http://www.kevgriffin.com/node-js-using-require-to-load-your-own-files/">Node.js: Using require to load your own files</a> appeared first on <a href="http://www.kevgriffin.com">Kevin W. Griffin</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=nNIopX-0yi8:YcFOVGvsyAQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=nNIopX-0yi8:YcFOVGvsyAQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=nNIopX-0yi8:YcFOVGvsyAQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=nNIopX-0yi8:YcFOVGvsyAQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?i=nNIopX-0yi8:YcFOVGvsyAQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=nNIopX-0yi8:YcFOVGvsyAQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/KevinGriffin?a=nNIopX-0yi8:YcFOVGvsyAQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/KevinGriffin?d=qj6IDK7rITs" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.kevgriffin.com/node-js-using-require-to-load-your-own-files/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.kevgriffin.com/node-js-using-require-to-load-your-own-files/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=node-js-using-require-to-load-your-own-files</feedburner:origLink></item>
	</channel>
</rss>
