<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Higher Order Functions</title>
	<atom:link href="http://andrewfarmer.name/feed/" rel="self" type="application/rss+xml" />
	<link>http://andrewfarmer.name</link>
	<description>110110</description>
	<lastBuildDate>Mon, 26 Jul 2010 05:36:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Portland Rides</title>
		<link>http://andrewfarmer.name/2010/07/portland-rides/</link>
		<comments>http://andrewfarmer.name/2010/07/portland-rides/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 05:14:43 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cycling]]></category>
		<category><![CDATA[portland]]></category>
		<category><![CDATA[vacation]]></category>

		<guid isPermaLink="false">http://andrewfarmer.name/?p=25</guid>
		<description><![CDATA[A lot of awesome times were had in Portland this week, but writing it all up would require a lot of effort (effort I should be devoting to other things at the moment), so I&#8217;ll put that off for a few more days.
In the meantime, here are maps for the four rides I did.
Tuesday: On [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of awesome times were had in Portland this week, but writing it all up would require a lot of effort (effort I should be devoting to other things at the moment), so I&#8217;ll put that off for a few more days.</p>
<p>In the meantime, here are maps for the four rides I did.</p>
<p>Tuesday: On Jim&#8217;s recommendation, I climbed Montgomery and did a circuit around Council Crest, then rode out to Skyline. I was originally intending to go out to Newberry Rd on Skyline, but got a text from Andy about dinner, so headed back early to meet up at the Blue Moon.</p>
<div align="center"><iframe width="600" height="600" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.google.com/maps?f=d&amp;source=s_d&amp;saddr=NW+18th+Ave&amp;daddr=NW+Johnson+St+to:NW+13th+Ave+to:SW+13th+Ave+to:SW+Montgomery+Dr+to:SW+Montgomery+Dr+to:45.50173,-122.708466+to:SW+Greenway+Ave+to:SW+Fairmount+Blvd+to:SW+Fairmount+Blvd+to:SW+Hewett+Blvd+to:SW+Skyline+Blvd+to:NW+Skyline+Blvd+to:SW+Fairview+Blvd+to:SW+Kingston+Dr+to:SW+Washington+Way+to:SW+King+Ave+to:NW+Davis+St+to:NW+21st+Ave&amp;hl=en&amp;geocode=FcGttgIdweiv-A%3BFci1tgIdauiv-A%3BFdq0tgIdUPyv-A%3BFR5_tgId2uuv-A%3BFc2BtgIdV8iv-A%3BFSxctgIdxqqv-A%3B%3BFaNMtgId16Ov-A%3BFdJCtgIdq5Sv-A%3BFfEltgId6tCv-A%3BFT5JtgId2n-v-A%3BFRx0tgIdZUCv-A%3BFQ-YtgIdBx2v-A%3BFXKEtgIdAVyv-A%3BFe11tgIdKJmv-A%3BFXWXtgId1bmv-A%3BFUCdtgIdDtGv-A%3BFbyktgIdHtSv-A%3BFe6stgId99Sv-A&amp;mra=dpe&amp;mrcr=0&amp;mrsp=6&amp;sz=16&amp;via=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17&amp;sll=45.501971,-122.705591&amp;sspn=0.014859,0.032938&amp;ie=UTF8&amp;t=h&amp;ll=45.512602,-122.714024&amp;spn=0.072175,0.102825&amp;z=13&amp;output=embed"></iframe><br /><small><a href="http://www.google.com/maps?f=d&amp;source=embed&amp;saddr=NW+18th+Ave&amp;daddr=NW+Johnson+St+to:NW+13th+Ave+to:SW+13th+Ave+to:SW+Montgomery+Dr+to:SW+Montgomery+Dr+to:45.50173,-122.708466+to:SW+Greenway+Ave+to:SW+Fairmount+Blvd+to:SW+Fairmount+Blvd+to:SW+Hewett+Blvd+to:SW+Skyline+Blvd+to:NW+Skyline+Blvd+to:SW+Fairview+Blvd+to:SW+Kingston+Dr+to:SW+Washington+Way+to:SW+King+Ave+to:NW+Davis+St+to:NW+21st+Ave&amp;hl=en&amp;geocode=FcGttgIdweiv-A%3BFci1tgIdauiv-A%3BFdq0tgIdUPyv-A%3BFR5_tgId2uuv-A%3BFc2BtgIdV8iv-A%3BFSxctgIdxqqv-A%3B%3BFaNMtgId16Ov-A%3BFdJCtgIdq5Sv-A%3BFfEltgId6tCv-A%3BFT5JtgId2n-v-A%3BFRx0tgIdZUCv-A%3BFQ-YtgIdBx2v-A%3BFXKEtgIdAVyv-A%3BFe11tgIdKJmv-A%3BFXWXtgId1bmv-A%3BFUCdtgIdDtGv-A%3BFbyktgIdHtSv-A%3BFe6stgId99Sv-A&amp;mra=dpe&amp;mrcr=0&amp;mrsp=6&amp;sz=16&amp;via=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17&amp;sll=45.501971,-122.705591&amp;sspn=0.014859,0.032938&amp;ie=UTF8&amp;t=h&amp;ll=45.512602,-122.714024&amp;spn=0.072175,0.102825&amp;z=13" style="color:#0000FF;text-align:left">View Larger Map</a></small></div>
<p>Wednesday: I picked this route mostly to say I have been to Washington. With the exception of the portion on the Marine Drive trail, it was pretty urban, and the Evergreen Highway on the Washington side was in especially poor condition. I wouldn&#8217;t ride this route again (much less recommend it), but still had fun anyway. Unfortunately, since this route involved paths are are closed to car traffic, I can&#8217;t seem to embed the Google Map directly. Here is a link: <a href="http://bit.ly/cWo49K">http://bit.ly/cWo49K</a></p>
<p>Thursday: Went out with Jim and George (who were on a tandem!) to ride a picturesque route on the old scenic highway between Hood River and Rowena in the Columbia River Gorge. Along the way were nifty things like tunnels and overlooks! Also, the descent (and climb) on the backside of the Rowena Overlook was a blast&#8230; even with scary crosswinds. Again, since parts of this are on dedicated bike trails, all I can do is link to the map: <a href="http://bit.ly/cWjCQC">http://bit.ly/cWjCQC</a></p>
<p>Also Thursday: After an excellent lunch in Hood River (and a nap in the van), Jim and George dropped me off east of Multnomah Falls to ride back to the city. This was probably the most scenic ride of the week. The various waterfalls were, of course, worth stopping for, and Vista House is, well, aptly named. The descent between there and the Sandy River was pretty consistent, so kept the bike in highest gear for a loooong time. Pretty sure my route back through the east side of the city wasn&#8217;t the best, but I was going on dead reckoning at that point. Managed to get a flat at some point on Halsey. Thankfully the rental place had given me a nice toolkit and spare tube.</p>
<div align="center"><iframe width="600" height="600" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.google.com/maps?f=d&amp;source=s_d&amp;saddr=Unknown+road&amp;daddr=E+Crown+Point+Hwy%2FHst+Columbia+River+Hwy+to:Crown+Point+Hwy%2FE+Historic+Columbia+River+Hwy+to:E+Bell+Rd+to:SW+Halsey+St+to:NE+Weidler+St+to:E+Burnside+St+to:NE+Davis+St+to:NE+Davis+St+to:NE+Everett+St+to:NE+Davis+St+to:NE+Couch+St+to:NE+32nd+Ave+to:SE+Ankeny+St+to:SE+Ankeny+St+to:SE+Ankeny+St+to:NE+Lloyd+Blvd+to:45.526374,-122.689648&amp;hl=en&amp;geocode=FarOtwIdP8C5-A%3BFaBftwIdahi4-A%3BFVvTtgIdeuu2-A%3BFayhtgIdKJa1-A%3BFcTitgIdh260-A%3BFeTLtgIdQfGx-A%3BFQyftgIdvsSx-A%3BFcCktgIdemux-A%3BFSmltgIdATex-A%3BFeCntgIdti6x-A%3BFfqmtgId_gix-A%3BFQyltgIdEemw-A%3BFU2htgId9smw-A%3BFcSctgIdSsaw-A%3BFfCctgIdDZKw-A%3BFSKdtgId5lqw-A%3BFSCutgIdGlKw-A%3B&amp;mra=dme&amp;mrcr=0&amp;mrsp=17&amp;sz=16&amp;via=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16&amp;sll=45.529982,-122.681172&amp;sspn=0.014851,0.032938&amp;ie=UTF8&amp;t=h&amp;ll=45.547717,-122.35611&amp;spn=0.577042,0.822601&amp;z=10&amp;output=embed"></iframe><br /><small><a href="http://www.google.com/maps?f=d&amp;source=embed&amp;saddr=Unknown+road&amp;daddr=E+Crown+Point+Hwy%2FHst+Columbia+River+Hwy+to:Crown+Point+Hwy%2FE+Historic+Columbia+River+Hwy+to:E+Bell+Rd+to:SW+Halsey+St+to:NE+Weidler+St+to:E+Burnside+St+to:NE+Davis+St+to:NE+Davis+St+to:NE+Everett+St+to:NE+Davis+St+to:NE+Couch+St+to:NE+32nd+Ave+to:SE+Ankeny+St+to:SE+Ankeny+St+to:SE+Ankeny+St+to:NE+Lloyd+Blvd+to:45.526374,-122.689648&amp;hl=en&amp;geocode=FarOtwIdP8C5-A%3BFaBftwIdahi4-A%3BFVvTtgIdeuu2-A%3BFayhtgIdKJa1-A%3BFcTitgIdh260-A%3BFeTLtgIdQfGx-A%3BFQyftgIdvsSx-A%3BFcCktgIdemux-A%3BFSmltgIdATex-A%3BFeCntgIdti6x-A%3BFfqmtgId_gix-A%3BFQyltgIdEemw-A%3BFU2htgId9smw-A%3BFcSctgIdSsaw-A%3BFfCctgIdDZKw-A%3BFSKdtgId5lqw-A%3BFSCutgIdGlKw-A%3B&amp;mra=dme&amp;mrcr=0&amp;mrsp=17&amp;sz=16&amp;via=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16&amp;sll=45.529982,-122.681172&amp;sspn=0.014851,0.032938&amp;ie=UTF8&amp;t=h&amp;ll=45.547717,-122.35611&amp;spn=0.577042,0.822601&amp;z=10" style="color:#0000FF;text-align:left">View Larger Map</a></small></div>
<p>So roughly 120 miles in four rides. Throw in all the commuting I did, and I&#8217;d call it a successful week. I was planning one more ride up on Skyline again for Saturday morning before I left, but ended up spending the whole night out with Austin and friends, so nixed it in the end. While some of these involved significant (at least to a flatlander like me) climbs, they were all pretty gradual grades. I think the steepest portion might have been Montgomery. At first I was anxious about whether I&#8217;d be able to climb for such an extended period. Turns out I had nothing to fear. It&#8217;s not like I was racing them, and they weren&#8217;t <b>that</b> long, or steep.</p>
<p>On a side note, I rented my bike from <a href="http://www.waterfrontbikes.com/">Waterfront Bicycles</a> and couldn&#8217;t have been happier with them. They were always helpful, and very forgiving when my seatpost and saddle got stolen on Tuesday night (replaced free of charge).</p>
]]></content:encoded>
			<wfw:commentRss>http://andrewfarmer.name/2010/07/portland-rides/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to get a PhD</title>
		<link>http://andrewfarmer.name/2010/06/how-to-get-a-phd/</link>
		<comments>http://andrewfarmer.name/2010/06/how-to-get-a-phd/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 02:30:24 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[grad school]]></category>
		<category><![CDATA[motivation]]></category>
		<category><![CDATA[worker wrapper]]></category>

		<guid isPermaLink="false">http://andrewfarmer.name/?p=21</guid>
		<description><![CDATA[I&#8217;ve been re-reading How to get a PhD, which my advisor (Andy Gill) loaned me.
I originally read it last fall at some point, when I was on the fence about switching over from the masters program to the doctoral one. While it&#8217;s written from the perspective of the British PhD system, it focuses on the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been re-reading <a href="http://www.amazon.com/How-Get-PhD-Estelle-Phillips/dp/033520550X">How to get a PhD</a>, which my advisor (<a href="http://www.ittc.ku.edu/csdl/fpg/Users/AndyGill">Andy Gill</a>) loaned me.</p>
<p>I originally read it last fall at some point, when I was on the fence about switching over from the masters program to the doctoral one. While it&#8217;s written from the perspective of the British PhD system, it focuses on the psychological/motivation aspects, so most of it is still relevant.</p>
<p>One thing it brings up several times is the nature of research and &#8220;making a novel contribution&#8221;. These sections are both motivating and reassuring. I get paralyzed thinking: &#8220;I need to do something big and important&#8221;, when the reality is more like: &#8220;I need to just do something&#8221;. General Relativity wasn&#8217;t Einstein&#8217;s PhD work, and I don&#8217;t have to come up with a better functional language compiler for mine (although that would be nice).</p>
<p>Anyway, the book is incredibly motivating to read, and I&#8217;m not entirely sure why. Maybe I should snag a copy somewhere and just read a chapter once a month to keep myself focused. I can&#8217;t really recommend it enough for anyone considering grad school.</p>
<p>I need to write up a &#8216;Statement of Purpose&#8217; to officially complete my switch over to the Ph.D. track. I think that is the only bit of administrative work still on my plate this week, so I can look forward to a few uninterrupted days in the not-real world of my brain and coding. After that, I probably should get to work cleaning up my TFP paper for final submission.</p>
<p>I&#8217;ve been having a bit of fun attempting to automate the <a href="http://workerwrapper.com/">worker/wrapper</a> example from our EECS 800 final. In an attempt to avoid getting bogged down in integration issues I&#8217;ve just been writing things from scratch. This has led to spending a lot of time reinventing the wheel when it comes to a typed core language and implementing beta reduction and some form of primitive rule-based rewrites, but I feel like I&#8217;m making some decent progress anyway. Hopefully tonight I can push it forward a bit and get something that works in a totally type unsafe way.</p>
<p>Of course, I&#8217;ve only been considering this one example of rewriting:<br />
<code>reverse [] = []<br />
reverse (x:xs) = reverse xs ++ [x]</code></p>
<p>into:<br />
<code>reverse xs = rev_worker xs []</p>
<p>rev_worker [] ys = ys<br />
rev_worker (x:xs) ys = rev_worker xs (x:ys)</code></p>
<p>So we&#8217;ll see what happens when I try to do some other kind of worker/wrapper based optimization. It&#8217;s always the second example that shows you where your code is insufficiently generalized.</p>
]]></content:encoded>
			<wfw:commentRss>http://andrewfarmer.name/2010/06/how-to-get-a-phd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grub and Lucid Lynx</title>
		<link>http://andrewfarmer.name/2010/05/grub-and-lucid-lynx/</link>
		<comments>http://andrewfarmer.name/2010/05/grub-and-lucid-lynx/#comments</comments>
		<pubDate>Mon, 24 May 2010 19:40:56 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://andrewfarmer.name/?p=18</guid>
		<description><![CDATA[Just upgraded my Karmic install to Lucid. I&#8217;m fairly new to Ubuntu (long time Gentoo user), and amazingly ran into a bit of a headache (I thought the point of Ubuntu was headache-free Linux).
Anyway, if you get the following error on reboot after the upgrade:
Symbol "grub_puts_' not found
You can fix it by booting a livecd, [...]]]></description>
			<content:encoded><![CDATA[<p>Just upgraded my Karmic install to Lucid. I&#8217;m fairly new to Ubuntu (long time Gentoo user), and amazingly ran into a bit of a headache (I thought the point of Ubuntu was headache-free Linux).</p>
<p>Anyway, if you get the following error on reboot after the upgrade:</p>
<p><code>Symbol "grub_puts_' not found</code></p>
<p>You can fix it by booting a livecd, getting to a terminal, and doing the following:</p>
<p><code>> sudo mount /dev/sda1 /mnt # sda1 being the partition /boot resides on<br />
> sudo grub-install --root-directory=/mnt --recheck /dev/sda<br />
</code></p>
<p>Reboot and it should be fixed.</p>
]]></content:encoded>
			<wfw:commentRss>http://andrewfarmer.name/2010/05/grub-and-lucid-lynx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Computer Vision Project</title>
		<link>http://andrewfarmer.name/2009/12/computer-vision-project/</link>
		<comments>http://andrewfarmer.name/2009/12/computer-vision-project/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 04:46:32 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[computer vision]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://andrewfarmer.name/?p=10</guid>
		<description><![CDATA[So I did this pretty cool project for my Computer Vision class, and thought I&#8217;d share the final report.
Despite looking like a research paper, it&#8217;s not actually research&#8230; I was implementing someone else&#8217;s research, and the task was to &#8220;make it work, then play around with it and show your results&#8221;.
Still, the algorithm is pretty [...]]]></description>
			<content:encoded><![CDATA[<p>So I did this pretty cool project for my Computer Vision class, and thought I&#8217;d share the final report.</p>
<p>Despite looking like a research paper, it&#8217;s not actually research&#8230; I was implementing someone else&#8217;s research, and the task was to &#8220;make it work, then play around with it and show your results&#8221;.</p>
<p>Still, the algorithm is pretty awesome, and I&#8217;m fairly proud of my writeup and diagrams.</p>
<p><a href="http://andrewfarmer.name/report.pdf">Intelligent Scissors with Efficient Planar Graph Cuts</a></p>
]]></content:encoded>
			<wfw:commentRss>http://andrewfarmer.name/2009/12/computer-vision-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning Everything</title>
		<link>http://andrewfarmer.name/2009/10/learning-everything/</link>
		<comments>http://andrewfarmer.name/2009/10/learning-everything/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 21:34:02 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[musings]]></category>
		<category><![CDATA[psychology]]></category>

		<guid isPermaLink="false">http://andrewfarmer.name/?p=5</guid>
		<description><![CDATA[This article just blew my mind: Want to remember everything?
To quote (and summarize):
We are used to the idea that normal humans can perform challenging feats of athleticism. We all know someone who has run a marathon or ridden a bike cross-country. But getting significantly smarter — that seems to be different. We associate intelligence with [...]]]></description>
			<content:encoded><![CDATA[<p>This article just blew my mind: <a href="http://www.wired.com/medtech/health/magazine/16-05/ff_wozniak?currentPage=all">Want to remember everything?</a></p>
<p>To quote (and summarize):</p>
<blockquote><p>We are used to the idea that normal humans can perform challenging feats of athleticism. We all know someone who has run a marathon or ridden a bike cross-country. But getting significantly smarter — that seems to be different. We associate intelligence with pure talent, and academic learning with educational experiences dating far back in life. To master a difficult language, to become expert in a technical field, to make a scientific contribution in a new area — these seem like rare things. And so they are, but perhaps not for the reason we assume.</p></blockquote>
<p>I&#8217;d love to try this kind of system out myself. It seems incredibly simple to implement, but I&#8217;ll look for an existing solution first I suppose. Basic idea is you have a set of facts that are stored in a database, and when you sit down to study, the facts are brought up based on their age and your past performance on remembering them, subject to the spacing effect (they explain the spacing effect in the article).</p>
<p>Another <a href="http://news.ycombinator.com/item?id=818367">anecdote about using it for teaching</a> from Hacker News.</p>
<p>Anyway, I feel like I have been learning everything lately. I need to implement some kind of heap for my reading material, so when I finish something I can ask the heap what is next. The item weight can be determined by some mixture of age and &#8220;importance&#8221; factor or something.</p>
<p>I&#8217;m finally starting to branch out a bit in Haskell. I feel that I have the language basics down fairly well, and can browse module documentation intelligently. I still feel like I really need to sit down and figure out what the monad thing really means. I&#8217;ve read several explanations, including Graham Hutton&#8217;s excellent treatment in his Programming Haskell book, but I have this nagging lack of a mental model for thinking about them. I&#8217;m firmly in the &#8220;magic incantation&#8221; stage I&#8217;d guess you&#8217;d say.</p>
<p>Anyway, a fun weekend of grading ahead of me, with hopefully some Haskell thrown in. Also have a social engagement with my advisor and some of the other students in the research group. Oh, and I now have two offices on campus!</p>
]]></content:encoded>
			<wfw:commentRss>http://andrewfarmer.name/2009/10/learning-everything/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reincarnated</title>
		<link>http://andrewfarmer.name/2009/09/reincarnated/</link>
		<comments>http://andrewfarmer.name/2009/09/reincarnated/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 02:17:38 +0000</pubDate>
		<dc:creator>Andrew</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chores]]></category>

		<guid isPermaLink="false">http://andrewfarmer.name/?p=3</guid>
		<description><![CDATA[Spent some time tonight mucking with my VPS. Took care of some much needed housework, and since my old blog was broken anyway, went ahead and installed Wordpress.
Obviously still a lot left to do (like porting my old posts over and such), but this&#8217;ll have to do for now. Beer is calling&#8230;
]]></description>
			<content:encoded><![CDATA[<p>Spent some time tonight mucking with my VPS. Took care of some much needed housework, and since my old blog was broken anyway, went ahead and installed Wordpress.</p>
<p>Obviously still a lot left to do (like porting my old posts over and such), but this&#8217;ll have to do for now. Beer is calling&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://andrewfarmer.name/2009/09/reincarnated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
