Commits

shl...@cec68495-dca5-4e2b-845c-11fdaaa4f967  committed a90b9ff

r5899@telaviv1: shlomi | 2008-07-22 09:46:06 +0300
Converted the Sussman interview to XML-Grammar-Screenplay.

  • Participants
  • Parent commits bdc958d

Comments (0)

Files changed (4)

 	Humanity-Movie \
 	ae-interview \
 	star-trek--we-the-living-dead \
+	sussman-interview \
 	TOW_Fountainhead_1  \
 	TOW_Fountainhead_2
 
 
 SCREENPLAY_TARGETS = $(patsubst %,$(DOCBOOK_RENDERED_DIR)/%.html,$(SCREEPLAY_DOCS))
 
-SCREENPLAY_SOURCES_ON_DEST = $(T2_DEST)/humour/TOWTF/TOW_Fountainhead_1.txt $(T2_DEST)/humour/TOWTF/TOW_Fountainhead_2.txt $(T2_DEST)/humour/humanity/Humanity-Movie.txt $(T2_DEST)/humour/Star-Trek/We-the-Living-Dead/star-trek--we-the-living-dead.txt $(T2_DEST)/open-source/interviews/ae-interview.txt
+SCREENPLAY_SOURCES_ON_DEST = $(T2_DEST)/humour/TOWTF/TOW_Fountainhead_1.txt $(T2_DEST)/humour/TOWTF/TOW_Fountainhead_2.txt $(T2_DEST)/humour/humanity/Humanity-Movie.txt $(T2_DEST)/humour/Star-Trek/We-the-Living-Dead/star-trek--we-the-living-dead.txt $(T2_DEST)/open-source/interviews/ae-interview.txt $(T2_DEST)/open-source/interviews/sussman-interview.txt
 
 docbook_extended: $(DOCBOOK_FOS) $(DOCBOOK_PDFS) install_docbook_pdfs install_docbook_rtfs 
 
 $(T2_DEST)/open-source/interviews/ae-interview.txt: $(SCREENPLAY_XML_TXT_DIR)/ae-interview.txt
 	cp -f $< $@
 
+$(T2_DEST)/open-source/interviews/sussman-interview.txt: $(SCREENPLAY_XML_TXT_DIR)/sussman-interview.txt
+	cp -f $< $@
+
 %.show:
 	@echo "$* = $($*)"
 

File lib/screenplay-xml/txt/sussman-interview.txt

+<s id="ben-collins-sussman-interview" title="Interview with Ben Collins-Sussman">
+
+[This is an interview of Ben Collins-Sussman conducted by Shlomi Fish. It was
+conducted over the IRC at 23 February, 2004, and then over E-mail at
+2 August, 2004. Final editions were done by both parties.]
+
+S.F.: Shall we start with the interview?
+
+Ben C-S: Sure.
+
+S.F.: Tell us a bit about yourself.
+
+Ben C-S: Like what? I'm six feet tall, black hair, brown eyes. :-)
+
+S.F.: Who you are? What did you do? Where have you studied and what?
+And that's 1.80 meters tall.
+
+Ben C-S: Ah, ok. Um, let's see.
+
++++: I'm 31 years old, and have lived in Chicago all my life. I have a B.Sc. in
+Mathematics from the University of Chicago, and have been working in computers
+for about 10 years.
+
++++: By day, I work on Subversion... Collabnet hired me to help design and
+implement it in 2000. By night, I work as a composer. My collaborator and I
+write musicals and scores for theater around the country.
+<a href="http://pluess-sussman.com">http://pluess-sussman.com</a>
+
+S.F.: Have you been a computer enthusiast during your teens?
+
+Ben C-S: I did BASIC programming as a kid, between the ages of 9 and 12, then lost interest in computers completely.
+
++++: At the age of 17, getting ready for college, I started getting into fractals
+I was generating Julia Sets on my apple IIe, and it would take 10 hours for
+each.
+
+S.F.: &lt;giggle /&gt;
+
+Ben C-S: My calculus teacher in high school said, "hey, lemme introduce you to this
+guy, he can help you." And that's how I met my friend Matt Braithwaite. He
+had a 286 and Turbo C. I learned C by watching him implement Mandelbrot sets.
+
+S.F.: Cool.
+
+Ben C-S: Then I went off to college, and continued to write little toy programs in C for fun. My summers in college, I worked for the US Dept of Energy as an assistant
+to a professor who was simultating global climate changes on massively
+parallel supercomputers. That's how I learned Unix.
+
++++: I remember in the summer of 1991, Karl Fogel and I were temporary roommates.
+(Karl and I have been friends since I was 13)
+
++++: We both decided to install linux 0.95c on our 386 computers. :-) It barely
+worked. X windows blew out his monitor.
+
++++: Anyway, after college, I spent many years as a unix sysadmin. But I finally
+decided that coding was more fun. I also got married. :-)
+
++++: What else would you like to know?
+
+S.F.: OK, that's fine for now. Now let's move to some other questions.
+
++++: You maintain <a href="http://www.red-bean.com/sussman/">a homepage</a> with
+various odds and ends. How much time did you spend maintaining it? How do you
+maintain it?
+
+Ben C-S: I update the homepage about once a year, heh. My webpage is actually an svn
+working copy. My repository has a post-commit hook that updates the live
+working copy. It exists mainly for my relatives, not my friends.
+
+S.F.: OK.
+
++++: Linus Torvalds once said that 95% of programmers consider themselves in the
+top 5%. Do you consider yourself a good programmer? Do you think your
+programming skills have improved in time?
+
+Ben C-S: Ha. My programming skills aren't very great, no. Honestly.
+
++++: My strengths lie in organizing things. Whenever there's a hugely complicated
+topic that needs to be sorted out, everyone in the Collabnet Chicago office
+asks me to do it. For example, "go learn WebDAV/DeltaV" or "figure out what'
+s happening in that complex email thread; summarize all the positions"
+My talent is in being able to present high-level overviews of complex topics.
+
++++: And I guess I'm also sort of the unofficial publicity/marketing guy on the svn
+lists. I seem to be worried about svn's image more than I should be. :-)
+
++++: Really, when I code, it's not  code, but it's not particularly
+clever either. But sure, everyone gets better over time. I guess that's all I
+can say on this question.
+
+S.F.: OK. Do you ever look at your old code, and say: "who's the idiot that wrote
+this junk?".
+
+Ben C-S: Only my perl code. :-)
+
++++: No, seriously ,that has happened to me. If I look at the SVN code I wrote in
+2000, there's a noticeable difference. That proves that there has been
+improvement.
+
+S.F.: How much do you think social skills are important for someone who runs
+a free software project?
+
+Ben C-S: I think they're everything. I think the reason svn is successful as a project
+is because of Karl Fogel's ability to be a good leader. I can point to other
+projects that have excellent technology, but failed to "coelesce" as a
+community, because of bad leadership.
+
++++: Having good technology doesn't mean you automatically get a community. You
+need to socially manage people, not just review code patches.
+In fact, Karl is going to be writing a book about this very topic. :-)
+
+S.F.: I'll look forward to it.
+
++++: Hackers are well known for being socially-challenged and many times even
+acknowledge this fact about themselves. Do you think a hacker can have some
+rules of thumb to help him attract contributors and users for his project?
+
+Ben C-S: 1. Don't be a jerk.
+
++++: 2. don't be a control freak. I belong to once open-source project where
+there's *one* guy who is writing the next-generation 2.0 version of the
+software from scratch, and he  show the code to <b>anyone</b>.
+He refuses to put it into CVS until it's "done", because he doesn't want
+anyone to comment on it.
+
++++: I guess that leads to
+
++++: 3. You are Not Your Code. Be ready to take criticism and grow from it. If you
+criticize others, do it tactfully, respectfully, and only give constructive
+criticism.
+
++++: Be willing to toss your efforts and try again. Don't take anything personally.
+I've seen so many flame wars break out over this.
+
++++: 4. Set some social standards and stick to them. The svn project is an example
+of this: we expect patch submissions in a specific format, we expect people
+not to file issues without discussion first, we have a voting system.
+
++++: I guess it's really hard to separate politics and social behaviors when
+email is your main medium of cohesion. But project leaders should lay down
+political laws (i.e "how does one become a committer? how does one vote?"),
+as well as standards of social conduct, and not be afraid to boot people out
+of the community if they ignore either set of standards.
+
++++: Eventually. you end up with a community that polices itself automatically.
+You've selected the community for a certain type of "plays well with others"
+kind of person, and so the group learns to automatically reject the opposite
+sort of person.
+
+S.F.: Now let's move to some questions about Subversion.
+
++++: How did you get involved in Subversion?
+
+Ben C-S: I was hired to work on it in 2000.
+
+S.F.: Were you involved in it beforehand?
+
+Ben C-S: No, it didn't exist beforehand. :-) Karl Fogel, Jim Blandy and I wrote the
+first design document.
+
+S.F.: What do you like the most about working for it?
+
+Ben C-S: I like the fact that it's Free. If my company were taken over by another, or
+suddenly collapsed, the software would still have a life of its own.
+
++++: I can't imagine pouring sweat and blood into something, and then watching it
+die simply because a company, or creditors, say so. The lifetime of a piece of
+software should depend on whether or not a community continues to exist around
+it, not if a lawyer says so.
+
++++: That's all. :-)
+
+S.F.: You're getting paid to work on Subversion. How is life in the
+Subversion office?
+
+Ben C-S: It's a great office. When we're not working on SVN, we play music on breaks. Each of us has an acoustic guitar by his desk. There's great value in being in
+the same room with someone.
+
+S.F.: Which of the core Subversion hackers do you admire and for what?
+
+Ben C-S: What is this, a performance review? :-) I admire Jim Blandy, for designing
+the repository. That was the single most important design in all of subversion.
+
+S.F.: Long question now.
+I noticed a certain trend in OSS. If we take Perl and Python for example,
+they are two languages who compete for the same niche, yet are very different
+and incompatible. Now, we can hear a lot of Perl-bashing from Python people
+("Here's some working 'ugly' Perl code - let's rewrite it in Python",
+"Perl does not scale to large codebases.", "All Perl code is ugly",
+"Perl code is not different than line noise" "Oh, I tweaked some Perl
+code - I feel violated".) etc.
+
++++: On the other hand, criticism of Python among Perl hackers is much less covert
+and gentle. Most Perl people will be happy that an unhappy Perl hacker became
+a happy Python hacker. They hardly ever claim that Python is bad, just that
+they may not like it much, or that Perl works for them.
+
++++: It seems that there's a similar situation with Subversion and Arch. Subversion
+users just confess that they like subversion and not that it's superior to
+Arch or to anything. Arch people, OTOH, attack Subversion all the time on
+various grounds.
+
++++: It does not seem to be applicable everywhere. I didn't notice it much with
+Linux and FreeBSD.
+
++++: What is your opinion on the Perl vs. Python, Subversion vs. Arch etc.
+phenomenon? Is it desirable? Is it inevitable? Were you guilty of it
+yourself? ;-)
+
+Ben C-S: Hoo. Here's my analysis: basic human nature.
+
++++: If there are 2 products to fill a niche, and one of them is more popular, the
+less popular one will always being trying to "tear down" the other.
+
++++: The more popular product dosen't fling mud, because, well, it feels secure
+in its popularity.
+
++++: But I suppose there's a cultural aspect too. In the case of svn vs. arch,
+we see a debate older than me. Is version control about managing trees, or
+about managing patches? Subversion chose a side, but doesn't believe it's
+the <i>only</i> side. Honestly, Tom Lord, great guy as he is, is completely
+convinced that patch-management is the <i>only</i> answer to the problem.
+And so his position spreads through the arch community. It becomes a sort of
+evangelism: "we must make everyone see the truth!" Whereas the svn guys don't
+think there's a single correct approach to version control. We have nothing
+to preach.
+
++++: I guess that's all I have to say.
+
+S.F.: OK. What is the most delicate part of Subversion and why?
+
+Ben C-S: Delicate, as in, fragile?
+
+S.F.: I suppose. delicate as in hard to tweak and get right.
+
+Ben C-S: So you're talking, code-wise, not usage wise?
+
+S.F.: Code-wise, yes.
+
+Ben C-S: I would say for a user, the repository database is the most
+fragile thing. See the bottom of my
+<a href="http://www.red-bean.com/sussman/svn-anti-fud.html">anti-fud essay</a>
+about that.
+
++++: The hardest thing to tweak and get right (code wise) is the working-copy
+library. Versioning directories is very tricky. And doing everything via
+journaled logs is very tricky.
+
++++: Everyone criticizes the libsvn_wc code about being a mess, but really, if we
+were to take the time to rewrite it from scratch, I don't think it would be
+any less complicated.
+
++++: It just might have fewer bugs, due to hindsight. The problem is really
+complicated, and thus the code must be too, to some degree.
+
+S.F.: <a href="http://www.joelonsoftware.com/">Joel Spolsky</a> said in his famous
+article <a href="http://www.joelonsoftware.com/articles/fog0000000069.html">"Things
+you Should Never Do - Part I"</a> that one should never re-write a complete
+working codebase from scratch, no matter how "bad" it seems. In the sequel
+<a href="http://www.joelonsoftware.com/articles/fog0000000348.html">"Rub a
+dub dub"</a> he demonstrated how to improve an existing codebase to increase
+its quality and maintainability. I can tell from experience that his
+recommendation works.
+
++++: Subversion was a re-write from the grounds up done by many of the original
+CVS workers. Do you think it could have been faster to replace CVS
+(or <a href="http://www.cvsnt.com/cvspro/">CVSNT</a>) component by component,
+thus yielding Subversion?
+
+Ben C-S: CVS has no "components", that's the problem. If we had spent 4 years
+"improving" the CVS codebase, the result would have been a nice-to-read CVS
+codebase. Something very clean and intelligible. But that was never our goal.
+
++++: It's not like we looked at CVS and said, "this code base is unmaintainable,
+let's start over". What we said was, "The quality of CVS code is irrelevant;
+there's no way we can add the features we want given CVS's design. We need a
+new design.". And when you're changing the fundamental design of something, no
+amount of "cleaning up" a codebase is useful. Cleaning doesn't change the
+underlying design. It just makes code more maintainable.
+
++++: We had a specific design that was fundamentally incompatible with CVS's design.
+so Joel's approach wouldn't have helped us.
+
+S.F.: It seems that the development groups of different version control systems
+each manage to come up with their own unique and interesting architecture
+for making it happen. What do you think of the architectures of the various
+version control systems that you've studied? Do you think the Subversion
+architecture is the best one for its purpose?
+
+Ben C-S: I think that version control designs always involve tradeoffs. You push down
+one bump, another pops up. If you optimize the system around solving one
+problem, or making something easy, then something else becomes slightly
+harder.
+
++++: What I said about Subversion and Arch earlier applies here. Arch makes it easy
+to exchange patches, but it's a little bit harder to produce a revision tree.
+Subversion makes it easy to walk any revision tree, but harder to produce
+patches.
+
++++: Same with Subversion's order-1 branch/copy feature. It's nice that branching
+is so fast compared to CVS, but the tradeoff is that it's no longer easy to
+ask the question " which branches does this particular version of this file
+exist in?" So my answer is: there is no single best architecture, or best
+solution to the problem. Different groups or companies need to choose a system
+that "feel best" to them, and live with the particular tradeoffs.
+
+S.F.: You happen to be a musician. Tell us about your Music experience,
+throughout the years.
+
+Ben C-S: I started learning classical piano at the age of 6, but then switched to
+jazz piano and improvisation at the age of 12. I went to college and
+ended up playing piano in an improvisational comedy troupe, as well as
+conducting a number of college musicals. At the end of college, I met
+my friend/collaborator Andre, and we wrote our first musical theater
+piece. Since then, we've been working in the Chicago theater
+community for 10 years, and have written 5 more musicals (and done
+over 100 sound designs). Our latest musical is going to New York for
+a festival showcase, in hopes of future productions. See
+<a href="http://www.pluess-sussman.com">http://www.pluess-sussman.com</a>.
+
++++: I've also -- just in the last 2 years -- started studying bluegrass
+guitar and banjo. It's incredibly fun.
+
+S.F.: What is your favourite band?
+
+Ben C-S: Hmmmm, Led Zepplin, probably. Hard to say. I also love Ben Folds
+quite a bit too, as well as Indigo Girls, Phish, Radiohead.
+
+S.F.: What is your favourite foreign (non English/American) band?
+
+Ben C-S: I'm pretty musically ignorant. I don't listen to music in non-english
+languages. ;-)
+
+S.F.: Name some of your favourite songs?
+
+Ben C-S: Ummmm.... I'm not much of a music collector or listener. I spend more
+time producing music than consuming it, I think.
+
+S.F.: How musically-eclectic are you?
+
+Ben C-S: Banjo is pretty eclectic, no? I've started becoming a bluegrass fan
+just in the last year. It's a whole new world to me.
+
+S.F.: You confess that your favourite UNIX flavour is FreeBSD. What do you
+like so much about it?
+
+Ben C-S: Well, I used to use FreeBSD as my main desktop OS, but a couple years
+ago I switched back to Linux. I've decided that FreeBSD is the best
+<b>server</b> OS out there. But it's not as instantly easy to get going as
+a desktop workstation -- Linux is better at APM, cardbus support,
+thread support, usb HID support, wifi gui applets, instant CUPS
+support, and has tools like valgrind. All that stuff "just works"
+when you install Linux on a notebook; on FreeBSD, that stuff either
+doesn't work, or is tricky to get going. (Granted, this is all FreeBSD 4;
+I have not tried FreeBSD 5 yet.)
+
++++: In my former life as a Unix sysadmin - I can say that FreeBSD, as an
+OS, is the "tightest" distribution out there. Linux distros feel like
+a bunch of pieces shoved together: a kernel, a toolchain, some user
+space apps, and so on. FreeBSD is  coherent system, everything
+compilable from source in a single 'make world'. It makes the system
+much easier to manage and administer... and the networking is
+incredibly solid. It's my first choice for a server OS, no doubt.
+
+S.F.: Did you encounter an occasion where things did not work as they should
+there
+because the developer only tested it on Linux?
+
+Ben C-S: Absolutely... most of the nice Gnome/KDE applets, for example, make
+assumptions about Linux device drivers.
+
+S.F.: At the moment, you are being forced to use RedHat Linux, so the
+CollabNet core team's development environments will be more homogenous.
+(If I
+understood that correctly) Do you enjoy the experience?
+
+Ben C-S: No, I'm not forced at all. I chose to use Redhat because it was a
+nicer desktop system, plain and simple.
+
+S.F.: Do you think the fact that most Subversion hackers are UNIX-enthusiasts, is
+causing problems with making sure it is working perfectly with Win32?
+
+Ben C-S: Not at all. I think that we have unbelievable win32 support compared
+to just about any open source project out there. Show me <b>any</b> open
+source project where the core developer group are all "win32
+enthusiasts". It doesn't exist.
+
++++: The real problem is simply a conflict of cultures. Unix culture
+promotes free software: the system comes with compilers and languages,
+and encourages users to tinker with everything. The line between
+"user" and "developer" is blurred. Windows is the opposite: it has
+"users" and "developers", and the latter category is a small minority
+of people off in the corner.
+
++++: Subversion's team isn't the stereotypical "we're all unix-users,
+windows sucks, go away Microsoft" sort of group. We even have team
+members who work (or worked) for Microsoft. Many of us have win32
+compilers, and a subset of us build and test on windows almost every
+day.
+
+S.F.: Tell us a bit about your family. What do they do?
+
+Ben C-S: Parents are psychologists; brother is studying to be an astrophysicist.
+A nice jewish family in the suburbs of Chicago.
+
+S.F.: How did you meet your wife?
+
+Ben C-S: At University, of course. :-)
+
+S.F.: How does she feel about the fact that you're working on an open-source
+project for a living?
+
+Ben C-S: She thinks it's nice, but doesn't care about computers at all. She
+just knows that it makes me happy.
+
+S.F.: You seem to be interested in languages and linguistics (know German,
+Spanish, and started creating your own artificial language.). Can you
+tell us more about it? Do you learn any other languages? Do you wish to
+learn any others?
+
+Ben C-S: I'm interested in relationships between languages (the biological
+"tree"), and studying how languages change over time. I'm always
+excited to learn new languages... but lack the time. Probably a
+separate conversation here...
+
+S.F.: What was your single greatest surprising event in your professional
+life? ( Like something that someone did which you did not expect. )
+
+Ben C-S: Finding a paid job opportunity to work on open source. :-)
+
+S.F.: Name some of your favourite sites.
+
+Ben C-S: <a href="http://www.geocaching.com/">http://www.geocaching.com/</a><br />
+<a href="http://www.banjohangout.org/">http://www.banjohangout.org/</a> <br />
+<a href="http://www.ifarchive.org/">http://www.ifarchive.org/</a> <br />
+<a href="http://www.nascrag.org/">http://www.nascrag.org/</a>
+
+S.F.: What other open source projects have you contributed to besides Subversion?
+
+Ben C-S: The only other one I've worked on is
+<a href="http://www.openrpg.com/">OpenRPG</a>.
+
+S.F.: Thank you for your time, Ben, and may you have good luck and success in all
+of your endeavours.
+
+
+</s>

File t2/open-source/interviews/index.html.wml

 <a href="http://subversion.tigris.org/">Subversion version control system</a>.
 </p>
 
+<p>
+<a href="sussman-interview.txt">Source in XML-Grammar-Screenplay Format</a>
+</p>
+

File t2/open-source/interviews/sussman.html.wml

 #include '../template.wml'
 
+#include "screenplay-xml/rendered-html/sussman-interview.html"
 <latemp_subject "Interview with Ben Collins-Sussman" />
 
-<page_extra_head_elements>
-<style type="text/css">
-.question { color: green }
-.question b, .answer b { color : black }
-.meta { font-style : italic ; color : blue }
-body { background-color : white }
-</style>
-</page_extra_head_elements>
-
-<p class="meta">
-This is an interview of Ben Collins-Sussman conducted by Shlomi Fish. It was
-conducted over the IRC at 23 February, 2004, and then over E-mail at
-2 August, 2004. Final editions were done by both parties.
-</p>
-<p class="question"> <b>S.F.:</b>
-Shall we start with the interview?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Sure.
-</p>
-<p class="question"> <b>S.F.:</b>
-Tell us a bit about yourself.
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Like what? I'm six feet tall, black hair, brown eyes. :-)
-</p>
-<p class="question"> <b>S.F.:</b>
-Who you are? What did you do? Where have you studied and what?
-And that's 1.80 meters tall.
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Ah, ok. Um, let's see.
-</p>
-<p class="answer">
-I'm 31 years old, and have lived in Chicago all my life. I have a B.Sc. in
-Mathematics from the University of Chicago, and have been working in computers
-for about 10 years.
-</p>
-<p class="answer">
-By day, I work on Subversion... Collabnet hired me to help design and
-implement it in 2000. By night, I work as a composer. My collaborator and I
-write musicals and scores for theater around the country.
-<a href="http://pluess-sussman.com">http://pluess-sussman.com</a>
-</p>
-<p class="question"> <b>S.F.:</b>
-Have you been a computer enthusiast during your teens?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-I did BASIC programming as a kid, between the ages of 9 and 12, then lost interest in computers completely.
-</p>
-<p class="answer">
-At the age of 17, getting ready for college, I started getting into fractals
-I was generating Julia Sets on my apple IIe, and it would take 10 hours for
-each.
-</p>
-<p class="question"> <b>S.F.:</b>
-&lt;giggle /&gt;
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-My calculus teacher in high school said, "hey, lemme introduce you to this
-guy, he can help you." And that's how I met my friend Matt Braithwaite. He
-had a 286 and Turbo C. I learned C by watching him implement Mandelbrot sets.
-</p>
-<p class="question"> <b>S.F.:</b>
-Cool.
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Then I went off to college, and continued to write little toy programs in C for fun. My summers in college, I worked for the US Dept of Energy as an assistant
-to a professor who was simultating global climate changes on massively
-parallel supercomputers. That's how I learned Unix.
-</p>
-<p class="answer">
-I remember in the summer of 1991, Karl Fogel and I were temporary roommates.
-(Karl and I have been friends since I was 13)
-</p>
-<p class="answer">
-We both decided to install linux 0.95c on our 386 computers. :-) It barely
-worked. X windows blew out his monitor.
-</p>
-<p class="answer">
-Anyway, after college, I spent many years as a unix sysadmin. But I finally
-decided that coding was more fun. I also got married. :-)
-</p>
-<p class="answer">
-What else would you like to know?
-</p>
-<p class="question"> <b>S.F.:</b>
-OK, that's fine for now. Now let's move to some other questions.
-</p>
-<p class="question">
-You maintain <a href="http://www.red-bean.com/sussman/">a homepage</a> with
-various odds and ends. How much time did you spend maintaining it? How do you
-maintain it?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-I update the homepage about once a year, heh. My webpage is actually an svn
-working copy. My repository has a post-commit hook that updates the live
-working copy. It exists mainly for my relatives, not my friends.
-</p>
-<p class="question"> <b>S.F.:</b>
-OK.
-</p>
-<p class="question">
-Linus Torvalds once said that 95% of programmers consider themselves in the
-top 5%. Do you consider yourself a good programmer? Do you think your
-programming skills have improved in time?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Ha. My programming skills aren't very great, no. Honestly.
-</p>
-<p class="answer">
-My strengths lie in organizing things. Whenever there's a hugely complicated
-topic that needs to be sorted out, everyone in the Collabnet Chicago office
-asks me to do it. For example, "go learn WebDAV/DeltaV" or "figure out what'
-s happening in that complex email thread; summarize all the positions"
-My talent is in being able to present high-level overviews of complex topics.
-</p>
-<p class="answer">
-And I guess I'm also sort of the unofficial publicity/marketing guy on the svn
-lists. I seem to be worried about svn's image more than I should be. :-)
-</p>
-<p class="answer">
-Really, when I code, it's not <b>bad</b> code, but it's not particularly
-clever either. But sure, everyone gets better over time. I guess that's all I
-can say on this question.
-</p>
-<p class="question"> <b>S.F.:</b>
-OK. Do you ever look at your old code, and say: "who's the idiot that wrote
-this junk?".
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Only my perl code. :-)
-</p>
-<p class="answer">
-No, seriously ,that has happened to me. If I look at the SVN code I wrote in
-2000, there's a noticeable difference. That proves that there has been
-improvement.
-</p>
-<p class="question"> <b>S.F.:</b>
-How much do you think social skills are important for someone who runs
-a free software project?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-I think they're everything. I think the reason svn is successful as a project
-is because of Karl Fogel's ability to be a good leader. I can point to other
-projects that have excellent technology, but failed to "coelesce" as a
-community, because of bad leadership.
-</p>
-<p class="answer">
-Having good technology doesn't mean you automatically get a community. You
-need to socially manage people, not just review code patches.
-In fact, Karl is going to be writing a book about this very topic. :-)
-</p>
-<p class="question"> <b>S.F.:</b>
-I'll look forward to it.
-</p>
-<p class="question">
-Hackers are well known for being socially-challenged and many times even
-acknowledge this fact about themselves. Do you think a hacker can have some
-rules of thumb to help him attract contributors and users for his project?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-1. Don't be a jerk.
-</p>
-<p class="answer">
-2. don't be a control freak. I belong to once open-source project where
-there's *one* guy who is writing the next-generation 2.0 version of the
-software from scratch, and he <b>won't</b> show the code to <b>anyone</b>.
-He refuses to put it into CVS until it's "done", because he doesn't want
-anyone to comment on it.
-</p>
-<p class="answer">
-I guess that leads to
-</p>
-<p class="answer">
-3. You are Not Your Code. Be ready to take criticism and grow from it. If you
-criticize others, do it tactfully, respectfully, and only give constructive
-criticism.
-</p>
-<p class="answer">
-Be willing to toss your efforts and try again. Don't take anything personally.
-I've seen so many flame wars break out over this.
-</p>
-<p class="answer">
-4. Set some social standards and stick to them. The svn project is an example
-of this: we expect patch submissions in a specific format, we expect people
-not to file issues without discussion first, we have a voting system.
-</p>
-<p class="answer">
-I guess it's really hard to separate politics and social behaviors when
-email is your main medium of cohesion. But project leaders should lay down
-political laws (i.e "how does one become a committer? how does one vote?"),
-as well as standards of social conduct, and not be afraid to boot people out
-of the community if they ignore either set of standards.
-</p>
-<p class="answer">
-Eventually. you end up with a community that polices itself automatically.
-You've selected the community for a certain type of "plays well with others"
-kind of person, and so the group learns to automatically reject the opposite
-sort of person.
-</p>
-<p class="question"> <b>S.F.:</b>
-Now let's move to some questions about Subversion.
-</p>
-<p class="question">
-How did you get involved in Subversion?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-I was hired to work on it in 2000.
-</p>
-<p class="question"> <b>S.F.:</b>
-Were you involved in it beforehand?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-No, it didn't exist beforehand. :-) Karl Fogel, Jim Blandy and I wrote the
-first design document.
-</p>
-<p class="question"> <b>S.F.:</b>
-What do you like the most about working for it?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-I like the fact that it's Free. If my company were taken over by another, or
-suddenly collapsed, the software would still have a life of its own.
-</p>
-<p class="answer">
-I can't imagine pouring sweat and blood into something, and then watching it
-die simply because a company, or creditors, say so. The lifetime of a piece of
-software should depend on whether or not a community continues to exist around
-it, not if a lawyer says so.
-</p>
-<p class="answer">
-That's all. :-)
-</p>
-<p class="question"> <b>S.F.:</b>
-You're getting paid to work on Subversion. How is life in the
-Subversion office?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-It's a great office. When we're not working on SVN, we play music on breaks. Each of us has an acoustic guitar by his desk. There's great value in being in
-the same room with someone.
-</p>
-<p class="question"> <b>S.F.:</b>
-Which of the core Subversion hackers do you admire and for what?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-What is this, a performance review? :-) I admire Jim Blandy, for designing
-the repository. That was the single most important design in all of subversion.
-</p>
-<p class="question"> <b>S.F.:</b>
-Long question now.
-I noticed a certain trend in OSS. If we take Perl and Python for example,
-they are two languages who compete for the same niche, yet are very different
-and incompatible. Now, we can hear a lot of Perl-bashing from Python people
-("Here's some working 'ugly' Perl code - let's rewrite it in Python",
-"Perl does not scale to large codebases.", "All Perl code is ugly",
-"Perl code is not different than line noise" "Oh, I tweaked some Perl
-code - I feel violated".) etc.
-</p>
-<p class="question">
-On the other hand, criticism of Python among Perl hackers is much less covert
-and gentle. Most Perl people will be happy that an unhappy Perl hacker became
-a happy Python hacker. They hardly ever claim that Python is bad, just that
-they may not like it much, or that Perl works for them.
-</p>
-<p class="question">
-It seems that there's a similar situation with Subversion and Arch. Subversion
-users just confess that they like subversion and not that it's superior to
-Arch or to anything. Arch people, OTOH, attack Subversion all the time on
-various grounds.
-</p>
-<p class="question">
-It does not seem to be applicable everywhere. I didn't notice it much with
-Linux and FreeBSD.
-</p>
-<p class="question">
-What is your opinion on the Perl vs. Python, Subversion vs. Arch etc.
-phenomenon? Is it desirable? Is it inevitable? Were you guilty of it
-yourself? ;-)
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Hoo. Here's my analysis: basic human nature.
-</p>
-<p class="answer">
-If there are 2 products to fill a niche, and one of them is more popular, the
-less popular one will always being trying to "tear down" the other.
-</p>
-<p class="answer">
-The more popular product dosen't fling mud, because, well, it feels secure
-in its popularity.
-</p>
-<p class="answer">
-But I suppose there's a cultural aspect too. In the case of svn vs. arch,
-we see a debate older than me. Is version control about managing trees, or
-about managing patches? Subversion chose a side, but doesn't believe it's
-the <i>only</i> side. Honestly, Tom Lord, great guy as he is, is completely
-convinced that patch-management is the <i>only</i> answer to the problem.
-And so his position spreads through the arch community. It becomes a sort of
-evangelism: "we must make everyone see the truth!" Whereas the svn guys don't
-think there's a single correct approach to version control. We have nothing
-to preach.
-</p>
-<p class="answer">
-I guess that's all I have to say.
-</p>
-<p class="question"> <b>S.F.:</b>
-OK. What is the most delicate part of Subversion and why?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Delicate, as in, fragile?
-</p>
-<p class="question"> <b>S.F.:</b>
-I suppose. delicate as in hard to tweak and get right.
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-So you're talking, code-wise, not usage wise?
-</p>
-<p class="question"> <b>S.F.:</b>
-Code-wise, yes.
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-I would say for a user, the repository database is the most
-fragile thing. See the bottom of my
-<a href="http://www.red-bean.com/sussman/svn-anti-fud.html">anti-fud essay</a>
-about that.
-</p>
-<p class="answer">
-The hardest thing to tweak and get right (code wise) is the working-copy
-library. Versioning directories is very tricky. And doing everything via
-journaled logs is very tricky.
-</p>
-<p class="answer">
-Everyone criticizes the libsvn_wc code about being a mess, but really, if we
-were to take the time to rewrite it from scratch, I don't think it would be
-any less complicated.
-</p>
-<p class="answer">
-It just might have fewer bugs, due to hindsight. The problem is really
-complicated, and thus the code must be too, to some degree.
-</p>
-<p class="question"> <b>S.F.:</b>
-<a href="http://www.joelonsoftware.com/">Joel Spolsky</a> said in his famous
-article <a href="http://www.joelonsoftware.com/articles/fog0000000069.html">"Things
-you Should Never Do - Part I"</a> that one should never re-write a complete
-working codebase from scratch, no matter how "bad" it seems. In the sequel
-<a href="http://www.joelonsoftware.com/articles/fog0000000348.html">"Rub a
-dub dub"</a> he demonstrated how to improve an existing codebase to increase
-its quality and maintainability. I can tell from experience that his
-recommendation works.
-</p>
-<p class="question">
-Subversion was a re-write from the grounds up done by many of the original
-CVS workers. Do you think it could have been faster to replace CVS
-(or <a href="http://www.cvsnt.com/cvspro/">CVSNT</a>) component by component,
-thus yielding Subversion?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-CVS has no "components", that's the problem. If we had spent 4 years
-"improving" the CVS codebase, the result would have been a nice-to-read CVS
-codebase. Something very clean and intelligible. But that was never our goal.
-</p>
-<p class="answer">
-It's not like we looked at CVS and said, "this code base is unmaintainable,
-let's start over". What we said was, "The quality of CVS code is irrelevant;
-there's no way we can add the features we want given CVS's design. We need a
-new design.". And when you're changing the fundamental design of something, no
-amount of "cleaning up" a codebase is useful. Cleaning doesn't change the
-underlying design. It just makes code more maintainable.
-</p>
-<p class="answer">
-We had a specific design that was fundamentally incompatible with CVS's design.
-so Joel's approach wouldn't have helped us.
-</p>
-<p class="question"> <b>S.F.:</b>
-It seems that the development groups of different version control systems
-each manage to come up with their own unique and interesting architecture
-for making it happen. What do you think of the architectures of the various
-version control systems that you've studied? Do you think the Subversion
-architecture is the best one for its purpose?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-I think that version control designs always involve tradeoffs. You push down
-one bump, another pops up. If you optimize the system around solving one
-problem, or making something easy, then something else becomes slightly
-harder.
-</p>
-<p class="answer">
-What I said about Subversion and Arch earlier applies here. Arch makes it easy
-to exchange patches, but it's a little bit harder to produce a revision tree.
-Subversion makes it easy to walk any revision tree, but harder to produce
-patches.
-</p>
-<p class="answer">
-Same with Subversion's order-1 branch/copy feature. It's nice that branching
-is so fast compared to CVS, but the tradeoff is that it's no longer easy to
-ask the question " which branches does this particular version of this file
-exist in?" So my answer is: there is no single best architecture, or best
-solution to the problem. Different groups or companies need to choose a system
-that "feel best" to them, and live with the particular tradeoffs.
-</p>
-<p class="question"> <b>S.F.:</b>
-You happen to be a musician. Tell us about your Music experience,
-throughout the years.
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-I started learning classical piano at the age of 6, but then switched to
-jazz piano and improvisation at the age of 12. I went to college and
-ended up playing piano in an improvisational comedy troupe, as well as
-conducting a number of college musicals. At the end of college, I met
-my friend/collaborator Andre, and we wrote our first musical theater
-piece. Since then, we've been working in the Chicago theater
-community for 10 years, and have written 5 more musicals (and done
-over 100 sound designs). Our latest musical is going to New York for
-a festival showcase, in hopes of future productions. See
-<a href="http://www.pluess-sussman.com">http://www.pluess-sussman.com</a>.
-</p>
-<p class="answer">
-I've also -- just in the last 2 years -- started studying bluegrass
-guitar and banjo. It's incredibly fun.
-</p>
-<p class="question"> <b>S.F.:</b>
-What is your favourite band?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Hmmmm, Led Zepplin, probably. Hard to say. I also love Ben Folds
-quite a bit too, as well as Indigo Girls, Phish, Radiohead.
-</p>
-<p class="question"> <b>S.F.:</b>
-What is your favourite foreign (non English/American) band?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-I'm pretty musically ignorant. I don't listen to music in non-english
-languages. ;-)
-</p>
-<p class="question"> <b>S.F.:</b>
-Name some of your favourite songs?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Ummmm.... I'm not much of a music collector or listener. I spend more
-time producing music than consuming it, I think.
-</p>
-<p class="question"> <b>S.F.:</b>
-How musically-eclectic are you?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Banjo is pretty eclectic, no? I've started becoming a bluegrass fan
-just in the last year. It's a whole new world to me.
-</p>
-<p class="question"> <b>S.F.:</b>
-You confess that your favourite UNIX flavour is FreeBSD. What do you
-like so much about it?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Well, I used to use FreeBSD as my main desktop OS, but a couple years
-ago I switched back to Linux. I've decided that FreeBSD is the best
-<b>server</b> OS out there. But it's not as instantly easy to get going as
-a desktop workstation -- Linux is better at APM, cardbus support,
-thread support, usb HID support, wifi gui applets, instant CUPS
-support, and has tools like valgrind. All that stuff "just works"
-when you install Linux on a notebook; on FreeBSD, that stuff either
-doesn't work, or is tricky to get going. (Granted, this is all FreeBSD 4;
-I have not tried FreeBSD 5 yet.)
-</p>
-<p class="answer">
-In my former life as a Unix sysadmin - I can say that FreeBSD, as an
-OS, is the "tightest" distribution out there. Linux distros feel like
-a bunch of pieces shoved together: a kernel, a toolchain, some user
-space apps, and so on. FreeBSD is <b>one</b> coherent system, everything
-compilable from source in a single 'make world'. It makes the system
-much easier to manage and administer... and the networking is
-incredibly solid. It's my first choice for a server OS, no doubt.
-</p>
-<p class="question"> <b>S.F.:</b>
-Did you encounter an occasion where things did not work as they should
-there
-because the developer only tested it on Linux?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Absolutely... most of the nice Gnome/KDE applets, for example, make
-assumptions about Linux device drivers.
-</p>
-<p class="question"> <b>S.F.:</b>
-At the moment, you are being forced to use RedHat Linux, so the
-CollabNet core team's development environments will be more homogenous.
-(If I
-understood that correctly) Do you enjoy the experience?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-No, I'm not forced at all. I chose to use Redhat because it was a
-nicer desktop system, plain and simple.
-</p>
-<p class="question"> <b>S.F.:</b>
-Do you think the fact that most Subversion hackers are UNIX-enthusiasts, is
-causing problems with making sure it is working perfectly with Win32?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Not at all. I think that we have unbelievable win32 support compared
-to just about any open source project out there. Show me <b>any</b> open
-source project where the core developer group are all "win32
-enthusiasts". It doesn't exist.
-</p>
-<p class="answer">
-The real problem is simply a conflict of cultures. Unix culture
-promotes free software: the system comes with compilers and languages,
-and encourages users to tinker with everything. The line between
-"user" and "developer" is blurred. Windows is the opposite: it has
-"users" and "developers", and the latter category is a small minority
-of people off in the corner.
-</p>
-<p class="answer">
-Subversion's team isn't the stereotypical "we're all unix-users,
-windows sucks, go away Microsoft" sort of group. We even have team
-members who work (or worked) for Microsoft. Many of us have win32
-compilers, and a subset of us build and test on windows almost every
-day.
-</p>
-<p class="question"> <b>S.F.:</b>
-Tell us a bit about your family. What do they do?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Parents are psychologists; brother is studying to be an astrophysicist.
-A nice jewish family in the suburbs of Chicago.
-</p>
-<p class="question"> <b>S.F.:</b>
-How did you meet your wife?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-At University, of course. :-)
-</p>
-<p class="question"> <b>S.F.:</b>
-How does she feel about the fact that you're working on an open-source
-project for a living?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-She thinks it's nice, but doesn't care about computers at all. She
-just knows that it makes me happy.
-</p>
-<p class="question"> <b>S.F.:</b>
-You seem to be interested in languages and linguistics (know German,
-Spanish, and started creating your own artificial language.). Can you
-tell us more about it? Do you learn any other languages? Do you wish to
-learn any others?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-I'm interested in relationships between languages (the biological
-"tree"), and studying how languages change over time. I'm always
-excited to learn new languages... but lack the time. Probably a
-separate conversation here...
-</p>
-<p class="question"> <b>S.F.:</b>
-What was your single greatest surprising event in your professional
-life? ( Like something that someone did which you did not expect. )
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-Finding a paid job opportunity to work on open source. :-)
-</p>
-<p class="question"> <b>S.F.:</b>
-Name some of your favourite sites.
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-<a href="http://www.geocaching.com/">http://www.geocaching.com/</a><br />
-<a href="http://www.banjohangout.org/">http://www.banjohangout.org/</a> <br />
-<a href="http://www.ifarchive.org/">http://www.ifarchive.org/</a> <br />
-<a href="http://www.nascrag.org/">http://www.nascrag.org/</a>
-</p>
-<p class="question"> <b>S.F.:</b>
-What other open source projects have you contributed to besides Subversion?
-</p>
-<p class="answer"> <b>Ben C-S:</b>
-The only other one I've worked on is
-<a href="http://www.openrpg.com/">OpenRPG</a>.
-</p>
-<p class="question"> <b>S.F.:</b>
-Thank you for your time, Ben, and may you have good luck and success in all
-of your endeavours.
-</p>
-