Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Browse files

Add transparent web talk

  • Loading branch information...
commit a64a217c01aca690877afe031e5bb1a8dab62951 1 parent b599b22
@twopoint718 authored
Showing with 250 additions and 16 deletions.
  1. +250 −16 posts.yaml
266 posts.yaml
@@ -1,3 +1,237 @@
+- date: 2012-08-22
+ title: my "transparent web" talk
+ postbody: |
+ <iframe src="" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="" title="The Transparent Web: Bridging the Chasm in Web Development" target="_blank">The Transparent Web: Bridging the Chasm in Web Development</a> </strong> from <strong><a href="" target="_blank">twopoint718</a></strong> </div>
+ Without much ado at all, here's my talk. I'm covering the *real*
+ basics of using both [Ur/Web](
+ and [Opa]( I create a basic "Hello world"
+ page in each and then I go on to write a little "comments"
+ system.
+- date: 2012-05-05
+ title: my gpl talk
+ postbody: |
+ <div style="width:425px" id="__ss_12802829"> <strong style="display:block;margin:12px 0 4px"><a href="" title="Once Upon A Time At the MIT AI Lab" target="_blank">Once Upon A Time At the MIT AI Lab</a></strong> <iframe src="" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> <div style="padding:5px 0 12px"> View more <a href="" target="_blank">presentations</a> from <a href="" target="_blank">twopoint718</a></div></div>
+ *note to the reader, my speaker notes are reproduced below and all run
+ together. Also, the editing isn't top-notch.*
+ **notes**
+ First a warning, if you thought I was going to talk about software
+ licenses, I’m not. Not really. I’m going to talk mostly about
+ people. Ideas are one thing, they are the compiled results of
+ processes that people go through. I want to decompile some ideas. I
+ want to talk about that.
+ To that end, let me tell you a story. Let’s go back to 1980, Richard
+ Stallman is employed as a staff hacker at the MIT AI lab. This is the
+ stuff of legend.
+ The lab had recently been given a new prototype printer from XEROX
+ PARC. This was ten times faster than the previous printer, finishing a
+ 20 minute job in 2 minutes and with more precise shapes to boot. This
+ was the same sort of tech that a decade hence would touch off the
+ desktop publishing revolution. But back at the AI lab, the printer was
+ becoming the source of more headache than anything else. Stallman and
+ others would send jobs to the printer only to show up later to find
+ that the job had jammed four pages in. This was a minor annoyance, but
+ it was multiplied by everyone at the lab. Stallman thought, “why
+ should I have to babysit this machine when I can code?”
+ Stallman knew a way to attack this sort of problem. On a previous
+ printer he had modified the source to insert some monitoring code in
+ the printer driver. Periodically, Stallman’s code would check to see
+ that the printer was proceeding in its assigned job, if it had
+ stalled, the program would alert whoever’s print job was
+ affected. You’d get a message like: “The printer is jammed. Please fix
+ it.” It wasn’t perfect, but it informed those most interested in the
+ problem.
+ The solution this time around would be similar. Stallman could grab
+ his old code, tweak it for the new printer and voilá: jam
+ notifications. So Stallman rolled up his sleeves, grabbed a coffee,
+ and opened up the Xerox source code.
+ If you see where I’m going here, you’ll probably see what’s coming
+ next. There was no source code. Stallman even spoke with the
+ programmer that had worked on it and that programmer wasn’t allowed
+ reveal the code to Stallman.
+ This is the moment where something happens. This is where an insight
+ strikes, the apple falls on your head, the disparate pieces line up
+ and you need to jump out of the tub and tell the world. Stallman
+ decided, at that moment, that some fundamental wrong had been done:
+ the wrong of not being allowed to help your neighbor by telling him
+ how code works., This brings me to the main point of this talk. This
+ is the thing that, even if everything else you hear is mangled or
+ forgotten, I want to come through unchanged: RMS believes that
+ software has moral implications, the choice of what kind of SOFTWARE
+ you want is a choice about what kind of WORLD you want.
+ Note all the things that I didn’t say. It isn’t about what is
+ technically superior. It isn’t about what is good for being able to
+ sell. It isn’t about what the legal department says. It has no bearing
+ on what various companies will tell you to be worried about. It isn’t
+ about being good for playing games, or having flash support. It is
+ nothing more and nothing less than a philosophical stance. You can
+ agree with it, or disagree with it in exactly the same way as you
+ would argue about Plato’s Forms.
+ I feel like this is the key misunderstanding in discussions
+ surrounding the GPL and Free software. I’m taking a philosophical, an
+ ethical, and maybe a moral stance. I haven’t brought anything else
+ into it. Often, when I see discussions about software licenses, I feel
+ like people are talking past one another from the very first sentence.
+ It is profoundly nonsensical to compare something like “justice” to
+ something like a wrench., Philosophers begin by defining words,
+ because if they don’t, we’ll get so mired in the muck of argument that
+ no points are made, no progress is made.
+ The word “free” is a good place to start. Free can be taken to mean
+ “no cost” but it can also be taken to mean “freedom”. This is sort of
+ a fine point to make, but I think it could lead to lots of confusion.
+ Free software has to do with the “freedom” part. There are lots of
+ really good objections at this point. The one that I have anticipated
+ is “freedom for whom?” And that’s the core of the so-called permissive
+ divide in the broader category of “open” software. The permissive
+ people would respond to the “freedom for whom” question with something
+ like “certainly not for me, you say I *must* share changes, that’s
+ pretty restrictive.” And the answer to “freedom for whom?” that I want
+ to present here is...
+ Well, that’s the rest of my talk., The GPL is a really a more general
+ case of the Emacs license.
+ Now Emacs has a pretty storied history, wikipedia dates it back to the
+ mid seventies, well before GNU or Emacs-as-GNU-project. But by the
+ time of the release of Emacs 15, there was a sort of proto-GPL license
+ attached. It served to give “users the right to make and distribute
+ copies” and “the right to make modified versions, but not the right to
+ claim sole ownership of those modified versions”. It was moving in a
+ similar direction, but it was not as legalistically formal as the
+ eventual GNU project would need it to be.
+ Stallman’s intellectual property attorney at the time viewed the GNU
+ Emacs License pretty much as a simple contract, although one that
+ stipulated a rather odd price. Rather than money, the license cost
+ access to any changes. Users would have to share modified versions of
+ the software. The attorney remarked: "I think asking other people to
+ accept the price was, if not unique, highly unusual at that time"
+ In 1989 a 1.0 version of the GPL had emerged. The preamble read:
+ > The General Public License is designed to make sure that you have the
+ > freedom to give away or sell copies of free software, that you receive
+ > source code or can get it if you want it, that you can change the
+ > software or use pieces of it in new free programs; and that you know
+ > you can do these things.
+ >
+ > To protect your rights, we need to make restrictions that forbid
+ > anyone to deny you these rights or to ask you to surrender the
+ > rights. These restrictions translate to certain responsibilities for
+ > you if you distribute copies of the software, or if you modify it.
+ one notable change was that users were no longer required to share
+ changes. You could make private in-house tweaks to the software
+ without being forced to share these changes back to the community. ,
+ License agreements are not usually characterized by what they *give*
+ you, rather, as we scan ever longer End User License Agreements, or
+ plow through revision 271 of Facebook’s new much-better-we-assure-you
+ privacy policy, we are looking for things that they are taking from
+ us.
+ The GPL, in essence, tries to codify a very idealistic hacker
+ ethic. It is for tinkering, changing, breaking, reassembling, and
+ passing it on to your friend. It is software as mix-tape.
+ The main things that the GPL gives you are broken down into four
+ parts, aka the “four freedoms”, Zero: You’re allowed to do what you
+ want with the software. An author can’t proscribe the software’s use
+ for something that they don’t approve of. This is pretty profound, I
+ think.
+ one: if you are going to be able to do this, you’ll need the source
+ code. You’ll also need whatever is required to actually end up with a
+ working program. This can be a point of contention. A corner case of
+ this is in embedded systems such as set-top boxes where the code may
+ be GPL, busybox is a common example, but you can’t actually change the
+ code due to things like code signing., two: I think it is interesting
+ that two emphasizes the goal of the redistribution. It isn’t just for
+ fun or for copying’s sake, it is because we view software as something
+ that can help people.
+ freedom three, the final freedom. You’ll also need access to the
+ source code to realize this one. You are allowed to make public
+ changes to the code. The difference with freedom one is that you’re
+ allowed to do this out in the open, rather than just in private and
+ for your own reasons. You can fork. You can contribute back.
+ lurking in freedom three is also the core of my argument, which I
+ promise I’m getting to really soon., I’m going to try and dispel a
+ common myth about the GPL, one I’ve heard a lot. The general gist is
+ that “the GPL is to copyright as anarchy is to government.” Something
+ that is opposed to the very notion of it. This is where people get the
+ idea that any business built on such shifting sand of self-destruction
+ must be flawed in some way.
+ Opposition to copyright is an interesting subject, there’s lots of
+ good debate. But it doesn’t really have anything to do with the
+ GPL. The GPL has staked its efficacy IN copyright.
+ Far from being some sort of anti-copyright construct, the GPL’s
+ EXISTENCE depends on copyright, if you didn’t have copyright, you
+ couldn’t have the GPL (or lots of other stuff). You wouldn’t get any
+ say in what people do with your stuff... but that’s another discussion
+ entirely!
+ So for the rest of the talk, consider copyright to be a constant
+ underpinning, a foundational necessity for everything else we’re
+ talking about. It’s just that we’re going to use it for something that
+ it wasn’t intended: we’re hacking it., BAM: flip it
+ copyleft: pay it forward.
+ As Stallman said: “see [the GPL] as a form of intellectual jujitsu,
+ using the legal system that software hoarders have set up against
+ them”, he actually lifted this from a similar sticker from a sci-fi
+ convention which read: "Copyleft (L), All Rights Reversed.”, And this
+ brings me around to what my thinking on the GPL is. I guess I’m kinda
+ surprised by all the emphasis on virulence these days. The metaphor is
+ broken. Metaphors are broken--but that’s another talk.
+ Casting aside any metaphors, the GPL is an *inductive license*. This is a
+ term that I made up but I think it describes the nature of the GPL much
+ better than saying that it is viral.
+ An initial case is established. You have the four freedoms: the
+ freedom to run, freedom to change, freedom to redistribute, and the
+ freedom to share those changes.
+ But for it to really be Free software, the person *receiving* the
+ software must have these freedoms. So it is not good enough for us to
+ leave it here. We only have the base case for a software license. We
+ have to prove the general case, not me or you, but person N+1., So the
+ person who’s freedom we’re talking about is person N+1, the inductive
+ person.
+ This idea is the essential difference between being permissive
+ software and being free software. Free software describes the case of
+ that person N+1, inductively. It raises the “freedom for whom?”
+ question and answers it with “the inductive person”.
+ So I’ll leave where, approximately, I started with a definition:
+ The word “induction” is the practice of deriving general laws from
+ specific cases, it arises from a root word meaning “leading to” or
+ “hypothetical”. Free software asks us to consider this hypothetical
+ person on the assumption that it could someday be anyone, indeed
+ everyone.
- date: 2011-12-27
title: secret santa
postbody: |
@@ -244,7 +478,7 @@
working with difficult problems, we must be rigorous in working
toward simplicity.
Rich had a few words for TDD in his talk, and I think these
were widely misinterpreted. His point was simply that tests
have a cost and a thoughtless devotion to them will risk
@@ -255,7 +489,7 @@
just bounces between the guardrails rather than proceeds to a
destination by steering.
This talk drew a standing ovation from the crowd, including, I
hear, Gerald Sussman. I'll be looking for it on video when it
comes out.
@@ -269,7 +503,7 @@
hang out in (I wish we had the same open-container law in
Madison!). I can't wait for next year.
- date: 2011-08-16
title: Madison Ruby Conference
postbody: >
@@ -325,7 +559,7 @@
Groups can do something fun when they think they've collectively
hit the [Ballmer Peak]( Of course, it's
probably then a good time to wrap up the crawl!
- date: 2011-05-27
title: First Post
postbody: >
@@ -451,36 +685,36 @@
if not c in target_list:
return False
return True
def first_set(input_word):
return all_from("abcdefghABCDEFGH", input_word)
def second_set(input_word):
return all_from("ijklmnopqIJKLMNOPQ", input_word)
def third_set(input_word):
return all_from("rstuvwxyzRSTUVWXYZ", input_word)
def fourth_set(input_word):
return all_from(".,;'\"?!-", input_word)
def search_words(words, key_set=first_set):
out = []
for word in words:
if key_set(word) and len(word) > 1:
return out
if __name__ == "__main__":
get_words = 10
fname = "/usr/share/dict/words"
wordlist = open(fname, "r").read().split("\n")
first = search_words(wordlist, first_set)
second = search_words(wordlist, second_set)
third = search_words(wordlist, third_set)
#fourth = search_words(wordlist, fourth_set) # need wordlist w/ punct.
print "open: ", " ".join(random.sample(first, get_words))
print "1st: ", " ".join(random.sample(second, get_words))
print "2nd: ", " ".join(random.sample(third, get_words))
@@ -506,25 +740,25 @@
;; Stefan Monnier <foo at>. It is the opposite of fill-paragraph
;; Takes a multi-line paragraph and makes it into a single line of text.
(defun unfill-paragraph ()
(let ((fill-column (point-max)))
(fill-paragraph nil)))
(global-set-key (kbd "C-c M-q") 'unfill-paragraph)
- date: 2010-11-16
title: Maine
postbody: >
- <div class="gallery"><a href="img/DSC-6981-SMALL.jpg"><img
+ <div class="gallery"><a href="img/DSC-6981-SMALL.jpg"><img
alt="Maine Seashore"
- date: 2010-11-13
title: Remembrance of Blogs Past
postbody: >
- <div class="img"><img src="img/hypnotoad_clockscope.jpg"
+ <div class="img"><img src="img/hypnotoad_clockscope.jpg"
Yikes, it always seems to come to this. I find myself with a blank
directory or database (it depends on the blog) that needs to be
Please sign in to comment.
Something went wrong with that request. Please try again.