<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:pbrooks</id>
  <title>Autonomous Agent</title>
  <subtitle>Artificial Intelligence and Philosophy</subtitle>
  <author>
    <name>Philip W. Brooks</name>
  </author>
  <link rel="alternate" type="text/html" href="http://pbrooks.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://pbrooks.livejournal.com/data/atom"/>
  <updated>2006-09-14T16:19:54Z</updated>
  <lj:journal userid="8522071" username="pbrooks" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://pbrooks.livejournal.com/data/atom" title="Autonomous Agent"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:pbrooks:3395</id>
    <link rel="alternate" type="text/html" href="http://pbrooks.livejournal.com/3395.html"/>
    <link rel="self" type="text/xml" href="http://pbrooks.livejournal.com/data/atom/?itemid=3395"/>
    <title>Royal Society opens online archive</title>
    <published>2006-09-14T16:19:54Z</published>
    <updated>2006-09-14T16:19:54Z</updated>
    <category term="news"/>
    <content type="html">&lt;a href="http://www.pubs.royalsoc.ac.uk/index.cfm?page=1373"&gt;The Royal Society&lt;/a&gt; has opened an online archive of its journals dating back nearly 350 years to the public for free until next year, when it will be available to subscribers or the public on a pay-per-download basis.  Read, for instance, &lt;a href="http://www.journals.royalsoc.ac.uk/(iqogk5epsmmjoendjjul4i55)/app/home/contribution.asp?referrer=parent&amp;amp;backto=searcharticlesresults,1,4;"&gt;Georg Kreisel's philosophical biography of Bertrand Russell&lt;/a&gt;, &lt;a href="http://www.journals.royalsoc.ac.uk/(nwljmbeeeonlte45wyk5bp55)/app/home/contribution.asp?referrer=parent&amp;amp;backto=issue,7,10;journal,726,1018;linkingpublicationresults,1:120148,1"&gt;Crick and Watson's discovery of the structure of DNA&lt;/a&gt;, or &lt;a href="http://www.journals.royalsoc.ac.uk/(rpepry45y32ercrjay1gcs45)/app/home/contribution.asp?referrer=parent&amp;amp;backto=issue,32,98;journal,19,53;linkingpublicationresults,1:120136,1"&gt;Benjamin Franklin's infamous kite-in-a-thunderstorm experiment&lt;/a&gt;!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:pbrooks:3310</id>
    <link rel="alternate" type="text/html" href="http://pbrooks.livejournal.com/3310.html"/>
    <link rel="self" type="text/xml" href="http://pbrooks.livejournal.com/data/atom/?itemid=3310"/>
    <title>Pueblo Pie, Take 1</title>
    <published>2006-06-13T18:54:58Z</published>
    <updated>2006-06-14T17:18:01Z</updated>
    <category term="new mexico"/>
    <category term="cooking"/>
    <content type="html">Through most of the early 1990s, my family often enjoyed vacationing in New Mexico.  We first went to attend &lt;a href="http://www.philmont.com/page.php?page=site/home.php"&gt;Philmont&lt;/a&gt;, a large ranch run by the Boy Scouts of America for camping, hiking, and other outdoor activities, as well as training scout leaders.  My mother was active in the volunteer leadership of the BSA, and she led training sessions for several years, eventually serving as chairman for a week.  But even after she had spent the maximum number of years one was allowed to teach there and we kids grew out of Boy Scouts, we had become so attached to New Mexico that we continued going nearly every summer for some time.  Even now, my father is touring the state performing music from his latest album (itself about the Southwest).&lt;br /&gt;&lt;br /&gt;After its spectacular sunsets and desert panoramas, one of the first things that will strike the tourist on his or her first journey to New Mexico is its food.  The &lt;a href="http://en.wikipedia.org/wiki/New_Mexican_cuisine"&gt;local cuisine&lt;/a&gt; is obviously heavily influenced by nearby Texas and Mexico, but it has its own distinctive touches.  It takes as its foundation the ancient American trinity of squash, beans, and corn, and adds to it a fourth member, flame-roasted chile peppers, usually green.  The chiles grown in &lt;a href="http://en.wikipedia.org/wiki/Hatch%2C_New_Mexico"&gt;Hatch Valley&lt;/a&gt; are as prized as the Vidalia onions of Georgia.  It is not uncommon for a restaurant to serve a bowl of stewed chile peppers as a meal, as my father discovered to his great surprise on our first trip.  (He thought he was ordering a bowl of Texas bean chili.)&lt;br /&gt;&lt;br /&gt;One of our favorite things to eat in New Mexico was pueblo pie from &lt;a href="http://www.littleanitas.com/"&gt;Little Anita's&lt;/a&gt;, a small chain of casual restaurants.  It was sort of like lasagna, except with corn mush instead of noodles and a New Mexican chile sauce instead of marinara.  Unfortunately, Dad recently related to me that the item has been struck from the restaurant's menu, with no plans to restore it.  Reminded of how much I liked it, I talked my girlfriend into helping me to try to recreate the dish.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;This first attempt wasn't going to be very faithful to the original, because we didn't have any New Mexican chiles and I realized at the grocery store that I didn't know what cut of pork to use to make the carnitas.  Instead, I decided to stick with chipotles and ground meat.  Here's the recipe we made:&lt;br /&gt;&lt;br /&gt;For the &lt;q&gt;crust&lt;/q&gt;:&lt;ol&gt;&lt;li&gt;Mix 3 cups &lt;a href="http://en.wikipedia.org/wiki/Masa_harina"&gt;masa harina&lt;/a&gt; (hominy flour) with 3 cups warm chicken broth.&lt;/li&gt;&lt;li&gt;Let sit for 20 minutes&lt;/li&gt;&lt;li&gt;In a separate bowl, beat 1 cup vegetable shortening (lard might taste better, if you don't mind the cholesterol) until fluffy.&lt;/li&gt;&lt;li&gt;Stir the shortening into the masa.&lt;/li&gt;&lt;li&gt;Line the bottom and sides of a large casserole dish with the dough.&lt;/li&gt;&lt;li&gt;Bake at 350 degrees for 1 hour.&lt;/li&gt;&lt;/ol&gt;We found that 1 hour was perhaps a little long, for while the crust looked fine, the top edges were a little too hard.  Next time we'll try just 40 minutes or so cooking time.&lt;br /&gt;&lt;br /&gt;For the sauce:&lt;ol&gt;&lt;li&gt;Blister the skins of two and a half tomatoes in a skillet without oil on medium-high heat.  Do not let them burn, and be careful that the skillet itself doesn't smoke, or it'll ruin the seasoning. (I learned this technique, which lends the vegetables a smoky, roasted flavor, from my girlfriend's father.  For the tomatoes, he held them near the open flame of his gas range, which worked much faster and was less awkward to do.  We don't have a gas range, so we had to make do with a hot skillet.)&lt;/li&gt;&lt;li&gt;Do the same with 3 cloves of garlic.&lt;/li&gt;&lt;li&gt;Chop the tomatoes and garlic with a large white onion and 2 chipotle peppers, and puree until smooth.  (We only used 2 peppers because my girlfriend's mother is sensitive to spicy food.  If you like it hot, use 4 or even more.)&lt;/li&gt;&lt;li&gt;Stir in a little cumin, salt, lemon or lime juice, black pepper, and a pinch of cinnamon.&lt;/li&gt;&lt;li&gt;Melt a tablespoon or two of butter in a coated frying pan.  Don't use an iron skillet, as the sauce is very acidic and might cause it to rust.  Pour the sauce into the fat and cook it on medium heat until it reduces slightly and releases a pungent aroma.  If you used 4 or more peppers, it might become &lt;em&gt;very&lt;/em&gt; pungent &amp;mdash; don't let the fumes get in your eyes!&lt;/li&gt;&lt;li&gt;Fry a pound or so of ground meat like turkey or beef, and another onion, chopped.  Mix into the sauce.&lt;/li&gt;&lt;li&gt;Mix in a quarter cup of whole-kernel corn.&lt;/li&gt;&lt;/ol&gt;This sauce was a little too tomatoey.  Next time we'll have a higher onion-to-tomato ratio.  We'll also substitute carnitas for ground meat, and instead of pureeing chipotles with it we'll add roasted green Hatch chiles after blending.&lt;br /&gt;&lt;br /&gt;We poured the sauce with meat and onions into the crust, then covered it with a layer of refried beans.  We used &lt;a href="http://www.fantasticfoods.com/catalog/instant-refried-beans-p-54.html"&gt;Fantastic Foods' Instant Refried Beans&lt;/a&gt; which, although easy to make, are the best I've eaten.  Finally, we topped it with shredded white quesadilla cheese and put it back in the oven for 5 minutes to melt it.  It probably serves around seven people, since the three of us at a little under half.&lt;br /&gt;&lt;br /&gt;It came out very tasty, if probably not too healthy and a bit hard around the edges.  Next time we'll make the changes noted above, and maybe we'll even have the presence of mind to snap a photo before we chow down.  If anyone else tries to make this, let me know how it turns out!&lt;br /&gt;&lt;br /&gt;Now that I've worked out the kinks, I need to figure out when I can cook it for Dad, as a belated birthday present. =)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:pbrooks:2940</id>
    <link rel="alternate" type="text/html" href="http://pbrooks.livejournal.com/2940.html"/>
    <link rel="self" type="text/xml" href="http://pbrooks.livejournal.com/data/atom/?itemid=2940"/>
    <title>The Pope and Genetic Engineering</title>
    <published>2006-04-14T14:05:29Z</published>
    <updated>2006-06-13T20:35:46Z</updated>
    <category term="religion"/>
    <category term="biology"/>
    <content type="html">So, according to the head of the Catholic Church, &lt;a href="http://www.timesonline.co.uk/article/0,,13509-2134140,00.html"&gt;scientists who manipulate genes are evil and destroying humanity&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Never mind that it is through genetic engineering that we can synthesize &lt;a href="http://www.med.uni-giessen.de/itr/history/inshist.html"&gt;insulin&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Erythropoietin"&gt;erythropoietin&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Granulocyte_colony-stimulating_factor"&gt;G-CSF&lt;/a&gt;, and &lt;a href="http://en.wikipedia.org/wiki/Gaucher_disease#Treatment"&gt;glucocerebrosidase&lt;/a&gt;, and create animals that work as models for human diseases (like &lt;a href="http://www.ucdmc.ucdavis.edu/synthesis/Archives/fall03/feature/feature.html"&gt;OncoMice&lt;/a&gt; for breast cancer research) to be able to learn more about the disease without having to endanger humans.  It sounds as if the Pope would rather have the people dependent on these treatments for their quality of life suffer and die so they don't &lt;q&gt;take God’s place without being God.&lt;/q&gt;&lt;br /&gt;&lt;br /&gt;Sorry for the rant, but this kind of thing really gets to me.  Do the people who write these sermons and prayers actually think them through first?  Genetic engineering isn't some abstract thing mad scientists do to give God the finger. It's a set of real technologies thanks to which many people are alive and happy who might otherwise be dead or suffering.  Unfortunately, these benefits are not widely known so it's popular for people seeking support from conservatives to denounce the technology.  As another example, President Bush said something similar in his 2006 State of the Union speech:&lt;blockquote cite="http://www.washingtonpost.com/wp-dyn/content/article/2006/01/31/AR2006013101468.html"&gt;Tonight I ask you to pass legislation to prohibit the most egregious abuses of medical research: human cloning in all its forms; creating or implanting embryos for experiments; &lt;em&gt;creating human-animal hybrids&lt;/em&gt;; and buying, selling or patenting human embryos.&lt;/blockquote&gt;(Brief analysis by biologist PZ Meyers &lt;a href="http://www.bellaonline.com/articles/art36838.asp"&gt;here&lt;/a&gt;.) I imagine that, like Bush, the Pope either doesn't understand the implications of what he's saying or doesn't really intend them.  He's probably just playing politics by throwing bones to his most conservative followers.  But it's still inexcusable to incite people against such helpful technology for such flimsy reasons.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:pbrooks:2690</id>
    <link rel="alternate" type="text/html" href="http://pbrooks.livejournal.com/2690.html"/>
    <link rel="self" type="text/xml" href="http://pbrooks.livejournal.com/data/atom/?itemid=2690"/>
    <title>Email reminder</title>
    <published>2005-10-21T01:02:25Z</published>
    <updated>2005-10-21T01:02:25Z</updated>
    <content type="html">This is just to remind everyone to use my &lt;a href="http://www.gmail.com"&gt;GMail&lt;/a&gt; address (philip.brooks at-sign gmail dot com) instead of my UGAmail address to contact me.  I may not have the UGAmail account much longer.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:pbrooks:2459</id>
    <link rel="alternate" type="text/html" href="http://pbrooks.livejournal.com/2459.html"/>
    <link rel="self" type="text/xml" href="http://pbrooks.livejournal.com/data/atom/?itemid=2459"/>
    <title>Father's Weblog</title>
    <published>2005-10-18T01:31:52Z</published>
    <updated>2005-10-18T01:31:52Z</updated>
    <category term="philip john brooks"/>
    <content type="html">My father (&lt;a href="http://www.livejournal.com/users/pbrooks/1639.html"&gt;see this earlier post&lt;/a&gt;) now has a &lt;a href="http://philipjohnbrooks.blogspot.com/"&gt;weblog&lt;/a&gt;.  His first post is about his latest toy, a new powered speaker for his live shows.  You can definitely see where I get my geekiness from. =)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:pbrooks:2054</id>
    <link rel="alternate" type="text/html" href="http://pbrooks.livejournal.com/2054.html"/>
    <link rel="self" type="text/xml" href="http://pbrooks.livejournal.com/data/atom/?itemid=2054"/>
    <title>YAP Prolog &amp;mdash; Fast!</title>
    <published>2005-10-18T01:23:34Z</published>
    <updated>2005-10-18T01:23:34Z</updated>
    <category term="prolog"/>
    <content type="html">I tried &lt;a href="http://www.ncc.up.pt/~vsc/Yap/"&gt;YAP Prolog&lt;/a&gt; today, a Edinburgh-style Prolog implementation written entirely in C (as opposed to &lt;a href="http://www.swi-prolog.org"&gt;SWI-Prolog&lt;/a&gt;, for example, which is itself partially in Prolog).  The website claims that YAP  exhibits exceptional performance and is at least as fast as, if not faster than, other well-known implementations of the language.  I tried testing this by running my version of the Porter Stemming Algorithm through it.  It took only .6 seconds to process a megabyte of text, compared to 3.4 in SWI-Prolog (both using an Athlon64 3200+ in 32-bit Windows XP)!  This only tests basic rule matching and list manipulation capabilities, but that's still an impressive difference.  I'll still stick with SWI for most things because I find it more featureful and user-friendly, and I usually work with small enough data sets that I don't notice the processing time, but the YAP developers deserve a pat on the back.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:pbrooks:1982</id>
    <link rel="alternate" type="text/html" href="http://pbrooks.livejournal.com/1982.html"/>
    <link rel="self" type="text/xml" href="http://pbrooks.livejournal.com/data/atom/?itemid=1982"/>
    <title>C is BAD</title>
    <published>2005-10-12T19:34:07Z</published>
    <updated>2005-10-12T19:35:32Z</updated>
    <category term="prolog"/>
    <category term="silly"/>
    <content type="html">As part of a homework assignment a few years ago, I needed to be able to use Prolog to generate random numbers from a Gaussian (bell curve) distribution with a given mean and standard deviation.  A friend found the code that does this in the Python standard library, so I translated it into Prolog.&lt;br /&gt;&lt;br /&gt;When SWI Prolog 5.2.10 decompiles a compiled program, it names the first variable to occur A, the second B, and so on.  Part of my translation of the Python looked like this in the source file:&lt;blockquote&gt;&lt;pre&gt;gaussian(SD,Mean,R) :-
	gaussian_z(Z),
	!,
	retractall(gaussian_z(_)),
	R is Mean + SD * Z.&lt;/pre&gt;&lt;/blockquote&gt;When compiled and displayed, it reads:&lt;blockquote&gt;&lt;pre&gt;gaussian(A, B, C) :-
        gaussian_z(D), !,
        retractall(gaussian_z(E)),
        C is B+A*D.&lt;/pre&gt;&lt;/blockquote&gt;In spite of its apparent dislike of the language, I've since translated this from Prolog into C (really, C++) for a quick and dirty Gaussian random number generator for use in SAGA.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:pbrooks:1639</id>
    <link rel="alternate" type="text/html" href="http://pbrooks.livejournal.com/1639.html"/>
    <link rel="self" type="text/xml" href="http://pbrooks.livejournal.com/data/atom/?itemid=1639"/>
    <title>The Music of Philip John Brooks</title>
    <published>2005-10-12T19:20:34Z</published>
    <updated>2005-10-12T19:20:34Z</updated>
    <category term="music"/>
    <category term="philip john brooks"/>
    <content type="html">My father, Philip John Brooks, is a musician.  He started out touring the UK and US playing rock music, but now he focuses on original folk music in both American and British styles.  The songs on his first solo album, &lt;i&gt;Fishermen of Fleetwood&lt;/i&gt;, are about growing up in a fishing village on the northwest coast of England, while those on his newest, &lt;i&gt;A Different Time, a Different Place&lt;/i&gt; are about the American Southwest, especially New Mexico, and its current events and colorful history.  He now has a new website, &lt;a href="http://philipjohnbrooks.com/"&gt;The Tin Whistle&lt;/a&gt;, with links to reviews, places to sample and buy his CDs, and a touring schedule (but an unfortunate color scheme, which I think may change soon).    Anyway, go listen, and feel free to order a few CDs!&lt;br /&gt;&lt;br /&gt;I'll be touring with him as a roadie of sorts in New Mexico the end of this month and beginning of the next one.  I'm looking forward to it.  I haven't been there in years, but it used to be a frequent Brooks family vacation spot before I went off to college.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:pbrooks:1127</id>
    <link rel="alternate" type="text/html" href="http://pbrooks.livejournal.com/1127.html"/>
    <link rel="self" type="text/xml" href="http://pbrooks.livejournal.com/data/atom/?itemid=1127"/>
    <title>The Porter Stemmer in Prolog</title>
    <published>2005-10-12T04:38:04Z</published>
    <updated>2005-10-16T16:21:59Z</updated>
    <category term="prolog"/>
    <category term="natural language processing"/>
    <content type="html">I recently completed a project to implement in Prolog the &lt;a href="http://www.tartarus.org/~martin/PorterStemmer/index.html"&gt;Porter Stemming algorithm&lt;/a&gt;, which uses a rough model of English morphology to quickly estimate the stem of a word for Information Retrieval (IR) purposes.  The code is available &lt;a href="http://ai.uga.edu/pbrooks/porter.txt"&gt;here&lt;/a&gt;.  I first attempted to do this a few years ago with Jon McClain, who has since graduated.  Our original approach was flawed, and we soon abandoned it as we became distracted by other things.  I came across our code a few days ago and decided to rewrite it with a better method in mind.  It seems to comply with the algorithm specification, correctly stemming the sample vocabulary on the website.  Unfortunately, probably largely because Prolog most naturally handles data as linked lists with poor random access time, it does not compare very favorably to the implementations in other languages as far as speed is concerned.  On my computer, it takes 3.4 seconds to process a megabyte of text, compared to the Perl version's 2.8.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Update&lt;/i&gt;: It is now posted on &lt;a href="http://www.tartarus.org/~martin/PorterStemmer/index.html"&gt;Martin Porter's website&lt;/a&gt;.</content>
  </entry>
</feed>
