summaryrefslogtreecommitdiff
path: root/blends/talk/nitte/index.html
blob: 24e9f50044a8830f28dbce50e90e2574d0b0cb24 (plain)
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <meta name="generator" content="pandoc" />
  8. <meta name="author" content="Jonas Smedegaard" />
  9. <meta name="date" content="Nitte, Mangalore, October 28th, 2011" />
  10. <link rel="stylesheet" type="text/css" media="screen, projection, print"
  11. href="../slidy.css" />
  12. <script src="../slidy.js"
  13. charset="utf-8" type="text/javascript"></script>
  14. </head>
  15. <body>
  16. <div class="slide titlepage">
  17. <h1 class="title">Debian Pure Blends - hacking in your parents' house</h1>
  18. <p class="author">
  19. Jonas Smedegaard
  20. </p>
  21. <p class="date">Nitte, Mangalore, October 28th, 2011</p>
  22. </div>
  23. <div class="slide">
  24. <h1 id="overview">Overview</h1>
  25. <ul>
  26. <li>Me and Asia</li>
  27. <li>Tricky terms</li>
  28. <li>FLOSS Eco System</li>
  29. <li>Debian - distro &amp; community</li>
  30. <li>Customizing Debian</li>
  31. </ul>
  32. </div>
  33. <div class="slide">
  34. <h1 id="me-and-asia">Me and Asia</h1>
  35. <div class="figure">
  36. <img src="../map.png" alt="Asia trip" /><p class="caption">Asia trip</p>
  37. </div>
  38. </div>
  39. <div class="slide">
  40. <h1 id="tricky-terms">Tricky terms</h1>
  41. <p>FLOSS: <strong>F</strong>ree/<strong>L</strong>ibre <strong>O</strong>pen <strong>S</strong>ource <strong>S</strong>oftware.</p>
  42. <p>Hacking: Being creative with small pieces -- like playing with Lego.</p>
  43. <p>Cracking: Breaking digital &quot;locks&quot;, typically to steal digital data.</p>
  44. </div>
  45. <div class="slide">
  46. <h1 id="floss-eco-system">FLOSS Eco System</h1>
  47. <div class="figure">
  48. <img src="../developmentstream.png" alt="Software Code Stream" /><p class="caption">Software Code Stream</p>
  49. </div>
  50. </div>
  51. <div class="slide">
  52. <h1 id="debian---distro-community">Debian - distro &amp; community</h1>
  53. <ul>
  54. <li>Community</li>
  55. <li>Distribution</li>
  56. <li>Free!</li>
  57. </ul>
  58. </div>
  59. <div class="slide">
  60. <h1 id="debian---community">Debian - Community</h1>
  61. <ul>
  62. <li>~1000 &quot;Developers&quot;</li>
  63. <li>~500 &quot;Maintainers&quot;</li>
  64. <li>??? actual contributors...</li>
  65. </ul>
  66. </div>
  67. <div class="slide">
  68. <h1 id="debian---community-structure">Debian - Community structure</h1>
  69. <ul>
  70. <li>Democracy</li>
  71. </ul>
  72. </div>
  73. <div class="slide">
  74. <h1 id="debian---community-structure-1">Debian - Community structure</h1>
  75. <ul>
  76. <li><span style="text-decoration: line-through;">Democracy</span></li>
  77. <li>We all obey Debian Free Software Guidelines</li>
  78. <li>Almost no hierarchy: Each package maintainer responsible</li>
  79. </ul>
  80. </div>
  81. <div class="slide">
  82. <h1 id="debian---distribution">Debian - Distribution</h1>
  83. <ul>
  84. <li>Generic - choices are exposed to the user</li>
  85. <li>Mother of other distros</li>
  86. </ul>
  87. </div>
  88. <div class="slide">
  89. <h1 id="debian-packages">Debian packages</h1>
  90. <ul>
  91. <li>They all obey Debian Policy</li>
  92. <li>Mozilla Iceweasel (Firefox): ~3 packages (+ ~70 lang packages)</li>
  93. <li>LibreOffice: ~30 packages (+ ~90 lang packages)</li>
  94. <li>Debian: ~35.000 packages</li>
  95. </ul>
  96. </div>
  97. <div class="slide">
  98. <h1 id="debian-packaging---mentors-sponsoring">Debian packaging - Mentors + sponsoring</h1>
  99. <ul>
  100. <li>Peer review - many eyes see more bugs</li>
  101. <li>Education - Debian quality standards</li>
  102. <li>Ideals transfer - get help on packaging</li>
  103. <li>Mailinglist: <script type="text/javascript">
  104. <!--
  105. h='&#108;&#x69;&#x73;&#116;&#x73;&#46;&#100;&#x65;&#98;&#x69;&#x61;&#110;&#46;&#x6f;&#114;&#x67;';a='&#64;';n='&#100;&#x65;&#98;&#x69;&#x61;&#110;&#x2d;&#x6d;&#x65;&#110;&#116;&#x6f;&#114;&#x73;';e=n+a+h;
  106. document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'">'+'mailto:debian-mentors@lists.debian.org'+'<\/'+'a'+'>');
  107. // -->
  108. </script><noscript>&#x6d;&#x61;&#x69;&#108;&#116;&#x6f;&#58;&#100;&#x65;&#98;&#x69;&#x61;&#110;&#x2d;&#x6d;&#x65;&#110;&#116;&#x6f;&#114;&#x73;&#64;&#108;&#x69;&#x73;&#116;&#x73;&#46;&#100;&#x65;&#98;&#x69;&#x61;&#110;&#46;&#x6f;&#114;&#x67;&#32;&#40;&#100;&#x65;&#98;&#x69;&#x61;&#110;&#x2d;&#x6d;&#x65;&#110;&#116;&#x6f;&#114;&#x73;&#32;&#x61;&#116;&#32;&#108;&#x69;&#x73;&#116;&#x73;&#32;&#100;&#x6f;&#116;&#32;&#100;&#x65;&#98;&#x69;&#x61;&#110;&#32;&#100;&#x6f;&#116;&#32;&#x6f;&#114;&#x67;&#x29;</noscript></li>
  109. <li>IRC channel on OFTC.net: #debian-mentors</li>
  110. <li>Website: <a href="http://mentors.debian.net/"><code class="url">http://mentors.debian.net/</code></a></li>
  111. </ul>
  112. </div>
  113. <div class="slide">
  114. <h1 id="debian-packaging---join-teams">Debian packaging - Join teams</h1>
  115. <ul>
  116. <li>Peer review - many eyes see more bugs</li>
  117. <li>Education - Debian quality standards</li>
  118. <li>Ideals transfer - get help on packaging</li>
  119. <li>Wiki page: <a href="http://wiki.debian.org/Teams"><code class="url">http://wiki.debian.org/Teams</code></a></li>
  120. </ul>
  121. </div>
  122. <div class="slide">
  123. <h1 id="debian---derivatives">Debian - derivatives</h1>
  124. <ul>
  125. <li>Knoppix</li>
  126. <li>Ubuntu</li>
  127. <li>BOSS</li>
  128. <li>SWECHA</li>
  129. <li>...</li>
  130. </ul>
  131. </div>
  132. <div class="slide">
  133. <h1 id="debian-deriving">Debian deriving</h1>
  134. <ul>
  135. <li>Try use <strong>live-builder</strong>...</li>
  136. </ul>
  137. </div>
  138. <div class="slide">
  139. <h1 id="debian---blends">Debian - blends</h1>
  140. <ul>
  141. <li>Optimizing Debian itself for special purpose use</li>
  142. </ul>
  143. <p>or</p>
  144. <ul>
  145. <li>Merging back derived work into Debian</li>
  146. </ul>
  147. </div>
  148. <div class="slide">
  149. <h1 id="debian---existing-blends">Debian - existing blends</h1>
  150. <ul>
  151. <li>Debian Jr</li>
  152. <li>Debian Med</li>
  153. <li>Debian Edu</li>
  154. <li>Debian Science</li>
  155. <li>Debian EzGo</li>
  156. <li>BrDesktop</li>
  157. <li>Debian Accessibility</li>
  158. <li>Debian Lex</li>
  159. <li>DebiChem</li>
  160. <li>Debian GIS</li>
  161. <li>Debian Multimedia</li>
  162. </ul>
  163. </div>
  164. <div class="slide">
  165. <h1 id="debian---future-blends">Debian - future blends</h1>
  166. <ul>
  167. <li>FreedomBox</li>
  168. <li>Debian LAN</li>
  169. <li>BOSS?</li>
  170. <li>SWECHA?</li>
  171. <li>...?</li>
  172. </ul>
  173. </div>
  174. <div class="slide">
  175. <h1 id="debian-blending">Debian blending</h1>
  176. <ul>
  177. <li>Join existing teams</li>
  178. <li>Convince Debian Developers to create new teams</li>
  179. <li>Try use <strong>boxer</strong></li>
  180. </ul>
  181. </div>
  182. <div class="slide">
  183. <h1 id="debian-pure-blends---benefits">Debian Pure Blends - Benefits</h1>
  184. <ul>
  185. <li>backed by Debian - help, bug tracking, translations, etc.</li>
  186. <li>teamwork - others might help you refine and maintain your setups</li>
  187. <li>common structures - others might take over if you loose interest</li>
  188. </ul>
  189. </div>
  190. <div class="slide">
  191. <h1 id="debian-pure-blends---downsides">Debian Pure Blends - downsides</h1>
  192. <ul>
  193. <li><strong>annoying</strong> - Debian package maintainers may not like proposed changes</li>
  194. <li><strong>slow</strong> - stable distribution is released infrequently</li>
  195. <li><strong>rigid</strong> - all contributions must match Debian Free Software Guidelines</li>
  196. <li><strong>complex</strong> - packages must obey Debian Policy</li>
  197. </ul>
  198. </div>
  199. <div class="slide">
  200. <h1 id="tech---debian-support-overloading-choices">Tech - Debian support overloading choices</h1>
  201. <ul>
  202. <li>Debian installer</li>
  203. <li>tasksel</li>
  204. <li>debconf</li>
  205. <li>aptitude</li>
  206. </ul>
  207. </div>
  208. <div class="slide">
  209. <h1 id="tech---examples-of-non-pure-blending">Tech - examples of non-pure blending</h1>
  210. <ul>
  211. <li>include non-Debian packages or non-packaged stuff</li>
  212. <li>include Debian packages from different Debian suite</li>
  213. <li>configure system other than via Debian package installation</li>
  214. <li>install using non-Debian media</li>
  215. </ul>
  216. <p>You don't own your system - you provide one for others to own.</p>
  217. <p>So don't refine it like a (sloppy) user: Handle it like a Debian developer!</p>
  218. </div>
  219. <div class="slide">
  220. <h1 id="tech---debian-generic-setup">Tech - Debian, generic setup</h1>
  221. <ul>
  222. <li>select package profile(s)</li>
  223. <li>install</li>
  224. </ul>
  225. </div>
  226. <div class="slide">
  227. <h1 id="tech---debian-hand-tuned">Tech - Debian, hand-tuned</h1>
  228. <ul>
  229. <li>select package profile(s)</li>
  230. <li>select additional packages</li>
  231. <li>install</li>
  232. <li>(re)configure packages</li>
  233. </ul>
  234. </div>
  235. <div class="slide">
  236. <h1 id="tech---debian-auto-tuned">Tech - Debian, auto-tuned</h1>
  237. <ul>
  238. <li>pre-seed package selection</li>
  239. <li>pre-seed package configurations</li>
  240. <li>install</li>
  241. <li>(re)configure non-debconf packages</li>
  242. </ul>
  243. </div>
  244. <div class="slide">
  245. <h1 id="tech---debian-pure-blend-generic">Tech - Debian Pure Blend = generic</h1>
  246. <ul>
  247. <li>select blend profile</li>
  248. <li>install</li>
  249. </ul>
  250. </div>
  251. <div class="slide">
  252. <h1 id="tech---tasks-involved">Tech - tasks involved</h1>
  253. <ul>
  254. <li>extra software → into Debian officially</li>
  255. <li>manual configurations → preseeding</li>
  256. <li>maybe create temporary dirty hacks</li>
  257. <li>maybe use/create reusable tweaks</li>
  258. <li>eliminate dirty hacks and tweaks</li>
  259. <li>convince others in Debian to add as tasksel task</li>
  260. </ul>
  261. </div>
  262. <div class="slide">
  263. <h1 id="tech---blends-dev">Tech - blends-dev</h1>
  264. <p>Tool to help maintain package lists and prospective packages.</p>
  265. <p>Example: <a href="http://debian-med.alioth.debian.org/tasks/psychology"><code class="url">http://debian-med.alioth.debian.org/tasks/psychology</code></a></p>
  266. </div>
  267. <div class="slide">
  268. <h1 id="tech---dirty-tricks">Tech - dirty tricks</h1>
  269. <p>Avoid configuration files...</p>
  270. <ul>
  271. <li>config.d folders</li>
  272. <li>databases</li>
  273. <li>networked data</li>
  274. </ul>
  275. </div>
  276. <div class="slide">
  277. <h1 id="tech---tweaks">Tech - tweaks</h1>
  278. <p>Reusable scripts compatible with one or more of...</p>
  279. <ul>
  280. <li>FAI</li>
  281. <li>hands-off at http://hands.com/d-i/</li>
  282. <li>CFengine</li>
  283. <li>Puppet</li>
  284. </ul>
  285. </div>
  286. <div class="slide">
  287. <h1 id="tech---good-style">Tech - good style</h1>
  288. <ul>
  289. <li>Aptitude</li>
  290. <li>debconf</li>
  291. <li>Config::Model</li>
  292. </ul>
  293. </div>
  294. <div class="slide">
  295. <h1 id="tech---when-is-it-pure">Tech - When is it &quot;Pure&quot;?</h1>
  296. <p>When all is in Debian, with no dirty tricks:</p>
  297. <ul>
  298. <li>package selection(s)</li>
  299. <li>customizations</li>
  300. <li>installation</li>
  301. </ul>
  302. </div>
  303. <div class="slide">
  304. <h1 id="team---getting-involved">Team - getting involved</h1>
  305. <ul>
  306. <li>identify and isolate tweaks at your own system</li>
  307. <li>register missing software - on wiki page or (better!) in Debian BTS</li>
  308. <li>write documentation</li>
  309. <li>write the dream of how things ought to work</li>
  310. <li>wite how details work now</li>
  311. <li>discuss downstream (i.e. with users and subdistros) how things work / should work</li>
  312. <li>discuss upstream (i.e. with authors) what is possible now / soon</li>
  313. </ul>
  314. </div>
  315. <div class="slide">
  316. <h1 id="team---getting-involved-ii">Team - getting involved II</h1>
  317. <ul>
  318. <li>write intro for peer enthusiasts</li>
  319. <li>decide and document ideal formats - translations, graphics etc.</li>
  320. <li>prioritize pending tasks - of various kinds to encourage many different contributions</li>
  321. <li>document where it is ok to ask beginners' questions</li>
  322. <li>document if beginners can ask for a mentor</li>
  323. </ul>
  324. </div>
  325. <div class="slide">
  326. <h1 id="team---getting-involved-iii">Team - getting involved III</h1>
  327. <ul>
  328. <li>make illustration</li>
  329. <li>make screendumps</li>
  330. <li>make fan graphics</li>
  331. <li>make desktop backgrounds, CD covers, stickers, etc.</li>
  332. <li>Register the project as a DOAP file, and maybe at Ohloh and Freshmeat etc.</li>
  333. <li>Register and maintain relevant Debtags</li>
  334. </ul>
  335. </div>
  336. <div class="slide">
  337. <h1 id="team---getting-involved-iv">Team - getting involved IV</h1>
  338. <ul>
  339. <li>Translate package descriptions</li>
  340. <li>Translate debconf dialogs</li>
  341. <li>Translate upstream code</li>
  342. </ul>
  343. </div>
  344. <div class="slide">
  345. <h1 id="team---getting-involved-v">Team - getting involved V</h1>
  346. <ul>
  347. <li>Help integrate contributions from graphics artists, translators and others</li>
  348. <li>document decision processes of the team (and Debian and upstreams?)</li>
  349. <li>document workflows in teams</li>
  350. <li>insist on transparency - not only for code!</li>
  351. </ul>
  352. </div>
  353. <div class="slide">
  354. <h1 id="team---continuous-status-checks">Team - Continuous status checks</h1>
  355. <ul>
  356. <li>Ask users about their needs - you will forget over time!</li>
  357. <li>Ask teams about their tasks - each participant has slightly different perception of the common vision and status</li>
  358. <li>Ask upstreams about use: perhaps potentials are missed, or code or persons feel as being abused</li>
  359. </ul>
  360. </div>
  361. <div class="slide">
  362. <h1 id="debian-pure-blends---future">Debian Pure Blends - Future</h1>
  363. <ul>
  364. <li>debconf dontcare vs. explicit choice of default option</li>
  365. <li>debconf query mechanism (and fill buffer from live system)</li>
  366. <li>APT explicit choice of alternate dependency/recommendation</li>
  367. <li>APT dontcare vs. explicit choice of default dependency/recommendation</li>
  368. <li>Config::Model - semantic configfile handling</li>
  369. </ul>
  370. </div>
  371. <div class="slide">
  372. <h1 id="the-end">The End</h1>
  373. <ul>
  374. <li>Me: <script type="text/javascript">
  375. <!--
  376. h='&#106;&#x6f;&#110;&#x65;&#x73;&#46;&#100;&#x6b;';a='&#64;';n='&#100;&#114;';e=n+a+h;
  377. document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'">'+'<code>'+e+'</code>'+'<\/'+'a'+'>');
  378. // -->
  379. </script><noscript>&#100;&#114;&#32;&#x61;&#116;&#32;&#106;&#x6f;&#110;&#x65;&#x73;&#32;&#100;&#x6f;&#116;&#32;&#100;&#x6b;</noscript></li>
  380. <li>Debian: <a href="http://www.debian.org"><code class="url">http://www.debian.org</code></a></li>
  381. <li>Debian Derivatives Census: <a href="http://wiki.debian.org/Derivatives/Census"><code class="url">http://wiki.debian.org/Derivatives/Census</code></a></li>
  382. <li>This talk: <a href="http://dr.jones.dk/blends/talk/mangalore"><code class="url">http://dr.jones.dk/blends/talk/mangalore</code></a></li>
  383. <li>Illustrations: <a href="http://sirireiter.dk/blog/entry/110310/"><code class="url">http://sirireiter.dk/blog/entry/110310/</code></a></li>
  384. <li>Asia trip: <a href="http://wiki.jones.dk/DebianAsia2011"><code class="url">http://wiki.jones.dk/DebianAsia2011</code></a></li>
  385. </ul>
  386. </div>
  387. </body>
  388. </html>