<?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>Technomadic</title>
	<atom:link href="http://blog.technomadic.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.technomadic.org</link>
	<description>Absent-minded musings.</description>
	<lastBuildDate>Thu, 25 Feb 2010 14:10:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Our Moosilauke Adventure</title>
		<link>http://blog.technomadic.org/?p=147</link>
		<comments>http://blog.technomadic.org/?p=147#comments</comments>
		<pubDate>Thu, 25 Feb 2010 14:10:07 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[Outdoors]]></category>
		<category><![CDATA[backcountry skiing]]></category>
		<category><![CDATA[backcountry]]></category>
		<category><![CDATA[ski]]></category>
		<category><![CDATA[White Mountains]]></category>

		<guid isPermaLink="false">http://blog.technomadic.org/?p=147</guid>
		<description><![CDATA[I’ve been looking for a way to do more with my GPS data, but most of the software for this stuff isn’t exactly impressive. Today I came across a post on StraightChuter.com that used Trimble Outdoors. It seemed like the closest to what I was looking for. So here is my latest ski tour trip [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been looking for a way to do more with my GPS data, but most of the software for this stuff isn’t exactly impressive. Today I came across <a href="http://straightchuter.com/2010/01/pink-pine-ski-tour-topo-guide/">a post on StraightChuter.com</a> that used Trimble Outdoors. It seemed like the closest to what I was looking for. So here is my latest ski tour trip report, by way of Trimble.</p>

<iframe frameborder='0' scrolling='no' style='width:420px; height:400px;' src='http://www.trimbleoutdoors.com/Maps/EmbeddedMap.aspx?tripId=628412&#038;w=420&#038;h=400'>This site does not support embedded trip maps. View the trip <a href='http://www.trimbleoutdoors.com/ViewTrip/628412'>here</a> instead.</iframe>

<p>This past Saturday was our first ski tour of the year. Crappy weather (IE, lack of snow) combined with not being near mountains has made it easy to not follow through on anything this year. So late Friday night we decided we had to go, even if there was no snow, we had to drive to the base of a mountain with the intent to ski. Just to break the pattern.</p>

<p><a href="http://www.flickr.com/photos/sellout42/4387456022/" title="working the ascent by sellout42, on Flickr"><img src="http://farm5.static.flickr.com/4045/4387456022_b966127ea0_m.jpg" width="240" height="160" alt="working the ascent" style="float: right; padding: 1em;" /></a></p>

<p>The downside of this was our packing and planning was accomplished during commercials in NBC’s Olympics coverage. This meant I had too many down jackets (at least they’re light), nothing to cover my face, and not really paid much attention to the route.</p>

<p>We planned to hit Mount Moosilauke in the White Mountains of New Hampshire. The 5.3 mile climb of 2,720 feet seemed like a nice grade, and an easy downhill run. So how did it become a 7.7 mile climb with an extra 500 feet? One wrong turn.</p>

<p>Now, I knew I was making a wrong turn when it happened – or at least strongly suspected it. But I wasn&#8217;t too concerned, because there were plenty of ski tracks around, and the signs said “to summit”, so how wrong could it be?</p>

<p>Rather than taking our intended route from [Ridge Lodge] direct to the [summit] and back down, we made a wrong turn (because the other direction had no tracks), following all the other skiers. At a [river crossing] we checked the map and verified the mistake, but figured “hey, lots of others have gone this way and our guidebook is 11 years old – this might be the better bet” so we continued on. At the [Al Merrill branch], we realized that all the tracks we had been following were headed for the Al Merrill Loop. The loop (which I haven’t been on) is supposed to be a nice tour, with easy skiing that goes from the [Al Merrill branch] back to the [Ridge Lodge]. But while we didn’t want to push ourselves too hard, we also didn’t want to cut our skiing in half. So we decided to continue on to the [summit], breaking trail through a foot or more of snow, between the [Al Merrill branch] and the [Beaver Brook trail merge]. The trail-breaking was fun, but it slowed us down. And the additional milage and climbing were not part of our original schedule. We didn’t hit the [summit] until almost 17:00. Which meant we had about an hour until it was too dark to see anything.</p>

<p><a href="http://www.flickr.com/photos/sellout42/4387456030/" title="Greg @ the summit by sellout42, on Flickr"><img src="http://farm5.static.flickr.com/4025/4387456030_2ae738652b_m.jpg" width="240" height="239" alt="Greg @ the summit" style="float: left; padding: 1em;" /></a></p>

<p>Before we got to the summit, we passed a hiker who said the conditions weren’t too bad, “you can see cairn to cairn”. Yeah, it was a bit overcast, but cairn to cairn? I would have guessed the visibility was better than that. It wasn’t. It was slightly worse, even. Soon after we passed treeline, Diana got knocked over by the wind – apparently at ~30 MPH, but gusty. Thankfully we were more visible to each other than the rime-covered cairns were to us. I’d have to lead ahead a bit before I could see the next cairn. I kept Diana about one cairn back so I had a retreat point in case I didn’t spot the next one. Of course, once actually getting to the [summit], we had to stop for pictures. No amount of wind-blown snow building up on our clothes is going to stop that part of the trip. Leaving the summit for the Gorge Brook trail was more of the same, and we were excited when we hit the trees and the trail was right there in front of us. Now we just had to get down.</p>

<p>Here’s another bit of the poor planning. My memory of the guide book said that the ski trail was about 15 feet wide – great for making turns and getting down comfortably. But no, that was for the Moosilauke Carriage Road trail, the trail we decided not to take because snowmobiles are allowed on it for most of the length, and we didn’t want to deal with that. The Gorge Brook trail was narrow. A quote from the guidebook that I must have skimmed over the first time: “You turn where the trail turns, relishing surprises around each bend.” Yeah, I’d say that’s an accurate description – wish I had read it beforehand.</p>

<p>Even without having read it, had we followed our original plan we would have been aware of it, since we would have been climbing our eventual descent. But we made it down in one piece, and without splashing into the brook at any of the many opportunities. Well, most of the way down. Before we finished the run, it had gotten too dark to really ski safely. So we took off our skis and booted down the last section.</p>

<p><a href="http://www.flickr.com/photos/sellout42/4387456020/" title="amazing scenery by sellout42, on Flickr"><img src="http://farm3.static.flickr.com/2734/4387456020_0a61f4d335_m.jpg" width="240" height="160" alt="amazing scenery" style="float: right; padding: 1em;" /></a></p>

<p>When we got to main junction of half a dozen trails at the bottom, we needed the headlamp to read the signs. Unfortunately, none of the signs mentioned the [Ridge Lodge]. We deduced the direction of the lodge (or so we hoped), by checking its direction on the map against the direction of the various trails that were labeled. When we saw the sign labeled “PARKING →” we were encouraged, but it wasn’t until we met with the scene of our original wrong turn that we really felt relieved. Of course, we still had almost two miles to go, but we were certain of what that distance held.</p>

<p>We stopped to skin up again for the final push. For me, this is where the exhaustion set in. If I kept up a rhythm, I was ok. It was stopping to grab a snack, or to keep from getting too far ahead of Diana that my legs felt like they would give out. But the end was in sight – just had to keep pushing until the car was in view.</p>

<p>Back at the car, we were pretty excited. There were some harrowing bits, but we came through it and did a decent job with our hardest tour ever, despite my complete planning failure. And got just enough “this could be bad” hints to make sure I don’t slack off on it again.</p>

<p>I had made hot chocolate in the morning, and it waited for us in the car, still hot 12+ hours after I made it. We didn’t even stop for our traditional Tilt’n Diner dinner on the way home, because we were already late for the Olympics. We made it in time to see Lindsey Vonn take home bronze in the Super-G though, so the day wasn’t a total waste.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technomadic.org/?feed=rss2&amp;p=147</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Performance Anxiety and Competition</title>
		<link>http://blog.technomadic.org/?p=140</link>
		<comments>http://blog.technomadic.org/?p=140#comments</comments>
		<pubDate>Sun, 13 Dec 2009 23:32:18 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[Climbing]]></category>

		<guid isPermaLink="false">http://blog.technomadic.org/?p=140</guid>
		<description><![CDATA[[Ed: too many words and not enough pictures in this post. I’ll try to improve that in future.]

Yesterday I competed in the Dark Horse Bouldering Series at MetroRock. This was my first climbing competition ever, and really my first competition of any kind in many years (unless you count job interviews).

After the disaster that was [...]]]></description>
			<content:encoded><![CDATA[<p>[Ed: too many words and not enough pictures in this post. I’ll try to improve that in future.]</p>

<p>Yesterday I competed in the <a href="http://www.darkhorseseries.com/">Dark Horse Bouldering Series</a> at <a href="http://metrorock.com/">MetroRock</a>. This was my first climbing competition ever, and really my first competition of any kind in many years (unless you count job interviews).</p>

<p>After the disaster that was the solo performance requirement during my brief stint as a music composition major in college, I really worked to avoid anything that involved people watching me. Co-workers at Amazon may recall shaky, stuttering presentations – even when the only audience was my own team, who were friends I spent all my time with.</p>

<p>I’m not sure where my performance anxiety started, but I remember when I was a high school intern where my Dad worked, I would watch him give talks in front of hundreds of people. He seemed so relaxed and confident and capable up there. I was waiting for the point when <em>I</em> would be like that. I wondered when the transition would happen, when I would suddenly no longer be nervous to have people paying attention to me. Of course, the magic transition never happened, and at some point it became apparent that I might have to actually work to overcome my insecurities. Well, that didn’t sound very appealing, so I avoided anything that involved attention being placed on me. Sometimes I’d use my performance anxiety as an excuse to try to get someone else to take over (this didn’t usually work, as it turns out not many people are actually <em>enthusiastic</em> about public speaking).</p>

<p>My panic about these things usually starts weeks in advance. I think I managed to avoid some of the panic build-up in this case since I really only considered doing the bouldering comp about a week before it started, when – flush from <a href="http://blog.technomadic.org/?p=133">my recent NaNoWriMo success</a> – I blogged that I was going to do it. Now, blogging about something you’re working on will have one of two effects. If it’s something vague with no timeline, <a href="http://sivers.org/zipit">your brain will equate the talking about it with the doing of it</a>, and you won’t do it. If it’s something short-term and well-defined, the people you tell will ask you about it and the motivation to not have to say “I gave up,” will push you through.</p>

<p>I’ve tried to take both angles on this in various parts of my life. I have big open-ended projects, and I’ve started to be more close-mouthed about them – not through any attempt at secrecy, but just to avoid sabotaging myself. And I’ve become more public about things like NaNoWriMo and the bouldering comp, which I would have kept to myself previously, so I wouldn’t be too embarrassed if I fell short. The next step is to come up with more definite small steps within the open-ended projects, so I can be public about those steps in order to be motivated to complete them.</p>

<p>In both NaNoWriMo and the bouldering comp, there were various points at which I would have given up had I not told anyone of my plans. With the bouldering comp, I even avoided registering until I showed up at the gym in the morning – convinced I would find some excuse not to compete by then. It was only through the <a href="http://twitter.com/shahafabileah/status/5955615123">support</a> and <a href="http://twitter.com/peterseibel/status/6164015230">encouragement</a> of people I told that I managed to stay in the game.</p>

<p>The bouldering competition didn’t exactly have a ton of public performance (at least not the part I did – the <a href="http://climbing.about.com/od/dictionaryofclimbing/a/DynoDef.htm">dyno</a> comp and pro competitors are another story), but for each problem you climbed, you needed to get two other competitors to sign off that you completed it. So you not only needed to make sure a couple people were watching, but afterward have to ask them, “did you see me climb that?” without seeming self-congratulatory about climbing one of the easiest problems in the gym. That was kind of hard for me. Thankfully, everyone there was super-nice, and after my first three sends my anxiety about the whole thing was more-or-less gone (although it was more and more difficult to not sound self-congratulatory as I started climbing harder routes).</p>

<p>The way the competition works is like this: there are about 70 problems, each has a point value (from 25 to 1160) that relates to its difficulty (for the climbers out there, divide by 100 to get the Vermin grade – so from V0 to V11). You get unlimited attempts on each problem, and your 5 hardest problems get added up for your total score. There are some common strategies – since you only need five sends in the four hour competition, that’s one every 48 minutes, so take your time and work the problems (taking a few falls) so you can pull out some hard sends by the end. Some people really follow this, and head into the last thirty minutes with only four sends on their scorecard. I, on the other hand, had fifteen by that point. <a href="http://www.flickr.com/photos/83092023@N00/4182365621" title="View 'Dark Horse Series scorecard' on Flickr.com"><img border="0" width="240" align="left" alt="Dark Horse Series scorecard" src="http://farm3.static.flickr.com/2763/4182365621_b94c513ea0_m.jpg" height="180"/></a> That is not bragging – it’s the result of not having any idea how I was going to perform. While I’ve been climbing a ton, I hadn’t been on a bouldering wall in four months and there’s definitely a different skill set than with roped climbing. So I started with the easy problems, and quickly realized I had underestimated what I should be climbing. I pushed a bit harder, and then a bit harder – it took a while to figure out exactly where my limit was. In the end I had 1910 points with three V3s and two V4s under my belt. All of my final five routes were harder than any bouldering problem I’d done before the competition – apparently roped climbing translates pretty well.</p>

<p>I was ecstatic for the rest of the event. I had far exceeded my expected score of ~700, averaging hard V3 rather than middling V1 – pushing past the performance anxiety that almost prevented me from entering in the first place. I was so excited, it was hard for me to sit still as we watched the dyno comp (I have no idea how some of those moves are possible) and pro finals (MetroRock’s own <a href="http://www.neropes.com/CommTeams.aspx?mid=4&#038;id=38">Francesca Metcalf</a> kicked ass in the women’s final) – thankfully the free pizza and beer helped to quell my overflowing energy. The whole comp was a blast, and it was great to finally talk to a bunch of people whose faces were familiar to me from the gym.</p>

<p>Here’s hoping I’ve started to take some steps toward overcoming the debilitating fear I feel whenever people are watching me do something. I may never have to perform gymnastics with a crowd screaming at me as Francesca does, but hopefully some day I’ll be able to make it through a presentation without hoping that everyone is just staring at my slides while I hide behind the podium. In the meantime, I’m planning to enter MetroRock’s next competition on February 27. And now that I have some sense of my bouldering level, I can start working to bolster it – maybe even set a goal, like: I will climb a V5 at the February comp. Yeah, that sounds good. Let’s go with that.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technomadic.org/?feed=rss2&amp;p=140</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NaNoWriMo and Effort over Talent</title>
		<link>http://blog.technomadic.org/?p=133</link>
		<comments>http://blog.technomadic.org/?p=133#comments</comments>
		<pubDate>Thu, 03 Dec 2009 05:15:42 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://blog.technomadic.org/?p=133</guid>
		<description><![CDATA[I spent November writing a novel. Not a good novel, mind you, but I sat and pounded out fifty thousand words over thirty days. The experience has been somewhat transformative for me. In the same month, I climbed my first 5.12a (considered by some to be the point when you can really be called a [...]]]></description>
			<content:encoded><![CDATA[<p>I spent November writing a novel. Not a good novel, mind you, but I sat and pounded out fifty thousand words over thirty days. The experience has been somewhat transformative for me. In the same month, I climbed my first 5.12a (considered by some to be the point when you can really be called a “climber”) and ran my first 10k (I think a new personal distance record). I received a ton of support from various people and it all makes me feel a bit less cynical about what’s achievable if you just keep putting in an effort.</p>

<p>I feel a bit more like diving into things that I might have avoided previously. It’s important for me to keep this momentum, rather than thinking “I’ll just take a month to relax after all that writing, <em>then</em> try something else.” To get this off on the right foot, I’m going to do a bouldering competition (this particular move is partially inspired by <a href="http://www.anadventuregrrl.com/2009/11/xcv.html">Adventuregrrl’s recent blog post</a>). Next Saturday my local gym is hosting a <a href="http://darkhorseseries.com/">Dark Horse Series</a> comp, so I’ll sign up for that. I’m not sure what division I’d be in – maybe “recreational” – but it doesn’t matter, I’ll just try to climb, and it’ll help me fight my performance anxiety as well.</p>

<p>I’m going to link to the draft of my novel, but not before adding a disclaimer: This is a first draft. It’s an <em>unfinished</em> first draft. There are plot holes, discontinuities, poorly developed characters, loose ends, and premises that don&#8217;t hold up to scrutiny. I consider it rather embarrassing, but part of doing something is not burying it afterward. I plan to continue working on it, but other than maybe taking part in <a href="http://nanoedmo.net/">NaNoEdMo</a>, I don’t have any real schedule.</p>

<p>I&#8217;ve put this off long enough, so … here’s <a href="http://blog.technomadic.org/wp-content/uploads/2009/12/Counting-the-Countless.pdf"><em>Counting the Countless</em></a>. I came up with the title on October 30, and ran from there.</p>

<p>[<strong>Update</strong>: In response to (completely valid) criticism, I’ve changed the font to Georgia.]</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technomadic.org/?feed=rss2&amp;p=133</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Riding to Cure MS</title>
		<link>http://blog.technomadic.org/?p=125</link>
		<comments>http://blog.technomadic.org/?p=125#comments</comments>
		<pubDate>Thu, 18 Sep 2008 12:33:24 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[Outdoors]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://blog.technomadic.org/?p=125</guid>
		<description><![CDATA[In a few weeks (Oct. 5), I will once again be riding in the MS Bike Tour in New York. I\&#8217;ll be riding 60 miles through Manhattan with Diana, my dad, and my brothers. The goal is for 5,000 riders to raise $3 million (that\&#8217;s an average of $600 per rider) to fund research and [...]]]></description>
			<content:encoded><![CDATA[<p>In a few weeks (Oct. 5), I will once again be riding in the MS Bike Tour in New York. I\&#8217;ll be riding 60 miles through Manhattan with Diana, my dad, and my brothers. The goal is for 5,000 riders to raise $3 million (that\&#8217;s an average of $600 per rider) to fund research and services to treat people who have MS. Please help us reach this goal by donating at <a href="http://msnyc.kintera.org/bikems/gregpfeil">my page</a>. Visit <a href="http://www.nationalmssociety.org/">The National MS Society</a> to find out more.</p>

<p>Thanks for your support.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technomadic.org/?feed=rss2&amp;p=125</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Frustrated with Climbing Ratings</title>
		<link>http://blog.technomadic.org/?p=124</link>
		<comments>http://blog.technomadic.org/?p=124#comments</comments>
		<pubDate>Mon, 23 Jun 2008 14:21:16 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[Climbing]]></category>

		<guid isPermaLink="false">http://blog.technomadic.org/?p=124</guid>
		<description><![CDATA[So, as everyone says, it\&#8217;s hard to transpose ratings from one climbing area to another. I\&#8217;m working on a solution to that, but in the meantime I figured it\&#8217;d be good to jot down some relative weightings. There aren\&#8217;t too many places I\&#8217;ve climbed regularly, but here\&#8217;s a simple chart to compare them. If you [...]]]></description>
			<content:encoded><![CDATA[<p>So, as everyone says, it\&#8217;s hard to transpose ratings from one climbing area to another. I\&#8217;m working on a solution to that, but in the meantime I figured it\&#8217;d be good to jot down some relative weightings. There aren\&#8217;t too many places I\&#8217;ve climbed regularly, but here\&#8217;s a simple chart to compare them. If you have climbed at one of these and have additional gyms to add to the comparison, please let me know.</p>

<table style=\"text-align: center;\">
  <tr>
    <th>Metrorock</th><th>Vertical Word</th><th>Planet Granite</th>
  </tr><tr>
    <th>Everett, MA</th><th>Seattle, WA</th><th>Sunnyvale, CA</th>
  </tr><tr>
    <td>0</td><td>+3</td><td>+2</td>
  </tr>
</table>

<p>All ratings are relative to the hardest rated gym. EG, if the hardest rated gym (which has rating \&#8221;0\&#8221;) rates a route a 5.7, a gym rated \&#8221;+2\&#8221; would likely call that same route a 5.9. Likewise, a 5.10b at the hardest gym would probably be a 5.10c at a gym rated \&#8221;+1\&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technomadic.org/?feed=rss2&amp;p=124</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>In case you thought Lisp was dead &#8230;</title>
		<link>http://blog.technomadic.org/?p=122</link>
		<comments>http://blog.technomadic.org/?p=122#comments</comments>
		<pubDate>Thu, 06 Mar 2008 02:05:44 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://blog.technomadic.org/?p=122</guid>
		<description><![CDATA[Two days ago I went to the largest usergroup meeting of any kind I have ever seen. It was the Boston Lisp Meeting (although it should be called the Cambridge Lisp Meeting, IMO). There were about 40 people in attendance, and when I left (at 22:00, four hours after my arrival), it still rivaled any [...]]]></description>
			<content:encoded><![CDATA[<p>Two days ago I went to the largest usergroup meeting of any kind I have ever seen. It was the <a href="http://fare.livejournal.com/120393.html">Boston Lisp Meeting</a> (although it should be called the <em>Cambridge</em> Lisp Meeting, IMO). There were about 40 people in attendance, and when I left (at 22:00, four hours after my arrival), it still rivaled any usergroup in size.</p>

<p>With 40 people, the sitting-around-a-table-drinking-beer format is perhaps not the most effective. Sure, there is plenty of conversation to be a part of, but any single participant necessarily misses the majority of what\&#8217;s going on. So, I apologize at the beginning that this can not be a comprehensive report, but rather an experiential summary of what I observed that fateful evening.</p>

<p>I showed up  at 18:00, with probably over twenty people bulging from a single long table. Almost everyone who came after me ended up filling a second table. I took note of a few big names right off the bat (from <a href="http://www.cliki.net/IRC">#lisp</a> and elsewhere): Rahul Jain (who traveled from New York) had come with me, and certainly <a href="http://fare.tunes.org/">Faré</a> (our great organizer) was already there. Jeremy Jones (a founder of <a href="http://clozure.com/">Clozure</a>) and <a href="http://fuhm.net/">James Knight</a> (foom) were also there before me. <a href="http://www.lisphacker.com/">Alistair Bridgewater</a> (aka, nyef) trekked down from New Hampshire, but I think Hans Hübner won the longest-distance award, having come all the way from Berlin. Ok, this list is getting crazy &#8230; there were also other well-known lispers in attendance. <a href="http://www.metabang.com/">Gary King</a> was supposed to have been there, but I didn\&#8217;t see (or perhaps recognize) him. Both <a href="http://xach.com/">Zach Beane</a> and dto had to miss because of transportation issues, which was quite disappointing.</p>

<p>I was afraid the group would be dominated by <a href="http://itasoftware.com/">ITA</a> employees, but I think they made up maybe a quarter of the entire group. None of the guys near me at the beginning were ITA employees, in fact, I think they were all Lisp hobbyists. As a result, there is always plenty of discussion about how to go about making Lisp your profession, which is a topic I do like to talk about. One of my favorite questions was \&#8221;If you get to write Lisp at work all day, do you work in other languages when you get home?\&#8221; The answer is pretty much \&#8221;no\&#8221; &#8230; at least, I don\&#8217;t play with other languages any more than I did before I was writing Lisp professionally.</p>

<p>Later on in the night I moved around the table to see what was happening at Faré\&#8217;s end. There seemed to be a lot of discussion about when meetings should be held, and how to organize them, etc., which is great to hear. We\&#8217;ll be moving to a more presentation-oriented format, and I\&#8217;m sure Faré will have all the details about future meetings sent around soon. There was an <a href="http://laptop.org/laptop/">XO laptop</a> that got passed around so everyone could enter in their contact information and how they would like to be involved with future mettings. So there ended up being a bit of discussion about the XOs, and who managed to get one (like me) and who didn\&#8217;t.</p>

<p>Toward the end of the night, I got around the table to talk with Rahul and another of my co-workers, and had the chance to finally meet Alistair. Unfortunately, I had to leave shortly after we began talking &#8230; and he will be farther away than NH for the next few months because of various contracts he\&#8217;s working on. Hopefully he\&#8217;ll come to meetings when he\&#8217;s back in the region.</p>

<p>I know &#8230; there\&#8217;s not much Lisp content in this post. Honestly, it\&#8217;s hard to remember exactly what was discussed. The meeting was great for getting to know more Lispers, and there was plenty of Lisp talk, but my focus at the time was more on having a good time (and some beers) with people that I have a lot in common with. There will be plenty of in-depth Lisp-hackery at future presentation-based meetings. For now I\&#8217;m just excited about there being so many people here who are interested in it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technomadic.org/?feed=rss2&amp;p=122</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Continuing about restarts</title>
		<link>http://blog.technomadic.org/?p=121</link>
		<comments>http://blog.technomadic.org/?p=121#comments</comments>
		<pubDate>Wed, 27 Feb 2008 02:50:12 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://blog.technomadic.org/?p=121</guid>
		<description><![CDATA[
  Update: these changes (along with an additional one for unbound slots) are now available in the CCL repo: http://svn.clozure.com/publicsvn/openmcl/trunk/&#60;os&#62;&#60;arch&#62;/ccl


When I read Geoff Wozniak’s post (I know, I\&#8217;m a week behind) I was disappointed to see Clozure CL wasn’t even taken into account. I decided to check it out for myself. Initially, I was [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
  <p><strong>Update</strong>: these changes (along with an additional one for unbound slots) are now available in the CCL repo: <a href="http://svn.clozure.com/publicsvn/openmcl/trunk/">http://svn.clozure.com/publicsvn/openmcl/trunk/</a>&lt;os&gt;&lt;arch&gt;/ccl</p>
</blockquote>

<p>When I read <a href="http://exploring-lisp.blogspot.com/2008/02/continuing-and-restarts.html">Geoff Wozniak’s post</a> (I know, I\&#8217;m a week behind) I was disappointed to see <a href="http://clozure.com/clozurecl.html">Clozure CL</a> wasn’t even taken into account. I decided to check it out for myself. Initially, I was a bit disappointed, but after only a couple minutes of hacking, I managed to improve the situation a bit.</p>

<table border="0" cellspacing="5" cellpadding="5">
  <tr>
    <th>Situation</th>
    <th colspan="5">Lisp implementations</th>
  </tr>
  <tr>
    <th></th>
    <th>Allegro CL</th>
    <th>Lispworks</th>
    <th>SBCL</th>
    <th>CLISP</th>
    <th>Clozure CL</th>
  </tr>
  <tr>
    <td>No function defined</td>
    <td align="center">&#x2713;</td>
    <td align="center">&#x2713;</td>
    <td align="center">-</td>
    <td align="center">&#x2713;</td>
    <td align="center">&#x2713;</td></tr>
  <tr>
    <td>Failed <code>function</code> lookup</td>
    <td align="center">-</td>
    <td align="center">&#x2713;</td>
    <td align="center">-</td>
    <td align="center">&#x2713;</td>
    <td align="center">-</td>
  </tr>
  <tr>
    <td>No class found</td>
    <td align="center">&#x2713;</td>
    <td align="center">&#x2713;</td>
    <td align="center">-</td>
    <td align="center">-</td>
    <td align="center" style="color: red;">&#x2713;</td>
  </tr>
  <tr>
    <td>Division by zero</td>
    <td align="center">-</td>
    <td align="center">&#x2713;</td>
    <td align="center">-</td>
    <td align="center">-</td>
    <td align="center">-</td>
  </tr>
  <tr>
    <td>No method found</td>
    <td align="center">&#x2713;</td>
    <td align="center">&#x2713;</td>
    <td align="center">-</td>
    <td align="center">&#x2713;</td>
    <td align="center" style="color: red;">&#x2713;</td>
  </tr>
  <tr>
    <td>No slot found</td>
    <td align="center">&#x2713;</td>
    <td align="center">-</td>
    <td align="center">-</td>
    <td align="center">-</td>
    <td align="center" style="color: red;">&#x2713;</td>
  </tr>
  <tr>
    <td>Replace function with generic function</td>
    <td align="center">&#x2713;</td>
    <td align="center">&#x2713;</td>
    <td align="center">&#x2713;</td>
    <td align="center">-</td>
    <td align="center">&#x2713;</td>
  </tr>
  <tr>
    <td>Redefine a generic function</td>
    <td align="center">&#x2713;</td>
    <td align="center">&#x2713;</td>
    <td align="center">-</td>
    <td align="center">-</td>
    <td align="center" style="color: red;">&#x2713;<sup style="color: black;">1</sup></td>
  </tr>
</table>

<p><sup>1</sup> The existing code handled a <code>defmethod</code> followed by a <code>defmethod</code> with an incompatible lambda-list, but not a <code>defmethod</code> followed by a <code>defgeneric</code> with an incompatible lambda-list.</p>

<p>Initially (the black) we could claim superiority only to SBCL [Ed: just kidding, guys], but after my changes (in red) we’re now on par with Allegro. <em>And</em> Open Source. The squeaky wheel and all that. Thanks to Geoff for pointing out the issue.</p>

<p>Note: these changes currently exist only on my own box. I\&#8217;ll get them into CCL 1.2, though.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technomadic.org/?feed=rss2&amp;p=121</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Boston Lisp Meeting</title>
		<link>http://blog.technomadic.org/?p=120</link>
		<comments>http://blog.technomadic.org/?p=120#comments</comments>
		<pubDate>Tue, 26 Feb 2008 02:37:57 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Meta]]></category>

		<guid isPermaLink="false">http://blog.technomadic.org/?p=120</guid>
		<description><![CDATA[It\&#8217;s been about four months since I last posted, which is really unacceptable. I feel like I have to jump on the bandwagon with this announcement, though, and maybe it\&#8217;ll get me back on track.

Next Monday (3 March 2008), is the inaugural Boston Lisp Meeting. Judging by talk around the office and in the community [...]]]></description>
			<content:encoded><![CDATA[<p>It\&#8217;s been about four months since I last posted, which is really unacceptable. I feel like I have to jump on the bandwagon with this announcement, though, and maybe it\&#8217;ll get me back on track.</p>

<p>Next Monday (3 March 2008), is the inaugural <a href="http://fare.livejournal.com/120393.html">Boston Lisp Meeting</a>. Judging by talk around the office and in the community at large, it sounds like it\&#8217;ll be well-attended. If you know any lispers, send them along. If you want to get to know some, come along yourself.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technomadic.org/?feed=rss2&amp;p=120</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>automated testing with CL &amp; darcs</title>
		<link>http://blog.technomadic.org/?p=118</link>
		<comments>http://blog.technomadic.org/?p=118#comments</comments>
		<pubDate>Sun, 21 Oct 2007 23:41:15 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://blog.technomadic.org/?p=118</guid>
		<description><![CDATA[I spent a good chunk of today trying to get darcs to run my unit tests automatically. I haven\&#8217;t actually gotten it right yet, but at least I have it running the tests before each commit (even if the commit happens regardless).

I set up the auto-testing with darcs setpref test \"chmod +x test/run-tests; test/run-tests\". test/run-tests [...]]]></description>
			<content:encoded><![CDATA[<p>I spent a good chunk of today trying to get darcs to run my unit tests automatically. I haven\&#8217;t actually gotten it right yet, but at least I have it running the tests before each commit (even if the commit happens regardless).</p>

<p>I set up the auto-testing with <code>darcs setpref test \"chmod +x test/run-tests; test/run-tests\"</code>. <code>test/run-tests</code> is the test script, but darcs doesn\&#8217;t allow you to add executable files to the repository, so you have to run <code>chmod</code> on the script before it can actually be executed.</p>

<p>Here\&#8217;s the test script itself:</p>

<p><prescheme \"><!--BEGIN enscript-->states: undefined state `--language=html'
%!PS-Adobe-3.0
%%BoundingBox: 24 24 571 818
%%Title: Enscript Output
%%For: Greg Pfeil
%%Creator: GNU enscript 1.6.4
%%CreationDate: Wed Mar 10 20:26:24 2010
%%Orientation: Portrait
%%Pages: (atend)
%%DocumentMedia: A4 595 842 0 () ()
%%DocumentNeededResources: (atend)
%%EndComments
%%BeginProlog
%%BeginResource: procset Enscript-Prolog 1.6 4
%
% Procedures.
%

/_S {	% save current state
  /_s save def
} def
/_R {	% restore from saved state
  _s restore
} def

/S {	% showpage protecting gstate
  gsave
  showpage
  grestore
} bind def

/MF {	% fontname newfontname -> -	make a new encoded font
  /newfontname exch def
  /fontname exch def

  /fontdict fontname findfont def
  /newfont fontdict maxlength dict def

  fontdict {
    exch
    dup /FID eq {
      % skip FID pair
      pop pop
    } {
      % copy to the new font dictionary
      exch newfont 3 1 roll put
    } ifelse
  } forall

  newfont /FontName newfontname put

  % insert only valid encoding vectors
  encoding_vector length 256 eq {
    newfont /Encoding encoding_vector put
  } if

  newfontname newfont definefont pop
} def

/MF_PS { % fontname newfontname -> -	make a new font preserving its enc
  /newfontname exch def
  /fontname exch def

  /fontdict fontname findfont def
  /newfont fontdict maxlength dict def

  fontdict {
    exch
    dup /FID eq {
      % skip FID pair
      pop pop
    } {
      % copy to the new font dictionary
      exch newfont 3 1 roll put
    } ifelse
  } forall

  newfont /FontName newfontname put

  newfontname newfont definefont pop
} def

/SF { % fontname width height -> -	set a new font
  /height exch def
  /width exch def

  findfont
  [width 0 0 height 0 0] makefont setfont
} def

/SUF { % fontname width height -> -	set a new user font
  /height exch def
  /width exch def

  /F-gs-user-font MF
  /F-gs-user-font width height SF
} def

/SUF_PS { % fontname width height -> -	set a new user font preserving its enc
  /height exch def
  /width exch def

  /F-gs-user-font MF_PS
  /F-gs-user-font width height SF
} def

/M {moveto} bind def
/s {show} bind def

/Box {	% x y w h -> -			define box path
  /d_h exch def /d_w exch def /d_y exch def /d_x exch def
  d_x d_y  moveto
  d_w 0 rlineto
  0 d_h rlineto
  d_w neg 0 rlineto
  closepath
} def

/bgs {	% x y height blskip gray str -> -	show string with bg color
  /str exch def
  /gray exch def
  /blskip exch def
  /height exch def
  /y exch def
  /x exch def

  gsave
    x y blskip sub str stringwidth pop height Box
    gray setgray
    fill
  grestore
  x y M str s
} def

/bgcs { % x y height blskip red green blue str -> -  show string with bg color
  /str exch def
  /blue exch def
  /green exch def
  /red exch def
  /blskip exch def
  /height exch def
  /y exch def
  /x exch def

  gsave
    x y blskip sub str stringwidth pop height Box
    red green blue setrgbcolor
    fill
  grestore
  x y M str s
} def

% Highlight bars.
/highlight_bars {	% nlines lineheight output_y_margin gray -> -
  gsave
    setgray
    /ymarg exch def
    /lineheight exch def
    /nlines exch def

    % This 2 is just a magic number to sync highlight lines to text.
    0 d_header_y ymarg sub 2 sub translate

    /cw d_output_w cols div def
    /nrows d_output_h ymarg 2 mul sub lineheight div cvi def

    % for each column
    0 1 cols 1 sub {
      cw mul /xp exch def

      % for each rows
      0 1 nrows 1 sub {
        /rn exch def
        rn lineheight mul neg /yp exch def
        rn nlines idiv 2 mod 0 eq {
	  % Draw highlight bar.  4 is just a magic indentation.
	  xp 4 add yp cw 8 sub lineheight neg Box fill
	} if
      } for
    } for

  grestore
} def

% Line highlight bar.
/line_highlight {	% x y width height gray -> -
  gsave
    /gray exch def
    Box gray setgray fill
  grestore
} def

% Column separator lines.
/column_lines {
  gsave
    .1 setlinewidth
    0 d_footer_h translate
    /cw d_output_w cols div def
    1 1 cols 1 sub {
      cw mul 0 moveto
      0 d_output_h rlineto stroke
    } for
  grestore
} def

% Column borders.
/column_borders {
  gsave
    .1 setlinewidth
    0 d_footer_h moveto
    0 d_output_h rlineto
    d_output_w 0 rlineto
    0 d_output_h neg rlineto
    closepath stroke
  grestore
} def

% Do the actual underlay drawing
/draw_underlay {
  ul_style 0 eq {
    ul_str true charpath stroke
  } {
    ul_str show
  } ifelse
} def

% Underlay
/underlay {	% - -> -
  gsave
    0 d_page_h translate
    d_page_h neg d_page_w atan rotate

    ul_gray setgray
    ul_font setfont
    /dw d_page_h dup mul d_page_w dup mul add sqrt def
    ul_str stringwidth pop dw exch sub 2 div ul_h_ptsize -2 div moveto
    draw_underlay
  grestore
} def

/user_underlay {	% - -> -
  gsave
    ul_x ul_y translate
    ul_angle rotate
    ul_gray setgray
    ul_font setfont
    0 0 ul_h_ptsize 2 div sub moveto
    draw_underlay
  grestore
} def

% Page prefeed
/page_prefeed {		% bool -> -
  statusdict /prefeed known {
    statusdict exch /prefeed exch put
  } {
    pop
  } ifelse
} def

% Wrapped line markers
/wrapped_line_mark {	% x y charwith charheight type -> -
  /type exch def
  /h exch def
  /w exch def
  /y exch def
  /x exch def

  type 2 eq {
    % Black boxes (like TeX does)
    gsave
      0 setlinewidth
      x w 4 div add y M
      0 h rlineto w 2 div 0 rlineto 0 h neg rlineto
      closepath fill
    grestore
  } {
    type 3 eq {
      % Small arrows
      gsave
        .2 setlinewidth
        x w 2 div add y h 2 div add M
        w 4 div 0 rlineto
        x w 4 div add y lineto stroke

        x w 4 div add w 8 div add y h 4 div add M
        x w 4 div add y lineto
	w 4 div h 8 div rlineto stroke
      grestore
    } {
      % do nothing
    } ifelse
  } ifelse
} def

% EPSF import.

/BeginEPSF {
  /b4_Inc_state save def    		% Save state for cleanup
  /dict_count countdictstack def	% Count objects on dict stack
  /op_count count 1 sub def		% Count objects on operand stack
  userdict begin
  /showpage { } def
  0 setgray 0 setlinecap
  1 setlinewidth 0 setlinejoin
  10 setmiterlimit [ ] 0 setdash newpath
  /languagelevel where {
    pop languagelevel
    1 ne {
      false setstrokeadjust false setoverprint
    } if
  } if
} bind def

/EndEPSF {
  count op_count sub { pos } repeat	% Clean up stacks
  countdictstack dict_count sub { end } repeat
  b4_Inc_state restore
} bind def

% Check PostScript language level.
/languagelevel where {
  pop /gs_languagelevel languagelevel def
} {
  /gs_languagelevel 1 def
} ifelse
%%EndResource
%%BeginResource: procset Enscript-Encoding-88591 1.6 4
/encoding_vector [
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/space        	/exclam       	/quotedbl     	/numbersign   	
/dollar       	/percent      	/ampersand    	/quoteright   	
/parenleft    	/parenright   	/asterisk     	/plus         	
/comma        	/hyphen       	/period       	/slash        	
/zero         	/one          	/two          	/three        	
/four         	/five         	/six          	/seven        	
/eight        	/nine         	/colon        	/semicolon    	
/less         	/equal        	/greater      	/question     	
/at           	/A            	/B            	/C            	
/D            	/E            	/F            	/G            	
/H            	/I            	/J            	/K            	
/L            	/M            	/N            	/O            	
/P            	/Q            	/R            	/S            	
/T            	/U            	/V            	/W            	
/X            	/Y            	/Z            	/bracketleft  	
/backslash    	/bracketright 	/asciicircum  	/underscore   	
/quoteleft    	/a            	/b            	/c            	
/d            	/e            	/f            	/g            	
/h            	/i            	/j            	/k            	
/l            	/m            	/n            	/o            	
/p            	/q            	/r            	/s            	
/t            	/u            	/v            	/w            	
/x            	/y            	/z            	/braceleft    	
/bar          	/braceright   	/tilde        	/.notdef      	
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/.notdef      	/.notdef      	/.notdef      	/.notdef      	
/space        	/exclamdown   	/cent         	/sterling     	
/currency     	/yen          	/brokenbar    	/section      	
/dieresis     	/copyright    	/ordfeminine  	/guillemotleft	
/logicalnot   	/hyphen       	/registered   	/macron       	
/degree       	/plusminus    	/twosuperior  	/threesuperior	
/acute        	/mu           	/paragraph    	/bullet       	
/cedilla      	/onesuperior  	/ordmasculine 	/guillemotright	
/onequarter   	/onehalf      	/threequarters	/questiondown 	
/Agrave       	/Aacute       	/Acircumflex  	/Atilde       	
/Adieresis    	/Aring        	/AE           	/Ccedilla     	
/Egrave       	/Eacute       	/Ecircumflex  	/Edieresis    	
/Igrave       	/Iacute       	/Icircumflex  	/Idieresis    	
/Eth          	/Ntilde       	/Ograve       	/Oacute       	
/Ocircumflex  	/Otilde       	/Odieresis    	/multiply     	
/Oslash       	/Ugrave       	/Uacute       	/Ucircumflex  	
/Udieresis    	/Yacute       	/Thorn        	/germandbls   	
/agrave       	/aacute       	/acircumflex  	/atilde       	
/adieresis    	/aring        	/ae           	/ccedilla     	
/egrave       	/eacute       	/ecircumflex  	/edieresis    	
/igrave       	/iacute       	/icircumflex  	/idieresis    	
/eth          	/ntilde       	/ograve       	/oacute       	
/ocircumflex  	/otilde       	/odieresis    	/divide       	
/oslash       	/ugrave       	/uacute       	/ucircumflex  	
/udieresis    	/yacute       	/thorn        	/ydieresis    	
] def
%%EndResource
%%EndProlog
%%BeginSetup
%%IncludeResource: font Courier-Bold
%%IncludeResource: font Courier
/HFpt_w 10 def
/HFpt_h 10 def
/Courier-Bold /HF-gs-font MF
/HF /HF-gs-font findfont [HFpt_w 0 0 HFpt_h 0 0] makefont def
/Courier /F-gs-font MF
/F-gs-font 10 10 SF
/#copies 1 def
% Pagedevice definitions:
gs_languagelevel 1 gt {
  < <
    /PageSize [595 842] 
  >> setpagedevice
} if
%%BeginResource: procset Enscript-Header-simple 1.6 4

/do_header {	% print default simple header
  gsave
    d_header_x d_header_y HFpt_h 3 div add translate

    HF setfont
    user_header_p {
      5 0 moveto user_header_left_str show

      d_header_w user_header_center_str stringwidth pop sub 2 div
      0 moveto user_header_center_str show

      d_header_w user_header_right_str stringwidth pop sub 5 sub
      0 moveto user_header_right_str show
    } {
      5 0 moveto fname show
      45 0 rmoveto fmodstr show
      45 0 rmoveto pagenumstr show
    } ifelse

  grestore
} def
%%EndResource
/d_page_w 547 def
/d_page_h 794 def
/d_header_x 0 def
/d_header_y 779 def
/d_header_w 547 def
/d_header_h 15 def
/d_footer_x 0 def
/d_footer_y 0 def
/d_footer_w 547 def
/d_footer_h 0 def
/d_output_w 547 def
/d_output_h 779 def
/cols 1 def
%%EndSetup
%%Trailer
%%Pages: 0
%%DocumentNeededResources: font Courier-Bold Courier 
%%EOF
<!--END enscript--></prescheme></p>

<p>What it should be doing is running the tests, and returning non-zero on failure. It runs the tests, but the failure bit isn\&#8217;t exactly happening yet.</p>

<p>I figured I\&#8217;d throw this out there and see if anyone else has a decent way of getting automated testing happening. The more I try to bridge between Lisp and Unix, the more I just want to live in a Lisp REPL.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technomadic.org/?feed=rss2&amp;p=118</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Riding for a Cure</title>
		<link>http://blog.technomadic.org/?p=117</link>
		<comments>http://blog.technomadic.org/?p=117#comments</comments>
		<pubDate>Fri, 12 Oct 2007 01:24:24 +0000</pubDate>
		<dc:creator>Greg</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://blog.technomadic.org/?p=117</guid>
		<description><![CDATA[This Sunday (Oct 14), I\&#8217;m going to be riding in the MS Bike Tour through New York. If you know someone with multiple sclerosis, you know what a horrible process it can be. The symptoms are random and often each is seriously debilitating on its own. There are also “good days”, when all the symptoms [...]]]></description>
			<content:encoded><![CDATA[<p>This Sunday (Oct 14), I\&#8217;m going to be riding in the MS Bike Tour through New York. If you know someone with multiple sclerosis, you know what a horrible process it can be. The symptoms are random and often each is seriously debilitating on its own. There are also “good days”, when all the symptoms seem to go away, and the victim is given a brief reminder of what they\&#8217;ve lost.</p>

<p>Please help make a difference by <a href="https://www.kintera.org/faf/donorReg/donorPledge.asp?ievent=226878&amp;supId=188174241">donating to support research toward treatment and a cure</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technomadic.org/?feed=rss2&amp;p=117</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
