* Paving a Path to Greater Network Freedom ** Hello! : ,. ,-. : .'.-.-.-.- : ..-..-,.,.-..-- : ,.-. ' ' ' : '.,,- __--- -- : .-(\\ [ o]-[ o] : ', || _) | : | || ___ / : ___-/ _____/ : ./ |\ | : / | \ _ .\\ : | , |__| -'' |\\ : | | | \ | : | | | || - Who I am - What I work on - I love Guile/Guix! (And I see a big role for it...) ** The sad state of network (non-)freedom [[file:../static/nonfree/docker_failwhale-cropped.png]] Thanks Karen Rustad, for the great image! *** The dystopian, centralized status quo : _ _ : '"" '-, ,-' ""' : (( ( (', .==. ,') ) )) : (( ( ((\ ;.--.; /)) ) )) : (( ( (/ (|,\/,|) \) ) )) : ((( (| / \/ \ |) ))) : ;,( (\;, ,;/) ),; : .'(/ vvVVvv \)'. : (/(/.------.\)\) : ,---=| NSA |=---, : ,---=|------|=---, : ,---=|| || ||=---, : ,--=|| || ||=--, : \\ /'--,,--'\_// : E--""/,,\""--3 : \\ //||\\ // : '" '' "' *** The struggling decentralized vision : __ _ : -, \_,------,_// : <\ ,-- --.\ : / (x ) ( X ) : ' '--, ,--'\ : / \ -v-v-u-v / : . '.__.--__'.\ : / ',___/ / \__/' : | | ,'\_'/, || : \_| | | | | || : W',_ ||| |||_'' : | '------'| : |__| |_|_ : ,,,-' '-,,, **** We have good software Eg: - OwnCloud - MediaGoblin - Pump.io - GNU Social - Diaspora ... but ... **** It's too hard to run it : """""""" : " (_o (_o I AM GONNA BE HONEST WITH YA : G ,) ) : __/ (uuuu) I AM AFEARED TO UPGRADE MY OWN : / \ '-----' SOFTWARES : '--', : \ \ .--., : '_3| |)3 : '--' **** It's annoying to write it : , | , : ", ' ," : .--.--. : --- "-./o\.-" --- : '---' : /__|__\ : /_|__|__\ : /_|__|__|_\ : : THE PYRAMID OF DOOM : COMPELS YOU *** Are existing solutions actually solutions? : DOCKER DOCKER DOCKER DOCKER DOCKER DOCKER : __ : __|II| ,. : __|II|II|__ ( \_,/\ : -.-'-.-'-.-'-.-'- __|II|II|II|II|___/ __/ -'-.-'-.-'-.-'- : ---------------- | [Docker] / ------------------ : ---------------- : / ------------------- : ----------------- \____, o ,' -------------------- : ------------------ '--,___________,' --------------------- : : (MUSHROOM MUSHROOM) ** How Guix can help [[file:../chicagolug_2015/static/guixsd-logo-lighttext.png]] *** How I came to Guix **** The grand vision : Database type: : .------------------------------------------. : | [X] sqlite | : |------------------------------------------| : | database path: | : | [_/srv/mediagoblin/mediagoblin.db_] | : |==========================================| : | [ ] postgres | <- expands : |------------------------------------------| if selected : | [ ] mysql | : '------------------------------------------' [[file:~/org/opstimal.org::*Sketching%20out%20ideas][I spent a lot of time sketching out my own thing...]] - Recipe based deployment! - A nice web interface! - Implementations in Hy then Guile... **** "Why not Guix?" : ,,,,,,, : " -- -- NOT INVENTED : ( (o )( o)_____ HYORRRRP : G, _____) : )')UUUUU : ' --' *** Dropping the "userops acid test" Badly named! But: - Free as in Freedom - Reproducible + Reproducible packages + Reproducible systems - Recoverable + Recoverable data + Recoverable system - Friendly GUI - Scriptable - Collaboration friendly - Fleet manageable ** How Guile can help [[file:../chicagolug_2015/static/guile-logo.png]] Forget about Guix for a moment! What about the rest of Guile? *** What if we built libraries Libraries are necessary anyway, but could we take leadership? **** My own contribution: 8sync [[file:../static/8sync.png]] - live hackable - NO callback hell! - delimited continuations #+BEGIN_SRC scheme (define (my-func) (run-when-done (%8sync (complicated-io-procedure-here)))) #+END_SRC **** What else? - Web frameworks that are librejs compatible out of the bat - "Easy to use" federation and peer to peer libraries - Guile -> JS (or WebAssembly) stuff? *** Free as in Leadership (Wait, don't use that acronymn!) ** Thanks! But wait there's more... In just a minute! * The Community Guile Could Have (Or: Solving Worse is More Accessible) ** Setting the stage / introduction - I love Guile - I love Guix! - Guile's community has been very friendly to me - And I love this fellow: : \'. : \ '. .-****-. : \ \ * _* : _L__L_ _ * EVAL .' * : //~ ~ / / *.___.' * : G > // '. APPLY.' : / \\\\-------.,// *.____.* : / ' \\\______ |;3 : | \ \\ \// ** Guile could have a X community! *** Appealing / Welcoming Messaging matters! Good news, we're on track here... **** Old site [[../static/guile-website-archived-scaled.png]] (Or: on Guile and Athena) **** New site [[../static/guile-website-new-scaled.png]] A big *thank you* to sirgazil! *** Accessible : .. .. : \.-./ : \ (o o) \ : /\ /"""\ /\ : '' '' : BEWARE OF FALLING LAMBDAS! Where do you start as a Guile user? Emacs? Info? Little Schemer? SICP???? WIP: an alternate tutorial... file:///home/cwebber/devel/guile-tutorial/tutorial.html [[file:~/devel/guile-tutorial/simple-toys.skb]] *** Productive : __ _ : ,' ' '-_ : _ /___ ; : \ '-./ '._ , : '-.--'--, '-.,; : \," '=,_ /,\, : ,_ // 3,' : ,o ,._ / : O_--' O = : _____,; "= : '_'_,' --,.'-"' : " : ,--, : ( ( ( ) : '-_ ) '.' : .___) (___ | Libraries are important! (So is getting them in users' hands...) **** We need people to be able to install this stuff "Just package for Guix" A return of Guildhall? *** Diverse : /\_/\ '-___-' /\_/\ : / -.- \ / 0.0 \ / 0.0 \ : == _|_ == _ == _|_ == _ == _X_ == _ : / \ / \ / \ / \ / \ / \ : | || || | /\| | || || | /\| | || || | /\| : |_|_|_|_|_| |_|_|_|_|_| |_|_|_|_|_| **** Failure to embrace diversity is failure itself - "Computer science is now the top major for women at Stanford University" http://venturebeat.com/2015/10/09/computer-science-is-now-the-top-major-for-women-at-stanford-university/ - Carnegie Mellon (from 10% to 40% incoming women in CS) and potlucks See: A Cultural Perspective on Gender Diversity in Computing by Lenore Blum, Carol Frieze, Orit Hazzan, M Bernardine Dias **** No assholes : .----------. : | DON'T BE | : | A JERK | : '----------'_/\ : || / 0.0 \ : || == _|_ == _ : ( )_/ \ / \ : ''--/ || | /\| : |_|---|_|_| See also: "Assholes Are Killing Your Project" by Donnie Berkholz **** Outreach : .------. : ' __ ,- : / / \ / \ : || O .' ' O | : / || '-_-' | : .' \ / : .-' '._____.'\ : ' .' | : .-''. ./ / : .-' \___/ / : \ .' : '.___ _' : '---_______---' : \_/ \_/ - Diversity is necessary - Get involved in outreach organizations like Outreachy and OpenHatch - Assholes are killing your community - Read into PyCon - See also: Sarah Sharp's "What makes a good community?" http://sarah.thesharps.us/2015/10/06/what-makes-a-good-community/ *** Self-Aware : ( am I not as great ) : o ( as I think I am? ) : ,-''', .' : ( ,,( : ).uuuu) : / -' : : ( or am I better than ) : o ( I think I am? ) : ,-''', .' : ( , ,( : ).uuuu) : / -' : : : ,-''', : ( , ,( : G'uuuu) : ) -' : : apologies to shmorky - What's Guile good at? - Where do we want it to go? *** Robust Guile info has this section: [[info:guile-2.0#A%20Scheme%20of%20Many%20Maintainers][9.1.3 A Scheme of Many Maintainers]] ---------------------------------- Interesting stuff! But: #+BEGIN_SRC text 2016-01-07 16:56 Andy Wingo o [master] {origin/master} {origin/HE 2016-01-07 16:23 Andy Wingo o statprof: Add tree #:display-style. 2016-01-07 10:53 Andy Wingo o web: Be less strict when parsing en 2016-01-04 23:32 Andy Wingo o Remove unused function in simplify. 2015-11-30 12:09 Andy Wingo o Inline some helpers in intset.scm. 2016-01-04 22:43 Andy Wingo o Include missing #:simplify? option 2016-01-03 18:20 Andy Wingo o Don't serialize build through psynt 2016-01-03 18:18 Andy Wingo o Better CPS conversion for tests in 2016-01-03 18:15 Andy Wingo o Better partial evaluation of tests 2016-01-03 16:17 Andy Wingo o Better folding of branches on $valu 2016-01-03 16:16 Andy Wingo o Eta-reduce branches 2015-12-30 17:14 Andy Wingo o Fix module for reification of srfi- 2015-12-26 21:27 Andy Wingo o Type inference copes better with un 2015-12-26 20:16 Andy Wingo o Fix bug in intmap-map 2015-12-26 15:11 Andy Wingo o Assembler O(n) in instruction encod 2015-12-26 15:11 Andy Wingo o Fix emit-receive* for many locals ... #+END_SRC - Can we improve this? - Bugs on the tracker/lit - Is there a way to bring more community triage, etc into the project? - This is not a criticism as much as an opportunity - It feels like we're on the verge of something big. Can we capture this moment? ** Conclusions / thanks / questions? *** Worse is more accessible? - We need to make it easy to get started - We need to lower the intimidation factor - We need to be active on outreach *** The community we could have **** A tower for wizards? [[file:../chicagolug_2015/static/sicp_wizard.jpg]] # PS: (I love wizards and SICP!) **** A playground for everyone? [[file:../chicagolug_2015/static/new_guile_website-crop.png]] We can probably have both, and there's no need to lose our roots, only things to gain! *** Thank you! : * : /\ : /\ /o \ /\ ,--,/,----, : / / /_ _o\ \ \ ( ) : \ \__.' ' './ / _,'-----,__,;_ : \___.---'---___/ *CLINK!* '.-. .-. / -, : / @ @_ .-. .-. >' : / ) _ ' |~|,, (o ) (o ) ) : ;_-' _(,\__,) | |\/\ '-, ,--', ',-, : / \ \'uuuu' '.' '-' '-v-v-v-'_' ) : ,' "", '---'. ,|. 3')\,'------' ,-' \ : / """,--, '-'|_| |_/ / (\,)__,' ; : / / '"\\\'--- \_ ; / ' \ \ | Both of these talks dual licensed under CC BY-SA 4.0 and the GNU GPL v3 (or later as published by the FSF)