- <?xml version="1.0" encoding="utf-8"?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta http-equiv="Content-Style-Type" content="text/css" />
- <meta name="generator" content="pandoc" />
- <meta name="author" content="Jonas Smedegaard" />
- <title>Debian Pure Blends - hacking in your parents' house</title>
- <link rel="stylesheet" type="text/css" media="screen, projection, print"
- href="../../../slidy/slidy.css" />
- <script src="../../../slidy/slidy.js"
- charset="utf-8" type="text/javascript"></script>
- </head>
- <body>
- <div class="slide titlepage">
- <h1 class="title">Debian Pure Blends - hacking in your parents' house</h1>
- <p class="author">
- Jonas Smedegaard
- </p>
- <p class="date">Nitte, Mangalore, October 28th, 2011</p>
- </div>
- <div class="section slide level1" id="overview">
- <h1>Overview</h1>
- <ul>
- <li>Me and Asia</li>
- <li>Tricky terms</li>
- <li>FLOSS Eco System</li>
- <li>Debian - distro & community</li>
- <li>Customizing Debian</li>
- </ul>
- </div>
- <div class="section slide level1" id="me-and-asia">
- <h1>Me and Asia</h1>
- <div class="figure">
- <img src="../map.png" alt="Asia trip" /><p class="caption">Asia trip</p>
- </div>
- </div>
- <div class="section slide level1" id="tricky-terms">
- <h1>Tricky terms</h1>
- <p>FLOSS: <strong>F</strong>ree/<strong>L</strong>ibre <strong>O</strong>pen <strong>S</strong>ource <strong>S</strong>oftware.</p>
- <p>Hacking: Being creative with small pieces -- like playing with Lego.</p>
- <p>Cracking: Breaking digital "locks", typically to steal digital data.</p>
- </div>
- <div class="section slide level1" id="floss-eco-system">
- <h1>FLOSS Eco System</h1>
- <div class="figure">
- <img src="../developmentstream.png" alt="Software Code Stream" /><p class="caption">Software Code Stream</p>
- </div>
- </div>
- <div class="section slide level1" id="debian---distro-community">
- <h1>Debian - distro & community</h1>
- <ul>
- <li>Community</li>
- <li>Distribution</li>
- <li>Free!</li>
- </ul>
- </div>
- <div class="section slide level1" id="debian---community">
- <h1>Debian - Community</h1>
- <ul>
- <li>~1000 "Developers"</li>
- <li>~500 "Maintainers"</li>
- <li>??? actual contributors...</li>
- </ul>
- </div>
- <div class="section slide level1" id="debian---community-structure">
- <h1>Debian - Community structure</h1>
- <ul>
- <li>Democracy</li>
- </ul>
- </div>
- <div class="section slide level1" id="debian---community-structure-1">
- <h1>Debian - Community structure</h1>
- <ul>
- <li><del>Democracy</del></li>
- <li>We all obey Debian Free Software Guidelines</li>
- <li>Almost no hierarchy: Each package maintainer responsible</li>
- </ul>
- </div>
- <div class="section slide level1" id="debian---distribution">
- <h1>Debian - Distribution</h1>
- <ul>
- <li>Generic - choices are exposed to the user</li>
- <li>Mother of other distros</li>
- </ul>
- </div>
- <div class="section slide level1" id="debian-packages">
- <h1>Debian packages</h1>
- <ul>
- <li>They all obey Debian Policy</li>
- <li>Mozilla Iceweasel (Firefox): ~3 packages (+ ~70 lang packages)</li>
- <li>LibreOffice: ~30 packages (+ ~90 lang packages)</li>
- <li>Debian: ~35.000 packages</li>
- </ul>
- </div>
- <div class="section slide level1" id="debian-packaging---mentors-sponsoring">
- <h1>Debian packaging - Mentors + sponsoring</h1>
- <ul>
- <li>Peer review - many eyes see more bugs</li>
- <li>Education - Debian quality standards</li>
- <li>Ideals transfer - get help on packaging</li>
- <li>Mailinglist: <script type="text/javascript">
- <!--
- h='lists.debian.org';a='@';n='debian-mentors';e=n+a+h;
- document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'">'+'mailto:debian-mentors@lists.debian.org'+'<\/'+'a'+'>');
- // -->
- </script><noscript>mailto:debian-mentors@lists.debian.org (debian-mentors at lists dot debian dot org)</noscript></li>
- <li>IRC channel on OFTC.net: #debian-mentors</li>
- <li>Website: <a href="http://mentors.debian.net/"><code class="url">http://mentors.debian.net/</code></a></li>
- </ul>
- </div>
- <div class="section slide level1" id="debian-packaging---join-teams">
- <h1>Debian packaging - Join teams</h1>
- <ul>
- <li>Peer review - many eyes see more bugs</li>
- <li>Education - Debian quality standards</li>
- <li>Ideals transfer - get help on packaging</li>
- <li>Wiki page: <a href="http://wiki.debian.org/Teams"><code class="url">http://wiki.debian.org/Teams</code></a></li>
- </ul>
- </div>
- <div class="section slide level1" id="debian---derivatives">
- <h1>Debian - derivatives</h1>
- <ul>
- <li>Knoppix</li>
- <li>Ubuntu</li>
- <li>BOSS</li>
- <li>SWECHA</li>
- <li>...</li>
- </ul>
- </div>
- <div class="section slide level1" id="debian-deriving">
- <h1>Debian deriving</h1>
- <ul>
- <li>Try use <strong>live-builder</strong>...</li>
- </ul>
- </div>
- <div class="section slide level1" id="debian---blends">
- <h1>Debian - blends</h1>
- <ul>
- <li>Optimizing Debian itself for special purpose use</li>
- </ul>
- <p>or</p>
- <ul>
- <li>Merging back derived work into Debian</li>
- </ul>
- </div>
- <div class="section slide level1" id="debian---existing-blends">
- <h1>Debian - existing blends</h1>
- <ul>
- <li>Debian Jr</li>
- <li>Debian Med</li>
- <li>Debian Edu</li>
- <li>Debian Science</li>
- <li>Debian EzGo</li>
- <li>BrDesktop</li>
- <li>Debian Accessibility</li>
- <li>Debian Lex</li>
- <li>DebiChem</li>
- <li>Debian GIS</li>
- <li>Debian Multimedia</li>
- </ul>
- </div>
- <div class="section slide level1" id="debian---future-blends">
- <h1>Debian - future blends</h1>
- <ul>
- <li>FreedomBox</li>
- <li>Debian LAN</li>
- <li>BOSS?</li>
- <li>SWECHA?</li>
- <li>...?</li>
- </ul>
- </div>
- <div class="section slide level1" id="debian-blending">
- <h1>Debian blending</h1>
- <ul>
- <li>Join existing teams</li>
- <li>Convince Debian Developers to create new teams</li>
- <li>Try use <strong>boxer</strong></li>
- </ul>
- </div>
- <div class="section slide level1" id="debian-pure-blends---benefits">
- <h1>Debian Pure Blends - Benefits</h1>
- <ul>
- <li>backed by Debian - help, bug tracking, translations, etc.</li>
- <li>teamwork - others might help you refine and maintain your setups</li>
- <li>common structures - others might take over if you loose interest</li>
- </ul>
- </div>
- <div class="section slide level1" id="debian-pure-blends---downsides">
- <h1>Debian Pure Blends - downsides</h1>
- <ul>
- <li><strong>annoying</strong> - Debian package maintainers may not like proposed changes</li>
- <li><strong>slow</strong> - stable distribution is released infrequently</li>
- <li><strong>rigid</strong> - all contributions must match Debian Free Software Guidelines</li>
- <li><strong>complex</strong> - packages must obey Debian Policy</li>
- </ul>
- </div>
- <div class="section slide level1" id="tech---debian-support-overloading-choices">
- <h1>Tech - Debian support overloading choices</h1>
- <ul>
- <li>Debian installer</li>
- <li>tasksel</li>
- <li>debconf</li>
- <li>aptitude</li>
- </ul>
- </div>
- <div class="section slide level1" id="tech---examples-of-non-pure-blending">
- <h1>Tech - examples of non-pure blending</h1>
- <ul>
- <li>include non-Debian packages or non-packaged stuff</li>
- <li>include Debian packages from different Debian suite</li>
- <li>configure system other than via Debian package installation</li>
- <li>install using non-Debian media</li>
- </ul>
- <p>You don't own your system - you provide one for others to own.</p>
- <p>So don't refine it like a (sloppy) user: Handle it like a Debian developer!</p>
- </div>
- <div class="section slide level1" id="tech---debian-generic-setup">
- <h1>Tech - Debian, generic setup</h1>
- <ul>
- <li>select package profile(s)</li>
- <li>install</li>
- </ul>
- </div>
- <div class="section slide level1" id="tech---debian-hand-tuned">
- <h1>Tech - Debian, hand-tuned</h1>
- <ul>
- <li>select package profile(s)</li>
- <li>select additional packages</li>
- <li>install</li>
- <li>(re)configure packages</li>
- </ul>
- </div>
- <div class="section slide level1" id="tech---debian-auto-tuned">
- <h1>Tech - Debian, auto-tuned</h1>
- <ul>
- <li>pre-seed package selection</li>
- <li>pre-seed package configurations</li>
- <li>install</li>
- <li>(re)configure non-debconf packages</li>
- </ul>
- </div>
- <div class="section slide level1" id="tech---debian-pure-blend-generic">
- <h1>Tech - Debian Pure Blend = generic</h1>
- <ul>
- <li>select blend profile</li>
- <li>install</li>
- </ul>
- </div>
- <div class="section slide level1" id="tech---tasks-involved">
- <h1>Tech - tasks involved</h1>
- <ul>
- <li>extra software → into Debian officially</li>
- <li>manual configurations → preseeding</li>
- <li>maybe create temporary dirty hacks</li>
- <li>maybe use/create reusable tweaks</li>
- <li>eliminate dirty hacks and tweaks</li>
- <li>convince others in Debian to add as tasksel task</li>
- </ul>
- </div>
- <div class="section slide level1" id="tech---blends-dev">
- <h1>Tech - blends-dev</h1>
- <p>Tool to help maintain package lists and prospective packages.</p>
- <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>
- </div>
- <div class="section slide level1" id="tech---dirty-tricks">
- <h1>Tech - dirty tricks</h1>
- <p>Avoid configuration files...</p>
- <ul>
- <li>config.d folders</li>
- <li>databases</li>
- <li>networked data</li>
- </ul>
- </div>
- <div class="section slide level1" id="tech---tweaks">
- <h1>Tech - tweaks</h1>
- <p>Reusable scripts compatible with one or more of...</p>
- <ul>
- <li>FAI</li>
- <li>hands-off at http://hands.com/d-i/</li>
- <li>CFengine</li>
- <li>Puppet</li>
- </ul>
- </div>
- <div class="section slide level1" id="tech---good-style">
- <h1>Tech - good style</h1>
- <ul>
- <li>Aptitude</li>
- <li>debconf</li>
- <li>Config::Model</li>
- </ul>
- </div>
- <div class="section slide level1" id="tech---when-is-it-pure">
- <h1>Tech - When is it "Pure"?</h1>
- <p>When all is in Debian, with no dirty tricks:</p>
- <ul>
- <li>package selection(s)</li>
- <li>customizations</li>
- <li>installation</li>
- </ul>
- </div>
- <div class="section slide level1" id="team---getting-involved">
- <h1>Team - getting involved</h1>
- <ul>
- <li>identify and isolate tweaks at your own system</li>
- <li>register missing software - on wiki page or (better!) in Debian BTS</li>
- <li>write documentation</li>
- <li>write the dream of how things ought to work</li>
- <li>wite how details work now</li>
- <li>discuss downstream (i.e. with users and subdistros) how things work / should work</li>
- <li>discuss upstream (i.e. with authors) what is possible now / soon</li>
- </ul>
- </div>
- <div class="section slide level1" id="team---getting-involved-ii">
- <h1>Team - getting involved II</h1>
- <ul>
- <li>write intro for peer enthusiasts</li>
- <li>decide and document ideal formats - translations, graphics etc.</li>
- <li>prioritize pending tasks - of various kinds to encourage many different contributions</li>
- <li>document where it is ok to ask beginners' questions</li>
- <li>document if beginners can ask for a mentor</li>
- </ul>
- </div>
- <div class="section slide level1" id="team---getting-involved-iii">
- <h1>Team - getting involved III</h1>
- <ul>
- <li>make illustration</li>
- <li>make screendumps</li>
- <li>make fan graphics</li>
- <li>make desktop backgrounds, CD covers, stickers, etc.</li>
- <li>Register the project as a DOAP file, and maybe at Ohloh and Freshmeat etc.</li>
- <li>Register and maintain relevant Debtags</li>
- </ul>
- </div>
- <div class="section slide level1" id="team---getting-involved-iv">
- <h1>Team - getting involved IV</h1>
- <ul>
- <li>Translate package descriptions</li>
- <li>Translate debconf dialogs</li>
- <li>Translate upstream code</li>
- </ul>
- </div>
- <div class="section slide level1" id="team---getting-involved-v">
- <h1>Team - getting involved V</h1>
- <ul>
- <li>Help integrate contributions from graphics artists, translators and others</li>
- <li>document decision processes of the team (and Debian and upstreams?)</li>
- <li>document workflows in teams</li>
- <li>insist on transparency - not only for code!</li>
- </ul>
- </div>
- <div class="section slide level1" id="team---continuous-status-checks">
- <h1>Team - Continuous status checks</h1>
- <ul>
- <li>Ask users about their needs - you will forget over time!</li>
- <li>Ask teams about their tasks - each participant has slightly different perception of the common vision and status</li>
- <li>Ask upstreams about use: perhaps potentials are missed, or code or persons feel as being abused</li>
- </ul>
- </div>
- <div class="section slide level1" id="debian-pure-blends---future">
- <h1>Debian Pure Blends - Future</h1>
- <ul>
- <li>debconf dontcare vs. explicit choice of default option</li>
- <li>debconf query mechanism (and fill buffer from live system)</li>
- <li>APT explicit choice of alternate dependency/recommendation</li>
- <li>APT dontcare vs. explicit choice of default dependency/recommendation</li>
- <li>Config::Model - semantic configfile handling</li>
- </ul>
- </div>
- <div class="section slide level1" id="the-end">
- <h1>The End</h1>
- <ul>
- <li>Me: <script type="text/javascript">
- <!--
- h='jones.dk';a='@';n='dr';e=n+a+h;
- document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'">'+'<code>'+e+'</code>'+'<\/'+'a'+'>');
- // -->
- </script><noscript>dr at jones dot dk</noscript></li>
- <li>Debian: <a href="http://www.debian.org"><code class="url">http://www.debian.org</code></a></li>
- <li>Debian Derivatives Census: <a href="http://wiki.debian.org/Derivatives/Census"><code class="url">http://wiki.debian.org/Derivatives/Census</code></a></li>
- <li>This talk: <a href="http://dr.jones.dk/blends/talk/nitte"><code class="url">http://dr.jones.dk/blends/talk/nitte</code></a></li>
- <li>Illustrations: <a href="http://sirireiter.dk/blog/entry/110310/"><code class="url">http://sirireiter.dk/blog/entry/110310/</code></a></li>
- <li>Asia trip: <a href="http://wiki.jones.dk/DebianAsia2011"><code class="url">http://wiki.jones.dk/DebianAsia2011</code></a></li>
- </ul>
- </div>
- </body>
- </html>
|