1 00:00:00,000 --> 00:00:04,175 Welcome to Software Freedom Day, 2 00:00:04,425 --> 00:00:08,099 which is a part of the free software movement, 3 00:00:08,349 --> 00:00:11,945 the campaign for software that respects user's freedom. 4 00:00:12,195 --> 00:00:15,523 With software there are just two possibilities, 5 00:00:15,773 --> 00:00:22,251 either the users control the program or the program controls the users. 6 00:00:22,501 --> 00:00:27,865 The first case we call free software, free as in freedom, 7 00:00:28,115 --> 00:00:30,132 so that would be “azaad” (Persian: آزاد) 8 00:00:30,382 --> 00:00:35,739 Because in order for the users to have control of the program 9 00:00:35,989 --> 00:00:44,514 they need certain specific freedoms. There are 4 essential freedoms that make the criteria for free software: 10 00:00:44,764 --> 00:00:49,152 freedom zero is the freedom to run the program as you wish; 11 00:00:49,402 --> 00:00:55,045 freedom 1 is the freedom to study the source code of the program and 12 00:00:55,295 --> 00:00:59,064 change it so it does your computing the way you wish; 13 00:00:59,314 --> 00:01:03,113 freedom 2 is the freedom to help others 14 00:01:03,363 --> 00:01:07,863 that's the freedom to make and distribute exact copies 15 00:01:07,900 --> 00:01:11,446 of the program when you wish and freedom 3 16 00:01:11,696 --> 00:01:14,446 is the freedom to contribute to your community, 17 00:01:14,696 --> 00:01:17,611 that's the freedom to make and distribute copies of 18 00:01:17,861 --> 00:01:20,928 your modified versions when you wish. 19 00:01:21,178 --> 00:01:23,709 Freedom zero and one 20 00:01:23,959 --> 00:01:28,459 give users individual control, one user at a time, 21 00:01:28,709 --> 00:01:31,209 because through these freedoms 22 00:01:31,459 --> 00:01:34,164 you can make the program do what you wanted to do 23 00:01:34,164 --> 00:01:35,647 and then use it the way you wish. 24 00:01:35,897 --> 00:01:39,147 But individual freedom is not enough; 25 00:01:39,397 --> 00:01:43,910 first of all, most computer users don't know how to program! 26 00:01:44,160 --> 00:01:47,840 They don't have the skills to exercise freedom one, 27 00:01:48,090 --> 00:01:50,540 but even if you know how to program 28 00:01:50,790 --> 00:01:53,239 there is still so much software in the world 29 00:01:53,489 --> 00:01:56,989 you couldn't possibly study and master all that software; 30 00:01:56,992 --> 00:02:00,540 you couldn't possibly write all the changes you might want, 31 00:02:00,777 --> 00:02:03,340 that's more that one human being can do, 32 00:02:03,590 --> 00:02:06,463 so we need collective control as well. 33 00:02:06,713 --> 00:02:09,806 Collective control means that any group of people 34 00:02:09,806 --> 00:02:15,266 can work together and exercise control over their version of the program 35 00:02:15,266 --> 00:02:18,682 and it's up to you which group you participate in. 36 00:02:18,932 --> 00:02:25,309 So these freedoms two and three to redistribute exact copies 37 00:02:25,559 --> 00:02:27,184 and to distribute modified versions, 38 00:02:27,434 --> 00:02:30,150 they give us collective control. 39 00:02:30,400 --> 00:02:36,985 Of course the freedoms only give this result 40 00:02:37,235 --> 00:02:39,107 if they're adequate; 41 00:02:39,107 --> 00:02:44,510 in order to be adequate these freedoms have to apply to all areas of life 42 00:02:44,760 --> 00:02:46,238 including business by the way. 43 00:02:46,610 --> 00:02:48,981 Because business is a normal part of life 44 00:02:48,981 --> 00:02:53,419 and businessers should control their computing too. 45 00:02:53,419 --> 00:02:59,021 However note that of these four things 46 00:02:59,021 --> 00:03:00,333 that you're free to do, 47 00:03:00,612 --> 00:03:02,138 you don't have to do them, 48 00:03:02,138 --> 00:03:04,742 they're not obligatory they're not required. 49 00:03:05,322 --> 00:03:08,849 So for instance for freedom zero you're free 50 00:03:08,849 --> 00:03:10,445 to run the program as you wish 51 00:03:10,445 --> 00:03:12,532 but you're not required to, 52 00:03:12,532 --> 00:03:15,559 you could decide not to run the program, 53 00:03:15,559 --> 00:03:18,842 with freedom one you're free to study 54 00:03:18,842 --> 00:03:20,034 and change the source code 55 00:03:20,034 --> 00:03:21,417 but it's not required, 56 00:03:21,417 --> 00:03:23,107 you can use the program 57 00:03:23,107 --> 00:03:24,839 exactly the way you got it. 58 00:03:25,233 --> 00:03:28,534 With freedom two you're free to make copies 59 00:03:28,534 --> 00:03:29,985 and distribute them to others 60 00:03:29,985 --> 00:03:31,799 you're free to give them away, 61 00:03:31,799 --> 00:03:32,928 you're free to sell them 62 00:03:32,928 --> 00:03:34,452 but you don't have to. 63 00:03:35,034 --> 00:03:37,787 In any given occasion it's up to you 64 00:03:37,787 --> 00:03:39,422 whether to distribute the copy. 65 00:03:40,019 --> 00:03:42,104 And likewise with freedom three 66 00:03:42,104 --> 00:03:44,126 if you have made a modified version 67 00:03:44,126 --> 00:03:46,105 you're free to distribute copies of that 68 00:03:46,105 --> 00:03:47,681 but it's not required 69 00:03:47,681 --> 00:03:50,578 you can do that when you wish. 70 00:03:51,042 --> 00:03:54,743 But what happens if the program 71 00:03:54,743 --> 00:03:57,590 doesn't come with all of these freedoms? 72 00:03:57,590 --> 00:04:00,714 Then it's proprietary software, 73 00:04:00,714 --> 00:04:02,297 non-free software, 74 00:04:02,297 --> 00:04:05,227 user-subjugating software; 75 00:04:05,227 --> 00:04:08,513 because if the users don't control the program 76 00:04:08,513 --> 00:04:10,945 then the program controls the users. 77 00:04:10,945 --> 00:04:14,939 And the owner controls the program, 78 00:04:15,403 --> 00:04:17,113 and through the program 79 00:04:17,113 --> 00:04:21,170 the owner exercises unjust power 80 00:04:21,170 --> 00:04:23,341 over the program's users. 81 00:04:23,341 --> 00:04:26,192 So every non-free program 82 00:04:26,192 --> 00:04:30,249 generates a system of unjust power 83 00:04:30,249 --> 00:04:34,800 and that's why non-free software should not exist. 84 00:04:34,800 --> 00:04:38,510 The aim of the free software movement 85 00:04:38,510 --> 00:04:40,843 is all software should be free 86 00:04:40,843 --> 00:04:45,566 so that all the users of software can be free. 87 00:04:46,169 --> 00:04:50,552 Our goal is to first escape from non-free software 88 00:04:50,552 --> 00:04:53,588 and then help everyone else escape 89 00:04:53,588 --> 00:04:57,640 until all users of software are free. 90 00:04:58,283 --> 00:05:02,145 The most important field for 91 00:05:02,145 --> 00:05:04,760 moving to free software is education. 92 00:05:05,314 --> 00:05:10,034 And this is because educational activities 93 00:05:10,034 --> 00:05:13,122 which includes all schools of all levels 94 00:05:13,122 --> 00:05:17,879 have a mission, a social mission 95 00:05:17,879 --> 00:05:20,895 and this is to educate good citizens 96 00:05:20,895 --> 00:05:25,635 of a strong capable cooperating independent 97 00:05:25,635 --> 00:05:27,202 and free society. 98 00:05:28,293 --> 00:05:31,463 And in the field of computing 99 00:05:31,463 --> 00:05:35,828 this means graduating people who are skilled 100 00:05:35,828 --> 00:05:39,900 in using free software or have become accustomed 101 00:05:39,900 --> 00:05:41,074 to using free software 102 00:05:41,074 --> 00:05:46,376 and thus are ready to participate enough free society 103 00:05:46,376 --> 00:05:47,461 in their computing. 104 00:05:48,580 --> 00:05:51,917 Teaching a non-free program is simply wrong 105 00:05:51,917 --> 00:05:55,069 because that means implanting dependence. 106 00:05:55,069 --> 00:05:58,180 Schools must never do that. 107 00:05:58,180 --> 00:06:02,731 But there are more reasons why educational activities 108 00:06:02,731 --> 00:06:05,170 must teach exclusively free software. 109 00:06:05,170 --> 00:06:08,333 For instance there is the education 110 00:06:08,333 --> 00:06:10,333 of the best programmers. 111 00:06:10,333 --> 00:06:13,584 Some people are natural born programmers, 112 00:06:13,584 --> 00:06:15,935 at the age of 10 to 13 113 00:06:15,935 --> 00:06:17,941 they become fascinating with programming 114 00:06:17,941 --> 00:06:22,643 and they want to learn how everything is done. 115 00:06:22,643 --> 00:06:24,384 If they use a program 116 00:06:24,384 --> 00:06:27,124 they want to know “how does it do this?” 117 00:06:27,124 --> 00:06:29,847 or when the student asks the teacher 118 00:06:29,847 --> 00:06:31,053 “how does it do this?” 119 00:06:31,053 --> 00:06:32,762 if the program is proprietary 120 00:06:32,762 --> 00:06:34,229 the teacher can only respond 121 00:06:34,229 --> 00:06:38,444 “I'm sorry, there is no way we can find out, it's a secret” 122 00:06:38,444 --> 00:06:41,541 which means education is not allowed. 123 00:06:41,541 --> 00:06:44,716 A proprietary program 124 00:06:44,716 --> 00:06:48,661 is knowledge withheld from the student, 125 00:06:48,661 --> 00:06:52,181 it's the enemy of the spirit of education 126 00:06:52,181 --> 00:06:55,818 and therefore must never be tolerated in a school. 127 00:06:55,818 --> 00:07:00,181 But if the program is free, the teacher can explain 128 00:07:00,181 --> 00:07:03,190 whatever he knows and then give the student 129 00:07:03,190 --> 00:07:08,180 a copy of the source code of the program saying read this 130 00:07:08,180 --> 00:07:10,101 and you'll understand everything. 131 00:07:10,101 --> 00:07:13,046 And those students will read it 132 00:07:13,046 --> 00:07:14,416 because they're fascinated 133 00:07:14,416 --> 00:07:16,583 and they yearn to understand everything. 134 00:07:17,511 --> 00:07:19,320 And the teacher can say to them: 135 00:07:19,320 --> 00:07:21,402 if you come across any point 136 00:07:21,402 --> 00:07:23,000 you can't figure out by yourself 137 00:07:23,000 --> 00:07:26,158 show it to me and we can figure it out together. 138 00:07:26,158 --> 00:07:31,835 And this way our natural-born-programmer learns a vital lesson: 139 00:07:31,835 --> 00:07:34,926 that piece of code is not clear, 140 00:07:34,926 --> 00:07:37,367 you shouldn't write it that way, 141 00:07:37,367 --> 00:07:40,244 that's an example of the way not to write code. 142 00:07:40,244 --> 00:07:44,200 And our natural-born-programmers need to learn that, 143 00:07:44,200 --> 00:07:47,482 because they need to develop into good programmers. 144 00:07:47,482 --> 00:07:49,819 And the way you learn to be a good programmer 145 00:07:49,819 --> 00:07:52,948 is to learn all the things that are not clear 146 00:07:52,948 --> 00:07:55,363 so that you won't write the code that way, 147 00:07:55,363 --> 00:07:57,447 and that way your code will be clear. 148 00:07:57,447 --> 00:08:00,782 How do you learn to write a good clear code? 149 00:08:00,782 --> 00:08:03,783 By reading lots of code and writing lots of code. 150 00:08:03,783 --> 00:08:06,488 Only free software gives the opportunity 151 00:08:06,488 --> 00:08:09,968 to read lots of code of large programs 152 00:08:09,968 --> 00:08:11,071 that we really use. 153 00:08:12,032 --> 00:08:14,423 Then you have to write lots of code, 154 00:08:14,423 --> 00:08:18,351 which means writing codes in large programs. 155 00:08:18,351 --> 00:08:22,783 But to do that you have to start small, 156 00:08:22,783 --> 00:08:26,556 which means you have to write small changes 157 00:08:26,556 --> 00:08:28,149 in large programs, 158 00:08:28,149 --> 00:08:31,365 that's how you start writing code for large programs. 159 00:08:31,365 --> 00:08:33,531 And once you get better 160 00:08:33,531 --> 00:08:35,002 you could write large changes 161 00:08:35,165 --> 00:08:36,782 and then maybe you could write 162 00:08:36,782 --> 00:08:38,624 an entire new large program 163 00:08:38,624 --> 00:08:42,003 starting from zero, although that's a rare thing, 164 00:08:42,003 --> 00:08:43,430 more often you are working 165 00:08:43,430 --> 00:08:45,823 on improving an existing large program. 166 00:08:45,823 --> 00:08:49,465 But only free software gives you the opportunity 167 00:08:49,465 --> 00:08:52,037 to write small or large changes 168 00:08:52,037 --> 00:08:54,989 in large programs that we really use. 169 00:08:54,989 --> 00:08:58,347 Any school can offer this opportunity 170 00:08:58,347 --> 00:09:01,203 but only if it's a free software school. 171 00:09:01,203 --> 00:09:05,499 However there's an even deeper reason 172 00:09:05,499 --> 00:09:08,590 for the sake of moral education, 173 00:09:08,590 --> 00:09:10,505 education in citizenship. 174 00:09:10,505 --> 00:09:13,344 It's not enough for schools 175 00:09:13,344 --> 00:09:16,247 to teach facts and methods. 176 00:09:16,247 --> 00:09:20,943 Schools have to teach the spirit of cooperation, 177 00:09:20,943 --> 00:09:22,930 the spirit of helping other people 178 00:09:22,930 --> 00:09:24,472 and the habit of doing so. 179 00:09:24,472 --> 00:09:29,723 So every class must have the following rule: 180 00:09:29,723 --> 00:09:33,258 “students, if you bring a program to class 181 00:09:33,258 --> 00:09:35,757 you may not keep it for yourself, 182 00:09:35,757 --> 00:09:38,449 you must share copies with everyone 183 00:09:38,449 --> 00:09:41,664 in the class including the source code 184 00:09:41,664 --> 00:09:44,453 in case there is someone here who wants to learn 185 00:09:44,453 --> 00:09:46,848 because this class in a place 186 00:09:46,848 --> 00:09:48,903 where we share our knowledge, 187 00:09:48,903 --> 00:09:52,252 therefore bringing non-free software 188 00:09:52,252 --> 00:09:54,232 to class is not permitted” 189 00:09:54,232 --> 00:09:58,649 the school must set a good example 190 00:09:58,649 --> 00:10:01,023 which means following it's own rule. 191 00:10:01,023 --> 00:10:04,480 It must bring only free software to class 192 00:10:04,480 --> 00:10:08,178 and share copies with everyone in the class. 193 00:10:08,178 --> 00:10:12,230 If you have any connection with a school, 194 00:10:12,230 --> 00:10:13,960 it's your mission, 195 00:10:13,960 --> 00:10:18,743 your responsibility, to campaign for that school 196 00:10:18,743 --> 00:10:21,135 to move to free software. 197 00:10:21,135 --> 00:10:26,443 Now, our community has been weakened, sad 198 00:10:26,443 --> 00:10:28,426 to say, in a number of ways. 199 00:10:28,426 --> 00:10:31,941 Because most of the users of 200 00:10:31,941 --> 00:10:34,495 the GNU+Linux operating system 201 00:10:34,495 --> 00:10:36,650 don't think about the issue 202 00:10:36,650 --> 00:10:37,920 and terms of freedom 203 00:10:37,920 --> 00:10:41,449 so they have been willing to throw away 204 00:10:41,449 --> 00:10:44,314 their freedom for mere convenience. 205 00:10:44,314 --> 00:10:46,880 You'll be fine for instance 206 00:10:46,880 --> 00:10:52,218 that there are over a thousand different distributions 207 00:10:52,218 --> 00:10:55,593 of the GNU+Linux system, 208 00:10:55,593 --> 00:10:58,780 most of them refer to the system 209 00:10:58,780 --> 00:11:00,458 as "Linux", which is not true, 210 00:11:00,458 --> 00:11:02,365 but more importantly 211 00:11:02,365 --> 00:11:07,235 most of them contain non-free programs as well 212 00:11:07,235 --> 00:11:11,029 and by offering the users non-free programs 213 00:11:11,029 --> 00:11:13,757 what is the message they convey? 214 00:11:13,757 --> 00:11:18,668 Their message is "convenience above freedom" 215 00:11:18,668 --> 00:11:22,282 and that message is going to lead people 216 00:11:22,282 --> 00:11:24,142 to surrender and lose their freedom, 217 00:11:24,142 --> 00:11:27,265 because the only way you keep your freedom 218 00:11:27,265 --> 00:11:29,599 is by fighting for it. 219 00:11:29,599 --> 00:11:36,280 So if you want to reach freedom is your computing 220 00:11:36,280 --> 00:11:43,072 you need to install a GNU/Linux distribution 221 00:11:43,072 --> 00:11:45,205 which is entirely free software 222 00:11:45,205 --> 00:11:47,078 and there are a few of them. 223 00:11:47,078 --> 00:11:52,375 You can find the list in gnu.org/distros