<?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>kmahan.com &#187; Programming</title>
	<atom:link href="http://kmahan.com/blog/category/main/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://kmahan.com/blog</link>
	<description>A blog about what I find interesting.</description>
	<lastBuildDate>Thu, 08 Jul 2010 02:12:10 +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>New Plugin for Rails: ArEncrypt</title>
		<link>http://kmahan.com/blog/2010/01/20/new-plugin-for-rails-arencrypt/</link>
		<comments>http://kmahan.com/blog/2010/01/20/new-plugin-for-rails-arencrypt/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 00:15:25 +0000</pubDate>
		<dc:creator>Kelly</dc:creator>
				<category><![CDATA[Main]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://kmahan.com/blog/?p=966</guid>
		<description><![CDATA[I added a new plugin to my repository on github today.
http://github.com/KellyMahan/ArEncrypt
I just kept running into this same issue every time I needed password encryption. And I didn&#8217;t know of any other plugins that accomplished the same thing with such simplicity.
Just install the plugin and in your active record class
encrypt :encrypted_attribute_name
It&#8217;s just that simple. On every ]]></description>
			<content:encoded><![CDATA[<p>I added a new plugin to my repository on github today.</p>
<p><a href="http://github.com/KellyMahan/ArEncrypt" target="_blank">http://github.com/KellyMahan/ArEncrypt</a></p>
<p>I just kept running into this same issue every time I needed password encryption. And I didn&#8217;t know of any other plugins that accomplished the same thing with such simplicity.</p>
<p>Just install the plugin and in your active record class</p>
<p>encrypt :encrypted_attribute_name</p>
<p>It&#8217;s just that simple. On every before save the attribute you named will be encrypted. If the value isn&#8217;t changed before a save the the encryption is skipped.</p>
]]></content:encoded>
			<wfw:commentRss>http://kmahan.com/blog/2010/01/20/new-plugin-for-rails-arencrypt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Doing some Android development.</title>
		<link>http://kmahan.com/blog/2009/11/22/doing-some-android-development/</link>
		<comments>http://kmahan.com/blog/2009/11/22/doing-some-android-development/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 18:47:44 +0000</pubDate>
		<dc:creator>Kelly</dc:creator>
				<category><![CDATA[Main]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://kmahan.com/blog/2009/11/22/doing-some-android-development/</guid>
		<description><![CDATA[I picked up the wrox book on android development from Amazon. Don&#8217;t really like Java, but I love the android phones. Give me some ideas on a good app to develope.
]]></description>
			<content:encoded><![CDATA[<p>I picked up the wrox book on android development from Amazon. Don&#8217;t really like Java, but I love the android phones. Give me some ideas on a good app to develope.</p>
]]></content:encoded>
			<wfw:commentRss>http://kmahan.com/blog/2009/11/22/doing-some-android-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;ve got some google wave invites.</title>
		<link>http://kmahan.com/blog/2009/10/14/ive-got-some-google-wave-invites/</link>
		<comments>http://kmahan.com/blog/2009/10/14/ive-got-some-google-wave-invites/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 13:51:02 +0000</pubDate>
		<dc:creator>Kelly</dc:creator>
				<category><![CDATA[Main]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://kmahan.com/blog/?p=762</guid>
		<description><![CDATA[First few people to register and post a comment about how you know about my blog gets it.
Upadate: Ok making it more difficult now, You must have me as a contact in at least 2 other sources. Twitter, Facebook, IM, RL(Real Life) etc..
]]></description>
			<content:encoded><![CDATA[<p>First few people to register and post a comment about how you know about my blog gets it.</p>
<p>Upadate: Ok making it more difficult now, You must have me as a contact in at least 2 other sources. Twitter, Facebook, IM, RL(Real Life) etc..</p>
]]></content:encoded>
			<wfw:commentRss>http://kmahan.com/blog/2009/10/14/ive-got-some-google-wave-invites/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Some new changes to memcachedb_q</title>
		<link>http://kmahan.com/blog/2009/07/21/some-new-changes-to-memcachedb_q/</link>
		<comments>http://kmahan.com/blog/2009/07/21/some-new-changes-to-memcachedb_q/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 14:49:18 +0000</pubDate>
		<dc:creator>Kelly</dc:creator>
				<category><![CDATA[Main]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://kmahan.com/blog/?p=683</guid>
		<description><![CDATA[I added some new functionality to the memcachedb_q plugin to allow for repeatable calls.
q = MemcachedbQ.new(:email)
q.add_runner(:mail, :get_emails, :repeats=&#62;30, :repeat_name=&#62;&#8221;email&#8221;)
This repeats the Mail.get_emails call every 30 seconds. Using the repeat name makes sure that there is only 1 repeating call with the same name. The repeats work by adding a new item to the queue with ]]></description>
			<content:encoded><![CDATA[<p>I added some new functionality to the <a href="https://github.com/KellyMahan/memcachedb_q/tree" target="_blank">memcachedb_q</a> plugin to allow for repeatable calls.</p>
<p>q = MemcachedbQ.new(:email)<br />
q.add_runner(:mail, :get_emails, :repeats=&gt;30, :repeat_name=&gt;&#8221;email&#8221;)</p>
<p>This repeats the Mail.get_emails call every 30 seconds. Using the repeat name makes sure that there is only 1 repeating call with the same name. The repeats work by adding a new item to the queue with a future run date just before the existing one fires off and is removed. The future date is based on the :run_time value plus the repeat value in seconds. If a run_time value is not provided the first repeat sets it&#8217;s on run_time value based off Time.now.</p>
<p>Also if you add a runner with a run time date in the past, it will only add a runner in the future for the next time it would have matched :run_time + repeat*x. That way if the scheduler ever dies or is shut down, it won&#8217;t have a huge list of runners to go through before it catches up to real time.</p>
]]></content:encoded>
			<wfw:commentRss>http://kmahan.com/blog/2009/07/21/some-new-changes-to-memcachedb_q/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>De-forking a github project.</title>
		<link>http://kmahan.com/blog/2009/07/15/de-forking-a-github-project/</link>
		<comments>http://kmahan.com/blog/2009/07/15/de-forking-a-github-project/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 14:49:10 +0000</pubDate>
		<dc:creator>Kelly</dc:creator>
				<category><![CDATA[Main]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://kmahan.com/blog/?p=678</guid>
		<description><![CDATA[Yesterday I decided to de-fork my memcachedb-client library from the memcache-client project. The directions that they needed to go were getting too far apart to continue to incorporate changes. It turns out github doesn&#8217;t have a way to defork a project. But it still is an easy process.
First thing to do is make sure you ]]></description>
			<content:encoded><![CDATA[<p>Yesterday I decided to de-fork my <a href="http://github.com/KellyMahan/memcachedb-client/tree/master" target="_blank">memcachedb-client</a> library from the <a href="http://github.com/mperham/memcache-client/tree/master" target="_blank">memcache-client</a> project. The directions that they needed to go were getting too far apart to continue to incorporate changes. It turns out <a href="http://github.com" target="_blank">github</a> doesn&#8217;t have a way to defork a project. But it still is an easy process.</p>
<p>First thing to do is make sure you have the latest pull from your fork. Then log into github and rename your project. I just add -old to the end. Next create a new project with the original name and then copy the permissions from the old repository if there are any. Do a standard push from your source ( there was no need for me to change anything before hand ) and your repository is now fork free.</p>
<p>It seems like it would be very easy for github to accomplish this on their end, so I&#8217;m not sure why they don&#8217;t do this. I bet using the github api a gem could be made that would do this for you, that is if someone wanted to spend the time to do this *hint*.</p>
]]></content:encoded>
			<wfw:commentRss>http://kmahan.com/blog/2009/07/15/de-forking-a-github-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shampoo.com Launched Today</title>
		<link>http://kmahan.com/blog/2009/06/30/shampoo-com-launched-today/</link>
		<comments>http://kmahan.com/blog/2009/06/30/shampoo-com-launched-today/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 20:41:50 +0000</pubDate>
		<dc:creator>Kelly</dc:creator>
				<category><![CDATA[Main]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Websites]]></category>

		<guid isPermaLink="false">http://kmahan.com/blog/?p=652</guid>
		<description><![CDATA[Today we launched shampoo.com
I mostly worked on the back end of things, including a lot of plugin work that we used. It&#8217;s been a challenging and fun project to work on.
And if you are looking for some specialized shampoo or other hair styling products then shampoo.com is the place to go.
]]></description>
			<content:encoded><![CDATA[<div id="attachment_654" class="wp-caption alignleft" style="width: 190px"><a href="http://shampoo.com"><img class="size-full wp-image-654 " title="shampoo" src="http://kmahan.com/blog/wp-content/uploads/2009/06/shampoo1.jpg" alt="Shampoo.com" width="180" height="134" /></a><p class="wp-caption-text">Shampoo.com</p></div>
<p>Today we launched <a href="http://shampoo.com" target="_blank">shampoo.com</a></p>
<p>I mostly worked on the back end of things, including a lot of <a href="http://github.com/KellyMahan" target="_blank">plugin</a> work that we used. It&#8217;s been a challenging and fun project to work on.</p>
<p>And if you are looking for some specialized shampoo or other hair styling products then <a href="http://shampoo.com/" target="_blank">shampoo.com</a> is the place to go.</p>
]]></content:encoded>
			<wfw:commentRss>http://kmahan.com/blog/2009/06/30/shampoo-com-launched-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live feed from WordCamp Dallas</title>
		<link>http://kmahan.com/blog/2009/06/27/live-feed-from-wordcamp-dallas/</link>
		<comments>http://kmahan.com/blog/2009/06/27/live-feed-from-wordcamp-dallas/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 17:18:41 +0000</pubDate>
		<dc:creator>Kelly</dc:creator>
				<category><![CDATA[Main]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Live Feed]]></category>
		<category><![CDATA[WordCamp]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://kmahan.com/blog/?p=629</guid>
		<description><![CDATA[The live streams are over but you can still watch what went on below.

]]></description>
			<content:encoded><![CDATA[<p>The live streams are over but you can still watch what went on below.<br />
<object id="utv_o_133531" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="320" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="wmode" value="transparent" /><param name="flashvars" value="viewcount=true&amp;autoplay=false&amp;brand=embed&amp;" /><param name="src" value="http://www.ustream.tv/flash/live/1/43455" /><param name="name" value="utv_e_807312" /><param name="allowfullscreen" value="true" /><embed id="utv_o_133531" type="application/x-shockwave-flash" width="400" height="320" src="http://www.ustream.tv/flash/live/1/43455" name="utv_e_807312" flashvars="viewcount=true&amp;autoplay=false&amp;brand=embed&amp;" wmode="transparent" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://kmahan.com/blog/2009/06/27/live-feed-from-wordcamp-dallas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some ruby coding.</title>
		<link>http://kmahan.com/blog/2009/06/26/some-ruby-coding/</link>
		<comments>http://kmahan.com/blog/2009/06/26/some-ruby-coding/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 16:53:39 +0000</pubDate>
		<dc:creator>Kelly</dc:creator>
				<category><![CDATA[Main]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://kmahan.com/blog/?p=621</guid>
		<description><![CDATA[
 photo credit: Berberich
When I started working for Digimedia we decided that a lot of our projects were going to be done in rails. I had never used ruby at that point and rails and frameworks in general were just starting to gain popularity. So I was a bit skeptical about the benifits of learning ]]></description>
			<content:encoded><![CDATA[<div class="cc_image"><a title="Ruby and Rails" href="http://www.flickr.com/photos/17567960@N00/113150026/" target="_blank"><img src="http://farm1.static.flickr.com/51/113150026_c4f04a488f_m.jpg" border="0" alt="Ruby and Rails" /></a><br />
<small><a title="Attribution-NonCommercial-ShareAlike License" href="http://creativecommons.org/licenses/by-nc-sa/2.0/" target="_blank"><img src="http://kmahan.com/blog/wp-content/plugins/photo-dropper/images/cc.png" border="0" alt="Creative Commons License" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a title="Berberich" href="http://www.flickr.com/photos/17567960@N00/113150026/" target="_blank">Berberich</a></small></div>
<p>When I started working for Digimedia we decided that a lot of our projects were going to be done in rails. I had never used ruby at that point and rails and frameworks in general were just starting to gain popularity. So I was a bit skeptical about the benifits of learning a new language all over again. At that point the majority of web coding was done in php or asp and I had many years of experience in both.</p>
<p>Well I&#8217;m glad that I did learn ruby and the rails framework. Things that would take a while coding in php and asp, I could knock out in minutes in rails. Not only that but I really do prefer the syntax of ruby now. I still use php for a lot of simple things, but if it will need a database, rails is where I look first.</p>
<p>I&#8217;ve even gotten as far as writing some of my own <a href="http://github.com/KellyMahan" target="_blank">plugins</a>, and forking some others to add more functionality. The open source environment with ruby is outstanding.</p>
]]></content:encoded>
			<wfw:commentRss>http://kmahan.com/blog/2009/06/26/some-ruby-coding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
