tag:quandyfactory.com,2015-7-28:/2015728 2015-7-28T12:00:00Z Quandy Factory Newsfeed - All Quandy Factory is the personal website of Ryan McGreal in Hamilton, Ontario, Canada.. http://quandyfactory.com/blog/155/a_second_year_of_running_plus_some_not-running_and_other_stuff 2015-07-30T12:00:00Z A Second Year of Running, Plus Some Not-Running and Other Stuff <h3>Introduction</h3> <p>A year ago today, I posted my first article <a href="/blog/135/a_year_of_running">reviewing a year of running</a>. I had a fantastic year and accordingly the article had a celebratory tone. I was going faster and farther week over week and had been doing so almost continuously for the entire year, notwithstanding a short early setback when I had shin splints.</p> <p>I was pushing the limits pretty hard on both distance and speed, chasing continued week-over-week increases along both axes. In January of 2014 I was running around 20 km a week. By April I was up to 35 km a week, and by June I was up to 40. That increased throughout the summer and by October I was doing 48-50 km a week.</p> <p>Likewise, I started 2014 with a running speed between 8.5 and 9.4 km/h (or a pace between 6:35 and 6:23 minutes per km), but by the time I wrote the article I was regularly exceeding 10 km/h (6:00 min/km) for my shorter runs and 9.5 km/h for my Saturday long runs, which were generally in the 25-28 km range.</p> <p>As the saying goes, pride goeth before a fall. </p> <p>Not only was I increasing my running load too quickly, but also I was neglecting all the ancillary exercises that you need to do in order to run well. I was warming up with my A-B-Cs before a run and doing some stretches after, but that was pretty much it. </p> <p>I was also neglecting to replace my shoes in a timely manner and was running on a pair of Mizuno Wave Riders that had more than a thousand kilometres of wear on them.</p> <h3>Injury Strikes</h3> <p class="initial">I finally pushed it too far on November 11, 2014, when I hit an average speed of 11:03 km/h (5:26 min/km) over 10 km - a personal speed record for me. I felt a funny sensation in my right heel during the run but thought nothing of it. </p> <p>When I woke up on Wednesday, November 12, my heel was killing me. </p> <p>My heel felt a bit better on Thursday but it still hurt, so I put off my scheduled run and picked up the new pair of shoes that I should have bought at least a month earlier. </p> <p class="image"> <img src="/static/images/old_running_shoe_vs_new_running_shoe.jpg" alt="Old shoe and new shoe" title="Old shoe and new shoe"><br> Old shoe and new shoe</p> <p>On Friday, my heel felt better so I heedlessly dove right back to a 10 km run. By the end of it, my heel was screaming again. On Saturday morning, I could barely walk.</p> <p>I had the dreaded <em>plantar fasciitis</em> - an inflammation of the plantar fascia, which is a thick band of connective tissue that stretches across the bottom of your foot from your calcaneous (heel bone) to your metatarsals (the bones between your toes and the ball of your foot).</p> <p>The plantar fascia acts as the bowstring to your foot's arch, tensing and absorbing energy when you step down and releasing that energy when you lift up.</p> <p>Plantar fasciitis is a condition in which you feel sharp pain in your heel due to an injury to the plantar fascia: trauma, inflammation, tearing or degeneration (or some combination).</p> <p>You use your plantar fascia all the time whenever you're standing, walking or running (when you're running, it absorbs up to 7 times your body weight during pushoff), so it's a challenge to treat once it gets injured.</p> <p>It is extremely frustrating to deal with, but like most running injuries it is entirely treatable. It is important to note here that the array of exercises and stretches you do to treat PF are suspiciously similar to the array of exercises and stretches you do to <em>prevent</em> PF. Hint hint.</p> <h3>Starting Recovery</h3> <p class="initial">I had to stop running altogether for around two and a half weeks and focus on walking slowly and smoothly without a limp. (Every day you spend hobbling extends your recovery time and increases the risk of subsequent injuries.) This was a surprisingly infantilizing experience - <em>I have to learn how to walk again!?</em> - but my walking form changed and has been smoother ever since.</p> <p>I also got started on a regimen of stretching and strengthening exercises that targeted the entire running system from my feet up through my calves, knees, thighs, hips and butt. </p> <p>I took a comprehensive approach to the injury, applying Advil, Tylenol, Voltaren, ice packs, frozen water bottle rolls, golf ball rolls, towel scrunches, massages, dynamic foot stretches, static foot stretches, 'windshield wipers', achilles stretches, calf raises, calf stretches, squats, lunges, hip hikes, one-foot balance, quad stretches, hamstring stretches, iliotibial stretches, leg lifts - you name it.</p> <p>While I wasn't running (or wasn't running much), I replaced some of the cardio I was missing with bike rides - which became challenging as the weather turned nasty - and long, brisk walks. I also started to incorporate some more resistance exercise, including pushups, planks and resistance band reps. </p> <p>On December 3, 2014, I did my first run in almost three weeks, and it was a sad affair. I went just 3.5 km, alternating walking and running, at an average speed of 7.58 km/h. It was like I was just starting from scratch again!</p> <p>However, I was determined to get back to speed as quickly as possible. Earlier in the year, I had signed up for the <a href="http://bayrace.com/">Around The Bay Road Race</a>, a challenging 30 km run that was to take place on March 29, 2015. That meant I had less than four months to get better!</p> <p class="image"> <img src="//i.imgur.com/qrnxByN.png" alt="Around The bay Road Race route map" title="Around The bay Road Race route map"><br> Around The bay Road Race route map</p> <p>My recovery seemed to be going well. My heel wasn't bothering me and my speed and distance jumped back up quickly - too quickly. A week later I was running 5 km at a speed of 9.5-10 km/h, but my right foot really started to hurt during my run on December 15. </p> <p>Just as my plantar fasciitis was receding, tendonitis came roaring in to take over. Bam - I was out of action for another two-plus weeks and had to start my recovery all over again.</p> <p>My next run was on December 30, and it was a paltry 3.5 km walk-jog at a stately average speed of 6.96 km/h. Now I had only three months to get ready for Around the Bay! If I was going to have any change to make it to the race, I basically had to split the difference between giving my foot enough recovery time to heal properly and also increasing my distance fast enough to reach 30 km.</p> <p>After two weeks of increasing my distance from 3.5 km to 6 km, I resumed my Saturday long run - with the "long" being entirely relative. But I learned at least one lesson from my first attempt at recovery: I optimized for increasing my distance but kept my speed down below 9 km/h. I also took a walk break every five minutes so as not to overtax my feet.</p> <p>The trails I usually enjoy were iced over so I started running along the route of the Bay Race.</p> <p class="image"> <img src="http://raisethehammer.org/static/images/escarpment_trail_in_winter.jpg" alt="Escarpment Trail in winter" title="Escarpment Trail in winter"><br> Escarpment Trail in winter</p> <p>The hardest part of the Bay Race is the stretch along North Shore Boulevard in Burlington, from the 18 km to 27 km mark. It's picturesque but includes some brutal hills, and hills are particularly hard on injured feet.</p> <p>For my Saturday long runs, I ran out along York and North Shore - running the hardest part of the Bay Race in reverse - as far as I could manage and then turned around and returned going forward along the direction of the route. </p> <p>By January 31, my long run reached 10 km - the average distance of my short run a few months earlier, but a lot slower at 8.8 km/h. Interestingly, the very first time I had cracked 10 km distance was almost exactly a year earlier, on February 8, 2014. at a speed of 8.48 km/h.</p> <p class="image"> <img src="http://raisethehammer.org/static/images/multi_modal_jigsaw_at_high_level_bridge.jpg" alt="York Boulevard High Level Bridge and stairs to Waterfront Trail" title="York Boulevard High Level Bridge and stairs to Waterfront Trail"><br> York Boulevard High Level Bridge and stairs to Waterfront Trail</p> <h3>More Problems</h3> <p class="initial">Meanwhile, my left foot started giving me trouble in mid-January. What it needed was for me to dial back the distance but there was no way I could do that and be ready for Around The Bay, and I had already determined that I was going to do everything in my power to try and make it.</p> <p>I ended up spending the next two months trying to compromise between running more to train for the Bay Race and running less to let my feet heal. Needless to say, I didn't really achieve either goal. My feet continued to grumble and twinge as I pushed them harder than they wanted to go, but I decided I'd rather half-ass the Bay Race than quit altogether.</p> <p>At the start of February I bought a new pair of shoes - I had been both walking and running on my old shoes, so they had accumulated a lot of mileage. I also picked up a night splint, which keeps your foot bent up in a long stretch during the night and really helps with plantar fascia. I highly recommend it.</p> <p class="image"> <img src="//i.imgur.com/yyoykKd.jpg" alt="New shoes: Mizuno Wave Rider 18" title="New shoes: Mizuno Wave Rider 18"><br> New shoes: Mizuno Wave Rider 18</p> <p>By mid- to late-February my weekday runs were up to 9 km and my Saturday runs were up to 15 km. I was experimenting fairly heavily with my form, playing around with more midfoot and more forefoot landings, adjusting my cadence up and down, trying to find a form that was easiest on my feet. I also discovered the 100-Up Drill, which is a fantastic way of practicing consistent good form.</p> <p>For my February 28 long run, I did a very slow 19 km and really got to experience some of the hills on North Shore, in addition to a particularly gruelling hill on Spring Gardens Road. That hill ended up not being in the Bay Race, so practing on it was an added bonus.</p> <p>In the first week of March, I slightly sprained my left ankle while walking briskly to a meeting in sloppy weather. It was just one thing after another! For my next few runs, I slathered on some Voltaren, kept my feet really stiff and took short strides to minimize the load on my ankles.</p> <p>For my March 7 long run, I did 21 km at a slow 8.46 km/h and made it as far as the big hill near LaSalle Park. My left ankle was slightly swollen but I pre-emptively slathered some Voltaren on it and tried to keep my weight off it for the rest of the day, doing lots of stretches. As my physiatrist likes to say, "Motion is lotion."</p> <p>By mid-March the weather was getting better and I started incorporating more and longer bike rides, which was good timing because my ankle was too sore to run on until March 12, when I did a slow 6 km with my ankle complaining the entire time. </p> <p>I felt stuck in a quagmire of cascading injuries. This was my lowest point - I just didn't see how I would be able to complete the Bay Race a little over two weeks later! </p> <p>Then, amazingly and unaccountably, I woke up on March 14 with my foot feeling fine. I have no idea what changed in those two days, but whatever was going on with my foot receded to the point that I could baby it through a long run.</p> <p>I joined another aspiring Bay Race participant and we ran together, enjoying a great conversation. The pace was very slow - 8.45 km/h - but we covered more than 25 km and I barely noticed my feet. After the run, I spent the rest of the day moving - walking casually, doing lots of stretches - and felt okay on the next day. </p> <p>That was to be my longest post-injury, pre-race run. The following Saturday, March 21, I did a 19 km taper run, once again in the company of my fellow Bay Racer, and our conversation kept me buoyed and distracted from kvetching about my foot.</p> <p>I tapered down the week before the big day with an 8k on Monday and a 6.5k on Thursday, both focused entirely on locking down my form. After much experimenting, I had settled on a light-landing midfoot strike with a short, relatively fast stride, while keeping my back straight and my head up.</p> <h3>Around The Bay Road Race</h3> <p class="initial">Finally, the big day arrived. I really wasn't ready for it but as Donald Rumsfeld reminds us, you go into a running race with the body you have, not the body you wish you had. I found a 3:15 Pace Bunny and fell in behind him, which was really helpful because it's easy to come out of the gate way too hot when you're surrounded by so much enthusiasm.</p> <p class="image"> <img src="//i.imgur.com/iZPRzZm.png" alt="Around The Bay route map (from Runkeeper)" title="Around The Bay route map (from Runkeeper)"><br> Around The Bay route map (from Runkeeper)</p> <p>The run itself was filled with delights. It was incredibly buoying to be surrounded by cheering spectators, calling out encouragement and banging drums and holding up inspirational (and occasionally hilarious) signs. One pair of kids standing under the Skyway Bridge held up a sign that read, "Hurry Up Mom, We're Hungry For Lunch!"</p> <p>My official chip time, <a href="https://www.sportstats.ca/display-results.xhtml?raceid=25227&status=results&lastname=mcgreal">according to Sportstats</a>, was 3:17:10. That's pretty much exactly where I hoped to end up, all things considered. Given the number of times over the past four months that I seriously doubted whether I would even make it, I was rather delighted with the outcome.</p> <p class="image"> <img src="/static/images/ryan_at_round_the_bay_23_km.png" alt="Me at around kilometre 23 (image credit: Bruce Taylor)" title="Me at around kilometre 23 (image credit: Bruce Taylor)"><br> Me at around kilometre 23 (image credit: Bruce Taylor)</p> <p>My two goals for this run were a) to finish it and b) to finish it with a time between 3:15 and 3:30. I'm delighted to have met both goals! I started out strong and maintained a steady pace until the last 9-10 km or so, when I started to get intermittent cramps in my right calf. </p> <p>The research suggests that cramps are caused when really fatigued muscles flex and then don't get the nerve signal to unclench (and not the common belief that it's due to an electrolyte deficiency, for which there is no evidence). Given my lack of physical readiness for the 30k run, that explanation makes perfect sense for me. </p> <p>My hardest pre-race training run was 25 km two Saturdays previously, and I did that at a very slow 8.45 km/h. Reading about cramping after the run, I learned that the best thing to do when it starts happening is to stop and do some static stretches to force the muscle to relax.</p> <p>My final result was unimpressive by the standard of ATB participants - I was in the bottom 40th percentile - but it represented a real personal accomplishment for me after my long winter of discontented feet. It also meant, as one friend pointed out, that I set the bar nice and low so I can easily beat it when I do the run again next year.</p> <p>I took a couple of days off after the Bay Race, and then enjoyed a short-but-fast 5.8 km recovery run on April 1. I quickly bounced back and by April 18 I was doing a 21 km Saturday long run again. Unfortunately, my physiology was still not finished screwing with my plans.</p> <h3>Yet Another Foot Injury</h3> <p class="initial">On May 7, during a 12 km run up the Radial Trail, I did something to my left mid-foot and it blossomed with big, sharp pain. I had to stop running altogether and walk down the hill. (Thankfully there was a <a href="https://hamilton.socialbicycles.com/">Hamilton Bike Share</a> station at the Chedoke Golf Course parking lot so I could rent a bike and ride the rest of the way home.)</p> <p class="image"> <img src="http://raisethehammer.org/static/images/radial_trail_footbridge_over_highway_403.jpg" alt="Radial Trail footbridge over Highway 403" title="Radial Trail footbridge over Highway 403"><br> Radial Trail footbridge over Highway 403</p> <p>Based on the symptoms, I had either a severe midfoot sprain or a fractured metatarsal. I didn't bother going for an x-ray or bone scan to confirm which was the case, since both are treated more or less the same way.</p> <p>So a little over a month after the Bay Race and almost exactly six months after I first got plantar fasciitis in my right heel, I was back to square one <em>yet again</em>. Arrgh.</p> <p>By this time the weather was lovely and cycling didn't seem to bother my foot, so I really ramped up my weekly biking kilometres and re-started the regimen of rest, ice, compression, elevation, Advil, stretches, massages and so on.</p> <p>I took some very long (for me) bike rides, including a 54 km ride to Caledonia and back and a 65 km ride to the edge of Brantford and back. I started doing a 40-50 km long ride every Saturday morning, in addition to two or three 20 km lunchtime rides during the week.</p> <p class="image"> <img src="//i.imgur.com/PdLH7Gr.jpg" alt="Self-portrait, Hamilton to Brantford Rail Trail" title="Self-portrait, Hamilton to Brantford Rail Trail"><br> Self-portrait, Hamilton to Brantford Rail Trail</p> <p>When I resumed running again on May 23, it was once again a very short distance (2.67 km) and a very slow pace (8.0 km/h). But unlike the previous times I had re-started running, this time I was really determined to ramp up very slowly and gradually. </p> <p>I no longer had a big race to train for and I was getting in lots of cardio from cycling, so I finally felt I had a full licence to take the time to heal properly. </p> <p class="image"> <img src="http://raisethehammer.org/static/images/fearless_deer_on_radial_trail.jpg" alt="Fearless deer on Radial Trail" title="Fearless deer on Radial Trail"><br> Fearless deer on Radial Trail</p> <p>So far, my distance has been increasing almost as slowly as it did when I first started running. The first four runs were all less than 4 km total distance. The next week I was running just over 4 km. The third week I was running around 4.3 km. The fourth week I was running around 4.5 km. </p> <p>By the end of the fifth week I was running 5 km. By the end of the sixth week I was up to 5.5 km, and the seventh week got me up to 5.8 km.</p> <p>In early July, extra-conscious of wear and tear on my shoes, I bought another new pair and relegated the old ones for walking.</p> <p class="image"> <img src="//i.imgur.com/WUrNxAC.jpg" alt="Old soles (left) and new soles" title="Old soles (left) and new soles"><br> Old soles (left) and new soles</p> <p>As of this week, I'm finally back up to 10 km distance with a speed a little better than 10 km/h. That is with five minutes of running and 30 seconds of walking.</p> <p>Another way I snuck extra cardio into my short runs was to precede my lunchtime runs with a brisk walk. At first, I'd walk 4 km and then run 4 km, but gradually the walking portion has gotten shorter as the running portion has gotten longer.</p> <p>Amazingly, my brisk walking pace today is faster than my running pace was when I started running two years ago. For the first few weeks in the summer of 2013, my running speed was in the 7.16-7.74 km/h range. Now my brisk walk is in the 7.8 km/h range.</p> <h3>Lessons Learned</h3> <p class="initial">The first and most important lesson I have learned is that if I want to run, <strong>I have to do more than just run</strong>. Prior to my injury, my exercise program was highly unbalanced: it was basically just running! Surprisingly (to no one but me), it turns out that's not sustainable. As a friend of mine put it: "I don't run to get in shape, I get in shape to run." I think I understand that now.</p> <p>The next lesson is that <strong>recovery from an injury comes slowly and gradually</strong>, so you have to be patient - but it does come. It took me three injury-based interruptions from running to finally accept this and give my body the time it needs to heal.</p> <p>The third lesson I learned is that <strong>running is not the only enjoyable exercise</strong>. I love brisk walks, stints on the Escarpment Stairs and bike rides - especially relatively longer distance bike rides over a couple of hours. </p> <p>I have even come to enjoy pushups (sort of) - at least, I enjoy the feeling of being stronger than I was when I first started doing them and could literally only do a few at a time.</p> <p>Another lesson is that <strong>I really, really love my city</strong>. Over the past few months I have taken bike rides to Ancaster, Dundas, Jerseyville, Brantford, Waterdown, Stoney Creek, Binbrook and points all across the upper and lower city. I have discovered parts of the city I never really knew about, found some fantastic routes and seen some incredible natural and architectural beauty.</p> <p class="image"> <img src="http://raisethehammer.org/static/images/wooden_footbridge_over_sydenham_creek.jpg" alt="Wooden footbridge over Sydenham Creek" title="Wooden footbridge over Sydenham Creek"><br> Wooden footbridge over Sydenham Creek</p> <p class="image"> <img src="http://raisethehammer.org/static/images/trail_signs_near_albion_falls.jpg" alt="Trail signs near Albion Falls" title="Trail signs near Albion Falls"><br> Trail signs near Albion Falls</p> <p>It saddens me to think that there are people who never see and experience their own community other than through the windshield of a car.</p> <p>My biggest fear, after the dread that I would never be able to run again, was that I would lose the progress I had made and start to regain all the weight I had lost. It was that fear, as much as my desire to build my strength and prevent a relapse, which motivated me to take the goal of a broad fitness program more seriously.</p> <p>In many ways, I am in much better shape now than I was last November when I first got injured. </p> <p>My aerobic capacity is better, for one thing. When running, I always breathe in rhythm with my footstrike cadence, and I used to follow the pattern <em>inhale for three steps, exhale for three steps</em> or <em>inhale for three steps, exhale for two steps</em>. When I was feeling tired or on a steep hill, I would drop to <em>inhale for two steps, exhale for two steps</em>. That breathing pattern gave me enough air to run between 9.5 km/h and 11 km/h, depending on the distance.</p> <p>Now, my breathing pattern is <em>inhale for four steps, exhale for four steps</em> or <em>inhale for four steps, exhale for three steps</em>. (I tend to do three repetitions of the first pattern followed by one repetition of the second pattern, so that I don't always start inhaling on the same footstrike.) That gets me an average speed of 10 km/h to 10.8 km/h - including taking into account a short walk break every five minutes.</p> <p>We don't have a scale and I haven't weighed myself in some time, but my clothes continue to get looser and I have had to punch several more holes in my belt to keep my pants up. I estimate that I am 65-70 lbs down from my highest weight.</p> <p>My body isn't quite where I want it to be, but it is quite a lot closer to where I want it than it is to where it was two years ago.</p> <p>Another important lesson this experience of running has really reinforced is that <strong>if you want to change something, you need to measure it</strong>. </p> <p>Last October I was given a pedometer and so I started wearing it and <a href="/stepcounts">recording my daily step totals</a>. Over the past nine months, my daily average number of steps has increased from less than 10,000 to over 20,000. Over the entire period, I have taken a total of over <em>four million</em> steps.</p> <p class="image"> <img src="//i.imgur.com/xVwU3Kv.jpg" alt="Stepcounts since October 2014 with linear trendline" title="Stepcounts since October 2014 with linear trendline"><br> Stepcounts since October 2014 with linear trendline</p> <p>This spring I also started <a href="/biking">recording my longer bike rides</a> (I don't bother to record short rides of just a few kilometres to run errands), and of course I am still <a href="/running">recording my runs</a>. </p> <p class="image"> <img src="//i.imgur.com/JF8TgkL.png" alt="Running distance (blue bars) and pace (red line) since July 27, 2013" title="Running distance (blue bars) and pace (red line) since July 27, 2013"><br> Running distance (blue bars) and pace (red line) since July 27, 2013</p> <p>A few other running metrics for the past year:</p> <ul> <li>Total distance: 1,463 km</li> <li>Total calories burned: 149,437</li> </ul> <p>Ironically, these are pretty similar to my totals for my first year of running:</p> <ul> <li>Total distance: 1,325 km</li> <li>Total calories burned: 155,468</li> </ul> <p>It's interesting that the total distance is slightly longer but the total calories burned is slightly lower. That's because losing weight means I'm not doing as much work to run a given distance at a given speed.</p> <p>There is at least one more lesson worth mentioning. Running has changed my life in innumerable ways. It has given me improved fitness and coordination, better health, improved mood and improved mental discipline, of course, and these are all wonderful outcomes.</p> <p>But perhaps even more importantly, it has also powerfully reminded me that life is a work in progress - that we are not trapped by the status quo and that <strong>change and growth are possible</strong>. </p> <p>That lesson, learned deeply and viscerally in my own body, is finding profound application in all areas of life.</p> Ryan McGreal 2 http://quandyfactory.com/projects/150/tracking_movement 2015-06-14T12:00:00Z Tracking Movement <p>I've been tracking my daily/weekly running and stepcounts. You can see the results here:</p> <ul> <li><p><a href="/running">Running</a></p></li> <li><p><a href="/biking">Biking</a></p></li> <li><p><a href="/stepcounts">Stepcounts</a></p></li> </ul> Ryan McGreal 2 http://quandyfactory.com/projects/151/recipes 2015-04-17T12:00:00Z Recipes <p>I've got a new section on the site for recipes I often use. You can find it here:</p> <ul> <li><a href="/recipes">Recipes</a></li> </ul> Ryan McGreal 2 http://quandyfactory.com/essays/72/hamilton_next:_good_ideas_come_from_urban_focus 2015-03-23T12:00:00Z HAMILTON NEXT: Good ideas come from urban focus <p>Hamilton is a city, not a bedroom community - a real destination for commuters and an important engine of economic development. Seventy per cent of Hamiltonians work in Hamilton, not Toronto or Mississauga. Another 38,000 people commute into the city from a region spanning Niagara, Haldimand-Norfolk and Halton.</p> <p>A recent study by the Centre for Community Study found that 23,400 people work in the downtown core, earning salaries well above the city and provincial averages. Downtown is already the city's single biggest employment cluster and still has plenty of room to grow.</p> <p>While our decision makers pin their hopes on "shovel-ready" suburban greenfields, everything we have learned from the study of economic development points to downtown as the place we need to focus for a more prosperous future.</p> <p>Steven Johnson, author of Where Good Ideas Come From, explains that innovation emerges from a dense network of connections that provides a context for invention. He describes how new ideas are cobbled together using available parts and concludes, "Chance favours the connected mind."</p> <p>The environment Johnson is describing is an urban environment. Put simply, cities are the places where people cross paths and exchange ideas, and where "half-formed hunches" can combine into innovations that produce wealth.</p> <p>When we live and work in urban, mixed-use environments, two important things happen: the per-person cost of public infrastructure goes down, while the rate of innovation speeds up.</p> <p>It's a two-for-one productivity boost, and it's due to the distinctly urban economies of density, scale and association.</p> <p>Density brings destinations together, reducing travel costs and making activities more affordable. Scale gives us bigger markets so the fixed cost of production goes down per unit of output. Density and scale bring people into frequent contact, and that association gives us the networks of "connected minds" that result in an innovation boom.</p> <p>For these reasons, Hamilton must make urban revitalization its number one growth priority. The alternative of continued suburban development doesn't generate enough revenue to pay for the infrastructure that is needed to service it.</p> <p>Each new subdivision actually increases the city's net liabilities. And as the urban boundary expands, more distant suburbs are even more expensive to service.</p> <p>Council just voted to increase development charges by 2013, but the city will still charge only 60 per cent of what it is allowed to collect - even 100 per cent would not actually cover the full cost of development.</p> <p>We have been running this pyramid scheme for decades, paying for yesterday's expansion with tomorrow's. As a result, our existing infrastructure idles while we spend money we don't have to build more infrastructure that can't pay for itself.</p> <p>Our regulatory system reinforces this focus on sprawl at the expense of urban investment. The Zoning By-Law encourages low density, single-use development while actively obstructing adaptive reuse and intensification.</p> <p>Even a modest infill project can face hundreds of thousands of dollars in fees for building permits, setback variances, cash-in-lieu-of-parkland (that can only be used to build new parks in the suburbs), mandatory parking requirements, zoning variances for any use not explicitly listed in the zoning for that building, and development charges - even though the infrastructure the building will use is already built.</p> <p>The new Official Plan fixes some of these issues, but it will be mired in Ontario Municipal Board appeals for years. Meanwhile, the city continues to suffocate slowly under the current rules.</p> <p>We can move faster with an investment-friendly secondary plan (particularly along our east-west B-Line corridor) that establishes a dense urban form primed for mixed use. City staff are already working with businesses downtown on an intensification study that will address the major barriers to reinvestment.</p> <p>We must also commit to building the proposed east-west light rail transit line. The evidence is clear: LRT anchors new private investment and intensifies land use, increasing tax assessments and infrastructure productivity. It attracts residents and signals a city's long-term commitment to the area, which gives developers the confidence to invest.</p> <p>City staff have prepared a detailed inventory of development opportunities along the LRT corridor and the potential is staggering. If Hamilton's LRT performs similarly to other cities, we could see a billion dollars in new investments and tens of millions a year in new tax assessments.</p> <p>The province has said if it approves LRT, it will cover 100 per cent of the direct capital cost. The city will have to contribute some money - the amount is still being negotiated - but the cost of not building LRT is a steady erosion in our finances as the city's unfunded infrastructure liabilities get worse and worse.</p> <p>An urban focus doesn't mean an end to our suburbs. Rather, it means we need an economic engine that generates enough wealth to pay for those suburbs. As Indianapolis Mayor Bill Hudnut famously said, "You can't be a suburb of nothing."</p> <p><em>This essay was published in the Hamilton Spectator on <a href="http://www.thespec.com/opinion/columns/article/565673--hamilton-next-good-ideas-come-from-urban-focus">Wednesday, July 20, 2011</a>.</em></p> Ryan McGreal 2 http://quandyfactory.com/blog/65/designing_a_restful_web_application 2014-12-23T12:00:00Z Designing a RESTful Web Application <h3>Introduction</h3> <p>I'm working on a couple of projects that involve building a web service, and I decided early on that because of our business constraints - having to communicate with a variety of different systems of varying levels of sophistication - it made sense to keep the web service as simple and accessible as possible.</p> <p>That pointed me toward designing a RESTful web service that transmits data in a simple format over straight HTTP. After all, just about any programming language imaginable can make an HTTP request. I also decided to go with JSON for the data format, in part because I've been <a href="/blog/50/couchdb_working_notes">experimenting lately with CouchDB</a> and appreciate both the simplicity and flexibility of JSON and the fact that you can find a JSON parser for any language.</p> <p>This blog entry is my attempt to get all the concepts of RESTful web service design straight. There's a good chance that some of this information is wrong; and if you notice something, please <a href="mailto:ryan@quandyfactory.com">let me know about it</a>. I'll investigate your argument and update the essay as applicable.</p> <p>With that in mind, here we go.</p> <h3>Representational State Transfer</h3> <p>Representational State Transfer, or REST, is a model for designing networked software systems based around clients and servers. In a RESTful system, a client makes a <strong>request</strong> for a <strong>resource</strong> on a server, and the server issues a <strong>response</strong> that includes a representation of the resource.</p> <p>The concept was formalized in 2000 by Roy Fielding, one of the architects of Hypertext Transfer Protocol (HTTP), about more which below, in his doctoral dissertation. It is not surprising, then, that REST and HTTP mesh very smoothly.</p> <p>A RESTful client-server system is <strong>stateless</strong>, meaning each request against the server contains all the information the server needs to process it; and <strong>cacheable</strong>, in that the server can specify whether and for how long resource representations can be cached either locally on the client or on intermediate servers between the client and the server.</p> <h3>Hypertext Transfer Protocol</h3> <p>Hypertext Transfer Protocol (HTTP) is a stateless protocol based on a client requesting a resource across a network and the server providing a response. As such, an HTTP transaction entails a <strong>request</strong> and a <strong>response</strong>. The request goes from the client to the server, and the response goes from the server back to the client.</p> <h4>HTTP Requests</h4> <p>An HTTP request has three parts:</p> <ol> <li><p>The <strong>request</strong> line, which includes the HTTP method (or "verb"), the uniform resource identifier (URI), and the HTTP version. E.g.</p> <p><code>GET /article/1/ HTTP/1.1</code></p></li> <li><p>One or more optional <a href="http://en.wikipedia.org/wiki/List_of_HTTP_headers">HTTP headers</a>, which are key/value pairs that characterize the data being requested and/or provided.</p></li> <li><p>An optional <strong>message body</strong>, which is data being sent from the client to the server as part of the request.</p></li> </ol> <h4>HTTP Responses</h4> <p>An HTTP response also has three parts:</p> <ol> <li><p>The <a href="http://en.wikipedia.org/wiki/List_of_HTTP_status_codes">HTTP status code</a>, indicating the status of the requested URI, e.g.</p> <p><code>HTTP/1.1 200 OK</code></p></li> <li><p>One or more optional <strong>HTTP headers</strong>, which are key/value pairs that characterize the data being provided.</p></li> <li><p>An optional <strong>message body</strong>, which is the data being returned to the client in response to the request.</p></li> </ol> <h3>Resources</h3> <p>HTTP deals in <strong>resources</strong>. Each URI points to a resource on the server. Think of URIs as nouns, not verbs, with one URI for each resource. </p> <p>For example, if you want to add the ability to create an article, it might be tempting to create a URI called <code>/create_article</code>. This is wrong, because it conflates the object (the resource) and the action (creation). Instead, it makes more sense to have a resource called <code>/article</code> and a <strong>method</strong> that lets you create articles.</p> <h3>HTTP Methods</h3> <p>HTTP defines several methods, or "verbs", to execute on a resource: <code>HEAD</code>, <code>GET</code>, <code>POST</code>, <code>PUT</code>, <code>DELETE</code>, <code>TRACE</code>, <code>OPTIONS</code>, <code>CONNECT</code>, and <code>PATCH</code>. However, the following four are most commonly used in web services:</p> <h4>GET Method</h4> <p>To retrieve a resource, issue an HTTP <strong>GET</strong> request. GET requests are <em>idempotent</em> (see below), which means making a GET request multiple times does not cause any change in the resource that is requested. </p> <p>GET requests do not include a message body, but GET responses usually do.</p> <h4>POST Method</h4> <p>To submit data to be processed, issue an HTTP <strong>POST</strong> request. POST requests require a message body, i.e. the data to be processed. </p> <p>For example, if there is a resource called <code>/article</code> and you want to add a new article, issue a POST request to <code>/article</code> with the content. The server will create a new <em>subsidiary</em> URI under <code>/article</code> - for example, <code>/article/9001</code> - and assign that URI to the content you sent with your POST request.</p> <p>Important note: POST requests are <em>not</em> idempotent (see below), meaning multiple POST requests will create multiple resources with unique identifiers.</p> <h4>PUT Method</h4> <p>To place content at an existing resource, issue an HTTP <strong>PUT</strong> request. For example, if there is a URI <code>/article/9001</code> and you want to replace the content served at that URI, issue a PUT request to that URI with the new content.</p> <p>Important note: PUT requests <em>are</em> idempotent, i.e. issuing 1 or 5 or 50 identical PUT requests will have the same effect on the resource. <strong>PUT</strong> requests must include a message body (the resource to be placed at the URL). </p> <h4>DELETE Method</h4> <p>To remove a resource (and remove its accompanying URI), issue an HTTP <strong>DELETE</strong> request. DELETE requests should be idempotent, i.e. issuing 1 or 5 or 50 identical DELETE requests will delete exactly one resource. DELETE requests do not require a message body.</p> <h4>Idempotence</h4> <p>This funny-looking word is crucial to designing an effective web service. A request is <strong>idempotent</strong> if issuing it more than once does not change the resource state beyond issuing it just once. Read that again if you have to.</p> <p>For example, a DELETE request is idempotent if the first request deletes a resource at a URI, and the second request does nothing because the resource at that URI is already deleted. </p> <p>For another example, a PUT request is idempotent if the first request updates a resource at a URI, and the second request updates the same resource in the same way at the same URI.</p> <p>A request is <em>not</em> idempotent if issuing it more than once <em>does</em> change the resource. For example, a POST request to add a comment to a document is not idempotent, if issuing the POST request twice adds the comment twice (so that the document contains two identical comments with separate URLs). </p> <h4>PUT vs. POST</h4> <p>My original understanding of HTTP methods was that you would use PUT to create a resource and POST to update it. This seems in keeping with common sense, but it breaks down when you apply the all-important filter of idempotence.</p> <p>An interesting discussion on Stack Overflow <a href="http://stackoverflow.com/questions/630453/put-vs-post-in-rest">tackles this issue</a>, but what convinced me to change my mental model was this observation:</p> <blockquote> <p>POST creates a child resource, so POST to <code>/items</code> creates a resources that lives under the <code>/items</code> resource. Eg. <code>/items/1</code>.</p> <p>PUT is for creating or updating something with a known URL. </p> </blockquote> <p>This collision between the inclination to regard PUT as creating and POST as updating is a significant source of confusion about how to well-design a RESTful system, and deserves more attention.</p> <p>Furthermore, it's tempting to assume that the HTTP verbs line up precisely with the SQL CRUD verbs, but while they're superficially similar, they're not identical. Treating them as such leads to this kind of gotcha. </p> <p>It's important to keep the logic of HTTP methods separate from the logic of SQL queries, and to develop specialized appropriate logic between the two domains that ensures the data processing on the server produces responses that satisfy the requirements of the HTTP methods (particularly in respect to idempotence).</p> <h3>Conceiving the Web Service: A Resource/Method Table</h3> <p>At a conceptual level, a RESTful web service API is a matrix of resources and methods that exposes the functionality of the service to third party applications. Below is an example of what that matrix might look like. </p> <p>Again, note well that actions are not mapped to URIs. A resource is an <em>object</em>, a <em>noun</em>, and the action inheres to the HTTP Verb, not to the URI. As a result, the same resource URI can serve different responses (corresponding with different actions) depending on the HTTP Verb.</p> <table> <caption>REST Resource/Action Matrix</caption> <thead> <tr> <th colspan="4">Request</th> <th rowspan="2">Server Action</th> <th rowspan="2">Response</th> <th rowspan="2">Idempotent</th> </tr> <tr> <th>Resource</th> <th>Parameters</th> <th>Method</th> <th>Data</th> </tr> </thead> <tbody> </tr> <tr> <td>/article</td> <td></td> <td>POST</td> <td>article details</td> <td>creates a new article</td> <td>returns confirmation and id</td> <td class="red">No</td> </tr> <tr> <td>/article</td> <td>/id</td> <td>GET</td> <td></td> <td>gets article details</td> <td>returns article details</td> <td class="green">Yes</td> </tr> <tr> <td>/article</td> <td>/id</td> <td>PUT</td> <td>new article details</td> <td>updates article details</td> <td>returns confirmation and updated article details</td> <td class="green">Yes</td> </tr> <tr> <td>/article</td> <td>/id</td> <td>DELETE</td> <td></td> <td>deletes an article </td> <td>returns confirmation of deleted article</td> <td class="green">Yes</td> </tr> </tbody> </table> <p>This is the RESTful way to organize a web service: URIs are objects and HTTP Verbs are actions performed on those objects.</p> <h3>HTTP Response Data Formats</h3> <p>Every web server is also a RESTful web service, accepting GET and POST requests to particular resources, and then performing actions and serving data in response.</p> <p>A conventional web server delivers its data in HTML format (<code>text/html</code>), with related Javascript (<code>text/javascript</code>), CSS (<code>text/css</code>) and image files. HTML is an excellent format for marking up textual data for human use, but it has very limited expressive power for structuring data beyond simple documents.</p> <p>The most common formats used to transmit structured data across HTTP are <strong>XML</strong> and <strong>JSON</strong>, with an honourable mention for <strong>YAML</strong>.</p> <h4>XML</h4> <p><a href="http://www.w3.org/XML/">XML</a>, or eXtensible Markup Language, is a markup (i.e. tag) based syntax based on SGML for formatting structured, text-based data. XML is a format in which to create domain specific markup languages that define particular data structures. </p> <p>For example, <a href="http://en.wikipedia.org/wiki/RSS">RSS</a> and <a href="http://en.wikipedia.org/wiki/Atom_%28standard%29">Atom</a> are XML language standards defined to structure documents published to websites so that the documents can be 'syndicated' to feed readers and third party sites for display.</p> <p>Likewise, the default underlying structure of Microsoft Office documents since Office 2007 is an XML language called <a href="http://en.wikipedia.org/wiki/Office_Open_XML">OOXML</a>.</p> <p>XML structures data by defining elements, properties, data types and allowable nesting rules in an XML schema called a <a href="http://en.wikipedia.org/wiki/Document_Type_Definition">Document Type Definition</a>, or DTD. </p> <p>A given XML document specifies which DTD schema should define its structure with a <a href="http://en.wikipedia.org/wiki/Document_Type_Declaration">Document Type Declaration</a>, or DOCTYPE.</p> <p>A given XML document can reference multiple DTDs by using namespaces.</p> <p>Here is a sample XML file containing contact information about a person, taken from <a href="http://en.wikipedia.org/wiki/JSON">Wikipedia</a>.</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;Person&gt; &lt;firstName&gt;John&lt;/firstName&gt; &lt;lastName&gt;Smith&lt;/lastName&gt; &lt;age&gt;25&lt;/age&gt; &lt;address&gt; &lt;streetAddress&gt;21 2nd Street&lt;/streetAddress&gt; &lt;city&gt;New York&lt;/city&gt; &lt;state&gt;NY&lt;/state&gt; &lt;postalCode&gt;10021&lt;/postalCode&gt; &lt;/address&gt; &lt;phoneNumber type="home"&gt;212 555-1234&lt;/phoneNumber&gt; &lt;phoneNumber type="fax"&gt;646 555-4567&lt;/phoneNumber&gt; &lt;/Person&gt; </code></pre> <p>XML must be: </p> <ul> <li><p><strong>Well-formed</strong> - elements are properly nested, tags are properly closed and match case, special characters are escaped, and Unicode characters are encoded; and </p></li> <li><p><strong>Valid</strong> - its elements and attributes match the rules defined in the DTD.</p></li> </ul> <p>An XML Language called XSLT can be used to map XML documents into other markup languages, e.g. HTML.</p> <p>XML is in wide use in applications that transfer structured data over the internet.</p> <h4>JSON</h4> <p><a href="http://json.org/">JSON</a>, or "JavaScript Object Notation", is a lightweight data format introduced in 2001 by Douglas Crockford.</p> <p>Pronounced "Jason", JSON is based on JavaScript object literal notation, a syntax for creating objects in JavaScript by literally describing their properties and methods. Here is the JSON equivalent to the XML code in the previous section.</p> <pre><code>{ "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] } </code></pre> <p>While the XML above contained 367 characters (not including indentation), the equivalent JSON contains only 272 characters - only three-quarters as large.</p> <p>JSON supports <strong>lists</strong> (ordered sets of values) and <strong>dictionaries</strong> (unordered collections of key/value pairs) with arbitrary nesting and various data types: <strong>number</strong>, <strong>string</strong>, <strong>boolean</strong>, <strong>list<em>, *</em>object</strong> and <strong>null</strong>. </p> <p>Like XML, JSON is also in wide use in applications that transfer structured data over the internet.</p> <p>A major advantage over XML is that the syntax is much simpler and less verbose, which makes it lighter across networks as well as more human-readable.</p> <p>Mature JSON parsers are available for a wide range of programming languages in addition to JavaScript. Python, for example, <a href="http://docs.python.org/library/json.html">includes a json parser</a> as part of its standard library (as of version 2.6; earlier versions can use the third-party <a href="http://pypi.python.org/pypi/simplejson/">simplejson</a> library). </p> <p>A decent JSON parser converts an object back and forth between the programming language's native data types and their JSON equivalents. That way, an application can receive a JSON object, convert it into a native object, process it natively, and then convert the final result back to JSON to be dispatched elsewhere.</p> <h4>YAML</h4> <p><a href="http://www.yaml.org/">YAML</a>, pronounced to rhyme with "camel", is a recursive acronym meaning "YAML Ain't Markup Language". Whereas JSON is a more minimal data format than XML, YAML takes minimalism to an extreme, eschewing quotation marks, brackets and curly braces altogether in favour of significant indentation and line breaks.</p> <p>The YAML equivalent to the XML and JSON contact examples above would be:</p> <pre><code>firstName: John lastName: Smith age: 25 address: streetAddress: 21 2nd Street city: New York state: NY postalCode: 10021 phoneNumber: - type: home number: 212 555-1234 - type: fax number: 646 555-4567 </code></pre> <p>That works out to just 239 characters - including the significant white space.</p> <h3>REST Best Practices</h3> <p>A RESTful web API ought to be <em>discoverable</em> by its users. One crucial way to do that is by making sure that each resource in your API includes URLs to subsidiary URLs.</p> <p>Here is an example, using JSON:</p> <pre><code>{ "articles": [ { "title": "My First Baguette", "description": "After a month of reading about how to make baguettes, I finally took the plunge today.", "date_published": "2011-07-11", "url": "http://quandyfactory.com/blog/81/my_first_baguette" }, { "title": "Tenn. Passes Controversial Lawnmower Theft Bill", "description": "The lawnmowing industry has successfully lobbied the Tennessee State Government to pass a groundbreaking law making it a criminal offence to loan your lawnmower to a neighbour.", "date_published": "2011-06-02", "url": "http://quandyfactory.com/blog/78/tenn_passes_controversial_lawnmower_theft_bill" } ] } </code></pre> <p>When you do this, you make it easy for API users to discover your API structure and functionality without having to keep referring to obscure documentation.</p> <hr /> <p><em>Special thanks to <a href="http://socialtech.ca/ade">Adrian Duyzer</a> for reading a draft of this essay and setting me straight on the respective roles of PUT and POST.</em></p> Ryan McGreal 2 http://quandyfactory.com/blog/142/hamilton_ward_councillor_election_ward_councillor_summary 2014-10-29T12:00:00Z Hamilton Ward Councillor Election Ward Councillor Summary <p>I calculated eligible voters by dividing the votes cast by the percent turnout in the City of Hamilton's <a href="http://vote2014.hamilton.ca/results/">unofficial election results</a> page, so they should be approximately correct but might be off slightly due to the precision of the percent turnout number the City provided.</p> <table> <caption>Ward Councillor Election, % Votes Cast and % Eligible Voters</caption> <thead> <tr> <th>Ward</th> <th>Votes Cast</th> <th>% Turnout</th> <th>Eligible Voters <span style="color:darkred">*</span></th> <th>Winner</th> <th>Votes for Winner</th> <th>% of Votes Cast for Winner</th> <th>% of Eligible Voters for Winner</th> </tr> </thead> <tfoot> <tr> <td colspan="8" style="font-style:italic">Results are unofficial until approved by Hamilton City Clerk. Source: <a href="http://vote2014.hamilton.ca/results/">http://vote2014.hamilton.ca/results/</a><br><span style="color:darkred">*</span> Approximate; calculated by diving votes cast from City results by % Turnout from City results.<br><span style="color:darkred">**</span> Actual total eligible voters as stated on the results page. </td> <tbody> <tr> <td>Ward 1</td> <td>8,870</td> <td>40.74%</td> <td>21,772</td> <td>Aidan Johnson</td> <td>3,030</td> <td>34.16%</td> <td>13.92%</td> </tr> <tr> <td>Ward 2</td> <td>6,389</td> <td>29.04%</td> <td>22,001</td> <td>Jason Farr</td> <td>4,078</td> <td>63.83%</td> <td>18.54%</td> </tr> <tr> <td>Ward 3</td> <td>7,113</td> <td>29.59%</td> <td>24,039</td> <td>Matthew Green</td> <td>2,852</td> <td>40.10%</td> <td>11.86%</td> </tr> <tr> <td>Ward 4</td> <td>6,956</td> <td>29.87%</td> <td>23,288</td> <td>Sam Merulla</td> <td>5,654</td> <td>81.28%</td> <td>24.28%</td> </tr> <tr> <td>Ward 5</td> <td>8,723</td> <td>33.64%</td> <td>25,930</td> <td>Chad Collins</td> <td>6,138</td> <td>70.37%</td> <td>23.67%</td> </tr> <tr> <td>Ward 6</td> <td>9,883</td> <td>35.15%</td> <td>28,117</td> <td>Tom Jackson</td> <td>7,886</td> <td>79.79%</td> <td>28.05%</td> </tr> <tr> <td>Ward 7</td> <td>13,068</td> <td>31.75%</td> <td>41,159</td> <td>Scott Duvall</td> <td>9,956</td> <td>76.19%</td> <td>24.19%</td> </tr> <tr> <td>Ward 8</td> <td>12,554</td> <td>36.29%</td> <td>34,594</td> <td>Terry Whitehead</td> <td>9,364</td> <td>74.59%</td> <td>27.07%</td> </tr> <tr> <td>Ward 9</td> <td>6,826</td> <td>34.20%</td> <td>19,959</td> <td>Doug Conley</td> <td>1,750</td> <td>25.64%</td> <td>8.77%</td> </tr> <tr> <td>Ward 10</td> <td>7,145</td> <td>37.40%</td> <td>19,104</td> <td>Maria Pearson</td> <td>4,090</td> <td>57.24%</td> <td>21.41%</td> </tr> <tr> <td>Ward 11</td> <td>9,562</td> <td>33.61%</td> <td>28,450</td> <td>Brenda Johnson</td> <td>7,873</td> <td>82.34%</td> <td>27.67%</td> </tr> <tr> <td>Ward 12</td> <td>9,445</td> <td>35.90%</td> <td>26,309</td> <td>Lloyd Ferguson</td> <td>7,313</td> <td>77.43%</td> <td>27.80%</td> </tr> <tr> <td>Ward 13</td> <td>8,258</td> <td>43.79%</td> <td>18,858</td> <td>Arlene Vanderbeek</td> <td>3,468</td> <td>42.00%</td> <td>18.39%</td> </tr> <tr> <td>Ward 14</td> <td>4,119</td> <td>33.41%</td> <td>12,329</td> <td>Rob Pasuta</td> <td>3,451</td> <td>83.78%</td> <td>27.99%</td> </tr> <tr> <td>Ward 15</td> <td>5,639</td> <td>27.88%</td> <td>20,226</td> <td>Judi Partridge</td> <td>3,879</td> <td>68.79%</td> <td>19.18%</td> </tr> <tr> <td>Mayor</td> <td>124,550</td> <td>34.02%</td> <td>366,124 <span style="color:darkred">**</span></td> <td>Fred Eisenberger</td> <td>49,020</td> <td>39.36%</td> <td>13.39%</td> </tr> </tbody> </table> Ryan McGreal 2 http://quandyfactory.com/blog/135/a_year_of_running 2014-07-28T12:00:00Z A Year of Running <h3>Introduction</h3> <p>A year ago, I was an obese 39-year-old on the threshold of middle age. I could no longer freeload on good genes or youth to keep me free of cardiovascular disease, diabetes, asthma and the other chronic diseases that accompany excess weight and poor fitness. </p> <p>My lower back hurt, my knees hurt, and I would get winded climbing a few flights of stairs (and my right knee would click on every step).</p> <p>I was reasonably active - several kilometres of daily walking, plus regular bike rides - but years of enjoying food a little too much and gaining a few pounds a year had accumulated into a significant problem. I needed something more intense than my daily walking and biking commutes.</p> <p class="image"> <img src="https://pbs.twimg.com/media/Bph8OKwCEAEhxJi.jpg" alt="West Hamilton Rail Trail" title="West Hamilton Rail Trail"><br> West Hamilton Rail Trail</p> <h3>Born To Run</h3> <p>I had read the book <em>Born To Run</em> by <a href="http://www.chrismcdougall.com/">Christopher McDougall</a> and was inspired to take up the practice again, more than two decades after I had run as a teenager. </p> <p>I was intrigued by his hypotheses about endurance running and curious about his theories on running shoes and midfoot strikes, which were in sharp contrast with the long-stride-and-heel-strike I had practised as a teenager. </p> <p>The running injuries McDougall wrote about - the reason he started exploring his thesis in the first place - reminded me of the reason I stopped running: heels, knees and hips so painful I gave up before I turned 18.</p> <p>Perhaps more importantly, I was inspired by the joy, elation and peacefulness that ran through the book. The idea of running as a blissful activity rather than a painful grind resonated strongly.</p> <p>But it's hard to create new habits. It's hard to find time for an additional activity in an already overstuffed daily schedule. I knew that if I was going to succeed at this, I couldn't just hope for the best - I needed to make time for running, to build it into the structure of my day.</p> <p>An opening appeared when my younger son started middle school. He no longer needed me to meet him after school and walk home with him, so I could start taking an hour for lunch instead of a half-hour. That hour became my running time.</p> <p class="image"> <img src="https://pbs.twimg.com/media/Bqf8ghOCQAA_2Td.jpg" alt="Running on the Escarpment Trail, Hamilton" title="Running on the Escarpment Trail, Hamilton"><br> Running on the Escarpment Trail, Hamilton</p> <h3>Getting Help</h3> <p>I also needed someone to help me get started on the right foot, so to speak. I had tried to start running a few times over the previous couple of years, and quickly gave up every time because I didn't know what I was doing. </p> <p>It seems ludicrous to think anyone needs someone to teach them how to run. After all, we start running as toddlers. But years upon years of bad habits, poor fitness, inelegant form and straight-up insecurity get in the way.</p> <p>My wife signed me up for a six-week learn to run workshop with trainer Dave Harrison of Coach House Fitness, an exemplary coach and straight-up awesome guy whose philosophy of running matched what McDougall espouses in <em>Born To Run</em>.</p> <p>Of all the things I learned during that course (I <a href="/blog/133/some_unexpected_benefits_of_running">wrote a little bit about it</a> last November), the one thing that keeps returning to me was Dave's admonition to <em>relax your face</em> when running. A scrunched-up face leads to a tense neck, tense shoulders, stiff arms, balled fists and all-around misery.</p> <p>A relaxed face, on the other hand, brings relaxation all the way down: loose shoulders, relaxed arms, an easy gait and a joyful experience. I see it on the faces of runners I encounter on the trails: the blissed-out look that proves a hard endurance activity can also be a tranquil meditation.</p> <p>I don't mean the so-called "runner's high" release of beta-endorphins and endocannabinoids, either. I've experienced that particular burst of euphoria late in the occasional hard run, but the entire experience is joyful. But I'm getting ahead of myself.</p> <p class="image"> <img src="https://pbs.twimg.com/media/Bsb0r5yCYAAIlzb.jpg" alt="Running on the Spring Creek Trail, Dundas Valley Conservation Area" title="Running on the Spring Creek Trail, Dundas Valley Conservation Area"><br> Running on the Spring Creek Trail, Dundas Valley Conservation Area</p> <h3>Starting Out</h3> <p>I took my first run on July 27, 2013, and it was a humiliating reality-check. I ran 2.7 km - by which I mean I alternated between running (slowly) and walking - in around 21 minutes.</p> <p>All of my early runs were like this, for the simple reason that I couldn't run more than a short distance before I was too winded to continue. Here's a chart (from <a href="http://runkeeper.com">RunKeeper</a>) of an early run. You can see my speed go up and down like a sine wave.</p> <p class="image"> <img src="/static/images/runkeeper_early_run.png" alt="RunKeeper chart: elevation and speed, July 31, 2013" title="RunKeeper chart: elevation and speed, July 31, 2013"><br> RunKeeper chart: elevation and speed, July 31, 2013</p> <p>I ran two or three times a week, giving my sad middle-aged body at least day or two between runs to recover. I generally followed the <a href="http://www.runnersworld.com/running-tips/10-percent-rule">Ten Percent Rule</a> and built up my distance slowly while at the same time increasing the ratio of time I spent running relative to walking.</p> <p>I knew that I had to keep the chain going. The first time I gave myself an excuse not to run, it would get progressively easier and easier to beg off doing it until I would eventually just give up again. </p> <h3>Progress and Setbacks</h3> <p>That determination not to break the chain is a big part of why I didn't fail this time. After each run, all I had to muster was enough drive to start the next one so it never felt overwhelming.</p> <p>I still remember the profound feeling the first time I ran the entire distance. It happened nearly a month after my first run. I kept waiting to get too out of breath to keep running but it didn't happen. I got to the end of the run and celebrated an important milestone.</p> <p>Soon after, I reached 5 km for the first time. Things seemed to zoom along from that point. I passed 8 km in October and felt that 10 km wasn't far off. </p> <p>Then, in late November, a problem that had dogged me intermittently since early September bit down hard: medial tibial stress syndrome, the dreaded <em>shin splints</em>. </p> <p>Shin splints are inflammation of the connective tissues along the shinbone, and they're common among new runners who increase the intensity of their exercise too quickly. They hurt like hell and make running almost impossible. </p> <p>On Dave's advice, I cut my distance back to 5.5 km per run. I started icing my shins after every run and several other times a day, incorporated a number of strengthening exercises (like calf raises on a stair), and tried not to be too disappointed that I had lost so much ground.</p> <p>My shins got much better over the next couple of months. Eventually I stopped icing my shins throughout the day, but I still ice them faithfully after a run as a wonderful-feeling preventive measure.</p> <p>By mid-January I was back up to 8 km a run again, and my pace was slowly but steadily getting better. From an 8-minute kilometre (7.5 km/h) in August, I was up to around 6:45/km (9.5 km/h). Still slow, but a significant personal improvement.</p> <p class="image"> <img src="https://pbs.twimg.com/media/BrOaCVGCMAARdIc.jpg" alt="Deer on the trail" title="Deer on the trail"><br> Deer on the trail</p> <h3>Winter</h3> <p>I ran outside right through the winter - and a bloody brutal winter it was, too. I still remember my run on January 13: It was so cold out that I ran almost 7 km and never even broke a sweat.</p> <p>The trails were often impassible with ice, so I switched to running on the streets: out along Cumberland to Gage Park and back along Main; or down Wellington to the Waterfront and back up along James North.</p> <p>A forward-leaning foot-strike really helped with the ice. My centre of gravity was always under my feet and half the time I was almost tip-toeing along treacherous paths. The slippery, uneven terrain really strengthened my stabilizing muscles.</p> <p>That said, my feet got wet and I did a lot of sliding around - and my feet did a lot of sliding around inside my wet shoes. I got some nasty blisters that almost sidelined me at one point. I bandaged my blisters, switched my socks from cotton to doubled-up synthetics, tightened my laces a bit and kept at it.</p> <p>There's something indescribably cool about standing outside in the bitter cold after a run, steam pouring not just out of your mouth but also off your exposed skin. As one friend put it, "I feel like a wizard!"</p> <p class="image"> <img src="https://pbs.twimg.com/media/BdT9UYrIQAEt4lP.jpg" alt="Icy winter streets" title="Icy winter streets"><br> Icy winter streets</p> <h3>Long Runs</h3> <p>Heading into February, Dave recommended that I should make one run a week a "long run" - a slower, more long-distance run to build strength and endurance and, of particular appeal to me, burn more fat.</p> <p>So I started doing a long run on Saturdays. It took a while to find a routine that didn't eat into my family time, but I eventually settled on a run starting between 6:00 and 6:30 AM (I normally get up at 4:45 for work, so this is sleeping in).</p> <p>I noticed that my pace on my shorter weekday runs smoothed out and got faster after I started doing long runs. Because I only have an hour for lunch, the distance I can cover is a function of how fast I run. By around mid-March I was running over 9 km for each weekday run and 12 km on my Saturday run.</p> <p>By April I was running a a pace of around six minutes per km (10 km/h) and my weekday runs were up to around 9.5 km distance.</p> <p>In mid-April I made a big jump in long-run distance from 12 to 15 km. It violates the Ten Percent Rule but I felt ready and the long runs really started to feel great. </p> <p>I also experienced my first <em>bonk</em>: that moment when your glycogen stores run out and you start to feel like crap. That was the last time I went out on an empty stomach. Now I have a big glass of water and some fruit (or leftover salad from Friday night's dinner) before starting.</p> <p>I look forward to my long run all week. It's quiet, cool and peaceful in the morning. There's no rush to get back to the office, so I can take my time and just enjoy the trail. </p> <p>I enjoy the lush greenery and admire the local wildlife. If I feel like it, I stop and eat wild mulberries or blackberries on the way.</p> <p class="image"> <img src="https://pbs.twimg.com/media/BrOaT1qCMAAjsMp.jpg" alt="Mulberries for breakfast" title="Mulberries for breakfast"><br> Mulberries for breakfast</p> <h3>Summer Running</h3> <p>Then summer came and I started running in hot weather. Last summer was brutally hot but my distances in August and September were so short - and my pace so slow - that heat and humidity weren't really limiting factors.</p> <p>This summer has been much milder overall, but hot and humid is hot and humid. </p> <p>The first run I did on a humid day this summer left me feeling weak and nauseated. Another runner who was passing me slowed down to see if I was okay and suggested that I start bringing water with me. </p> <p>Even with water (and a sports drink on my long runs) my pace suffered, but I slowly acclimatized to the summer conditions and my pace drifted back down to around 6:00/km (10 km/h).</p> <p>I should note that I haven't specifically focused on improving my pace. I'm not interested in winning any medals, and I don't want to push too hard and seriously injure something. Nevertheless, my pace has tended to improve over time through the simple act of getting progressively fitter and pushing a bit on each run.</p> <p>I always feel a nice sense of accomplishment when I complete a run at an average speed faster than 10 km/h.</p> <p class="image"> <img src="https://pbs.twimg.com/media/BpSrMe-CQAAVzA6.jpg" alt="Dappled shade on the Escarpment Trail" title="Dappled shade on the Escarpment Trail"><br> Dappled shade on the Escarpment Trail</p> <h3>Today and Tomorrow</h3> <p>So here we are, a year after I took that first humbling half-shamble. In the past year, I have:</p> <ul> <li>Run a total distance of 1,325 km;</li> <li>Burned 155,468 calories;</li> <li>Dropped 50 lbs and four pant sizes;</li> <li>Increased my long run distance to 22+ km;</li> <li>Increased my weekly total distance to around 41 km; and</li> <li>Improved my average pace from 8:15/km to around 6:00/km.</li> </ul> <p>Here is a snapshot chart of every run I've gone on in the past year, tracking my distance and pace:</p> <p class="image"> <img src="/static/images/running_one_year.png" alt="Distance and Pace, July 27, 2013 to July 27, 2014" title="Distance and Pace, July 27, 2013 to July 27, 2014"><br> Distance and Pace, July 27, 2013 to July 27, 2014</p> <p>The <a href="/running">live chart</a> is updated regularly.</p> <p>You can see the overall upward trend in distance and downward trend in pace over the long haul. </p> <p>You can also note the drop in distance in late November when I got shin splints, the introduction of long runs in mid-February (where the distance line starts to zig-zag), and the increasing volatility in my pace once the weather got hot. </p> <p>I find it has really helped to see the larger context of my running history, especially after a particularly slow effort. It has been a bit of a juggling act to alternate between focusing on the immediate next step while still keeping an eye on the bigger picture.</p> <p>A year on, I enormously enjoy the many benefits of running - both the ones I expected and the ones <a href="/blog/133/some_unexpected_benefits_of_running">I didn't expect</a>. I can no longer quite remember how I was able to function day-to-day before I started running. </p> <p>My deepest regret is that I didn't start sooner - I missed out on years of this!</p> <p>If you are considering taking up running, I would suggest the following:</p> <ul> <li><p><strong>Get a trainer:</strong> Find someone whose running philosophy feels comfortable to you and give yourself a good start. I highly recommend Dave Harrison of Coach House Fitness if you're in the vicinity of southwest Hamilton.</p></li> <li><p><strong>Take it slow:</strong> Your body is amazingly adaptive but it responds best to gradual change. If you try to rush things, your connective tissues will object furiously.</p></li> <li><p><strong>It's not supposed to hurt:</strong> sore, achy muscles are a normal part of exercising, but you should not be in actual pain during or after your run. Treat pain with rest and ice, and listen to your body.</p></li> <li><p><strong>Allow yourself to be inept:</strong> Don't be embarrassed to suck at running when you start out. More experienced runners will blow past you on the trail, but remember that they started out the exact same way you did and they got where they are by not giving up. </p></li> <li><p><strong>Small changes add up:</strong> When I started out a year ago, I would have thought you were nuts if you said I'd be running over 40 km a week a year later. </p></li> <li><p><strong>Do your warmups and cooldowns:</strong> I start every run with an <a href="https://www.youtube.com/watch?v=Eit3pGym2Dg">ABC drill</a> and end every run with a cooling walk, calf raises and stretches, followed by ice on my shins. </p></li> <li><p><strong>Remember to enjoy yourself:</strong> Running is supposed to feel <em>good</em>. Think about it as a reward, not a punishment. Allow yourself to feel embodied and connected through running. You are tapping into a profoundly human legacy that goes back millions of years, so don't be surprised to experience a sense of wonder and even reverence.</p></li> </ul> <p>So far, I haven't run with specific goals in mind - other than the obvious one, which is to keep at it. That said, I've got my eye on next year's <a href="http://www.aroundthebayroadrace.com/">Around The Bay Road Race</a>, a 30 km run <a href="https://maps.google.com/maps/ms?ie=UTF8&hl=en&msa=0&msid=114954809910133418529.00045a7921454be2ed2ca&ll=43.280955,-79.821167&spn=0.167959,0.215263&z=12&dg=feature">around Hamilton Harbour</a>. </p> <p>Around The Bay is the oldest road race in North America and a proud Hamilton tradition, and it would be a huge honour for me to participate.</p> Ryan McGreal 2 http://quandyfactory.com/blog/133/some_unexpected_benefits_of_running 2013-11-27T12:00:00Z Some Unexpected Benefits of Running <p>Four months ago, increasingly conscious of the steadily thickening layer of fat around my middle and roused into action by the imminent arrival of my 40th birthday, I started running. I wanted to lose some weight, get into better shape, and improve my cardiovascular fitness, and running seemed like a great way to do it.</p> <p class="image"> <img src="https://pbs.twimg.com/media/BWtx3PUCAAALf1W.jpg" alt="Escarpment Trail, Hamilton" title="Escarpment Trail, Hamilton"><br> Escarpment Trail, Hamilton </p> <h3>Born to Run</h3> <p>I was inspired by Christopher McDougall's fantastic book <em>Born to Run</em>, which made a lot of sense in its hypothesis of humans as highly optimized persistence hunters who literally ran for survival. </p> <p>Even more important was McDougall's transformative experience switching from a heel-striking gait to a forefoot/midfoot strike, which he credits with all but eliminating the injuries and chronic pains that had plagued him for years.</p> <p>This resonated with me because I ran a lot as a child and again as a teenager, but stopped in both cases because of persistent pain in my heels and knees. Like most people who grew up during the 1970s running revival, I ran with a long stride and a heel-strike - a gait that is made possible through the thick padding and cushioning of modern running shoes.</p> <p>McDougall's thesis is that this gait is unnatural, and that shoes designed to protect our feet, legs and hips from the pounding of running actually allow more damage to occur. He says we should be running the way we run when barefoot - on the balls and toes of our feet, not on the heels.</p> <h3>Learning to Run</h3> <p>After thinking for a long time that I should really do something with this information, I finally signed up for a six-week Learn to Run course with an excellent running coach - the talented, knowledgeable and all-around awesome Dave Harrison, whose philosophy of running was very similar to what McDougall espoused in his book.</p> <p>Over six Wednesday evenings, I learned: proper running form; the Ten Percent Rule; warming up; stretching; exercising my core; strengthening my ankles, knees and hips; running up and down hills; running on trails; how to dress to avoid chafing; and how to sooth sore shins. </p> <p>I learned that you shouldn't grimace when you're running, because scrunching up your face causes the rest of your body to scrunch up too. I learned that "No Pain, No Gain" is nonsense - running is supposed to feel good, not painful.</p> <h3>Benefits</h3> <p>So far, it's working: I'm slowly losing weight, getting into better shape and improving my cardiovascular fitness. What has surprised me, however, has been the collection of unexpected additional benefits I've noticed from running.</p> <h4>Improved Mood</h4> <p>Of course I've heard that exercise is good for reducing stress, but I experienced it firsthand over the past four months. No matter how anxious or stressed I'm feeling, going for a run calms me right down and allows me to enjoy some perspective on whatever situation is causing me anxiety. Generally, my mood has been better - I'm happier, less prone to losing my cool and more resilient to shocks and aggravations.</p> <h4>Meditation</h4> <p>Somewhat related, I've been pleased with the sheer serenity I get from running. I spend most of my time all up in my head, and running is a wonderful way to get out of my head and into my body. It's a form of meditation: instead of thinking about all the crap weighing on me, I think about breathing out, breathing in, foot stepping down, foot going up, and the myriad connected rhythms of forward motion. I don't always manage to slip into a groove where everything seems to be working in synchronization, but when I do it's a truly amazing experience.</p> <h4>Better Balance</h4> <p>Since I've been running, I find my general balance has improved significantly. I've never been particularly graceful, so this is a pleasant feeling. I expect it is due to a combination of strengthening my ankles, legs and hips for better stability, becoming more conscious of my centre of gravity, and even losing weight. (And likewise with flexibility - I'm getting more bendy.)</p> <h4>Back Pain</h4> <p>I've had intermittent lower and middle back pain since I hurt my back lifting an old, heavy appliance up a flight of stairs when I was 18. It would come and go based on how well I was maintaining my posture, whether I slouched in a chair for long periods, whether I slept on my stomach and how long I spent in bed (over eight hours and I'd pay the price). Since I've been running, my back has been entirely pain-free. This is likely due to a combination of weight loss, core strengthening and improved attention to blalance and posture.</p> <h4>Less Eating</h4> <p>This was perhaps the most surprising. A major impetus for starting to run was my realization that attempts to lose weight by eating less were highly unlikely to be successful, and I had better focus on the accounts payable side of my body's metabolic ledger. I assumed that when I started running I would eat <em>more</em>, because I would be more hungry. In fact the opposite has happened: I have less appetite in general, and after going for a run I'm specifically motivated not to snack, since I know how much work I have to do to burn off those extra calories.</p> <h4>Improved Productivity</h4> <p>I'm not as surprised about this, but I find a lunchtime run really unlocks my ability to solve problems and get things done in the afternoon. For years, my go-to method for solving a particularly nettling coding problem has been to put it out of my head and go for a brisk walk, and that's even more true of an hour-long run.</p> Ryan McGreal 2 http://quandyfactory.com/site/24/home 2013-08-22T12:00:00Z Home <p style="float: right; margin-left: 5px;"><img style="border: 1px solid black;" src="http://raisethehammer.org/static/images/ryan_mcgreal_sm.jpg" alt="Ryan McGreal" title="Ryan McGreal"></p> <p>This is the personal website of Ryan McGreal in Hamilton, Ontario, Canada. </p> <p>I live with my family and work as a programmer and writer. I am the editor of <a href="http://raisethehammer.org">Raise the Hammer</a> and volunteer with <a href="http://hamiltonlightrail.ca/" target="_blank">Hamilton Light Rail</a>, a citizen group dedicated to bringing light rail transit to Hamilton. </p> <p>Several of my <a href="/essays/">essays</a> have been published in the <cite>Hamilton Spectator</cite>.</p> <p>This website serves mainly as a handy repository of <a href="/essays/">published essays</a>, <a href="/projects/">active projects</a>, <a href="/blog/">random musings</a> and <a href="/links/">links</a> that I work on on or use frequently. It's also an online playground where I can try out new ideas.</p> <p>For a much more detailed introduction to the site and its subject matter, check out the <a href="/about/">About</a> page.</p> <p>Otherwise, feel free to contact me via email: <a href="mailto:ryan@quandyfactory.com">ryan@quandyfactory.com</a>.</p> Ryan McGreal 2 http://quandyfactory.com/blog/131/stand_your_ground_or_last_man_standing 2013-07-31T12:00:00Z Stand Your Ground or Last Man Standing <p>The death of Trayvon Martin at the hands of George Zimmerman, and the latter's subsequent acquittal on the charge of second degree murder, demonstrates forcefully why <em>Stand Your Ground</em> laws have no place in a civil, law-based society.</p> <p>The <a href="http://videos.mediaite.com/audio/Raw-Audio-911-Call-George-Zimme">audio recording</a> of Zimmerman's 911 call is instructive. You can also <a href="http://www.documentcloud.org/documents/326700-full-transcript-zimmerman.html">read a transcript</a>.</p> <p>Zimmerman, a self-styled neighbourhood watch patrol, phoned in to report "a real suspicious guy" who "looks like he's up to no good" because Martin was walking calmly in the rain looking at houses as he passed them. </p> <p>Zimmerman complained, "These assholes, they always get away."</p> <p>You can hear the sound of movement and Zimmerman sounds out of breath. The dispatcher asked, "Are you following him?" </p> <p>Zimmerman replied, "Yeah."</p> <p>The dispatcher said, "Okay, we don't need you to do that."</p> <p>The dispatcher then tried to get Zimmerman to return to his car and wait for the police. Instead, Zimmerman asked for the police to call him when they arrived so he could meet them.</p> <p>Zimmerman continued to pursue Martin despite being directed not to by the dispatcher. That pursuit led to a confrontation, and that confrontation led to Zimmerman shooting Martin point-blank in the chest and killing him. </p> <p>There is some uncertainty over whether Martin attacked Zimmerman during the confrontation, but it is clear that the confrontation took place because Zimmerman took it upon himself to protect his neighbourhood from Martin.</p> <p>Keep this in mind: <em>Martin was doing nothing wrong</em> when Zimmerman confronted him. He was unarmed and walking lawfully toward his own place of residence with a pack of Skittles in his pocket after a trip to the convenience store. </p> <p>If you were walking alone at night and an angry, suspicious stranger pursued you, how would you react?</p> <p>The idea behind Florida's <em>Stand Your Ground</em> law is that a citizen has the right to use force, including deadly force, in the defence of self and property from danger. Specifically, it maintains that an individual does not have any responsibility to try and avoid a confrontation or retreat from danger in any location where the individual is legally allowed to be present.</p> <p>The reason Zimmerman was not convicted is that <em>Stand Your Ground</em> covers his shooting as self-defence, even though Martin was not trespassing on Zimmerman's property and it was Zimmerman who pursued and confronted Martin. Thanks to <em>Stand Your Ground</em>, Zimmerman's jury was instructed that he had no duty to retreat from conflict, so any uncertainty over who attacked first was enough to provide a reasonable doubt and acquit him.</p> <p>Zimmerman's supporters defend Zimmerman's right to DIY vigilanteeism and violence in patrolling his gated community. Strangely, those same people seem silent on the question of whether Martin <em>also</em> had a right to "stand his ground" when a stranger pursued and confronted him after deciding he was a threat.</p> <p>What if the exchange had unfolded differently? What if Martin had killed Zimmerman instead of the other way around? Would Martin be the one acquitted of second degree murder thanks to Florida's <em>Stand Your Ground</em> law, since he had a right to defend himself from this stranger who made him feel threatened?</p> <p>In a situation where there are two people who mutually feel threatened by each other, <em>Stand Your Ground</em> creates a situation in which personal security becomes a <a href="http://en.wikipedia.org/wiki/Positional_good">positional good</a> that can accrue only to the stronger party in the exchange, at the expense of the weaker party. </p> <p>In other words, <em>Stand Your Ground</em> replaces the rule of law with the primitive concept of <em>might makes right</em> that the rule of law was supposed to replace. It squanders the positive sum game that a level legal playing field provides and returns us to a state in which mutual distrust spirals into needless violence.</p> Ryan McGreal 2