% Debian Pure Blends
% Jonas Smedegaard
% HCU, Hyderabad, October 21th, 2011

# Overview

  * Internet
  * Home
  * Debian
  * Debian Pure Blends
  * FreedomBox

# Internet

Internet is **parallel** to the real World

# Your mission in this World?

  * Astronaut?
  * Professor?
  * Mother?
  * Millionaire?

# Passion

  * ~~Missions~~
  * Passions!
  * Curiosity!

# Key elements in life (and computer life)

  * Passions
  * Curiosity
  * Home
  * Trust

# Home

  * Where you are **safe**
  * Where you can **store** goods
  * Where you can **fumble** and experiment

# Trust

  >* trust: feeling comfortable as guest in another home
  * proper trust == mutual trust

# Healthy environment

  * everyone has a **home**
  * everyone is driven by **passions**
  * everyone finds mutual **trust** in some others

# Debian - your new home?

  * **Independent** from commercial interests
  * Localized into **100+ languages**
  * Neighbourhood of **friendly** users
  * Maintained by **passionate** developers
  * You are **welcome to share** your passions as an **equal peer**

# Debian - the universal Operating System

  * Free Software
  * 100% created and governed by volunteers
  * Very very stable
  * Very very big
  * Flexible...

Debian is "the universal Operating System"

# Debian - very flexible...

> * Flexible: good
  * Very flexible: very good

# Debian - **too** flexible!

  * Flexible: good
  * ~~Very flexible: very good~~
  * Very flexible: very confusing!

Debian is maybe too flexible: confusing or even scary...

# Debian - ways to simplify

  1. Tolerate it: Use it as-is
  1. Remove choice: Use e.g. Ubuntu
  1. Use a Debian Pure Blend

# Debian - simple if generic defaults are ok

  * Mainstream (but not too new) hardware
  * GNOME desktop
  * Iceweasel web browser (= Firefox)
  * Exim MTA
  * Apache web server
  * MySQL database server

Debian *is* simple - if you like the defaults.

# Ubuntu - your new home?

  * Nicer than Debian - if you like the defaults

# Debian Pure Blend - Debian for a specific purpose

a subset of Debian configured to
support a particular target group out-of-the-box.

# Debian Pure Blend - current blending projects

  * Debian Jr
  * Debian Med
  * Debian Edu
  * Debian Science
  * Debian EzGo
  * BrDesktop
  * Debian Accessibility
  * Debian Lex
  * DebiChem
  * Debian GIS
  * Debian Multimedia

# Deebian Pure Blends - future blends

  * FreedomBox
  * Debian LAN

# Home alone...

  * Calls are lost when you are out
  * Friends cannot see your "wall" when you are out

# A bigger house for all your devices

  >* Your desktop/laptop
  * Your phone
  * Another computer at school or at a friend...

# Have a butler!

  * Lets friends in, holds back random guests (=spam)
  * shows guests what they are allowed to see (=wall)
  * ...

# Example: Store and play music

  >* Chat with butler
  * Make backup of your computer/phone
  * → Butler notice music files, and suggests starting jukebox
  * Chat with a friend
  * → Butler suggest sharing with friend what you are listening to
  * Friend also share jukebox status
  * → Butler 

# FreedomBox - your personal privacy manager

  * Provides tools to keep in control of your privacy

# FreedomBox - Dreams...

  * Follows your activities and learns your trust paths
  * Calculates new trust paths
  * Suggests use of the tools
  * 

# Tech - Debian, generic setup

  * select package profile(s)
  * install

# Tech - Debian, hand-tuned

  * select package profile(s)
  * select additional packages
  * install
  * (re)configure packages

# Tech - Debian, auto-tuned

  * pre-seed package selection
  * pre-seed package configurations
  * install
  * (re)configure non-debconf packages

# Tech - Debian Pure Blend = generic

  * select blend profile
  * install

# Tech - tasks involved

  * extra software → into Debian officially
  * manual configurations → preseeding
  * maybe create temporary dirty hacks
  * maybe use/create reusable tweaks
  * eliminate dirty hacks and tweaks
  * convince others in Debian to add as tasksel task

# Tech - blends-dev

Tool to help maintain package lists and prospective packages.

Example: <http://debian-med.alioth.debian.org/tasks/psychology>

# Tech - dirty tricks

Avoid configuration files...

  * config.d folders
  * databases
  * networked data

# Tech - tweaks

Reusable scripts compatible with one or more of...

  * FAI
  * hands-off at http://hands.com/d-i/
  * CFengine
  * Puppet

# Tech - good style

  * Aptitude
  * debconf
  * Config::Model

# Tech - When is it "Pure"?

When all is in Debian, with no dirty tricks:

  * package selection(s)
  * customizations
  * installation

# Team - getting involved

  * identify and isolate tweaks at your own system
  * register missing software - on wiki page or (better!) in Debian BTS
  * write documentation
  * write the dream of how things ought to work
  * wite how details work now
  * discuss downstream (i.e. with users and subdistros) how things work /
    should work
  * discuss upstream (i.e. with authors) what is possible now / soon

# Team - getting involved II

  * write intro for peer enthusiasts
  * decide and document ideal formats  - translations, graphics etc.
  * prioritize pending tasks - of various kinds to encourage many
    different contributions
  * document where it is ok to ask beginners' questions
  * document if beginners can ask for a mentor

# Team - getting involved III

  * make illustration
  * make screendumps
  * make fan graphics
  * make desktop backgrounds, CD covers, stickers, etc.
  * Register the project as a DOAP file, and maybe at Ohloh and Freshmeat
    etc.
  * Register and maintain relevant Debtags

# Team - getting involved IV

  * Translate package descriptions
  * Translate debconf dialogs
  * Translate upstream code

# Team - getting involved V

  * Help integrate contributions from graphics artists, translators and
    others
  * document decision processes of the team (and Debian and upstreams?)
  * document workflows in teams
  * insist on transparency - not only for code!

# Team - Continuous status checks

  * Ask users about their needs - you will forget over time!
  * Ask teams about their tasks - each participant has slightly different
    perception of the common vision and status
  * Ask upstreams about use: perhaps potentials are missed, or code or
    persons feel as being abused

# Debian Pure Blends - Future

 * debconf dontcare vs. explicit choice of default option
 * debconf query mechanism (and fill buffer from live system)
 * APT explicit choice of alternate dependency/recommendation
 * APT dontcare vs. explicit choice of default dependency/recommendation
 * Config::Model - semantic configfile handling

# Final words...

Be **passionate**!

**Share** your passion!

# Final words...

Be **passionate**!

**Share** your passion!

This talk: <http://dr.jones.dk/blends/talk/hcu/>