<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>CodeWinds Video Training - Leading edge web developer training | Node.js / javascript / HTML5 / web development - Jeff Barczewski</title>
  <link>http://codewinds.com/video.html</link>
  <pubDate>Mon, 12 Oct 2020 23:51:59 -0500</pubDate>
  <description>Keep up with the latest web developer technologies with online video training covering Node.js, javascript, HTML5. Learn the current best practices in web and mobile app development.</description>
  <atom:link rel="self" type="application/rss+xml" href="http://codewinds.com/video-free-rss.xml" />

  <image>
    <link>http://codewinds.com</link>
    <url>http://codewinds.com/assets/codewinds/codewinds-training-1400.png</url>
    <title>CodeWinds - Leading edge web developer video training | Node.js / javascript / HTML5 / web development - Jeff Barczewski</title>
  </image>

  <copyright>CodeWinds (c), Inspired Horizons 2020 All rights reserved.</copyright>
  <lastBuildDate>Mon, 12 Oct 2020 23:51:59 -0500</lastBuildDate>

  
    <item>
      <title>V010 Developer Skills - Creating a custom boilerplate repo</title>
      <link>http://codewinds.com/video/010.html</link>
      <guid>http://codewinds.com/video/010.html</guid>
      <pubDate>Fri, 01 May 2015 08:00:00 -0500</pubDate>
      <description>This video demonstrates how to fork and customize a boilerplate repo with your own preferences. This will make it easy to start a new project.</description>
      <enclosure url="http://codewinds.com/media/video/codewinds-v010.mp4" length="10035177" type="video/mp4"/>
      <media:group>
        <media:content url="http://codewinds.com/media/video/codewinds-v010.webm"
          fileSize="11767522"
          type="video/webm"
          duration="276"
          medium="video"
          width="1280"
          height="720"
          isDefault="true"
          expression="full" />
        <media:content url="http://codewinds.com/media/video/codewinds-v010.mp4"
          fileSize="10035177"
          type="video/mp4"
          duration="276"
          medium="video"
          width="1280"
          height="720"
          expression="full" />
          <media:thumbnail url="http://codewinds.com/media/video/codewinds-v010.png" width="1280" height="720" />
        <media:title>V010 Developer Skills - Creating a custom boilerplate repo</media:title>
        <media:description>This video demonstrates how to fork and customize a boilerplate repo with your own preferences. This will make it easy to start a new project.</media:description>
        <media:keywords>js, nodejs, npm, git</media:keywords>
        <media:rights status="userCreated" />
        <media:copyright>CodeWinds (c), Inspired Horizons 2020 All rights reserved.</media:copyright>

        <media:credit role="author">Jeff Barczewski</media:credit>
        <media:credit role="producer">Jeff Barczewski</media:credit>
        <media:category>tutorials/codewinds/video</media:category>
        <media:rating>nonadult</media:rating>
      </media:group>

      <category>Video</category>
      <content:encoded><![CDATA[
        <p>After you have been developing code for a while, you eventually settle upon the way you want your build environment setup, the defaults you prefer, and the tools and libraries you want to use when building apps.</p>
<p>Rather than starting from scratch on every project, I would suggest that you create a boilerplate project that you can use to jump start your new projects.</p>
<p>You can build yours from scratch or if you find one that has some of the things you want, then you can fork that project and customize it to get it the rest of the way there.</p>
<p>I’ll walk you through this process as I fork a boilerplate of my own.</p>
<div id="toc"><ol><li><a href="#why_create_a_custom_boilerplate_">Why create a custom boilerplate?</a></li><li><a href="#goals">Goals</a></li><li><a href="#video_info">Video Info</a></li><li><a href="#notes">Notes</a></li></ol></div>

<a name="why_create_a_custom_boilerplate_"></a><h2 id="why-create-a-custom-boilerplate-">Why create a custom boilerplate?</h2>
<ul>
<li>Get productive on new project quickly</li>
<li>Favorite settings, tools, dependencies</li>
<li>Let your mind focus on project at hand</li>
</ul>
<a name="goals"></a><h2 id="goals">Goals</h2>
<ul>
<li>Fork existing repo</li>
<li>Customize some key parts</li>
<li>Commit and push</li>
</ul>
<a name="video_info"></a><h2 id="video-info">Video Info</h2>
<ul>
<li>Episode: CW V010</li>
<li>Skill level: Beginner with basic git skills</li>
<li>Prerequisites:<ul>
<li>Basic Git skills</li>
</ul>
</li>
<li>Published: May 1st, 2015</li>
<li>Tags: js, nodejs,git,npm,free</li>
<li>Duration: 4:36</li>
<li>Git version: 1.8.2.1</li>
</ul>
<a name="notes"></a><h2 id="notes">Notes</h2>
<pre class="highlight"><code class="hljs bash"><span class="hljs-built_in">cd</span> ~/working  <span class="hljs-comment"># change dir to where clone will be created</span>
<span class="hljs-comment"># use your ssh git clone url, or others https</span>
git <span class="hljs-built_in">clone</span> git@github.com:codewinds/base-react-min.git
<span class="hljs-built_in">cd</span> base-react-min
<span class="hljs-comment"># customize files</span>
git status  <span class="hljs-comment"># see what files have changed</span>
git diff    <span class="hljs-comment"># see what changed in the files</span>
git commit -a -m <span class="hljs-string">"customized for my prefs"</span>
git push origin HEAD  <span class="hljs-comment"># push back to github</span></code></pre>
<ul>
<li><a href="https://github.com/jeffbski/git-clone-init" title="git-clone-init on github">git-clone-init</a> - npm installable bash script which simplifies process of cloning a boilerplate repo when starting new project, re-initializing git, replacing tokens, and creating initial check in</li>
<li><a href="https://github.com/codewinds/base-react-min" title="codewinds/base-react-min boilerplate">codewinds/base-react-min</a> - CodeWinds boilerplate for minimal React.js projects</li>
</ul>

      ]]></content:encoded>
    </item>
  
    <item>
      <title>V009 Hapi Elapsed Plugin - Publish in npm registry</title>
      <link>http://codewinds.com/video/009.html</link>
      <guid>http://codewinds.com/video/009.html</guid>
      <pubDate>Thu, 11 Sep 2014 08:00:00 -0500</pubDate>
      <description>This video demonstrates how to publish a package to the npm registry and also how to verify with a new install.</description>
      <enclosure url="http://codewinds.com/media/video/codewinds-v009.mp4" length="7943287" type="video/mp4"/>
      <media:group>
        <media:content url="http://codewinds.com/media/video/codewinds-v009.webm"
          fileSize="8223880"
          type="video/webm"
          duration="284"
          medium="video"
          width="1280"
          height="720"
          isDefault="true"
          expression="full" />
        <media:content url="http://codewinds.com/media/video/codewinds-v009.mp4"
          fileSize="7943287"
          type="video/mp4"
          duration="284"
          medium="video"
          width="1280"
          height="720"
          expression="full" />
          <media:thumbnail url="http://codewinds.com/media/video/codewinds-v009.png" width="1280" height="720" />
        <media:title>V009 Hapi Elapsed Plugin - Publish in npm registry</media:title>
        <media:description>This video demonstrates how to publish a package to the npm registry and also how to verify with a new install.</media:description>
        <media:keywords>js, nodejs, npm, git, hapi, plugin</media:keywords>
        <media:rights status="userCreated" />
        <media:copyright>CodeWinds (c), Inspired Horizons 2020 All rights reserved.</media:copyright>

        <media:credit role="author">Jeff Barczewski</media:credit>
        <media:credit role="producer">Jeff Barczewski</media:credit>
        <media:category>tutorials/codewinds/video</media:category>
        <media:rating>nonadult</media:rating>
      </media:group>

      <category>Video</category>
      <content:encoded><![CDATA[
        <p>In the <a href="http://codewinds.com/video/008.html" title="CodeWinds V008">previous video</a>, we setup Travis-CI for our project, triggered a build, and finally verified a build after pushing a new change.</p>
<p>This video picks up where we left off and we will publish our package to the npm registry so developers can find and install it more easily.</p>
<div id="toc"><ol><li><a href="#goals">Goals</a></li><li><a href="#video_info">Video Info</a></li><li><a href="#notes">Notes</a></li><li><a href="#in_the_next_video">In the next video</a></li></ol></div>

<a name="goals"></a><h2 id="goals">Goals</h2>
<ul>
<li>Tag version</li>
<li>Publish in NPM registry</li>
<li>Install from registry</li>
</ul>
<a name="video_info"></a><h2 id="video-info">Video Info</h2>
<ul>
<li>Episode: CW V009</li>
<li>Skill level: Beginner with basic git and npm skills</li>
<li>Prerequisites:<ul>
<li>Basic Node.js &amp; npm</li>
<li>Basic Git skills</li>
</ul>
</li>
<li>Published: September 11th, 2014</li>
<li>Tags: js, nodejs,git,npm,hapi,plugin,free</li>
<li>Duration: 4:44</li>
<li>Node.js version: 0.10.25</li>
<li>Git version: 1.8.2.1</li>
</ul>
<a name="notes"></a><h2 id="notes">Notes</h2>
<pre class="highlight"><code class="hljs bash">npm add-user  <span class="hljs-comment"># add registry user account</span>
npm publish   <span class="hljs-comment"># publish current package to npm</span>
npm info hapi-elapsed  <span class="hljs-comment"># view info on hapi-elapsed from npm</span>
npm doc hapi-elapsed   <span class="hljs-comment"># open browser to hapi-elapsed docs</span></code></pre>
<ul>
<li>verify that package installs properly with all the necessary files by creating a new project and doing <code>npm install hapi-elapsed</code> and for more completeness, create an example and use the package.</li>
<li><a href="https://github.com/codewinds/hapi-elapsed" title="hapi-elapsed GitHub repo">hapi-elapsed</a> - repo on GitHub</li>
<li><a href="https://www.npmjs.org/doc/cli/npm-adduser.html" title="npm-adduser man page">npm-adduser</a> - manual page for adduser</li>
<li><a href="https://www.npmjs.org/doc/cli/npm-publish.html" title="npm-publis man page">npm-publish</a> - manual page for publish</li>
<li><a href="https://www.npmjs.org" title="npm registry">npm</a> - npm registry - can perform web search for packages by name or keyword</li>
</ul>
<a name="in_the_next_video"></a><h2 id="in-the-next-video">In the next video</h2>
<ul>
<li>Update the plugin code for latest Hapi</li>
<li>Verify tests</li>
<li>Push updates to GitHub and npm</li>
</ul>

      ]]></content:encoded>
    </item>
  
    <item>
      <title>V008 Hapi Elapsed Plugin - Enable Travis-CI</title>
      <link>http://codewinds.com/video/008.html</link>
      <guid>http://codewinds.com/video/008.html</guid>
      <pubDate>Tue, 01 Jul 2014 08:00:00 -0500</pubDate>
      <description>This video demonstrates how to configure and enable travis-ci for our GitHub repo. Finally we test by pushing a change which automatically runs the build and reports any errors.</description>
      <enclosure url="http://codewinds.com/media/video/codewinds-v008.mp4" length="7066292" type="video/mp4"/>
      <media:group>
        <media:content url="http://codewinds.com/media/video/codewinds-v008.webm"
          fileSize="8621879"
          type="video/webm"
          duration="283"
          medium="video"
          width="1280"
          height="720"
          isDefault="true"
          expression="full" />
        <media:content url="http://codewinds.com/media/video/codewinds-v008.mp4"
          fileSize="7066292"
          type="video/mp4"
          duration="283"
          medium="video"
          width="1280"
          height="720"
          expression="full" />
          <media:thumbnail url="http://codewinds.com/media/video/codewinds-v008.png" width="1280" height="720" />
        <media:title>V008 Hapi Elapsed Plugin - Enable Travis-CI</media:title>
        <media:description>This video demonstrates how to configure and enable travis-ci for our GitHub repo. Finally we test by pushing a change which automatically runs the build and reports any errors.</media:description>
        <media:keywords>js, nodejs, travis-ci, ci, git, hapi, plugin</media:keywords>
        <media:rights status="userCreated" />
        <media:copyright>CodeWinds (c), Inspired Horizons 2020 All rights reserved.</media:copyright>

        <media:credit role="author">Jeff Barczewski</media:credit>
        <media:credit role="producer">Jeff Barczewski</media:credit>
        <media:category>tutorials/codewinds/video</media:category>
        <media:rating>nonadult</media:rating>
      </media:group>

      <category>Video</category>
      <content:encoded><![CDATA[
        <p>In the <a href="http://codewinds.com/video/007.html" title="CodeWinds V007">previous video</a>, we created a new GitHub repo and pushed our local code up to the new repository. Finally we test by installing this Node.js Hapi plugin directly from GitHub.</p>
<p>This video picks up where we left off and we configure travis-ci for our repo so that we can get automated build each time we push to GitHub. Errors will be reported to us automatically.</p>
<div id="toc"><ol><li><a href="#goals">Goals</a></li><li><a href="#video_info">Video Info</a></li><li><a href="#notes">Notes</a><ol><li><a href="#example_travis-ci_config_file">Example Travis-CI config file</a></li></ol></li><li><a href="#in_the_next_video">In the next video</a></li></ol></div>

<a name="goals"></a><h2 id="goals">Goals</h2>
<ul>
<li>Enable travis-ci for repo</li>
<li>Trigger build with test hook</li>
<li>Push change to run build</li>
</ul>
<a name="video_info"></a><h2 id="video-info">Video Info</h2>
<ul>
<li>Episode: CW V008</li>
<li>Skill level: Beginner with basic git and npm skills</li>
<li>Prerequisites:<ul>
<li>Basic Node.js &amp; npm</li>
<li>Basic Git skills</li>
</ul>
</li>
<li>Published: July 1st, 2014</li>
<li>Tags: js, nodejs,git,travis-ci,ci,hapi,plugin,free</li>
<li>Duration: 4:43</li>
<li>Node.js version: 0.10.25</li>
<li>Git version: 1.8.2.1</li>
</ul>
<a name="notes"></a><h2 id="notes">Notes</h2>
<ul>
<li><a href="https://travis-ci.org" title="Travis-CI continuous integration">Travis-CI</a> - Sign up for free using your GitHub account. The free account allows you to build against your open source public repos. Paid accounts allow building of private repos along with additional features and priority builds.</li>
<li><code>.travis.yml</code> contains the configuration for Travis-CI</li>
<li>Travis runs <code>npm install</code> followed by <code>npm-test</code> to test both the installation of your modules and to run your tests.</li>
<li>You may configure the versions of Node.js you want to test your project on</li>
<li>By using Travis-CI builds are run on all the configured versions every time you push to GitHub and errors are emailed back to you or you can view in their dashboard.</li>
<li>We add the travis-ci image into our README so users can see whether our code is passing tests on all the configured versions of Node.js. The images is also linked so it takes users directly to the Travis-CI dashboard for this project so they can see the history of the project and guage its stability.</li>
<li><a href="https://github.com/codewinds/hapi-elapsed" title="hapi-elapsed GitHub repo">hapi-elapsed</a> - repo on GitHub</li>
<li><a href="https://travis-ci.org/codewinds/hapi-elapsed">Travis-CI hapi-elapsed dashboard</a></li>
</ul>
<a name="example_travis-ci_config_file"></a><h3 id="example-travis-ci-config-file">Example Travis-CI config file</h3>
<p>Specifies node_js as the language and we will run against Node.js 0.10 and Node.js 0.11</p>
<pre class="highlight"><code class="hljs haml">language: node_js
node_js:
  -<span class="ruby"> <span class="hljs-string">"0.10"</span>
</span>  -<span class="ruby"> <span class="hljs-string">"0.11"</span></span></code></pre><a name="in_the_next_video"></a><h2 id="in-the-next-video">In the next video</h2>
<ul>
<li>Tag version</li>
<li>Publish in NPM registry</li>
<li>Install from registry</li>
</ul>

      ]]></content:encoded>
    </item>
  
    <item>
      <title>V007 Hapi Elapsed Plugin - Push to GitHub</title>
      <link>http://codewinds.com/video/007.html</link>
      <guid>http://codewinds.com/video/007.html</guid>
      <pubDate>Thu, 26 Jun 2014 08:00:00 -0500</pubDate>
      <description>This video demonstrates how to create a new GitHub repo and how to push our local code up to the new repository. Finally we test by installing this Node.js Hapi plugin directly from GitHub.</description>
      <enclosure url="http://codewinds.com/media/video/codewinds-v007.mp4" length="7835828" type="video/mp4"/>
      <media:group>
        <media:content url="http://codewinds.com/media/video/codewinds-v007.webm"
          fileSize="9010650"
          type="video/webm"
          duration="321"
          medium="video"
          width="1280"
          height="720"
          isDefault="true"
          expression="full" />
        <media:content url="http://codewinds.com/media/video/codewinds-v007.mp4"
          fileSize="7835828"
          type="video/mp4"
          duration="321"
          medium="video"
          width="1280"
          height="720"
          expression="full" />
          <media:thumbnail url="http://codewinds.com/media/video/codewinds-v007.png" width="1280" height="720" />
        <media:title>V007 Hapi Elapsed Plugin - Push to GitHub</media:title>
        <media:description>This video demonstrates how to create a new GitHub repo and how to push our local code up to the new repository. Finally we test by installing this Node.js Hapi plugin directly from GitHub.</media:description>
        <media:keywords>js, nodejs, git, hapi, plugin</media:keywords>
        <media:rights status="userCreated" />
        <media:copyright>CodeWinds (c), Inspired Horizons 2020 All rights reserved.</media:copyright>

        <media:credit role="author">Jeff Barczewski</media:credit>
        <media:credit role="producer">Jeff Barczewski</media:credit>
        <media:category>tutorials/codewinds/video</media:category>
        <media:rating>nonadult</media:rating>
      </media:group>

      <category>Video</category>
      <content:encoded><![CDATA[
        <p>In the <a href="http://codewinds.com/video/005.html" title="CodeWinds V005">previous video</a>, we had iterated to create a more full featured <a href="http://hapijs.com" title="Hapijs">Hapijs</a> Elapsed time plugin which calculates the elapsed time from the request coming in to when the response has been fully sent.</p>
<p>This video picks up where we left off and we create a new GitHub repo and push our local code up to it. We also install our code to a new project directly from the GitHub repo.</p>
<div id="toc"><ol><li><a href="#goals">Goals</a></li><li><a href="#video_info">Video Info</a></li><li><a href="#notes">Notes</a></li><li><a href="#in_the_next_video">In the next video</a></li></ol></div>

<a name="goals"></a><h2 id="goals">Goals</h2>
<ul>
<li>create new GitHub repo</li>
<li>push to GitHub</li>
<li>install from GitHub</li>
</ul>
<a name="video_info"></a><h2 id="video-info">Video Info</h2>
<ul>
<li>Episode: CW V007</li>
<li>Skill level: Beginner with basic git and npm skills</li>
<li>Prerequisites:<ul>
<li>Basic Node.js &amp; npm</li>
<li>Basic Git skills</li>
</ul>
</li>
<li>Published: June 26th, 2014</li>
<li>Tags: js, nodejs,git,hapi,plugin,free</li>
<li>Duration: 5:21</li>
<li>Node.js version: 0.10.25</li>
<li>Git version: 1.8.2.1</li>
</ul>
<a name="notes"></a><h2 id="notes">Notes</h2>
<ul>
<li>We are creating a new GitHub repo and will be using our existing code from our local system to populate the repo.</li>
<li>Once we push our code to GitHub we will have an exact copy of the local files living there. We can continue to make changes locally and push up commits and all our work will be replicated to the GitHub server.</li>
<li>With our code on GitHub others can use and review our code and even clone or fork the repository for themselves.</li>
<li>Since <code>npm</code> supports installation directly from GitHub we can install directly from there (even without publishing to the npm registry), this is great for sharing even when not ready to publish to npm yet.</li>
<li>There are many ways to install with npm from a git repo<ul>
<li><a href="https://www.npmjs.org/doc/cli/npm-install.html" title="npm install manual">npm install manual</a></li>
<li>I prefer using the tarball URL since it is more efficient (the other methods clone the repo which could grow to be very large over time).</li>
<li>In practice I also recommend using a tag rather than just installing from master, that way you can control exactly which version you are getting and can selectively choose when to upgrade. You can also use a branch name instead of a tag.</li>
</ul>
</li>
</ul>
<pre class="highlight"><code class="hljs bash"><span class="hljs-comment"># Various ways to install from GitHub</span>
<span class="hljs-comment"># install master from tarball</span>
npm install https://github.com/codewinds/hapi-elapsed/archive/master.tar.gz
<span class="hljs-comment"># install tag v0.0.1 from tarball (my preferred)</span>
npm install https://github.com/codewinds/hapi-elapsed/archive/v0.0.1.tar.gz
npm install codewinds/hapi-elapsed  <span class="hljs-comment"># installs from github repo</span>
npm install codewinds/hapi-elapsed<span class="hljs-comment">#v0.0.1  # installs tag v0.0.1</span>
npm install git+ssh://git@github.com:codewinds/hapi-elapased.git<span class="hljs-comment">#v0.0.1</span></code></pre>
<a name="in_the_next_video"></a><h2 id="in-the-next-video">In the next video</h2>
<ul>
<li>Enable travis-ci for repo</li>
<li>Trigger build with test hook</li>
<li>Push change to run build</li>
</ul>

      ]]></content:encoded>
    </item>
  
    <item>
      <title>V006 bench-rest - Main usage - Node.js REST benchmark client</title>
      <link>http://codewinds.com/video/006.html</link>
      <guid>http://codewinds.com/video/006.html</guid>
      <pubDate>Mon, 26 May 2014 08:00:00 -0500</pubDate>
      <description>This video demonstrates some basic basic functionality of bench-rest, a REST benchmark client which is written in Node.js.</description>
      <enclosure url="http://codewinds.com/media/video/codewinds-v006.mp4" length="12524330" type="video/mp4"/>
      <media:group>
        <media:content url="http://codewinds.com/media/video/codewinds-v006.webm"
          fileSize="15002847"
          type="video/webm"
          duration="540"
          medium="video"
          width="1280"
          height="720"
          isDefault="true"
          expression="full" />
        <media:content url="http://codewinds.com/media/video/codewinds-v006.mp4"
          fileSize="12524330"
          type="video/mp4"
          duration="540"
          medium="video"
          width="1280"
          height="720"
          expression="full" />
          <media:thumbnail url="http://codewinds.com/media/video/codewinds-v006.png" width="1280" height="720" />
        <media:title>V006 bench-rest - Main usage - Node.js REST benchmark client</media:title>
        <media:description>This video demonstrates some basic basic functionality of bench-rest, a REST benchmark client which is written in Node.js.</media:description>
        <media:keywords>js, nodejs, benchmark, REST</media:keywords>
        <media:rights status="userCreated" />
        <media:copyright>CodeWinds (c), Inspired Horizons 2020 All rights reserved.</media:copyright>

        <media:credit role="author">Jeff Barczewski</media:credit>
        <media:credit role="producer">Jeff Barczewski</media:credit>
        <media:category>tutorials/codewinds/video</media:category>
        <media:rating>nonadult</media:rating>
      </media:group>

      <category>Video</category>
      <content:encoded><![CDATA[
        <p>This video introduces <a href="https://github.com/jeffbski/bench-rest" title="bench-rest - GitHub repo">bench-rest</a>, a REST benchmark client which I wrote in Node.js bench-rest makes it easy to define simple sets of REST operations or flows in a simple javascript format and run these as a load test. It gathers the metrics from the run and provides a basic set of statistics. bench-rest’s flow format makes it easy to use unique URL’s or data with your flows using a simple substitution.</p>
<p>bench-rest is built off the shoulders of three fantastic Node.js libraries:</p>
<ul>
<li>Mikeal Roger’s <a href="https://github.com/mikeal/request" title="request - Node.js HTTP client">request</a> HTTP client</li>
<li>Caolan McMahon’s <a href="https://github.com/caolan/async" title="async - Asynchronous Node.js Utilities">async</a> asynchronous utilities</li>
<li>Felix Geisendörfer’s <a href="https://github.com/felixge/node-measured" title="measured - Node.js metrics library">measured</a> metrics library</li>
</ul>
<p>In the video I demonstrate bench-rest use as a command line client, but it can also be used programmatically. bench-rest’s flow format for defining the REST operations also allows setup and teardown operations to be performed and actions can be run before or after each operation to further customize or validate the processing.</p>
<div id="toc"><ol><li><a href="#goals">Goals</a></li><li><a href="#video_info">Video Info</a></li><li><a href="#notes">Notes</a></li></ol></div>

<a name="goals"></a><h2 id="goals">Goals</h2>
<ul>
<li>Introduce bench-rest</li>
<li>Demonstrate single method</li>
<li>Explain multi-operation flows</li>
</ul>
<a name="video_info"></a><h2 id="video-info">Video Info</h2>
<ul>
<li>Episode: CW V006</li>
<li>Skill level: Beginner with basic Node.js skills</li>
<li>Prerequisites:<ul>
<li>Basic Node.js &amp; npm</li>
<li>Basic Bash knowledge</li>
</ul>
</li>
<li>Published: May 26th, 2014</li>
<li>Tags: js, nodejs,benchmark,REST,free</li>
<li>Duration: 9:00</li>
<li>Node.js version: 0.10.25</li>
</ul>
<a name="notes"></a><h2 id="notes">Notes</h2>
<pre class="highlight"><code class="hljs bash">npm install -g bench-rest` <span class="hljs-comment"># install</span>
bench-rest <span class="hljs-comment"># display help</span>

<span class="hljs-comment"># single GET</span>
bench-rest http://localhost:3000/foo

<span class="hljs-comment"># GET 100 times, 10 concurrent</span>
bench-rest -n 100 http://localhost:3000/foo

<span class="hljs-comment"># GET 100 times, 20 concurrent</span>
bench-rest -n 100 -c 20 http://foo/bar

<span class="hljs-comment"># run flow defined in my-flow.js 100 times</span>
<span class="hljs-comment"># with 20 concurrent connections</span>
bench-rest -n 100 -c 20 my-flow.js</code></pre>

      ]]></content:encoded>
    </item>
  
    <item>
      <title>V005 Hapijs Elapsed Plugin - Iterate Adding Features</title>
      <link>http://codewinds.com/video/005.html</link>
      <guid>http://codewinds.com/video/005.html</guid>
      <pubDate>Fri, 09 May 2014 08:00:00 -0500</pubDate>
      <description>In this video, I will iterate with tests and implementation to complete the functionality for our Hapijs Elapsed Plugin.</description>
      <enclosure url="http://codewinds.com/media/video/codewinds-v005.mp4" length="9467711" type="video/mp4"/>
      <media:group>
        <media:content url="http://codewinds.com/media/video/codewinds-v005.webm"
          fileSize="12218858"
          type="video/webm"
          duration="481"
          medium="video"
          width="1280"
          height="720"
          isDefault="true"
          expression="full" />
        <media:content url="http://codewinds.com/media/video/codewinds-v005.mp4"
          fileSize="9467711"
          type="video/mp4"
          duration="481"
          medium="video"
          width="1280"
          height="720"
          expression="full" />
          <media:thumbnail url="http://codewinds.com/media/video/codewinds-v005.png" width="1280" height="720" />
        <media:title>V005 Hapijs Elapsed Plugin - Iterate Adding Features</media:title>
        <media:description>In this video, I will iterate with tests and implementation to complete the functionality for our Hapijs Elapsed Plugin.</media:description>
        <media:keywords>js, nodejs, hapi, plugin</media:keywords>
        <media:rights status="userCreated" />
        <media:copyright>CodeWinds (c), Inspired Horizons 2020 All rights reserved.</media:copyright>

        <media:credit role="author">Jeff Barczewski</media:credit>
        <media:credit role="producer">Jeff Barczewski</media:credit>
        <media:category>tutorials/codewinds/video</media:category>
        <media:rating>nonadult</media:rating>
      </media:group>

      <category>Video</category>
      <content:encoded><![CDATA[
        <p>In the <a href="http://codewinds.com/video/004.html" title="CodeWinds V004">previous video</a>, we had created a basic Hapijs Elapsed time plugin which calculates the elapsed time from the request coming in to when the response has been fully sent.</p>
<p>This video picks up where we left off and dresses up the plugin with a few more fields that would be nice to have in that log message so we could use them for analysis.</p>
<p>We will add a failing test and them implement the feature for each of the following properties:</p>
<ul>
<li>request ID</li>
<li>HTTP method</li>
<li>URL</li>
<li>HTTP response status code</li>
<li>HTTP response headers</li>
</ul>
<p>Using <a href="http://visionmedia.github.io/mocha/" title="MochaJS Test Runner">Mocha</a>‘s watch feature, you can see how it is easy to bounce back and forth creating tests and implementing the feature without having to leave our editor.</p>
<p>At the end of this video, we have a fully functional Hapijs Elapsed time plugin.</p>
<div id="toc"><ol><li><a href="#goals">Goals</a></li><li><a href="#video_info">Video Info</a></li><li><a href="#notes">Notes</a></li><li><a href="#in_the_next_video">In the next video</a></li></ol></div>

<a name="goals"></a><h2 id="goals">Goals</h2>
<ul>
<li>Iterate on: id, method, url, status, and headers features<ul>
<li>adding failing tests</li>
<li>implement features</li>
</ul>
</li>
</ul>
<a name="video_info"></a><h2 id="video-info">Video Info</h2>
<ul>
<li>Episode: CW V005</li>
<li>Skill level: Beginner with basic Node.js skills</li>
<li>Prerequisites:<ul>
<li>Basic Node.js &amp; npm</li>
<li>Basic Mocha test runner knowledge</li>
<li>Basic Chai assertion library knowledge</li>
</ul>
</li>
<li>Published: May 9th, 2014</li>
<li>Tags: js, nodejs,hapi,plugin,free</li>
<li>Duration: 8:01</li>
<li>Node.js version: 0.10.25</li>
<li>Git version: 1.8.2.1</li>
</ul>
<a name="notes"></a><h2 id="notes">Notes</h2>
<ul>
<li>We will use a test driven development approach to building our plugin<ul>
<li>Test runner is <a href="http://visionmedia.github.io/mocha/" title="MochaJS Test Runner">Mocha</a></li>
<li>Assertion library is <a href="http://chaijs.com/" title="ChaiJS Assertion Library">Chaijs</a></li>
<li><a href="http://hapijs.com" title="Hapijs">Hapijs website</a></li>
<li><a href="https://github.com/spumko/hapi/blob/master/docs/Reference.md#plugin-interface" title="Hapijs Plugin Interface">Hapijs Plugin Interface</a></li>
<li><a href="https://github.com/spumko/hapi/blob/master/docs/Reference.md#serverextevent-method-options" title="Hapijs Server Extensions">Hapijs Server Extensions and the Request life cycle</a></li>
<li><a href="https://github.com/spumko/hoek#bench" title="Hoek Bench timer">Hoek Benchmark timer</a></li>
</ul>
</li>
</ul>
<a name="in_the_next_video"></a><h2 id="in-the-next-video">In the next video</h2>
<ul>
<li>Create a repo on github</li>
<li>Push local repo to github</li>
<li>Test npm installing from github</li>
</ul>
<p><a href="http://codewinds.com/video/007.html" title="CodeWinds V007">Continue to the next video V007</a></p>

      ]]></content:encoded>
    </item>
  
    <item>
      <title>V004 Hapijs Elapsed Plugin - Add Elapsed Feature</title>
      <link>http://codewinds.com/video/004.html</link>
      <guid>http://codewinds.com/video/004.html</guid>
      <pubDate>Thu, 08 May 2014 08:00:00 -0500</pubDate>
      <description>In this video, I will demonstrate how to create a test for our elapsed time feature and we will implement the feature.</description>
      <enclosure url="http://codewinds.com/media/video/codewinds-v004.mp4" length="15222991" type="video/mp4"/>
      <media:group>
        <media:content url="http://codewinds.com/media/video/codewinds-v004.webm"
          fileSize="19434158"
          type="video/webm"
          duration="670"
          medium="video"
          width="1280"
          height="720"
          isDefault="true"
          expression="full" />
        <media:content url="http://codewinds.com/media/video/codewinds-v004.mp4"
          fileSize="15222991"
          type="video/mp4"
          duration="670"
          medium="video"
          width="1280"
          height="720"
          expression="full" />
          <media:thumbnail url="http://codewinds.com/media/video/codewinds-v004.png" width="1280" height="720" />
        <media:title>V004 Hapijs Elapsed Plugin - Add Elapsed Feature</media:title>
        <media:description>In this video, I will demonstrate how to create a test for our elapsed time feature and we will implement the feature.</media:description>
        <media:keywords>js, nodejs, hapi, plugin</media:keywords>
        <media:rights status="userCreated" />
        <media:copyright>CodeWinds (c), Inspired Horizons 2020 All rights reserved.</media:copyright>

        <media:credit role="author">Jeff Barczewski</media:credit>
        <media:credit role="producer">Jeff Barczewski</media:credit>
        <media:category>tutorials/codewinds/video</media:category>
        <media:rating>nonadult</media:rating>
      </media:group>

      <category>Video</category>
      <content:encoded><![CDATA[
        <p>In the <a href="http://codewinds.com/video/003.html" title="CodeWinds V003">previous video</a>, we implemented the basic shell for a Hapijs plugin with just enough code that it registers as a plugin. This is the starting point for any plugin you build.</p>
<p>In this tutorial we will create a failing test for our Hapijs plugin’s elapsed time feature. Then I will briefly discuss the <a href="http://hapijs.com" title="Hapijs">Hapijs</a> reference sections for plugins and logging so that we can implement this feature.</p>
<p>Our elapsed time feature will be implemented by hooking into the request life cycle using a server extension for <code>onRequest</code> and <code>onResponse</code>. We will create a benchmark timer in the <code>onRequest</code> and then log the elapsed time in the <code>onResponse</code>.</p>
<div id="toc"><ol><li><a href="#goals">Goals</a></li><li><a href="#video_info">Video Info</a></li><li><a href="#notes">Notes</a></li><li><a href="#in_the_next_video">In the next video</a></li></ol></div>

<a name="goals"></a><h2 id="goals">Goals</h2>
<ul>
<li>Create elapsed time feature test</li>
<li>Review plugin docs for ext, log</li>
<li>Implement elapsed time feature</li>
</ul>
<a name="video_info"></a><h2 id="video-info">Video Info</h2>
<ul>
<li>Episode: CW V004</li>
<li>Skill level: Beginner with basic Node.js skills</li>
<li>Prerequisites:<ul>
<li>Basic Node.js &amp; npm</li>
<li>Basic Mocha test runner knowledge</li>
<li>Basic Chai assertion library knowledge</li>
</ul>
</li>
<li>Published: May 8th, 2014</li>
<li>Tags: js, nodejs,hapi,plugin,free</li>
<li>Duration: 11:10</li>
<li>Node.js version: 0.10.25</li>
<li>Git version: 1.8.2.1</li>
</ul>
<a name="notes"></a><h2 id="notes">Notes</h2>
<ul>
<li>We will use a test driven development approach to building our plugin<ul>
<li>Test runner is <a href="http://visionmedia.github.io/mocha/" title="MochaJS Test Runner">Mocha</a></li>
<li>Assertion library is <a href="http://chaijs.com/" title="ChaiJS Assertion Library">Chaijs</a></li>
<li><a href="http://hapijs.com" title="Hapijs">Hapijs website</a></li>
<li><a href="https://github.com/spumko/hapi/blob/master/docs/Reference.md#plugin-interface" title="Hapijs Plugin Interface">Hapijs Plugin Interface</a></li>
<li><a href="https://github.com/spumko/hapi/blob/master/docs/Reference.md#serverextevent-method-options" title="Hapijs Server Extensions">Hapijs Server Extensions and the Request life cycle</a></li>
</ul>
</li>
</ul>
<a name="in_the_next_video"></a><h2 id="in-the-next-video">In the next video</h2>
<ul>
<li>Iterate on: id, method, url, status, and headers features<ul>
<li>adding failing tests</li>
<li>implement features</li>
</ul>
</li>
</ul>
<p><a href="http://codewinds.com/video/005.html" title="CodeWinds V005">Continue to the next video V005</a></p>

      ]]></content:encoded>
    </item>
  
    <item>
      <title>V003 Hapijs Elapsed Plugin - Adding First Test</title>
      <link>http://codewinds.com/video/003.html</link>
      <guid>http://codewinds.com/video/003.html</guid>
      <pubDate>Wed, 07 May 2014 08:00:00 -0500</pubDate>
      <description>In this Node.js video tutorial we will add Mocha pending and failing tests to our new Hapijs Plugin project. Then we will Hapi plugin registration.</description>
      <enclosure url="http://codewinds.com/media/video/codewinds-v003.mp4" length="9481564" type="video/mp4"/>
      <media:group>
        <media:content url="http://codewinds.com/media/video/codewinds-v003.webm"
          fileSize="12108028"
          type="video/webm"
          duration="474"
          medium="video"
          width="1280"
          height="720"
          isDefault="true"
          expression="full" />
        <media:content url="http://codewinds.com/media/video/codewinds-v003.mp4"
          fileSize="9481564"
          type="video/mp4"
          duration="474"
          medium="video"
          width="1280"
          height="720"
          expression="full" />
          <media:thumbnail url="http://codewinds.com/media/video/codewinds-v003.png" width="1280" height="720" />
        <media:title>V003 Hapijs Elapsed Plugin - Adding First Test</media:title>
        <media:description>In this Node.js video tutorial we will add Mocha pending and failing tests to our new Hapijs Plugin project. Then we will Hapi plugin registration.</media:description>
        <media:keywords>js, nodejs, hapi, plugin</media:keywords>
        <media:rights status="userCreated" />
        <media:copyright>CodeWinds (c), Inspired Horizons 2020 All rights reserved.</media:copyright>

        <media:credit role="author">Jeff Barczewski</media:credit>
        <media:credit role="producer">Jeff Barczewski</media:credit>
        <media:category>tutorials/codewinds/video</media:category>
        <media:rating>nonadult</media:rating>
      </media:group>

      <category>Video</category>
      <content:encoded><![CDATA[
        <p>Building on the <a href="http://codewinds.com/video/002.html" title="CodeWinds V002">previous video</a>, this video begins by adding a pending mocha test to show how we can document a feature before we are ready to implement.</p>
<p>I will also show you where to find the <a href="http://hapijs.com" title="Hapijs">Hapijs</a> information which documents the Hapi plugin interface so you will know where to find details when you need them.</p>
<p>Then we will create our failing test for the plugin to register, and then finally we will implement the basic Hapi plugin shell to allow our plugin to register successfully.</p>
<div id="toc"><ol><li><a href="#goals">Goals</a></li><li><a href="#video_info">Video Info</a></li><li><a href="#notes">Notes</a></li><li><a href="#in_the_next_video">In the next video</a></li></ol></div>

<a name="goals"></a><h2 id="goals">Goals</h2>
<ul>
<li>Add first pending test</li>
<li>Add setup</li>
<li>Create plugin shell</li>
</ul>
<a name="video_info"></a><h2 id="video-info">Video Info</h2>
<ul>
<li>Episode: CW V003</li>
<li>Skill level: Beginner with basic Node.js skills</li>
<li>Prerequisites:<ul>
<li>Basic Node.js &amp; npm</li>
<li>Basic Mocha test runner knowledge</li>
<li>Basic Chai assertion library knowledge</li>
</ul>
</li>
<li>Published: May 7th, 2014</li>
<li>Tags: js, nodejs,hapi,plugin,free</li>
<li>Duration: 7:54</li>
<li>Node.js version: 0.10.25</li>
<li>Git version: 1.8.2.1</li>
</ul>
<a name="notes"></a><h2 id="notes">Notes</h2>
<ul>
<li>We will use a test driven development approach to building our plugin</li>
<li>Test runner is <a href="http://visionmedia.github.io/mocha/" title="MochaJS Test Runner">Mocha</a></li>
<li>Assertion library is <a href="http://chaijs.com/" title="ChaiJS Assertion Library">Chaijs</a></li>
<li><a href="http://hapijs.com" title="Hapijs">Hapijs website</a></li>
<li><a href="https://github.com/spumko/hapi/blob/master/docs/Reference.md#plugin-interface" title="Hapijs Plugin Interface">Hapijs Plugin Interface</a></li>
</ul>
<a name="in_the_next_video"></a><h2 id="in-the-next-video">In the next video</h2>
<ul>
<li>Create elapsed time feature test</li>
<li>Review plugin docs for ext, log</li>
<li>Implement elapsed time feature</li>
</ul>
<p><a href="http://codewinds.com/video/004.html" title="CodeWinds V004">Continue to the next video V004</a></p>

      ]]></content:encoded>
    </item>
  
    <item>
      <title>V002 Hapijs Elapsed Plugin - Adding Dependencies to a Node.js project</title>
      <link>http://codewinds.com/video/002.html</link>
      <guid>http://codewinds.com/video/002.html</guid>
      <pubDate>Tue, 06 May 2014 08:00:00 -0500</pubDate>
      <description>In this video tutorial we review the goals for our Hapijs Elapsed Plugin, and install some developer dependencies to our Node.js project so we can begin our test driven development of this Hapi plugin.</description>
      <enclosure url="http://codewinds.com/media/video/codewinds-v002.mp4" length="7230778" type="video/mp4"/>
      <media:group>
        <media:content url="http://codewinds.com/media/video/codewinds-v002.webm"
          fileSize="7969385"
          type="video/webm"
          duration="289"
          medium="video"
          width="1280"
          height="720"
          isDefault="true"
          expression="full" />
        <media:content url="http://codewinds.com/media/video/codewinds-v002.mp4"
          fileSize="7230778"
          type="video/mp4"
          duration="289"
          medium="video"
          width="1280"
          height="720"
          expression="full" />
          <media:thumbnail url="http://codewinds.com/media/video/codewinds-v002.png" width="1280" height="720" />
        <media:title>V002 Hapijs Elapsed Plugin - Adding Dependencies to a Node.js project</media:title>
        <media:description>In this video tutorial we review the goals for our Hapijs Elapsed Plugin, and install some developer dependencies to our Node.js project so we can begin our test driven development of this Hapi plugin.</media:description>
        <media:keywords>js, nodejs, git, hapi, plugin</media:keywords>
        <media:rights status="userCreated" />
        <media:copyright>CodeWinds (c), Inspired Horizons 2020 All rights reserved.</media:copyright>

        <media:credit role="author">Jeff Barczewski</media:credit>
        <media:credit role="producer">Jeff Barczewski</media:credit>
        <media:category>tutorials/codewinds/video</media:category>
        <media:rating>nonadult</media:rating>
      </media:group>

      <category>Video</category>
      <content:encoded><![CDATA[
        <p>Taking the fresh module workspace which we created in the <a href="http://codewinds.com/video/001.html" title="CodeWinds V001">previous video</a>, we review the goals for the project, adjust the API in the README, and add some developer dependencies using <code>npm</code> so we are ready to begin our test driven development process.</p>
<div id="toc"><ol><li><a href="#goals">Goals</a></li><li><a href="#video_info">Video Info</a></li><li><a href="#notes">Notes</a></li><li><a href="#in_the_next_video">In the next video</a></li></ol></div>

<a name="goals"></a><h2 id="goals">Goals</h2>
<ul>
<li>Review project goals</li>
<li>Cleanup example</li>
<li>Install mocha and chai, commit</li>
<li>Install hapi</li>
</ul>
<a name="video_info"></a><h2 id="video-info">Video Info</h2>
<ul>
<li>Episode: CW V002</li>
<li>Skill level: Beginner with basic Node.js skills</li>
<li>Prerequisites:<ul>
<li>Basic Node.js &amp; npm</li>
<li>Basic Git</li>
</ul>
</li>
<li>Published: May 6th, 2014</li>
<li>Tags: js, nodejs,git,hapi,plugin,free</li>
<li>Duration: 4:49</li>
<li>Node.js version: 0.10.25</li>
<li>Git version: 1.8.2.1</li>
</ul>
<a name="notes"></a><h2 id="notes">Notes</h2>
<ul>
<li>We will use a test driven development approach to building our plugin</li>
<li>Test runner will be <a href="http://visionmedia.github.io/mocha/" title="MochaJS Test Runner">mocha</a></li>
<li>Assertion library will be <a href="http://chaijs.com/" title="ChaiJS Assertion Library">chaijs</a></li>
</ul>
<a name="in_the_next_video"></a><h2 id="in-the-next-video">In the next video</h2>
<ul>
<li>Create our first plugin test</li>
<li>Implement plugin registration</li>
</ul>
<p><a href="http://codewinds.com/video/003.html" title="CodeWinds V003">Continue to the next video V003</a></p>

      ]]></content:encoded>
    </item>
  
    <item>
      <title>V001 Node.js Fundamentals - Cloning to create a new module</title>
      <link>http://codewinds.com/video/001.html</link>
      <guid>http://codewinds.com/video/001.html</guid>
      <pubDate>Mon, 05 May 2014 08:00:00 -0500</pubDate>
      <description>This video tutorial explains how to create a new module workspace by cloining a boilerplate git repo and then editing the necessary files.</description>
      <enclosure url="http://codewinds.com/media/video/codewinds-v001.mp4" length="12217673" type="video/mp4"/>
      <media:group>
        <media:content url="http://codewinds.com/media/video/codewinds-v001.webm"
          fileSize="16366533"
          type="video/webm"
          duration="648"
          medium="video"
          width="1280"
          height="720"
          isDefault="true"
          expression="full" />
        <media:content url="http://codewinds.com/media/video/codewinds-v001.mp4"
          fileSize="12217673"
          type="video/mp4"
          duration="648"
          medium="video"
          width="1280"
          height="720"
          expression="full" />
          <media:thumbnail url="http://codewinds.com/media/video/codewinds-v001.png" width="1280" height="720" />
        <media:title>V001 Node.js Fundamentals - Cloning to create a new module</media:title>
        <media:description>This video tutorial explains how to create a new module workspace by cloining a boilerplate git repo and then editing the necessary files.</media:description>
        <media:keywords>js, nodejs, boilerplate, git, hapi, plugin</media:keywords>
        <media:rights status="userCreated" />
        <media:copyright>CodeWinds (c), Inspired Horizons 2020 All rights reserved.</media:copyright>

        <media:credit role="author">Jeff Barczewski</media:credit>
        <media:credit role="producer">Jeff Barczewski</media:credit>
        <media:category>tutorials/codewinds/video</media:category>
        <media:rating>nonadult</media:rating>
      </media:group>

      <category>Video</category>
      <content:encoded><![CDATA[
        <p>In this Node.js Fundamentals video, we will clone a git repo with boilerplate files to get us up and running with a good set of core files that we’ll use for development. Then we’ll go in and make minor modifications to the files as needed for our new module.</p>
<div id="toc"><ol><li><a href="#goals">Goals</a></li><li><a href="#video_info">Video Info</a></li><li><a href="#notes">Notes</a><ol><li><a href="#why_clone_vs_starting_with_empty_folder_">Why clone vs starting with empty folder?</a></li><li><a href="#creating_readme_first">Creating README first</a></li></ol></li><li><a href="#links">Links</a></li><li><a href="#in_the_next_video">In the next video</a></li></ol></div>

<a name="goals"></a><h2 id="goals">Goals</h2>
<ul>
<li>Clone a git repo to get boilerplate</li>
<li>Edit some key files</li>
<li>Commit our changes</li>
</ul>
<a name="video_info"></a><h2 id="video-info">Video Info</h2>
<ul>
<li>Episode: CW V001</li>
<li>Skill level: Beginner</li>
<li>Prerequisites:<ul>
<li>Basic Node.js knowledge</li>
<li>Basic Git</li>
</ul>
</li>
<li>Published: May 5th, 2014</li>
<li>Tags: js, nodejs,git,boilerplate,hapi,plugin,free</li>
<li>Duration: 10:48</li>
<li>Node.js version: 0.10.25</li>
<li>Git version: 1.8.2.1</li>
</ul>
<a name="notes"></a><h2 id="notes">Notes</h2>
<a name="why_clone_vs_starting_with_empty_folder_"></a><h3 id="why-clone-vs-starting-with-empty-folder-">Why clone vs starting with empty folder?</h3>
<p>Note while you can start out building a module from an empty folder, I have found that it much easier to just create yourself a boilerplate project which you can clone from. This lets you keep a up to date set of supporting files that you can quickly bring in and then you are bootstrapped and ready to develop.</p>
<p>In these instructions we will use my boilerplate repo <a href="https://github.com/jeffbski/bare-js" title="jeffbski/bare-js boilerplate repo">bare-js</a>, but you could easily substitute your own or fork mine.</p>
<a name="creating_readme_first"></a><h3 id="creating-readme-first">Creating README first</h3>
<ul>
<li>Establish written goals</li>
<li>Create example API</li>
<li>Refine the API</li>
<li>Share with others</li>
</ul>
<a name="links"></a><h2 id="links">Links</h2>
<ul>
<li><a href="https://github.com/jeffbski/bare-js">https://github.com/jeffbski/bare-js</a> - boilerplate node.js module cloned in this video</li>
</ul>
<a name="in_the_next_video"></a><h2 id="in-the-next-video">In the next video</h2>
<ul>
<li>Install mocha and chai, commit</li>
<li>Install hapi</li>
<li>Review project goals</li>
<li>Refine our example</li>
</ul>
<p><a href="http://codewinds.com/video/002.html" title="CodeWinds V002">Continue to the next video V002</a></p>

      ]]></content:encoded>
    </item>
  


</channel>
</rss>