<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Ezra&apos;s Research</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/" />
    <link rel="self" type="application/atom+xml" href="http://ezrakilty.net/research/atom.xml" />
   <id>tag:ezrakilty.net,2012:/research/9</id>
    <link rel="service.post" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9" title="Ezra&#39;s Research" />
    <updated>2012-03-27T00:45:15Z</updated>
    <subtitle>Programming languages. Ezra Cooper.</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.33</generator>
 
<entry>
    <title>Which exactly answers its end</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/2012/03/which_exactly_answers_its_end.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=1657" title="Which exactly answers its end" />
    <id>tag:ezrakilty.net,2012:/research//9.1657</id>
    
    <published>2012-03-27T00:38:26Z</published>
    <updated>2012-03-27T00:45:15Z</updated>
    
    <summary>I happened upon this nice letter to the Communications of the ACM by Jeremy Gibbons. Like him, I find it disappointing how often people focus on the superficial aspects of &quot;code beauty,&quot; at the expense of a program&apos;s denotational simplicity,...</summary>
    <author>
        <name>Ezra elias kilty Cooper</name>
        
    </author>
            <category term="Programming Activity" />
    
    <content type="html" xml:lang="en" xml:base="http://ezrakilty.net/research/">
        <![CDATA[I happened upon this nice letter to the Communications of the ACM by Jeremy Gibbons. Like him, I find it disappointing how often people focus on the superficial aspects of "code beauty," at the expense of a program's denotational simplicity, which makes a hard problem easy.

<blockquote>
A
s an admirer  of the “artistic flare, nuanced style, 
and technical prowess 
that separates good code 
from great code” explored 
by Robert Green and Henry Ledgard 
in their article “Coding Guidelines: 
Finding the Art in the Science” (Dec. 
2011), I was disappointed by the authors’ emphasis on “alignment, naming, use of white space, use of context, 
syntax highlighting, and IDE choice.” 
As effective as these aspects of beautiful code may be, they are at best only 
skin deep. 
Beauty may indeed be in the eye of 
the beholder, but there is a more compelling beauty in the deeper semantic properties of code than layout and 
naming. I also include judicious use 
of abstraction, deftly balancing precision and generality; elegant structuring of class hierarchies, carefully trading between breadth and depth; artful 
ordering of parameter lists, neatly supporting common cases of partial application; and efficient reuse of library 
code, leveraging existing definitions 
with minimum effort. These are subjective characteristics, beyond the 
reach of objective scientific analysis—
matters of taste not of fact—so represent aspects of the art rather than the 
science of software. 
Formalizing such semantic properties is more difficult than establishing 
uniform coding conventions; we programmers spend our professional lifetimes honing our writing skills, not unlike novelists and journalists. Indeed, 
the great American essayist Ralph 
Waldo Emerson (1803–1882) anticipated the art in the science of software 
like this: “We ascribe beauty to that 
which is simple; which has no superfluous parts; which exactly answers its 
end; which stands related to all things; 
which is the mean of many extremes.” 
It is to this standard I aspire. 
Jeremy Gibbons, oxford, u.K
<blockquote>
]]>
        
    </content>
</entry>
<entry>
    <title>The Scala-Yammer note</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/2011/12/the_scalayammer_note.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=1656" title="The Scala-Yammer note" />
    <id>tag:ezrakilty.net,2011:/research//9.1656</id>
    
    <published>2011-12-01T18:33:20Z</published>
    <updated>2011-12-01T18:36:15Z</updated>
    
    <summary>This criticism of Scala-in-production is most astute. I wish we had more of these things to drive functional language development. I&apos;m very pleased to see that the Yammer people took their use of Scala as far as they did, and...</summary>
    <author>
        <name>Ezra elias kilty Cooper</name>
        
    </author>
            <category term="Constructive Criticism" />
            <category term="Programming Languages" />
    
    <content type="html" xml:lang="en" xml:base="http://ezrakilty.net/research/">
        <![CDATA[<p><a href="http://codahale.com/downloads/email-to-donald.txt">This criticism of Scala-in-production</a> is most astute. I wish we had more of these things to drive functional language development. I'm very pleased to see that the Yammer people took their use of Scala as far as they did, and hope that young startups continue to experiment with modern languages and that languages continue to meet such needs better and better every year.</p>
]]>
        

    </content>
</entry>
<entry>
    <title>Publishing on the up-and-up</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/2011/08/publishing_on_the_upandup.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=1650" title="Publishing on the up-and-up" />
    <id>tag:ezrakilty.net,2011:/research//9.1650</id>
    
    <published>2011-08-09T17:14:49Z</published>
    <updated>2011-10-04T05:54:39Z</updated>
    
    <summary>While booksellers are hurting, publishers are bouncing back. The bounce is observed particularly in fiction, whose death knell has so often been rung. How could this be happening? Could it be that e-books and online mail-order have given publishers a...</summary>
    <author>
        <name>Ezra elias kilty Cooper</name>
        
    </author>
    
    <content type="html" xml:lang="en" xml:base="http://ezrakilty.net/research/">
        <![CDATA[<p><a href="http://www.nytimes.com/2011/08/09/books/survey-shows-publishing-expanded-since-2008.html">While booksellers are hurting, publishers are bouncing back</a>. The bounce is observed particularly in fiction, whose death knell has so often been rung.</p>

<p>How could this be happening? Could it be that e-books and online mail-order have given publishers a more efficient channel to readers? Bookstores like Borders seemed like such sumptuous palaces of consumerism, surrounding us with all those appealing titles. How could even Amazon cross-market any better than that? Here's a sincere question: how are people <em>discovering</em> books in the post-Borders world?</p>

<p>(Admittedly, the study seems to have included some "mobile apps" in the results, but hopefully they're not counting Angry Birds under fiction or textbooks; perhaps only book-like mobile apps get counted.)</p>
]]>
        

    </content>
</entry>
<entry>
    <title>Statement of Purpose</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/2011/05/statement_of_purpose.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=1632" title="Statement of Purpose" />
    <id>tag:ezrakilty.net,2011:/research//9.1632</id>
    
    <published>2011-05-13T03:43:41Z</published>
    <updated>2011-05-13T03:44:30Z</updated>
    
    <summary>Every person should try writing a statement of purpose once every two or three years. Just try. We&apos;d live in a much humbler world....</summary>
    <author>
        <name>Ezra elias kilty Cooper</name>
        
    </author>
    
    <content type="html" xml:lang="en" xml:base="http://ezrakilty.net/research/">
        <![CDATA[<p>Every person should try writing a statement of purpose once every two or three years. Just <em>try</em>.</p>

<p>We'd live in a much humbler world.</p>]]>
        
    </content>
</entry>
<entry>
    <title>From bi-polar to bi-winning</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/2011/03/biwinning.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=1611" title="From bi-polar to bi-winning" />
    <id>tag:ezrakilty.net,2011:/research//9.1611</id>
    
    <published>2011-03-05T00:22:25Z</published>
    <updated>2011-03-05T00:36:46Z</updated>
    
    <summary>I was at NEPLS today—the New England Programming Languages Seminar. Quote of the day (paraphrased): I started grad school in &apos;97 and it took ten years before the following stopped happening: every time I got a paper rejected I said,...</summary>
    <author>
        <name>Ezra elias kilty Cooper</name>
        
    </author>
    
    <content type="html" xml:lang="en" xml:base="http://ezrakilty.net/research/">
        <![CDATA[<p>I was at NEPLS today—the New England Programming Languages Seminar.</p>

<p>Quote of the day (paraphrased):</p>

<blockquote>
  <p>I started grad school in '97 and it took ten years before the following stopped happening: every time I got a paper rejected I said, 'It was terrible, I've never had a good idea, I'm in the wrong area, etc.' And every time I got a paper accepted I was God's gift to programming langauges, etc. It took me that long to realize that it's happened before, it'll happen again, it's gonna be OK."</p>
</blockquote>

<p>Not very concise, but true to life.</p>
]]>
        

    </content>
</entry>
<entry>
    <title>Join algorithms</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/2011/02/join_algorithms.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=1600" title="Join algorithms" />
    <id>tag:ezrakilty.net,2011:/research//9.1600</id>
    
    <published>2011-02-06T14:30:06Z</published>
    <updated>2011-02-06T14:30:44Z</updated>
    
    <summary>Yesterday, I made a hash of things. Today I&apos;ll try to sort things out and put them in order....</summary>
    <author>
        <name>Ezra elias kilty Cooper</name>
        
    </author>
    
    <content type="html" xml:lang="en" xml:base="http://ezrakilty.net/research/">
        <![CDATA[<p>Yesterday, I made a hash of things. Today I'll try to sort things out and put them in order.</p>]]>
        
    </content>
</entry>
<entry>
    <title>Polis and Oikos online</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/2011/02/polis_and_oikos_online.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=1599" title="Polis and Oikos online" />
    <id>tag:ezrakilty.net,2011:/research//9.1599</id>
    
    <published>2011-02-04T05:40:35Z</published>
    <updated>2011-02-04T05:41:41Z</updated>
    
    <summary>All contributors to this debate (at the New York Times) argue that the reason women are underrepresented among Wikipedia editors (according to a recent survey) because the community is unwelcoming to women in subtle ways. This seems to me a...</summary>
    <author>
        <name>Ezra elias kilty Cooper</name>
        
    </author>
            <category term="Constructive Criticism" />
    
    <content type="html" xml:lang="en" xml:base="http://ezrakilty.net/research/">
        <![CDATA[<p>All contributors to <a href="http://www.nytimes.com/roomfordebate/2011/02/02/where-are-the-women-in-wikipedia">this debate</a> (at the New York Times) argue that the reason women are underrepresented among Wikipedia editors (according to <a href="http://www.wikipediasurvey.org/docs/Wikipedia_Overview_15March2010-FINAL.pdf">a recent survey</a>) because the community is unwelcoming to women in subtle ways. This seems to me a surprising conclusion to draw for a couple of reasons.</p>

<p>First, how do we know it is so unwelcoming? The data in the survey doesn't directly support that, and the debaters don't give any new evidence that it is so. (I wouldn't be shocked to see such evidence, but I haven't yet.) Some of the characterizations seem downright wrong to me: <a href="http://www.nytimes.com/roomfordebate/2011/02/02/where-are-the-women-in-wikipedia/open-doesnt-include-everyone">Joseph Reagle says</a>, "a culture of hacker elitism can be unappealing to those unable or unwilling to hew to the stereotypical features of the hacker." Is Wikipedia a culture of hacker elitism? Maybe twenty years ago, any "online community" had some of that hacker flavor, even if it centered on, say, recipe sharing. But now that the web is so mainstream, I don't believe this is always true. If the space is unwelcoming, it's not for this precise reason.</p>

<p>Second, and more importantly, what about the fact that identity is—at least ostensibly—so easy to cloak on the internet? Wikipedia is a place of handles and obscure user pages. What percent of Wikipedia editors have a recognizable gender on the site? Is it hostile to editors who are actually <em>seen</em> as women? Or only because the activity in discussion pages is somehow untenable for women's participation—even when so cloaked?</p>

<p>I wouldn't want Wikipedia's women to rely on such cloaking, but still I'm surprised that more women aren't participating under such cover, or at least that the <cite>Times</cite>' debaters aren't more interested in the question of how gender is represented and enforced on Wikipedia, if that is the claim. For example, one debater, Anna North, says, "I suspect ... one factor [leading fewer women to contribute] may be that solitarily editing an article on an online encyclopedia may be seen as antisocial." But, seen as antisocial by whom? Who's doing this policing?</p>

<!--
For fun, I just clicked on [today's featured article](http://en.wikipedia.org/wiki/Talk:Erie,_Pennsylvania) (Erie, PA) in the English Wikipedia and through to the Discussion page. Being a featured article, I expect the discussion to be very active. The signatures of the first few contributors were as follows: Pat, superluser, Niagara, Pat, Niagara, DagnyB, Niagara, Search4Lancer, DagnyB, Niagara, Pat, Pat, Niagara, TREYWIKI, Niagara, Niagara, Pat, Epbr123 (x3), Write_On_1983, Niagara, trey, trey, Pat, ... The discussion was civil and even friendly. It was not immediately easy for me to assess the gender of the participants, although clicking through to some of the users' pages did give me a clue.
-->

<p>A very interesting point comes from <a href="http://www.nytimes.com/roomfordebate/2011/02/02/where-are-the-women-in-wikipedia/communication-styles-make-a-difference">Susan Herring</a>, who has studied online gender dynamics from mailing lists forward:</p>

<blockquote>
Wikipedia ... is public. Men ... tend to feel a greater sense of entitlement to occupy public space. This is reflected in my finding that men regularly post longer messages to online discussion forums than women do, and they rarely apologize for message length, even when they go on for 20 screens, whereas women apologize even for short messages. Some women may lack the confidence to contribute to Wikipedia or feel that it would be presumptuous of them to do so.
</blockquote>

<p>Elsewhere, it's been reported that online discussions can be "intimidating" to women—but the above quote gives some color to the sort of intimidation we're talking about: not threats as such, or even nasty remarks necessarily. Sometimes it's just <em>weight</em></p>

<p>Herring also notes the relatively higher participation of women in blogs and on Facebook, which might be seen as "private" spaces. This seems a more compelling mechanism for the gender gap: this entitlement that men feel toward public places, as well as the importance they place on fighting over it. There is only one "Egypt" article on Wikipedia—who gets to affect it? Perhaps men will feel a willingness, if not a compulsion, to work for that space, while women may simply feel it's "not worth it" to engage in the flame wars (even if not especially bitter or gender-biased in their content).</p>

<p>To me, it is that "feeling of presumptuousness" in modifying a central public space (a forum, a <i>polis</i>) that is most telling—not to mention the genuine presumptousness of someone who'd ramble on linguistics for twenty screenfuls, taking the right to fill that space, and perhaps fight over it.</p>

<p>Much more research needs to be done on this!</p>
]]>
        

    </content>
</entry>
<entry>
    <title>Much Ado About Parentheses</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/2011/01/much_ado_about_parentheses.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=1592" title="Much Ado About Parentheses" />
    <id>tag:ezrakilty.net,2011:/research//9.1592</id>
    
    <published>2011-01-16T18:00:38Z</published>
    <updated>2011-01-16T20:21:14Z</updated>
    
    <summary>For a bit of light bedtime reading, I&apos;m going through Raymond Smullyan&apos;s book First-Order Logic. It&apos;s a proper math book, not one of his popular fantasias like The Lady or the Tiger, and it was first published in 1968. One...</summary>
    <author>
        <name>Ezra elias kilty Cooper</name>
        
    </author>
            <category term="Pure Math" />
    
    <content type="html" xml:lang="en" xml:base="http://ezrakilty.net/research/">
        <![CDATA[<p>For a bit of light bedtime reading, I'm going through Raymond Smullyan's book <cite>First-Order Logic</cite>. It's a proper math book, not one of his popular fantasias like <cite>The Lady or the Tiger</cite>, and it was first published in 1968.</p>

<p>One of the things that strikes me is how mired in mechanics it is. He defines propositional formulae, as you might expect, as formed from variables, negations, and parenthesized binary connectives, and then he is at pains to point out that every proposition uniquely decomposes as either a variable, a negation, or a parenthesized binary connective. He cites proofs from Church and Kleene.</p>

<p>I spent ages going back and forth trying to decide what the difference between the definition and the lemma was, or to see what the supposed proof obligation was here.</p>

<p>Finally it dawned on me that he sees his formulae as essentially strings of symbols, rather than terms per se, and so the "uniqueness of decomposition" was essentially saying that there is a unique way to parse these symbol-strings as terms. To my modern eyes, it never occurred to me that the definition itself would be interpreted as anything but a definition about terms, or trees.</p>

<p>He goes on to note that, whereas his definition provided for connectives formed as, for example, (<i>X</i> /\ <i>Y</i>), they could have been defined as (<i>X</i>) /\ (<i>Y</i>). Three pages are spent on all this fuss over parentheses, and the equivalence between their different placements! When I didn't even see the parentheses as objects in the first place—they were just notation. How times have changed, for the better.</p>]]>
        
    </content>
</entry>
<entry>
    <title>Compiling regex-posix in Haskell for Windows</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/2011/01/compiling_regexposix_in_haskel.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=1588" title="Compiling regex-posix in Haskell for Windows" />
    <id>tag:ezrakilty.net,2011:/research//9.1588</id>
    
    <published>2011-01-14T22:26:16Z</published>
    <updated>2011-01-19T02:18:17Z</updated>
    
    <summary>WIth a coworker, I just had a problem with a fresh installation of Haskell Platform on Windows, for which we couldn&apos;t find a ready fix online. Here&apos;s what happened on how we fixed it, in hopes of helping others work...</summary>
    <author>
        <name>Ezra elias kilty Cooper</name>
        
    </author>
            <category term="Programming Activity" />
    
    <content type="html" xml:lang="en" xml:base="http://ezrakilty.net/research/">
        <![CDATA[<p>WIth a coworker, I just had a problem with a fresh installation of Haskell Platform on Windows, for which we couldn't find a ready fix online. Here's what happened on how we fixed it, in hopes of helping others work around it.</p>

<p>The package <code>regex-posix-0.94.2</code>, which was installed as part of
<code>haskell-platform-2010.2.0.0</code>, had a bug in its installation script
where it didn't properly locate a dependent library (the <code>libregex</code>
package) and so it would fail to link when it was loaded.</p>

<p><a href="http://osdir.com/ml/libraries@haskell.org/2010-03/msg00238.html">Mailing list traffic</a> identified that this was the core problem, and it
sounded well understood, so that a fix ought to have been made,
although it wasn't obvious; I was
able to see that <code>regex-posix</code> had a newer version, 0.94.4, and while
unable to find a changelog for that package, I conjectured that this
might have the fix. So I upgraded the <code>regex-posix</code> package, as follows:</p>

<pre><code>cabal install regex-posix-0.94.4
</code></pre>

<p>Apparently, the <code>cabal upgrade regex-posix</code> command might have had the same effect.</p>

<p>Then we had to reinstall the packages that depended on it, which we
were able to determine using the</p>

<pre><code>ghc-pkg dot
</code></pre>

<p>output. In our case, the reinstall commands were as follows:</p>

<pre><code>cabal install --reinstall test-framework
cabal install --reinstall test-framework-hunit
cabal install --reinstall test-framework-quickcheck2
</code></pre>

<p>It seems that, until we did this, these packages still depended on the old versions. Oddly, when we ran <code>cabal install --reinstall regex-compat</code>, it kept its dependency on the old <code>regex-posix</code>, even though <code>regex-compat</code>'s <code>.cabal</code> file didn't have a version limitation barring the new version. Anyone know what's up with that?</p>

<p>Seemingly Haskell Platform should be point-released with a dependency on the newer <code>regex-posix</code>. I shall have to talk to Haskell Platform folks about whether this is the right thing.</p>

<p><b>Update</b>  Two further mailing-list posting about this: <a href="http://projects.haskell.org/pipermail/haskell-platform/2010-September/001248.html">from Sept 2010</a> and <a href="http://projects.haskell.org/pipermail/haskell-platform/2010-November/001257.html">Nov 2010</a>.</p>
]]>
        

    </content>
</entry>
<entry>
    <title>Installing Gtk2Hs on MacOS</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/2010/10/installing_gtk2hs_on_macos.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=1573" title="Installing Gtk2Hs on MacOS" />
    <id>tag:ezrakilty.net,2010:/research//9.1573</id>
    
    <published>2010-10-17T20:57:14Z</published>
    <updated>2010-10-17T21:36:15Z</updated>
    
    <summary><![CDATA[After months of quiet yearning &amp; frustration, I finally chewed into a big bullet and got Gtk2Hs installed on my Mac (OS 10.6.4 with GHC 6.12.3). It was a long and harrowing affair. There were many confusing error messages. Ultimately,...]]></summary>
    <author>
        <name>Ezra elias kilty Cooper</name>
        
    </author>
            <category term="Constructive Criticism" />
            <category term="Hacks" />
    
    <content type="html" xml:lang="en" xml:base="http://ezrakilty.net/research/">
        <![CDATA[<p>After months of quiet yearning &amp; frustration, I finally chewed into a big bullet and got Gtk2Hs installed on my Mac (OS 10.6.4 with GHC 6.12.3).</p>

<p>It was a long and harrowing affair. There were many confusing error messages. Ultimately, though, it was just a process of being patient with the various package managers and manually chasing down dependencies that are external to cabal. I had to use both Fink and MacPorts (and had to do lots of time-consuming <code>update</code> and <code>selfupdate</code> runs on these).</p>

<h4>The Packages</h4>

<p>Here are the packages I can remember having to install:</p>

<ul>
<li><code>glib</code> (from Fink)</li>
<li><code>gtk+2</code> (from Fink; NB <code>-shlib</code> and <code>-dev</code> packages)</li>
<li>freetype (??)</li>
<li>fontconfig (??)</li>
<li><code>cairo</code> (from MacPorts)</li>
<li><code>pango</code> (from MacPorts)</li>
</ul>

<p>After all that, <code>cabal install gtk</code> just worked. I was able to run example programs from this <a href="http://www.muitovar.com/gtk2hs/chap2.html">Gtk2Hs tutorial</a> and get the windows to pop up and work correctly.</p>

<h4>Double-Fisting</h4>

<p>Running Fink and MacPorts is like having bacon on your sausage; it's a little redundant and includes much cholesterol, but it's easy to do and feels good at the time. Why I did this, or felt I had to, is now lost to me as well.</p>

<h4>Misc. Stumbling Blocks</h4>

<p>It bears noting that <code>gtk</code> and <code>gtk+</code> are essentially synonyms, so don't go hunting for one when you've got the other. On the other hand, a "2" suffix there is essential: <code>gtk2</code> and <code>gtk-2.0</code> have nothing to do with "<code>gtk</code>" or "<code>gtk</code> 1.x"; they're essentially different products. </p>

<p>Several times I thought I was set having installed, say, the <code>gtk+2</code> and <code>gtk+2-shlibs</code> packages from Fink, only to receive a complaint that gtk+2.pc (the <code>pkg-config</code> data file which other packages use to locate <code>gtk+2</code>) was missing, which made me gnash my teeth. The fix was to also install <code>gtk+2-dev</code>, which apparently should be called <code>gtk+2-without-which-nothing</code>.</p>

<h4>Wordsize Conundra</h4>

<p>I've had a number of minor 32- vs 64-bit problems with GHC. It seems that Haskell Platform installs a 32-bit <code>ghc</code>. (Why would this be? GHC does run 64-bit on MacOS, doesn't it?). Sometimes package managers install fat versions of libraries, which is good, but when using both Fink and MacPorts, a library with 64-bit-only versions might shadow the other.</p>

<p>Somewhere in the darkness, I had a problem with <code>zlib</code> being 64-bit and hence unusable, and I couldn't determine which library was using it in order to muck with it (it wasn't <code>gtk</code> itself, <code>glib</code>, nor the Haskell <code>zlib</code> bindings). This was fixed by un- and re-installing GHC via Haskell Platform, which entailed a minor version upgrade as well as perhaps clearing any strange customizations that I can't deny making to the 32-bitness of my GHC install.</p>

<p>(I'm surprised there's not a better system for managing such library flavors on OS X. Couldn't we keep separate system paths like <code>/usr/local/lib64</code> and such? Or would this be a greater nightmare in itself?)</p>

<h4>Apologies</h4>

<p>I wish this were a more helpful document. If you try this soon, and hit a snag, let me know and I'll either remember how I resolved it, or try to add to what's here.</p>
]]>
        

    </content>
</entry>
<entry>
    <title>Big Lambda</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/2010/07/big_lambda.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=1546" title="Big Lambda" />
    <id>tag:ezrakilty.net,2010:/research//9.1546</id>
    
    <published>2010-07-31T23:36:12Z</published>
    <updated>2010-07-31T23:40:08Z</updated>
    
    <summary> Illustration and first page of the story &quot;Missing Out&quot; by Leila Aboulela, in Granta no. 111. The protagonist is a young Sudanese postgrad math student in London....</summary>
    <author>
        <name>Ezra elias kilty Cooper</name>
        
    </author>
            <category term="Programming Languages" />
    
    <content type="html" xml:lang="en" xml:base="http://ezrakilty.net/research/">
        <![CDATA[<p><a href="/research/images/big-lambda-big.jpeg"><br />
<img src="/research/images/big-lambda-bigthumb.jpeg" /><br />
</a><br />
Illustration and first page of the story "Missing Out" by Leila Aboulela, in Granta no. 111. The protagonist is a young Sudanese postgrad math student in London.</p>]]>
        
    </content>
</entry>
<entry>
    <title>What ARE anamorphisms</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/2010/03/what_are_anamorphisms.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=1487" title="What ARE anamorphisms" />
    <id>tag:ezrakilty.net,2010:/research//9.1487</id>
    
    <published>2010-03-07T05:26:56Z</published>
    <updated>2010-03-07T05:27:45Z</updated>
    
    <summary>So I got sucked into editing the wikipedia page for anamorphisms, which was a mess: it didn&apos;t define the concept itself, except to say that it&apos;s a generalization of unfolds, and allude to category theory; it had duplicated code, but...</summary>
    <author>
        <name>Ezra elias kilty Cooper</name>
        
    </author>
            <category term="Programming Languages" />
    
    <content type="html" xml:lang="en" xml:base="http://ezrakilty.net/research/">
        <![CDATA[<p>So I got sucked into editing the wikipedia page for <a href="http://en.wikipedia.org/wiki/Anamorphism">anamorphisms</a>, which was a mess: it didn't define the concept itself, except to say that it's a generalization of unfolds, and allude to category theory; it had duplicated code, but treated the duplicates as different, and was generally jargon-heavy and not very helpful.</p>

<p>But while fixing it, I got stuck on a puzzle: what exactly <em>is</em> an anamorphism?</p>

<p>Is an anamorphism a higher-order unfold operator? Or is it any function which is defined by partially applying such an operator? Or a function that is defined using a certain syntactic pattern, corresponding to an unfold operator? Or any function at all that <em>could</em> be so defined?</p>

<p>In the almighty "Programming with Bananas, Lenses, Envelopes and Barbed Wire," they seem to use "anamorphism" to refer to a function defined by a certain syntactic pattern. It's a question of interpretation, but they don't seem to define it as a higher-order function, exactly: the text posits some pre-existing operators and then the code sample, which takes just one argument (the "seed" value to unfold from), uses those posited operators.</p>

<p>It seems natural to me to use "anamorphism" to refer to the (unique) unfold operator for a given ADT, and likewise for "catamorphism" and fold. We still have the plural "anamorphisms," since we have many types with such operators. And, I'm not sure to what extent a function is intrinsically "an anamorphism" in Meijer, et al.'s sense. Of course, it is intrinsic whether a function can or cannot be defined that way; but when we start using the whole bag of bananas, lens, envelopes and barbed wire, I think we get multiple ways to define many functions, so it's less intrinsic.</p>

<p>I'd like to hear what others think: What <em>are</em> anamorphisms? Please comment!</p>
]]>
        

    </content>
</entry>
<entry>
    <title>Simply adding lambda won&apos;t make your rewrites diverge</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/2010/03/simply_adding_lambda_wont_make.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=1481" title="Simply adding lambda won&#39;t make your rewrites diverge" />
    <id>tag:ezrakilty.net,2010:/research//9.1481</id>
    
    <published>2010-03-01T02:54:15Z</published>
    <updated>2010-03-01T03:03:42Z</updated>
    
    <summary>I&apos;ve been working on trying to extend a result from my thesis, having to do with strong normalization of a certain higher-order rewrite system, but its proof is very complicated, so I&apos;ve been working on simplifying it. Along the way...</summary>
    <author>
        <name>Ezra elias kilty Cooper</name>
        
    </author>
            <category term="Programming Languages" />
            <category term="Research Writing" />
    
    <content type="html" xml:lang="en" xml:base="http://ezrakilty.net/research/">
        <![CDATA[<p>I've been working on trying to extend a result from my thesis, having to do with strong normalization of a certain higher-order rewrite system, but its proof is very complicated, so I've been working on simplifying it.</p>

<p>Along the way I found a paper by Mitsuhiro Okada from 1989 which proves strong normalization for the combination of STLC with any first-order term-rewriting system. But this paper is hard to read because it has strange notations and concepts and says things like, "If a part s[*/x1, ..., */xn, */y] of t belongs to the cap then the part s[*/x1, ..., */xn, */y] also belongs to the cap." Say what?</p>

<p>I knew I could prove the same result using the Tait-Girard method (the same basic approach Okada takes) in a more straightforward way—at least to me. So I did, and here it is for future reference: "<a href="http://ezrakilty.net/pubs/sntlctrs.pdf">Simply adding lambda won't make your rewrites diverge</a>."</p>]]>
        
    </content>
</entry>
<entry>
    <title>Krugman</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/2010/02/krugman.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=1479" title="Krugman" />
    <id>tag:ezrakilty.net,2010:/research//9.1479</id>
    
    <published>2010-02-27T04:02:15Z</published>
    <updated>2010-02-28T18:26:45Z</updated>
    
    <summary>Economist Paul Krugman, as portrayed in this week&apos;s New Yorker profile, reminds me a lot of a computer scientist. MacFarquhar explains one of Krugman&apos;s economic ideas, namely that locations specialize economically—cars in Detroit and chips in Silicon Valley—and reports this...</summary>
    <author>
        <name>Ezra elias kilty Cooper</name>
        
    </author>
    
    <content type="html" xml:lang="en" xml:base="http://ezrakilty.net/research/">
        <![CDATA[<p>Economist Paul Krugman, as portrayed in <a href="http://www.newyorker.com/reporting/2010/03/01/100301fa_fact_macfarquhar">this week's <cite>New Yorker</cite> profile</a>, reminds me a lot of a computer scientist. MacFarquhar explains one of Krugman's economic ideas, namely that locations specialize economically—cars in Detroit and chips in Silicon Valley—and reports this interesting reaction to it:</p>

<blockquote>'I explained this basic idea to a non-economist friend, who replied in some dismay, "Isn't that pretty obvious?" And of course it is.' Yet, because it had not been well modelled, the idea had been disregarded by economists for years.<br />
(MacFarquhar, "The Deflationist." <cite>The New Yorker</cite>, March 1, 2010.)</blockquote>

<p>Much of what we academics do (in computer science and, apparently, in economics) is to take an intuitive idea and make it precise—modelling it, if you will. Those who simply think intuitively may have already absorbed the idea and treat it as old hat—but the model, by making it more precise, illuminates it further and more securely and can lead to new inspirations.</p>

<p>MacFarquhar adds another interesting idea here:</p>

<blockquote>
His friend Craig Murphy, a political scientist at Wellesley, had a collection of antique maps of Africa. ... Sixteenth-century maps of Africa were misleading in all kinds of ways, but they contained quite a bit of information about the continent's interior—the River Niger, Timbuktu. Two centuries later, mapmaking had become much more accurat, but the interior of Africa had become a black. As standards for what counted as a mappable fact rose, knowledge that didn't meet those standards—secondhand travellers' reports, guess hazarded without compasses or sextants—was discarded and lost. Eventually, the higher standards paid off—by the nineteenth century the maps were filled in again—but for a while the sharpening of technique caused loss as well as gain.
</blockquote>

<p>I'm intrigued by this idea that higher standards of precision can cause us to 'forget' disciplinary knowledge, material that no longer meets the standards. Of course, the higher standards are all about eliminating 'knowledge' that isn't actually correct. But some of it, perhaps, is correct, and anyway there's an outer shape to the knowledge that is useful: after all, there was still a River Niger even if the mapmakers didn't know exactly where it flowed.</p>

<p>This might happen in computer science, too. I think of Don Knuth's penchant for reading antique sources describing algorithms from pre-modern times.</p>

<p>There might be inspiration in the older, less-precise knowledge of one's field: it might be a source of ideas to be modelled.</p>]]>
        
    </content>
</entry>
<entry>
    <title>What I&apos;m doing now</title>
    <link rel="alternate" type="text/html" href="http://ezrakilty.net/research/2010/02/what_im_doing_now.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://ezrakilty.net/mt/mt-atom.cgi/weblog/blog_id=9/entry_id=1470" title="What I&#39;m doing now" />
    <id>tag:ezrakilty.net,2010:/research//9.1470</id>
    
    <published>2010-02-16T00:09:39Z</published>
    <updated>2010-02-16T00:18:17Z</updated>
    
    <summary>So what I do lately is I work for a company in Cambridge, MA that has a big XQuery engine for searching &quot;semi-structured&quot; databases. That is, we use language technology to allow people to write nifty searches. I had some...</summary>
    <author>
        <name>Ezra elias kilty Cooper</name>
        
    </author>
            <category term="Working" />
    
    <content type="html" xml:lang="en" xml:base="http://ezrakilty.net/research/">
        <![CDATA[<p>So what I do lately is I work for a company in Cambridge, MA that has a big XQuery engine for searching "semi-structured" databases. That is, we use language technology to allow people to write nifty searches.</p>

<p>I had some other interesting job offers, but I took this one because (a) it was in the Boston area, which is where I wanted to be at the time and (b) I wanted to get behind one central product and contribute some programming-language knowledge to it. I was surprised to discover a company that would let me do both.</p>

<p>As part of what how we're improving the product just now, we're building a parallelizing compiler for relational algebra—roughly the sort of stuff that titilates me as a langauge engineer, and tangentially (at least) related to some of my thesis work.</p>

<p>Since it's a company trying to compete against others, I probably won't be blogging much about what I'm doing at work, but I still hope to keep this blog active and post researchy notes here.</p>]]>
        
    </content>
</entry>

</feed> 

