<?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>David R. MacIver &#187; rambling nonsense</title>
	<atom:link href="http://www.drmaciver.com/category/rambling-nonsense/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.drmaciver.com</link>
	<description></description>
	<lastBuildDate>Tue, 07 Feb 2012 11:12:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Constraints for wish construction</title>
		<link>http://www.drmaciver.com/2011/10/constraints-for-wish-construction/</link>
		<comments>http://www.drmaciver.com/2011/10/constraints-for-wish-construction/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 14:44:39 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[rambling nonsense]]></category>

		<guid isPermaLink="false">http://www.drmaciver.com/?p=4154</guid>
		<description><![CDATA[Charles Stross has recently had two posts about your classic &#8220;three wishes&#8221; style problem. The only constraint he lists is &#8220;No, you do not get to wish for further wishes&#8221; Of course if you give a geek this constraint they will immediately do their best to subvert it. His wishes: 1. That the outcome of [...]]]></description>
			<content:encoded><![CDATA[<p>Charles Stross has recently had <a href="http://www.antipope.org/charlie/blog-static/2011/10/three-wishes.html">two</a> <a href="http://www.antipope.org/charlie/blog-static/2011/10/another-trick-question.html">posts</a> about your classic &#8220;three wishes&#8221; style problem. The only constraint he lists is &#8220;No, you do not get to wish for further wishes&#8221;</p>
<p>Of course if you give a geek this constraint they will immediately do their best to subvert it.</p>
<p><a href="http://www.antipope.org/charlie/blog-static/2011/10/three-wishes.html#comment-215144">His wishes</a>:</p>
<blockquote><p>
1. That the outcome of my three wishes will be positive for everyone affected by them (with the definition of &#8220;positive outcome&#8221; provided by the individual so affected),</p>
<p>2. That anything that can be obtained by one of these magic wishes can be obtained by non-magical human efforts,</p>
<p>3. That nobody ever gets any more magic wishes
</p></blockquote>
<p>Personally, I feel this is cheating a bit. Anything which messes with the mechanism of wishing to this extent really feels like it&#8217;s violating the spirit of &#8220;No wishing for more wishes&#8221;. So I started thinking about how I would construct wish provisioning systems that were immune to this sort of twisting.</p>
<p>The following is the rules set I came up with:</p>
<ol>
<li>The implementer of the wishes is completely unable to use its abilities outside of the constraints of wishing. No coercion to obtain more wishes is thus possible</li>
<li>Wishes are magical. That is, non-physical.</li>
<li>Wishes may only have physical effects (effects solely in peoples&#8217; minds count as physical. A Cartesian dualist I am not. Similarly the provision of information is totally kosher &#8211; he just hands you a book or a hard drive or writes the information into your brain or whatever) and things created as a result of wishing may not have any magical effects (no wishing for a second genie)</li>
<li>In particular, while the mechanism for implementing wishes is not subject to physical laws, the results must be. There is no ongoing magical intervention to maintain the results of the wish</li>
</ol>
<p>So essentially we have a two-category system for effects: While the genie may use its magical powers to achieve any physical effect, the effect of wishing is not subject to that. </p>
<p>In the case of a magic lamp where there is a token you can pass from person to person you are of course still able to get infinite wishes by e.g. wishing for an army of utterly loyal minions and passing the lamp from minion to minion. This is a problem easily solved by requiring an ever-growing cool-down time between new owners, which at leasts drastically limits the rate at which wishes can be performed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drmaciver.com/2011/10/constraints-for-wish-construction/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ethical Calculus</title>
		<link>http://www.drmaciver.com/2011/10/ethical-calculus/</link>
		<comments>http://www.drmaciver.com/2011/10/ethical-calculus/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 15:13:49 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[rambling nonsense]]></category>

		<guid isPermaLink="false">http://www.drmaciver.com/?p=4142</guid>
		<description><![CDATA[This is an idea that&#8217;s been brewing in my head for a while. I was waiting for it to be more fully formed before posting it, but it doesn&#8217;t seem to be going anywhere so I figured I&#8217;d just throw it out now and see what people thought. Hence this is largely a collection of [...]]]></description>
			<content:encoded><![CDATA[<p>This is an idea that&#8217;s been brewing in my head for a while. I was waiting for it to be more fully formed before posting it, but it doesn&#8217;t seem to be going anywhere so I figured I&#8217;d just throw it out now and see what people thought. Hence this is largely a collection of half formed ideas.</p>
<p>The idea is this:</p>
<p>We have some sort of value function which measures something good about a situation for an individual. This isn&#8217;t necessarily the economists&#8217; magic &#8220;capture everything this person cares about&#8221; sort of value function (I don&#8217;t believe in those). This is something more concrete like &#8220;life expectancy&#8221; or &#8220;cost of living adjusted wealth&#8221;. All that we care about is:</p>
<ul>
<li>A value function f takes an individual i and an event E and assigns a real valued score f(i, E)</li>
<li>All other things being equal, if f(i, E) < f(i, E'), E' is "better" for that individual than E</li>
</ul>
<p>The question is this: Given such a value function and a population, how should we create a corresponding value function F which captures the best behaviour for the population? Note that it is <em>extremely</em> likely that the answer to this depends on the choice of f. </p>
<p>(Note that it is not a priori obvious that it is reasonable to do so. I suspect it is not, but that there may be useful group value functions we can assign)</p>
<p>The traditional measure used by certain groups (who I shall not name lest they appear) is that of averaging the values. i.e. given a population P we choose</p>
<p>F(P, E) = 1/|P| sum_{i in P} F(i, E)</p>
<p>I consider this to be a terrible choice. Why? Because it&#8217;s completely insensitive to value distribution. If you &#8220;steal&#8221; value from someone and give it to another person, F doesn&#8217;t change. Thus F is entirely ok with the exploitation of the poor at the hands of the rich, for example.</p>
<p>So if we don&#8217;t like that, what do we like? How do we go about choosing a good way of assigning F?</p>
<p>I claim that this is an ethical question, and that the decisions you make have to be heavily informed by your code of ethics.</p>
<p>Do I have a concrete proof of that? No, not really. I don&#8217;t think I could provide a proof of that without an actual definition of code of ethics, and I thing it would end up a bit circular. But most of the reasons I&#8217;ve ended up judging specific examples as unacceptable are purely ethical ones &#8211; e.g. consider the reason I dislike averaging.</p>
<p>Let&#8217;s consider some other ethical aspects and perhaps you&#8217;ll see what I mean.</p>
<p>Let Q be some subset of the population P, and suppose I define F(P, E) = F(Q, E).</p>
<p>Consider Q to be &#8220;white people&#8221; or &#8220;men&#8221;.</p>
<p>That seems like a pretty awful way to judge value for a population, doesn&#8217;t it?</p>
<p>It could of course be even worse. You could define F(P, E) = F(Q, E) &#8211; F(P \ Q, E). i.e. doing good for anyone outside that group is considered actively disadvantageous.</p>
<p>So here&#8217;s a perhaps reasonable ethical principle:</p>
<p>Call the privileged population of F the set of individuals i such that</p>
<ul>
<li>Increasing the value of f(i, E) by varying E in a way that does not change f(j, E) for any other j does not decrease F</li>
<li>Increasing the value of f(i, E) by varying E in a way that does not change f(j, E) for any other j may under some circumstances increase F</li>
</ul>
<p>A not unreasonable principle of equality is &#8220;the whole of P is privileged&#8221;.</p>
<p>You could define a much stronger principle of equality: Swapping the scores of any two individuals should not affect the value of F. This is the most extreme (and probably the most fair) form of equality I can think of in this case.</p>
<p>It&#8217;s worth thinking about whether you actually agree with these principles: For example, what happens if you let the privileged population be &#8220;The set of people who are not serial killers&#8221;. Even if you wouldn&#8217;t support them being unprivileged for things like &#8220;life expectancy&#8221; if you&#8217;re anti death penalty, chances are good you&#8217;d not want them to be given the same treatment under freedom of movement.</p>
<p>(Of course, letting serial killers go free violates the &#8220;all else being equal&#8221; aspect of these considerations, so maybe you would).</p>
<p>Another perhaps reasonable principle can be extracted from the &#8220;privileged population&#8221; definition I had above. It contained an implicit assumption: That increasing an individual&#8217;s score should never decrease the overall score.</p>
<p>Do we agree with that? I don&#8217;t know. Consider for example the example of a large population living in abject poverty ruled by a well off elite. Is it really worse to have the elite better off? I don&#8217;t think it is, although I don&#8217;t necessarily think it&#8217;s better either &#8211; the problem is the massive poverty rather than how well off the elite is.</p>
<p>Beyond that, I&#8217;m not really sure where to go with this, other than to provide some examples of possible solutions:</p>
<ul>
<li>Minimum value of f(i, E)</li>
<li>Maximum value of f(i, E) (this would be a pretty hard one to justify ethically)</li>
<li>Indeed, any x% mark of f(i, E). i.e. the maxium value such that at least x% of the population have this value. This includes the median value</li>
<li>The mean value</li>
<li>Any convex combination of otherwise acceptable values. For example the sum of the minimum and the median</li>
</ul>
<p>Unsurprisingly, most of these look like averages, and <a href="http://en.wikipedia.org/wiki/Average">most averages</a> should work. Note however that the modal value doesn&#8217;t satisfy the principle that increasing the value of an individual shouldn&#8217;t decrease the value of the population. </p>
<p>Where am I going with this? Beats me. This is about as far as I&#8217;ve got with the thought process. Any thoughts?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drmaciver.com/2011/10/ethical-calculus/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Axioms, definitions and agreement</title>
		<link>http://www.drmaciver.com/2009/06/axioms-definitions-and-agreement/</link>
		<comments>http://www.drmaciver.com/2009/06/axioms-definitions-and-agreement/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 12:50:05 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[rambling nonsense]]></category>
		<category><![CDATA[arguments]]></category>
		<category><![CDATA[philosophy]]></category>

		<guid isPermaLink="false">http://www.drmaciver.com/?p=1169</guid>
		<description><![CDATA[A while ago I posted A Problem of Language, a response to an article claiming that Scala was not a functional language. This isn&#8217;t an attempt to revive that argument (and please don&#8217;t respond to it with such attempts. I&#8217;m likely to ignore or delete comments on the question of whether Scala is a functional [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago I posted <a href="http://www.drmaciver.com/2009/05/a-problem-of-language/">A Problem of Language</a>, a response to an article claiming that Scala was not a functional language. This isn&#8217;t an attempt to revive that argument (and please don&#8217;t respond to it with such attempts. I&#8217;m likely to ignore or delete comments on the question of whether Scala is a functional language). It&#8217;s a post which is barely about programming, except by example. Really it&#8217;s a post about the philosophy of arguments. </p>
<p>My point was basically that without a definition of &#8220;functional language&#8221; (which no one had provided) it was a meaningless assertion to make.</p>
<p>Unfortunately this point isn&#8217;t really true. I think I knew that at the time of writing but glossed over it to avoid muddying the waters, as it&#8217;s false in a way that doesn&#8217;t detract from the basic point of the article, but it&#8217;s been bugging me slightly so I thought I&#8217;d elaborate on the point and the basic ideas.</p>
<p>Let&#8217;s start with what&#8217;s hopefully an unambiguous statement:</p>
<blockquote><p>
Brainfuck is not a functional language
</p></blockquote>
<p>Hopefully no one wants to argue the point. :-)</p>
<p>Well, why is brainfuck not a functional language? It doesn&#8217;t have functions!</p>
<p>So, we&#8217;re making the following claim:</p>
<blockquote><p>
A functional language must have a notion of function
</p></blockquote>
<p>(in order to make this fully formal you&#8217;d probably have to assert some more properties functions have to satisfy. I can&#8217;t be bothered to do that).</p>
<p>Hopefully this claim is uncontroversial. </p>
<p>But what have we done here? We&#8217;ve, based on commonly agreed statements, proved that Brainfuck is not functional without having defined &#8220;functional programming language&#8221;. i.e. my claim that you need a definition in order to meaningfully claim that a language is not functional is false.</p>
<p>What you need in order to make this claim is a <em>necessary condition</em> for the language to be functional. Then on showing that condition does not hold you have demonstrated the dysfunctionality of the language.</p>
<p>But how do we arrive at necessary conditions without a definition? Well, we simply assert them to be true and hope that people agree. If they do agree, we&#8217;ve achieved a basis on which we can conduct an argument. If they don&#8217;t agree, we need to try harder. </p>
<p>A lot of moral arguments come down to this sort of thing. Without wanting to get into details, things like arguments over abortion or homosexuality frequently come down to arguments over a basic tenet: Do you consider a fetus to be of equal value to a human life, do you consider homosexuality to be inherently wrong, etc. (what I said about arguments RE Scala holds in spades for arguments on these subjects). It&#8217;s very rare for one side to convince the other of anything by reasoned argument, because in order to construct a reasoned argument you have to find a point of agreement from which to argue and that point of agreement just isn&#8217;t there.</p>
<p>Mathematically speaking, what we&#8217;re talking about is an <a href="http://en.wikipedia.org/wiki/Axiom">Axiom</a>. Wikipedia says:</p>
<blockquote><p>
In traditional logic, an axiom or postulate is a proposition that is not proved or demonstrated but considered to be either self-evident, or subject to necessary decision. Therefore, its truth is taken for granted, and serves as a starting point for deducing and inferring other (theory dependent) truths.
</p></blockquote>
<p>I consider this definition to be true, but perhaps a bit obfuscated. I&#8217;d like to propose the following definition. It&#8217;s overly informal, but I find it&#8217;s a better way to think about it:</p>
<blockquote><p>
An axiom is a point which we agree to consider true without further discussion as a basis for arriving at an agreement.
</p></blockquote>
<p>(This may give the hardcore formalists a bit of a fit. If so, I apologise. :-) It is intended to be formalist more in spirit than letter )</p>
<p>The most important part of this is that axioms are <em>social tools</em>. They don&#8217;t have any sort of deeper truth or meaning, they&#8217;re just there to form a basis for the discussion. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.drmaciver.com/2009/06/axioms-definitions-and-agreement/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Computational linguistics and Me</title>
		<link>http://www.drmaciver.com/2009/01/computational-linguistics-and-me/</link>
		<comments>http://www.drmaciver.com/2009/01/computational-linguistics-and-me/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 17:54:32 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[computational linguistics]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rambling nonsense]]></category>
		<category><![CDATA[natural language processing]]></category>

		<guid isPermaLink="false">http://www.drmaciver.com/?p=262</guid>
		<description><![CDATA[Apparently I&#8217;m a computational linguistics blogger. This is sortof news to me. The closest I&#8217;ve come to blogging about computational linguistics is in writing a borderline rant about academia. That being said, I do work in computational linguistics: SONAR is basically a great big NLP system. This fact, however, is almost totally unrepresented in my [...]]]></description>
			<content:encoded><![CDATA[<p>Apparently <a href="http://mendicantbug.com/2009/01/24/computational-linguistics-blogs/">I&#8217;m a computational linguistics blogger</a>. This is sortof news to me. The closest I&#8217;ve come to blogging about computational linguistics is in writing <a href="http://www.drmaciver.com/2008/12/living-on-the-edge-of-academia/">a borderline rant about academia</a>.</p>
<p>That being said, I <em>do </em>work in computational linguistics: <a href="http://www.trampolinesystems.com/product/SONAR/benefits">SONAR</a> is basically a great big NLP system.</p>
<p>This fact, however, is almost totally unrepresented in my blogging.</p>
<p>Actually, that&#8217;s part of why I&#8217;ve been blogging so much less recently. Since moving onto SONAR my brain has been afire with newly acquired knowledge and trying to figure out how best to apply it to work problems. This has left relatively little time for most of the other stuff I think about that normally generates blogging.</p>
<p>Of course the obvious solution is that I should be blogging about computational linguistics. But that has some obstacles. Primarily:</p>
<h4>Confidentiality</h4>
<p>All the computational linguistics stuff I do is for work. I tinker around with it at home, but haven&#8217;t really done anything useful. This makes it difficult to know what I can blog about: I certainly can&#8217;t go &#8220;HEY GUYS. I FIGURED OUT THIS AWESOME ALGORITHM WHICH WE&#8217;RE USING IN SONAR&#8221; for everything. We rather rely on some of that magic to make us money. :-)</p>
<p>That being said, there&#8217;s definitely stuff I can blog about. e.g. there&#8217;s nothing particularly confidential in how we extract likely candidate phrases from a document, and it&#8217;s at least mildly interesting (probably more to non-linguists, but who knows?). In fact, we&#8217;re actually all encouraged to blog more about what we do but never find the time. So, really, work isn&#8217;t that much of an obstacle to blogging about this. It just requires a bit of careful thought.</p>
<h4>Experience</h4>
<p>I&#8217;m very new to computational lingusitics. As such, I&#8217;ve a much less clear idea what&#8217;s bloggable about in it. If we look at <a href="http://www.drmaciver.com/category/programming/page/24/">my blogging history</a>, I started blogging about programming in february 2007. That&#8217;s just shy of a year after I started working as a programmer (which, effectively, is just shy of a year after I started programming anything in earnest). And I think it took another six months of blogging before I actually wrote anything worth reading. In comparison, I&#8217;ve not even worked in computational linguistics for 6 months (I think I started work on SONAR in september and had no exposure to it before that). So I&#8217;m very much still sortof fumbling along, trying to figure out the best way to do things.</p>
<p>From a work point of view that&#8217;s fine. Actually some of my best work is done when I don&#8217;t know what I&#8217;m doing: I&#8217;m more able to ask stupid questions and get useful answers and I come at things from a sufficiently different angle to normal that sometimes I produce unexpected results.</p>
<p>But from a blogging point of view it&#8217;s pretty likely that what I end up writing about will range from the trivial to the wrong, until I find my feet. Some of it might be of interest to non-linguists but too basic to be of interest to linguists. Some of it might be so esoteric that it would only be of interest to linguists, at least it would if they weren&#8217;t so easily able to point out why it&#8217;s wrong. Some of it might be of interest only to me.</p>
<p>But actually this is a really piss poor excuse to not blog about it. Because, frankly, I do not write to amuse you. Writing for other people is, to me, a waste of time. I write about what is of interest to me. With any luck other people will find it interesting too, but that isn&#8217;t the primary point.</p>
<h4>So&#8230;</h4>
<p>In conclusion, my two main reasons for not blogging more about comptuational linguistics, natural language processing, etc. suck. So expect to see more about it here in the future. This probably means you&#8217;ll see more Ruby as well, as that&#8217;s what we use at work and I don&#8217;t expect I&#8217;ll bother translating into Scala except when I have a specific reason to do so.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drmaciver.com/2009/01/computational-linguistics-and-me/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

