A place to cache linked articles (think custom and personal wayback machine)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 25KB

5 jaren geleden
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang=fr>
  4. <!-- Has to be within the first 1024 bytes, hence before the <title>
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset=utf-8>
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name=viewport content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>Challenges in Maintaining A Big Tent for Software Freedom (archive) — David Larlet</title>
  13. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  14. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons/apple-touch-icon.png">
  15. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons/favicon-32x32.png">
  16. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons/favicon-16x16.png">
  17. <link rel="manifest" href="/manifest.json">
  18. <link rel="mask-icon" href="/static/david/icons/safari-pinned-tab.svg" color="#5bbad5">
  19. <link rel="shortcut icon" href="/static/david/icons/favicon.ico">
  20. <meta name="apple-mobile-web-app-title" content="David Larlet">
  21. <meta name="application-name" content="David Larlet">
  22. <meta name="msapplication-TileColor" content="#da532c">
  23. <meta name="msapplication-config" content="/static/david/icons/browserconfig.xml">
  24. <meta name="theme-color" content="#f0f0ea">
  25. <!-- That good ol' feed, subscribe :p. -->
  26. <link rel=alternate type="application/atom+xml" title=Feed href="/david/log/">
  27. <meta name="robots" content="noindex, nofollow">
  28. <meta content="origin-when-cross-origin" name="referrer">
  29. <!-- Canonical URL for SEO purposes -->
  30. <link rel="canonical" href="http://ebb.org/bkuhn/blog/2018/08/30/on-social-justice-software-licensing.html">
  31. <style>
  32. /* http://meyerweb.com/eric/tools/css/reset/ */
  33. html, body, div, span,
  34. h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  35. a, abbr, address, big, cite, code,
  36. del, dfn, em, img, ins,
  37. small, strike, strong, tt, var,
  38. dl, dt, dd, ol, ul, li,
  39. fieldset, form, label, legend,
  40. table, caption, tbody, tfoot, thead, tr, th, td,
  41. article, aside, canvas, details, embed,
  42. figure, figcaption, footer, header, hgroup,
  43. menu, nav, output, ruby, section, summary,
  44. time, mark, audio, video {
  45. margin: 0;
  46. padding: 0;
  47. border: 0;
  48. font-size: 100%;
  49. font: inherit;
  50. vertical-align: baseline;
  51. }
  52. /* HTML5 display-role reset for older browsers */
  53. article, aside, details, figcaption, figure,
  54. footer, header, hgroup, menu, nav, section { display: block; }
  55. body { line-height: 1; }
  56. blockquote, q { quotes: none; }
  57. blockquote:before, blockquote:after,
  58. q:before, q:after {
  59. content: '';
  60. content: none;
  61. }
  62. table {
  63. border-collapse: collapse;
  64. border-spacing: 0;
  65. }
  66. /* http://practicaltypography.com/equity.html */
  67. /* https://calendar.perfplanet.com/2016/no-font-face-bulletproof-syntax/ */
  68. /* https://www.filamentgroup.com/lab/js-web-fonts.html */
  69. @font-face {
  70. font-family: 'EquityTextB';
  71. src: url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff2') format('woff2'),
  72. url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff') format('woff');
  73. font-weight: 300;
  74. font-style: normal;
  75. font-display: swap;
  76. }
  77. @font-face {
  78. font-family: 'EquityTextB';
  79. src: url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff2') format('woff2'),
  80. url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff') format('woff');
  81. font-weight: 300;
  82. font-style: italic;
  83. font-display: swap;
  84. }
  85. @font-face {
  86. font-family: 'EquityTextB';
  87. src: url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff2') format('woff2'),
  88. url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff') format('woff');
  89. font-weight: 700;
  90. font-style: normal;
  91. font-display: swap;
  92. }
  93. @font-face {
  94. font-family: 'ConcourseT3';
  95. src: url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff2') format('woff2'),
  96. url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff') format('woff');
  97. font-weight: 300;
  98. font-style: normal;
  99. font-display: swap;
  100. }
  101. /* http://practice.typekit.com/lesson/caring-about-opentype-features/ */
  102. body {
  103. /* http://www.cssfontstack.com/ Palatino 99% Win 86% Mac */
  104. font-family: "EquityTextB", Palatino, serif;
  105. background-color: #f0f0ea;
  106. color: #07486c;
  107. font-kerning: normal;
  108. -moz-osx-font-smoothing: grayscale;
  109. -webkit-font-smoothing: subpixel-antialiased;
  110. text-rendering: optimizeLegibility;
  111. font-variant-ligatures: common-ligatures contextual;
  112. font-feature-settings: "kern", "liga", "clig", "calt";
  113. }
  114. pre, code, kbd, samp, var, tt {
  115. font-family: 'TriplicateT4c', monospace;
  116. }
  117. em {
  118. font-style: italic;
  119. color: #323a45;
  120. }
  121. strong {
  122. font-weight: bold;
  123. color: black;
  124. }
  125. nav {
  126. background-color: #323a45;
  127. color: #f0f0ea;
  128. display: flex;
  129. justify-content: space-around;
  130. padding: 1rem .5rem;
  131. }
  132. nav:last-child {
  133. border-bottom: 1vh solid #2d7474;
  134. }
  135. nav a {
  136. color: #f0f0ea;
  137. }
  138. nav abbr {
  139. border-bottom: 1px dotted white;
  140. }
  141. h1 {
  142. border-top: 1vh solid #2d7474;
  143. border-bottom: .2vh dotted #2d7474;
  144. background-color: #e3e1e1;
  145. color: #323a45;
  146. text-align: center;
  147. padding: 5rem 0 4rem 0;
  148. width: 100%;
  149. font-family: 'ConcourseT3';
  150. display: flex;
  151. flex-direction: column;
  152. }
  153. h1.single {
  154. padding-bottom: 10rem;
  155. }
  156. h1 span {
  157. position: absolute;
  158. top: 1vh;
  159. left: 20%;
  160. line-height: 0;
  161. }
  162. h1 span a {
  163. line-height: 1.7;
  164. padding: 1rem 1.2rem .6rem 1.2rem;
  165. border-radius: 0 0 6% 6%;
  166. background: #2d7474;
  167. font-size: 1.3rem;
  168. color: white;
  169. text-decoration: none;
  170. }
  171. h2 {
  172. margin: 4rem 0 1rem;
  173. border-top: .2vh solid #2d7474;
  174. padding-top: 1vh;
  175. }
  176. h3 {
  177. text-align: center;
  178. margin: 3rem 0 .75em;
  179. }
  180. hr {
  181. height: .4rem;
  182. width: .4rem;
  183. border-radius: .4rem;
  184. background: #07486c;
  185. margin: 2.5rem auto;
  186. }
  187. time {
  188. display: bloc;
  189. margin-left: 0 !important;
  190. }
  191. ul, ol {
  192. margin: 2rem;
  193. }
  194. ul {
  195. list-style-type: square;
  196. }
  197. a {
  198. text-decoration-skip-ink: auto;
  199. text-decoration-thickness: 0.05em;
  200. text-underline-offset: 0.09em;
  201. }
  202. article {
  203. max-width: 50rem;
  204. display: flex;
  205. flex-direction: column;
  206. margin: 2rem auto;
  207. }
  208. article.single {
  209. border-top: .2vh dotted #2d7474;
  210. margin: -6rem auto 1rem auto;
  211. background: #f0f0ea;
  212. padding: 2rem;
  213. }
  214. article p:last-child {
  215. margin-bottom: 1rem;
  216. }
  217. p {
  218. padding: 0 .5rem;
  219. margin-left: 3rem;
  220. }
  221. p + p,
  222. figure + p {
  223. margin-top: 2rem;
  224. }
  225. blockquote {
  226. background-color: #e3e1e1;
  227. border-left: .5vw solid #2d7474;
  228. display: flex;
  229. flex-direction: column;
  230. align-items: center;
  231. padding: 1rem;
  232. margin: 1.5rem;
  233. }
  234. blockquote cite {
  235. font-style: italic;
  236. }
  237. blockquote p {
  238. margin-left: 0;
  239. }
  240. figure {
  241. border-top: .2vh solid #2d7474;
  242. background-color: #e3e1e1;
  243. text-align: center;
  244. padding: 1.5rem 0;
  245. margin: 1rem 0 0;
  246. font-size: 1.5rem;
  247. width: 100%;
  248. }
  249. figure img {
  250. max-width: 250px;
  251. max-height: 250px;
  252. border: .5vw solid #323a45;
  253. padding: 1px;
  254. }
  255. figcaption {
  256. padding: 1rem;
  257. line-height: 1.4;
  258. }
  259. aside {
  260. display: flex;
  261. flex-direction: column;
  262. background-color: #e3e1e1;
  263. padding: 1rem 0;
  264. border-bottom: .2vh solid #07486c;
  265. }
  266. aside p {
  267. max-width: 50rem;
  268. margin: 0 auto;
  269. }
  270. /* https://fvsch.com/code/css-locks/ */
  271. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  272. font-size: 1rem;
  273. line-height: calc( 1.5em + 0.2 * 1rem );
  274. }
  275. h1 {
  276. font-size: 1.9rem;
  277. line-height: calc( 1.2em + 0.2 * 1rem );
  278. }
  279. h2 {
  280. font-size: 1.6rem;
  281. line-height: calc( 1.3em + 0.2 * 1rem );
  282. }
  283. h3 {
  284. font-size: 1.35rem;
  285. line-height: calc( 1.4em + 0.2 * 1rem );
  286. }
  287. @media (min-width: 20em) {
  288. /* The (100vw - 20rem) / (50 - 20) part
  289. resolves to 0-1rem, depending on the
  290. viewport width (between 20em and 50em). */
  291. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  292. font-size: calc( 1rem + .6 * (100vw - 20rem) / (50 - 20) );
  293. line-height: calc( 1.5em + 0.2 * (100vw - 50rem) / (20 - 50) );
  294. margin-left: 0;
  295. }
  296. h1 {
  297. font-size: calc( 1.9rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  298. line-height: calc( 1.2em + 0.2 * (100vw - 50rem) / (20 - 50) );
  299. }
  300. h2 {
  301. font-size: calc( 1.5rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  302. line-height: calc( 1.3em + 0.2 * (100vw - 50rem) / (20 - 50) );
  303. }
  304. h3 {
  305. font-size: calc( 1.35rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  306. line-height: calc( 1.4em + 0.2 * (100vw - 50rem) / (20 - 50) );
  307. }
  308. }
  309. @media (min-width: 50em) {
  310. /* The right part of the addition *must* be a
  311. rem value. In this example we *could* change
  312. the whole declaration to font-size:2.5rem,
  313. but if our baseline value was not expressed
  314. in rem we would have to use calc. */
  315. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  316. font-size: calc( 1rem + .6 * 1rem );
  317. line-height: 1.5em;
  318. }
  319. p, li, pre, details {
  320. margin-left: 3rem;
  321. }
  322. h1 {
  323. font-size: calc( 1.9rem + 1.5 * 1rem );
  324. line-height: 1.2em;
  325. }
  326. h2 {
  327. font-size: calc( 1.5rem + 1.5 * 1rem );
  328. line-height: 1.3em;
  329. }
  330. h3 {
  331. font-size: calc( 1.35rem + 1.5 * 1rem );
  332. line-height: 1.4em;
  333. }
  334. figure img {
  335. max-width: 500px;
  336. max-height: 500px;
  337. }
  338. }
  339. figure.unsquared {
  340. margin-bottom: 1.5rem;
  341. }
  342. figure.unsquared img {
  343. height: inherit;
  344. }
  345. @media print {
  346. body { font-size: 100%; }
  347. a:after { content: " (" attr(href) ")"; }
  348. a, a:link, a:visited, a:after {
  349. text-decoration: underline;
  350. text-shadow: none !important;
  351. background-image: none !important;
  352. background: white;
  353. color: black;
  354. }
  355. abbr[title] { border-bottom: 0; }
  356. abbr[title]:after { content: " (" attr(title) ")"; }
  357. img { page-break-inside: avoid; }
  358. @page { margin: 2cm .5cm; }
  359. h1, h2, h3 { page-break-after: avoid; }
  360. p3 { orphans: 3; widows: 3; }
  361. img {
  362. max-width: 250px !important;
  363. max-height: 250px !important;
  364. }
  365. nav, aside { display: none; }
  366. }
  367. ul.with_columns {
  368. column-count: 1;
  369. }
  370. @media (min-width: 20em) {
  371. ul.with_columns {
  372. column-count: 2;
  373. }
  374. }
  375. @media (min-width: 50em) {
  376. ul.with_columns {
  377. column-count: 3;
  378. }
  379. }
  380. ul.with_two_columns {
  381. column-count: 1;
  382. }
  383. @media (min-width: 20em) {
  384. ul.with_two_columns {
  385. column-count: 1;
  386. }
  387. }
  388. @media (min-width: 50em) {
  389. ul.with_two_columns {
  390. column-count: 2;
  391. }
  392. }
  393. .gallery {
  394. display: flex;
  395. flex-wrap: wrap;
  396. justify-content: space-around;
  397. }
  398. .gallery figure img {
  399. margin-left: 1rem;
  400. margin-right: 1rem;
  401. }
  402. .gallery figure figcaption {
  403. font-family: 'ConcourseT3'
  404. }
  405. footer {
  406. font-family: 'ConcourseT3';
  407. display: flex;
  408. flex-direction: column;
  409. border-top: 3px solid white;
  410. padding: 4rem 0;
  411. background-color: #07486c;
  412. color: white;
  413. }
  414. footer > * {
  415. max-width: 50rem;
  416. margin: 0 auto;
  417. }
  418. footer a {
  419. color: #f1c40f;
  420. }
  421. footer .avatar {
  422. width: 200px;
  423. height: 200px;
  424. border-radius: 50%;
  425. float: left;
  426. -webkit-shape-outside: circle();
  427. shape-outside: circle();
  428. margin-right: 2rem;
  429. padding: 2px 5px 5px 2px;
  430. background: white;
  431. border-left: 1px solid #f1c40f;
  432. border-top: 1px solid #f1c40f;
  433. border-right: 5px solid #f1c40f;
  434. border-bottom: 5px solid #f1c40f;
  435. }
  436. </style>
  437. <h1>
  438. <span><a id="jumper" href="#jumpto" title="Un peu perdu ?">?</a></span>
  439. Challenges in Maintaining A Big Tent for Software Freedom (archive)
  440. <time>Pour la pérennité des contenus liés. Non-indexé, retrait sur simple email.</time>
  441. </h1>
  442. <section>
  443. <article>
  444. <h3><a href="http://ebb.org/bkuhn/blog/2018/08/30/on-social-justice-software-licensing.html">Source originale du contenu</a></h3>
  445. <p>In recent weeks, I've been involved with a complex internal discussion by
  446. a major software freedom project about a desire to take a stance on social
  447. justice issues other than software freedom. In the discussion, many
  448. different people came forward with various issues that matter to them,
  449. including vegetarianism, diversity, and speech censorship, wondering how that
  450. software freedom project should handle other social justices causes that are
  451. not software freedom. This week, (separate and fully unrelated)
  452. another <a href="https://lernajs.io/">project, called Lerna</a>,
  453. <a href="https://github.com/lerna/lerna/pull/1616">publicly had a similar
  454. debate</a>. The issues involved are challenging, and it deserves careful
  455. consideration regardless of how the issue is raised.</p>
  456. <p>One of the first licensing discussions that I was ever involved in the mid
  457. 1990s was with a developer, who was a lifelong global peace activist, objecting
  458. to the GPL because it allowed the USA Department of Defense and the wider
  459. military industrial complex to incorporate software into their destructive
  460. killing machines. As a lifelong pacifist myself, I sympathized with his
  461. objection, and since then, I have regularly considered the question of
  462. “do those who perpetrate other social injustices deserve software
  463. freedom?”</p>
  464. <p>I ultimately drew much of my conclusion about this from activists for free
  465. speech, who have a longer history and have therefore had longer time to
  466. consider the philosophical question. I remember in the late 1980s when I
  467. first learned of the ACLU, and hearing that they assisted the Klu-Klux Klan
  468. in their right to march. I was flabbergasted; the Klan is historically
  469. well-documented as an organization that was party to horrific murder. Why
  470. would the ACLU defend their free speech rights? Recently, many people had
  471. a similar reaction when, in defense of the freedom of association and free
  472. speech of the National Rifle Association
  473. (NRA), <a href="https://www.aclu.org/blog/free-speech/new-york-state-cant-be-allowed-stifle-nras-political-speech">the
  474. ACLU filed an amicus brief in a case involving the NRA</a>, an organization
  475. that I and many others oppose politically. Again, we're left wondering:
  476. why should we act to defend the free speech and association rights of
  477. political causes we oppose — particularly for those like the NRA and
  478. big software companies who have adequate resources to defend
  479. themselves? </p>
  480. <p>A few weeks ago, I heard a good explanation of this in an
  481. interview <a href="https://www.nytimes.com/2018/07/30/podcasts/the-daily/aclu-nra-trump.html">with
  482. ACLU's Executive Director</a>, whom I'll directly quote, as
  483. he <a href="https://content.production.cdn.art19.com/episodes/50830434-0549-4cca-94c5-d2fbdfe5c795/baea71612188cfc13cb109598142253f21b5395f38cf0201dc81b214db8c72a4693e5501e5b998a94d8ad6ae01974fd4fc7f7a41a63b34c74a8ae7a2e0c21884/20180730%20TD%20MASTER%20SUBMIX%20CW%20FINAL.mp3#t=904">stated
  484. succinctly the reason why ACLU has a long history of defending everyone's
  485. free speech and free association rights</a>: </p>
  486. <blockquote>[Our decision] to
  487. give legal representation to Nazis [was controversial].… It is not for the
  488. government's role to decide who gets a permit to march based on the content
  489. of their speech. We got <strong>lots</strong> of criticism, both
  490. internally and externally. … We believe these rights are for
  491. everyone, and we truly mean it — even for people we hate and whose
  492. ideology is loathsome, disgusting, and hurtful. [The ACLU can't be] just a
  493. liberal/left advocacy group; no liberal/left advocacy group would take on
  494. these kinds of cases. … It is important for us to forge a path that talks
  495. about this being about the rights of everyone.</blockquote>
  496. <p>Ultimately, fighting for software freedom is a social justice cause
  497. similar to that of fighting for free speech and other causes that require
  498. equal rights for all. We will always find groups exploiting those freedoms
  499. for ill rather than good. We, as software freedom activists, will have to
  500. sometimes grit our teeth and defend the rights to modify and improve software for those we otherwise oppose.
  501. Indeed, they may even utilize that software
  502. for those objectionable activities. It's particularly annoying to do that for
  503. companies that otherwise produce proprietary software: after all, in another realm, <em>they</em> are
  504. actively working against our cause. Nevertheless, either we believe the Four Software Freedoms are universal, or we don't. If we do,
  505. even our active political opponents deserve them, too.</p>
  506. <p>I think we can take a good example from the ACLU on this matter. The
  507. ACLU, by standing firm on its core principles, now has, after two
  508. generations of work, developed the power to make impact on related causes. The
  509. ACLU is the primary organization defending immigrants who have been
  510. forcibly separated from their children by the USA government. I'd posit that only an
  511. organization with a long history of principled activity can have both the
  512. gravitas and adequate resources to take on that issue.</p>
  513. <p>Fortunately, software freedom is already successful enough that we can do
  514. at least a little bit of that now. For example,
  515. Conservancy (where I work) <a href="https://sfconservancy.org/news/2017/jan/30/opposing-us-immigration-ban/">already
  516. took a public position, early, in opposition of Trump's immigration
  517. policy</a> because of its negative impact on software freedom, whose
  518. advancement depends on the free flow of movement by technologists around
  519. the world. Speaking out from our microphone built from our principled
  520. stand on software freedom, we can make an impact that denying software
  521. freedom to others never could. Specifically, rather than proprietarizing
  522. the license of projects to fight USA's Immigration and Customs Enforcement
  523. (ICE) and its software providers, I'd encourage us to figure out a specific
  524. FOSS package that we can prove is deployed for use at ICE, and use that
  525. fact as a rhetorical lever to criticize their bad behavior. For example,
  526. has anyone investigated if ICE uses Linux-based servers to host their
  527. otherwise proprietary software systems? If so, the Linux community is
  528. already large and powerful enough that if a group of Linux contributors
  529. made a public statement in political opposition to the use of Linux in
  530. ICE's activities, it would get national news attention here in the USA. We
  531. could even ally with the ACLU to assure the message is heard. No license
  532. change is needed to do that, and it will surely be more effective.</p>
  533. <p>Again, this is how software freedom is so much like free speech. We give
  534. software freedom to all, which allows them to freely use and deploy the
  535. software for any purpose, just like hate groups can use the free speech
  536. microphone to share their ideas. However, like the ACLU, software
  537. freedom activists, who simultaneously defend all users equal rights in
  538. copying, sharing and modifying the software, can use their platform —
  539. already standing on the moral high ground that was <em>generated</em> by
  540. that long time principled support of equal rights — to speak out against
  541. those who bring harm to society in other ways.</p>
  542. <p>Finally, note that the
  543. Four Software Freedoms obviously should never be the only laws and/or rules of conduct of our society. Just
  544. like you should be prevented from (proverbially) falsely yelling <q>Fire!</q> in a crowded movie theater,
  545. you still should be stopped when you deploy Free Software in a manner that violates some other
  546. law, or commits human rights violations. However, taking away software freedom from bad actors, while it <em>seems</em> like a
  547. panacea to other societal ills, will simply backfire. The
  548. simplicity and beauty of copyleft is that it takes away someone's software
  549. freedom <em>only</em> at the moment when they take away someone else's
  550. software freedom; copyleft ensures that is the <em>only</em> reason your
  551. software freedom should be lost. Simple tools work best when your social
  552. justice cause is an underdog, and we risk obscurity of our software if we
  553. seek to change the fundamental simple design of copyleft licensing to include licensing
  554. penalties for other social justice grievances (— even if we could agree on which other
  555. non-FOSS causes warrant “copyleft protection”). It
  556. means we have a big tent for software freedom, and we sometimes stand under it with
  557. people whose behavior we despise. The value we have is our ability to
  558. stand with them under the tent, and tell them: “while I respect your
  559. right to share and improve that software, I find the task you're doing with
  560. the software deplorable.”. That's the message I deliver to any ICE
  561. agent who used Free Software while forcibly separating parents from their children.</p>
  562. </article>
  563. </section>
  564. <nav id="jumpto">
  565. <p>
  566. <a href="/david/blog/">Accueil du blog</a> |
  567. <a href="http://ebb.org/bkuhn/blog/2018/08/30/on-social-justice-software-licensing.html">Source originale</a> |
  568. <a href="/david/stream/2019/">Accueil du flux</a>
  569. </p>
  570. </nav>
  571. <footer>
  572. <div>
  573. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  574. <p>
  575. Bonjour/Hi!
  576. Je suis <a href="/david/" title="Profil public">David&nbsp;Larlet</a>, je vis actuellement à Montréal et j’alimente cet espace depuis 15 ans. <br>
  577. Si tu as apprécié cette lecture, n’hésite pas à poursuivre ton exploration. Par exemple via les <a href="/david/blog/" title="Expériences bienveillantes">réflexions bimestrielles</a>, la <a href="/david/stream/2019/" title="Pensées (dés)articulées">veille hebdomadaire</a> ou en t’abonnant au <a href="/david/log/" title="S’abonner aux publications via RSS">flux RSS</a> (<a href="/david/blog/2019/flux-rss/" title="Tiens c’est quoi un flux RSS ?">so 2005</a>).
  578. </p>
  579. <p>
  580. Je m’intéresse à la place que je peux avoir dans ce monde. En tant qu’humain, en tant que membre d’une famille et en tant qu’associé d’une coopérative. De temps en temps, je fais aussi des <a href="https://github.com/davidbgk" title="Principalement sur Github mais aussi ailleurs">trucs techniques</a>. Et encore plus rarement, <a href="/david/talks/" title="En ce moment je laisse plutôt la place aux autres">j’en parle</a>.
  581. </p>
  582. <p>
  583. Voici quelques articles choisis :
  584. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  585. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  586. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  587. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  588. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  589. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  590. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  591. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  592. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  593. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  594. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  595. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  596. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  597. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  598. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  599. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  600. </p>
  601. <p>
  602. On peut <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">échanger par courriel</a>. Si éventuellement tu souhaites que l’on travaille ensemble, tu devrais commencer par consulter le <a href="http://larlet.com">profil dédié à mon activité professionnelle</a> et/ou contacter directement <a href="http://scopyleft.fr/">scopyleft</a>, la <abbr title="Société coopérative et participative">SCOP</abbr> dont je fais partie depuis six ans. Je recommande au préalable de lire <a href="/david/blog/2018/cout-site/" title="Attention ce qui va suivre peut vous choquer">combien coûte un site</a> et pourquoi je suis plutôt favorable à une <a href="/david/pro/devis/" title="Discutons-en !">non-demande de devis</a>.
  603. </p>
  604. <p>
  605. Je ne traque pas ta navigation mais mon
  606. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  607. conserve des logs d’accès.
  608. </p>
  609. </div>
  610. </footer>
  611. <script type="text/javascript">
  612. ;(_ => {
  613. const jumper = document.getElementById('jumper')
  614. jumper.addEventListener('click', e => {
  615. e.preventDefault()
  616. const anchor = e.target.getAttribute('href')
  617. const targetEl = document.getElementById(anchor.substring(1))
  618. targetEl.scrollIntoView({behavior: 'smooth'})
  619. })
  620. })()
  621. </script>