<?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" lang="en" xml:lang="en"> 
<head>
  <title>Debian Pure Blends</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta name="generator" content="pandoc" />
  <meta name="author" content="Jonas Smedegaard (&amp; Andreas Tille)" />
  <meta name="date" content="Hồ Chí Minh, Việt Nam, November 12th, 2010" />
  <link rel="stylesheet" type="text/css" media="screen, projection, print" 
    href="../slidy.min.css" /> 
  <script src="../slidy.min.js"
    charset="utf-8" type="text/javascript"></script>
</head>
<body>
<div class="slide cover title">
  <h1 class="title">Debian Pure Blends</h1>
  <p class="author">
Jonas Smedegaard (&amp; Andreas Tille)
  </p>
  <p class="date">Hồ Chí Minh, Việt Nam, November 12th, 2010</p> 
</div>
<div class="slide">
<h1
>Overview</h1
><ul
><li
  >Debian is generic - Blends are specific</li
  ><li
  >Purity: all is Debian</li
  ><li
  >Why bother?</li
  ><li
  >Technical details</li
  ><li
  >Team, community, users</li
  ><li
  >Future</li
  ></ul
></div>
<div class="slide">
<h1
>Debian - the universal Operating System</h1
><ul
><li
  >Stable</li
  ><li
  >Flexible</li
  ></ul
><p
>Debian is the universal Operating System.</p
><dl
><dt
  >Goal</dt
  ><dd
  >Usable everywhere</dd
  ></dl
></div>
<div class="slide">
<h1
>Debian - very flexible...</h1
><ul class="incremental"
><li
  >Flexible: good</li
  ><li
  >Very flexible: very good</li
  ></ul
></div>
<div class="slide">
<h1
>Debian - <strong
  >too</strong
  > flexible!</h1
><ul
><li
  >Flexible: good</li
  ><li
  ><span style="text-decoration: line-through;"
    >Very flexible: very good</span
    ></li
  ><li
  >Very flexible: very confusing!</li
  ></ul
><p
>Debian is too flexible: confusing and to some even scary!</p
></div>
<div class="slide">
<h1
>Debian - ways to simplify</h1
><ol style="list-style-type: decimal;"
><li
  >Keep things as-is - educate users instead</li
  ><li
  >Remove choice</li
  ><li
  >Provide multiple defaults</li
  ></ol
></div>
<div class="slide">
<h1
>Debian - simple if generic defaults are ok</h1
><ul
><li
  >Mainstream (but not too new) hardware</li
  ><li
  >GNOME desktop</li
  ><li
  >Iceweasel web browser</li
  ><li
  >Exim MTA</li
  ><li
  >Apache web server</li
  ><li
  >MySQL database server</li
  ></ul
><p
>Debian <em
  >is</em
  > simple - if you happen to like its defaults.</p
></div>
<div class="slide">
<h1
>Debian Pure Blend - Debian for a specific purpose</h1
><p
>Debian Pure Blend (in short DDD): a subset of Debian configured to support a particular target group out-of-the-box.</p
><dl
><dt
  >Goal 1</dt
  ><dd
  >Turn Debian into the distribution of choice for a specific target group</dd
  ><dt
  >Goal 2</dt
  ><dd
  >Advertise this fact to the world to attract users and developers</dd
  ></dl
></div>
<div class="slide">
<h1
>Debian Pure Blend - technical parts</h1
><ul
><li
  >package selection(s)</li
  ><li
  >customizations</li
  ></ul
><p
>The concrete work to include as packages with official Debian.</p
></div>
<div class="slide">
<h1
>Debian Pure Blend - reality parts</h1
><ul
><li
  >goals &amp; noise about progress</li
  ><li
  >package health + encourage additional software packaging</li
  ><li
  >passion &amp; patience</li
  ><li
  >good relations with Debian package maintainers, competitors, and upstream authors</li
  ><li
  >good relations with users</li
  ></ul
><p
>Surrounding work making a Blend relevant.</p
></div>
<div class="slide">
<h1
>Debian Pure Blend - current blending projects</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
><p
>Projects working on Blends - some pure, some not (yet)...</p
></div>
<div class="slide">
<h1
>Debian Pure Blends - all Debian</h1
><ul
><li
  ><strong
    >D</strong
    >ebian packages - selections (e.g. for tasksel to pick up)</li
  ><li
  ><strong
    >D</strong
    >ebian configuration - use of policy-compliant package-provided interfaces</li
  ><li
  ><strong
    >D</strong
    >ebian distribution media - installing via Debian itself</li
  ></ul
><dl
><dt
  >DDD</dt
  ><dd
  ><strong
    >Debian</strong
    > packages <strong
    >Debian</strong
    > configured from <strong
    >Debian</strong
    > distribution</dd
  ></dl
></div>
<div class="slide">
<h1
>Debian Pure Blends - why bother?</h1
><p
>Nice on paper with ideals and priciples, but...</p
><p
>What's in it for me?!?</p
></div>
<div class="slide">
<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="slide">
<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="slide">
<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="slide">
<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="slide">
<h1
>Tech - Debian, generic setup</h1
><ul
><li
  >select package profile(s)</li
  ><li
  >install</li
  ></ul
></div>
<div class="slide">
<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="slide">
<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="slide">
<h1
>Tech - Debian Pure Blend = generic</h1
><ul
><li
  >select blend profile</li
  ><li
  >install</li
  ></ul
></div>
<div class="slide">
<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="slide">
<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
    >http://debian-med.alioth.debian.org/tasks/psychology</code
    ></a
  ></p
></div>
<div class="slide">
<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="slide">
<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="slide">
<h1
>Tech - good style</h1
><ul
><li
  >Aptitude</li
  ><li
  >debconf</li
  ><li
  >Config::Model</li
  ></ul
></div>
<div class="slide">
<h1
>Tech - When is it &quot;Pure&quot;?</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="slide">
<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="slide">
<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="slide">
<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="slide">
<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="slide">
<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="slide">
<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="slide">
<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>
</body>
</html>