software design patterns and lessons learned from nature - jaromil

20
Software Design patterns between Agile and Permaculture Denis “Jaromil” Roio Dyne.org CTO and co~founder Agile and Software Architecture Symposium 28 September 2016, Arnhem

Upload: avisi-bv

Post on 24-Jan-2017

72 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Software design patterns and lessons learned from nature - Jaromil

Software Design patterns between Agile and Permaculture

Denis “Jaromil” RoioDyne.org CTO and co~founder

Agile and Software Architecture Symposium28 September 2016, Arnhem

Page 2: Software design patterns and lessons learned from nature - Jaromil

­ Roots: hacker community from the BBS times (est. 1999)

­ Now: think &do tank (not for profit software house)

­ Free and open source, towards recycling of existing tech 

­ Simplicity, minimalism, UNIX principles... GNU furrr

­ Resilience, long term, community based approach

Leading EU research onblockchain, currencyand p2p economies

Page 3: Software design patterns and lessons learned from nature - Jaromil
Page 4: Software design patterns and lessons learned from nature - Jaromil
Page 5: Software design patterns and lessons learned from nature - Jaromil

follow: @Jaromil @Dyneorg

Permaculture: an approach to the design of human settlements and agricultural systems.

Focuses on:

­ obtain a yield for human needs­ aim to create stable and productive systems­ mimic the relationships found in natural ecology­ harmoniously integrate the land with its inhabitants

Historical colocation:

­ Traditional (pre­industrial) agriculture was labor intensive­ Industrial agriculture is fossil fuel intensive­ Permaculture is design and information intensive

Page 6: Software design patterns and lessons learned from nature - Jaromil

follow: @Jaromil @Dyneorg

Observation: observation of the subject during all possible occurring circumstances and transformations of its context.

Boundaries: individuation of the boundaries touched by the subject, the surface of interaction with other subjects.

Resources: inventory of resources the subject can dispose of, what comes and goes from and to  outside.

Evaluation: analysis of how elements interact and define the subject, establishing the nature of the project.

Design: definition and mapping of the subject, imagining it in all its possibly different aspects.

Implementation: plan how to realise the subject, creating a plan of action for its full realisation.

Maintain: consideration of the maintenance aspects involved by the design and its sustainability.

Page 7: Software design patterns and lessons learned from nature - Jaromil

follow: @Jaromil @Dyneorg

Page 8: Software design patterns and lessons learned from nature - Jaromil

follow: @Jaromil @Dyneorg

Work to assuage fears, to celebrate positive results. Be patient if things get sticky. When all else fails, return to ways to create even more community. Do anything else you can to bring people closer. Celebrate every small success with food.

Peter Schuh, 2004 “Integrating agile development in the real world”

We make our software very portable and we make our software standardized so that other people can easily have portability, so we are aiding portability from every possible direction. Meanwhile, you see Microsoft deliberately introducing incompatibilities and deliberately blocking interoperability.

Richard M. Stallman, 2004

Page 9: Software design patterns and lessons learned from nature - Jaromil

follow: @Jaromil @Dyneorg

Page 10: Software design patterns and lessons learned from nature - Jaromil

follow: @Jaromil @Dyneorg

Page 11: Software design patterns and lessons learned from nature - Jaromil

follow: @Jaromil @Dyneorg

Git.Devuan.org (gitlab)

251  Projects381  Forked packages698  Active Users149  SSH Keys1079 Issues

Page 12: Software design patterns and lessons learned from nature - Jaromil

follow: @Jaromil @Dyneorg

Devuan is a base for:

Gnuinos gnuinos.org

Refracta ibiblio.org/refracta

Nelum­dev1  sourceforge.net/projects/nelum­dev1

Star sourceforge.net/projects/linnix

Zephyr sourceforge.net/projects/zephyrlinux

… and soon dyne:bolic, HEADS and more...

Page 13: Software design patterns and lessons learned from nature - Jaromil

follow: @Jaromil @Dyneorg

devuan.kalos.mine.nuPowered by Linux­Speakup.orgThe amd64 image requires only 74 MB of RAM to bootthe i386 image can boot with with as little as just 58 MB of RAM.

Base system: GNU coreutils, busybox, sysvinit, bash, dash, syslinux, zsh, locales, consoledata, util­linux­locales

Admin/Recovery: debootstrap, gddrescue, gdisk, htop, iftop, iotop, ncdu, parted, wavemon, wireless­tools, wpa_supplicant

Editors: vim­tiny, zile (Emacs clone), nanoNetworking: bittornado, curl, fetchmail, ftp, irssi, links2, mcabber, minicom, 

mosh, msmtp, mutt, netcat, nrss, openssh­client, openssh­server, procmail, rsync, telnet, tin, w3m, wget

Personal productivity: abook, aspell, clex, fbi/fbgs, fbterm, ghostscript, gpg, mc, screen, tmux

Programming languages: ANSI C (tcc + libc6­dev), Perl (minimal), python (minimal), awk (gawk), guile

Games: bastet, bombardier, bsdgames, cavezofphear, crawl, curseofwar, empire, freesweep, gnuchess, greed, matanza, moria, nethack, ninvaders, omega­rpg, pacman4console, pente, sudoku

Accessibility: beep, brltty, espeak, espeakup, yasrMultimedia: caca­utils, hasciicam, imagemagick, jhead, moc, radio, soxMiscellanea: cmatrix, cowsay, figlet, fortune­mod, gpm, termsaver, toilet

Page 14: Software design patterns and lessons learned from nature - Jaromil

follow: @Jaromil @Dyneorg

Devuan's device targets(so far)

devuan_jessie_1.0.0-beta_amd64_cloud.qcow2devuan_jessie_1.0.0-beta_amd64_opennebula.qcow2devuan_jessie_1.0.0-beta_amd64_vagrant.box

devuan_jessie_1.0.0-beta_armhf_bananapi.img.xzdevuan_jessie_1.0.0-beta_armhf_bananapro.img.xzdevuan_jessie_1.0.0-beta_armhf_beagleboneblack.img.xzdevuan_jessie_1.0.0-beta_armhf_chromeacer.img.xzdevuan_jessie_1.0.0-beta_armhf_cubieboard2.img.xzdevuan_jessie_1.0.0-beta_armhf_cubietruck.img.xzdevuan_jessie_1.0.0-beta_armhf_odroidxu.img.xzdevuan_jessie_1.0.0-beta_armhf_raspi2.img.xz

Page 15: Software design patterns and lessons learned from nature - Jaromil

follow: @Jaromil @Dyneorg

STAGE1: bootstrapSTAGE2: blendSTAGE3: pack

- arm-sdk: ARM stream for sdk stage3- cli-sdk: commandline facilitation- blends-sdk: layered definitions- live-sdk: live system- vm-sdk: virtual machine packing- libdevuansdk: shared functions

Zsh

Page 16: Software design patterns and lessons learned from nature - Jaromil

follow: @Jaromil @Dyneorg

A framework for remuneration 

and authentication of on­line

and off­line transactions on top

Of multiple blockchain backends,

fully integrated in the D­CENT project.

DCENTproject.eu

Tools.DCENTproject.eu

Freecoin.ch

Freecoin

Page 17: Software design patterns and lessons learned from nature - Jaromil

FOR: Participatory and democratic organisationsWHO: want to incentivise participationIS: a set of tools that lets people run a reward schemethat is transparent and auditable to other organisationsUNLIKE: centralised banking databasesIT IS: a social digital currency that is reliable,

simple and resilient

Freecoin in brief

Page 18: Software design patterns and lessons learned from nature - Jaromil

Freecoin in brief

WHAT: web application offering a RESTful APIHOW: used stand­alone or integrated into systemsWHY: facilitate value circulation

   and identity managementFEATURES: multi­signature authentication,

off­line transactions (redeemable vouchers)support for multiple blockchains as backend

WHERE: community markets,POS, ticket systems,voting tokens, etc.

Page 19: Software design patterns and lessons learned from nature - Jaromil

follow: @Jaromil @Dyneorg

Context Awareness HUBfor the Internet of Things

Dowse.EU

Github.com/Dyne/Dowse

Dowse is supported by:

Page 20: Software design patterns and lessons learned from nature - Jaromil

follow: @Jaromil @Dyneorg

Thanks for your interest!

Contact: Jaromil @ dyne.orgalso on IRC.dyne.org #dyne or around Freenode

Dyne.org stichting ideas? we welcome

Haparandadam 7­A1 your proposals!

1013AK, Amsterdam

“ook nice, but enough… where is the code?”

Github.com/Dyne ­ git.Dyne.org