<?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>electromute</title>
	<atom:link href="http://www.electromute.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.electromute.com</link>
	<description>musings from a girl coder</description>
	<lastBuildDate>Wed, 10 Oct 2012 16:04:02 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>2009 Master&#8217;s Track National Championships Recap</title>
		<link>http://www.electromute.com/posts/2009/10/2009-masters-track-national-championships-recap/</link>
		<comments>http://www.electromute.com/posts/2009/10/2009-masters-track-national-championships-recap/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 16:34:26 +0000</pubDate>
		<dc:creator>electromute</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.electromute.com/?p=96</guid>
		<description><![CDATA[One thing about being a Master&#8217;s racer is that for the most part, racing is just a small part of your life. You hardly get a chance to reflect as your life and daily responsibilities don&#8217;t stop, even for National Champions. I pulled this Facebook post from Nick, my coach at BIC, who I convinced [...]]]></description>
				<content:encoded><![CDATA[<p>One thing about being a Master&#8217;s racer is that for the most part, racing is just a small part of your life. You hardly get a chance to reflect as your life and daily responsibilities don&#8217;t stop, even for National Champions.</p>
<p>I pulled this Facebook post from Nick, my coach at <a href="http://www.boulderindoorcycling.com" target="_blank">BIC</a>, who I convinced last minute to do the Individual Pursuit. I registered him the night before and he drove up that morning. Here&#8217;s what he posted after he got home that day:</p>
<p><img src="http://www.electromute.com/wp-content/uploads/NickTraggis.gif" alt="Nick Traggis Facebook Status" title="Nick Traggis Facebook Status" width="500" height="94" class="aligncenter size-full wp-image-99" /></p>
<p>I also fell right back into my routine after Nationals and barely got a rough draft of this post in when it&#8217;s been almost 2 months! Well, finally, here is a recap of my unexpectedly amazing Master&#8217;s Nationals experience!</p>
<p>The first race was the individual pursuit on Wednesday 8/19/2009. I was in one of the last heats of the morning so I had a lot of time to get ready, prep and honestly, the main goal was to keep from getting too hot and to keep hydrated while warming up on the hot infield. I pulled a personal best time (mostly because I can&#8217;t remember my times from 1992*) of 2:39.7, which earned me the silver medal. </p>
<div id="attachment_103" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.electromute.com/wp-content/uploads/IMG_9600.JPG"><img src="http://www.electromute.com/wp-content/uploads/IMG_9600-300x200.jpg" alt="Individual Pursuit" title="Individual Pursuit" width="300" height="200" class="size-medium wp-image-103" /></a><p class="wp-caption-text">Individual Pursuit</p></div>
<p>I missed the gold by .25 seconds to <a href="http://vcsparky.blogspot.com/" target="_blank">Renee Eastman</a>, not too shabby. That girl is fast (and little like me!)</p>
<div id="attachment_108" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.electromute.com/wp-content/uploads/IMG_9642.JPG"><img src="http://www.electromute.com/wp-content/uploads/IMG_9642-300x200.jpg" alt="Silver Medal" title="Individual  Pursuit Podium" width="300" height="200" class="size-medium wp-image-108" /></a><p class="wp-caption-text">Silver Medal</p></div>
<p>Thursday the 20th were the Match Sprints, an event I did not participate in as a junior back in the early 1990s. So, I was out here just to have fun. I felt a little under-geared in the 200 meter TT, but pulled out the 3rd fastest time at 12.6 seconds, so far my fasted recorded time. Here I am about to dive down and kill it:</p>
<div id="attachment_104" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.electromute.com/wp-content/uploads/200MeterTT.jpg"><img src="http://www.electromute.com/wp-content/uploads/200MeterTT-300x183.jpg" alt="Getting ready to dive!" title="200M TT" width="300" height="183" class="size-medium wp-image-104" /></a><p class="wp-caption-text">Getting ready to dive!</p></div>
<p>The match sprints are some of the toughest events on the track. Especially when the competitors are evenly matched. I could no longer rely on just my leg speed and talent, I had to use tactics and I was outsmarted by more experienced riders. I was proud to get 4th, especially since sprinters and pursuit riders often stay away from competing in each other&#8217;s events. Here&#8217;s I am, barely winning one of the rounds in the semis:</p>
<div id="attachment_105" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.electromute.com/wp-content/uploads/ingrid_alongi_matchsprints.jpg"><img src="http://www.electromute.com/wp-content/uploads/ingrid_alongi_matchsprints-300x186.jpg" alt="Just baaaarely!" title="barely winning this one" width="300" height="186" class="size-medium wp-image-105" /></a><p class="wp-caption-text">Just baaaarely!</p></div>
<p>Another thing that is difficult about match sprints is that they last all day. So, you spend the day trying to stay warm, yet rested and hydrated. Fatigue is definitely an issue if you&#8217;re out on the infield all day preparing to sprint. Then, dealing with recovering mentally when you lose a sprint can also be tough. I did have a great time. Here I am on the podium. As you can see, match sprinters are tall:</p>
<div id="attachment_106" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.electromute.com/wp-content/uploads/masters_08_20_2009_e_121.jpg"><img src="http://www.electromute.com/wp-content/uploads/masters_08_20_2009_e_121-300x199.jpg" alt="Some fine lady sprinters here" title="Match Sprints Podium" width="300" height="199" class="size-medium wp-image-106" /></a><p class="wp-caption-text">Some fine lady sprinters here</p></div>
<p>The Women&#8217;s 35-39 points race was originally scheduled for Saturday morning, but got moved to Friday night to be combined with the Women 30-34 riders. Thus, I didn&#8217;t get the rest day I was hoping for after the grueling day of Match Sprints. I barely hung on the entire race and didn&#8217;t take any points. I made it in at 9th in the end. Here I am at the top of the track:</p>
<div id="attachment_113" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.electromute.com/wp-content/uploads/masters_08_21_2009_e_78.jpg"><img src="http://www.electromute.com/wp-content/uploads/masters_08_21_2009_e_78-300x199.jpg" alt="Man, I was hurtin..." title="Points Race" width="300" height="199" class="size-medium wp-image-113" /></a><p class="wp-caption-text">Man, I was hurtin...</p></div>
<p>Finally had a rest day on Saturday, and ate the best <a href="http://brightkite.com/objects/f61304868f5611de9b04003048c10834" target="_blank">recovery meal</a> at Cherry Cricket in Denver. The plan was to drive back to Colorado Springs on Sunday morning for the team events, but I got the call that my dad had broken his collarbone in the points race Saturday night&#8211;he was at the bottom of a major pileup just as he had bridged back up to the main field. So, a quick bit of packing and hotel reservation away and we were back in the Springs for a late night. Here&#8217;s my dad doing his first pursuit:</p>
<div id="attachment_118" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.electromute.com/wp-content/uploads/emanuel_pursuit1.jpg"><img src="http://www.electromute.com/wp-content/uploads/emanuel_pursuit1-300x300.jpg" alt="My dad is cute!" title="Emanuel Alongi pursuit" width="300" height="300" class="size-medium wp-image-118" /></a><p class="wp-caption-text">My dad is cute!</p></div>
<p>The next morning, I had 2 final events, Team Sprint and Team Pursuit. Without much practice, Carol Kauder and I did the Team Sprint together. In the team sprint, each rider does one full lap. With just 2 riders, you&#8217;ve got a total of 2 laps as fast as possible. It&#8217;s crazy how close to Carol I thought I was in this picture, just after the start (she lead the first lap) but in reality I&#8217;m pretty far off her wheel. I bridged the gap, but a bit more practice will make us a tighter unit for next year:</p>
<div id="attachment_121" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.electromute.com/wp-content/uploads/masters_08_23_2009__-68.jpg"><img src="http://www.electromute.com/wp-content/uploads/masters_08_23_2009__-68-300x199.jpg" alt="Carol Kauder leading the first lap of the race." title="Team Sprint" width="300" height="199" class="size-medium wp-image-121" /></a><p class="wp-caption-text">Carol Kauder leading the first lap of the race.</p></div>
<p>Finally, I was asked to be on a Team Pursuit team with Renee Eastman and Kate Gracheck last minute. Thanks to Amy Creed for giving up her spot for me. We didn&#8217;t get a chance to practice much, but with Renee and I having the two fastest Individual Pursuit times of the competition and our prior experience with Team Pursuit (albeit mine being 17 years old) we knew we&#8217;d have a great time riding together. It was a total surprise that we won!</p>
<div id="attachment_124" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.electromute.com/wp-content/uploads/masters_08_23_2009__-177.jpg"><img src="http://www.electromute.com/wp-content/uploads/masters_08_23_2009__-177-300x199.jpg" alt="Renee Eastman, Ingrid Alongi, Kate Gracheck" title="Team Pursuit" width="300" height="199" class="size-medium wp-image-124" /></a><p class="wp-caption-text">Renee Eastman, Ingrid Alongi, Kate Gracheck</p></div>
<p>Finally! A National Championship jersey of my very own! And, we set the National Record for Team Pursuit!</p>
<div id="attachment_125" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.electromute.com/wp-content/uploads/IMG_0744.JPG"><img src="http://www.electromute.com/wp-content/uploads/IMG_0744-300x225.jpg" alt="finally! Gold!" title="Team Pursuit Podium" width="300" height="225" class="size-medium wp-image-125" /></a><p class="wp-caption-text">finally! Gold!</p></div>
<p>(On a side note, I had some silver medals from Nationals as a junior, but never won a jersey. And, I was on the first junior women&#8217;s team pursuit team to set the national record in 1992, but as it was not an official event, we didn&#8217;t get jerseys. We did get our names in the record books though! The junior women&#8217;s record has since been broken.)</p>
<p>So, of course I had a lot of amazing supporters during this somewhat tumultuous year. Maybe someday I&#8217;ll write about all that, but for now, a generous thank you to (and I&#8217;m sure I forgot a ton of folks..)</p>
<p><a href="http://www.facebook.com/profile.php?id=1423182560" target="_blank">Andy Carlson</a> for taking time off work during Nationals to be my loving and supporting right hand man. Not to mention his expert Team Pursuit advice (he&#8217;s a former Junior World Team Pursuiter)</p>
<p><a href="http://twitter.com/iSven9000" target="_blank">Steven Herzfeld</a> for being an awesome face for BIC and letting me borrow his fast wheels. They made all the difference.</p>
<p><a href="http://www.facebook.com/profile.php?id=1519741719" target="_blank">Nick Traggis</a> for being my unpretentious coach at BIC. I say unpretentous because I spent most of the year wearing a t-shirt and struggling to get back into shape.</p>
<p><a href="http://twitter.com/emanuelalongi" target="_blank">Emanuel Alongi</a>, my dad, for trying out the track and doing Nationals with me!</p>
<p><a href="http://twitter.com/panachecycle" target="_blank">Don Powell</a> at <a href="http://www.panachecyclewear.com/" target="_blank">Panache Cyclewear</a> for letting me adopt his company as my unofficial team. Heck, I just wanted to look good! The results were icing on the cake.</p>
<p><a href="http://one.valeski.org/" target="_blank">Jud Valeski</a> for being a stellar friend and supporter.</p>
<p><a href="http://twitter.com/chrisech" target="_blank">Chris Echelemeier</a> for bugging me to get back on the track last winter, even when I kept saying no or postponing a million times.</p>
<p><a href="http://www.carihiggins.blogspot.com/" target="_blank">Cari Higgins</a> for being really encouraging and a wonderful pro rider to look up to.</p>
<p><a href="http://www.tiemeyercycles.com/" target="_blank">David Tiemeyer</a> for making some comment about I should consider setting a Master&#8217;s record even though I was fat and out of shape in February when I went to get fit for my bike. Glad he saw something that I did not.</p>
<p><a href="http://twitter.com/robjohnson" target="_blank">Rob Johnson</a> for texting me on January 2nd to make sure I had signed up for the Triple Bypass, even though I was out of shape, discouraged and didn&#8217;t want to do it.</p>
<p><a href="http://twitter.com/ekoneil" target="_blank">Eddie O&#8217;Neil</a> for being a really fun training partner and coworker.</p>
<p><a href="">Carol Kauder</a> for getting started on the track racing in February. We make a good team!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electromute.com/posts/2009/10/2009-masters-track-national-championships-recap/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Master&#8217;s Track National Championships</title>
		<link>http://www.electromute.com/posts/2009/08/masters-track-national-championships/</link>
		<comments>http://www.electromute.com/posts/2009/08/masters-track-national-championships/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 14:36:55 +0000</pubDate>
		<dc:creator>electromute</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.electromute.com/?p=90</guid>
		<description><![CDATA[Starting this week, I will be competing in Master&#8217;s Track National Championships at the 7-11 Olympic Velodrome in Colorado Springs. For those not familiar, Master&#8217;s categories are age grouped starting at 30 years and older. I&#8217;ll be competing in the women&#8217;s 35-39 group. I never intended to race again, let alone compete in a nationals [...]]]></description>
				<content:encoded><![CDATA[<p>Starting this week, I will be competing in Master&#8217;s Track National Championships at the <a href="http://www.coloradousac.org/track/" target="_blank">7-11 Olympic Velodrome in Colorado Springs</a>. For those not familiar, Master&#8217;s categories are age grouped starting at 30 years and older. I&#8217;ll be competing in the women&#8217;s 35-39 group.</p>
<div id="attachment_91" class="wp-caption aligncenter" style="width: 310px"><img src="http://www.electromute.com/wp-content/uploads/img_0700-300x225.jpg" alt="Practicing pursuit" title="img_0700" width="300" height="225" class="size-medium wp-image-91" /><p class="wp-caption-text">Practicing with the pursuit bars</p></div>
<p>I never intended to race again, let alone compete in a nationals event. I was a former US National Cycling Team member when I was young and gave up the sport in 1993. In those days it was very difficult to make a living as woman cyclist and they didn&#8217;t even yet have a pro category for women yet. Not to mention the amount of time involved to properly train to that caliber. I opted for the college/grad school/work route instead.</p>
<p>After moving back to Boulder a few years ago to work at <a href="http://www.oneriot.com" target="_blank">OneRiot</a> (formerly Me.dium), I started to get interested in my bike again. My <a href="http://www.electromute.com/posts/2008/06/5-reasons-why-cycling-is-the-best-sport-evar/">very first blog post</a> was inspired by one of those first rides I did last summer. Then, they opened the <a href="http://www.boulderindoorcycling.com" target="_blank">indoor velodrome in Boulder</a> this winter and I got a chance to ride the fixed gear again, which is great for folks that work during the day as you can ride it at night and in the cold winter weather.</p>
<p>Competing again after 15 years has been an interesting experience for me. There&#8217;s the excitement, the goals, the pressure, the bad days. All of the emotional aspects of preparing for a race are completely different from just simply riding and being in shape, and all the memories, insecurities, and self identity based on results stuff from when I was competing before have come out of the woodwork. But, during this year, I&#8217;ve been able to redefine my relationship with cycling and competition.</p>
<p>This redefinition has been the most fun and eye opening experience out of all of this, and I feel lucky that I&#8217;ve gotten a chance to revisit something I love and remember why I love it. So, of course I want to do well this week, but I also know that it doesn&#8217;t matter. I&#8217;ve already gotten what I need.</p>
<p>Here&#8217;s my schedule:</p>
<p>Wednesday, August 19th, 9:00am: 2k TT (pursuit)<br />
Thursday, August 20th, all day: Match Sprints<br />
Saturday, August 22, 9:00am: Points Race<br />
Sunday, August 23, 9:00am: Team Sprint (with Carol Kauder)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electromute.com/posts/2009/08/masters-track-national-championships/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My bike is nicer than my car, part 1</title>
		<link>http://www.electromute.com/posts/2009/04/my-bike-is-nicer-than-my-car-part-1/</link>
		<comments>http://www.electromute.com/posts/2009/04/my-bike-is-nicer-than-my-car-part-1/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 23:45:09 +0000</pubDate>
		<dc:creator>electromute</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.electromute.com/?p=74</guid>
		<description><![CDATA[I was going to race the Omnium today at Boulder Indoor Cycling, and in my usual fashion of being slightly late, I don&#8217;t leave much time for errors, like forgetting my pedals. Being that it&#8217;s a bit of a gloomy day, I decided to take the opportunity to do something I haven&#8217;t done in a [...]]]></description>
				<content:encoded><![CDATA[<p>I was going to race the Omnium today at <a href="http://www.boulderindoorcycling.com" target="_blank">Boulder Indoor Cycling</a>, and in my usual fashion of being slightly late, I don&#8217;t leave much time for errors, like forgetting my pedals. Being that it&#8217;s a bit of a gloomy day, I decided to take the opportunity to do something I haven&#8217;t done in a while&#8211;blog&#8211;and what better subject than the <a href="http://www.electromute.com/posts/2008/06/5-reasons-why-cycling-is-the-best-sport-evar/">reason I got into blogging</a>, cycling!</p>
<p>But soon, I won&#8217;t have to worry about forgetting the pedals because they&#8217;ll be permanently attached to my bike. BIC rents <a href="http://www.fujibikes.com/Specialty/Track/TrackComp.aspx" target="_blank">Fujis</a> and <a href="http://www.rideblue.com/tr250.php" target="_blank">Blues</a>, which are fabulous to ride, but having one of my own will be even more fabulous!</p>
<p><a href="http://www.tiemeyercycles.com/" target="_blank">David Tiemeyer</a> ran a special for BIC members this winter on a custom track frame, so I decided to go for it. David has a rich background in building aerodynamic frames for some of the best cyclists in the world. He worked on the US National team frames with GT in the early 90&#8242;s, then went on to design the frames used in the Atlanta, Sydney and Athens Olympic games.</p>
<p>I went in for a custom fitting in February at his studio in Estes Park. As an engineer, I was truly impressed with the level of technology he employed for the fitting, which included measuring my heart rate and work output to decide what angles gave me the best advantage. After a few hours in his studio and a number of design revisions based on fork choices, etc, he came up with this:</p>
<p><img src="http://www.electromute.com/wp-content/uploads/alongi-mass-start-rev-0325091.jpg" alt="Tiemeyer Track Frame Geometry" title="Tiemeyer Track Frame Geometry" width="599" height="551" class="alignnone size-full wp-image-78" /></p>
<p>Once the design was agreed upon, David set out to do the actual welding. He let me know that he spends most of his time on design, while a smaller fraction on actual welding. This frame is made of aluminum with titanium drop outs. The fork is pre-built carbon (I&#8217;ll be getting the <a href="http://www.treefortbikes.com/111_333222350651__JetStream-Oval-track-fork-700c-x-1-1-8.html" target="_blank">JetStream Oval fork</a> rather than the one shown below).</p>
<p><img src="http://www.electromute.com/wp-content/uploads/alongi-track-unpainted-rear-view1.jpg" alt="Tiemeyer track frame unpainted" title="Tiemeyer track frame unpainted" width="500" height="375" class="aligncenter size-full wp-image-81" /></p>
<p>Now the bike is off to the paint shop, <a href="http://spectrumpowderworks.com/" target="_blank">Spectrum Powder Works</a> in Colorado Springs, to be exact, where they&#8217;ll give it a nice powder coat. Picking the color was the hardest part of the process and if I had a bigger budget, I would have done a few more fancy details. The nice thing is that I can always get this repainted in the future. For now, I&#8217;m going with the Red/Orange:</p>
<p><img src="http://www.electromute.com/wp-content/uploads/mybikecolor.png" alt="track frame color" title="track frame color" width="354" height="86" class="aligncenter size-full wp-image-85" /></p>
<p>Stay tuned for part 2, when I show the actual built bike and maybe I can talk someone into taking some photos of me actually racing it. I would really love to have an all black long-sleeved skinsuit with the <a href="http://www.gnip.com">Gnip</a> logo on the back (hint, hint!)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electromute.com/posts/2009/04/my-bike-is-nicer-than-my-car-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Ignite Boulder Presentation</title>
		<link>http://www.electromute.com/posts/2009/03/ignite-boulder-recap/</link>
		<comments>http://www.electromute.com/posts/2009/03/ignite-boulder-recap/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 19:58:56 +0000</pubDate>
		<dc:creator>electromute</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ignite]]></category>

		<guid isPermaLink="false">http://www.electromute.com/?p=70</guid>
		<description><![CDATA[I got a chance to speak at the February edition of Ignite Boulder. It was a hoot! The video is now on YouTube The slideshow is here:]]></description>
				<content:encoded><![CDATA[<p>I got a chance to speak at the February edition of <a href="http://igniteboulder.com" target="_blank">Ignite Boulder</a>. It was a hoot!</p>
<p>The video is now on YouTube</p>
<p><object width="480" height="295"><param name="movie" value="http://www.youtube.com/v/FWZ2iy8yk5Y&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/FWZ2iy8yk5Y&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"></embed></object></p>
<p>The slideshow is here:</p>
<p><iframe src='http://docs.google.com/EmbedSlideshow?docid=ddwh2pw2_1f2bm5tgg' frameborder='0' width='410' height='342'></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.electromute.com/posts/2009/03/ignite-boulder-recap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVN+SSH setup on MediaTemple DV Hosting</title>
		<link>http://www.electromute.com/posts/2008/12/svnssh-setup-on-mediatemple-dv-hosting/</link>
		<comments>http://www.electromute.com/posts/2008/12/svnssh-setup-on-mediatemple-dv-hosting/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 21:46:35 +0000</pubDate>
		<dc:creator>electromute</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[server admin]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.electromute.com/?p=61</guid>
		<description><![CDATA[A few months ago, I wrote a post about installing svnserve on DV hosting at Media Temple. It was a great quick solution to get started, but I really wanted to get to svn via ssh instead for the long term. Rather than scour the Internet for how to do this (I&#8217;ve done it a [...]]]></description>
				<content:encoded><![CDATA[<p>A few months ago, I wrote a post about <a href="http://www.electromute.com/posts/2008/06/simple-svn-setup-on-mediatemple-dv-hosting/">installing svnserve on DV hosting at Media Temple</a>. It was a great quick solution to get started, but I really wanted to get to svn via ssh instead for the long term.</p>
<p>Rather than scour the Internet for how to do this (I&#8217;ve done it a few times in my career, but I&#8217;m no sysadmin), I sat down for lunch one day with <a href="http://www.quickleft.com/">Collin</a>, who used to be a mighty fine sysadmin! Saved me hours of time, hopefully this will help some of you all too.</p>
<p>Keep in mind that you&#8217;ll have to check out your files from scratch, so you&#8217;ll want to make sure all of your current changes are checked in (or otherwise managed) before you get started on this project.</p>
<p>Log into your server. I have <a href="http://kb.mediatemple.net/questions/713/Disabling+SSH+Login+for+root+user" target="_blank">root access from ssh disabled</a>, and you may want to consider doing this as well.</p>
<div class="sample">
% su &#8211; root<br />
% adduser joe<br />
% passwd joe
</div>
<p>I use the su &#8211; username notation to be sure the console session is refreshed. Now add a new group called svn that members will be a part of</p>
<div class="sample">
% groupadd svn
</div>
<p>Because we&#8217;re on CentOS, there are certain permissions that make the owner only having default permissions of the file, so we&#8217;ll have to deal with that here as well so that we can avoid permissions issues when users commit their changes to SVN.</p>
<div class="sample">
% usermod -G svn joe
</div>
<p>Take a look to verify, in the group file, that your user is added to the correct group:</p>
<div class="sample">
% view /etc/group
</div>
<p>You also want to verify that svn is the secondary group by doing this:</p>
<div class="sample">
% su &#8211; joe<br />
% id
</div>
<p>You should see something like this:</p>
<div class="sample">
uid=10004(joe) gid=10005(joe) groups=10004(svn),10005(joe)
</div>
<p>Now you&#8217;ll set up the ssh keys. We&#8217;ll set up dummy keys for now because we&#8217;re going to copy the public key from our local computer, not the other way around. Make sure you are still acting as the new user.</p>
<div class="sample">
% cd /home/joe<br />
% mkdir .ssh<br />
% cd .ssh<br />
% ssh-keygen -t rsa
</div>
<p>when it prompts you for a filename, enter id_rsa<br />
when it prompts you for a password, hit enter, leave it blank, we won&#8217;t be using these keys.</p>
<p>Now, go back to you local computer and generate the keys again as described above, but this time use a password. If you already have keys, you&#8217;ll just need to copy them to the server.</p>
<p>From your local computer, do a secure copy. My keys happen to be named identity. Also note that I am renaming the keys to authorized_keys2 for this CentOS environment.</p>
<div class="sample">
% scp identity.pub joe@servername.com:/home/joe/.ssh/authorized_keys2
</div>
<p>Double check that the user can now log in properly without any trouble. Now to go back and change the permissions on the repository</p>
<div class="sample">
% su &#8211; root<br />
% cd /var/svn<br />
% ls -la
</div>
<p>You&#8217;ll want to make sure your repository has a group owner of svn and a user owner of someone in that group. Make sure you&#8217;re running as root here, and it never hurts to refresh the console using the dash notation.</p>
<div class="sample">
% chgrp -R svn reponame/<br />
% chown -R joe reponame/<br />
% chmod -R 775 reponame/
</div>
<p>Since the owner can read/write but the group can only read/view on the CentOS, we need to change the default umask for the user to avoid collisions:</p>
<div class="sample">
% su &#8211; joe<br />
% vi .profile
</div>
<p>In the .profile file, add the following:</p>
<div class="sample">
add umask 002
</div>
<p>then reload the environment again by doing:</p>
<div class="sample">
% su &#8211; joe
</div>
<p>Now we need to make joe&#8217;s default group SVN:</p>
<div class="sample">
% su &#8211; root<br />
% usermod -g svn joe
</div>
<p>Now refresh enviro</p>
<div class="sample">
% su &#8211; joe<br />
% id
</div>
<p>You should see something similar to the following&#8211;notice the default group is svn now:</p>
<div class="sample">
uid=10004(joe) gid=10004(svn) groups=10004(svn)
</div>
<p>Now, if you&#8217;d previously been using svnserv, you&#8217;ll want to turn it off. Let&#8217;s start by viewing the running processes on the server:</p>
<div class="sample">
% su &#8211; root<br />
% ps aux
</div>
<p>I had more than one instance running, so I ended up doing the following (do at your own risk)</p>
<div class="sample">
% killall -9 svnserv
</div>
<p>Double check that you can then check out, change and commit files. If you can&#8217;t, there is likely a permissions issue. Also double check that you can&#8217;t access the repository with plan svn://. If so, you may have not properly terminated svnserve. You will also want to clean up for yourself by making sure that you&#8217;ve removed any information from the passwd and svnserv.conf files in the /var/svn/reponame folder.</p>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electromute.com/posts/2008/12/svnssh-setup-on-mediatemple-dv-hosting/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Recursion in PHP</title>
		<link>http://www.electromute.com/posts/2008/12/recursion-in-php/</link>
		<comments>http://www.electromute.com/posts/2008/12/recursion-in-php/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 21:21:34 +0000</pubDate>
		<dc:creator>electromute</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[recursion]]></category>

		<guid isPermaLink="false">http://www.electromute.com/?p=54</guid>
		<description><![CDATA[Well, I&#8217;ve been a bad blogger lately, lots of awesome stuff going in in the world of Ingrid. I&#8217;m now working at Gnip. I&#8217;ve gotten the chance to do some really cool stuff there, having a great time for sure! In any case, here&#8217;s a little snippet of something I wrote. In Computer Science, recursion [...]]]></description>
				<content:encoded><![CDATA[<p>Well, I&#8217;ve been a bad blogger lately, lots of awesome stuff going in in the world of Ingrid. I&#8217;m now working at <a href="http://www.gnipcentral.com">Gnip</a>. I&#8217;ve gotten the chance to do some really cool stuff there, having a great time for sure!</p>
<p>In any case, here&#8217;s a little snippet of something I wrote. In Computer Science, recursion is a major conceptual hurdle to get through. Once you master it in school, you sadly may or may not ever see it again. Well, I was fortunate enough to need the beauty of recursion recently.</p>
<p>Say you are trying to calculate the date of the first Sunday in September of 2008. You know that the first day of September is September 1st. The following recursive function in PHP will take the parameters and return the day part of the date. For instance, </p>
<div class="sample">
// find the first Sunday in September of 2008<br />
 // Note that the day of the week in PHP for Sunday is 0.</p>
<p> echo addDay(&#8220;9&#8243;, &#8220;1&#8243;, &#8220;2008&#8243;, &#8220;0&#8243;);
</p></div>
<p>This will return 7; the first Sunday in September of 2008 is, indeed, September 7, 2008. Here is the function:</p>
<div class="sample">
	function addDay($m, $d, $y, $dbase){<br />
		&nbsp;&nbsp; $tmpDate = mktime(0, 0, 0, $m, $d, $y);<br />
		&nbsp;&nbsp; if (date(&#8220;w&#8221;, $tmpDate) != $dbase){<br />
			&nbsp;&nbsp;&nbsp;&nbsp; return addDay($m, $d + 1, $y, $dbase);<br />
		&nbsp;&nbsp; } else {<br />
			&nbsp;&nbsp;&nbsp;&nbsp; return $d;<br />
		&nbsp;&nbsp; }<br />
	}
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.electromute.com/posts/2008/12/recursion-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using ListView in Wicket</title>
		<link>http://www.electromute.com/posts/2008/10/using-listview-in-wicket/</link>
		<comments>http://www.electromute.com/posts/2008/10/using-listview-in-wicket/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 17:31:26 +0000</pubDate>
		<dc:creator>electromute</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[wicket]]></category>

		<guid isPermaLink="false">http://www.electromute.com/?p=42</guid>
		<description><![CDATA[I&#8217;ve been spending a lot of time on Wicket lately for some exciting things that will be coming soon from Me.dium.  One cool trick I started using the ListView. If you&#8217;ve come from PHP or any other web language, you know the drill&#8211; display query data from the database on a web page. Here&#8217;s a [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been spending a lot of time on Wicket lately for some exciting things that will be coming soon from Me.dium.  One cool trick I started using the ListView. If you&#8217;ve come from PHP or any other web language, you know the drill&#8211; display query data from the database on a web page.</p>
<p>Here&#8217;s a simple implementation of the ListView to help you get started. I&#8217;m going to take a list of employees and output them to the screen. This tutorial assumes you know the basics of how Wicket works. This is the portion where we&#8217;re adding components to the display piece.</p>
<p><strong>EmployeesPage.java</strong></p>
<div class="sample">
(&#8230;)<br />
List<User> employees = new ArrayList<User>();<br />
//Now I&#8217;ll grab the output of the query and populate the ArrayList<br />
try {<br />
&nbsp;&nbsp;employees = service.getAllEmployees();<br />
}<br />
catch (ServiceException e) {<br />
&nbsp;&nbsp;//write your handler here<br />
}</p>
<p>//Now I&#8217;ll populate the ListView with the query results<br />
add(new ListView(&#8220;employeesRptr&#8221;, employees) {<br />
&nbsp;&nbsp;private static final long serialVersionUID = 1L;</p>
<p>&nbsp;&nbsp;@Override<br />
&nbsp;&nbsp;protected void populateItem(ListItem item) {<br />
&nbsp;&nbsp;&nbsp;User employee = (User) item.getModelObject();</p>
<p>&nbsp;&nbsp;&nbsp;// image display<br />
&nbsp;&nbsp;&nbsp;item.add(new StaticImage(&#8220;profilePic&#8221;, new Model(employee.getPicture())));</p>
<p>&nbsp;&nbsp;&nbsp;// name display<br />
&nbsp;&nbsp;&nbsp;StringBuilder name = new StringBuilder();<br />
&nbsp;&nbsp;&nbsp;name.append(employee.getFirstName());<br />
&nbsp;&nbsp;&nbsp;name.append(&#8221; &#8220;);<br />
&nbsp;&nbsp;&nbsp;name.append(employee.getLastName());<br />
&nbsp;&nbsp;&nbsp;item.add(new Label(&#8220;profileName&#8221;, name.toString()));</p>
<p>&nbsp;&nbsp;&nbsp;// location display<br />
&nbsp;&nbsp;&nbsp;item.add(new Label(&#8220;profileLocation&#8221;, employee.getLocation()));<br />
&nbsp;&nbsp;}<br />
});</p>
</div>
<p>Now for the display:</p>
<p><strong>EmployeesPage.html</strong></p>
<div class="sample">
<p>&lt;span wicket:id=&#8221;employeesRptr&#8221;&gt;</p>
<p>&lt;img wicket:id=&#8221;profilePic&#8221; border=&#8221;0&#8243; /&gt;<br />
&lt;p class=&#8221;name&#8221; wicket:id=&#8221;profileName&#8221;&gt;Joe Schmo&lt;/p&gt;<br />
&lt;p class=&#8221;location&#8221; wicket:id=&#8221;profileLocation&#8221;&gt;location&lt;/p&gt;</p>
<p>&lt;/span&gt;</p>
</div>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electromute.com/posts/2008/10/using-listview-in-wicket/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why did I move to Boulder?</title>
		<link>http://www.electromute.com/posts/2008/10/why-did-i-move-to-boulder/</link>
		<comments>http://www.electromute.com/posts/2008/10/why-did-i-move-to-boulder/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 04:11:28 +0000</pubDate>
		<dc:creator>electromute</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[boulder]]></category>
		<category><![CDATA[boulder.me]]></category>
		<category><![CDATA[ponderings]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://www.electromute.com/?p=31</guid>
		<description><![CDATA[Alright now, I&#8217;m not a job hopper. Moving to a new job is a risky endeavor for me. I invest a lot of my SELF into my job. And I&#8217;m old school. I&#8217;m loyal. I believe in toughing it out to the end. I believe in taking a hit for the team. Perhaps that is [...]]]></description>
				<content:encoded><![CDATA[<p>Alright now, I&#8217;m not a job hopper. Moving to a new job is a risky endeavor for me. I invest a lot of my SELF into my job. And I&#8217;m old school. I&#8217;m loyal. I believe in toughing it out to the end. I believe in taking a hit for the team.</p>
<p>Perhaps that is a dumb attitude in this day and age, and perhaps my loyalties have kept me from some great opportunities (but I&#8217;ll never change that about myself), but one thing I&#8217;ve learned through my career is that sometimes pushing yourself out of your comfort zone is the best way to grow.</p>
<p>Comfort zone was what I was in at my last job in San Diego. I was Director of Technology at <a href="http://www.reddoor.biz">Red Door Interactive</a>. I had the best team of developers there. They worked together selflessly. They endured the constant interruption and emergencies that is the nature of agency work with style and grace. Great chemistry. Love that team.</p>
<p style="text-align:center"><img src="http://farm2.static.flickr.com/1414/1315263863_663e876860.jpg?v=0" /><br />
Kari and Jeff during a bbq at Mission Bay</p>
<p style="text-align:center"><img src="http://farm1.static.flickr.com/121/285341061_837e9e5339.jpg?v=0" /><br />
Halloween costumes: Kari as Air Force Pilot, Omed as Charlie Chaplin, me as Mud Run Victim, Ronel as Japanese Tourist</p>
<p>So, why did I leave? Well, for one, being so busy, I longed for a place where I could go on a hike in the mountains before work without having to drive 30 minutes to get to and from the trail (and then 30 minutes to and from work). That&#8217;s already 2 hours of driving time, which means I have to get up pretty damn early to fit it all in. Not going to happen. Not while working &#8220;agency hours&#8221;.</p>
<p style="text-align:center"><img src="http://farm4.static.flickr.com/3017/2559497591_68e599a195.jpg?v=0" /><br />
Me at the Teva Mountain Games in Vail</p>
<p>I also wanted more of a technical challenge. As I had transitioned to managing people more than writing code and as I saw the ability to be innovative pulled away by the need for projects to come in under budget (again, just the nature of agency work), I knew I could not last.</p>
<p>As scary and uncomfortable as it was, moving to Boulder has so far been an amazing experience. I feel so lucky to have the opportunities I&#8217;ve had, met the people I&#8217;ve met. I have some amazing possibilities on the horizon and I could not be happier with what I am working on.</p>
<p>So, what about you? What do you really want to be doing in your life? How can you get there? Push yourself&#8230;see where it can take you! One more day to apply to <a href="http://boulder.me">http://boulder.me</a> doooo itttttt&#8230;.!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electromute.com/posts/2008/10/why-did-i-move-to-boulder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Help in Isolation: How I Finished my First WordPress Plugin</title>
		<link>http://www.electromute.com/posts/2008/09/help-in-isolation-how-i-finished-my-first-wordpress-plugin/</link>
		<comments>http://www.electromute.com/posts/2008/09/help-in-isolation-how-i-finished-my-first-wordpress-plugin/#comments</comments>
		<pubDate>Fri, 12 Sep 2008 22:20:56 +0000</pubDate>
		<dc:creator>electromute</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[me.dium]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ponderings]]></category>
		<category><![CDATA[wordpress plugin development]]></category>

		<guid isPermaLink="false">http://www.electromute.com/?p=19</guid>
		<description><![CDATA[Or &#8220;How I finished my first WordPress plugin without being a total n00b&#8221; One common issue when you are working with a new technology or api for the first time is figuring out the best practices and snags. Sure, once you have been writing code for over 10 years, you can pretty much hang in [...]]]></description>
				<content:encoded><![CDATA[<p>Or &#8220;How I finished my first WordPress plugin without being a total n00b&#8221;</p>
<p>One common issue when you are working with a new technology or api for the first time is figuring out the best practices and snags. Sure, once you have been writing code for over 10 years, you can pretty much hang in any language. However, it doesn&#8217;t mean what you are going to write is any good. The biggest problem is that engineers tend to re-invent the wheel. My friend Tobias and I were having a conversation about this when he mentioned this book &#8220;<a href="http://www.dreamingincode.com/">Dreaming in Code</a>&#8221; which illustrates this issue very well.</p>
<p>I recently wrote my first WordPress plugin for Me.dium. It&#8217;s not released in the wild yet, but I have it here on my blog (on the right, under the MyBlogLog widget). I pull in an RSS feed of <a href="http://me.dium.com/search">Me.dium&#8217;s hot search terms</a>. The feed is cached in order to reduce load on Me.dium&#8217;s servers. You can also configure the number of terms to show as well as whether or not to show the descriptions. The plugin itself is very simple, but the value I got was in the process of writing it.</p>
<p>So, how did I write a solid PHP plugin in a room full of Java Engineers who may not even know what WordPress is? I decided to work as collaboratively as possible, even in isolation. I tried to keep to my motto&#8211;If you have to force it or it&#8217;s too hard, you are doing something wrong. </p>
<p>First I set out to ask some experts. I sent an email out to some WordPress hot shots asking how to approach certain problems from a strategic perspective. How is it best to store settings? What level of configuration is too much to ask for users?</p>
<p>Not everyone answered my email, but <a href="http://alexking.org">Alex King</a> did. He saved me hours of research work by letting me know about the settings table (duh!). </p>
<p>I went on a hike with some buddies, including Alex from <a href="http://www.gnipcentral.com">Gnip</a> who helped me consider the best time to parse and store my xml. My tunnel vision was so focused on storing the data that I couldn&#8217;t see that there was a better way to store it. My original plan for storage seems completely absurd now&#8211;what was I thinking? More hours of work saved with a simple conversation.</p>
<p>I also posed my question on seesmic:</p>
<p><center><br />
<span style="display:none;"><span>WordPress Plugin developers out there</span><span></span></span><span style="padding:0px; margin:0px; display:block"><object width="435" height="355"><param name="movie" value="http://seesmic.com/embeds/wrapper.swf"/><param name="bgcolor" value="#666666"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="flashVars" value="video=Fb99tAct9B&amp;version=threadedplayer"/><embed src="http://seesmic.com/embeds/wrapper.swf" type="application/x-shockwave-flash" flashVars="video=Fb99tAct9B&amp;version=threadedplayer" allowFullScreen="true" bgcolor="#666666" allowScriptAccess="always" width="435" height="355"></embed></object></span><span style="display:block; width:435px; margin:0px; padding:0px;background:url(http://seesmic.com/images/seesmichtml.gif) left top repeat-x"><a href="http://seesmic.com" target="_blank"><img width="100%" height="29" style="border:none" src="http://seesmic.com/images/spacer.gif" border="0" /></a></span><br />
</center></p>
<p>Anyway, the point is I had a ton of fun and the process ended up being quite collaborative, even though I was working somewhat in isolation. I am happy to write a more technical blog post as per my usual, but wanted to share this higher level thought process.</p>
<p>ps. Special thanks to Jud for pointing out that there was NOT a for loop bug in my Windows PHP install, but that I was missing a $ in the middle comparator. SRSLY!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electromute.com/posts/2008/09/help-in-isolation-how-i-finished-my-first-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using helpers in CodeIgniter</title>
		<link>http://www.electromute.com/posts/2008/08/using-helpers-in-codeigniter/</link>
		<comments>http://www.electromute.com/posts/2008/08/using-helpers-in-codeigniter/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 02:28:34 +0000</pubDate>
		<dc:creator>electromute</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[reference]]></category>

		<guid isPermaLink="false">http://www.electromute.com/?p=17</guid>
		<description><![CDATA[I&#8217;ve been using CodeIgniter now for a new project I&#8217;m working on called Giftola. CodeIgniter is an MVC framework for PHP. I like CodeIgniter because it&#8217;s very lightweight, yet it offers some pre-built functionality to deal with some of the tedium (like form validation) of web development. I&#8217;ve used other PHP frameworks in the past, [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://codeigniter.com/" target="_blank">CodeIgniter</a> now for a new project I&#8217;m working on called <a href="http://www.giftola.com">Giftola</a>. CodeIgniter is an <a href="http://en.wikipedia.org/wiki/Model-view-controller" target="_blank">MVC</a> framework for PHP. I like CodeIgniter because it&#8217;s very lightweight, yet it offers some pre-built functionality to deal with some of the tedium (like form validation) of web development.</p>
<p>I&#8217;ve used other PHP frameworks in the past, and I find the way CI organizes files to be very intuitive and things are easy to find.</p>
<p>One problem with using frameworks is that often developers don&#8217;t actually utilize all of the features of the framework, often reinventing the wheel. In this post, I&#8217;m going to go over a very simple, but useful feature of CI, helpers.</p>
<p>Helpers are functions that are stored in a central location in the CI framework, and then utilized anywhere in the application. I&#8217;m going to demonstrate a simple helper I wrote called timestamp. Timestamp formats a date time string for SQL insertion. This helper allows me to ensure consistency across my entire application.</p>
<p>Here&#8217;s how they work.</p>
<p>CI has its own helper functions, which are located in:</p>
<div class="sample">/system/helpers</div>
<p>You can add your own helper functions to the following location:</p>
<div class="sample">/system/application/helpers</div>
<p>Your file must be named in the form: helpername_helper.php. In my case, I&#8217;m going to create a file called:</p>
<div class="sample">timestamp_helper.php</div>
<p>where I&#8217;ll write a very simple function:</p>
<div class="sample">&lt;?php<br />
if ( ! defined(&#8216;BASEPATH&#8217;)) exit(&#8216;No direct script access allowed&#8217;);</p>
<p>function timestamp(){<br />
return date(&#8220;Y-m-d H:i:s&#8221;);<br />
}<br />
?&gt;</p>
</div>
<p>I use this function most often in my Models, so I&#8217;ll load it up here. In this case, I have an event model, where I&#8217;ll use the helper quite a bit. So, I&#8217;ll load it in the constructor.</p>
<div class="sample">&lt;?php<br />
class Event_model extends Model {</p>
<p>function Event_model()<br />
{<br />
parent::Model();<br />
$this-&gt;load-&gt;helper(&#8216;timestamp&#8217;);<br />
}</p>
<p>}</p>
<p>?&gt;</p>
</div>
<p>Finally, when I want to grab a timestamp, I simply call the function:</p>
<div class="sample">$data = timestamp();</div>
<p>A pretty simple example, but hopefully it will get you thinking on how to consolidate functionality that you use often into the helpers structure.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.electromute.com/posts/2008/08/using-helpers-in-codeigniter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
