<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
 <title>Luke jf Schlather</title>
 <link href="http://www.flinchbaughschlather.com/atom.xml" rel="self"/>
 <link href="http://www.flinchbaughschlather.com/"/>
 <updated>2014-12-21T11:09:49-06:00</updated>
 <id>http://www.flinchbaughschlather.com/</id>
 <author>
   <name>Luke Schlather</name>
   <email>luke schlather.info</email>
 </author>

 
 <entry>
   <title>Lake Crescent, Sol Duc, and Port Angeles</title>
   <link href="http://www.flinchbaughschlather.com/luke/travel/2014/08/17/olympic-peninsula-by-bus-and-bike/"/>
   <updated>2014-08-17T00:00:00-05:00</updated>
   <id>http://www.flinchbaughschlather.com//luke/travel/2014/08/17/olympic-peninsula-by-bus-and-bike</id>
   <content type="html">&lt;p&gt;This past week we went to the Olympic Peninsula. We took the Dungeness Line from Seattle to Port Angeles, and then took a local bus to Lake Crescent. We originally had intended to bike to Lake Crescent, but there really isn&amp;#8217;t a good path to get there from Port Angeles. The Olympic Discovery Trail is still something of a work in progress. The link from Port Angeles to Forks via Lake Crescent is mostly highways, with a bit of horse trails that aren&amp;#8217;t terrible to bike on. We saw a few bikers taking the south shore of Lake Crescent, which with about 10 miles of two-lane highway with no shoulder seems pretty insane. Especially with the way the traffic is this time of year. On the other hand, I probably do things in Seattle every day that are, strictly speaking, more dangerous.&lt;/p&gt;

&lt;p&gt;When we got to Lake Crescent, we ran into a bit of a stumbling block. There was no water, and the ranger was ready to kick us out since Lake Crescent doesn&amp;#8217;t have any functioning latrine. We prevailed on him to let us stay, and borrowed a bucket from our neighbors. For dinner we had lentils with boxed macaroni and cheese supplemented with a bit of mozzarella. Margaret wasn&amp;#8217;t too happy that I added the lentils to it.&lt;/p&gt;

&lt;p&gt;The next day we got up, and after some deliberation decided to bike to Sol Duc Hot Springs instead of sticking around at Lake Crescent as we had planned. We were told that the water was likely to be restored that afternoon (and it was) but I was ready to move on and get a little deeper into the woods anyway. So, we packed up our tent, loaded everything on our bikes, and went down to the lake for a quick swim. It was a little cloudy, but Lake Crescent was fairly warm and the water in the national forests around here is always wonderful. At lower elevations I&amp;#8217;m pretty much always pleasantly surprised how warm the water is.&lt;/p&gt;

&lt;p&gt;The 14 miles up to Sol Duc were a nice ride. The hill up 101 to the turn off for the hot springs was really the worst part of it. Sol Duc Hot Springs road is two lanes, but the traffic light enough that it doesn&amp;#8217;t feel too bad. What was somewhat disconcerting was passing the gate and not knowing how many cars were going to pass by us on the way to the hot springs. The campsites are first-come first-serve, and the lodges are by reservation, pretty much always booked solid in the high summer months. It&amp;#8217;s a little perverse that a person in a gas-guzzling pollution machine can show up to the park hours after a bicyclist or hiker and get first dibs on a campsite. When we got there at about 5pm, we had a bit of a scare thinking that the campsites were full, but it turned out that we were only looking at the board for loop A, and loop B still had space. After that we made some more macaroni and cheese, and then spent some time soaking in the hot pools. After 14 miles with loaded bikes, it was a pleasant break. We&amp;#8217;ve done 50 miles in one day similarly a few times before, and this was a lot less stressful.&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/2014/2014-08-17-olympic-peninsula-by-bus-and-bike/DSC_0636.JPG' alt='Sol Duc Hot Springs' /&gt;&lt;/p&gt;

&lt;p&gt;The next day we hiked to Mink Lake, a short 3 mile hike from the campsite. We took it very slow on the way up, and had a great time. There were fields of huckleberries under the old trees all the way up. The huckleberries seem to have a way of clearing out the underbrush and making it easy to move around. Of course we stayed on the trails. Mostly. For dinner we ate at the Aramark-run cafe at Sol Duc, which was okay. Hearing Aramark we were expecting prison food, and given that expectation it was quite good. There were only a few vegetarian options, but the black bean burger was good, and the hummus seemed pretty fresh. I&amp;#8217;m always pretty happy when they have a black bean burger instead of some prepackaged TVP abomination.&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/2014/2014-08-17-olympic-peninsula-by-bus-and-bike/DSC_0524.JPG' alt='Trailhead at Sol Duc to Mink Lake' /&gt; &lt;img src='/images/2014/2014-08-17-olympic-peninsula-by-bus-and-bike/DSC_0546.JPG' alt='Huckleberries' /&gt; &lt;img src='/images/2014/2014-08-17-olympic-peninsula-by-bus-and-bike/DSC_0600.JPG' alt='Margaret at Mink Lake' /&gt; &lt;img src='/images/2014/2014-08-17-olympic-peninsula-by-bus-and-bike/DSC_0641.JPG' alt='Sol Duc Falls' /&gt;&lt;/p&gt;

&lt;p&gt;The next day, I took a quick hike/bike up to Sol Duc falls, which was nice, and then we packed up and biked back to Lake Crescent. The Sol Duc road is really nice to bike. The way up is definitely strenuous, but for about 600 feet of elevation gain it&amp;#8217;s a really pleasant grade with minimal up and down. The way back down is virtually all downhill. We didn&amp;#8217;t put air in our tires before hading down, so the fastest we went was about 30mph. We again caught the local bus back to Port Angeles, where we stayed the night in a motel and unwound, enjoying clean and dry sheets after a damp but very enjoyable day on the peninsula. Now we&amp;#8217;re almost back to Seattle and crowded city life.&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/2014/2014-08-17-olympic-peninsula-by-bus-and-bike/DSC_0703.JPG' alt='Bus Stop by Highway 101 at Lake Crescent' /&gt; &lt;img src='/images/2014/2014-08-17-olympic-peninsula-by-bus-and-bike/DSC_0750.JPG' alt='Seagull at Port Angeles' /&gt;&lt;/p&gt;

&lt;p&gt;Photos mostly by Margaret Olsen&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Spring</title>
   <link href="http://www.flinchbaughschlather.com/luke/holden/2011/06/16/spring/"/>
   <updated>2011-06-16T00:00:00-05:00</updated>
   <id>http://www.flinchbaughschlather.com//luke/holden/2011/06/16/spring</id>
   <content type="html">&lt;p&gt;Spring at 3300 feet in the Cascade Mountains is a brilliant experience. Starting around May, the mountains started living up to their name, and cascades of water started springing up from every nook and cranny. When a spring appeared in the middle of the dirt road in front of my chalet, I found myself pondering the triple meaning of spring. Did someone first notice some water springing out of the ground and then later say that something else sprung up just like water? Or did things generally spring before water springing up out of the ground was a spring? I don&amp;#8217;t know. But seeing the water coming up so longed sealed as layer upon layer of snow and ice is fantastic.&lt;/p&gt;

&lt;p&gt;Reaching Hart Lake for the first time since the melt began, I saw cascades of water pouring down Mount Bonanza. Having lived in these mountains for nine months, I&amp;#8217;m noticing a lot of strange, primal things coming out. Seeing those cascades was one of them. Like seeing the green grass down at Lake Chelan, seeing all that water just filled me with a sense of euphoria. And not the sort of mild euphoria I&amp;#8217;d been accustomed to in my mostly city-dwelling life, but something rich and deep welling up within me, a knowledge that after all that winter, life was definitely returning to Railroad Creek Valley.&lt;/p&gt;

&lt;p&gt;Now the springs are quieting down, and summer is, if not here, just around the corner.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Point No Point</title>
   <link href="http://www.flinchbaughschlather.com/luke/holden/2010/10/13/point-no-point/"/>
   <updated>2010-10-13T00:00:00-05:00</updated>
   <id>http://www.flinchbaughschlather.com//luke/holden/2010/10/13/point-no-point</id>
   <content type="html">&lt;p&gt;Today I participated in a curious ritual. I&amp;#8217;m on my way from Holden to Washington, DC for a wedding, and so am riding down Lake Chelan in the Lady II, the ferry which connects our mountain village to the outside world. There are a variety of houses along the lake, though they are somewhat sparse. So, naturally the Lady II drops off supplies as it travels down the lake. One of the Lady&amp;#8217;s crewmen approached me and asked if I&amp;#8217;d be willing to carry off a block of salt, and I readily accepted the opportunity to hop off the boat for a minute or two. However, we were not delivering to a house as such, but to Point No Point, a little slope that is pretty much indistinguishable from any other along the mountain, and seems fairly aptly named.&lt;/p&gt;

&lt;p&gt;But our goal was to deposit several 50 pound blocks of salt on the side of the mountain, near to the shore where the Lady&amp;#8217;s passengers could see and admire the creatures of the Wenatchee National Forest. Myself an inhabitant of the forest for about a month now, it seemed very natural for me to hop off the boat and climb a dozen yards or so along the point to drop off the salt, stepping a little gingerly along the way for fear of rattlesnakes (which don&amp;#8217;t venture up into Holden&amp;#8217;s forest uplake.)&lt;/p&gt;

&lt;p&gt;After a month at Holden, I&amp;#8217;ve done quite a lot. I hiked to Holden Lake, a beautiful lake nestled between Bonanza and Martin mountains, about 6 miles from the village and 2500 feet up. (5500 above sea level.) The sight of the mountains around me has yet to grow boring. In no small part this is thanks to the clouds which swim down the valley hovering a few hundred yards above, concealing and revealing the mountain trails and trees which crisscross our valley. Perhaps the best view I&amp;#8217;ve been greeted with though was a couple weeks ago, on what I know was a Tuesday on account of the pancakes, when I walked out of my chalet and saw a double rainbow bridging the valley above and beyond the Hotel. I got my pancakes and ate outside on the Adirondack chairs with one of my housemates, watching the rainbow fade and the clouds dance along the ridges. It was around this point I realized why Siri had been playing &lt;em&gt;Somewhere Over the Rainbow&lt;/em&gt; on the bells with her usual morning chimings on the organ&amp;#8217;s outside speakers.&lt;/p&gt;

&lt;p&gt;Now I&amp;#8217;m off to DC for a wedding and some dancing with friends, then a few more days and it&amp;#8217;s back to my mountain valley home.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Starting a Starter</title>
   <link href="http://www.flinchbaughschlather.com/luke/cooking/2010/09/04/starting-a-starter/"/>
   <updated>2010-09-04T00:00:00-05:00</updated>
   <id>http://www.flinchbaughschlather.com//luke/cooking/2010/09/04/starting-a-starter</id>
   <content type="html">&lt;p&gt;In making a sourdough starter, we go hunting for some rarer specimens of the yeast family than the usual sacchromyces cerevisiae that one will find dried at the supermarket. I don&amp;#8217;t know specifically what yeast live here in Ohio, but I&amp;#8217;ve managed to catch a handful and grow them atop my fridge. I started, in a bit of silliness, using some spring water gathered from a favored hiking spot of mine, the sulfur and iron-rich spring in Glen Helen which gives the town of Yellow Springs, OH its name. I took with me an empty milk jug, filled it to the brim, and returned home.&lt;/p&gt;

&lt;p&gt;Though I wasn&amp;#8217;t planning on it at the time, this proved to be a great choice, though less for the water of Yellow Springs than for the milk jug. A sourdough starter is not actually so simple as your standard storebought freeze-dried automagic yeast. You will never find one that just consists of a homogeneous bunch of yeast, all born from the same batch of a single species. Rather, it is a living and breathing ecosystem, built not just of yeast, but of other organisms, including crucially lactic-acid producing bacteria that thrive on lactose. This acid gives the sourdough its characteristic flavor, and furthermore creates an environment that is comfortable for yeast, but too acidic for many less desirable organisms like E. Coli and Salmonella. So storing the first water I used to make the starter provided an excellent source of sourdough-friendly bacteria to get things off to a good start.&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/cooking/2010-09-04-starting-a-starter/2010-08-23.jpg' alt='Starting a starter' /&gt;&lt;/p&gt;

&lt;p&gt;Loosely following a couple of guides I read on the web, I mixed a couple tablespoons of the water with a couple tablespoons of flour and left it to set overnight. The next day it didn&amp;#8217;t look particularly active, so I added 1/2 cup flour and 1/2 cup of my now sour-smelling water to see if it would get off the ground. The next day, it definitely had begun to bubble a bit and take on the smell of something like sour yogurt. Generally speaking, the recipe for starter is very simple: combine equal amounts flour and water, and whenever you feed the starter additional flour and water, be sure to add enough to double the starter in size.&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/cooking/2010-09-04-starting-a-starter/2010-08-24_122544.jpg' alt='' /&gt; &lt;img src='/images/cooking/2010-09-04-starting-a-starter/2010-08-25_155359.jpg' alt='' /&gt;&lt;/p&gt;

&lt;p&gt;So, by Tuesday, to avoid overflowing the container, I was dumping out half of the starter each day, and feeding it half a cup of whole wheat flour, half a cup of unbleached white flour, and a cup of filtered water. By Thursday, it was beginning to smell properly yeast-like, and each day when it came time to feed it a quarter-inch layer of hooch had pooled on top. I wasn&amp;#8217;t entirely sure if it had just separated, but after a little more time with it, I&amp;#8217;m now sure that that layer of liquid is the mostly alcoholic dredge that rises to the surface after a day of yeasty fermentation. &lt;img src='/images/cooking/2010-09-04-starting-a-starter/2010-08-29_231010.jpg' alt='' /&gt; &lt;img src='/images/cooking/2010-09-04-starting-a-starter/2010-09-01_125443.jpg' alt='' /&gt;&lt;/p&gt;

&lt;p&gt;Friday evening I took a partially spur-of-the-moment trip to Ann Arbor for a &lt;a href='http://www.ninjaswing.com/'&gt;Lindy Hop Exchange&lt;/a&gt;, and asked my parents to watch the starter and feed it on Saturday. Unfortunately, I neglected to write down specific instructions, and my father misremembered my &amp;#8220;equal parts flour and water&amp;#8221; as &amp;#8220;equal parts flour and sugar.&amp;#8221; When I took a look at it, it seemed a little dormant, but I decided to press on, dumped out half of it, and added enough water and flour to bring it back up to size.&lt;/p&gt;

&lt;p&gt;This may have been a poor decision.&lt;/p&gt;

&lt;p&gt;The next day, it had overflowed its container. Unfortunately, I don&amp;#8217;t have any pictures of this, as my thought process was a little more along the lines of &amp;#8220;Oh shit oh shit oh shit oh shit&amp;#8221; than &amp;#8220;Hey, this is an interesting example of what happens when you feed a starter &lt;em&gt;way&lt;/em&gt; more sugar than you should ever feed a starter.&amp;#8221; And I mean way more. I think I&amp;#8217;d have to make four loaves of very sweet bread to justify adding a cup of sugar to a starter, and I&amp;#8217;d only do it when I&amp;#8217;m proofing the dough. Before I fed it, it smelled roughly like vomit.&lt;/p&gt;

&lt;p&gt;So, I dumped out half of it, and fed it again. This may also have been a poor decision, but only because the next day it again overflowed its container leaving a trail of doughy sugary mess down the side of the fridge it had been growing on. At this point, it smelled pretty much like rum, with a hint of yeast, which I took as validation that though I had twice made some significant messes, my culture was quite safe, and generally enjoying the massive supply of simple sugars.&lt;/p&gt;

&lt;p&gt;However, from now on I&amp;#8217;m leaving at least enough room in my starter containers that the starter can double, and putting down a tray in case it still manages to go on a binge and overflow. Though just sticking to a steady diet of wheat and water would probably do pretty well for controlling it as well.&lt;/p&gt;

&lt;p&gt;On Wednesday, it was smelling properly yeasty again, so I dumped some of it into a bowl with a fresh cup of flour and water, and left it to proof. However, I drained some of the hooch so I could get a sense for how sour it was going to be. This turned out to make, at the end, a couple of very familiar loaves of bread. (As it should have, since I&amp;#8217;ve used this recipe many times.) &lt;img src='/images/cooking/2010-09-04-starting-a-starter/2010-09-01_145402.jpg' alt='' /&gt;&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s far from scientific, and I&amp;#8217;d hesitate to suggest you try to duplicate it precisely, since these things can be very fickle. Roughly, what I used was:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;3 cups starter
2 cups whole wheat flour
1 cup white flour
1/4 cup sugar
3 tsp salt
2 T olive oil&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;But I should warn you I only really measured the flour, so those are fairly approximate. To begin, mix the sugar, salt, olive oil, and starter, and gradually add the rest of the flour.&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/cooking/2010-09-04-starting-a-starter/2010-09-01_161722.jpg' alt='' /&gt;&lt;/p&gt;

&lt;p&gt;Ambient conditions will make the amount of flour fairly variable. This is something you can only really figure out with practice. Form the dough into a ball, and knead it until it begins to be round and smooth.&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/cooking/2010-09-04-starting-a-starter/2010-09-01_163000.jpg' alt='' /&gt;&lt;/p&gt;

&lt;p&gt;Use a little more olive oil to coat the ball of dough, cover it with a towel and let it rise until doubled in size. My starter rose in about an hour and a half with the wonderfully oppressive afternoon and evening heat we&amp;#8217;ve been having lately. Once the dough has risen, knead it a bit more, break the dough into two loaves, and place them on two oiled baking stones. Let rise for at least another hour.&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/cooking/2010-09-04-starting-a-starter/2010-09-01_192954.jpg' alt='Before the first rise.' /&gt;&lt;/p&gt;

&lt;p&gt;Bake for 55 minutes at 350 degrees, and you should have something that looks rather like this:&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/cooking/2010-09-04-starting-a-starter/2010-09-01_203358.jpg' alt='Forming the dough.' /&gt;&lt;/p&gt;

&lt;p&gt;This is a familiar recipe I&amp;#8217;ve used many times with storebought yeast, and it seems that it also serves my starter fairly well. After I was done I took some of the proofed starter, fed it with some leftover flour, and set it to wait for tomorrow. I&amp;#8217;ve got a few other ideas I want to test out&amp;#8230;&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/cooking/2010-09-04-starting-a-starter/2010-09-01_163005.jpg' alt='' /&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Minnesotan Tornado Curry</title>
   <link href="http://www.flinchbaughschlather.com/luke/cooking/2010/07/29/minnesotan-tornado-curry/"/>
   <updated>2010-07-29T00:00:00-05:00</updated>
   <id>http://www.flinchbaughschlather.com//luke/cooking/2010/07/29/minnesotan-tornado-curry</id>
   <content type="html">&lt;p&gt;A couple weeks ago I went to my dear friends &lt;a href='http://www.energyandartistry.com/'&gt;Elwyn Fraser&lt;/a&gt; and Nikki Marvin&amp;#8217;s &lt;a href='http://chesedhearts.org/us/index.php'&gt;wedding.&lt;/a&gt; The wedding was a beautiful affair, with great music, and just the right mix of rain and sun for a perfect wedding. (Some might say that you want sun and nothing but on your wedding day, but I say having seen this wedding that God clearly knows better.)&lt;/p&gt;

&lt;p&gt;After the wedding, I made the trip back to the Twin Cities with a couple friends. Thinking that we would say farewell to Emilyrose, who had another hour and a half to drive after the wedding, we dropped Kristina off to change, and went to get my car at my host Pat McMorrow&amp;#8217;s house. Hardly had we gotten inside, trying to convince Emilyrose that she&amp;#8217;d been up since 5am and shouldn&amp;#8217;t be driving another hour more, when the tornado siren sounded and forced us into the basement. After a little bit of waiting, it became clear that Emilyrose would not be leaving, and none of us having had supper, I set about pillaging Pat&amp;#8217;s kitchen for something that would make a nice meal for the four of us.&lt;/p&gt;

&lt;p&gt;Lili Miller asked for the recipe, and though all values are approximate and I&amp;#8217;m probably forgetting something, here it is:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;One 16-oz can of coconut milk
One 16-oz can of chickpeas, drained
1/2 red pepper, chopped
A handful of cherry tomatoes
4 celery sticks, chopped
1 C stale carrot slices

1 T minced garlic¹
2 tsp. minced jalapeños²
3 T tomato paste
canola oil
balsamic vinegar

1/2 tsp. cayenne
1/2 tsp. cilantro

a dash of cinnamon 
a dash of rosemary
salt and pepper&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Sauté garlic, jalapeños in oil for about 20 seconds.&lt;/p&gt;

&lt;p&gt;Add some balsamic vinegar, then add carrots, peppers, and celery.&lt;/p&gt;

&lt;p&gt;Cook until the carrots start to soften, then add the chickpeas, tomatoes, and tomato paste.&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/cooking/2010-07-17-beforecoconutmilk.jpg' alt='Before adding the coconut milk.' /&gt;&lt;/p&gt;

&lt;p&gt;Sauté for another couple minutes, probably until the carrots are done, then add the coconut milk and get it up to a simmer. Serve with pasta.&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/cooking/2010-07-17-minnesotan-tornado-curry.jpg' alt='Before adding the coconut milk.' /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;¹ All present agreed this could be increased, but I try not to assume I&amp;#8217;m cooking for garlic fiends, since one can make enemies that way&amp;#8230;&lt;/p&gt;

&lt;p&gt;² See ¹&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Decent output from ImageWeave</title>
   <link href="http://www.flinchbaughschlather.com/luke/programming/2010/06/20/imageweave-images/"/>
   <updated>2010-06-20T00:00:00-05:00</updated>
   <id>http://www.flinchbaughschlather.com//luke/programming/2010/06/20/imageweave-images</id>
   <content type="html">&lt;p&gt;These were generated using the 9136 images in my /home/pictures directory, and each took about 15 minutes to create.&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/imageweave/test/Pittsburgh_November_036.jpg' alt='Original Image' /&gt;&lt;/p&gt;

&lt;p&gt;This one used a threshold of 50:&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/imageweave/test/2010-06-19_12.09.38_Pittsburgh_November_036.JPG-t50_9136_images.jpg' alt='Threshold = 50' /&gt;&lt;/p&gt;

&lt;p&gt;This one used a threshold of 100:&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/imageweave/test/2010-06-19_13.58.24_Pittsburgh_November_036.JPG-t100_9136_images.jpg' alt='Threshold = 100' /&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Weaving a lot of mosaics</title>
   <link href="http://www.flinchbaughschlather.com/luke/programming/2010/06/20/imageweave/"/>
   <updated>2010-06-20T00:00:00-05:00</updated>
   <id>http://www.flinchbaughschlather.com//luke/programming/2010/06/20/imageweave</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve worked out the double free or corruption error. I was assuming that the program would find an image that matched the target somewhere for ever cell, and sometimes it didn&amp;#8217;t, leaving the array index set to -1. Needless to say, accessing the -1st element of the image library (a vector) didn&amp;#8217;t go so well when it tried to output the finished mosaic.&lt;/p&gt;

&lt;p&gt;I decided to go for broke, and made the program recurse through my /home/pictures/ (just over 9000 of them) and then run a battery of 100 tests, which took a good day to sort through. It tried 10 images at thresholds from 0-100 by increments of 10. &lt;a href='/luke/programming/2010/06/20/imageweave-images/'&gt;Here&lt;/a&gt; you can view one large image with 24x18 cells (I&amp;#8217;ve scaled it down and turned it jpg, so the cells are only about 8x6 and not really visible, but it should show what the algorithm&amp;#8217;s doing.) The two images are at a threshold of 50 and 100. 50 seems to be the sweet spot, though one particular image peaks at about 30:&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/imageweave/test/2010-06-19_00.02.01_Pittsburgh_November_088.JPG-t30_9136_images.jpg' alt='Threshold = 30.' /&gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m not entirely satisfied with this. It seems like some thresholds work better than others for different segments of the image. Part of me thinks that doing this unsupervised might require some sort of unsupervised image segmentation, and that&amp;#8217;s almost an entirely different problem. On the other hand, parts of the image suggest that my similarity metric needs a little work. One really suspect area is &amp;#8216;white&amp;#8217; skin. My metric seems to think that peach is exactly the same as pure white, which really shouldn&amp;#8217;t happen for a &amp;#8216;good&amp;#8217; metric.&lt;/p&gt;

&lt;p&gt;There are a few ways I might improve this. One is by switching to a different color space like &lt;a href='http://en.wikipedia.org/wiki/YCbCr'&gt;YCbCr&lt;/a&gt;, and treating each color channel differently. in YCbCr, the eye tends to care more about variation in Y - the luminance channel, than Cb or Cr. That said, only relying on Y would create a wild mix of colors, even if the image might be recognizable thanks to brightness. It might be interesting to test though. It also could be interesting to do a greyscale test.&lt;/p&gt;

&lt;p&gt;The code is available on &lt;a href='http://github.com/lukeschlather/ImageWeave'&gt;Github.&lt;/a&gt; There&amp;#8217;s definitely room for improvement, but it can output some pretty nice results in the threshold = 30-60 range.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>ImageWeave</title>
   <link href="http://www.flinchbaughschlather.com/luke/programming/2010/06/16/imageweave/"/>
   <updated>2010-06-16T00:00:00-05:00</updated>
   <id>http://www.flinchbaughschlather.com//luke/programming/2010/06/16/imageweave</id>
   <content type="html">&lt;p&gt;I&amp;#8217;m writing a little program to build photo mosaics. You give it a directory, and an image, and it uses all the images in the directory to build the the target image. The target images I&amp;#8217;m looking at mostly have a resolution of 3288x2466, so I scale my library of individual image cells to 24x18, so the output image will consist of 137x137 blocks. However, the code is fairly flexible, and I&amp;#8217;ve tested it with some other dimensions.&lt;/p&gt;

&lt;p&gt;The first thing I had to figure out when doing this was how to compare the two images. The basic principle I use to match the images to the pattern is very similar to the metric I used for the median filter implementation I talked about in my last programming post. I pick an arbitrary threshold, then compare the red, green, and blue values for each one. I&amp;#8217;m working with 24-bit color, so each color channel has eight bits, and can hold a value from 0-255, 0 being black, and 255 being white. If any of the color channels differ by more than the threshold, I mark that the pixels do not match. So that gives me a value for individual pixels, but we&amp;#8217;re looking to compare an entire image.&lt;/p&gt;

&lt;p&gt;To evaluate whether or not a given cell fits in a given position, I simply count the number of pixels that match between the target image and the cell. Some testing showed that it did a pretty good job, so I went on to the next piece. (Though I may have cheated a bit by comparing an image with itself run through the median filter, given the similarity between the filter&amp;#8217;s method and this one.)&lt;/p&gt;

&lt;p&gt;The next step is to actually figure out which images go best where. Initially I decided that an exhaustive search would take far too long, and wrote a genetic algorithm which really performed poorly, and could take a good 10 minutes to do anything, after which it petered out with only about 30% of its pixels matching. And this was on a ridiculously &lt;a href='/images/imageweave/testS.png'&gt;contrived example&lt;/a&gt; I threw together in Kolourpaint, using a set of monochrome images I generated with a &lt;a href='http://github.com/lukeschlather/ImageWeave/blob/master/makeSolidColorImages.pl'&gt;quick Perl script.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So the genetic algorithm was not working very well. I took stock of the situation, admonished myself that premature optimization is the root of all evil, and wrote a brute force method which output &lt;a href='/images/imageweave/thatsmorelikeit.png'&gt;this.&lt;/a&gt; It took more time to read in and scale the images than it did to find an optimal solution.&lt;/p&gt;

&lt;p&gt;So I compiled with -O3 optimization, and ran it on a library of 726 input images and an aforementioned 3288x2466 target image, the program gave a decent &lt;em&gt;time&lt;/em&gt; of:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;real	2m38.196s
user	2m24.890s
sys	0m12.960s&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Just under 3 minutes, not too shabby. The output is not phenomenal, but it&amp;#8217;s somewhat recognizable as the original image. Here&amp;#8217;s one smaller one (this one took about 20 seconds once it had read in and scaled the cell images.):&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/imageweave/2010-06-14-firstBruteForce.png' alt='First output.' /&gt;&lt;/p&gt;

&lt;p&gt;I set out to see how far I could get just playing around without looking at any literature, and I&amp;#8217;ve come a pretty decent way. There&amp;#8217;s definitely some room for improvement. The brute force (technically greedy) solution isn&amp;#8217;t really going to scale very well past a few thousand images. And judging from that, I either need a lot more images, or I need to rethink how I&amp;#8217;m comparing them. Possible comparison improvements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Drop RGB for a colorspace that makes it easier to compare colors that &amp;#8220;look alike&amp;#8221; to humans.&lt;/li&gt;

&lt;li&gt;Allow for some pixel shifting. To some extent I&amp;#8217;m doing this already. I use pixel averaging to scale down the images, so there has already been a fair amount of what might be called &amp;#8216;noise reduction&amp;#8217; done to the images.&lt;/li&gt;

&lt;li&gt;Change the repeat penalty. That example didn&amp;#8217;t penalize repeats. Now I&amp;#8217;ve switched to a method that divides the match percentage by the number of times it&amp;#8217;s been used plus one. I&amp;#8217;ll post more pictures once I&amp;#8217;ve worked out a few more of the bugs. There&amp;#8217;s a double free or corruption error that keeps cropping up.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The code is available on &lt;a href='http://github.com/lukeschlather/ImageWeave'&gt;Github.&lt;/a&gt;, though it&amp;#8217;s still a little rough.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Silky Ray's Band</title>
   <link href="http://www.flinchbaughschlather.com/luke/swing/2010/06/15/silky-ray-band/"/>
   <updated>2010-06-15T00:00:00-05:00</updated>
   <id>http://www.flinchbaughschlather.com//luke/swing/2010/06/15/silky-ray-band</id>
   <content type="html">&lt;p&gt;A couple weeks ago I took a trip up to Columbus to do a little dancing at the &lt;a href='http://vonnjazz.com/'&gt;Von Jazz Lounge.&lt;/a&gt; A friend had asked people to come up and dance, with the reasonable admonition that she had come to Dayton the week before, so six of us happily piled into a couple of cars and rolled up there. (Actually, I got picked up on the way, but I guess one of the perks of living in the middle of nowhere along a major highway is people can pick you up on the way to the middle of somewhere.)&lt;/p&gt;

&lt;p&gt;Me and Jay got to the lounge, naturally, before anyone else had, so we moved up to the bar. After a couple of minutes, we noticed that the front man, Silky Ray, was actually at the other end of the bar with a mic running the show from the sidelines. It was at this point we decided that we had really hit a nice place. Von Jazz was more or less a place I thought didn&amp;#8217;t exist anymore, but there it is, an alive and kicking Jazz lounge in the middle of Ohio with a great band that&amp;#8217;s been playing for years. Silky Ray did at one point get a little pensieve himself about the whole affair. &amp;#8220;There ain&amp;#8217;t a lot of places like this left,&amp;#8221; he said, &amp;#8220;and pretty soon, there might not be any at all.&amp;#8221;&lt;/p&gt;

&lt;p&gt;I take some comfort in my classmate &lt;a href='http://www.benbakermusic.net/'&gt;Ben Baker&amp;#8217;s&lt;/a&gt; regular Facebook updates letting everyone know he&amp;#8217;s playing in a Jazz lounge somewhere. Jazz may already have declined as much as it ever will.&lt;/p&gt;

&lt;p&gt;After a little bit, Silky moved back up to the stage, and a blind man shuffled in and sat down at the bar. Silky Ray perked up and announced to all of us that the great Tommie Thomas had arrived, and there were some murmurs around that Tommie should get up and play, which he seemed fairly oblivious to until someone stepped up beside him and told him it was so-and-so&amp;#8217;s birthday. At this point he didn&amp;#8217;t hesitate.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Well we gotta play for her.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Very matter-of-fact, no questions asked, he got up on stage. Birthdays bear no discussion. Music doesn&amp;#8217;t in general, but music for birthdays especially. At this point the rest of the dancing crowd began to stream in. I grabbed our putative host Ali, and we jumped out on the dance floor. Fun thing about dancing to a Jazz band that isn&amp;#8217;t expecting dancing is that the songs last a while. Really fun if you&amp;#8217;re the first pair on the dance floor and there&amp;#8217;s no one else dancing.&lt;/p&gt;

&lt;p&gt;Some more Columbus folks showed up, and then we all really started dancing. Live music, great dancers, good night.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Median Filter</title>
   <link href="http://www.flinchbaughschlather.com/luke/programming/2010/06/07/median-filter/"/>
   <updated>2010-06-07T00:00:00-05:00</updated>
   <id>http://www.flinchbaughschlather.com//luke/programming/2010/06/07/median-filter</id>
   <content type="html">A median filter is a noise reduction algorithm useful in image processing. The basic idea is to smooth out the colors in the image, which can be very useful, for example, if you want to find 'edges' in the image, (otherwise known as Image Segmentation.) To illustrate, it lets you take an image that looks like this:&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;http://images/wp-content/uploads/2010/06/stall.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-39&quot; title=&quot;RMS with a Katana.&quot; src=&quot;/images/wp-content/uploads/2010/06/stall-300x225.jpg&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;225&quot; /&gt;&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
And make it look like this:&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;/images/wp-content/uploads/2010/06/stall-f_5_t_100.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-40&quot; title=&quot;stall-f_5_t_100&quot; src=&quot;/images/wp-content/uploads/2010/06/stall-f_5_t_100-300x225.jpg&quot; alt=&quot;Framesize of 5, threshold of 100.&quot; width=&quot;300&quot; height=&quot;225&quot; /&gt;&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
For a computer, this is a lot more palatable to do analysis. Our eyes look at the first image and see very clear regions, while a computer just sees a jumble of pixels - and hardly a single pair of pixels are the same color. The median filter takes similar pixels and makes the actual values smaller.&lt;br/&gt;
&lt;br/&gt;
For my implementation, I wrote a basic image class in C++ that is capable of reading and writing PPM (portable pixmap) files. PPM is an uncompressed format that is extremely easy to read and write, much like Microsoft's .bmp format. My implementation handles PPMs with 24-bit pixels. To get input for the program, I used the &lt;a title=&quot;ImageMagick&quot; href=&quot;http://www.imagemagick.org/script/index.php&quot;&gt;ImageMagick&lt;/a&gt; toolkit to make jpegs into ppms (then convert them back to post here.) Doing this is as simple as typing this command into the Linux console:&lt;br/&gt;
&lt;pre&gt;&lt;code&gt;&lt;br/&gt;
    convert stall.jpg stall.ppm&lt;br/&gt;
  &lt;/code&gt;&lt;br/&gt;
&lt;/pre&gt;&lt;br/&gt;
Now, as for the algorithm itself:&lt;br/&gt;
&lt;br/&gt;
The algorithm relies on two parameters which will affect how much detail it removes. The first is the framesize. The algorithm examines each pixel in turn, and compares it to all of the pixels in a box around it. The framesize defines how far away the pixels it is compared to should be. Ideally, it would be a circular region, but so I don't have to mess with iterating over a roughly circular area, I chose to use this 'radius' to define a square instead. The results are good, and I don't really see a need to work out a way to do it with a circle. To illustrate:&lt;br/&gt;
&lt;br/&gt;
&lt;img alt=&quot;Framesize picture&quot; width=&quot;300&quot; height=&quot;300&quot;  src=&quot;/images/wp-content/uploads/2010/manual/IllustrateFramesize.png&quot;/&gt;
&lt;br/&gt;
&lt;br/&gt;
The algorithm goes through each pixel, and for each of the three color channels (red, blue, and green) it finds the median value for that color channel within the bounding box defined by the framesize. Here's where the threshold comes in. If all three values differ from the median value by greater than the threshold, the algorithm replaces the current pixel with the median color channel values over the frame.&lt;br/&gt;
&lt;br/&gt;
Now, this is my implementation, there are some other ways it could be done. I tried it instead replacing each color channel independently, regardless of the other channels; this resulted in splotches of single colors that didn't seem to give quite the effect I wanted. I also played around with using the average; this definitely wasn't as effective (though I didn't use the average to decide if I wanted to replace a pixel, only in replacing a pixel.)&lt;br/&gt;
&lt;br/&gt;
If you're curious, source is code available at &lt;a title=&quot;http://github.com/lukeschlather/Median-Filter&quot; href=&quot;http://github.com/lukeschlather/Median-Filter&quot; target=&quot;_self&quot;&gt;http://github.com/lukeschlather/Median-Filter&lt;/a&gt; Tested under Ubuntu 9+, and several varieties of Fedora Linux. 
</content>
 </entry>
 
 <entry>
   <title>Toothpaste</title>
   <link href="http://www.flinchbaughschlather.com/luke/nicaragua/2009/01/13/toothpaste/"/>
   <updated>2009-01-13T00:00:00-06:00</updated>
   <id>http://www.flinchbaughschlather.com//luke/nicaragua/2009/01/13/toothpaste</id>
   <content type="html">We gave out the toothpaste and tooth brushes in the village of Jicaro today, and they were very well received. &lt;br/&gt;

&lt;img alt=&quot;Toothbrushes&quot; src=&quot;/images/wp-content/uploads/2009/01/jicaro_1_brushes-150x150.jpg&quot; /&gt;

&lt;img alt=&quot;Girl from Jicaro&quot; src=&quot;/images/wp-content/uploads/2009/01/jicaro_1_girl-150x150.jpg&quot; /&gt;

&lt;img alt=&quot;More toothbrushes&quot; src=&quot;/images/wp-content/uploads/2009/01/jicaro_2_brushes-150x150.jpg&quot; /&gt;

&lt;img alt=&quot;Waiting at the gate.&quot; src=&quot;/images/wp-content/uploads/2009/01/jicaro_2_gate-150x150.jpg&quot; /&gt;


&lt;br/&gt;
</content>
 </entry>
 
 <entry>
   <title>Fun with image scaling.</title>
   <link href="http://www.flinchbaughschlather.com/luke/nicaragua/2009/01/13/fun-with-image-scaling/"/>
   <updated>2009-01-13T00:00:00-06:00</updated>
   <id>http://www.flinchbaughschlather.com//luke/nicaragua/2009/01/13/fun-with-image-scaling</id>
   <content type="html">I'm finding that I do in fact miss the power of even 2.8 ghz runnning on this laptop. (several cores would be nice.) Turns out, at 486 mhz, scaling an image properly actually takes a good bit of time. You can use the naive method (I believe this is what a usual paint program will do, I don't know about photoshop.) The naive method, of course, removes n out of every x pixels, where you are trying to scale by n/x pixels:&lt;br/&gt;
&lt;br/&gt;
A better method, on the other hand, divides the image into regions based on the number of pixels it will have when it's done scaling. Then, it will average each group of pixels, and use the result. At least, that's what I would do if I had to do it from scratch.&lt;br/&gt;
ImageMagick's 'convert -sample &lt;percent&gt;%' option  (the naive method) takes two seconds, while convert -scale &lt;percent&gt;% takes 11 seconds.&lt;br/&gt;
&lt;br/&gt;
On my machine in my room at home, I would expect the extra time spent averaging would be unnoticable (it's only 5 times as much for this input.) On this laptop, it's quite a bit of time. &lt;br/&gt;
&lt;br/&gt;
Sampling is O(n) with respect to the number of pixels in the finished image, averaging is O(n) with respect to the number of pixels in the original image. When you're going from 3000x2000 to 800x600, that's obviously significant. Though the image is much cleaner, especially when you're scaling down even further. Here are some examples:&lt;br/&gt;
&lt;br/&gt;


&lt;pre&gt;
convert -sample 10% images/2009/01/cesar.jpg  images/2009/01/cesar_sample_10pct.jpg  
convert -scale 10% images/2009/01/cesar.jpg  images/2009/01/cesar_scale_10pct.jpg  
convert -scale 50% images/2009/01/cesar.jpg  images/2009/01/cesar_scale_50pct.jpg  
convert -sample 50% images/2009/01/cesar.jpg images/2009/01/cesar_sample_50pct.jpg  
&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;/images/2009/01/cesar_sample_10pct.jpg&quot;&gt;cesar_sample_10pct.jpg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/images/2009/01/cesar_sample_50pct.jpg&quot;&gt;cesar_sample_50pct.jpg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/images/2009/01/cesar_scale_10pct.jpg&quot;&gt;cesar_scale_10pct.jpg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/images/2009/01/cesar_scale_50pct.jpg&quot;&gt;cesar_scale_50pct.jpg&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src=&quot;/images/2009/01/cesar-sample.jpg&quot; /&gt;
</content>
 </entry>
 
 <entry>
   <title>The man who plants trees</title>
   <link href="http://www.flinchbaughschlather.com/luke/nicaragua/2009/01/07/the-man-who-plants-trees/"/>
   <updated>2009-01-07T00:00:00-06:00</updated>
   <id>http://www.flinchbaughschlather.com//luke/nicaragua/2009/01/07/the-man-who-plants-trees</id>
   <content type="html">I met a man named Cesar who has a reforestation project on one of the hills around San Ramon. He was a part of the Sandinista army during the revolucion, and his family has been an important part of the community here for generations. (Since the time that the Spanish settled the area.)&lt;br/&gt;
&lt;br/&gt;
&lt;img src=&quot;/images/2009/01/cerro_de_la_cruz.jpg&quot; alt=&quot;Cerro de la Cruz&quot;&gt;
&lt;br/&gt;
The hill of the cross, as they call it, was deforested to make grazing land for cattle, as was much of the land around here. Cesar has spent twelve years, along with the help of some of the other people who live in the village, building up the forest around the hill. It's a bit of an interesting contrast to the sort of reforestation project I'm used to in the States, where we usually just stay out of the way and let the trees grow. Here, because they have such a young forest, a forest fire would be absolutely devastating. As such, they constantly clear the brush around the trees, so that their work will not be undone. Many of the saplings he plants die, and he has a large reserve of new ones ready to plant.&lt;br/&gt;
&lt;br/&gt;
&lt;img src=&quot;/images/2009/01/cesar.jpg&quot; alt=&quot;Cesar in the trenches&quot;&gt;
&lt;br/&gt;
He also showed us the trenches at the top of the hills where the Sandinista soldiers would watch for Contra fighters. He explained the strategy they would use to us. At the top of each of the hills around the village would be 10 lookouts most of the time. If they knew that Contras were on the way, each would become a full-blown war camp, with soldiers manning trenches ringing the hill (we could still see these trenches.) The commander would be in the middle of the hill, along with a basic first-aid station, a mortar, and the munition store.&lt;br/&gt;
&lt;br/&gt;
Hearing him talk about the view from the hill not in terms of what a beautiful view it was but in terms of the strategic value - it's one of those places you can see just about everything - got me to thinking the two may not be that far apart. That is to say, in an evolutionary sense, we find the view from mountains aesthetically pleasing because genetically we know that it will safeguard us in case of a battle.&lt;br/&gt;
&lt;br/&gt;
I need to stop analyzing the evolutionary purpose behind our emotions. It gets really depressing really quickly.&lt;br/&gt;
</content>
 </entry>
 
 <entry>
   <title>Just about ready to go</title>
   <link href="http://www.flinchbaughschlather.com/luke/nicaragua/2009/01/03/just-about-ready-to-go/"/>
   <updated>2009-01-03T00:00:00-06:00</updated>
   <id>http://www.flinchbaughschlather.com//luke/nicaragua/2009/01/03/just-about-ready-to-go</id>
   <content type="html">Well, I guess I lied about the laptop. Once I gave up and installed ubuntu desktop on it (I had been trying to go with server) it worked like a charm.&lt;br/&gt;
&lt;br/&gt;
It also helped that I burned a new cd at 9x instead of whatever ungodly fast speed I was burning the install disk before.&lt;br/&gt;
&lt;br/&gt;
So, the ethernet works (though where I'll be able to plug in and get internet I don't know.) Also, I don't trust the battery as far as I can throw it. Though I don't think throwing it could make it any less useful than it already is. So, I have Emacs, but beyond that I guess I'll still be posting in cyber cafes.&lt;br/&gt;
&lt;br/&gt;
I'm looking to travel light, and so far I've outdone myself (though I haven't been a light packer in the past, so that's not saying much.) My backpack and suitcase both have room to spare. I don't know about the weight limit, but they do have room. I'm also worried about my suitcase on the bus to Matagalpa.&lt;br/&gt;
&lt;iframe width=&quot;425&quot; height=&quot;350&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; src=&quot;http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=san+ramon+matagalpa,+nicaragua&amp;amp;sll=12.799749,-85.34317&amp;amp;sspn=0.58923,0.873413&amp;amp;ie=UTF8&amp;amp;g=san+ramon+matagalpa,+nicaragua&amp;amp;s=AARTsJpP4uOkJ0in1tKHwXXh3uzaoLf_Lg&amp;amp;ll=12.431212,-85.918579&amp;amp;spn=1.877452,2.334595&amp;amp;z=8&amp;amp;output=embed&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href=&quot;http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=san+ramon+matagalpa,+nicaragua&amp;amp;sll=12.799749,-85.34317&amp;amp;sspn=0.58923,0.873413&amp;amp;ie=UTF8&amp;amp;g=san+ramon+matagalpa,+nicaragua&amp;amp;ll=12.431212,-85.918579&amp;amp;spn=1.877452,2.334595&amp;amp;z=8&amp;amp;source=embed&quot; style=&quot;color:#0000FF;text-align:left&quot;&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;&lt;br/&gt;
&lt;br/&gt;
Matagalpa is in north-central Nicaragua, about 2.5 hours by bus from Managua. It seems like there are a fair number of Gringos around the area - I don't know how this compares to the rest of Nicaragua. Like a lot of Latin America, tourism is fast becoming a primary industry, so I don't know how that compares to the rest of the country. I shall see soon enough. In the meantime, a bit of sleep would not be amiss.
</content>
 </entry>
 
 <entry>
   <title>Aeroplanes</title>
   <link href="http://www.flinchbaughschlather.com/luke/nicaragua/2009/01/03/aeroplanes/"/>
   <updated>2009-01-03T00:00:00-06:00</updated>
   <id>http://www.flinchbaughschlather.com//luke/nicaragua/2009/01/03/aeroplanes</id>
   <content type="html">I'm leaving for nicaragua tomorrow morning, and right now I'm getting all my digital things in order. I've got an old laptop that I've installed Ubuntu on, and the ethernet card on it doesn't work (which I'm quite content with.) Actually, assuming the laptop is still functional when I get back to Olaf, having a laptop that does not have internet acsess will be really nice. Computers are really great writing tools... the internet tends to inhibit writing.
</content>
 </entry>
 
 
</feed>