<?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>thecrumb.com &#187; automation</title>
	<atom:link href="http://thecrumb.com/tag/automation/feed/" rel="self" type="application/rss+xml" />
	<link>http://thecrumb.com</link>
	<description>developer &#124; thinker &#124; tinkerer</description>
	<lastBuildDate>Sat, 04 Feb 2012 01:28:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Automated Merge Notices</title>
		<link>http://thecrumb.com/2011/07/28/automated-merge-notices/</link>
		<comments>http://thecrumb.com/2011/07/28/automated-merge-notices/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 14:13:23 +0000</pubDate>
		<dc:creator>Jim Priest</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://thecrumb.com/?p=1563</guid>
		<description><![CDATA[I&#8217;m working on a project with another developer and we&#8217;ve decided to create a branch for my changes. Heavy development continues in the trunk as well and I need to frequently merge the trunk into my branch. Being lazy of &#8230; <a href="http://thecrumb.com/2011/07/28/automated-merge-notices/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on a project with another developer and we&#8217;ve decided to create a branch for my changes.   Heavy development continues in the trunk as well and I need to frequently merge the trunk into my branch. Being lazy of course I didn&#8217;t want to do this manually :)<br />
<span id="more-1563"></span><br />
First I created a simple batch file. I&#8217;m doing an update on my local working copy to make sure it&#8217;s updated, then I run an Ant script.</p>
<pre class="brush: plain; title: ; notranslate">
REM Change to local working copy directory
cd c:\myproject

REM Run SVN update to verify working copy code is current
svn update 

REM Run merge target
ant -f c:\myproject\_build\build.xml email-merge-status
</pre>
<p>My Ant script simply runs the merge and sends me an email.  See my previous post (from 2006!) about <a href="http://thecrumb.com/2006/08/29/sending-email-from-ant/" title="Sending Email From Ant">sending email via Ant</a> if you need help configuring that.   All my properties <em>${something}</em> are defined in an external property file but you should get the idea.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;target name=&quot;email-merge-status&quot; depends=&quot;-init&quot; description=&quot;Send email with merge status&quot;&gt;
&lt;exec executable=&quot;svn&quot; outputproperty=&quot;svnmergeoutput&quot;&gt;
&lt;arg line=&quot;merge ${svn.trunk} ${path.branch} --dry-run&quot; /&gt;
&lt;/exec&gt;

&lt;mail mailhost=&quot;${mail.server}&quot; mailport=&quot;${mail.port}&quot; subject=&quot;${ant.project.name} Merge Status&quot;&gt;
&lt;from address=&quot;${mail.default.from}&quot; /&gt;
&lt;to address=&quot;${mail.default.to}&quot; /&gt;
&lt;message&gt;
Merge status for: ${ant.project.name}
Running:  merge ${svn.trunk} ${path.branch} --dry-run

=================================================================

${svnmergeoutput}
&lt;/message&gt;
&lt;/mail&gt;
&lt;/target&gt;
</pre>
<p>I&#8217;m using the <strong>&#8211;dry-run</strong> SVN option with the merge just so I can get an idea of how many conflicts I can expect. If there aren&#8217;t many I will remove that and automate the merge and possibly the commit as well.   </p>
<p>Now a few times I day I get a nicely formatted email that lets me know if I need to take action to update my branch:</p>
<blockquote><p>
Merge status for: IRBIS<br />
Running:  merge https://svn.myproject.some.url/svn/myproject/trunk/ c:/myproject &#8211;dry-run<br />
=================================================================<br />
&#8212; Merging r703 through r708 into &#8216;c:\myproject&#8217;:<br />
U    c:\myproject\admin_buckets_search.cfm<br />
U    c:\myproject\admin_gen_attachment_types.cfm<br />
U    c:\myproject\event_attachments.cfm<br />
U    c:\myproject\admin_gen_detail.cfm<br />
U    c:\myproject\wireframe\balsamiq_files\popup_existing_responses.bmml
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://thecrumb.com/2011/07/28/automated-merge-notices/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Easy Maintenance Mode with Ant</title>
		<link>http://thecrumb.com/2011/03/10/easy-maintenance-mode-with-ant/</link>
		<comments>http://thecrumb.com/2011/03/10/easy-maintenance-mode-with-ant/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 14:39:29 +0000</pubDate>
		<dc:creator>Jim Priest</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[automation]]></category>

		<guid isPermaLink="false">http://thecrumb.com/?p=1431</guid>
		<description><![CDATA[I usually have something in my application where I can flip a bit and turn on &#8220;maintenance mode&#8221; which displays a friendly message to users and allows me to do updates knowing no one is accessing the application. Today we&#8217;ll &#8230; <a href="http://thecrumb.com/2011/03/10/easy-maintenance-mode-with-ant/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I usually have something in my application where I can flip a bit and turn on &#8220;maintenance mode&#8221; which displays a friendly message to users and allows me to do updates knowing no one is accessing the application.</p>
<p>Today we&#8217;ll look at how you can implement this using <a href="http://ant.apache.org/">Ant</a>. </p>
<p>First we&#8217;ll update our index.cfm file and add some code to check a value and show our friendly message:</p>
<pre class="brush: coldfusion; title: ; notranslate">
&lt;cfset maintenanceMode = false&gt;
&lt;cfif maintenanceMode IS true&gt;
	&lt;h2&gt;Site Maintenance&lt;/h2&gt;
	&lt;p&gt;The application is currently unavailable. Please check back in a few minutes (or hours if we really screw something up).&lt;/p&gt;
	&lt;p&gt;We apologize for the inconvenience.&lt;/p&gt;
	&lt;cfabort&gt;
&lt;/cfif&gt;
</pre>
<p>So now we need to flip the bit on maintenanceMode.  </p>
<p>You <em>could</em> access the server, open the file with an editor and hope you don&#8217;t screw something up while editing the file&#8230;  or you could do it from the comfort of your IDE with Ant.  We will create a macrodef so we can use the same code to turn on/off maintenance mode in all our environments.</p>
<p>The macrodef code:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;macrodef name=&quot;maintenance-mode&quot; description=&quot;Enable or disable maintenance mode&quot;&gt;
	&lt;attribute name=&quot;mode&quot; default=&quot;false&quot;/&gt;
	&lt;attribute name=&quot;dest&quot;/&gt;
	&lt;sequential&gt;
		&lt;echo&gt;
			Setting mainenance mode to: @{mode} on ${path.@{dest}}
		&lt;/echo&gt;
		&lt;replaceregexp file=&quot;${path.@{dest}}/www/index.cfm&quot; match=&quot;maintenanceMode = (\w+)&quot; replace=&quot;maintenanceMode = @{mode}&quot;/&gt;
	&lt;/sequential&gt;
&lt;/macrodef&gt;
</pre>
<p>First we have defined some attributes we&#8217;ll pass in:</p>
<ul>
<li><strong>mode</strong> = true or false</li>
<li><strong>dest</strong> = destination &#8211; where the file lives we need to modify</li>
</ul>
<p>We will add an <em>echo</em> in there so we can see what&#8217;s going on when we run things, and finally we&#8217;ll use the <a href="http://ant.apache.org/manual/Tasks/replaceregexp.html">ReplaceRegexp</a> task to search for our string. We simply need to look for &#8220;maintenanceMode = whatever&#8221; and that&#8217;s easy to do with a regular expression. Then we simply update that string with the value we&#8217;ve passed in as &#8216;mode&#8217;.</p>
<blockquote><p>Tip: If you have problems with Regular Expressions check out the <a href="http://www.brosinski.com/regex/">RegEx Tester plugin</a> for Eclipse.</p></blockquote>
<p>Finally we will create two new targets to turn things on and off:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;target name=&quot;DEVELOPMENT-MAINTENANCE-ON&quot;&gt;
	&lt;maintenance-mode mode=&quot;true&quot; dest=&quot;development&quot;/&gt;
&lt;/target&gt;

&lt;target name=&quot;DEVELOPMENT-MAINTENANCE-OFF&quot;&gt;
	&lt;maintenance-mode mode=&quot;false&quot; dest=&quot;development&quot;/&gt;
&lt;/target&gt;
</pre>
<p>Here we define our &#8216;mode&#8217; and &#8216;destination&#8217; attributes.  The &#8216;development&#8217; destination is simply a property I have mapped in Ant which points to my web files.  Depending on how you access your files you may have to just through more hoops here.  </p>
<pre class="brush: plain; title: ; notranslate">
path.development = \\\\serverName\\Inetpub\\wwwroot\\www\\${ant.project.name}
</pre>
<p>Using a combination of properties and attributes: ${path.@{dest} this will give us the proper path to the file we need to change.  </p>
<p>You can easily create additional targets for production, etc.</p>
<p>And finally running this in Eclipse we can see:</p>
<pre class="brush: plain; title: ; notranslate">
Buildfile: D:\workspace\_build\build.xml
DEVELOPMENT-MAINTENANCE-OFF:
     [echo]
     [echo] Setting mainenance mode to: false on \\serverName\Inetpub\wwwroot\www\myproject
     [echo]
BUILD SUCCESSFUL
Total time: 1 second
</pre>
<p>For more on Ant check out my <a href="http://www.thecrumb.com/wiki/ant">Ant wiki</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://thecrumb.com/2011/03/10/easy-maintenance-mode-with-ant/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Windows 7 Task Scheduler</title>
		<link>http://thecrumb.com/2010/08/20/windows-7-task-scheduler/</link>
		<comments>http://thecrumb.com/2010/08/20/windows-7-task-scheduler/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 14:00:08 +0000</pubDate>
		<dc:creator>Jim Priest</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[cron]]></category>

		<guid isPermaLink="false">http://thecrumb.com/?p=1159</guid>
		<description><![CDATA[On Window XP the ability to reliably schedule anything was severely limited and problematic. Tasks wouldn&#8217;t run if you were logged out, and if you changed your password tasks would fail with authentication errors unless you remembered to update each &#8230; <a href="http://thecrumb.com/2010/08/20/windows-7-task-scheduler/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_1160" class="wp-caption alignright" style="width: 277px"><a href="http://thecrumb.com/wp-content/uploads/2010/08/67399-schedule-task-weekly.gif"><img class="size-medium wp-image-1160" title="67399-schedule-task-weekly" src="http://thecrumb.com/wp-content/uploads/2010/08/67399-schedule-task-weekly-267x300.gif" alt="Win98 Scheduled Tasks" width="267" height="300" /></a><p class="wp-caption-text">Windows 98 Scheduled Tasks</p></div>
<p>On Window XP the ability to reliably schedule anything was severely limited and problematic. Tasks wouldn&#8217;t run if you were logged out, and if you changed your password tasks would fail with authentication errors unless you remembered to update each task.</p>
<p>Given these limitations I searched for an alternative and in <a href="http://thecrumb.com/2009/08/15/cron-for-windows/">previous</a> <a href="http://thecrumb.com/2009/11/05/introduction-to-cron/">posts</a> I&#8217;ve talked about using Cron as a viable replacement for Windows Scheduled tasks.</p>
<p>This has worked great&#8230; on Windows XP at work.  Recently while I was preparing for my presentation at CFUnited I discovered that the particular Cron package I was using ( <a href="http://www.nncron.ru/">nnCron</a> ) did not work on Windows 7.  I discovered this the night before my presentation!</p>
<p>On a whim I looked to see what the scheduler looked like in Window 7 and was presently surprised in the improvements made by Microsoft!</p>
<p>In Windows 7 you can hit the Windows menu and simply type &#8220;Task&#8221; and you will see an entry for &#8220;Task Scheduler&#8221;.</p>
<p>The interface has totally been revamped.  Don&#8217;t panic &#8211; it is fairly intuitive after clicking around a bit.</p>
<p style="text-align: center;">
<div id="attachment_1161" class="wp-caption aligncenter" style="width: 310px"><a href="http://thecrumb.com/wp-content/uploads/2010/08/win7-task-sched1.png"><img class="size-medium wp-image-1161 " title="win7-task-sched1" src="http://thecrumb.com/wp-content/uploads/2010/08/win7-task-sched1-300x195.png" alt="Wndows 7 Task Scheduler" width="300" height="195" /></a><p class="wp-caption-text">Wndows 7 Task Scheduler</p></div>
<p>The interface is split into 3 panes.  The left most pane is the list of tasks.  The middle pane is where the task details are defined and the right pane is a quick menu to frequent actions.</p>
<p style="text-align: center;">To get started &#8211; hit Create Task in the right pane.</p>
<p style="text-align: center;">
<div id="attachment_1162" class="wp-caption aligncenter" style="width: 261px"><a href="http://thecrumb.com/wp-content/uploads/2010/08/win7-task-sched2.png"><img class="size-full wp-image-1162" title="win7-task-sched2" src="http://thecrumb.com/wp-content/uploads/2010/08/win7-task-sched2.png" alt="Right Pane " width="251" height="301" /></a><p class="wp-caption-text">Right Pane - Action Menu</p></div>
<p><em>Create Basic Task&#8230;</em> will allow you to quickly setup a task with limited options.  <em>Create Task</em>&#8230; will give you more control.</p>
<p style="text-align: center;">
<div id="attachment_1163" class="wp-caption aligncenter" style="width: 310px"><a href="http://thecrumb.com/wp-content/uploads/2010/08/win7-task-sched3.png"><img class="size-medium wp-image-1163" title="win7-task-sched3" src="http://thecrumb.com/wp-content/uploads/2010/08/win7-task-sched3-300x225.png" alt="New Options" width="300" height="225" /></a><p class="wp-caption-text">New Options</p></div>
<p>The Create Task pane has several tabs &#8211; and clicking through them we can see many new option not available in the old Scheduled Tasks.  You can now run tasks whether you are logged in or not.</p>
<div id="attachment_1165" class="wp-caption aligncenter" style="width: 310px"><a href="http://thecrumb.com/wp-content/uploads/2010/08/win7-task-sched5.png"><img class="size-medium wp-image-1165" title="win7-task-sched5" src="http://thecrumb.com/wp-content/uploads/2010/08/win7-task-sched5-300x258.png" alt="New Options" width="300" height="258" /></a><p class="wp-caption-text">New Options</p></div>
<p>There is too much to cover in one blog post but if you are using Windows 7 take a few minutes to click through and explore all the features.  Between the available <em>triggers </em>(at log on, startup, on event, on lock, etc) and the <em>actions (start program, send mail, display message) </em>and <em>conditions  (on AC power, idle, etc) </em>you should be able to schedule just about anything!</p>
]]></content:encoded>
			<wfw:commentRss>http://thecrumb.com/2010/08/20/windows-7-task-scheduler/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CFUnited &#8211; Code and More</title>
		<link>http://thecrumb.com/2010/07/30/cfunited-code-and-more/</link>
		<comments>http://thecrumb.com/2010/07/30/cfunited-code-and-more/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 19:30:51 +0000</pubDate>
		<dc:creator>Jim Priest</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[autohotkey]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[cfunited]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://thecrumb.com/?p=1145</guid>
		<description><![CDATA[I&#8217;ve posted code examples and a detailed &#8216;handout&#8217; which includes links and more information on all the software I discussed in my presentation. I&#8217;ve also included some alternatives and options for non-Windows operating systems. CFUnited 2010 &#8211; Digging Into The &#8230; <a href="http://thecrumb.com/2010/07/30/cfunited-code-and-more/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve posted code examples and a detailed &#8216;handout&#8217;  which includes links and more information on all the software I discussed in my presentation.  I&#8217;ve also included some alternatives and options for non-Windows operating systems.</p>
<p><a href="http://www.thecrumb.com/wiki/presentations/cfunited2010">CFUnited 2010 &#8211; Digging Into The Developer Toolbox</a></p>
<p>Thanks to all that attended!   If you have any questions or suggestions for new software for me to check out please let me know!  </p>
]]></content:encoded>
			<wfw:commentRss>http://thecrumb.com/2010/07/30/cfunited-code-and-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Breaking Bad Habits &#8211; Stop Using The Mouse!</title>
		<link>http://thecrumb.com/2010/01/25/breaking-bad-habits-stop-using-the-mouse/</link>
		<comments>http://thecrumb.com/2010/01/25/breaking-bad-habits-stop-using-the-mouse/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 14:57:00 +0000</pubDate>
		<dc:creator>Jim Priest</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://www.thecrumb.com/?p=1034</guid>
		<description><![CDATA[Lately I&#8217;ve been really trying to avoid using the mouse while coding.  You may not realize it but it&#8217;s a huge distraction to: Stop typing Find your mouse Find your cursor Hunt for the icon you need Click the icon &#8230; <a href="http://thecrumb.com/2010/01/25/breaking-bad-habits-stop-using-the-mouse/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been really trying to avoid using the mouse while coding.  You may not realize it but it&#8217;s a huge distraction to:</p>
<ol>
<li>Stop typing</li>
<li>Find your mouse</li>
<li>Find your cursor</li>
<li>Hunt for the icon you need</li>
<li>Click the icon</li>
<li>Release mouse</li>
<li>Resume typing</li>
</ol>
<p>That is a lot of work! And you probably do that quite a bit during a typical day.</p>
<p>Lately I&#8217;ve been using Mousefeed (<a title="Mousefeed" href="http://www.mousefeed.com/">http://www.mousefeed.com/</a>) to help me break this habit.  Mousefeed is an Eclipse plugin which will encourage you to use the keyboard.  If you click on a menu item with the mouse it will display in a small popup the appropriate keyboard shortcut:</p>
<div id="attachment_1035" class="wp-caption aligncenter" style="width: 510px"><a href="http://thecrumb.com/wp-content/uploads/2010/01/mousefeed1.png"><img class="size-full wp-image-1035" src="http://thecrumb.com/wp-content/uploads/2010/01/mousefeed1.png" alt="Mousefeed popup showing keyboard shortcut" width="500" height="204" /></a><p class="wp-caption-text">Mousefeed popup showing keyboard shortcut</p></div>
<p>Unfortunately the author has stopped development on the plugin. The site mentions it works in Eclipse 3.3 but I downloaded the Mousefeed jar file and dropped it into my Eclipse &#8216;dropins&#8217; folder (C:\eclipse\dropins\com.mousefeed_1.0.0.jar) and it seems to work fine with Eclipse 3.5 and the latest CFEclipse.</p>
<p>By using the keyboard I can eliminate the steps above required by the mouse and dramitically speed up my coding!</p>
<p>FYI &#8211; I&#8217;ll be presenting on more time saving tips like this at <a title="cf.Objective" href="http://cfobjective.com">cf.Objective</a> and <a title="CFUnited" href="http://cfunited.com">CFUnited</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://thecrumb.com/2010/01/25/breaking-bad-habits-stop-using-the-mouse/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Quix &#8211; A Super Bookmarklet</title>
		<link>http://thecrumb.com/2010/01/19/quix-a-super-bookmarklet/</link>
		<comments>http://thecrumb.com/2010/01/19/quix-a-super-bookmarklet/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 18:06:45 +0000</pubDate>
		<dc:creator>Jim Priest</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.thecrumb.com/?p=1029</guid>
		<description><![CDATA[I&#8217;ve been tinkering around with Quix, a &#8216;super&#8217; bookmarklet that can easily replace several Firefox addins and overall reduce your dependency on your mouse. Installing Quix is a simple matter of visiting the Quix site and dragging the bookmarklet to &#8230; <a href="http://thecrumb.com/2010/01/19/quix-a-super-bookmarklet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been tinkering around with <a title="Quix" href="http://quixapp.com/">Quix</a>, a &#8216;super&#8217; bookmarklet that can easily replace several Firefox addins and overall reduce your dependency on your mouse.</p>
<p>Installing Quix is a simple matter of visiting the Quix site and dragging the bookmarklet to your toolbar. Since I didn&#8217;t want to click on the bookmarklet to activate I used Firefox&#8217;s keyword to it:</p>
<div id="attachment_1031" class="wp-caption aligncenter" style="width: 347px"><a href="http://thecrumb.com/wp-content/uploads/2010/01/quix11.png"><img class="size-full wp-image-1031" src="http://thecrumb.com/wp-content/uploads/2010/01/quix11.png" alt="Firefox Keyword Shortcut" width="337" height="253" /></a><p class="wp-caption-text">Firefox Keyword Shortcut</p></div>
<p>So now I can do a ALT+D to take me to the address bar and type qq+Enter to pull up the Quix dialog.</p>
<div id="attachment_1032" class="wp-caption aligncenter" style="width: 336px"><a href="http://thecrumb.com/wp-content/uploads/2010/01/quix2.png"><img class="size-full wp-image-1032" src="http://thecrumb.com/wp-content/uploads/2010/01/quix2.png" alt="Quix Dialog" width="326" height="138" /></a><p class="wp-caption-text">Quix Dialog</p></div>
<p>There are quite a few commands and shortcuts available on the Quix site (enter &#8216;Help&#8217; in the Quix dialog to get a complete list).</p>
<p>While I have a few shortcuts like this setup in <a title="FARR" href="http://www.donationcoder.com/Software/Mouser/findrun/">Find and Run Robot</a> (my launcher) having this bookmarklet running inside the browser adds a lot more power to what can be done.</p>
<p>I&#8217;ll probably only use a small percentage of these but even then I can already see it being a timesaver.</p>
]]></content:encoded>
			<wfw:commentRss>http://thecrumb.com/2010/01/19/quix-a-super-bookmarklet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Ant Build Updates Via Growl</title>
		<link>http://thecrumb.com/2009/11/25/getting-ant-build-updates-via-growl/</link>
		<comments>http://thecrumb.com/2009/11/25/getting-ant-build-updates-via-growl/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 20:22:42 +0000</pubDate>
		<dc:creator>Jim Priest</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[automation]]></category>

		<guid isPermaLink="false">http://www.thecrumb.com/?p=986</guid>
		<description><![CDATA[I have a few build scripts that take some time to run and I hate staring at the Eclipse console to see how things are progressing.  I&#8217;ve heard of Growl before and today decided to see if I could make &#8230; <a href="http://thecrumb.com/2009/11/25/getting-ant-build-updates-via-growl/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have a few build scripts that take some time to run and I hate staring at the Eclipse console to see how things are progressing.  I&#8217;ve heard of Growl before and today decided to see if I could make this work to popup notices during my build.</p>
<p>Growl is originally for the Mac but there is a port for Windows aptly named <a title="Growl For Windows" href="http://www.growlforwindows.com/gfw/">Growl For Windows</a>.  Download and install.  I also added the install path to my Windows PATH so I can run the growlnotify script from the command line.</p>
<p>Once you&#8217;ve done this you can verify it&#8217;s working by popping open a DOS box and typing:</p>
<pre class="brush: plain; title: ; notranslate">
C:&amp;gt; growlnotify &quot;THIS IS A TEST&quot;
</pre>
<p>And you should get a popup:</p>
<div id="attachment_988" class="wp-caption aligncenter" style="width: 286px"><img src="http://thecrumb.com/wp-content/uploads/2009/11/growl1.png" alt="Growl Popup" width="276" height="146" class="size-full wp-image-988" /><p class="wp-caption-text">Growl Popup</p></div>
<p>Next you&#8217;ll need to grab a few things so you can interact with Growl from Ant&#8230;</p>
<p>Download <a title="Growlbuildlistener" href="http://code.google.com/p/growlbuildlistener">growlbuildlistener</a></p>
<blockquote><p>An Ant BuildListener that displays notifications via Growl/JGrowl</p></blockquote>
<p>Follow the installation instructions (<a title="installation instructions" href="http://code.google.com/p/growlbuildlistener/wiki/README">in the wiki section</a>).</p>
<p>This simply involves downloading two files that contain jar files &#8211; you&#8217;ll need:</p>
<ul>
<li>the growllistener jar  (growllistener.jar)</li>
<li>the JGrowl jar (binaryblizzard.jar) (from <a href="http://homepage.mac.com/stevevm/JGrowl/JGrowl.tar.gz">JGrowl</a>)</li>
</ul>
<p>Drop those in your Ant lib folder, and in Eclipse make sure those jars are added to your classpath (Ant Home Entries).</p>
<p>Next you will need to add a listener so Ant can use the GrowlBuildListener.  Run the following line from a command prompt:</p>
<pre class="brush: plain; title: ; notranslate">set ANT_ARGS=-listener net.slimeslurp.growl.GrowlListener</pre>
<p>Next I had to add a new taskdef line to my build script:</p>
<pre class="brush: xml; title: ; notranslate">
</pre>
<p>And now you should be able to drop in a new GrowlEcho task in your build file wherever you want a popup to occur.</p>
<pre class="brush: xml; title: ; notranslate">
</pre>
<p>Now when I kick off my scripts I see something like this: <div id="attachment_987" class="wp-caption aligncenter" style="width: 210px"><img src="http://thecrumb.com/wp-content/uploads/2009/11/growl2.png" alt="Growl Example" width="200" height="328" class="size-full wp-image-987" /><p class="wp-caption-text">Growl Example</p></div></p>
<p>I did this mainly for fun but I can see some applicable uses for this.  Growl also looks neat because it appears you can configure it to push notices over the network.  So in theory I could setup everyone on my team with Growl and when someone kicked off a build we could all be notified.</p>
<p>If you come up with a creative use for this please let me know in the comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://thecrumb.com/2009/11/25/getting-ant-build-updates-via-growl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Introduction To Cron</title>
		<link>http://thecrumb.com/2009/11/05/introduction-to-cron/</link>
		<comments>http://thecrumb.com/2009/11/05/introduction-to-cron/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 20:25:54 +0000</pubDate>
		<dc:creator>Jim Priest</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[cron]]></category>

		<guid isPermaLink="false">http://www.thecrumb.com/?p=957</guid>
		<description><![CDATA[In my previous entry Cron For Windows I discussed using cron as a better replacement for Windows Scheduled Task.  Today we will look at how easy cron is to configure and look at a few examples that I have configured. &#8230; <a href="http://thecrumb.com/2009/11/05/introduction-to-cron/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In my previous entry <a title="Cron for Windows" href="http://www.thecrumb.com/2009/08/15/cron-for-windows/">Cron For Windows</a> I discussed using cron as a better replacement for Windows Scheduled Task.  Today we will look at how easy cron is to configure and look at a few examples that I have configured.</p>
<p>This tuturial will assume you have downloaded <a title="nnCron" href="http://www.nncron.ru">nnCron Lite</a> and have it configured according to the online documentation. If you are on Mac or Linux you should already have cron available.  nnCron&#8217;s format is the same as Unix so everything here should work anywhere you have cron available.</p>
<p>I installed nnCron to C:\Program Files\cron.  Within that directory you should have a file called cron.tab. This is the main file used for starting and stopping your applications. While it&#8217;s not a GUI interface like Scheduled Tasks the configuration file is very easy to understand.  Open cron.tab with Notepad or your favorite text editor.</p>
<p>The syntax is very simple&#8230;</p>
<pre class="brush: plain; title: ; notranslate">
# Classic crontab format
# Minutes Hours Days Months WeekDays Command
</pre>
<p>Some things to note: comments are preceeded by a &#8220;#&#8221; sign. Empty lines, leading spaces and tabs are ignored.  nnCron also allows you to skip wrapping filenames and paths in quotations, and there is no need to call the command interpreter. Please see the nnCron documentation for more information.</p>
<p>For our first example we will run a batch file every morning to refresh my ColdFusion services to make sure everything is up and running when I get into the office.  So assuming I have a batch file (cf8_restart.cmd) configured to stop and restart my ColdFusion services I can do the following:</p>
<pre class="brush: plain; title: ; notranslate">
# restart web/cf services every morning
0 7 * * 1-5 D:\_documents\scripts\batch\cf8_restart.cmd
</pre>
<p>The time format breaks down like:</p>
<p>0 = this is minutes &#8211; we want to run our script at the top of the hour<br />
7 = equals hours &#8211; and we want to kick off our script at 7am (24hr format)<br />
* = no value for days and months<br />
1-5 = weekdays &#8211; we want this to only run M-F</p>
<p>For another example I run a backup utility to backup our JIRA instance:</p>
<pre class="brush: plain; title: ; notranslate">
# run JIRA backup procedure every day at 12am and 12pm
0 0,12 * * * C:\Program Files\2BrightSparks\SyncBack\SyncBack.exe -m &quot;JIRA Backup&quot;
</pre>
<p>0 = this is minutes again &#8211; we want to run our script at the top of the hour<br />
0,12 = equals hours &#8211; in this case I backup every 12 hours &#8211; at midnight and noon<br />
* = no value for days, months and weekdays &#8211; this script runs everyday</p>
<p>These examples are very simple but the cron format can do very complicated schedules.</p>
<p>Here are a few examples taken from the nnCron documentation:</p>
<ul>
<li> 59 23 31 12 5  -  One minute  before the end of year if the last day of the year is Friday</li>
<li>45 17 7 6 *   -  Every  year, on June 7th at 17:45</li>
<li>0 9 1-7 * 1   -  First Monday of each month, at 9 a.m.</li>
<li>0 0 1 * * &#8211; At midnight, on the first day of each month</li>
</ul>
<p>If you are using Windows Scheduled task and looking for more flexibility and reliability in your scheduled tasks I would encourage you to check out cron.</p>
]]></content:encoded>
			<wfw:commentRss>http://thecrumb.com/2009/11/05/introduction-to-cron/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Autohotkey + Dropbox = The Perfect Combo</title>
		<link>http://thecrumb.com/2009/08/28/autohotkey-dropbox-the-perfect-combo/</link>
		<comments>http://thecrumb.com/2009/08/28/autohotkey-dropbox-the-perfect-combo/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 13:31:53 +0000</pubDate>
		<dc:creator>Jim Priest</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[autohotkey]]></category>
		<category><![CDATA[automation]]></category>

		<guid isPermaLink="false">http://www.thecrumb.com/?p=935</guid>
		<description><![CDATA[So you&#8217;ve downloaded Autohotkey and are writing all kinds of automation scripts to help you out during the day at work.  But what about home?  You can setup routines to help you out there as well. I have several setup &#8230; <a href="http://thecrumb.com/2009/08/28/autohotkey-dropbox-the-perfect-combo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So you&#8217;ve downloaded Autohotkey and are writing all kinds of automation scripts to help you out during the day at work.  But what about home?  You can setup routines to help you out there as well. I have several setup for email signatures, shortcuts for my home PC, etc.</p>
<p>To make juggling your Autohotkey scripts easier take a look at <a title="Dropbox" href="http://www.getdropbox.com">Dropbox</a>.  I&#8217;ve been keeping more and more stuff in Dropbox lately. It serves as a simple version control system, and best of all it&#8217;s truly cross platform so I can dual-boot my laptop into Windows or Linux and access the same files!</p>
<p>With Autohotkey you can drop your .ahk file in Dropbox and access your shortcuts from any computer (with Autohotkey installed of course).</p>
]]></content:encoded>
			<wfw:commentRss>http://thecrumb.com/2009/08/28/autohotkey-dropbox-the-perfect-combo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Autohotkey Week: Day 5 – Conclusion</title>
		<link>http://thecrumb.com/2009/08/21/autohotkey-week-day-5-%e2%80%93-conclusion/</link>
		<comments>http://thecrumb.com/2009/08/21/autohotkey-week-day-5-%e2%80%93-conclusion/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 18:30:41 +0000</pubDate>
		<dc:creator>Jim Priest</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[autohotkey]]></category>
		<category><![CDATA[automation]]></category>

		<guid isPermaLink="false">http://www.thecrumb.com/?p=932</guid>
		<description><![CDATA[So hopefully this week I&#8217;ve provided you with a few ideas to get you started with Autohotkey!   Here are a few more links to help you&#8230; Autohotkey Autohotkey: http://www.autohotkey.com/ Quick start: http://www.autohotkey.com/docs/Tutorial.htm Sample scripts: http://www.autohotkey.com/docs/scripts/index.htm Similar tools: Texter IronAHK (Autohotkey &#8230; <a href="http://thecrumb.com/2009/08/21/autohotkey-week-day-5-%e2%80%93-conclusion/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So hopefully this week I&#8217;ve provided you with a few ideas to get you started with Autohotkey!   Here are a few more links to help you&#8230;</p>
<p><strong>Autohotkey</strong></p>
<ul>
<li> Autohotkey: <a href="http://www.autohotkey.com/">http://www.autohotkey.com/</a></li>
<li> Quick start: <a href="http://www.autohotkey.com/docs/Tutorial.htm">http://www.autohotkey.com/docs/Tutorial.htm</a></li>
<li> Sample scripts: <a href="http://www.autohotkey.com/docs/scripts/index.htm">http://www.autohotkey.com/docs/scripts/index.htm</a></li>
</ul>
<p><strong>Similar tools:</strong></p>
<ul>
<li><a href="http://lifehacker.com/software/texter/lifehacker-code-texter-windows-238306.php">Texter</a></li>
<li><a href="http://code.google.com/p/ironahk/">IronAHK</a> (Autohotkey for .net/Mono)</li>
</ul>
<p><strong>More resources:</strong></p>
<ul>
<li> Lifehacker has quite a few <a href="http://lifehacker.com/search/autohotkey/">Autohotkey related posts</a> as does <a href="http://en.wikipedia.org/wiki/AutoHotkey">Wikipedia</a></li>
</ul>
<p>If <em><strong>YOU </strong></em>create a useful Autohotkey script please let me know.  I am planning on a opening a section on my <a href="http://www.thecrumb.com/wiki">wiki </a>to store and share scripts!</p>
]]></content:encoded>
			<wfw:commentRss>http://thecrumb.com/2009/08/21/autohotkey-week-day-5-%e2%80%93-conclusion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

