Luke Palmerhttps://lukepalmer.wordpress.com
Functional programming, philosophy, education, musicFri, 13 Mar 2015 08:43:37 +0000enhourly1http://wordpress.com/https://s2.wp.com/i/buttonw-com.pngLuke Palmerhttps://lukepalmer.wordpress.com
Disrespect in Educationhttps://lukepalmer.wordpress.com/2014/08/05/disrespect-in-education/
https://lukepalmer.wordpress.com/2014/08/05/disrespect-in-education/#commentsTue, 05 Aug 2014 04:47:15 +0000http://lukepalmer.wordpress.com/?p=2708Continue reading Disrespect in Education→]]>I was sitting at a large, round table with all the teachers of the CHOICE middle-school program sitting around me solemnly. They had called me here to inform me that, in my final year at middle school, I wouldn’t be allowed to go on this year’s spring trip — a multiple-day hiking and camping excursion taken every year by the school. Ms. Green cried as she delivered this news. The reason was that I was not a good enough student — that I did not complete enough of the work that they had assigned me to be afforded this privilege.

I don’t remember analyzing the situation closely, but I do remember being rather unfazed. After all, it meant that I got to stay home for a week doing as I pleased instead of spending a week with my cruel classmates and lack of friends. I did empathize with my teachers who were very torn up about the whole thing. I knew that they saw “potential” in me and perceived that I was squandering it, and felt that they needed to impose “consequences” in order to drive the message home. Perhaps I learned that if I don’t do what authorities tell me to do, they set me free and allow me to do with my time what I actually want.

In 11th or 12th grade physics, we were learning about circuits, and I was learning LISP on my own time (instead of doing homework). I saw a mapping from the circuits we were studying to a hierarchical description, and wrote a program that would reconstruct as much information (currents, voltages, resistances) as possible from the information given using repeated application of Ohm’s law. I informed the teacher of this, and he seemed pleased; I asked if I could use it on the homework and tests and he said that I could not. Writing the program increased my understanding of circuits a great deal, but the existence of the program itself afforded me no real advantage. Perhaps this experience is why my preferred way to use software today is as a mathematical and mind-expansion exercise rather than making a tool that can actually be used.

When I studied education in college, the community was very interested in making sure that students saw the real-world application of mathematics, trying to combat the (correct) perception that what students are being taught is useless. Hence the all-too-familiar “word problems”:

Train A, traveling 70 miles per hour (mph), leaves Westford heading toward Eastford, 260 miles away. At the same time Train B, traveling 60 mph, leaves Eastford heading toward Westford. When do the two trains meet? How far from each city do they meet? (source)

Of course, nobody has ever tried to solve this problem with two trains unless they are already interested in math, and then only in the abstract (this kind of information is difficult to find about actual trains). The truth is that at this level of “real world”, math beyond basic arithmetic and estimation is not really useful, so any attempt to make it seem so will be disingenuous. I believe kids are smart; they will not be fooled so easily.

The theme tying these anecdotes together is disrespect. I do believe that teachers have the best intentions for their students, and in many cases love them. But if you respect your students, you would not give them as a word problem a situation you have never come across to convince them that math is useful in the world. Why not give them a problem of algebra similar to problems people actually face — how much should a tech company expand its datacenter capacity given a projection of its growth; when will it cost more energy to drill for oil than the energy it returns; should a company with a given amount of capital build its own infrastructure at a fixed up-front cost or lease it at a monthly rate? The fact that the “real world” presented to students is one of travel times, house building, and saving and spending sends a strong message to them about what they can become. Algebra is used in engineering, science, and business, not purchases of milk and eggs at the grocery store. You will ignite a student’s passion for math when she understands that she can use it to become something, not that it is (pretending to be) an essential skill for a consumerist greyface. Conversely, if the student has no interest in engineering, science, or business, he is right to be disinterested in math class; let him do something useful with his time.

I felt disrespected that my teachers felt I was squandering my potential by failing to do the work that was assigned to me. I felt disrespected when I couldn’t use my creation to assist me with my homework. I felt disrespected when, despite getting high test scores, I was punished for not doing the work assigned “to help me learn”. No attention was paid to my developing programming skills or my talent for music — they never asked what I did with my time instead of doing homework. (I wonder what they thought?) This was all confusing to me at the time, and I rebelled from my heart, not my intellect; now that I have a more acute awareness of society, I am grateful that I rebelled. In retrospect the message shines through with clarity: school is not for me. I had assumed that I was there to learn the content and the teachers were all just blind or crazy — I know now that I was there to learn to follow orders, and my education is for the ones who give them. When teachers talk of my squandered future, they refer to a future of subservience to authority. (If I’m going to squander a future, please let it be that one!) The disrespect for my personal autonomy was pervasive enough that the idea that I could be an entrepreneur, an artist, or a leader were not even considered possibilities.

What boggles me is that I doubt my teachers saw it this way. They truly cared about me, I could tell. I feel that this is a cultural phenomenon of seeing children as less than human, as incapable of making good choices for themselves. (A basic rhetorical analysis The Powell Memorandum reveals that leaders of enterprise feel the same way about the working class.) I don’t know where this view comes from — except the teachers’ own internalized oppression as working class. Teachers are not paid well, which makes them feel bound and powerless, which is communicated to the students and sustains the system of subservience.

Today, just as in school, I struggle to follow orders, and this comes as no surprise to me. I was not successfully trained to do so. I struggle to continue exchanging my alienated labor for Google’s money, and I am realizing more and more that convincing myself to care about this labor is not a viable strategy. Sometimes I think badly of myself for this, but it is not a fault only to have energy for what I care about. I don’t know what I would have become if my gifts had been acknowledged and nurtured rather than ignored. It’s too late for that; now I must bring to others the respectful, humanizing education I was denied. The remaining question is how?

]]>https://lukepalmer.wordpress.com/2014/08/05/disrespect-in-education/feed/13luquiDiscoveries This Weekhttps://lukepalmer.wordpress.com/2014/07/23/discoveries-this-week/
https://lukepalmer.wordpress.com/2014/07/23/discoveries-this-week/#commentsWed, 23 Jul 2014 10:05:58 +0000http://lukepalmer.wordpress.com/?p=2675Continue reading Discoveries This Week→]]>This week’s reading was more scattered than last week’s, which was focused mainly on US surveillance and politics. Still lots of interesting stuff this week — it’s amazing what comes to light when I allow myself to care.

I thought a lot this week about worker’s rights and democratic companies. I realized that Google’s workforce has no real decision-making power for the company — we do what the leadership tells us to do. This realization came with the awareness that it doesn’t have to be this way. Google does not have a worker’s union, but if we did, we could democratically control the company — the power is already available, we need only claim it. But we have no need to claim it because the leadership is doing a good job. All systems which rely on labor of the many are eventually democratic, the question is only how much resistance the many need overcome to affect the decisions of the powerful (however, I might stop classifying them as “eventually democratic” at the point where power’s resistance is physically violent). Hence education plays an incredibly important role: the more this is known, the more powerful the people are. But Google makes me wonder, how powerful should the people be? I like Google’s leadership, and honestly if Googlers were encouraged to vote on important company decisions instead of having them decided by the leadership, it’s not clear that Google and/or the world would be better off. Google is made of geeks whose views of the world are often idealistic, opinionated, and out-of-touch. I wouldn’t trust me to make good decisions for a company, no matter how many of me there were.

Chomsky noted that the USA must oppose the democratization of Iran because the census showed that 80% of the population supports Iran building nuclear weapons. It is fairly convincing that more countries with access to nuclear weapons creates more chance of total nuclear annihilation due to local political instabilities. I believe in democracy, but now I must ask: do I support a US-controlled oppressive monarchy as an alternative to a democratic, nuclear-armed Iran? Do I support US hegemony as an alternative to a yet-more dangerously unstable world? Am I only doubting democratization of Iran because I live in the USA? I don’t know these answers.

With those happy thoughts, here are the pieces I found notable this week. As always, comments and suggestions for further reading are welcome and appreciated.

Gazan Youth’s Manifesto for Change (from 2011, but still a goodie). This gives a good look into how the Israel-Palestine conflict is affecting some of the people there. It’s easy to empathize with them as human beings rather than the through radical militant story we have created.

Declassified FBI reports on the Occupy Wall Street movement. Interesting to look through, if nothing else to understand how the FBI works. On pages 61 and 68 there is some talk of the possibility of assassinating leaders of the movement via sniper fire, though the redactions are such that I can’t tell by whom. The following passage indicates that well-planned protests can be remarkably effective.

The protestors’ actions shut down the port of Oakland for more than 14 hours. If this movement were to spread to the port of Long Beach, the second busiest port in the United States, the disruption of port operations resulting in cargo reaching their required destinations late could have much more serious effects on the supply chain network in the United States. (p. 46)

The State of Working America, a site that collects data and trends in US demographics. They published the book Failure by Design which analyzes the policies which led to the horrendous economic inequality we have today (I haven’t read it, but might).

The good news is that policy works, it does what it’s actually designed to do; the bad news is we designed it to do, in my view, a very bad thing.

The white guy who enters a world supposedly beneath him where he doesn’t belong yet nonetheless triumphs over the inhabitants is older than talkies. TV Tropes calls it “Mighty Whitey,” and examples range from Tom Cruise as Samurai and Daniel Day Lewis as Mohican to the slightly less far-fetched Julia Stiles as ghetto-fabulous. But whether it’s a 3-D Marine playing alien in Avatar or Bruce Wayne slumming in a Bhutanese prison, the story is still good for a few hundred million bucks. The story changes a bit from telling to telling, but the meaning is consistent: a white person is (and by extension, white people are) best at everything.

The Catholic schoolgirl & the wet nurse: an important paper to read for social justice-aware people sharing about racism. It describes the way our narratives of racism both simplify and dehumanize the victims and make the oppressors invisible. I felt +1 to Nuance after reading this.

]]>https://lukepalmer.wordpress.com/2014/07/23/discoveries-this-week/feed/8luquiMy Political Activationhttps://lukepalmer.wordpress.com/2014/07/12/my-political-activation/
https://lukepalmer.wordpress.com/2014/07/12/my-political-activation/#commentsSat, 12 Jul 2014 22:42:34 +0000http://lukepalmer.wordpress.com/?p=2660Continue reading My Political Activation→]]>Six weeks ago, Jimbo Wales tweeted a link to a fantastic article titled Privacy under attack: the NSA files revealed new threats to democracy. At the same time, I had been reading Paulo Freire’s Pedagogy of the Oppressed in order to become a better teacher. Freire’s book is about freedom and humanization, and is full of disquieting rhetoric calling people to take charge of their situations and their agency in transforming the world. These two pieces got together in my brain and started a campaign, the outcome of which was to politically activate me. I began listening to Noam Chomsky on YouTube at work and at home, following and furiously reading news and history, refining and deepening my view of the world, where it is going, and my place in it. It broke my heart. The importance of my comfort is fading away, the actions I take which are not in support of creating a better world are beginning to feel trivial and meaningless. It’s shattering to my illusive sense of safety — the truth is frightening. Yet I would never choose to unlearn what I have learned. The truth is unique that way.

I expect that I will continue learning a great deal about the state of the world. I have been sheltered and naive, making other things more important, and there is much to find out. So I decided to start this series (I hope it’s a series, I haven’t been good at keeping up with series’ I’ve started in the past) of summarizing what I have learned, as a way both to congeal through reflection, and a way to share with others who are similarly interested. I am absolutely open to further information readers have about what I post, ways my readings might be mistaken, or ways I am not seeing far enough. If you want to join this conversation, please do.

Without further ado, here are the pieces I found notable this week.

Pentagon preparing for mass civil breakdown. The Pentagon is funding research to the order of $100M to understand how social contagion and tipping points work, “geared toward producing quick results that are directly applicable to field operations.” In particular, they are focusing on civil unrest which may be caused by climate change. Particularly interesting is the rhetoric around who is considered violent.

Homeland Security Starts Citywide Cellphone Tracking Project in Seattle. Homeland Security and the Seattle Police Department have installed wifi devices on every street corner, not to provide free internet access to all citizens, but to be able to track the location of citizens by their cell phones. This infrastructure has been built without any limiting legislation or public oversight. This comes back to the increasingly common pattern of “trust us” security infrastructure.

The SPD declined to answer more than a dozen questions from The Stranger, including whether the network is operational, who has access to its data, what it might be used for, and whether the SPD has used it (or intends to use it) to geo-locate people’s devices via their MAC addresses or other identifiers.

The Powell Memorandum. Chomsky pointed me to this 1971 letter between leaders of enterprise, which is a call to action. The American economic system is under broad attack, it begins. Powell is concerned about people speaking out against problematic corporate establishments, and ostracizes the owners of the media for allowing this to happen on their own networks. He calls for a major collaborative campaign to train and implant pro-corporate academics and activists into public discussion, and to censor anti-establishment advocacy in the media.

Months of tracking communications across more than 50 alias accounts, the files show, led directly to the 2011 capture in Abbottabad of Muhammad Tahir Shahzad, a Pakistan-based bomb builder, and Umar Patek, a suspect in a 2002 terrorist bombing on the Indonesian island of Bali. At the request of CIA officials, The Post is withholding other examples that officials said would compromise ongoing operations.

Rich People Rule. This is about the Princeton study I read long ago and dug up again, showing that the preferences of average citizens are far underrepresented in the USA’s policy in favor of the preferences of the wealthy — essentially that people below the 90th percentile of wealth only have 1/15th of a vote when considering policy legislation.

Noam Chomsky, Surviving the 21st Century. This Chomsky lecture has a very interesting historical arc from 35:00 to 51:00 on the US Government’s blatant disregard for national security in favor of dominating the world.

]]>https://lukepalmer.wordpress.com/2014/07/12/my-political-activation/feed/2luquiMotivating Dualitieshttps://lukepalmer.wordpress.com/2014/06/10/the-motivating-duality/
https://lukepalmer.wordpress.com/2014/06/10/the-motivating-duality/#commentsTue, 10 Jun 2014 13:30:09 +0000http://lukepalmer.wordpress.com/?p=2640Continue reading Motivating Dualities→]]>The act of striving to become more, to learn more about living is a prominent part of many people’s lives; it certainly is for mine. However, I’ve observed a form of suffering which is associated with growth and striving, which I suspect is pervasive in progressive society. I will talk about the underlying beliefs that cause this suffering and the complex of dynamics that occur as they come forward for transcendence. I analyze these beliefs for the purpose of undermining them. However, I seek to undermine them not to cease striving, but to elicit understanding the cause and mechanism of striving-suffering, bringing it into clearer focus and illuminating the path to transcendence.

The core of the belief system I’m speaking about is the pair I’m not good enough : I need to be good enough. I name beliefs of this form motivating dualities. They begin when we set a standard for ourselves, here denoted “good enough”, and acknowledge that we do not meet that standard. This pair creates a vector — a drive to become more in the direction of our standard. Without both sides of the pair, these beliefs would not be motivating.

When the standard is concrete, this pair can integrate peacefully into a growing human being — it is equivalent to setting a goal and acknowledging where we are in relation to it, motivating us to close the gap. This pair will cause striving-suffering as we begin to identify ourselves with the abstract act of striving and/or achieving, separated from the goal to achieve. I’ve seen this both in cases where the person believes herself to be achieving highly and where he does not. When this identification occurs, the underlying belief system that created the vector is cemented into place — to transcend the motivating duality means letting go of striver as part of our identity; simultaneously, our identity as a striver is formed by these underlying beliefs, so we cannot let go of that in isolation either. We become trapped in a Nash equilibrium of beliefs and identity.

As we develop, we will eventually meet our previous standard, but because our identity and beliefs are trapped in this equilibrium, they mutate to adapt to their environment. The concrete standard that formed the initial vector is abstracted, and we begin to feel that we aren’t “up to standard” as a general principle. Goals that once had concrete action steps for growth become fuzzy, and we begin to grasp for Good Enough in the abstract. This grasping is the core of striving-suffering. We strive but never near our goal, because it is now too abstract to be measured.

I should be clear about the way I am bringing in some Buddhist philosophy, specifically that attachment is the cause of suffering. To interpret me well, it’s important not to read suffering as “bad” or “thing to be avoided”. It may be that all striving is attachment and thus suffering, but when we are nearing a goal, when we see the gap of a motivating duality closing, we feel pleasure and fun. Living while oscillating between suffering and pleasure/fun is an often pleasurable and fun life which includes suffering.

Striving-suffering is calling me for analysis because it undermines its own end. The striver-sufferer seeks to expand herself and her consciousness, however she is blocked from transcending this aspect of her beliefs and identity. Someone trapped in striving-suffering will often not be able to access universal consciousness — the deeply peaceful identification of self as the universe — because they are unable to take off the lens of “good enough” because it would mean the collapse of their identity. Striving-suffering is a common condition in progressive culture, and we see its effects: many highly talented and accomplished people, dedicated and hard-working, with narrow, inflexible consciousness.

So, while the motivating duality I’m not good enough : I need to be good enough drives us to grow, to continue growth of our consciousness we must eventually transcend it. One path to transcendence is to undermine both beliefs at once by breaking down the core concepts upon which these beliefs are built. Breaking core concepts to the point of existential crisis is a practice I engage in more often than most; it is often deeply overwhelming and confusing, and many don’t feel they have the freedom of lifestyle that would allow such frequent crises. A smoother path is to unlink the self-reinforcing complex so that each aspect is free to go without being pulled back into place by its companion. A striver-sufferer can do this by, for example, observing and reinforcing himself as someone who naturally seeks to grow, so that the motivating duality is no longer the sole support for that aspect of his identity. This frees the motivating duality to be transcended without invoking a crisis of identity.

A striver identity supported by natural seeking is more flexible than that supported by the motivating duality — it requires a less hefty lens, and the lens can be removed without threatening our identity. It moves our motivation from extrinsic — motivated as a means to an (impossible) end — to intrinsic, which can be trusted while beliefs and ways of perceiving shift, freeing the consciousness to expand in new domains.

]]>https://lukepalmer.wordpress.com/2014/06/10/the-motivating-duality/feed/1luquiDear Feminist Men,https://lukepalmer.wordpress.com/2014/05/31/dear-feminist-men/
https://lukepalmer.wordpress.com/2014/05/31/dear-feminist-men/#commentsSat, 31 May 2014 06:19:50 +0000http://lukepalmer.wordpress.com/?p=2607Continue reading Dear Feminist Men,→]]>I write today to warn you of a trap. A trap that I have fallen into, one that I will probably fall into again, so I need to keep a watchful eye.

I call myself a feminist. I believe in ending sexism.

The primary way I have “supported” feminism in the past has been to share knowing looks with others around me who I respect, who I feel understand feminism. I have made jokes which are intended to show that I understand privilege, power, and inequality. I have shown women that I understand by conversing with them about glass floors and ceilings, pick-up artists, chivalry, and unsafety at night.

But you know who doesn’t need to hear about feminism? Feminists.

My main motivation for discussing feminism has been to prove myself, to show that I am in the know, that I understand and support feminism. But I haven’t been supporting feminism, because I haven’t talked to any non-feminists about it! My jokes are disguised (not intentionally, but this is how it turns out on reflection) to reveal that I know to those who know, and be simply perplexing who don’t. I’m not being an ally, I’m being a suck-up.

The truth is, even though I still have much to learn, even though I’ve been a phony, I do know more about feminism than most men. Any man who has the guts to call himself a feminist does, even if he is a little bit of a phony.

I am taking the next step by believing in myself. I don’t need to prove to anyone else that I’m a feminist for their approval. I need to speak up to those who don’t understand. I need to explain feminism and show that I care, not that I know, to people who don’t. I need to stand up for women especially when women aren’t around. Feminism isn’t a pick-up line.

Avoid the trap! Be loud and clear with me! When we are least likely to be approved of, say I am a feminist!

Like many other packages on Hackage, LogicGrowsOnTrees provides an implementation of logic programming using MonadPlus; in this sense it is nothing new. What sets it apart is that it has been designed from the beginning to work in a distributed environment, allowing it to be parallelized over large numbers of processors with no shared memory. The benchmarks I have run (using the N-Queens problem with 17-19 queens) showed essentially perfect speed-up all the way up to 256 cores, and the only reason why this number is not larger is because I haven’t had the opportunity to run tests on a larger cluster.

If the benchmarks are fair, I think this is a big deal.

I have a couple of projects on the backburner which use combinatorial search. This is awesome.

]]>https://lukepalmer.wordpress.com/2014/03/17/logicgrowsontrees/feed/0luquiPlayground Programminghttps://lukepalmer.wordpress.com/2014/03/11/playground-programming/
https://lukepalmer.wordpress.com/2014/03/11/playground-programming/#commentsTue, 11 Mar 2014 00:32:43 +0000http://lukepalmer.wordpress.com/?p=2506Continue reading Playground Programming→]]>Every now and then, I have a small idea about a development environment feature I’d like to see. At that point, I usually say to myself, “make a prototype to see if I like it and/or show the world by example”, and start putting pressure on myself to make it. But of course, there are so many ideas and so little time, and at the end of the day, instead of producing a prototype, I manage just to produce some guilt.

This time, I’m just going to share my idea without any self-obligation to make it.

I’m working on Chrome’s build system at Google. We are switching the build scripts to a new system which uses an ingenious testing system that I’ve never seen before (though it seems like the kind of thing that would be well-known). For each build script, we have a few test inputs to run it on. The tests run all of our scripts on all of their test inputs, but rather than running the commands, they simply record the commands that would have been run into “test expectation” files, which we then check into source control.

Checking in these auto-generated files is the ingenious part. Now, when we want to change or refactor anything about the system, we simply make the change, regenerate the expectations, and do a git diff. This will tell us what the effects of our change are. If it’s supposed to be a refactor, then there should be no expectation diffs. If it’s supposed to change something, we can look through the diffs and make sure that it changed exactly what it was supposed to. These expectation files are a form of specification, except they live at the opposite end of the development chain.

This fits in nicely with a Haskell development flow that I often use. The way it usually goes: I write a function, get it to compile cleanly, then I go to ghci and try it on a few conspicuous inputs. Does it work with an empty list? What about an infinite list (and I trim the output if the output is also infinite to sanity check). I give it enough examples that I have a pretty high confidence that it’s correct. Then I move on, assuming it’s correct, and do the same with the next function.

I really enjoy this way of working. It’s “hands on”.

What if my environment recorded my playground session, so that whenever I changed a function, I could see its impact? It would mark the specific cases that changed, so that I could make sure I’m not regressing. It’s almost the same as unit tests, but with a friendlier workflow and less overhead (reading rather than writing). Maybe a little less intentional and therefore a little more error-prone, but it would be less error-prone than the regression testing strategy I currently use for my small projects (read: none).

It’s bothersome to me that this is hard to make. It seems like such a simple idea. Maybe it is easy and I’m just missing something.

]]>https://lukepalmer.wordpress.com/2014/03/11/playground-programming/feed/6luquiAlgebraic and Analytic Programminghttps://lukepalmer.wordpress.com/2014/03/04/algebraic-and-analytic-programming/
https://lukepalmer.wordpress.com/2014/03/04/algebraic-and-analytic-programming/#commentsTue, 04 Mar 2014 22:52:39 +0000http://lukepalmer.wordpress.com/?p=2460Continue reading Algebraic and Analytic Programming→]]>The professor began my undergrad number theory class by drawing a distinction between algebra and analysis, two major themes in mathematics. This distinction has been discussed elsewhere, and seems to be rather slippery (to mathematicians at least, because it evades precise definition). My professor seemed to approach it from a synesthetic perspective — it’s about the feel of it. Algebra is rigid, geometric (think polyhedra) , perfect. The results are beautiful, compact, and eternal. By contrast, analysis is messy and malleable. Theorems have lots of assumptions which aren’t always satisfied, but analysts use them anyway and hope (and check later) that the assumptions really do hold up. Perelman’s famous proof of Poincare’s conjecture, as I understand, is essentially an example of going back and checking analytic assumptions. Analysis often makes precise and works with the notion of “good enough” — two things don’t have to be equal, they only need to converge toward each other with a sufficiently small error term.

I have been thinking about this distinction in the realm of programming. As a Haskell programmer, most of my focus is in an algebraic-feeling programming. I like to perfect my modules, making them beautiful and eternal, built up from definitions that are compact and each obviously correct. I take care with my modules when I first write them, and then rarely touch them again (except to update them with dependency patches that the community helpfully provides). This is in harmony with the current practice of denotative programming, which strives to give mathematical meaning to programs and thus make them easy to reason about. This meaning has, so far, always been of an algebraic nature.

What a jolt I felt when I began work at Google. The programming that happens here feels quite different — much more like the analytic feeling (I presume — I mostly studied algebraic areas of math in school, so I have less experience). Here the codebase and its dependencies are constantly in motion, gaining requirements, changing direction. “Good enough” is good enough; we don’t need beautiful, eternal results. It’s messy, it’s malleable. We use automated tests to keep things within appropriate error bounds — proofs and obviously-correct code would be intractable. We don’t need perfect abstraction boundaries — we can go dig into a dependency and change its assumptions to fit our needs.

Much of the ideological disagreement within the Haskell community and between nearby communities happens across this line. Unit tests are not good enough for algebraists; proofs are crazy to an analyst. QuickCheck strikes a nice balance; it’s fuzzy unit tests for the algebraist. It gives compact, simple, meaningful specifications for the fuzzy business of testing. I wonder, can we find a dual middle-ground? I have never seen an analytic proof of software correctness. Can we say with mathematical certainty that our software is good enough, and what would such a proof look like?

]]>https://lukepalmer.wordpress.com/2014/03/04/algebraic-and-analytic-programming/feed/5luquihttps://lukepalmer.wordpress.com/2014/02/17/2457/
https://lukepalmer.wordpress.com/2014/02/17/2457/#commentsMon, 17 Feb 2014 11:01:07 +0000http://lukepalmer.wordpress.com/?p=2457Continue reading →]]>Great people often seriously experienced their mortality or frailty in some way. John Coltrane had four family members die in three months; Stephen Hawking contracted that motor thing he has; countless great musicians have lost a sense. I can see how experiencing something unexpected and tragic would kick you in the pants to go all in on what you love, and do it now! These people understand their power and their freedom through their commitment. Isn’t it ironic or profound that we can’t or absolutely would not choose to have such an experience, even in exchange for greatness? In order to do what you love with the passion of greatness, would you choose to have most of your family die? Could you give up sight, hearing, or movement? Even if you did, would you not be filled with guilt or regret rather than experiencing the preciousness of life? In this sense, nature blesses and curses at the same time, seemingly at random; we cannot invoke it or avoid it. ]]>https://lukepalmer.wordpress.com/2014/02/17/2457/feed/0luquiPolyamory and Respecthttps://lukepalmer.wordpress.com/2013/05/10/polyamory-and-respect/
https://lukepalmer.wordpress.com/2013/05/10/polyamory-and-respect/#commentsFri, 10 May 2013 18:07:07 +0000http://lukepalmer.wordpress.com/?p=2163Continue reading Polyamory and Respect→]]>I have been in an open, polyamorous relationship with my partner Amanda for about a year and a half. The relationship began as open for somewhat coincidental reasons, but over its course, I have developed a respect for polyamory — an understanding of why it makes sense for me, and why, I suspect, I might want my future relationships to be open as well1. And it is not for the reasons that most people think.

For the first time in the course of the relationship, I’m currently being intimate with someone else. However, I was supportive of polyamory before I had taken advantage of its freedoms, even though Amanda was seeing other people reasonably often. The question is: why? Why would I put myself in such a position? Why would I allow Amanda to sleep with other people while she is with me?

The key lies in a word of that final question — “allow”. To me, a healthy relationship is founded on mutual respect. There are many relationships which are not, but I find the most fulfillment from a relationship which is a coming together of two whole people with respect for each other. Anything else, to me, is just a fling (maybe a long-term one). So, under the supposition that I respect my partner, what does it mean to “allow” something? More pointedly, what does it mean to “disallow” something?

Both allowing and disallowing suppose that I have the power to make decisions for her. It supposes that I am informed enough, without even being present, to make the judgment call about whether her actions were right. In a traditional monogamous setting, I have a wholly un-nuanced view of the situation — if she has slept with someone else, she has made the wrong choice, and I, therefore, have been wronged, and I (with the assistance of social norms) am the one who has decided that.

Let’s imagine a polyamorous situation to help get to the heart of this. Let’s say that she met a new partner, and asked me if it’s okay if she sleeps with them. I will not respond with yes or no. She has offered me the power (and responsibility) to decide the best course of action for her, and I feel it necessary not to accept it. In accordance with my values, I can’t accept that power for anyone but myself: it would be a disservice to us both.

However, I don’t mean to say that there are never any emotions that come with it, or that if there are I have an obligation to bury them. Indeed, I often get jealous and feel hurt when she is with someone else. But as a partner, I want to understand. Why did what she did make sense to her? How did she perceive that would affect me? — knowing that I am considered in her decision-making process is important to me. I will communicate how it actually affected me. Perhaps I spent the night alone feeling shitty — it’s important for her to know that, to take that possibility into account next time she makes a decision, and it’s important for me to understand that I am still alive and that we still love each other. But the key is that, because of respect, I give her the benefit of the doubt that she made the best choice she had — I just want to understand her reasoning, and probably be reassured that she still cares — which she always has.

There are certain “codes” that I see as being very powerful, as leading to a stronger and more aligned internal experience. One of these is honesty — I am committed to always being open & honest (in a more nuanced way than I have been in the past). This is not because honesty in itself is “right”, but because integrity (i.e. always doing what I feel is right) is a quality that is important to me, and I have found that honesty is a code that is easy to verify (i.e. it is easy for me to know if I am abiding by it), which leads to integrity. This is because if I do something which I feel is wrong, I learn that, because of my code of open honesty, I will need to tell someone that I felt what I did was wrong. And that pressure is huge — I can no longer keep it to myself, now I need to show others about my lack of integrity when it happens. This pressure very quickly causes me to start acting with integrity.

In the same way, I see polyamory as a code which is easy to verify, which leads to respect as a consequence, and respect for my partner is something I value. Jealousy happens — when she talks to someone I can tell she thinks is attractive, when she stays out later than I expected her, when she tells me she has or had a crush on someone. But I know that we are in an open relationship — we have agreed that being attracted to others, even to the point of acting on it, is okay, and therefore my feeling of jealousy cannot be instantly transformed into a feeling of righteousness and being wronged. Hence, I have to consider the larger situation — I have to see where she is coming from, I have to understand her and her choices, I have to know her better. And in doing so I understand her values, her wishes, her way of being, her way of relating to others — and such a deep understanding leads me to respect her. I have not felt such a deep respect for anyone else I have ever been in a relationship with, and I think the openness of our relationship has been a major factor in that.

Further, polyamory leads to more communication and strength in our relationship. Consider “cheating” in a monogamous relationship. Let’s say I am in a monogamous relationship with my partner and, in a flush of sexually-excited irrationality I slept with someone else. I still love my partner very much and want to be with her, and we have a good, mutually supportive relationship, but I just made a mistake. (The idea that I could sleep with someone else while still being in love with her may seem impossible to some; that idea is worth examining — consider these prompts: masturbation, past relationships, fantasizing.) The question is, do I share my mistake with her? If I do share, it’s very likely that the relationship will end by social contract — many consider cheating to be an unforgivable offense. I don’t want the relationship to end, because I still love her and want to be with her. If I don’t share, I turn one wrong into two, and eventually many — not only have I wronged her with my actions, I wrong her by lying once about it — and, as lies are, probably many more times to cover up the first one. So not sharing is incompatible with my respect for her, and sharing is incompatible with my love and desire to be with her.

Would it not be easier for everyone if I felt free to share my mistake, if I were not in this terrible bind after making it? With the roles reversed, what would it say about how much I care if I were willing to put my partner in such a bind? Letting go of the moral attachment to fidelity allows this situation easily to be a conversation — she can tell me how it affected her, I can understand that and that may inform my desire not to be so reckless again. Perhaps the conversation will reveal something about our relationship dynamic that needs attention, or perhaps something that is secretly making us both unhappy (one of the possible causes of sleeping with someone else). In that sense we can make a plan to repair it, or possibly we will mutually agree it is in both of our best interests to end the relationship, allowing us to be friends afterward, feeling sadness for our loss but not hurt and anger, because we both know that it was the right decision. In the case that the relationship does not end, the conversation may have revealed a deep problem which we are now on the road to solving, strengthening the relationship and bringing us closer. And maybe it was no big deal, and we understand that as sexual beings sometimes we just need to feel attractive and get our rocks off, and the relationship has not been harmed. All of these are preferable to an abrupt end due to an objective wrong, in which one person feels deeply guilty and the other feels deeply wounded.

There are things which I will only briefly mention: for example, it is freeing to know that a friendship/relationship with someone other than my partner can develop in whatever way seems natural, without worrying if every action has crossed the line. This freedom allows me to get closer to others in my life, even if their gender allows some sexual tension, which brings me more fulfillment and happiness. In my experience, even though I like this other woman a lot, it has not in the least diminished the love I feel for Amanda, and experiencing that helps me see that it is probably the same for her when she is with someone else. In fact, since she has asked me for more reassurance now, I am verbalizing why I love her more, thus reminding myself and strengthening my sense of love for her. Where does the idea that love is a finite resource come from?

These are the reasons why polyamory makes sense to me as a way of conducting myself in relationship. It leads to more honest communication (and therefore more integrity), more mutual understanding and respect, and ultimately a stronger relationship. I see traditional monogamy as a way to defend yourself from scary thoughts of abandonment, but the cost is a dynamic in which it is possible to justify a sense of ownership over your partner, controlling them and taking away their free agency. Is that really worth it?

1One reason is that I get to have future relationships without first ending this wonderful one.