Avoimen kehityksen työkalut

Avoimien ohjelmien päivä

2005-04-16

Tommi Virtanen tv@inoi.fi

Kuka on Tommi Virtanen?

  • Linux-käyttäjä vuodesta 1993
  • Debian-kehittäjä vuodesta 1999
  • Yksityisyrittäjä vuodesta 1997
  • Kymmeniä avoimia projekteja

Mikä on Inoi?

  • tietotekniikan palveluyritys
  • palvelimia ja palveluita pk-yrityksille, kouluille, kunnalliselle sektorille
  • sähköposti, tallennuspalvelin, internet-palvelut, ohjelmistonkehitys
  • kaikki laitteistosta ylläpitoon
  • asiakaslähtöinen täyden palvelun organisaatio
  • http://www.inoi.fi/

Avoin kehitys

  • avoimien ohjelmien
  • avoimesti tapahtuva
  • kehitys

Kehitystyökalut

  • ohjelmointi
  • testaus
  • ylläpito
  • "power user"

Kirjastoja, protokollia

Postituslistat

Versionhallinta

Tikettienseuranta

Esimerkki: Bugzilla, 1/4

bugzilla-1.png

Esimerkki: Bugzilla, 2/4

bugzilla-2.png

Esimerkki: Bugzilla, 3/4

bugzilla-3.png

Esimerkki: Bugzilla, 4/4

bugzilla-4.png

Esimerkki: Trac, 1/3

trac-ticket-1.png

Esimerkki: Trac, 2/3

trac-ticket-2.png

Esimerkki: Trac, 3/3

trac-ticket-3.png

Wikit

Esimerkki: MoinMoin

moinmoin.png

Esimerkki: TWiki

twiki.png

Esimerkki: Trac, 1/2

trac-wiki-1.png

Esimerkki: Trac, 2/2

trac-wiki-2.png

Kääntäminen

  • make, ant, scons, pyb
  • autoconf, automake, libtool
  • ccache, distcc
  • fakeroot
  • chroot, virtuaalikone

Virtuaalikoneita

Virheiden etsintä, ehkäisy

  • splint, pychecker, linda
  • rats, flawfinder, pscan, sparse
  • valgrind, alleyoop, electric-fence, libsafe
  • junit, pyunit, trial, check
  • crashme, fuzz
  • sloccount, cflow

Debuggaus

  • gdb, ddd
  • strace, ltrace
  • fenris
  • lsof, netstat, ss

Editointi

  • emacs, vi, eclipse
  • grep -r, less
  • indent, cutils
  • tree

Esimerkki: emacs

emacs.png

Esimerkki: tree

tree.png

Massaeditointi

  • C-x ( ... C-x ) C-x e C-u C-u C-u C-x e
  • M-%
  • find | xargs
  • perl -p -i.bak -e 's/foo/bar/' file...
  • fromdos
  • recode

Muutosten manipulointi

  • diff, patch
  • meld
  • diffstat
  • patchutils, wiggle
  • quilt, patcher

Esimerkki: meld

meld.png

Koodin dokumentointi

  • epydoc
  • doxygen
  • cxref
  • lxr
  • doc++
  • source-highlight, enscript

Tekninen piirtäminen, visualisointi

Esimerkki: graphviz

graphviz

digraph ldap_is_a_tree {
  root [style=dashed];
  com [style=dashed, label="dc=com"];
...
  root -> com -> example_co [style=dashed];
  example_com -> {
    People_example_com;
    SomethingElse_example_com;
  };
  People_example_com -> {
    Accounting_People_example_com;
    Marketing_People_example_com;
    Sales_People_example_com;
    Support_People_example_com;
  }
  People_example_com -> {
    RAD_People_example_com;
  } [label="referral"];
...

Yleisempi dokumentointi

  • DocBook
  • HTML
  • man
  • LaTeX, LyX
  • OpenOffice.org
  • DocBook!

XML

  • xsltproc
  • libxml2-utils
  • xmldiff
  • xml2
  • nxml-mode
  • xmlstarlet
  • xmlto
  • tidy

Webbipalvelut

  • freshmeat.net
  • sourceforge.net, gforge.org, savannah.gnu.org, nongnu.org, ...
  • del.icio.us, blogit, planetit
  • google ("foo bar", groups, site:foo, ...)

Esimerkki: freshmeat

freshmeat.png

Esimerkki: del.icio.us

delicious.png

Webarkkitehtuuri

  • HTTP
  • XML
  • REST
  • XML-RPC
  • SOAP
  • Atom, vCard, iCalendar, RDF, FOAF, ...

Web-ohjelmointi

  • PHP :-(
  • Zope
  • Nevow
  • CherryPy
  • Quixote

Etäyhteydet

  • ssh, ssh-agent, ssh-add -c
  • rsync, zsync, rdiff
  • duplicity, unison
  • wget, jigdo, bittorrent

Tehokas työympäristö

  • ion2
  • unclutter
  • xwit
  • dvorak

Esimerkki: ruutukaappaus

screenshot.png

Sekalaisia

  • ascii, od -a, hexdump
  • tar, gzip, bzip2, atool
  • file, units, dict
  • socat, picocom
  • gnupg

Kiitos

Kysymyksiä?

Esitys verkossa http://eagain.net/talks/avoin-kehitys/