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"
Esimerkki: Bugzilla, 1/4
Esimerkki: Bugzilla, 2/4
Esimerkki: Bugzilla, 3/4
Esimerkki: Bugzilla, 4/4
Esimerkki: Trac, 1/3
Esimerkki: Trac, 2/3
Esimerkki: Trac, 3/3
Esimerkki: MoinMoin
Esimerkki: TWiki
Esimerkki: Trac, 1/2
Esimerkki: Trac, 2/2
Kääntäminen
- make, ant, scons, pyb
- autoconf, automake, libtool
- ccache, distcc
- fakeroot
- chroot, virtuaalikone
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
Esimerkki: tree
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
Koodin dokumentointi
- epydoc
- doxygen
- cxref
- lxr
- doc++
- source-highlight, enscript
Tekninen piirtäminen, visualisointi
Esimerkki: 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
Esimerkki: del.icio.us
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
Sekalaisia
- ascii, od -a, hexdump
- tar, gzip, bzip2, atool
- file, units, dict
- socat, picocom
- gnupg