Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Retaking Control of the Web

48 views

Published on

Sandro Pasquali
Bulldog and Fisk
Overview
Remember when you were in control? The web unleashed the creativity of everyone with a computer, creating new careers and new companies for anyone who could stand up a website or more. Through consolidation great fortunes were made. The measurement of a “successful website” then underwent inflation. If it wasn’t in the cloud with millions of members it wasn’t worth your time. Individuals stopped participating in the web. We stopped believing that small groups of future-minded developers not aligned with a handful of companies could make a difference.

Technology is now available to the average developer to build great things locally, privately and for profit. You will see demonstrated a powerful offline-first content platform augmented with an NLP-powered conversational interface. You will learn how to use CouchDB, running on a single laptop, to synchronize private data amongst a distributed peer group of friends and applications. Keybase.io will be integrated into a distributed, encrypted, communication system. You will learn how to use Node.js to program flows between web-based APIs to collect, curate, and circulate information for profit – IFTTT for information sharing, without learning another password or giving away your data, or the valuable data of your friends.

Objective
Learn how to build networked software that you control and profit from, online or off

Target Audience
Web-first developers who believe in privacy and freedom, who are makers and aren’t afraid of writing some code

Assumed Audience Knowledge
Familiarity with building servers and creating websites, JavaScript(Node.js) and connecting to and using APIs

Level
Intermediate

Five Things Audience Members Will Learn
How Keybase.io is taking encryption mainstream, and how to build apps on top of it
The new kinds of applications CouchDB and masterless data synchronization allow
How to build advanced chatbots using NLP and other AI-driven productivity tools
How APIs and cloud services can be domesticated, allowing individuals to “program the network” using Node.js and JavaScript
How JSONSchemas can be used to secure open software and network interfaces

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Retaking Control of the Web

  1. 1. Retaking Control of the Web Sandro Pasquali <spasquali@gmail.com>
  2. 2. Agenda 1. A reset 2. Projecting Influence; demo 3. Credit where credit is due
  3. 3. Cal Newport, “Deep Work” Peter Lunenfeld “The Secret War Between Downloading and Uploading” Jaron Lanier “You are not a Gadget”
  4. 4. This friendly gent is an elevator operator
  5. 5. “Operators should be free from serious physical or mental defects”
  6. 6. “Movement of switch toward car gate causes elevator to go down. Movement of switch away from gate causes elevator to go up. Speed of car can usually be controlled by amount of movement of car switch”
  7. 7. “Operators never give information or make statements, either written or verbal, in connection with accidents occurring in the building. If statements are to be made, they must be given in presence of building manager or supervisor.”
  8. 8. This is a a mediated relationship between a technology and a user of that technology. Your relationship with the elevator is managed for you by a 3rd party
  9. 9. Then someone realized that the job of elevator operator was unnecessary. The managed relationship between you and elevator technology was disintermediated, and that is why we don't have elevator operators anymore.
  10. 10. You don’t need someone to push buttons for you
  11. 11. Your laptop is a networked device that affords you enormous power
  12. 12. The Web keeps getting easier to use
  13. 13. Introducing Projector
  14. 14. Software that runs locally and offline, using JavaScript and Node.js, and Web APIs
  15. 15. Marko SSR A declarative UI toolkit
  16. 16. Stencils & Stamps morphdom (choo.io)
  17. 17. <w-channel workspace="#editor-stream-container" commands="brain show search slack send sms email tweet help. math set unset get list new delete. forget. save. publish contacts. extract info. play read stop. assignments. analyze. intel" />
  18. 18. Apps and Widgets
  19. 19. JSONSchemas and configuration (demo)
  20. 20. The Web as a Database. Extract and Extend
  21. 21. { "type": "object", "properties": { "url": { "type": "string" }, "selector": { "type": "string" } }, "required": ["url","selector"] }
  22. 22. https://github.com/mozilla-services/react-jsonschema-form
  23. 23. Where are Streams stored? CouchDB
  24. 24. Web-first, masterless synchronizing database (demo)
  25. 25. PouchDB var db = new PouchDB('dbname'); db.put({ _id: 'dave@gmail.com', name: 'David', age: 69 }); db.changes().on('change', function() { console.log('Ch-Ch-Changes'); }); db.replicate.to('http://example.com/mydb');
  26. 26. RiveScript and NLP
  27. 27. Command Files (demo)
  28. 28. cmd_publish: { triggers: [ `publish [to] (amp|fbia|web) [as] (public|private) (${types})` ], help: [`…`], args: '<star1> <star2> <star3>', handler: (rs, args) => new rs.Promise(async resolve => { try { const data = await userData(rs); if(args[1] === 'undefined') { const doc = await data.userDB.get(); const curDoc = doc.currentDocument; args = [ curDoc.domain, curDoc.visibility, args[0] === 'undefined' ? curDoc.type : args[0] ]; } resolve(await data.docDB.publish(args));
  29. 29. keybase.io Keybase is an end-to-end PGP-based encrypted chat option that relies entirely on cryptography and validation that’s in your control +
  30. 30. keybase.io identities are proven and validated through social media accounts, websites, Bitcoin, and other methods. No phone numbers.
  31. 31. Use keybase as a secure messaging layer (demo)
  32. 32. keybase_sender: { triggers: [`send [to] (keybase|slack)`], help: [`send [to] (keybase|slack)`, `Publish current document and send link to Keybase or Slack.`], args: '', handler: (rs, args) => new rs.Promise(async resolve => { try { const data = await userData(rs); const doc = await data.userDB.get(); const publishedUrl = doc.currentDocument.publishedUrl; keybase.chatSend({ channel: { "name": "sandro_pasquali", "public": false, "members_type": "team", "topic_type": "chat", "topic_name": "WebUnleashed" }, message: { body: publishedUrl } }, (err) => { return err ? resolve(`Keybase Send error: ${err.message}`) : resolve(`Sent`); }); } catch(err) { resolve(err); } }) }
  33. 33. This is a Caddis fly larva
  34. 34. These insects construct a food sieve that is marvelous
  35. 35. Does anyone in this room believe the larva has a blueprint of the sieve in its “brain”?
  36. 36. Humans create something similar. It’s called a “lobster trap”
  37. 37. Humans definitely design and represent the design, in their brains and elsewhere.
  38. 38. When we see competence we assume comprehension
  39. 39. The larva doesn’t understand what it is doing. It just does. Evolution.
  40. 40. Much of the Web is built up by individuals who don’t understand what their labor is creating (like Facebook)
  41. 41. The Web evolves. It isn’t “for” something.
  42. 42. Nobody “owns” any part of the Web. Having the largest market share doesn’t imply teleology: Google isn’t the company whose C-suite had a lone view into the “meaning” of Web Search. New mutations will, and should, happen. Via the Web.

×