SlideShare a Scribd company logo
1 of 95
Download to read offline
NoSQL
    Death	
  to	
  Relational	
  Databases(?)
    bensco'ield	
  –	
  viget	
  labs
    rubyconf
    20	
  november	
  2009




Friday, November 20, 2009
Motivations



Friday, November 20, 2009
Performance



Friday, November 20, 2009
Friday, November 20, 2009
Scalability



Friday, November 20, 2009
Friday, November 20, 2009
Friday, November 20, 2009
Flexibility



Friday, November 20, 2009
Friday, November 20, 2009
Locus	
  of	
  Work



Friday, November 20, 2009
Charlie	
  Chaplin




                                                               Jet	
  Li



                            Hank	
  Mann

                                           Marian	
  Collier



Friday, November 20, 2009
Domain	
  Complexity



Friday, November 20, 2009
Friday, November 20, 2009
Taxonomy



Friday, November 20, 2009
Key-­‐Value	
  Stores



Friday, November 20, 2009
distributed	
  hash	
  tables



Friday, November 20, 2009
Dynamo
     GT.M
     PStore
     Redis



Friday, November 20, 2009
Column-­‐Oriented	
  Stores



Friday, November 20, 2009
semi-­‐structured



Friday, November 20, 2009
BigTable
     Cassandra
     HBase



Friday, November 20, 2009
Document-­‐Oriented	
  Stores



Friday, November 20, 2009
also	
  semi-­‐structured



Friday, November 20, 2009
CouchDB
     MongoDB
     RDDB
     Riak



Friday, November 20, 2009
Graph	
  Databases



Friday, November 20, 2009
graph	
  theory



Friday, November 20, 2009
ActiveRDF	
  
     AllegroGraph
     Neo4J



Friday, November 20, 2009
Comparisons



Friday, November 20, 2009
Performance



Friday, November 20, 2009
key-­‐value	
  stores
                            column-­‐oriented	
  stores
                            document-­‐oriented	
  stores
                            relational	
  databases
                            graph	
  databases


Friday, November 20, 2009
Scalability



Friday, November 20, 2009
key-­‐value	
  stores
                            column-­‐oriented	
  stores
                            document-­‐oriented	
  stores
                            relational	
  databases
                            graph	
  databases


Friday, November 20, 2009
Flexibility



Friday, November 20, 2009
key-­‐value	
  stores
                            document-­‐oriented	
  stores
                            graph	
  databases	
  
                            column-­‐oriented	
  stores
                            relational	
  databases


Friday, November 20, 2009
Locus	
  of	
  Work



Friday, November 20, 2009
key-­‐value	
  stores
                            column-­‐oriented	
  stores
                            document-­‐oriented	
  stores
                            relational	
  databases
                            graph	
  databases	
  


Friday, November 20, 2009
Domain	
  Complexity



Friday, November 20, 2009
key-­‐value	
  stores
                            column-­‐oriented	
  stores
                            document-­‐oriented	
  stores
                            relational	
  databases
                            graph	
  databases	
  


Friday, November 20, 2009
Examples



Friday, November 20, 2009
Redis



Friday, November 20, 2009
Data	
  Types
     strings
     lists
     sets




Friday, November 20, 2009
In-­‐Memory
     periodic	
  snapshots
     master-­‐slave	
  replication
     memory-­‐bound




Friday, November 20, 2009
require 'redis'

    gl = Redis.new

    # A string
    gl['name'] = 'Kyle Rayner'
    gl['name']
    gl.delete('name')

    # A list
    gl.push_tail 'to-dos', 'Lose Ion power'
    gl.push_tail 'to-dos', 'Mourn dead loved ones'
    gl.push_tail 'to-dos', 'Blow up zombie lanterns'

    gl.list_range('to-dos', 0, -1)




Friday, November 20, 2009
Tokyo	
  Cabinet



Friday, November 20, 2009
Data	
  Types
     strings
     tables!




Friday, November 20, 2009
Related	
  Projects
     tyrant
     dystopia
     promenade




Friday, November 20, 2009
require 'rufus/tokyo'

    # Key-value
    leagues = Rufus::Tokyo::Cabinet.new('jl.tch')
    leagues['JLI'] = [
      'Batman', 'Black Canary',
      'Blue Beetle', 'Captain Marvel',
      'Doctor Light', 'Doctor Fate',
      'Guy Gardner','Martian Manhunter',
      'Mister Miracle'
    ].to_yaml

    YAML.load(leagues['JLI'])




Friday, November 20, 2009
require 'rufus/tokyo'

    # Table
    big7 = Rufus::Tokyo::Table.new('big7.tct')

    big7['s']               =   {'name'   =>   'Superman', 'role' => 'deus ex machina'}
    big7['b']               =   {'name'   =>   'Batman', 'role' => 'mastermind'}
    big7['gl']              =   {'name'   =>   'Green Lantern', 'role' => 'space cop'}
    big7['f']               =   {'name'   =>   'Flash', 'role' => 'speedster'}
    big7['mm']              =   {'name'   =>   'Martian Manhunter', 'role' => '?'}
    big7['ww']              =   {'name'   =>   'Wonder Woman', 'role' => 'hitter'}
    big7['a']               =   {'name'   =>   'Aquaman', 'role' => 'fish-talking'}

    big7.query {|q|
      q.add_condition 'role', :streq, 'fish-talking'
    }




Friday, November 20, 2009
Cassandra



Friday, November 20, 2009
Genealogy
     Dynamo
     BigTable




Friday, November 20, 2009
Column-­‐Oriented
     columns
     supercolumns
     column	
  families




Friday, November 20, 2009
Distributed
     automatic	
  replication
     eventual	
  consistency
     easy	
  expansion




Friday, November 20, 2009
Availability
     weak	
  reads
     quorum	
  reads




Friday, November 20, 2009
require 'cassandra'

          op = Cassandra.new('OnePiece')

          op.insert(:People, '1', {'name' => 'Luffy'})
          op.insert(:People, '2', {'name' => 'Crocodile'})
          op.insert(:People, '3', {'name' => 'Mr. 3'})

          op.insert(:Fights, '1', {'opponents' => {UUID.new => '2'}})
          op.insert(:Fights, '1', {'opponents' => {UUID.new => '3'}})

          luffy_fights = op.get(:Fights, '1', 'opponents')
          luffy_fights.map {|t, opp| op.get(:People, opp, 'name')}




Friday, November 20, 2009
CouchDB



Friday, November 20, 2009
Web-­‐Inspired
     JSON	
  storage
     HTTP	
  /	
  RESTful	
  interface




Friday, November 20, 2009
Views
     predeVined,	
  updated	
  incrementally
     javascript	
  for	
  map/reduce




Friday, November 20, 2009
Updates
     full,	
  including	
  embedded	
  documents




Friday, November 20, 2009
require 'couchrest'

    konoha = CouchRest.database!('http://127.0.0.1:5984/konoha')
    naruto = konoha.save_doc {
      'name' => 'Naruto Uzumaki',
      'chakra' => 'wind'
    }
    shikamaru = konoha.save_doc {
      'name' => 'Shikamaru Nara',
      'chunin' => true
    }

    konoha.save_doc {
      '_id' => '_design/first',
      :views => {
        :chunin => {
          :map => 'function(doc){if(doc.chunin){emit(null, doc);}}'
        }
      }
    }

    puts konoha.views('first/chunin')['rows'].inspect



Friday, November 20, 2009
MongoDB



Friday, November 20, 2009
Storage
     binary	
  JSON	
  documents




Friday, November 20, 2009
Access
     native	
  clients




Friday, November 20, 2009
Queries
     dynamic
     index-­‐based




Friday, November 20, 2009
Updates
     allows	
  partial	
  updates




Friday, November 20, 2009
require 'mongo'

          avengers = Mongo::Connection.new.db('avengers')
          members = avengers.collection('members')

          members.insert    {'name'   =>   'Ant-Man'}
          members.insert    {'name'   =>   'Hulk'}
          members.insert    {'name'   =>   'Iron Man'}
          members.insert    {'name'   =>   'Thor'}
          members.insert    {'name'   =>   'Wasp'}

          members.create_index('name')

          pym = members.find {'name' => 'Ant-Man'}
          pym['name'] = 'Giant-Man'
          pym.save

          members.remove {'name' => 'Hulk'}

          members.insert {'name' => 'Captain America'}




Friday, November 20, 2009
Neo4J



Friday, November 20, 2009
Structure
     nodes	
  and	
  edges
     key-­‐value	
  pairs




Friday, November 20, 2009
Queries
     lucene




Friday, November 20, 2009
require 'neo4j'

    class Person
      include Neo4j::NodeMixin

         property :name, :mutant
         index :name, :mutant

         has_n :interests
         has_n :dates
         has_n :marriages

      def initialize(name, mutant = true)
        name = name
        mutant = mutant
      end
    end




Friday, November 20, 2009
Neo4j::Transaction.run do
      magneto = Person.new('Magneto')
      esme = Person.new('Esme')
      rogue = Person.new('Rogue')
      magda = Person.new('Magda', false)
      wasp = Person.new('Wasp', false)

         magneto.interests << wasp
         magneto.marriages << magda
         magneto.dates << rogue

      esme.interests << magneto
      magda.marriages << magneto
      rogue.dates << magneto
    end




Friday, November 20, 2009
magneto = Person.find(:name => 'Magneto')

    # Who likes Magneto?
    magneto.relationships.incoming(:interests).nodes

    # Which non-mutants has Magneto dated?
    magneto.dates{ !mutant? }.to_a




Friday, November 20, 2009
Simulations



Friday, November 20, 2009
Structure



Friday, November 20, 2009
people
    {
      ‘name’:‘Jimmy Olsen’
      ‘title’:‘Superman’s Pal’
      ‘company_id’:12441
    }

    companies
    {
      _id:12441
      ‘name’:‘Daily Planet’
    }




Friday, November 20, 2009
Lack	
  of	
  Structure



Friday, November 20, 2009
mysql> SELECT * FROM people LIMIT 1 G
    *************************** 1. row ***************************
         id: 1
    content: ---
    company: Daily Planet
    name: Jimmy Olsen
    title: Superman’s Pal




Friday, November 20, 2009
mysql> desc people;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | id    | int(11)     | YES |      | NULL    |       |
    | name | varchar(50) | YES |       | NULL    |       |
    +-------+-------------+------+-----+---------+-------+


    mysql> desc attributes;
    +-----------+--------------+------+-----+---------+-------+
    | Field     | Type         | Null | Key | Default | Extra |
    +-----------+--------------+------+-----+---------+-------+
    | id        | int(11)      | YES |      | NULL    |       |
    | person_id | int(11)      | YES |      | NULL    |       |
    | attribute | varchar(50) | YES |       | NULL    |       |
    | value     | varchar(100) | YES |      | NULL    |       |
    +-----------+--------------+------+-----+---------+-------+




Friday, November 20, 2009
Not	
  Only	
  SQL



Friday, November 20, 2009
Caching



Friday, November 20, 2009
Already	
  in	
  Use
     memcached




Friday, November 20, 2009
Logging



Friday, November 20, 2009
Rails	
  Log	
  Replacement
     http://github.com/peburrows/mongo_db_logger




Friday, November 20, 2009
Hybrid	
  Domains



Friday, November 20, 2009
different	
  domains



Friday, November 20, 2009
Publishing
     e-­‐commerce
     documents




Friday, November 20, 2009
Dating
     e-­‐commerce
     social	
  graph




Friday, November 20, 2009
different	
  scales



Friday, November 20, 2009
Photo	
  Sharing
     user	
  accounts
     uploaded	
  photos




Friday, November 20, 2009
Next	
  Steps



Friday, November 20, 2009
Explore



Friday, November 20, 2009
Database	
  List
      http://internetmindmap.com/database_software


      NoSQL	
  Google	
  Group
      http://groups.google.com/group/nosql-­‐discussion


      NoSQL	
  Ecosystem
      http://www.rackspacecloud.com/blog/2009/11/09/nosql-­‐ecosystem/


      Wave!

Friday, November 20, 2009
Ignore	
  the	
  Database



Friday, November 20, 2009
Logical	
  Modeling	
  First
     be	
  mindful




Friday, November 20, 2009
Change	
  the	
  Default



Friday, November 20, 2009
Application	
  Templates
     start	
  with	
  something	
  new




Friday, November 20, 2009
bensco'ield
     @bsco'ield
     ben.sco'ield@viget.com
     http:/    /spkr8.com/bscoVield
     http:/    /viget.com/extend
     http:	
   /benscoVield.com
          /




Friday, November 20, 2009

More Related Content

Viewers also liked

Introduction of Redis as NoSQL Database
Introduction of Redis as NoSQL DatabaseIntroduction of Redis as NoSQL Database
Introduction of Redis as NoSQL DatabaseAbhijeet Shekhar
 
NoSQL @ CodeMash 2010
NoSQL @ CodeMash 2010NoSQL @ CodeMash 2010
NoSQL @ CodeMash 2010Ben Scofield
 
2010-11-12 Databases overview
2010-11-12 Databases overview2010-11-12 Databases overview
2010-11-12 Databases overviewMårten Gustafson
 
Course Review - Lecture 13 - Introduction to Databases (1007156ANR)
Course Review - Lecture 13 - Introduction to Databases (1007156ANR)Course Review - Lecture 13 - Introduction to Databases (1007156ANR)
Course Review - Lecture 13 - Introduction to Databases (1007156ANR)Beat Signer
 
Choosing a Next Gen Database: the New World Order of NoSQL, NewSQL, and MySQL
Choosing a Next Gen Database: the New World Order of NoSQL, NewSQL, and MySQLChoosing a Next Gen Database: the New World Order of NoSQL, NewSQL, and MySQL
Choosing a Next Gen Database: the New World Order of NoSQL, NewSQL, and MySQLScaleBase
 
NewSQL Database Overview
NewSQL Database OverviewNewSQL Database Overview
NewSQL Database OverviewSteve Min
 
Key-Value Stores: a practical overview
Key-Value Stores: a practical overviewKey-Value Stores: a practical overview
Key-Value Stores: a practical overviewMarc Seeger
 
Lecture 3 multimedia databases
Lecture 3   multimedia databasesLecture 3   multimedia databases
Lecture 3 multimedia databasesRanjana N Jinde
 
Advanced SQL - Lecture 6 - Introduction to Databases (1007156ANR)
Advanced SQL - Lecture 6 - Introduction to Databases (1007156ANR)Advanced SQL - Lecture 6 - Introduction to Databases (1007156ANR)
Advanced SQL - Lecture 6 - Introduction to Databases (1007156ANR)Beat Signer
 
NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)
NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)
NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)Beat Signer
 
Course Review - Lecture 12 - Next Generation User Interfaces (4018166FNR)
Course Review - Lecture 12 - Next Generation User Interfaces (4018166FNR)Course Review - Lecture 12 - Next Generation User Interfaces (4018166FNR)
Course Review - Lecture 12 - Next Generation User Interfaces (4018166FNR)Beat Signer
 
5 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/25 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/2Fabio Fumarola
 
DBMS Architectures and Features - Lecture 7 - Introduction to Databases (1007...
DBMS Architectures and Features - Lecture 7 - Introduction to Databases (1007...DBMS Architectures and Features - Lecture 7 - Introduction to Databases (1007...
DBMS Architectures and Features - Lecture 7 - Introduction to Databases (1007...Beat Signer
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databasesJames Serra
 
Should I move my database to the cloud?
Should I move my database to the cloud?Should I move my database to the cloud?
Should I move my database to the cloud?James Serra
 
Big data architectures and the data lake
Big data architectures and the data lakeBig data architectures and the data lake
Big data architectures and the data lakeJames Serra
 

Viewers also liked (18)

Introduction of Redis as NoSQL Database
Introduction of Redis as NoSQL DatabaseIntroduction of Redis as NoSQL Database
Introduction of Redis as NoSQL Database
 
NoSQL @ CodeMash 2010
NoSQL @ CodeMash 2010NoSQL @ CodeMash 2010
NoSQL @ CodeMash 2010
 
2010-11-12 Databases overview
2010-11-12 Databases overview2010-11-12 Databases overview
2010-11-12 Databases overview
 
Introduction to Relational Databases
Introduction to Relational DatabasesIntroduction to Relational Databases
Introduction to Relational Databases
 
Course Review - Lecture 13 - Introduction to Databases (1007156ANR)
Course Review - Lecture 13 - Introduction to Databases (1007156ANR)Course Review - Lecture 13 - Introduction to Databases (1007156ANR)
Course Review - Lecture 13 - Introduction to Databases (1007156ANR)
 
Choosing a Next Gen Database: the New World Order of NoSQL, NewSQL, and MySQL
Choosing a Next Gen Database: the New World Order of NoSQL, NewSQL, and MySQLChoosing a Next Gen Database: the New World Order of NoSQL, NewSQL, and MySQL
Choosing a Next Gen Database: the New World Order of NoSQL, NewSQL, and MySQL
 
NewSQL Database Overview
NewSQL Database OverviewNewSQL Database Overview
NewSQL Database Overview
 
Key-Value Stores: a practical overview
Key-Value Stores: a practical overviewKey-Value Stores: a practical overview
Key-Value Stores: a practical overview
 
SAS/Tableau integration
SAS/Tableau integrationSAS/Tableau integration
SAS/Tableau integration
 
Lecture 3 multimedia databases
Lecture 3   multimedia databasesLecture 3   multimedia databases
Lecture 3 multimedia databases
 
Advanced SQL - Lecture 6 - Introduction to Databases (1007156ANR)
Advanced SQL - Lecture 6 - Introduction to Databases (1007156ANR)Advanced SQL - Lecture 6 - Introduction to Databases (1007156ANR)
Advanced SQL - Lecture 6 - Introduction to Databases (1007156ANR)
 
NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)
NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)
NoSQL Databases - Lecture 12 - Introduction to Databases (1007156ANR)
 
Course Review - Lecture 12 - Next Generation User Interfaces (4018166FNR)
Course Review - Lecture 12 - Next Generation User Interfaces (4018166FNR)Course Review - Lecture 12 - Next Generation User Interfaces (4018166FNR)
Course Review - Lecture 12 - Next Generation User Interfaces (4018166FNR)
 
5 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/25 Data Modeling for NoSQL 1/2
5 Data Modeling for NoSQL 1/2
 
DBMS Architectures and Features - Lecture 7 - Introduction to Databases (1007...
DBMS Architectures and Features - Lecture 7 - Introduction to Databases (1007...DBMS Architectures and Features - Lecture 7 - Introduction to Databases (1007...
DBMS Architectures and Features - Lecture 7 - Introduction to Databases (1007...
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
 
Should I move my database to the cloud?
Should I move my database to the cloud?Should I move my database to the cloud?
Should I move my database to the cloud?
 
Big data architectures and the data lake
Big data architectures and the data lakeBig data architectures and the data lake
Big data architectures and the data lake
 

Similar to NoSQL: Death to Relational Databases(?)

eIFL General Assembly
eIFL General AssemblyeIFL General Assembly
eIFL General Assemblyguest22cf88
 
Impactos no design com programação funcional
Impactos no design com programação funcionalImpactos no design com programação funcional
Impactos no design com programação funcionalLuiz Costa
 
Prototype & Scriptaculous
Prototype  & ScriptaculousPrototype  & Scriptaculous
Prototype & ScriptaculousThomas Fuchs
 
Webinar: MongoDB on the JVM
Webinar: MongoDB on the JVMWebinar: MongoDB on the JVM
Webinar: MongoDB on the JVMMongoDB
 
Latinoware Rails 2009
Latinoware Rails 2009Latinoware Rails 2009
Latinoware Rails 2009Fabio Akita
 
Javascript the Language of the Web
Javascript the Language of the WebJavascript the Language of the Web
Javascript the Language of the Webandersjanmyr
 
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 20092009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009Caue Guerra
 
Semcomp de São Carlos
Semcomp de São CarlosSemcomp de São Carlos
Semcomp de São CarlosFabio Akita
 
Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Matt Aimonetti
 
The State of NoSQL
The State of NoSQLThe State of NoSQL
The State of NoSQLBen Scofield
 
Standing on the shoulders of giants with JRuby
Standing on the shoulders of giants with JRubyStanding on the shoulders of giants with JRuby
Standing on the shoulders of giants with JRubyTheo Hultberg
 
Software livre e padrões abertos no desenvolvimento Web
Software livre e padrões abertos no desenvolvimento WebSoftware livre e padrões abertos no desenvolvimento Web
Software livre e padrões abertos no desenvolvimento WebFelipe Ribeiro
 
Apache Hadoop Talk at QCon
Apache Hadoop Talk at QConApache Hadoop Talk at QCon
Apache Hadoop Talk at QConCloudera, Inc.
 

Similar to NoSQL: Death to Relational Databases(?) (14)

eIFL General Assembly
eIFL General AssemblyeIFL General Assembly
eIFL General Assembly
 
Impactos no design com programação funcional
Impactos no design com programação funcionalImpactos no design com programação funcional
Impactos no design com programação funcional
 
Prototype & Scriptaculous
Prototype  & ScriptaculousPrototype  & Scriptaculous
Prototype & Scriptaculous
 
Webinar: MongoDB on the JVM
Webinar: MongoDB on the JVMWebinar: MongoDB on the JVM
Webinar: MongoDB on the JVM
 
Latinoware Rails 2009
Latinoware Rails 2009Latinoware Rails 2009
Latinoware Rails 2009
 
Javascript the Language of the Web
Javascript the Language of the WebJavascript the Language of the Web
Javascript the Language of the Web
 
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 20092009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
2009, o ano do Ruby on Rails no Brasil - CaelumDay 2009
 
Semcomp de São Carlos
Semcomp de São CarlosSemcomp de São Carlos
Semcomp de São Carlos
 
Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010Macruby - RubyConf Presentation 2010
Macruby - RubyConf Presentation 2010
 
14 Ddply
14 Ddply14 Ddply
14 Ddply
 
The State of NoSQL
The State of NoSQLThe State of NoSQL
The State of NoSQL
 
Standing on the shoulders of giants with JRuby
Standing on the shoulders of giants with JRubyStanding on the shoulders of giants with JRuby
Standing on the shoulders of giants with JRuby
 
Software livre e padrões abertos no desenvolvimento Web
Software livre e padrões abertos no desenvolvimento WebSoftware livre e padrões abertos no desenvolvimento Web
Software livre e padrões abertos no desenvolvimento Web
 
Apache Hadoop Talk at QCon
Apache Hadoop Talk at QConApache Hadoop Talk at QCon
Apache Hadoop Talk at QCon
 

More from Ben Scofield

How to Be Awesome in 2.5 Steps
How to Be Awesome in 2.5 StepsHow to Be Awesome in 2.5 Steps
How to Be Awesome in 2.5 StepsBen Scofield
 
Building Cloud Castles - LRUG
Building Cloud Castles - LRUGBuilding Cloud Castles - LRUG
Building Cloud Castles - LRUGBen Scofield
 
Great Developers Steal
Great Developers StealGreat Developers Steal
Great Developers StealBen Scofield
 
Open Source: A Call to Arms
Open Source: A Call to ArmsOpen Source: A Call to Arms
Open Source: A Call to ArmsBen Scofield
 
Building Cloud Castles
Building Cloud CastlesBuilding Cloud Castles
Building Cloud CastlesBen Scofield
 
Intentionality: Choice and Mastery
Intentionality: Choice and MasteryIntentionality: Choice and Mastery
Intentionality: Choice and MasteryBen Scofield
 
Mastery or Mediocrity
Mastery or MediocrityMastery or Mediocrity
Mastery or MediocrityBen Scofield
 
With a Mighty Hammer
With a Mighty HammerWith a Mighty Hammer
With a Mighty HammerBen Scofield
 
Mind Control - DevNation Atlanta
Mind Control - DevNation AtlantaMind Control - DevNation Atlanta
Mind Control - DevNation AtlantaBen Scofield
 
Understanding Mastery
Understanding MasteryUnderstanding Mastery
Understanding MasteryBen Scofield
 
Mind Control: Psychology for the Web
Mind Control: Psychology for the WebMind Control: Psychology for the Web
Mind Control: Psychology for the WebBen Scofield
 
Charlotte.rb - "Comics" Is Hard
Charlotte.rb - "Comics" Is HardCharlotte.rb - "Comics" Is Hard
Charlotte.rb - "Comics" Is HardBen Scofield
 
The Future of Data
The Future of DataThe Future of Data
The Future of DataBen Scofield
 
WindyCityRails - "Comics" Is Hard
WindyCityRails - "Comics" Is HardWindyCityRails - "Comics" Is Hard
WindyCityRails - "Comics" Is HardBen Scofield
 
"Comics" Is Hard: Alternative Databases
"Comics" Is Hard: Alternative Databases"Comics" Is Hard: Alternative Databases
"Comics" Is Hard: Alternative DatabasesBen Scofield
 
Mind Control on the Web
Mind Control on the WebMind Control on the Web
Mind Control on the WebBen Scofield
 
How the Geeks Inherited the Earth
How the Geeks Inherited the EarthHow the Geeks Inherited the Earth
How the Geeks Inherited the EarthBen Scofield
 
And the Greatest of These Is ... Space
And the Greatest of These Is ... SpaceAnd the Greatest of These Is ... Space
And the Greatest of These Is ... SpaceBen Scofield
 

More from Ben Scofield (20)

How to Be Awesome in 2.5 Steps
How to Be Awesome in 2.5 StepsHow to Be Awesome in 2.5 Steps
How to Be Awesome in 2.5 Steps
 
Building Cloud Castles - LRUG
Building Cloud Castles - LRUGBuilding Cloud Castles - LRUG
Building Cloud Castles - LRUG
 
Great Developers Steal
Great Developers StealGreat Developers Steal
Great Developers Steal
 
Thinking Small
Thinking SmallThinking Small
Thinking Small
 
Open Source: A Call to Arms
Open Source: A Call to ArmsOpen Source: A Call to Arms
Open Source: A Call to Arms
 
Ship It
Ship ItShip It
Ship It
 
Building Cloud Castles
Building Cloud CastlesBuilding Cloud Castles
Building Cloud Castles
 
Intentionality: Choice and Mastery
Intentionality: Choice and MasteryIntentionality: Choice and Mastery
Intentionality: Choice and Mastery
 
Mastery or Mediocrity
Mastery or MediocrityMastery or Mediocrity
Mastery or Mediocrity
 
With a Mighty Hammer
With a Mighty HammerWith a Mighty Hammer
With a Mighty Hammer
 
Mind Control - DevNation Atlanta
Mind Control - DevNation AtlantaMind Control - DevNation Atlanta
Mind Control - DevNation Atlanta
 
Understanding Mastery
Understanding MasteryUnderstanding Mastery
Understanding Mastery
 
Mind Control: Psychology for the Web
Mind Control: Psychology for the WebMind Control: Psychology for the Web
Mind Control: Psychology for the Web
 
Charlotte.rb - "Comics" Is Hard
Charlotte.rb - "Comics" Is HardCharlotte.rb - "Comics" Is Hard
Charlotte.rb - "Comics" Is Hard
 
The Future of Data
The Future of DataThe Future of Data
The Future of Data
 
WindyCityRails - "Comics" Is Hard
WindyCityRails - "Comics" Is HardWindyCityRails - "Comics" Is Hard
WindyCityRails - "Comics" Is Hard
 
"Comics" Is Hard: Alternative Databases
"Comics" Is Hard: Alternative Databases"Comics" Is Hard: Alternative Databases
"Comics" Is Hard: Alternative Databases
 
Mind Control on the Web
Mind Control on the WebMind Control on the Web
Mind Control on the Web
 
How the Geeks Inherited the Earth
How the Geeks Inherited the EarthHow the Geeks Inherited the Earth
How the Geeks Inherited the Earth
 
And the Greatest of These Is ... Space
And the Greatest of These Is ... SpaceAnd the Greatest of These Is ... Space
And the Greatest of These Is ... Space
 

Recently uploaded

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Recently uploaded (20)

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

NoSQL: Death to Relational Databases(?)