<?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>Moki Systems Blog</title>
	<atom:link href="http://www.mokisystems.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mokisystems.com/blog</link>
	<description>Addressing such topics as: web programming, design, ruby on rails, cake php, postgresql, linux, seo</description>
	<lastBuildDate>Fri, 20 May 2011 15:22:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Moki Systems and USTAR newspaper article</title>
		<link>http://www.mokisystems.com/blog/moki-systems-and-ustar-newspaper-article/</link>
		<comments>http://www.mokisystems.com/blog/moki-systems-and-ustar-newspaper-article/#comments</comments>
		<pubDate>Fri, 20 May 2011 15:22:13 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mokisystems.com/blog/?p=200</guid>
		<description><![CDATA[Four Southern Utah entrepreneurs detailed their technology-related
products Tuesday in St. George after receiving grants from a
state-funded economic development organization.
The Utah Science Technology and Research initiative, or USTAR,
coordinated the luncheon in an effort to highlight recent recipients of
its technology commercialization grants to local legislators and other
members of the community at The Village Bank&#8217;s downtown location, said
Jill [...]]]></description>
			<content:encoded><![CDATA[<p>Four Southern Utah entrepreneurs detailed their technology-related<br />
products Tuesday in St. George after receiving grants from a<br />
state-funded economic development organization.</p>
<p>The Utah Science Technology and Research initiative, or USTAR,<br />
coordinated the luncheon in an effort to highlight recent recipients of<br />
its technology commercialization grants to local legislators and other<br />
members of the community at The Village Bank&#8217;s downtown location, said<br />
Jill Elliss, the Southern Utah technology outreach director for USTAR.</p>
<p>USTAR&#8217;s technology outreach program was designed to foster growth among<br />
companies by offering guidance and support through locations at Dixie<br />
State College and Southern Utah University in addition to other centers<br />
throughout the state.</p>
<p>&#8220;Our ultimate goal is to help new high-tech companies and bring new<br />
products to the market that translate to new high-paying jobs,&#8221; said<br />
Michael O&#8217;Malley, communications director for USTAR.</p>
<p>Bret Berger, the owner of Moki Systems, a St. George-based software<br />
development company, said his technology business received nearly<br />
$40,000 from a USTAR grant last year. He said the grant helped the<br />
company develop a prototype for its online agricultural water system<br />
monitoring technology. He said the funds also allowed Moki Systems to<br />
hire two Dixie State students who assisted the company in developing its<br />
software,</p>
<p>While the additional funding is helpful, Berger said the guidance and<br />
connections offered by USTAR have proven equally valuable.</p>
<p>&#8220;They have kind of provided a spark that pushed us along,&#8221; he said,<br />
adding that USTAR connected the company with students at Dixie State.</p>
<p>Berger said he hopes to see Moki Systems provide new jobs for members of<br />
the community as the company develops its new product.</p>
<p>Prior to Tuesday&#8217;s presentations, DSC President Stephen Nadauld said<br />
USTAR offers valuable work experience to students while assisting local<br />
entrepreneurs and companies.</p>
<p>&#8220;We have a huge role to play in community economic development,&#8221; he said<br />
of the college.</p>
<p>Jamie Lords, president of SmackDab Technologies, a company developing a<br />
laser-based layout system designed for use within the construction<br />
sector, said his company also relies upon USTAR and local college students.</p>
<p>SmackDab received about $30,000 from a USTAR grant in March, he said,<br />
providing funds for the company to develop its prototype and pay<br />
students for their work on the project.</p>
<p>&#8220;It brought us to life,&#8221; he said of the grant following his presentation<br />
Tuesday, adding that the company likely avoided selling a potion of its<br />
ownership by acquiring the additional funding.</p>
<p>Kolob resident Doug Catton said he also benefitted from USTAR&#8217;s<br />
technology grant program by receiving about $30,000 to improve his<br />
prototype for a unique walker designed to offer additional layers of<br />
protection for elderly consumers.</p>
<p>Catton said his walker includes a lever that lowers a seat behind the<br />
user, eliminating the need for a person to turn around before sitting on<br />
the device.</p>
<p>With assistance from engineering students at Southern Utah University,<br />
Catton said he hopes his product is market-ready within 12 to 18 months.</p>
<p>Matthew Excell, the chief technology officer of TrueScale Technologies<br />
in St. George, presented his company&#8217;s online media storage product<br />
during the luncheon.</p>
<p>He said TrueScale&#8217;s technology would allow users to rapidly upload music<br />
and video files to an online storage system and access the files through<br />
their computers, televisions and smartphones.</p>
<p>&#8220;We expect it to be hopefully widely available in the fourth quarter,&#8221;<br />
he said of the product.</p>
<p>Approximately 90 percent of USTAR&#8217;s grant program was funded by federal<br />
stimulus dollars, O&#8217;Malley said. With no stimulus dollars remaining for<br />
future grants, he said the program is &#8220;on hold&#8221; and is not likely to<br />
resume unless USTAR obtains another source of funding.</p>
<p>&#8220;We are looking at other options on how to fund it,&#8221; he said.</p>
<p>Article originally published by <a href="http://www.thespectrum.com">The Spectrum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mokisystems.com/blog/moki-systems-and-ustar-newspaper-article/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Real-time flows on the Santa Clara and Virgin Rivers</title>
		<link>http://www.mokisystems.com/blog/confluence-of-the-santa-clara-and-virgin-rivers/</link>
		<comments>http://www.mokisystems.com/blog/confluence-of-the-santa-clara-and-virgin-rivers/#comments</comments>
		<pubDate>Wed, 22 Dec 2010 02:20:31 +0000</pubDate>
		<dc:creator>bret</dc:creator>
				<category><![CDATA[The Real-Time Web]]></category>
		<category><![CDATA[Santa Clara River]]></category>
		<category><![CDATA[Virgin River]]></category>
		<category><![CDATA[Virgin River Flood]]></category>

		<guid isPermaLink="false">http://www.mokisystems.com/blog/?p=156</guid>
		<description><![CDATA[  
Refresh your browser screen to get the latest values!
This page contains real-time flow data for two sites on the Virgin River and the mouth of the Santa Clara River, all near St. George, Utah.  Discharge is hydrologist-speak for flow in the river.  It is measured in cfs or Cubic Feet per [...]]]></description>
			<content:encoded><![CDATA[<p>  <script src="http://manage.metridyne.com/javascripts/jquery.js" type="text/javascript"></script><script src="http://manage.metridyne.com/javascripts/jquery.livequery.js" type="text/javascript"></script><script src="http://manage.metridyne.com/javascripts/jquery.sparkline.js" type="text/javascript"></script><script src="http://manage.metridyne.com/javascripts/jquery.fancybox.js" type="text/javascript"></script><!--[if IE]><script src="http://manage.metridyne.com/javascripts/excanvas.js" type="text/javascript"></script><![endif]--></p>
<p><strong>Refresh your browser screen to get the latest values!</strong></p>
<p>This page contains real-time flow data for two sites on the Virgin River and the mouth of the Santa Clara River, all near St. George, Utah.  Discharge is hydrologist-speak for flow in the river.  It is measured in cfs or Cubic Feet per Second.  One cfs is equal to about 7 gallons per second.  </p>
<div id="attachment_187" class="wp-caption alignnone" style="width: 586px"><img src="http://www.mokisystems.com/blog/wp-content/uploads/2010/12/virgin-bloomington.gif" alt="Dec 16-22 Virgin River Flows in St. George at I-15" title="virgin-bloomington" width="576" height="384" class="size-full wp-image-187" /><p class="wp-caption-text">Dec 16-22 Virgin River Flows in St. George at I-15</p></div>
<p>The above (not real-time) graph, courtesy of USGS, shows flows for Dec 16-22 for the USGS gaging station on the Virgin River near Interstate 15 in St. George, Utah.  Note the peak flow on Tuesday the 21st of about 18,000 cfs.  In perspective this is:</p>
<ul>
<li><strong>1/63</strong> the average flow of the <strong>Yangtze</strong></li>
<li><strong>1/25</strong> the average flow of the <strong>Mississippi</strong></li>
<li><strong>1/10</strong> the average flow of the <strong>Nile</strong></li>
</ul>
<p>In the content below click on the links labeled &#8220;Discharge&#8221; or &#8220;Gage height&#8221; to pull up a graphing tool that will allow you to navigate the water data back and forth in time.  Data from each of these stations comes from the USGS, the federal agency that also owns and operates the stations that measure this data.</p>
<p>Real-time data from these stations is transmitted one time each hour via a satellite radio link.  The hourly data transmission contains flow values averaged at 15 minute intervals.</p>
<p>During extreme water events like this week, the gaging station equipment or site may sustain damage or undergo changes that make the automated measurements inaccurate.  The site on the Santa Clara and the Virgin River site above the gorge seem to have intermittently reported data yesterday (Tues Dec 21) and today (Wed Dec 22).</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<div id="station-799" class="metridyne-embed"></div>
<p><script type="text/javascript" src="http://embed.metridyne.com/stations/799/embed.js"></script></p>
<p>This USGS gaging station is right above the confluence of the Santa Clara and the Virgin Rivers, 0.8 miles upstream from mouth.  This is near Interstate 15 in Saint George, Utah.</p>
<div id="attachment_170" class="wp-caption alignnone" style="width: 310px"><img src="http://www.mokisystems.com/blog/wp-content/uploads/2010/12/09413000-300x197.jpg" alt="I think gage is next to bridge on Dixe Drive" title="Location of gage on Santa Clara River" width="300" height="197" class="size-medium wp-image-170" /><p class="wp-caption-text">I think gage is next to bridge on Dixe Drive</p></div>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<div id="station-801" class="metridyne-embed"></div>
<p><script type="text/javascript" src="http://embed.metridyne.com/stations/801/embed.js"></script></p>
<p>This gage is located just upstream from the I-15 freeway bridge and just below the confluence with the Santa Clara River.</p>
<div id="attachment_179" class="wp-caption alignnone" style="width: 650px"><img src="http://www.mokisystems.com/blog/wp-content/uploads/2010/12/09413200.jpg" alt="Virgin River gaging station next to the I-15 freeway bridge" title="Virgin River near Bloomington" width="640" height="480" class="size-full wp-image-179" /><p class="wp-caption-text">Virgin River gaging station next to the I-15 freeway bridge</p></div>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<div id="station-800" class="metridyne-embed"></div>
<p><script type="text/javascript" src="http://embed.metridyne.com/stations/800/embed.js"></script></p>
<p>This sensor is downriver from St. George about 8 miles.  It&#8217;s located where the Virgin River enters &#8220;The Gorge&#8221;.</p>
<p><img src="http://www.mokisystems.com/blog/wp-content/uploads/2010/12/09413500.jpg" alt="USGS Gaging station site.  8 miles Southwest of St. George." title="USGS Gaging station site.  8 miles Southwest of St. George." width="640" height="480" class="alignnone size-full wp-image-161" /><br />
<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
<br />
Short video of the Santa Clara at the confluence with the Virgin.  This was taken on 21-December-2010 (Tuesday) at about 11AM.  Flows were near their estimated peak of 4,000-5,000cfs.  Camera pans from upstream shot of foot bridge to downstream shot of the confluence with the Virgin.</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/8pDMWUaJBIs?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/8pDMWUaJBIs?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object><br />
<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
<br />
Video clip of the Virgin just below the confluence with the Santa Clara and below the Interstate 15 bridge.  Note the huge standing wave.  Video was taken on Tuesday 21-Dec-2010 at about 11AM.  Across the river is a paved bike path/walking trail which had sections eroded away in the 24 hours after this video was shot.  Flows in the Virgin were near the estimated event maximum of 18,000cfs</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/37qBhZytI5s?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/37qBhZytI5s?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mokisystems.com/blog/confluence-of-the-santa-clara-and-virgin-rivers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Places &#8211; An Underused Resource</title>
		<link>http://www.mokisystems.com/blog/google-places-an-underused-resource/</link>
		<comments>http://www.mokisystems.com/blog/google-places-an-underused-resource/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 00:54:25 +0000</pubDate>
		<dc:creator>bret</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Places]]></category>

		<guid isPermaLink="false">http://www.mokisystems.com/blog/?p=122</guid>
		<description><![CDATA[&#160;

&#160;
Google Places is a fantastic and underutilized tool for insuring that your customers can find you.  Places is an expanded profile for your small business in the Google Maps search results.  Google allows business owners to self-edit information displayed in Places such as:

Categories that describe your business
Description of your business
Your website URL
Contact information&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p><img src="http://www.mokisystems.com/blog/wp-content/uploads/2010/09/places_logo.gif" alt="places_logo" title="places_logo" width="185" height="40" class="alignnone size-full wp-image-123" /></p>
<p>&nbsp;</p>
<p><a href="http://google.com/lbc">Google Places</a> is a fantastic and underutilized tool for insuring that your customers can find you.  Places is an expanded profile for your small business in the Google Maps search results.  Google allows business owners to self-edit information displayed in Places such as:</p>
<ul>
<li>Categories that describe your business</li>
<li>Description of your business</li>
<li>Your website URL</li>
<li>Contact information&#8230; address, phone, email, etc.</li>
<li>Hours of operation</li>
<li>Types of payment accepted (Visa, MasterCard, etc.)</li>
</ul>
<p>By simply making sure that all of the information in your Google Places webpage is populated and correct you will bring your Google listing ahead of much of your competition. </p>
<p>&nbsp;</p>
<p>Look for your Google Place listing by searching Google Maps for your business:<br />
<img src="http://www.mokisystems.com/blog/wp-content/uploads/2010/09/google-map-search-bar.PNG" alt="google-map-search-bar" title="google-map-search-bar" width="511" height="49" class="alignnone size-full wp-image-134" /></p>
<p>&nbsp;</p>
<p>Search the listings to find your business.  You may edit the listing by clicking on the &#8220;Edit this place&#8221; link.  You will need a <a href="http://www.google.com/support/blogger/bin/answer.py?hl=en&#038;answer=42589">Google Account</a>.  The first time you attempt to edit your Google Places information you will be asked to authenticate yourself via either a phone call or through a postcard mailed to the business address.</p>
<p>&nbsp;</p>
<p><img src="http://www.mokisystems.com/blog/wp-content/uploads/2010/09/moki-places-snippet.PNG" alt="moki-places-snippet" title="moki-places-snippet" width="624" height="326" class="alignnone size-full wp-image-150" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mokisystems.com/blog/google-places-an-underused-resource/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hydrology and the Real-Time Web</title>
		<link>http://www.mokisystems.com/blog/hydrology-and-the-real-time-web/</link>
		<comments>http://www.mokisystems.com/blog/hydrology-and-the-real-time-web/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 23:20:04 +0000</pubDate>
		<dc:creator>bret</dc:creator>
				<category><![CDATA[The Real-Time Web]]></category>
		<category><![CDATA[Campbell Scientific Datalogger]]></category>
		<category><![CDATA[real-time web]]></category>
		<category><![CDATA[Sevier River]]></category>
		<category><![CDATA[StoneFly Technology]]></category>
		<category><![CDATA[water flow data]]></category>

		<guid isPermaLink="false">http://www.mokisystems.com/blog/?p=88</guid>
		<description><![CDATA[The Sevier River Water Users Association (SRWUA) in Central Utah are pioneers in the use of the Real-Time Web.  For the past 10 years SRWUA has been delivering real-time water flow data to the public via the website www.SevierRiver.org.
More that 100 remote, solar-powered, stations record water flow and capacity data from canals, rivers and [...]]]></description>
			<content:encoded><![CDATA[<p>The Sevier River Water Users Association (SRWUA) in Central Utah are pioneers in the use of the Real-Time Web.  For the past 10 years SRWUA has been delivering real-time water flow data to the public via the website <a href="http://www.sevierriver.org">www.SevierRiver.org</a>.</p>
<p>More that 100 remote, solar-powered, stations record water flow and capacity data from canals, rivers and reservoirs.  This data is collected and disseminated by the the MetriDyne tool, created by <a href="http://www.mokisystems.com">Moki Systems.</a></p>
<p>A schematic view of a portion of the system is useful as an overview for operations:<br />
<a href="http://www.sevierriver.org/rivers/upper/"><img src="http://www.mokisystems.com/blog/wp-content/uploads/2010/08/Upper.PNG" alt="Flows of Rivers and Canals" title="Upper" width="262" height="341" class="size-full wp-image-89" /></p>
<p>&nbsp;</p>
<p>A tabular view of the same data:<br />
<a href="http://www.sevierriver.org/rivers/upper/"><img src="http://www.mokisystems.com/blog/wp-content/uploads/2010/08/UpperTable.png" alt="Tabular view of flow data on the Upper Seiver" title="UpperTable" width="712" height="292" class="size-full wp-image-91" /></p>
<p>&nbsp;</p>
<p>Drilling down on an individual station shows a time series graph with options for tabular display or data export:<br />
<a href="http://www.sevierriver.org/rivers/upper/"><img src="http://www.mokisystems.com/blog/wp-content/uploads/2010/08/SevierBelowPiuteRes.png" alt="Time Series Graph of Data" title="SevierBelowPiuteRes" width="690" height="421" class="size-full wp-image-93" /></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mokisystems.com/blog/hydrology-and-the-real-time-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stress Testing Your Web App</title>
		<link>http://www.mokisystems.com/blog/stress-testing-your-web-app/</link>
		<comments>http://www.mokisystems.com/blog/stress-testing-your-web-app/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 23:57:53 +0000</pubDate>
		<dc:creator>bret</dc:creator>
				<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://www.mokisystems.com/blog/?p=82</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/NtvNSg69P7g&amp;hl=en_US&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/NtvNSg69P7g&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mokisystems.com/blog/stress-testing-your-web-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>www.MantiCityCreek.org Goes Live</title>
		<link>http://www.mokisystems.com/blog/manticitycreek-org-goes-live/</link>
		<comments>http://www.mokisystems.com/blog/manticitycreek-org-goes-live/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 16:05:07 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[The Real-Time Web]]></category>
		<category><![CDATA[manti]]></category>
		<category><![CDATA[real-time hydrology]]></category>

		<guid isPermaLink="false">http://www.mokisystems.com/blog/?p=77</guid>
		<description><![CDATA[I have been asked to announce that we have recently gone live with manticitycreek.org, a website for the Manti Irrigation and Reservoir Company of Manti, Utah to monitor real-time data from local canals, ponds and rivers.  

There are a number of different data products for viewing the data, including charts and graphs and tabular [...]]]></description>
			<content:encoded><![CDATA[<p>I have been asked to announce that we have recently gone live with <a href="http://www.manticitycreek.org">manticitycreek.org</a>, a website for the Manti Irrigation and Reservoir Company of Manti, Utah to monitor real-time data from local canals, ponds and rivers.  </p>
<p><a href="http://www.MantiCityCreek.org"><img src="http://www.mokisystems.com/blog/wp-content/uploads/2010/08/manticitycreekdotorg.png" alt="manticitycreekdotorg" title="manticitycreekdotorg" width="650" height="398" class="alignnone size-full wp-image-102" /></a></p>
<p>There are a number of different data products for viewing the <a href="http://www.manticitycreek.org/water/">data</a>, including charts and graphs and tabular reports. It is even available by <a href="http://www.manticitycreek.org/reports/data-by-telephone-ivr/">phone</a> thanks to <a href="http://www.cloudvox.com/">cloudvox</a>&#8217;s IVR technology. The site has been built with <a href="http://radiantcms.org/">Radiant</a> which makes it easy for us to embed <a href="http://jquery.com/">jQuery</a>-powered data products from our data collection and management tool, which is a <a href="http://rubyonrails.org/">Ruby on Rails</a> application. We have also integrated external resources such as <a href="http://www.manticitycreek.org/weather/">SNOTEL graphs</a> from the <a href="http://www.wrcc.dri.edu">Western Regional Climate Center</a> to make it easy to analyze long term precipitation trends.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mokisystems.com/blog/manticitycreek-org-goes-live/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We&#8217;re Hiring</title>
		<link>http://www.mokisystems.com/blog/were-hiring/</link>
		<comments>http://www.mokisystems.com/blog/were-hiring/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 16:34:57 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[Moki Systems]]></category>

		<guid isPermaLink="false">http://www.mokisystems.com/blog/?p=65</guid>
		<description><![CDATA[Moki Systems is seeking a full-time Ruby on Rails developer. The person should be a self starter, willing and able to figure things out on their own. Applicant should have experience with Ruby on Rails, MVC programming concepts, MySQL and/or PostgreSQL experience and the ability to learn new technologies. Any additional programming experience is a [...]]]></description>
			<content:encoded><![CDATA[<p>Moki Systems is seeking a full-time <strong>Ruby on Rails developer</strong>. The person should be a self starter, willing and able to figure things out on their own. Applicant should have experience with Ruby on Rails, MVC programming concepts, MySQL and/or PostgreSQL experience and the ability to learn new technologies. Any additional programming experience is a plus.</p>
<p>This is a full-time position with a 90-day probationary period after which medical benefits and paid holidays are available. Salary is competitive and depends on experience.</p>
<p>Send a resumé to:</p>
<p>Kelli Valadez</p>
<p>Contact Phone:<br />
435-674-3571</p>
<p>Contact Email:<br />
hr@mokisystems.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mokisystems.com/blog/were-hiring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Clipboard Snippets</title>
		<link>http://www.mokisystems.com/blog/linux-clipboard-snippets/</link>
		<comments>http://www.mokisystems.com/blog/linux-clipboard-snippets/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 18:13:34 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.mokisystems.com/blog/?p=63</guid>
		<description><![CDATA[Whenever I find myself typing the same thing over and over again, I have to come up with some way to avoid the repetition. And one thing I do a lot is fill out web forms that require things like credit card numbers and unique email addresses. For a while I tried using Parcellite (a [...]]]></description>
			<content:encoded><![CDATA[<p>Whenever I find myself typing the same thing over and over again, I have to come up with some way to avoid the repetition. And one thing I do a lot is fill out web forms that require things like credit card numbers and unique email addresses. For a while I tried using Parcellite (a clipboard manager) but it wasn&#8217;t really designed for what I wanted to use it for. Finally with the inspiration of <a href="http://bbs.archlinux.org/viewtopic.php?id=71938">this thread</a> I was able to cobble together a solution that does just what I want.<br />
<span id="more-63"></span><br />
First I created a snippets directory and filled it with files that contained the text to insert or scripts to generate the desired text:</p>

<div class="wp_syntax"><div class="code"><pre>$ cd ~/.snippets
$ ls -1
credit_card
email
@example.com
phone
RAILS_ENV=test
sql_create
sql_permissions
$ cat credit_card 
4111111111111111
$ cat sql_permissions 
GRANT ALL PRIVILEGES ON .* TO ''@'localhost' IDENTIFIED BY ''<SEMI>
$ cat phone 
#!/usr/bin/env ruby
print (1..12).map {<PIPE>i<PIPE> i == 4 <PIPE><PIPE> i == 8 ? '-' : rand(10).to_s}.join</pre></div></div>

<p>Then I put this little script in ~/bin:</p>

<div class="wp_syntax"><div class="code"><pre class="bash"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;"># http://bbs.archlinux.org/viewtopic.php?id=71938</span>
<span style="color: #007800;">DIR=</span><span style="color: #800000;">${HOME}</span><span style="color: #000000; font-weight: bold;">/</span>.snippets
<span style="color: #007800;">DMENU_ARGS=</span><span style="color: #ff0000;">&quot;-i -fn -*-terminal-*-*-*-*-18-*-*-*-*-*-*-*&quot;</span> <span style="color: #666666; font-style: italic;"># xfontsel to select font</span>
&nbsp;
<span style="color: #007800;">FILE=</span><span style="color: #000000; font-weight: bold;">`/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #007800;">$DIR</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>dmenu <span style="color: #800000;">${DMENU_ARGS}</span><span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> -x <span style="color: #800000;">${DIR}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${FILE}</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span> <span style="color: #666666; font-style: italic;">#executable</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> -n <span style="color: #000000; font-weight: bold;">`</span><span style="color: #800000;">${DIR}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${FILE}</span><span style="color: #000000; font-weight: bold;">`</span> <span style="color: #000000; font-weight: bold;">|</span> xsel -b -i
<span style="color: #000000; font-weight: bold;">elif</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> -f <span style="color: #800000;">${DIR}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${FILE}</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #800000;">${DIR}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #800000;">${FILE}</span> <span style="color: #000000; font-weight: bold;">|</span> xsel -b -i
<span style="color: #000000; font-weight: bold;">fi</span>
xdotool key ctrl+v <span style="color: #666666; font-style: italic;"># for non-console</span>
xdotool key ctrl+<span style="color: #7a0874; font-weight: bold;">shift</span>+v <span style="color: #666666; font-style: italic;"># for console</span></pre></div></div>

<p>And then I mapped that script to a handy key combination in compiz. So now whenever I need a test credit card number, phone number, or email address I can just do <ctrl><alt>c, type the first few characters to select the right snippet, hit return and it gets pasted in to whatever I&#8217;m working on.</p>
<p>Notes and caveats:</p>
<ul>
<li>I had to aptitude install some packages to get dmenu and xdotool to work.</li>
<li>dmenu is ugly and has no mouse support.</li>
<li>Pasting into vim has occasional issues.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.mokisystems.com/blog/linux-clipboard-snippets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Savings records that fail validation.</title>
		<link>http://www.mokisystems.com/blog/savings-records-that-fail-validation/</link>
		<comments>http://www.mokisystems.com/blog/savings-records-that-fail-validation/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 19:39:15 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.mokisystems.com/blog/?p=62</guid>
		<description><![CDATA[So I had this problem with a record that was being saved even though it failed validation:

cc = CreditCard.new&#40;:card_number =&#62; 'invalid'&#41;
&#62;&#62; cc.save
=&#62; false
&#62;&#62; cc.id
=&#62; 3

That one had me stumped for a while until I realized I was carelessly using update_attribute in my custom writer:

def card_number=&#40;num&#41;
  update_attribute&#40;:crypted_card_number, encrypt&#40;num&#41;&#41;
end

And we all know that update_attribute &#8220;saves the [...]]]></description>
			<content:encoded><![CDATA[<p>So I had this problem with a record that was being saved even though it failed validation:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby">cc = CreditCard.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:card_number</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'invalid'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#006600; font-weight:bold;">&gt;&gt;</span> cc.<span style="color:#9900CC;">save</span>
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">false</span>
<span style="color:#006600; font-weight:bold;">&gt;&gt;</span> cc.<span style="color:#9900CC;">id</span>
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006666;">3</span></pre></div></div>

<p>That one had me stumped for a while until I realized I was carelessly using update_attribute in my custom writer:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span style="color:#9966CC; font-weight:bold;">def</span> card_number=<span style="color:#006600; font-weight:bold;">&#40;</span>num<span style="color:#006600; font-weight:bold;">&#41;</span>
  update_attribute<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:crypted_card_number</span>, encrypt<span style="color:#006600; font-weight:bold;">&#40;</span>num<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>And we all know that <a href="http://apidock.com/rails/ActiveRecord/Base/update_attribute">update_attribute</a> &#8220;saves the record without going through the normal validation procedure.&#8221;</p>
<p>Everything worked much nicer after I changed the code to:</p>
<pre code="ruby">
def card_number=(num)
  self.crypted_card_number = encrypt(num)
end
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.mokisystems.com/blog/savings-records-that-fail-validation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A few handy things to know about bash</title>
		<link>http://www.mokisystems.com/blog/a-few-handy-things-to-know-about-bash/</link>
		<comments>http://www.mokisystems.com/blog/a-few-handy-things-to-know-about-bash/#comments</comments>
		<pubDate>Fri, 15 May 2009 15:30:39 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.mokisystems.com/blog/?p=61</guid>
		<description><![CDATA[Pipes and Redirection
These are standard shell tools, but sometimes I get confused about which one I need. So my way of thinking about it is that pipes are a connection between programs while redirection always goes to (or from) a file.
So, for example, in order to find all my session routes I would connect the [...]]]></description>
			<content:encoded><![CDATA[<p>Pipes and Redirection</p>
<p>These are standard shell tools, but sometimes I get confused about which one I need. So my way of thinking about it is that pipes are a connection between programs while redirection always goes to (or from) a file.</p>
<p>So, for example, in order to find all my session routes I would connect the rake and grep commands via a pipe:</p>
<pre code="bash">
  rake routes | grep session
</pre>
<p>On the other hand, I would use redirection to save the output of a git diff to a file so as to be able to feed it in to the patch program (which expects its input on standard in).</p>
<pre code="bash">
  git diff > patchfile
  patch < patchfile
</pre>
<p>Braces</p>
<p>I just learned about these recently and they make renaming things so much easier!</p>
<pre code="bash">
  mv file.old file.new # old way
  mv file.{old,new} # does the same thing!
</pre>
<p>So creating your database.yml file from the example one is as easy as:</p>
<pre code="bash">
  mv config/database.yml{.example,}
</pre>
<p>Changing Directories</p>
<p>I assume everyone already knows that cd with arguments goes to your home directory (the contents of the $HOME environment variable), but did you know you can do 'cd -' to go to the previous directory you were in ($OLDPWD)?</p>
<pre code="bash">
  :/var/www$ cd /etc/apache2/sites-enabled/
  :/etc/apache2/sites-enabled$ cd -
  /var/www
  :/var/www$
</pre>
<p>History</p>
<p>!! # execute the previous command (great for when you forget to sudo something)<br />
!$ # The last argument of the previous command<br />
!^ # The first argument<br />
!* # All the previous arguments<br />
^old^new^ # Repeat the previous command replacing old for new</p>
<p>And lots, lots more! See 'man history' for details.</p>
<p>Keyboard shortcuts</p>
<p>Here are a few of the keyboard shortcuts that I use regularly (copied from the wikipedia article http://en.wikipedia.org/wiki/Bash):</p>
<p>CTRL + l : clears the screen content (equivalent to the command : clear).<br />
CTRL + u : clears the line content before the cursor and copy it in the clipboard.<br />
CTRL + k : clears thctrl alt copy pastee line content after the cursor and copy it in the clipboard.<br />
CTRL + w : clears the word before the cursor and copy it in the clipboard.<br />
CTRL + y : (yank) adds the clipboard content from the cursor position.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mokisystems.com/blog/a-few-handy-things-to-know-about-bash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

