Communication is a Technical Skill
-
Upload
sarah-allen -
Category
Software
-
view
1.516 -
download
2
Transcript of Communication is a Technical Skill
![Page 1: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/1.jpg)
COMMUNICATION IS A TECHNICAL SKILL
Sarah Allen@ultrasaurus
![Page 2: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/2.jpg)
![Page 3: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/3.jpg)
![Page 4: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/4.jpg)
![Page 5: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/5.jpg)
![Page 6: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/6.jpg)
![Page 7: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/7.jpg)
![Page 8: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/8.jpg)
![Page 9: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/9.jpg)
![Page 10: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/10.jpg)
![Page 11: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/11.jpg)
![Page 12: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/12.jpg)
![Page 13: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/13.jpg)
MAKING SOFTWARE FUN
![Page 14: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/14.jpg)
MAKING SOFTWARE FUN
![Page 15: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/15.jpg)
EXAMPLESSOCIAL CHANGE BUSINESS OPEN SOURCE
![Page 16: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/16.jpg)
COMMUNICATION PATTERNS
1. BIG VISION 2. CONCRETE STEP 3. THE PATH
![Page 17: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/17.jpg)
SOCIAL CHANGEBRIDGE FOUNDRY
![Page 18: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/18.jpg)
![Page 19: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/19.jpg)
Bridge Foundry Workshops
![Page 20: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/20.jpg)
DIVERSE TEAM CHILDCARE FOOD INSTALLFEST DAY OF CODING Bridge Foundry Workshops
![Page 21: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/21.jpg)
DIVERSE TEAM CHILDCARE FOOD INSTALLFEST DAY OF CODING Bridge Foundry Workshops
![Page 22: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/22.jpg)
DIVERSE TEAM CHILDCARE FOOD INSTALLFEST DAY OF CODING Bridge Foundry Workshops
![Page 23: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/23.jpg)
DIVERSE TEAM CHILDCARE FOOD INSTALLFEST DAY OF CODING Bridge Foundry Workshops
![Page 24: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/24.jpg)
DIVERSE TEAM CHILDCARE FOOD INSTALLFEST DAY OF CODING Bridge Foundry Workshops
![Page 25: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/25.jpg)
MOVING THE NEEDLE: HOW SF RUBY GOT TO 18% — SARAH MEI
![Page 26: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/26.jpg)
BUSINESSFIREBASE
![Page 27: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/27.jpg)
"HELP DEVELOPERS BUILD BETTER APPS AND GROW SUCCESSFUL BUSINESSES"James Tamplin
![Page 28: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/28.jpg)
![Page 29: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/29.jpg)
![Page 30: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/30.jpg)
FIFTEEN MINUTESDEVELOPER PRODUCTIVITY
![Page 31: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/31.jpg)
YOUR PRODUCT IS NOT JUST YOUR CODE
DOCUMENTATION, WEBSITE, BLOG GITHUB STACK OVERFLOW SOCIAL MEDIA CONFERENCE TALKS, MEETUPS, HACKATHONS,
![Page 32: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/32.jpg)
![Page 33: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/33.jpg)
![Page 34: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/34.jpg)
![Page 35: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/35.jpg)
MAKE PEOPLE FEEL POWERFUL
Judy Tuan presenting Firebase app: Mobile Graffiti
![Page 36: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/36.jpg)
OPEN SOURCERACK
![Page 37: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/37.jpg)
CHRISTIAN NEUKIRCHEN
HTTP://CHNEUKIRCHEN.ORG/BLOG/ARCHIVE/2007/02/INTRODUCING-RACK.HTML
![Page 38: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/38.jpg)
8 minutes on
Rackbased on a presentation byDan Webb ([email protected])@danwronghttp://slidesha.re/dan_on_rack
![Page 39: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/39.jpg)
![Page 40: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/40.jpg)
![Page 41: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/41.jpg)
![Page 42: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/42.jpg)
A Convention
![Page 43: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/43.jpg)
If you have a Ruby object...
![Page 44: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/44.jpg)
that has a call method which takes one argument...
app.call(env)
![Page 45: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/45.jpg)
and that method returns an array with 3 elements...
[200, { 'Content-Type' => 'text/plain' }, 'Hello World!']
![Page 46: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/46.jpg)
then you can connect it to any web server that supports Rack
require 'thin' Rack::Handler::Thin.run(app, :Port => 4000)
![Page 47: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/47.jpg)
and you've got yourself a web application
![Page 48: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/48.jpg)
That's it.
![Page 49: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/49.jpg)
For Example...
![Page 50: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/50.jpg)
app = Proc.new do |env| [200, { 'Content-Type' => 'text/plain' }, 'Hello World!'] end
require 'rubygems' require 'thin'Rack::Handler::Thin.run(app, :Port => 4000)
![Page 51: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/51.jpg)
class HelloWorld def initialize(name) @name = name end
def call(env) [200, { 'Content-Type' => 'text/plain' }, "Hello #{@name}!"] end end
require 'rubygems' require 'rack'Rack::Handler::Mongrel.run(HelloWorld.new("Dan"), :Port => 4000)
![Page 52: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/52.jpg)
def call(env)
![Page 53: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/53.jpg)
{ "SERVER_NAME"=>"localhost", "HTTP_ACCEPT_ENCODING"=>"gzip,deflate", "HTTP_USER_AGENT"=>"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en- GB; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4", "PATH_INFO"=>"/", "SCRIPT_NAME"=>"", "SERVER_PROTOCOL"=>"HTTP/1.1", "HTTP_ACCEPT_LANGUAGE"=>"en-gb,en;q=0.5", "HTTP_HOST"=>"localhost:4000", "REMOTE_ADDR"=>"127.0.0.1", "HTTP_KEEP_ALIVE"=>"300", "REQUEST_PATH"=>"/", "SERVER_SOFTWARE"=>"thin 0.8.2 codename Double Margarita", "HTTP_ACCEPT_CHARSET"=>"ISO-8859-1,utf-8;q=0.7,*;q=0.7", "HTTP_VERSION"=>"HTTP/1.1", "REQUEST_URI"=>"/", "SERVER_PORT"=>"4000", "QUERY_STRING"=>"", "GATEWAY_INTERFACE"=>"CGI/1.2", "HTTP_ACCEPT"=>"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "HTTP_CONNECTION"=>"keep-alive", "REQUEST_METHOD"=>"GET"}
![Page 54: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/54.jpg)
[200, { 'Content-Type' => 'text/plain' }, "Hello #{@name}!"]
Status Code
![Page 55: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/55.jpg)
[200, { 'Content-Type' => 'text/plain' }, "Hello #{@name}!"]
HTTP Headers
![Page 56: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/56.jpg)
[200, { 'Content-Type' => 'text/plain' }, "Hello #{@name}!"]
Response Body
![Page 57: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/57.jpg)
Response body can be any object that respond_to?(:each)
file = File.new('myfile.xml') [200, { 'Content-Type' => 'application/xml' }, file]
![Page 58: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/58.jpg)
For Example...
![Page 59: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/59.jpg)
class StreamingFile def initialize(file) @file = file end
def length File.size(@file) end
def last_modified File.mtime(@file).rfc822 end
def each File.open(@file, "rb") do |file| while part = file.read(8192) yield part end File.delete(@file) end end
![Page 60: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/60.jpg)
[200, { 'Content-Type' => 'audio/mp3', 'Content-Length' => file.length.to_s}, file]
![Page 61: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/61.jpg)
Common interface
![Page 62: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/62.jpg)
• Passenger
• Mongrel
• CGI
• SCGI
• FastCGI
• Thin
• Ebb
• Fuzed
• Webrick
• Litespeed
![Page 63: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/63.jpg)
Write once, serve however...
![Page 64: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/64.jpg)
Michael Basial: Light Bulbhttps://www.flickr.com/photos/basial/3010044632/
![Page 65: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/65.jpg)
WHAT WE DOCOMMUNICATION
![Page 66: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/66.jpg)
![Page 67: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/67.jpg)
ADOPTION OF LANGUAGES WITH NEW POWERS
ERLANG CLOJURE SCALA GO RUST SWIFT ELIXIR ELM
![Page 68: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/68.jpg)
FUNCTIONAL
ELIXIR ERLANG VM (2012) ELM JAVASCRIPT (2012) SCALA JAVA VM (2003)
CLOJURE JAVAVM (2007)
SWIFT iOS/Mac/Linux (2014)
HASKELL - 1990 ERLANG - 1986 ML - 1973 LISP - 1958
C - 1972 COBOL - 1959 FORTRAN - 1956
GO (2009)
JAVA - 1995 C++ - 1983OBJECTIVE C - 1984
SMALLTALK - 1972
JAVASCRIPT - 1995 RUBY - 1995
IMPERATIVEOBJECT-ORIENTED
RUST (2010)
![Page 69: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/69.jpg)
LEARN A NEW LANGUAGE
![Page 70: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/70.jpg)
LEARN A NEW LANGUAGE
MAKE A NEW LANGUAGE
![Page 71: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/71.jpg)
CODE IS COMMUNICATION
![Page 72: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/72.jpg)
WHAT WILL YOU SAY?
![Page 73: Communication is a Technical Skill](https://reader034.fdocuments.in/reader034/viewer/2022042907/588253251a28ab37158b7225/html5/thumbnails/73.jpg)
PHOTO CREDITS
▸ 13) Isaiah van Hunen: Face (original 1)https://www.flickr.com/photos/isaiah115/7301506118 https://creativecommons.org/licenses/by-sa/2.0/
▸ 14) photo by Lee Lundrigan
▸ 32) https://firebase.googleblog.com/2013/05/firebase-at-angelhack-sf-2013.html
▸ 64) Michael Basial: Light Bulb https://www.flickr.com/photos/basial/3010044632/
▸ 66) Wizard: http://mortal-affairs.wikia.com/wiki/Wizards