75
think locally code globally code4lib JAPAN - 2013-09-01 - 南三陸町 @dchud - Daniel Chudnov - dchud @ gwu edu * equidistant conic map w/d3 by mbostock, http://bl.ocks.org/mbostock/3734317 *

think locally, code globally - dchud's code4lib japan 2013 talk

Embed Size (px)

Citation preview

Page 1: think locally, code globally - dchud's code4lib japan 2013 talk

think locallycode globally

code4lib JAPAN - 2013-09-01 - 南三陸町@dchud - Daniel Chudnov - dchud @ gwu edu

* equidistant conic map w/d3 by mbostock, http://bl.ocks.org/mbostock/3734317

*

Page 2: think locally, code globally - dchud's code4lib japan 2013 talk

英語で、どうもすみません

Page 3: think locally, code globally - dchud's code4lib japan 2013 talk

slideshare.net / dchud

please follow along!

Page 4: think locally, code globally - dchud's code4lib japan 2013 talk

memy employer

my community

{local

global}

Page 5: think locally, code globally - dchud's code4lib japan 2013 talk

me • employer • communityemployer • community • mecommunity • me • employerme • community • employercommunity • employer • meemployer • me • community

Page 6: think locally, code globally - dchud's code4lib japan 2013 talk

*自己紹介• hacker / librarian

• jake - early link resolver

• prospero - early web document delivery

• oss4lib.org - pro-free/libre/open source site

* self-introduction

{yale

Page 7: think locally, code globally - dchud's code4lib japan 2013 talk

• dspace

• code4lib

• coins / unapi

• wdl.org

• chronicling america

• pb-scale content mgmt

• twitter{lc

{mit

{yale

Page 8: think locally, code globally - dchud's code4lib japan 2013 talk

manager{gwu

Page 9: think locally, code globally - dchud's code4lib japan 2013 talk

hacking codehacking culture

in libraries!

Page 10: think locally, code globally - dchud's code4lib japan 2013 talk

HACK OR DIE! *

* @tzhaya, code4lib 2011

Page 11: think locally, code globally - dchud's code4lib japan 2013 talk

let’s focuson

culture

Page 12: think locally, code globally - dchud's code4lib japan 2013 talk

code4lib - the beginning

• web4lib

• xml4lib

• perl4lib

• php4lib

• python4lib?

~2002

Page 13: think locally, code globally - dchud's code4lib japan 2013 talk

all the same people 4 lib

Page 14: think locally, code globally - dchud's code4lib japan 2013 talk

how aboutjust

“code4lib”?

Page 15: think locally, code globally - dchud's code4lib japan 2013 talk

2002 - list2003 - irc

2004 - more people2005 - mini conference2006 - real conference

2007 - journal2009 - local

2010 - JAPAN2012 - job board

Page 16: think locally, code globally - dchud's code4lib japan 2013 talk

why this success?•we needed each other

•we removed divisions

•we welcomed new people

• the time was right

•a good culture hack!

Page 17: think locally, code globally - dchud's code4lib japan 2013 talk

see something we need?

go do it!

Page 18: think locally, code globally - dchud's code4lib japan 2013 talk

a“rough consensus

andrunning code”

community culture

Page 19: think locally, code globally - dchud's code4lib japan 2013 talk

I made this, w/code! flickr.com/photos/dchud/4205315880/

Page 20: think locally, code globally - dchud's code4lib japan 2013 talk

membersself-identify

andself-select

Page 21: think locally, code globally - dchud's code4lib japan 2013 talk

that’sit!

Page 22: think locally, code globally - dchud's code4lib japan 2013 talk

it’s rough sometimesbut it (mostly) works

Page 23: think locally, code globally - dchud's code4lib japan 2013 talk

it’smy community

now, it’syour community

tooようこそ!

Page 24: think locally, code globally - dchud's code4lib japan 2013 talk

...back tomy employer...

Page 25: think locally, code globally - dchud's code4lib japan 2013 talk

hacking cultureat

GW Librariesin

several steps

Page 26: think locally, code globally - dchud's code4lib japan 2013 talk

we writecode for libraries

among many other things, but this is code4lib, so...

Page 27: think locally, code globally - dchud's code4lib japan 2013 talk

goal: writemeaningful codethat helps people

reliably well

Page 28: think locally, code globally - dchud's code4lib japan 2013 talk

how?

Page 29: think locally, code globally - dchud's code4lib japan 2013 talk

we use githubextensively

github . com / gwu - libraries

Page 30: think locally, code globally - dchud's code4lib japan 2013 talk
Page 31: think locally, code globally - dchud's code4lib japan 2013 talk

we use auniversity-approvedfree software license

Page 32: think locally, code globally - dchud's code4lib japan 2013 talk

MIT-style

Page 33: think locally, code globally - dchud's code4lib japan 2013 talk

step 0 - write codestep 1 - share code

but...

Page 34: think locally, code globally - dchud's code4lib japan 2013 talk

we did not talk with each other

enoughabout our code

Page 35: think locally, code globally - dchud's code4lib japan 2013 talk

a“rough code

andno consensus”local culture

Page 36: think locally, code globally - dchud's code4lib japan 2013 talk

two ways to talk about code

•review each other’s code

•read other people’s code

Page 37: think locally, code globally - dchud's code4lib japan 2013 talk

code review

Page 38: think locally, code globally - dchud's code4lib japan 2013 talk

old workflow:

make a change,publish the change

Page 39: think locally, code globally - dchud's code4lib japan 2013 talk

new workflow:

propose a change,someone else decides

whether to publish

Page 40: think locally, code globally - dchud's code4lib japan 2013 talk

use github culture

• create a git branch

• commit changes locally

• push branch to github

• create a pull request

• review each others’ pull requests

Page 41: think locally, code globally - dchud's code4lib japan 2013 talk

≥2 people seeevery change

and discuss issues

Page 42: think locally, code globally - dchud's code4lib japan 2013 talk

takea global practice

makea local workflow

Page 43: think locally, code globally - dchud's code4lib japan 2013 talk

code read

Page 44: think locally, code globally - dchud's code4lib japan 2013 talk

code read• once per week

• open up some code on github

• read it together

• include colleagues from other departments

• so far: pymarc, bagit.py, bento_search (ruby/rails), arduino, catmandu (perl)

Page 45: think locally, code globally - dchud's code4lib japan 2013 talk

why read code?

• people ask questions

• teach each other about how code works

• no ego - somebody else’s code!

Page 46: think locally, code globally - dchud's code4lib japan 2013 talk

who’s qualified?

•everyone who comes!

• self-selected - if you want to attend, you’re qualified

•acknowledge, temper Imposter Syndrome *

* wikipedia.org/wiki/Impostor_syndrome

Page 47: think locally, code globally - dchud's code4lib japan 2013 talk

code read benefits• engages non-coder specialists in

algorithmic thinking

• engages coder in other areas of specialization

• deepens respect for each other

• helps non-coders talk about code

• helps coders talk with each other

Page 48: think locally, code globally - dchud's code4lib japan 2013 talk

makea local practice

share it globally

Page 49: think locally, code globally - dchud's code4lib japan 2013 talk

step 0 - write codestep 1 - share code

step 2 - talk about code

Page 50: think locally, code globally - dchud's code4lib japan 2013 talk

next:grow the culture

include more people

Page 51: think locally, code globally - dchud's code4lib japan 2013 talk

two ways to add people

•connect local people to global code4lib

•solve local problems via global code4lib

Page 52: think locally, code globally - dchud's code4lib japan 2013 talk

i used to thinkeveryone should code

Page 53: think locally, code globally - dchud's code4lib japan 2013 talk

then i saw this

Page 54: think locally, code globally - dchud's code4lib japan 2013 talk

we code4libbersself-select

Page 55: think locally, code globally - dchud's code4lib japan 2013 talk

new goal:

connect one localcolleague

to code4lib

Page 56: think locally, code globally - dchud's code4lib japan 2013 talk

benefits

• new person connects, contributes to broader community

• bridges code4lib through their own unique experience

• brings in ideas, projects from community i’d miss

Page 57: think locally, code globally - dchud's code4lib japan 2013 talk

risks

•might not like it at all

• might like it a lot!

•might find another job

Page 58: think locally, code globally - dchud's code4lib japan 2013 talk

i accept those risksgladly

Page 59: think locally, code globally - dchud's code4lib japan 2013 talk

step 0 - write codestep 1 - share code

step 2 - talk about codestep 3 - add more people

Page 60: think locally, code globally - dchud's code4lib japan 2013 talk

good news:

this scales!

Page 61: think locally, code globally - dchud's code4lib japan 2013 talk

code4libconf history

• 2005 - 10 people, no real plan

• 2006 - 80+ people, planned out

• 2013 - 380 people, full agenda, and attendees from Europe and Japan!

Page 62: think locally, code globally - dchud's code4lib japan 2013 talk

we have a good mix

but there aremore risks

Page 63: think locally, code globally - dchud's code4lib japan 2013 talk

1.

what are thesocial bottlenecks? *

* with apologies and gratitude to @i2k for the idea

Page 64: think locally, code globally - dchud's code4lib japan 2013 talk

bottlenecks to community growth

• perception of cliques - hard for new people

• more overhead for organizing

• sometimes hard to stick with “rough consensus”

Page 65: think locally, code globally - dchud's code4lib japan 2013 talk

biggest bottleneck

• missing opportunities to grow stronger together through better understanding of our differences and vulnerabilities *

* see @eosadler’s code4lib 2013 talk

Page 66: think locally, code globally - dchud's code4lib japan 2013 talk

2.

give new peoplea real chanceto help lead

Page 67: think locally, code globally - dchud's code4lib japan 2013 talk

“...growing [wikipedia] requires making it easier and more rewarding to contribute

occasionally.” *

* aaronsw, “Who Writes Wikipedia?”

Page 68: think locally, code globally - dchud's code4lib japan 2013 talk

3.

fast, cheap, goodはやい、やすい、うまい

which two?* thanks again to @i2k for inspiration

Page 69: think locally, code globally - dchud's code4lib japan 2013 talk

connect fast,connect well

はやい、うまい!

Page 70: think locally, code globally - dchud's code4lib japan 2013 talk

like meaningful code,meaningful relationships

take timeand are never cheap

Page 71: think locally, code globally - dchud's code4lib japan 2013 talk

summary

Page 72: think locally, code globally - dchud's code4lib japan 2013 talk

invest in these connections

for yourself,for your employer,for our community

Page 73: think locally, code globally - dchud's code4lib japan 2013 talk

when youconnect globally

you improveyour work locally

Page 74: think locally, code globally - dchud's code4lib japan 2013 talk

optimizefor

participation

Page 75: think locally, code globally - dchud's code4lib japan 2013 talk

please keep in touch!

@dchud