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

<channel>
	<title>PMA Media Group&#187; Tools</title>
	<atom:link href="http://www.pmamediagroup.com/category/tools/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pmamediagroup.com</link>
	<description>Unique Marketing Techniques and Strategies with Guaranteed Results!</description>
	<lastBuildDate>Thu, 29 Jul 2010 15:34:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ruby file trimming app</title>
		<link>http://www.pmamediagroup.com/2009/07/ruby-file-trimming-app/</link>
		<comments>http://www.pmamediagroup.com/2009/07/ruby-file-trimming-app/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 22:26:33 +0000</pubDate>
		<dc:creator>hals</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.pmamediagroup.com/?p=950</guid>
		<description><![CDATA[We recently had an interesting experience with very large files. These were comma delimited files (.csv) containing hundreds of thousands of records, each with a dozen or so fields.
e.g.
rec1,field2,,,,,,xxx,fieldn,,,1,2,3,,,fieldx
rec2,field22,,,a,s,d,fieldmore,,,,etc
.
.
.
recn,field2n,,,,ring,,,,ring,1,2,,,hello?,,etc

While testing the setup, we had smaller files to work with. The goal was to create a new file containing only the first field from each record.
e.g.
rec1
rec2
.
.
.
recn

During [...]]]></description>
			<content:encoded><![CDATA[<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">We recently had an interesting experience with very large files. These were comma delimited files (.csv) containing hundreds of thousands of records, each with a dozen or so fields.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">e.g.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">rec1,field2,,,,,,xxx,fieldn,,,1,2,3,,,fieldx</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">rec2,field22,,,a,s,d,fieldmore,,,,etc</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">recn,field2n,,,,ring,,,,ring,1,2,,,hello?,,etc</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">While testing the setup, we had smaller files to work with. The goal was to create a new file containing only the first field from each record.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">e.g.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">rec1</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">rec2</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">recn</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">During testing this was easily done by opening the file in a spreadsheet program (such as OpenOffice), which would split the records on the comma delimiter and place each field in a different column. Then, it was easy to select the first column and write it out to the new file.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">On switching to production files, we discovered that OpenOffice has a limit of 65k rows &#8211; a fraction of what we needed. We then tried some other spreadsheet programs, which produced the same results. We knew there was at least one spreadsheet program that would work, but it was not open source.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">At this point the comment was made: &#8220;well, we ARE ruby developers &#8230;&#8221;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">And that lead to the following simple solution to the problem at hand.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">With a few lines of ruby code, the source files could be read in, line by line, split on the comma delimiter, and the first entry written out to the destination file.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">So, when the usual tools just don&#8217;t work &#8211; remember that a new ruby tool might be just around the corner.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #007400;">#!/usr/bin/ruby</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #007400;">#</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #007400;">#  trimfile.rb</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #007400;">#</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #c41a16;"><span style="color: #aa0d91;">require</span><span style="color: #000000;"> </span>&#8220;rubygems&#8221;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #c41a16;"><span style="color: #aa0d91;">require</span><span style="color: #000000;"> </span>&#8220;ruby-debug&#8221;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;"><span style="color: #aa0d91;">class</span> Trimfile</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;"><span style="white-space: pre;"> </span>attr_accessor :fileName, :newFile</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;"><span style="white-space: pre;"> </span><span style="color: #aa0d91;">def</span> initialize(fileName, newFile)</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #c41a16;"><span style="color: #000000;"> puts </span>&#8220;\nSplit off first comma delimited item of each line.&#8221;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;"><span style="white-space: pre;"> </span>@fnam = fileName</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;"><span style="color: #aa0d91;">if</span> @fnam == <span style="color: #aa0d91;">nil</span> <span style="color: #aa0d91;">then</span> @fnam = <span style="color: #c41a16;">&#8220;trimin.txt&#8221;</span> <span style="color: #aa0d91;">end</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;">@newfnam = newFile</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;"><span style="color: #aa0d91;">if</span> @newfnam == <span style="color: #aa0d91;">nil</span> <span style="color: #aa0d91;">then</span> @newfnam = <span style="color: #c41a16;">&#8220;trimout.txt&#8221;</span> <span style="color: #aa0d91;">end</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;">linecount = <span style="color: #1c00cf;">0</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #c41a16;"><span style="color: #000000;"> puts </span>&#8220;\nFilenames &#8211; input: #{@fnam}, output: #{@newfnam}&#8221;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;">aFile = File.new(@newfnam, <span style="color: #c41a16;">&#8220;w&#8221;</span>)</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;">IO.foreach(@fnam) <span style="color: #aa0d91;">do</span> |line|</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;">aFile.puts line.split(<span style="color: #1c00cf;">&#8216;,&#8217;</span>)[0]</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;">linecount += <span style="color: #1c00cf;">1</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;"><span style="color: #aa0d91;">end</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;">aFile.close</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #c41a16;"><span style="color: #000000;"> puts </span>&#8220;\nTotal lines: #{linecount}&#8221;</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #aa0d91;"><span style="color: #000000;"> </span>end</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #aa0d91;">end</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco;">test = Trimfile.new(ARGV[0], ARGV[1])</p>
<div><span style="font-family: Monaco, 'Times New Roman', 'Bitstream Charter', Times, fantasy; font-size: x-small;"><span style="line-height: normal;"><br />
</span></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/07/ruby-file-trimming-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working with Git</title>
		<link>http://www.pmamediagroup.com/2009/06/working-with-git/</link>
		<comments>http://www.pmamediagroup.com/2009/06/working-with-git/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 23:34:48 +0000</pubDate>
		<dc:creator>Narshlob</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[git branch]]></category>
		<category><![CDATA[git rebase]]></category>
		<category><![CDATA[git tutorial]]></category>
		<category><![CDATA[manage repo]]></category>
		<category><![CDATA[repository]]></category>

		<guid isPermaLink="false">http://www.pmamediagroup.com/?p=904</guid>
		<description><![CDATA[Use Git to keep track of your project and to share it between all members of your team/company.]]></description>
			<content:encoded><![CDATA[<p>This tutorial covers all the commands (hopefully) we&#8217;ll need for the projects we build here at PMA. If there&#8217;s anything that needs to be added to it, feel free to comment.</p>
<p>Starting with the basics, we&#8217;ll first cover retrieving a project:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git clone <span style="color: #7a0874; font-weight: bold;">&#91;</span>repository<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p>This will get the currently active branch from the repository</p>
<p>Obviously you&#8217;ll want to do something with this newly retrieved working copy of the project. Let&#8217;s first create a branch for the new features/bug fixes we&#8217;ll be coding.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git checkout <span style="color: #660033;">-b</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>newbranchname<span style="color: #7a0874; font-weight: bold;">&#93;</span> origin</pre></div></div>

<p>Ok, so we got a new branch. While we&#8217;re coding, it&#8217;s a good idea to commit tons of times to preserve the changes we&#8217;ve just made. Don&#8217;t worry about the log, we&#8217;ll make it pretty later. Just commit often.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git add <span style="color: #7a0874; font-weight: bold;">&#91;</span>filename<span style="color: #7a0874; font-weight: bold;">&#40;</span>s<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
git commit</pre></div></div>

<p>If it&#8217;s a small change that doesn&#8217;t require much explanation, you can use these commands</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git add <span style="color: #000000; font-weight: bold;">*</span>
git commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;The commit message&quot;</span></pre></div></div>

<p>Or, even shorter</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git commit <span style="color: #660033;">-a</span> <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;The commit message&quot;</span></pre></div></div>

<p>You finished that feature so now it&#8217;s time to merge that branch with the master branch (or some other branch depending on what VCS (Version Control System) paradigm you/your team chose). First, you should make those hard-to-read commits less hard-to-read. Let&#8217;s rebase!<br />
Please note that if you rebase after pushing to the repository, you will create problems for those pulling from that repository. Rebase changes the history of the project. Your teammates merges will not be fast-forward[able]. It won&#8217;t be pretty, trust me.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git rebase <span style="color: #660033;">-i</span> HEAD~<span style="color: #7a0874; font-weight: bold;">&#91;</span>number of commits back<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p>You&#8217;ll now be looking at something similar to this:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">pick ce86448 A random commit
pick a8564a9 Another random commit</pre></div></div>

<p>How you order things in this editor will affect the order of the commits. Note that merge commits are not shown here. They aren&#8217;t editable.<br />
Replacing &#8220;pick&#8221; with &#8220;edit&#8221; will allow you to edit the changes you made as well as the commit message.<br />
After you&#8217;ve edited the files you wanted to edit, you can now</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git add <span style="color: #000000; font-weight: bold;">*</span></pre></div></div>

<p>then</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git commit <span style="color: #660033;">--amend</span></pre></div></div>

<p>and move on.</p>
<p>As I mentioned before, you have the opportunity to clean up the mess you made with all those many commits using the rebase option. Here&#8217;s how:</p>
<ol>
<li>Run the

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git rebase <span style="color: #660033;">-i</span> HEAD~<span style="color: #7a0874; font-weight: bold;">&#91;</span>x<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p> command from earlier</li>
<li>Replace &#8220;pick&#8221; with &#8220;squash&#8221; on the commit you want to be combined with one exactly previous to it.
<pre>pick ace72dd I squashed these commits. I'm cool.
squash e99fd59 This commit will be sqaushed with the one above it
pick d0770e8 commited again
pick af845d0 I'm really committed
</pre>
</li>
</ol>
<p>Pretty straight forward and easy. Everyone loves rebasing<br />
If you want to know more about git-rebase, I recommend checking it out <a href="http://www.kernel.org/pub/software/scm/git/docs/git-rebase.html">here</a>.</p>
<p>Now, you&#8217;ve made all these changes and everything looks great. What are you gonna call this pretty new feature? Are you gonna tag it? I would..</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git tag <span style="color: #660033;">-a</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>fancy_feature<span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;A fancy message for a fancy feature&quot;</span></pre></div></div>

<p>If you happen to leave out the -m, git will open an editor and you&#8217;ll be able to add your fancy message there, just like with commit!<br />
Read more about tags <a href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">here</a>.<br />
One scenario for using tags could be that, within a project, one wants to keep track of versions. Each commit could be tagged with a version number like with bug fixes in some VCSs. If something goes wrong, it&#8217;s really simple to go back to a previous version using git rebase, as we&#8217;ve already shown.</p>
<p>You&#8217;ve squashed those ugly commits, changed the commit message(s), and tagged everything. Time to merge. Switch to the master branch (or whatever branch you&#8217;re wanting to merge with) and type this command which will merge [branchname] with the current branch:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git merge <span style="color: #7a0874; font-weight: bold;">&#91;</span>branchname<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p>You&#8217;ll probably want to fix any conflicts and continue with the merge.<br />
It&#8217;s now safe to delete [branchname] because all the changes from that branch are now on the current one.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git branch <span style="color: #660033;">-d</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>branchname<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p>This next feature is pretty neat. Say you&#8217;ve done a bunch of changes that haven&#8217;t been committed yet and you realize you aren&#8217;t on a feature branch. Here&#8217;s what you do:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git stash
git stash branch <span style="color: #7a0874; font-weight: bold;">&#91;</span>newbranchname<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p>This will stash away all uncommitted changes, create a new branch and check it out, then unstash all your stashed changes into that new branch. Awesome</p>
<p>Stash is also useful in scenarios where you don&#8217;t want to commit yet but you need to switch to a different branch and do something. You could stash the current changes using the above git stash command, do the needed changes, then switch back to the branch you were working on and use this command to unstash the changes:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git stash apply</pre></div></div>

<p>It&#8217;s a good idea to check out the other things offered by git stash (<a href="http://www.kernel.org/pub/software/scm/git/docs/git-stash.html">git-stash</a>)</p>
<p>To get this new branch into the origin repository, do:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git push origin <span style="color: #7a0874; font-weight: bold;">&#91;</span>branchname<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p>To delete a branch from the origin repository, do:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git push origin :<span style="color: #7a0874; font-weight: bold;">&#91;</span>branchname<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p>Don&#8217;t forget the colon!</p>
<p>Another scenario; your co-worker does some work on a feature and gets stuck. You don&#8217;t want to type on their computer cause yours is set up just the way you want it. Is there a solution to this quandary? Yeah. There is&#8230;<br />
Tell them to push their changes then do this:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git fetch origin <span style="color: #7a0874; font-weight: bold;">&#91;</span>remotebranchname<span style="color: #7a0874; font-weight: bold;">&#93;</span>:<span style="color: #7a0874; font-weight: bold;">&#91;</span>localbranchname<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p>You now have the branch they were working on locally and can modify to your hearts content.</p>
<hr width="75%" />
<h2>Noteworthy Notes</h2>
<p>There&#8217;s a difference between</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git pull</pre></div></div>

<p>and</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git fetch</pre></div></div>

<p>The difference is that &#8220;git pull&#8221; will run a &#8220;git fetch&#8221; then a &#8220;git merge&#8221; to merge the retrieved head into the current branch.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git log <span style="color: #660033;">-p</span> path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>file.rb</pre></div></div>

<p>This command will show the history of a specific file;</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git blame path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>file.rb</pre></div></div>

<p>will go line by line in a file and give a short description + the name of the person that changed the line last (brilliant, actually)</p>
<hr width="75%" />
<h2>From the Git manual</h2>
<p><a href="http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#fast-forwards">check it out</a><br />
A few configuration variables (see git-config(1)) can make it easy to push both branches to your public tree. (See the section called “Setting up a public repository”.)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt;<span style="color: #000000; font-weight: bold;">&amp;</span>gt; .git<span style="color: #000000; font-weight: bold;">/</span>config <span style="color: #000000; font-weight: bold;">&amp;</span>lt;
      <span style="color: #7a0874; font-weight: bold;">&#91;</span>remote <span style="color: #ff0000;">&quot;mytree&quot;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
           url =  master.kernel.org:<span style="color: #000000; font-weight: bold;">/</span>pub<span style="color: #000000; font-weight: bold;">/</span>scm<span style="color: #000000; font-weight: bold;">/</span>linux<span style="color: #000000; font-weight: bold;">/</span>kernel<span style="color: #000000; font-weight: bold;">/</span>git<span style="color: #000000; font-weight: bold;">/</span>aegl<span style="color: #000000; font-weight: bold;">/</span>linux-2.6.git
           push = release
           push = <span style="color: #7a0874; font-weight: bold;">test</span>
EOF</pre></div></div>

<p>Then you can push both the test and release trees using git-push(1):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git push mytree</pre></div></div>

<p>or push just one of the test and release branches using:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git push mytree <span style="color: #7a0874; font-weight: bold;">test</span></pre></div></div>

<p>or</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git push mytree release</pre></div></div>

<p>To rebase your current working tree to obtain the changes from the master tree,<br />
Suppose that you create a branch &#8220;mywork&#8221; on a remote-tracking branch &#8220;origin&#8221;, and create some commits on top of it:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">git checkout <span style="color: #660033;">-b</span> mywork origin
<span style="color: #007800;">$vi</span> file.txt
$ git commit
$ <span style="color: #c20cb9; font-weight: bold;">vi</span> otherfile.txt
$ git commit</pre></div></div>

<p>&#8230;<br />
You have performed no merges into mywork, so it is just a simple linear sequence of patches on top of &#8220;origin&#8221;:<br />
o&#8211;o&#8211;o <-- origin<br />
\<br />
o--o--o <-- mywork<br />
Some more interesting work has been done in the upstream project, and "origin" has advanced:<br />
o--o--O--o--o--o <-- origin<br />
\<br />
a--b--c <-- mywork<br />
At this point, you could use "pull" to merge your changes back in; the result would create a new merge commit, like this:<br />
o--o--O--o--o--o <-- origin<br />
\        \<br />
a--b--c--m <-- mywork<br />
However, if you prefer to keep the history in mywork a simple series of commits without any merges, you may instead choose to use git-rebase(1):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ git checkout mywork
$ git rebase origin</pre></div></div>

<p>This will remove each of your commits from mywork, temporarily saving them as patches (in a directory named &#8220;.git/rebase-apply&#8221;), update mywork to point at the latest version of origin, then apply each of the saved patches to the new mywork. The result will look like:<br />
o&#8211;o&#8211;O&#8211;o&#8211;o&#8211;o <-- origin<br />
\<br />
a'--b'--c' <-- mywork<br />
In the process, it may discover conflicts. In that case it will stop and allow you to fix the conflicts; after fixing conflicts, use git add to update the index with those contents, and then, instead of running git commit, just run</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ git rebase <span style="color: #660033;">--continue</span></pre></div></div>

<p>and git will continue applying the rest of the patches.<br />
At any point you may use the —abort option to abort this process and return mywork to the state it had before you started the rebase:</p>
<pre lang="bash>
$ git rebase --abort
</pre>
<hr width="75%" />
<h2>The commands</h2>
<p>Here&#8217;s a list of all commands covered in this tutorial:<br />
<a href="http://www.kernel.org/pub/software/scm/git/docs/git-clone.html">git-clone</a><br />
<a href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git-checkout</a><br />
<a href="http://www.kernel.org/pub/software/scm/git/docs/git-add.html">git-add</a><br />
<a href="http://www.kernel.org/pub/software/scm/git/docs/git-commit.html">git-commit</a><br />
<a href="http://www.kernel.org/pub/software/scm/git/docs/git-rebase.html">git-rebase</a><br />
<a href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a><br />
<a href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge</a><br />
<a href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html">git-branch</a><br />
<a href="http://www.kernel.org/pub/software/scm/git/docs/git-stash.html">git-stash</a><br />
<a href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html">git-push</a><br />
<a href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">git-pull</a><br />
<a href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html">git-fetch</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/06/working-with-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Culerity and Celerity, JavaScript enabled testing in Cucumber</title>
		<link>http://www.pmamediagroup.com/2009/06/culerity-and-celerity-javascript-enabled-testing-in-cucumber/</link>
		<comments>http://www.pmamediagroup.com/2009/06/culerity-and-celerity-javascript-enabled-testing-in-cucumber/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 23:02:30 +0000</pubDate>
		<dc:creator>fugufish</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[activescaffold]]></category>
		<category><![CDATA[celerity]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[culerity]]></category>
		<category><![CDATA[htmUnit]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jruby]]></category>
		<category><![CDATA[rspec]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.pmamediagroup.com/?p=821</guid>
		<description><![CDATA[As you may know, testing JavaScript inesnsive applications using Cucumber can be a pain. There are several ways to handle this; Selenium, Watir and the like. The easiest way I have found however is by using Celerity a jRuby API for htmlUnit, a fully functional headless browser that completely supports JavaScript, and you don&#8217;t have [...]]]></description>
			<content:encoded><![CDATA[<p>As you may know, testing JavaScript inesnsive applications using Cucumber can be a pain. There are several ways to handle this; Selenium, Watir and the like. The easiest way I have found however is by using <a title="Celerity" href="http://celerity.rubyforge.org/">Celerity</a> a jRuby API for htmlUnit, a fully functional headless browser that completely supports JavaScript, and you don&#8217;t have to serve your application on jRuby to use it!. I was able to get Celerity to play nice duruing Cucumber tests by doing the following:  First, you will need of course jRuby. The Culerity gem will start up Celerity in the jRuby environment, and proxy the actual browser through it. Download <a title="jRuby" href="http://jruby.codehaus.org/">jRuby</a> and extract it to wherever you want it located. In my case I put it in /opt, and set your PATH accordingly.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">export PATH=$HOME<span style="color:#006600; font-weight:bold;">/</span>jruby<span style="color:#006600; font-weight:bold;">/</span>bin:$PATH</pre></div></div>

<p>Next install the Celerity gem in jRuby (we are using the github version rather than the ruby forge version, as it provides a later version):</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">jruby <span style="color:#006600; font-weight:bold;">-</span>S gem install jarib<span style="color:#006600; font-weight:bold;">-</span>celerity <span style="color:#006600; font-weight:bold;">--</span>source=http:<span style="color:#006600; font-weight:bold;">//</span>gems.<span style="color:#9900CC;">github</span>.<span style="color:#9900CC;">com</span></pre></div></div>

<p>Now install the Culerity gem. This provides the interface between Celerity and your environment without forcing you to run in jRuby</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"> gem install langalex<span style="color:#006600; font-weight:bold;">-</span>culerity <span style="color:#006600; font-weight:bold;">--</span>source http:<span style="color:#006600; font-weight:bold;">//</span>gems.<span style="color:#9900CC;">github</span>.<span style="color:#9900CC;">com</span></pre></div></div>

<p>Place this in your test environment:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;"># config/environments/test.rb</span>
&nbsp;
config.<span style="color:#9900CC;">gem</span> <span style="color:#996600;">&quot;langalex-culerity&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:lib</span> =<span style="color:#006600; font-weight:bold;">&amp;</span>gt; <span style="color:#0000FF; font-weight:bold;">false</span></pre></div></div>

<p>I call <code>:lib =&gt; false</code> here to avoid loading the gem. This is done in the file generated by culerity.  Finally remove <code>features/steps/webrat_steps.rb</code> as it will conflict with Culerity, and run:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">script<span style="color:#006600; font-weight:bold;">/</span>generate culerity</pre></div></div>

<p>Enjoy!  Culerity should have very similar syntax to webrat, however keep in mind you may see some differences that you may need to adjust.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/06/culerity-and-celerity-javascript-enabled-testing-in-cucumber/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome Commercial</title>
		<link>http://www.pmamediagroup.com/2009/05/google-chrome-commercial/</link>
		<comments>http://www.pmamediagroup.com/2009/05/google-chrome-commercial/#comments</comments>
		<pubDate>Fri, 08 May 2009 20:08:48 +0000</pubDate>
		<dc:creator>Brandon Buttars</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.pmamediagroup.com/?p=775</guid>
		<description><![CDATA[Here is a sweet Google Chrome advertisement from YouTube.  I wonder when Microsoft will come out with one for IE8.  Ah oh.  Here goes another Mac vs. Windows like fight.

]]></description>
			<content:encoded><![CDATA[<p>Here is a sweet Google Chrome advertisement from YouTube.  I wonder when Microsoft will come out with one for IE8.  Ah oh.  Here goes another Mac vs. Windows like fight.</p>
<p><object width="425" height="344" data="http://www.youtube.com/v/SHZFsJKlsuA&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="src" value="http://www.youtube.com/v/SHZFsJKlsuA&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;feature=player_embedded&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/05/google-chrome-commercial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: How to Set up Ruby on Rails and MySQL on Mac OSX Leopard</title>
		<link>http://www.pmamediagroup.com/2009/04/set-up-ruby-on-rails-and-mysql-on-mac-osx-leopard/</link>
		<comments>http://www.pmamediagroup.com/2009/04/set-up-ruby-on-rails-and-mysql-on-mac-osx-leopard/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 20:07:20 +0000</pubDate>
		<dc:creator>Chuck Wood</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[mac os]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.pmamediagroup.com/?p=480</guid>
		<description><![CDATA[A quick tutorial on setting up Ruby on Rails using the MySQL gem on Mac OS X.]]></description>
			<content:encoded><![CDATA[<p>Mac OSX has become extremely popular for Ruby on Rails development. Part of this is the inclusion of Ruby as part of the operating system on Mac OSX Leopard. Here is a quick tutorial on how to get Ruby on Rails and MySQL set up on your Mac OSX Leopard machine. In order to complete this tutorial, you need the Xcode tools installed. You can get them off of the applications disk that came with your mac or from <a href="http://developer.apple.com/TOOLS/xcode/">http://developer.apple.com/TOOLS/xcode/</a>. </p>
<p><span id="more-480"></span></p>
<p>Once you have Xcode Tools installed, open your terminal (in Applications > Utilities) and let&#8217;s get started!</p>
<p>1. Update RubyGems.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> gem update <span style="color: #660033;">--system</span></pre></div></div>

<p>2. Install Ruby on Rails.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> gem <span style="color: #c20cb9; font-weight: bold;">install</span> rails</pre></div></div>

<p>3. Download the MySQL (x86) package from <a href="http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg">this page</a>.</p>
<p>4. When the .dmg file loads, install both packages (.pkg files) and the MySQL.prefPane.</p>
<p>5. Once MySQL is installed, install the mysql gem. (Thanks <a href="http://wonko.com/post/how-to-install-the-mysqlruby-gem-on-mac-os-x-leopard">wonko.com</a> for the tip.)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">env</span> <span style="color: #007800;">ARCHFLAGS</span>=<span style="color: #ff0000;">&quot;-arch i386&quot;</span> gem <span style="color: #c20cb9; font-weight: bold;">install</span> mysql <span style="color: #660033;">--</span> \
  <span style="color: #660033;">--with-mysql-dir</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>mysql <span style="color: #660033;">--with-mysql-lib</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>mysql<span style="color: #000000; font-weight: bold;">/</span>lib \
  <span style="color: #660033;">--with-mysql-include</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>mysql<span style="color: #000000; font-weight: bold;">/</span>include</pre></div></div>

<p><small></small></p>
<p>That&#8217;s it! You&#8217;re ready to go! Now all you have to do is create a rails application and you&#8217;re ready to go.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/04/set-up-ruby-on-rails-and-mysql-on-mac-osx-leopard/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Skype Beta 2.8 &#8211; Screen Sharing</title>
		<link>http://www.pmamediagroup.com/2009/04/skype-beta-28-screen-sharing/</link>
		<comments>http://www.pmamediagroup.com/2009/04/skype-beta-28-screen-sharing/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 17:05:27 +0000</pubDate>
		<dc:creator>Brandon Buttars</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[Screencasting]]></category>
		<category><![CDATA[Screensharing]]></category>
		<category><![CDATA[Skype]]></category>
		<category><![CDATA[Training]]></category>

		<guid isPermaLink="false">http://www.pmamediagroup.com/?p=433</guid>
		<description><![CDATA[I&#8217;ve always been a SKYPE fan and a user even though there seem to be a few haters out there. Most of the haters are haters cause they&#8217;ve had a bad internet connection when trying to use Skype.  Overall if you have a good connection it doesn&#8217;t get much clearer and better than SKYPE.  SKYPE [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-434" title="skype_screensharing" src="http://www.pmamediagroup.com/wp-content/uploads/2009/04/skype_screensharing.png" alt="skype_screensharing" width="265" height="125" style="float: right;" /><strong>I&#8217;ve always been a <a title="Skype" href="http://www.skype.com/" target="_blank">SKYPE</a> fan and a user even though there seem to be a few haters out there.</strong> Most of the haters are haters cause they&#8217;ve had a bad internet connection when trying to use Skype.  Overall if you have a good connection it doesn&#8217;t get much clearer and better than SKYPE.  <a title="Skype Pricing" href="http://www.skype.com/prices/" target="_blank">SKYPE is cheap</a>, has some great plugins and functionality, and I&#8217;m sure a whole lot more uses that I even use it for.</p>
<p><span id="more-433"></span></p>
<p>Well last night I was doing some browsing and trying to find some <strong>good screencasting software</strong> to use that was FREE of course.  In my searching I ran across SKYPE and had to check it out.  I went to the <a title="Skype Beta 2.8 Download" href="http://www.skype.com/download/skype/macosx/beta/" target="_blank">SKYPE Beta 2.8 download</a> and downloaded it to check it out.  I&#8217;ve got to say <a title="Skype Screensharing" href="http://www.skype.com/allfeatures/screensharing/" target="_blank">Skype Screensharing</a> is pretty much the bomb.  The problem it currently has as of this post is that it doesn&#8217;t display your cursor, but it does all the actions of the cursor at an incredible speed.  I was not disappointed.  Once the cursor shows up it will be unstoppable.</p>
<p><em>So SKYPE haters stop hating and give it a try.  If your internet connection sucks, don&#8217;t push the sucky blame onto SKYPE, really give credit where it&#8217;s due.</em></p>
<h3 style="text-align: center;"><img class="size-full wp-image-439 alignnone" title="skype-screen-sharing-button" src="http://www.pmamediagroup.com/wp-content/uploads/2009/04/skype-screen-sharing-button.png" alt="skype-screen-sharing-button" width="366" height="318" /></h3>
<h3>Usage Ideas</h3>
<p>Here are some ideas that I thought may motivate some of you to give it a try based on some practical business and freelancer use:</p>
<ol>
<li><a title="Technical Support Screencasting" href="http://www.pmamediagroup.com/2009/04/skype-beta-28-screen-sharingskype-beta-28-screen-sharing/" target="_self"><strong>Technical Support Screencasting</strong></a> &#8211; this is pretty self explanitory, whether it&#8217;s the teaching the senior citizen&#8217;s how to copy and paste or teach your dad how to check his email this would work great.</li>
<li><a title="Application Training Screencasting" href="http://www.pmamediagroup.com/2009/04/skype-beta-28-screen-sharingskype-beta-28-screen-sharing/" target="_self"><strong>Application Training Screencasting</strong></a> &#8211; being able to train someone how to use your application so easily without an encrypted link and long url to have to send them, SKYPE makes this process very seemless.  Just double click on your contact and select to share screen.</li>
<li><a title="Website Training Screencasting" href="http://www.pmamediagroup.com/2009/04/skype-beta-28-screen-sharingskype-beta-28-screen-sharing/" target="_self"><strong>Website Training Screencasting</strong></a> &#8211; say you have a client and you need to show them how to manage their new site you have just created for them.  Turn on your screen recorder and the SKYPE Screen Sharing and now you have live training with a recorded video to upload to YouTube or some other video sharing website (recommend making the video private for obvious reasons).</li>
<li><strong><a title="Webinars using Skype" href="http://www.pmamediagroup.com/2009/04/skype-beta-28-screen-sharingskype-beta-28-screen-sharing/" target="_self">Webinars</a> </strong>- I think SKYPE has a 25 person limit on conference calls, but I&#8217;m assuming that you could share your screen with all 25 people within a conference call.  I&#8217;ll have to double check on that one.</li>
<li><a title="Online Education" href="http://mycollegesandcareers.com" target="_blank"><strong>Online Education</strong></a> &#8211; teach online courses through Skype now using a combination of video and screensharing.</li>
</ol>
<p>Things to keep in mind about the<strong> <a title="Skype Beta 2.8 Download" href="http://www.skype.com/download/skype/macosx/beta/" target="_blank">SKYPE Beta 2.8</a> is that it is for a Mac</strong>.  Yet another reason to <a title="Buy a Mac" href="http://www.apple.com/mac/" target="_blank">buy a Mac</a>.  I&#8217;m sure it will come out on Windows eventually potentially post Beta release on Mac, but it doesn&#8217;t matter the viewer.  I tested it last night sharing my screen from my <a title="MacBook Pro" href="http://www.apple.com/macbookpro/" target="_blank"><strong>MacBook Pro</strong></a> to my <strong>HP Windows Vista</strong> machine and it worked perfect.</p>
<p>If you need anymore convincing then you are one hard cookie to sell.  Please leave any comments or feedback you might have.  Feel free to share this post so we can get more feedback.  Oh yeah and did I mention, <strong>I LOVE SKYPE!</strong></p>
<p><em><strong>P.S. </strong> Skype is starting to show up on <a title="Skype for iPhones" href="http://www.skype.com/download/skype/iphone/" target="_blank">iPhones</a> and I even have it installed on my <a title="Skype Lite on Android" href="http://share.skype.com/sites/skypegear/2009/01/video_skype_lite_on_android.html" target="_blank">Google G1 Android</a> phone.  They&#8217;re still kind of early in development but don&#8217;t be surprised if you can make calls from your mobile phones using your mobile internet without burning up your minutes.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/04/skype-beta-28-screen-sharing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What? NetBeans 6.5.1 Can Now Recognize My Cucumber .feature Files!</title>
		<link>http://www.pmamediagroup.com/2009/04/what-netbeans-651-can-now-recognize-my-cucumber-feature-files/</link>
		<comments>http://www.pmamediagroup.com/2009/04/what-netbeans-651-can-now-recognize-my-cucumber-feature-files/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 22:59:18 +0000</pubDate>
		<dc:creator>Chris Gunnels</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Cucumber plugin for NetBeans]]></category>

		<guid isPermaLink="false">http://www.pmamediagroup.com/?p=385</guid>
		<description><![CDATA[After watching Ryan Bates&#8217; screencast on Cucumber, I wanted to start creating my code first through BDD. I used Netbeans 6.5.1 to follow Ryan&#8217;s screencast and I found that NetBeans doesn&#8217;t recognize the .feature file that you create when you run a Cucumber test. I searched Google for about 3 hours for a plugin, but [...]]]></description>
			<content:encoded><![CDATA[<p>After watching Ryan Bates&#8217; <a href="http://media.railscasts.com/videos/155_beginning_with_cucumber.mov">screencast on Cucumber</a>, I wanted to start creating my code first through <a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">BDD</a>. I used Netbeans 6.5.1 to follow Ryan&#8217;s screencast and I found that NetBeans doesn&#8217;t recognize the <em><span style="color: #888888;">.feature</span></em> file that you create when you run a <a href="http://cukes.info/">Cucumber</a> test. I searched Google for about 3 hours for a plugin, but no such luck! I couldn&#8217;t believe it, I thought somebody had to of created a cukes plugin by now. Well, I decided to help the world and of course, myself, by creating a NetBeans plugin that will recognize the <span style="color: #888888;"><em>.feature</em></span> files. Here&#8217;s a quick view of a .feature file after the plugin has been installed:</p>
<p><a href="http://www.pmamediagroup.com/wp-content/uploads/2009/04/picture-2.png"><img class="alignnone size-full wp-image-390" title="Screen Shot of Cucumber .feature" src="http://www.pmamediagroup.com/wp-content/uploads/2009/04/picture-2.png" alt="Screen Shot of Cucumber .feature" width="436" height="352" /></a></p>
<p><span id="more-385"></span></p>
<p>I have uploaded the plugin to the NetBeans Plugin site, but you can download it from this link: <a href="http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=17412">NetBeans Cucumber Plugin -v 1.0</a></p>
<p><a name="edit_cucumber"></a><br />
EDIT: Netbeans has been down for a week or two so we&#8217;ve made the download available here: <a href="http://github.com/cgunnels/Netbeans-Cucumber-Feature/tree/master">Netbeans Cucumber Plugin</a><br />
After you download the project navigate to: CucumberFileType / build / org-myorg-cucumberfiletype.nbm<br />
Install the .nbm file with netbeans and your ready to go.<br />
END EDIT</p>
<p>To install the plugin all you have to do is:</p>
<ol>
<li>Download it (Duh)</li>
<li>Open NetBeans and go to Tools -&gt; Plugins</li>
<li>In the Plugins dialog click on the &#8220;Downloaded&#8221; tab</li>
<li>Click &#8220;Add Plugins&#8230;&#8221;</li>
<li>Browse to where ever you downloaded the .nbm file and click &#8220;Open&#8221;</li>
<li>Last, click the &#8220;Install&#8221; button and you finished.</li>
</ol>
<p>Hope you like it. Please report any bugs or changes.</p>
<p>Comment, Tweet, Appreciate!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/04/what-netbeans-651-can-now-recognize-my-cucumber-feature-files/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
<enclosure url="http://media.railscasts.com/videos/155_beginning_with_cucumber.mov" length="31743409" type="video/quicktime" />
		</item>
		<item>
		<title>20 Mac Apps You Should Install</title>
		<link>http://www.pmamediagroup.com/2009/04/20-mac-apps-you-should-install/</link>
		<comments>http://www.pmamediagroup.com/2009/04/20-mac-apps-you-should-install/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 20:17:35 +0000</pubDate>
		<dc:creator>Brandon Buttars</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www2.pmamediagroup.com/?p=112</guid>
		<description><![CDATA[I know this list isn&#8217;t the same as everyone elses.  I know we all have our preferences.  I&#8217;m sure some of our other designers would have Dreamweaver on their list and some of the Programmers would have Net Beans, but this is my list.  Leave you list in the comments below.  [...]]]></description>
			<content:encoded><![CDATA[<p>I know this list isn&#8217;t the same as everyone elses.  I know we all have our preferences.  I&#8217;m sure some of our other designers would have Dreamweaver on their list and some of the Programmers would have Net Beans, but this is my list.  Leave you list in the comments below.  I&#8217;ll make this short and sweet and just give a little bit of information about the different programs.  I recommend going to their websites and learning even more of how they can help you.  <strong>Download the FREE trials and take them for a spin</strong>.</p>
<p><span id="more-112"></span></p>
<p>The list is in alphabetical order just because that was easy.</p>
<h2><a title="Adium" href="http://www.adiumx.com/"><img title="Adium" src="http://farm4.static.flickr.com/3549/3404337515_98a9b9081e_o.png" alt="" /> Adium</a></h2>
<p><em>(An IM client that can be used with all of your accounts, even Facebook.)</em></p>
<h2><a title="Adobe Fireworks" href="http://www.adobe.com/products/fireworks/?promoid=121DJGSR_P_US_FP2_FW_CS4_MN&amp;tt=P_US_FP2_FW_CS4_MN"><img title="Fireworks" src="http://farm4.static.flickr.com/3560/3405148668_88af8ed815_o.gif" alt="" /> Adobe Fireworks</a></h2>
<p><em>(A hybrid of Illustrator and Photoshop made specific for rapid web design development.)</em></p>
<h2><a title="Adobe Illustrator" href="http://www.adobe.com/products/illustrator/"><img title="Illustrator" src="http://farm4.static.flickr.com/3661/3405148688_7a20db805a_o.gif" alt="" /> Adobe Illustrator</a></h2>
<p><em>(Vector illustration perfect for print design and logo design.)</em></p>
<h2><a title="Adobe Photoshop" href="http://www.adobe.com/products/photoshop/photoshop/?promoid=DTENB"><img title="Photoshop" src="http://farm4.static.flickr.com/3660/3404337293_f8911c7e86_o.gif" alt="" /> Adobe Photoshop</a></h2>
<p><em>(Amazing photo editor&#8230;do you really need to know what Photoshop is?)</em></p>
<h2><a title="Firefox" href="http://www.mozilla.com/en-US/firefox/firefox.html"><img title="Firefox" src="http://farm4.static.flickr.com/3580/3405148942_f01882f986_o.jpg" alt="" /> Firefox</a></h2>
<p><em>(The greatest browser ever created, especially when it comes to development.)</em></p>
<h2><a title="Flickr Uploader" href="http://www.flickr.com/tools/"><img title="Flickr" src="http://farm4.static.flickr.com/3554/3404337581_65af3e4a05_o.png" alt="" /> Flickr Uploader</a></h2>
<p><em>(Upload all your Flickr photos.)</em></p>
<h2><a title="Fluid App" href="http://fluidapp.com/"><img title="Fluid App" src="http://farm4.static.flickr.com/3551/3404337499_b3cbc70f0e_o.png" alt="" /> Fluid App</a></h2>
<p><em>(Make any website launch like an application.)</em></p>
<h2><a title="Google Notifier" href="http://toolbar.google.com/gmail-helper/notifier_mac.html"><img title="Google Notifier" src="http://farm4.static.flickr.com/3566/3404337385_6952d4c0e3_o.jpg" alt="" /> Google Notifier</a></h2>
<p><em>(Notifies of Google Calendar and Gmail Events)</em></p>
<h2><a title="iTunes" href="http://www.apple.com/itunes/download/"><img title="iTunes" src="http://farm4.static.flickr.com/3541/3404337437_3f3b852b22_o.png" alt="" /> iTunes</a></h2>
<p><em>(Music player duh.)</em></p>
<h2><a title="Little Snapper" href="http://www.realmacsoftware.com/littlesnapper/"><img title="Little Snapper" src="http://farm4.static.flickr.com/3461/3405148870_37345f891c_o.jpg" alt="" /> Little Snapper</a></h2>
<p><em>(ScreenShots capture with advanced notation and editing.)</em></p>
<h2><a title="MindNode" href="http://www.mindnode.com/"><img title="Mind Node" src="http://farm4.static.flickr.com/3613/3404337377_17dc3284c8_o.png" alt="" /> MindNode</a></h2>
<p><em>(Mind mapping software specific to Leopard.)</em></p>
<h2><a title="NeoOffice" href="http://www.neooffice.org/neojava/en/index.php"><img title="NeoOffice" src="http://farm4.static.flickr.com/3472/3404337481_ec3ca1d214_o.png" alt="" /> NeoOffice</a></h2>
<p><em>(Like OpenOffice but built specifically for the Mac.)</em></p>
<h2><a title="On The Job" href="http://stuntsoftware.com/OnTheJob/"><img title="On The Job" src="http://farm4.static.flickr.com/3601/3404337617_00d5986b76_o.png" alt="" /> On The Job</a></h2>
<p><em>(Simple time tracking and invoice creation system.)</em></p>
<h2><a title="PandoraBoy" href="http://code.google.com/p/pandoraboy/"><br />
<img title="PandoraBoy" src="http://farm4.static.flickr.com/3572/3405148700_b1bc7e1472_o.png" alt="" /> PandoraBoy</a></h2>
<p><em>(Pandora player for your desktop.)</em></p>
<h2><a title="Quicksilver" href="http://quicksilver.en.softonic.com/mac"><img title="Quicksilver" src="http://farm4.static.flickr.com/3625/3404337633_1de2584665_o.png" alt="" /> Quicksilver</a></h2>
<p><em>(Quick launch keyboard typing with a trigger key combo to activate.)</em></p>
<h2><a title="ScreenFlow" href="http://www.telestream.net/screen-flow/overview.htm"><img title="ScreenFlow" src="http://farm4.static.flickr.com/3641/3404337421_08a6641ebf_o.png" alt="" /> ScreenFlow</a></h2>
<p><em>(Advanced screen casting software with some amazing editing features.)</em></p>
<h2><a title="Sequel Pro" href="http://www.sequelpro.com/"><img title="Sequel Pro" src="http://farm4.static.flickr.com/3569/3404337331_ff80ee66d3_o.png" alt="" /> Sequel Pro</a></h2>
<p><em>(Desktop client for MySQL access.)</em></p>
<h2><a title="Skype" href="http://skype.com/"><img title="Skype" src="http://farm4.static.flickr.com/3623/3405148734_724e470135_o.png" alt="" /> Skype</a></h2>
<p><em>(IM/Voice over IP style of service.  Use for chat and video conferencing.)</em></p>
<h2><a title="TextMate" href="http://macromates.com/"><img title="TextMate" src="http://farm4.static.flickr.com/3451/3404337469_33350c060e_o.png" alt="" /> TextMate</a></h2>
<p><em>(The best text editor ever created.)</em></p>
<h2><a title="Tweetr" href="http://www.tweet-r.com/"><img title="Tweetr" src="http://farm4.static.flickr.com/3625/3405148890_14889218b5_o.png" alt="" /> Tweetr</a></h2>
<p><em>(Simple desktop Twitter client.)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/04/20-mac-apps-you-should-install/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/


Served from: www.pmamediagroup.com @ 2010-07-31 10:38:11 -->