----BEGIN CLASS---- [15:56] #startclass [15:56] jimblandy: Welcome to #dgplug [15:56] Roll Call [15:56] Jason Braganza [15:56] Bhavin Gandhi [15:56] Ashwani Kumar Gupta [15:56] Shakthi Kannan [15:56] Kushal Das [15:56] Gaurav Sitlani [15:56] Hello! It's good morning for me on the US West Coast, and I understand Durgapur is 12h ahead? [15:56] Sandesh Patel [15:56] Krishnanand Rai [15:56] Akshay Gaikwad [15:56] kushal: Okay, thanks. [15:56] -Mahendra Yadav [15:57] Nikita Kotak [15:57] Abhishek Singh [15:57] Jim Blandy [15:57] jimblandy 12 and a half hours this time of year [15:58] Anyone else? [15:58] jimblandy, Welcome to dgplug! [15:58] Hi, I'm Jim Blandy. It's nice to meet you all. [15:58] Thanks you very much for coming, and thanks to Kushal Das for inviting me to talk. [15:58] Ratnadeep Debnath [15:59] jimblandy, The stage is yours. [15:59] all right! [15:59] Kushal explained to me that the focus of the DGPLUG this year is to try to explain the political side of Free software. [15:59] So first, some background about me: [15:59] I've worked on Project GNU for the Free Software Foundation (FSF). [16:00] So Richard Stallman was my boss for five years. [16:00] So Richard Stallman was my boss for five years. [16:00] I've been a maintainer of GNU Emacs, Guile, and GDB, the GNU debugger. [16:00] I'm one of the original designers of the Subversion version control system. [16:00] (But I prefer to use Git and Mercurial now!) [16:00] Now I work for Mozilla on their JavaScript engine and developer tools. [16:00] These days I'm very excited about the Rust programming language. [16:00] Roll call:pooja kumari singh [16:00] My friend Jason Orendorff and I have written a book for O'Reilly about the Rust programming language, which should be available on paper in October. [16:00] So I've spent my whole career, starting from when I graduated from college 1990 until now, working only on Free software. [16:00] (Except for three months where I got roped into a startup, which I now regret...) [16:00] So, Kushal suggested it would be interesting for me to tell two stories: [16:01] 1) How I ended up working for Project GNU, and what that was like [16:01] 2) How Subversion got started. [16:01] And hopefully those will lead to some questions about why Free software is not just nice, but important: it has political significance. [16:01] If you have questions, go ahead and queue them up; I've got a few stopping points in the talk, so I'll answer a few then. [16:01] So, Part I: Going to work at the Free Software Foundation [16:01] Trishna Guha (Roll call) [16:01] In 1990, I graduated from college with a CS degree, and moved to Boston, Massachusetts, near MIT. [16:01] Roll Call: Kshitij [16:01] Roll Call Deepika Upadhyay [16:02] My friend Jim Kingdon was working for Project GNU on GDB, but he got invited to work at a startup in Silicon Valley that was doing Free software. [16:02] So the day he quit, I went to Stallman's office. [16:02] He had an office at MIT that some professors there had arranged for him to use. [16:02] (He had resigned from MIT earlier to make sure the university couldn't claim any rights over Project GNU's code.) [16:03] The rest of Project GNU used another pair of offices down the hall. [16:03] I said to Stallman, "I want to work for Project GNU. Here is my resume." [16:03] He said, "I don't care about resumes. Show me your code." [16:03] He really didn't even look at it. [16:03] And he was exactly that abrupt. Stallman always went straight to the point, and was never concerned with being polite. To anyone. [16:03] So I showed him a version of Conway's Game Of Life, designed to run on other people's screens to surprise them. [16:04] It was a hack I'd done in college, to surprise my friends. [16:04] Back then it was a lot easier to get something to show up on someone else's screen, because security wasn't much of a thing. [16:04] It was implemented in a way that was more efficient than the obvious implementation, and somewhat counterintuitive. [16:04] He said, "Okay. You can work on a desktop interface." [16:04] And that was that! [16:04] So I got hired by the FSF to work on Project GNU's desktop interface. [16:04] I was straight out of college. I had no idea what a desktop interface for Unix should look like, or really even how to get started. [16:05] I don't think Stallman really knew what a desktop interface should be, either. [16:05] He just knew that desktops were popular, and any system designed for the general public to use should have one. [16:05] So I struggled with that. [16:05] But then one day, the guy who had been working on Emacs quit. [16:05] Stallman needed to find someone to take over from him, so he came walking down the hall, looked into the office, saw me, and said, "JimB, can you take over Emacs?" [16:05] I had no idea how to manage a program on the scale of Emacs! [16:05] But the president of my organization was asking me to do it, so I said, okay! [16:05] It took me a while to find my way around. [16:06] The way you think about big programs is very different from the way you think about little programs. [16:06] You can't take the time to understand everything you see. [16:06] I learned to assume that the people who have written the existing code are basically reasonable. [16:06] So I could make broad guesses about what was going on in the rest of the program, and they'd usually be mostly correct. [16:06] We programmers love to complain about code, but the truth is, that principle was a huge help! [16:06] (Thank goodness I didn't continue to work on the desktop! Miguel de Icaza didn't start GNOME until 1997, but he had lots more inspired ideas about how it should be than I did.) [16:07] So at the time, it was not at all clear that Free software was going to have much impact on the world. [16:07] Stallman was a great programmer, very fast. Emacs and GDB and GCC were cutting-edge, well above the competition. [16:07] But he was mediocre at running the organization, so people assumed Project GNU would just die off. [16:08] I had one person tell me that we were all "pissing in the wind". I don't know if that phrase is used outside the US, but the meaning is probably pretty clear [16:08] A waste of time, and not a good idea. [16:08] But many people told me it was futile to work on Free software, including people who understood business and economics much better than I did. [16:08] "How will you ever make any money?" [16:08] "You can't compete with big companies like Sun and SCO." [16:08] (Note that neither of those two companies exists any more. But they were big in 1990.) [16:09] At the time, I didn't really know how to answer those questions. [16:09] But I knew what I liked to do. Working with other programmers is a blast. [16:09] ! [16:09] And somehow, the FSF was indeed able to pay us, so I kept doing it. [16:09] next [16:10] jimblandy: when you say "fast programmer", how do you measure? what is your criteria or definition? [16:10] mbuf: It was a pretty subjective thing; he'd just get features done in much less time than we'd expect. [16:10] jimblandy: okay [16:10] The famous story about Stallman's speed actually predates GNU [16:11] The MIT AI lab had invented these specialized workstations call Lisp Machines. [16:11] They had a special instruction set and hardware designed to run Lisp really, really well. [16:11] And they had a fantastic graphical display, and an advanced user interface. [16:12] There were two companies spun off to commercialize this: Lisp Machines Incorporated, and Symbolics. [16:12] Symbolics decided that they were going to fork the AI lab's code, and not contribute changes back. [16:12] Stallman was furious, and so he resolved that whatever features Symbolics implemented, he would implement the same features and give them back to MIT and LMI [16:13] So that Symbolics could never get an advantage. [16:13] He was livid. [16:13] And for, I think, a few years, he actually managed to keep up! [16:13] jimblandy: thanks! [16:13] This was one guy re-implementing the same features as a whole small company of people. [16:13] So. That's that. [16:14] I think this story is in Kushal's history of Free software, too - sorry if you've heard it. [16:14] So, that's my story of going to work at the FSF. [16:14] ! [16:14] next [16:15] How was it like to work around with Stallman ? [16:15] ! [16:15] Well, have you ever wished that people would just say what they're thinking, and be more direct? [16:16] It always used to upset me when people would hide what they were actually thinking; surely, I thought, if we just put it out in the open, everything can be worked out much more efficiently. [16:16] How was it like when you guys were solving a problem and brainstorming? [16:16] Well, Stallman actually behaves that way, and it's terrible. [16:17] I really came to appreciate how valuable people being polite is. [16:17] ! [16:17] ! [16:17] Stallman would usually get an idea very quickly, and then rush ahead and start coding it up. He wasn't very collaborative. [16:18] Project GNU, or software freedom in general, is really the only thing he cares about at all. [16:18] He doesn't care about money, or fame. For years, he just lived in his office at MIT, because that was cheaper, and he didn't have to commute. [16:19] So if you are doing something that he sees as Good For Free Software, he is happy with you. Otherwise, he is furious with you. [16:19] I don't think his code is beautiful, though. [16:20] Since it's written so quickly, it can be pretty messy. [16:20] So if you've ever had to go in and clean up somebody else's code that was written in haste, you have a sense of what working with Stallman was like. [16:20] next [16:20] jimblandy: IIRC, you were the maintainer for GNU Emacs and released version 19. What was your biggest challenge as a maintainer then? [16:20] Getting enough sleep! [16:21] I would work for around 36 hours, and then sleep for 18, and then get up and do it again. [16:21] At the time, there were *no* tests for Emacs, other than just using it. [16:21] So there were plenty of bugs. [16:21] jimblandy: Oops! Sorry to hear that. [16:22] Sometimes in the process of debugging one bug, I'd run into another. So I'd start fixing that one, in order to get back to fixing the first one. [16:22] Once I was four bugs deep! [16:22] At that time, Eric Raymond was doing a survey of which Emacs Lisp packages people were using out there that ought to be incorporated into the official Emacs release. [16:23] He did a great job reorganizing Emacs's lisp library, and really modernized it. [16:23] So I got to work with him. [16:23] One fun thing, was, [16:23] we were making lots of beta releases of Emacs, to get feedback from testers. [16:23] The XEmacs fork had happened just earlier, and the XEmacs people got angry with us for making so many releases! [16:24] They claimed we were just trying to catch up with their version number. [16:24] (This was not true. We didn't care about the version number at all. But it was nice to tweak them a bit!) [16:24] XD [16:24] exactly [16:24] Reproducing redisplay bugs was hard. [16:25] Emacs had a very sophisticated algorithm for updating the screen as you edit the text. [16:25] And an Emacs command can do literally anything, so you can't really predict what part of the screen will be damaged. [16:25] ! [16:25] So it actually tracks what's on the screen now, figures out how it ought to look, and then does a diff. [16:26] Or it used to. Displays are much faster now, so a lot of that work is wasted on a modern machine. [16:26] next [16:26] So like you said, you guys were pissing in the wind:P And Stallman genius though he may be at programming, had no organisational skills. [16:26] So who built up the org? Who ensured you got paid? I’m assuming you weren’t spartan like RMS at the time and had mouths to feed [16:26] Who made sure RMS’ views actually went out and made waves? [16:26] What made you join the GNU project? [16:26] Okay, Jason's question first, then anwesha's [16:26] oops [16:26] s'okay [16:27] Stallman had some good help from his friends. The MIT professors Hal Abelson and Jerry Sussman got him nominated for a MacArthur fellowship, which was great publicity. [16:27] I have same question as jasonbraganza :) [16:27] Hw won? [16:27] I think Kushal's history mentions Bob Chassell, who became the FSF's treasurer. [16:28] Yes, he got the fellowship. $250000, no strings attached. [16:28] somehow I missed that part in his history! Holy smokes! [16:28] He used it for living expenses, and continued hacking as fast as he could. [16:28] Bob Chassell was a good activist, and Len Tower. [16:28] There were a lot of people who saw what was going on, and wanted to make it happen. [16:29] So as long as Stallman agreed, they could do fundraising and organize things like selling printed manuals and CD's and T-shirts. [16:29] But I think the real thing that persuaded people [16:29] was the quality of the software. [16:29] Things have moved on since then, but at the time, there was just nothing like Emacs, or GDB, or GCC. [16:30] There was certainly nothing free that even approached the quality or sophistication of GCC. [16:30] Stallman wrote GDB because the debugger he was using to develop Emacs, dbx, got overwhelmed by the size of Emacs and started crashing. [16:30] So he knocked out his own debugger that could handle it. [16:31] But it had command-line editing, and completion, and the ability to call functions in the program, which were all pretty advanced for the time. [16:31] These days, CLang+LLVM are stiff competition for GCC, but GCC is still doing quite well. [16:32] GDB is looking pretty creaky. [16:32] Emacs is considered kind of eccentric these days, but in 1990, using Emacs was a process of being constantly delighted by it doing some amazing thing for you automatically. It was a joy to use. [16:33] So I think the quality of the code was really what got people's attention. [16:33] Okay, so anwesha's question is sort of the next part of the talk [16:33] Why did I want to work on Free software? [16:34] Let me give some general principles, and then I'll talk about my personal motivations after that. [16:34] So here's a story a lot of people don't know. [16:34] Red Hat, the company, was not started by hackers. [16:34] It was actually started by a software salesman, Bob Young. [16:34] And Young was interested in Free software for what I think is, at heart, a political reason. [16:34] As a software salesman, he'd been going around talking to various companies using the software he sold. [16:34] And he noticed that business that use software had (and still have?) a really terrible relationship with their software vendors. [16:34] This is because, as a business, once you've incorporated a piece of software into your daily business practices, you're really dependent on it [16:35] It becomes essential to you. [16:35] And if the vendor doesn't want to fix the bug that you hit every day, what can you do? Plead? [16:35] Or if there's a simple addition to the software that would make everything easier, again, what can you do? [16:35] The software vendor has you in a very vulnerable position. [16:35] Businesses *hate* it. They hate these vendors passionately. [16:35] And you can see why! It's a terrible relationship. [16:35] You really have no power over things necessary to your daily bread. [16:35] You see where this is going. What if the software were Free? [16:36] Now the vendor has to earn their customers' business continuously. [16:36] If they don't take good care of you, you can hire someone to fix it or improve it. [16:36] If you've got the expertise, maybe you can even do it yourself. [16:36] Now, of course, it's still disruptive to stop doing business with one vendor and switch to another. [16:36] But it's no longer such a desperate situation. [16:36] If it were, competitors could make a good business just by taking over customers from the bad vendor. [16:36] The relationship between vendor and user can be very different when the software is Free. [16:36] And Bob Young wanted to build a company around this better kind of relationship. [16:36] It's true that other companies take Red Hat Enterprise Linux (RHEL) and turn around and rebrand it. [16:36] Oracle does this. [16:36] But many, many people would still rather get RHEL from the source, and Red Hat does a very nice business. [16:36] What's more political than changing the power relationship between vendors and customers? [16:37] Okay, here's something that might be more political than that. [16:37] Suppose you're able to get a job that involves regular contribution to a Free project that works out in the open. On GitHub, or something like that. [16:38] But really anything is fine, as long as the participation is public, and visible in the code, or on mailing lists, or something like that. [16:38] Now, if there is another company that is using that same Free project, you have expertise they need! [16:38] When you move from one job to another, you don't necessarily have to abandon the your skills. [16:38] I was hired at CodeSourcery exactly because of the GDB experience I gained at Red Hat. [16:38] And even if the new employer isn't looking for someone to do what you were doing before, you now have a public record of your abilities. [16:38] You have a public record that shows that you can write code that other people have reviewed and approved. [16:38] (This is assuming that the Free project is being run in the usual way, with pull requests, or patch review, or something like that.) [16:38] And you have proof that you can work with people, give and receive constructive criticism, and so on. [16:38] It's a very persuasive point for a prospective employer, to be able to simply say, "Well, if you want to see my work, go look." [16:39] (I mean, more realistically, you'll have to actually show them.) [16:39] So Free software also changes the relationship between employer and employee. [16:39] At a personal level, though, the reason I want to work in Free software is because I enjoy working in the open. [16:39] When I worked on Guile and Subversion, because the projects were reasonably well-known, fantastic people showed up from nowhere to contribute and work with me. [16:40] With Guile, I ended up collaborating with an amazingly talented group of people from all over the world. [16:40] There is no way I could have hired a team that good, in the traditional way. [16:40] They've gone on to do great things. [16:40] As a college student, Maciej Stachowiak was a co-maintainer of Guile. Now he leads Safari and WebKit development at Apple. [16:40] As a graduate student, Greg Badros helped a lot with Guile because he was using it in SCWM, an extensible X11 window manager. Now he's a Vice President at Facebook. [16:40] Being able to work with great people raises your own standards. [16:40] "If you're the smartest person in the room, you should find another room." [16:40] Of course, you can make business connections no matter where you work. [16:40] But I think working on a Free project that is attracting talent is casting a very broad net. [16:41] What personally motivates me is something being beautiful, or surprisingly helpful, or cool. I'm not very pragmatic. [16:42] And one of the things that's so essential to any craft is the community around it. [16:42] When people work alone, it's so hard for them to do something amazing. [16:42] Having rivals, or people you look up to, or an audience that can appreciate what you're trying to do, is a huge help. [16:42] So when you think about where great art or technology comes from, it always arises from a "scene". [16:43] Like the painting scene in Paris. [16:43] Or the musical scene in Vienna. [16:43] This is what Silicon Valley is, on its good days. (On its bad days, it's just a ridiculous place.) [16:43] When you write proprietary software, you isolate yourself within a single company. [16:43] Each company becomes its own selfc [16:44] self-contained cell, and there isn't cross-communication between the programmers on the inside, and other programmers elsewhere. [16:44] Free software isn't limited in that way, and so I think it has much better culture. [16:45] ! [16:45] Okay, I have one more part, which is "how to get paid to do Free software", but let's pause for questions [16:45] next [16:45] anwesha already asked, so [16:45] next [16:45] jimblandy: From your years of experience, which Free Software code do you consider well-written? [16:46] ! [16:46] Well, like all programmers, I hate almost all code. :D [16:46] These days, I think Clang and LLVM are pretty amazing. [16:47] They really have incredibly high standards, and the way LLVM can be put to so many different uses is a testament to having a flexible architecture. [16:47] jimblandy: RMS still wants to keep GCC front and backends monolithic. [16:47] Did you know that there are graphics drivers that actually use LLVM internally to compile the OpenGL shader programs down to the mysterious machine language that the graphics card runs? [16:48] mbuf: Yes, I think that is one of his worst mistakes. [16:48] I think the Rust standard library has a lot of beautiful code in it. [16:48] When we were writing the book, I ended up looking through it a lot for examples. [16:48] jimblandy: thanks! [16:49] next [16:49] How did you start your own company, RedBeans ? [16:49] ! [16:49] LOL, so, that's not actually a compnay [16:49] What happened was, Karl Fogel and I started Cyclic Software, to provide support for CVS, a version control system. [16:49] CVS was the first freely available, network-transparent version control system. [16:50] It was actually originally not a networked program at all, it just used files on your local disk, and assumed all the programmers were sharing a computer. [16:50] But Jim Kingdon, whom I mentioned earlier, when he left Project GNU, he went to go work for a startup in Silicon Valley [16:51] but he wanted to do it living in a commune in the hills of Virginia, and work as a remote employee. [16:51] So he did this amazing thing: [16:51] By sheer force of intellectual will, he ripped CVS apart into two halves: a client and a server. [16:51] and he even made the protocol optimized. [16:52] It used Kerberos to secure the connection to the server, so he could work in rural Virginia for a company in California. [16:52] But he never released it! [16:52] Karl and I heard about it, and I asked Jim for a copy of it. [16:52] He said, "Okay, here it is --- but DON'T ASK ME ANY QUESTIONS ABOUT IT." [16:52] So Karl and I started using it to colloborate on a project from two different universities [16:53] (We were writing a gene-editing mode for Emacs. For real!) [16:53] And we started using CVS to collaborate, and it was AMAZING. [16:53] This was long before Git or anything like that. People were literally mailing patches to each other when they needed to work together. [16:54] Or just copying .tar files back and forth and manually running diff and patch [16:54] Karl and I immediately realized that network-transparent CVS was a Big Deal [16:54] So we finished up our jobs at the university, and started Cyclic Software, selling CVS support. [16:54] We actually did okay. We never made a lot of money, but we had good customers and we kept them happy. [16:55] We ported CVS to Windows NT and OS/2, and implemented some new features. [16:55] So its a Virtual software now I got that. [16:55] But then Karl decided he wanted to move to China. (I was sort of astonished.) [16:55] So we sold Cyclic to Jim Kingdon. [16:55] Roll call: Farhaan Bukhsh [16:55] But that meant we had to change our email addresses. [16:56] So Red Bean was established with the sole goal of never having any monetary value at all. [16:56] It's an anti-company, so we can have a stable email. [16:56] But now it hosts the Subversion book, and we've managed to help out a bunch of other people over the years. [16:56] next [16:56] As a follow on to mbuf’s question in all these years, how often have you had to work with toxic people / teams? Ho do you deal with it? As a contributor? A maintainer? [16:56] (that was probably too much about Red Bean, I'll be more brief.) [16:57] Well, the reason I left Project GNU in the end was because we'd have these meetings, and Stallman and another engineer would have shouting matches. [16:57] Some people don't mind that, but I find it really upsetting. [16:58] So I went to work for Cygnus Solutions, which was a startup that was also doing Free software. [16:58] So, I coped with those people by leaving. :) [16:58] :) [16:59] As a maintainer, I follow the rule that the behavior you allow to happen is behavior that you've effectively approved of. [16:59] I don't need to fix the person. But I do need to say something. [16:59] And if people are being consistently rude, I just ask them to leave. [16:59] gotcha. Thank you :) [17:00] Here's the funny thing about people who are being ugly on a project: [17:00] they often *claim* that they're just trying to be direct, to get things done. [17:00] But if you actually take apart their messages, it is almost always the case that they could have said everything they need to say *in fewer words* without the abuse. [17:00] true that! [17:00] That is, the abuse is *slower* than being decent to people. [17:01] It's *additional work*, not efficiency. [17:01] I am 100% in favor of people being direct about technical issues. If you can't handle criticism of your work, Open Source is not for you. [17:02] But what is almost always going on is that there is an *added layer* of abuse directed at the person, that serves no legitimate technical purpose. [17:02] For a while I wanted to run a blog called "The Abuse Centrifuge" [17:02] which would take a post by Linus Torvalds, say [17:02] to seperate the gems from the chaff? [17:03] and actually separate it out into 1) technical content "this is a bad idea" 2) political content "This is not a good thing to spend time on, please don't write me again" and 3) the abuse "you loser" [17:03] and make it crystal clear that it's inefficient communication, not leadership [17:03] So. What you accept is what you approve... [17:03] next [17:03] jimblandy: Do you check e-mail with Emacs, and is your Emacs configuration setup available for reference? [17:04] jimblandy: [17:04] mbuf: Haha [17:04] I don't think my .emacs is probably of interest to anyone but me. [17:04] You should use prelude or something like that, that's meant to be for the general public. [17:04] jimblandy: okay [17:04] That's exactly designed for people who want The Maximal Experience. [17:05] I would say, If you are not using magit to work with Git, you are missing out! [17:05] jimblandy: true that! thanks! [17:05] magit is just an amazing piece of software [17:05] Okay, so, I'm over time, but I have one more topic set aside. Probably 10 minutes. Is that okay? [17:05] Please do tell! [17:05] "How to get paid to do Free software" [17:06] So, obviously, there's no single strategy that always works. [17:06] You always have to take your unique circumstances into account, and improvise. [17:06] In some situations, Free licenses seem to be the default, and you don't really have to do much other than suggest it. [17:06] When I worked for a biology lab on gene-editing software, the professor I was working for didn't care about the license at all. [17:06] "Sure, if you think other people will want it, whatever makes you happy." [17:06] I did have to negotiate and explain the situation to the University's intellectual property office. [17:06] (You'd think universities would be all about sharing knowledge as widely as possible, but...) [17:06] But having the professor's assent in advance made that a lot easier. [17:06] In other situations, people seem to presume that the software will be owned. [17:07] I should say 'proprietary', not 'owned'... [17:07] You have to at least try to persuade people. [17:07] Engineers are famous for being bad at negotiating. [17:07] (In America, at least. Maybe Indian engineers are better!) [17:07] We find negotiating salaries and asking for raises extremely awkward. [17:07] And I think suggesting a Free license is a similar situation: it can feel like you're intruding into somebody else's business, or asking for a favor. [17:07] But someone has to take the initiative. [17:07] When negotiating, of course you need to take the other party's situation into account. [17:07] But there's always more to the story than people present up front. [17:07] For example, Jason Orendorff and I are writing a book about Rust for O'Reilly. [17:07] Publishers make almost all their sales during the first few years after a book is published. [17:07] So Jason and I asked for a term in our contract saying that, if O'Reilly stops printing the book and on-line sales drop below a certain amount, the copyright reverts back to us, and we can publish it under a Free text license. [17:08] O'Reilly was willing to add that clause because they don't really care about owning stuff that few people are buying. [17:08] In other situations, there's some code that needs to be proprietary, but other code can be Free. [17:08] For example, the Ember.js JavaScript framework was placed under an Free license by a company that was making email handling software. [17:08] The email software was their real product; Ember.js was just the UI toolkit. [17:08] it was called sprout.js or something like that, originally, I don't remember [17:09] And if they could get contributions to the UI toolkit from outside the company, so much the better! [17:09] Django?! [17:09] that is my next example [17:09] Another example: the Django Python framework was created by people working for a newspaper. [17:09] The paper had no interest in going into the software business, so they were happy to free the web framework they used for their site. [17:09] So when negotiating, sympathize, but draw distinctions between what they ask for and what they really need. [17:10] I think there are a lot of ways to make money on software, selling licenses is just one (very profitable) model. [17:10] In the end, there have turned out to be any number of different business models that make sense. [17:10] When Red Hat first decided that they would sell subscriptions, as an engineer, that made no sense to me. [17:11] But it turns out that businesses really value knowing that there's someone who is going to stand behind the code, who's putting their name on the line. [17:11] So Red Hat brings in billions of dollars a year. [17:11] on stuff their users can just give away. [17:12] At Cyclic Software, we made our money by consulting. [17:12] That is a lot of hard work. I did the sales, too. I wasn't very good at it, and it took a lot of time. [17:13] Cygnus Solutions did contract work: companies that were making new processors would hire Cygnus to port GCC, GDB, GAS, etc. to their architecture. [17:13] This is how GCC got support for hundreds of random obscure processor architectures. [17:14] I always wondered! [17:14] Cygnus optimized that workflow really well, so that they could get a new processor supported by the GNU toolchain much more efficiently than anyone else [17:14] But of course they could still charge full price for the work. Price is not cost! [17:14] CodeSourcery also did contract work. They had a long-standing relationship with ARM. [17:15] jimblandy, I have used their GCC for Symbian OS :) [17:15] And of course ARM had no problem with the code being free; that's what ARM wanted. [17:15] bhavin192: I hope it worked well for you. [17:16] Okay, so that's what I'd prepared on that topic. Any questions? [17:16] ! [17:16] next [17:16] A kinda sorta personal question [17:16] At least twice in your talk you started with “I had no idea how …” How do you (or rather how should I) get the cojones to say yes to, and then tackle something you have no idea about? :P [17:17] Well... [17:17] I think I'm a little boastful, as a person [17:17] hee [17:17] that is a fault [17:18] But I think you can often leverage a fault into an advantage if you approach it with some respect [17:18] So I make a habit of putting myself into situations where I've promised something that seems plausible [17:18] and then I feel *very* obligated to make it turn out well [17:18] aaah! so I’m not alone XD [17:18] I guess the trick is being realistic and never promising to do something that actually can't be done [17:19] Again, I think there are healthier ways to do it, but ... I don't do it that way [17:19] Thank you :) [17:19] The other thing, though, is that doing anything worthhile *always* makes you panic. [17:19] yes! [17:19] Basically, when you're *actually* learning something or thinking hard, it is *inevitably* stressful. [17:20] yes! [17:20] ! [17:20] If you are relaxed, you're probably not doing the things that make you improve. [17:20] So a certain amount of stress is really necessary and appropriate. [17:21] thank you again :) [17:21] Sure thing! [17:21] next [17:21] You were discussing about the licensing issue what is your take on the reactjs licensing BSD+ third party [17:21] ? [17:21] I don't know the details of that. Can you outline what happened? [17:22] Generally, I actually like the aspect of the GNU licenses that people call "viral": that if you incorporate GPL'd code into something, the containing project needs to be GPL'd too. [17:23] Oh, patents... oh dear. [17:23] thanks mbuf for the help :) [17:23] jimblandy, yup :P [17:23] I'm not opposed to patents *in principle*, on the whole. (I have friends who are, though.) [17:24] But it's important to recognize that patents are a *tactic to encourage development*, not an articulation of some innate right to control ideas. [17:24] There's a great quote from Thomas Jefferson, who designed the US's original patent system, [17:25] he says something about how ideas are not naturally like property; if I let someone else light his candle with mine, my candle isn't dimmed [17:25] So, the question to ask is, are patents encouraging development? [17:26] And looking at the facts on the ground, I think it's extremely clear that software, as an art and as an industry, does not benefit from patents. [17:26] Software changes too quickly; ideas are too common, and too often independently reinvented; and there's very little capital cost required to publish. [17:27] If you want to publish an app for Android, you don't need a million dollars to build a factory first. [17:27] Stallman has a great line he uses sometimes: [17:28] "If it were legal to just set up a tollbooth in the middle of the street and start charging people for passing by, someone would definitely do it." [17:28] Rent-seeking behavior is completely normal and ubiquitous. [17:28] Just because some people would like to use patents doesn't mean they're helpful. [17:29] I loved the Thomas Jefferson quote :) [17:29] I did some consulting once for ATI, the graphics card company that AMD bought later [17:29] fhackdroid: Yeah, I'll see if I can find the original [17:29] ATI, of course, has tons of patents. [17:29] But I talked with the engineer I was working with there [17:30] He who receives an idea from me, receives instruction himself without lessening mine; as he who lights his taper at mine, receives light without darkening me. [17:30] That's the one! [17:30] Its amazing [17:30] And he was of the strong opinion that, in the time you have to spend drafting the patent, filing it, going thruogh all the bureaucracy [17:31] you might as well have kept hacking and invented something altogether new. [17:31] The way to win in software is to be the place where things are invented, not forcing other people to license your old inventions. [17:31] it is beautiful, he kind of defines the whole knowledge sharing with the candle analogy :) [17:32] Again, for silicon, or chemistry, or things that require big capital investments, I'm not so sure that patents are terrible. [17:32] In medieval times, everyone kept their stuff secret. [17:32] For example, the mathematician who figured out how to solve cubics almost took the secret to his grave! [17:32] He only told his student on his death bed. [17:33] Because those days, one way mathematicians made money was by winning challenges about who could solve what. [17:33] (I can source this, I'm not making it up) [17:33] So there was a huge incentive to keep things secret. [17:33] So something that encourages people to publish might make sense in a context like that. [17:34] But we have no problem encouraging people to publish software. It's just not an issue. [17:34] It is really late, so I think I should wrap up. [17:34] But thank you very much for inviting me! [17:34] jimblandy, Thanks a lot, this session is a gold mine. [17:35] I'm very glad to hear it. I hope so! [17:35] True that ! [17:35] jimblandy, If you ever find some free time some day in the coming months, please come back once agian :) [17:35] thank you much for sharing your experience and wisdom! [17:35] * again. [17:35] have a lovely day [17:35] jimblandy: thanks for sharing your know-how and for your time! [17:35] You too! [17:35] Ending the session. ----END CLASS----