JSON and the APInauts

Wynn Netherland
Wynn NetherlandDesigner and developer um Orrka
API
JSON AND THE ARGONAUTS



                     WYNNNETHERLAND
whoami
+
JSON and the APInauts
A lot of API wrappers!

I write API wrappers
& more!
Why create API wrappers?
After all, we have
curl
curl http://api.twitter.com/1/users/show.json?screen_name=pengwynn
Net::HTTP
url = "http://api.twitter.com/1/users/show.json?screen_name=pengwynn"
Net::HTTP.get(URI.parse(url))
Because we're Rubyists, and we want
Idiomatic access
{"chart":{
    "issueDate":2006-03-04,
    "description":"Chart",
    "chartItems":{
      "firstPosition":1,
      "totalReturned":15,
      "totalRecords":25663,
      "chartItem":[{
        "songName":"Lonely Runs Both Ways",
        "artistName":"Alison Krauss + Union Station",
        "peek":1,
        "catalogNo":"610525",
        "rank":1,
        "exrank":1,
        "weeksOn":65,
        "albumId":655684,
      ...
 }}
{"chart":{
    "issueDate":2006-03-04,
    "description":"Chart",
    "chartItems":{
      "firstPosition":1,
      "totalReturned":15,
      "totalRecords":25663,
      "chartItem":[{
        "songName":"Lonely Runs Both Ways",
        "artistName":"Alison Krauss + Union Station",
        "peek":1,
        "catalogNo":"610525",
        "rank":1,
        "exrank":1,
        "weeksOn":65,
        "albumId":655684,
      ...
 }}
Rubyified keys
{"chart":{
    "issueDate":2006-03-04,
    "description":"Chart",
    "chartItems":{
      "firstPosition":1,
      "totalReturned":15,
      "totalRecords":25663,
      "chartItem":[{
        "songName":"Lonely Runs Both Ways",
        "artistName":"Alison Krauss + Union Station",
        "peek":1,
        "catalogNo":"610525",
        "rank":1,
        "exrank":1,
        "weeksOn":65,
        "albumId":655684,
      ...
 }}
{"chart":{
    "issue_date":2006-03-04,
    "description":"Chart",
    "chart_items":{
      "first_position":1,
      "total_returned":15,
      "total_records":25663,
      "chart_item":[{
        "song_name":"Lonely Runs Both Ways",
        "artist_name":"Alison Krauss + Union Station",
        "peek":1,
        "catalog_no":"610525",
        "rank":1,
        "exrank":1,
        "weeks_on":65,
        "album_id":655684,
      ...
 }}
... and method names
# Retrieve the details about a user by email
#
# +email+ (Required)
# The email of the user to look within. To run getInfoByEmail on
multiple addresses, simply pass a comma-separated list of valid email
addresses.
#

def self.info_by_email(email)
  email = email.join(',') if email.is_a?(Array)
  Mash.new(self.get('/',
! ! :query => {
! ! ! :method => 'user.getInfoByEmail',
! ! ! :email => email
       }.merge(Upcoming.default_options))).rsp.user
end
# Retrieve the details about a user by email
#
# +email+ (Required)
# The email of the user to look within. To run getInfoByEmail on
multiple addresses, simply pass a comma-separated list of valid email
addresses.
#
                                       More Ruby like th    an
def self.info_by_email(email)
  email = email.join(',') if email.is_a?(Array)
  Mash.new(self.get('/',
! ! :query => {
! ! ! :method => 'user.getInfoByEmail',
! ! ! :email => email
       }.merge(Upcoming.default_options))).rsp.user
end
SYNTACTIC SUGAR
Twitter::Search.new.from('jnunemaker').to('pengwynn').hashed('ruby').fetch()
Method chaining


Twitter::Search.new.from('jnunemaker').to('pengwynn').hashed('ruby').fetch()
stores = client.stores({:area => ['76227', 50]}).products({:salePrice => {'$gt' => 3000}}).fetch.stores
Method chaining


stores = client.stores({:area => ['76227', 50]}).products({:salePrice => {'$gt' => 3000}}).fetch.stores
client.statuses.update.json! :status => 'this status is from grackle'
Method chaining        Bang for POST



client.statuses.update.json! :status => 'this status is from grackle'
APPROACHES
Simple Wrapping
SOME TWITTER EXAMPLES
Twitter Auth from @mbleigh
                                           Wrapping
user.twitter.post(
  '/statuses/update.json',
  'status' => 'Tweet, tweet!'
)
                                  Wrapping... with style
Grackle from @hayesdavis
client.statuses.update.json! :status => 'Tweet, tweet!'


                                        Abstraction
Twitter from @jnunemaker
client.update('Tweet, tweet!')
Why simply wrap?
Insulate against change
Leverage API documentation
Why abstract?
...or writing APIs to wrap APIs
Simplify a complex API
Provide a business domain
TOOLS
Transports
Net::HTTP
Patron
http://toland.github.com/patron/
Typhoeus
http://github.com/pauldix/typhoeus
em-http-request
http://github.com/igrigorik/em-http-request
Parsers
Crack
http://github.com/jnunemaker/crack

      Puts the party in HTTParty
JSON
yajl-ruby
http://github.com/brianmario/yajl-ruby
multi_json
http://github.com/intridea/multi_json
Higher-level libraries
HTTParty
http://github.com/jnunemaker/httparty


  When you HTTParty, you must party hard!
HTTParty
- Ruby module
  - GET, POST, PUT, DELETE
  - basic_auth, base_uri, default_params, etc.
- Net::HTTP for transport
- Crack parses JSON and XML
HTTParty
class Delicious
  include HTTParty
  base_uri 'https://api.del.icio.us/v1'
  
  def initialize(u, p)
    @auth = {:username => u, :password => p}
  end

  ...

  def recent(options={})
    options.merge!({:basic_auth => @auth})
    self.class.get('/posts/recent', options)
  end

...
monster_mash
http://github.com/dbalatero/monster_mash

   HTTParty for Typhoeus, a monster. Get it?
RestClient
http://github.com/adamwiggins/rest-client
RestClient
- Simple DSL
- ActiveResource support
- Built-in shell

RestClient.post(
! 'http://example.com/resource',
   :param1 => 'one',
   :nested => { :param2 => 'two' }
)
Weary
http://github.com/mwunsch/weary
Weary
- Simple DSL
- Specify required, optional params
- Async support
Weary
declare "foo" do |r|
  r.url = "path/to/foo"
  r.via = :post
  r.requires = [:id, :bar]
  r.with = [:blah]                 becomes
  r.authenticates = false
  r.follows = false
  r.headers = {'Accept' => 'text/html'}
end

client.foo :id => 123, :bar => 'baz'
RackClient
http://github.com/halorgium/rack-client
RackClient
- Rack API
- Middleware!

client = Rack::Client.new('http://
whoismyrepresentative.com')
Faraday
http://github.com/technoweenie/faraday
Faraday
- Rack-like
- Middleware!
- Adapters
Faraday
url = 'http://api.twitter.com/1'
conn = Faraday::Connection.new(:url => url ) do |builder|
  builder.adapter Faraday.default_adapter
  builder.use Faraday::Response::MultiJson
  builder.use Faraday::Response::Mashify
end

resp = conn.get do |req|
  req.url '/users/show.json', :screen_name => 'pengwynn'
end

u = resp.body
u.name
# => "Wynn Netherland"
Faraday Middleware
http://github.com/pengwynn/faraday-middleware
Faraday Middleware
- Hashie
- Multi JSON
- OAuth, OAuth2 as needed
My current stack
- Faraday
- Faraday Middleware
   - Hashie
   - Multi JSON
- OAuth, OAuth2 as needed
Hashie
- Mash
- Dash
- Trash
- Clash
JSON and the APInauts
HTTPScoop
If you have an iOS app, you have an API ;-)




         Charles Proxy
Testing
Fakeweb
http://github.com/chrisk/fakeweb
VCR
http://github.com/myronmarston/vcr
Artifice
    http://github.com/wycats/artifice

Artifice.activate_with(rack_endpoint) do
  # make some requests using Net::HTTP
end
                        a @wycats joint
ShamRack
http://github.com/mdub/sham_rack
ShamRack
ShamRack.at("sinatra.xyz").sinatra do
  get "/hello/:subject" do
    "Hello, #{params[:subject]}"
  end
end

open("http://sinatra.xyz/hello/
stranger").read

#=> "Hello, stranger"
ShamRack            Rack 'em up!
ShamRack.at("rackup.xyz").rackup do
  use Some::Middleware
  use Some::Other::Middleware
  run MyApp.new
end
Authentication
Basic
OAuth
http://oauth.rubyforge.org/
OAuth2
http://github.com/intridea/oauth2
QUESTIONS?
 @pengwynn
1 von 84

Recomendados

Big Design Conference: CSS3 von
Big Design Conference: CSS3 Big Design Conference: CSS3
Big Design Conference: CSS3 Wynn Netherland
1.7K views141 Folien
Accelerated Native Mobile Development with the Ti gem von
Accelerated Native Mobile Development with the Ti gemAccelerated Native Mobile Development with the Ti gem
Accelerated Native Mobile Development with the Ti gemWynn Netherland
954 views75 Folien
Accelerated Stylesheets von
Accelerated StylesheetsAccelerated Stylesheets
Accelerated StylesheetsWynn Netherland
1.3K views147 Folien
Workshop 6: Designer tools von
Workshop 6: Designer toolsWorkshop 6: Designer tools
Workshop 6: Designer toolsVisual Engineering
825 views102 Folien
Doing more with LESS von
Doing more with LESSDoing more with LESS
Doing more with LESSjsmith92
2K views39 Folien
Lightweight Webservices with Sinatra and RestClient von
Lightweight Webservices with Sinatra and RestClientLightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClientAdam Wiggins
24.1K views47 Folien

Más contenido relacionado

Was ist angesagt?

Get Soaked - An In Depth Look At PHP Streams von
Get Soaked - An In Depth Look At PHP StreamsGet Soaked - An In Depth Look At PHP Streams
Get Soaked - An In Depth Look At PHP StreamsDavey Shafik
12.1K views43 Folien
RESTful web services von
RESTful web servicesRESTful web services
RESTful web servicesTudor Constantin
2K views13 Folien
Inside Bokete: Web Application with Mojolicious and others von
Inside Bokete:  Web Application with Mojolicious and othersInside Bokete:  Web Application with Mojolicious and others
Inside Bokete: Web Application with Mojolicious and othersYusuke Wada
8.2K views37 Folien
Perl Dancer for Python programmers von
Perl Dancer for Python programmersPerl Dancer for Python programmers
Perl Dancer for Python programmersxSawyer
16.3K views31 Folien
Keeping it small: Getting to know the Slim micro framework von
Keeping it small: Getting to know the Slim micro frameworkKeeping it small: Getting to know the Slim micro framework
Keeping it small: Getting to know the Slim micro frameworkJeremy Kendall
111.2K views135 Folien
Mojolicious von
MojoliciousMojolicious
MojoliciousMarcos Rebelo
5.4K views44 Folien

Was ist angesagt?(20)

Get Soaked - An In Depth Look At PHP Streams von Davey Shafik
Get Soaked - An In Depth Look At PHP StreamsGet Soaked - An In Depth Look At PHP Streams
Get Soaked - An In Depth Look At PHP Streams
Davey Shafik12.1K views
Inside Bokete: Web Application with Mojolicious and others von Yusuke Wada
Inside Bokete:  Web Application with Mojolicious and othersInside Bokete:  Web Application with Mojolicious and others
Inside Bokete: Web Application with Mojolicious and others
Yusuke Wada8.2K views
Perl Dancer for Python programmers von xSawyer
Perl Dancer for Python programmersPerl Dancer for Python programmers
Perl Dancer for Python programmers
xSawyer16.3K views
Keeping it small: Getting to know the Slim micro framework von Jeremy Kendall
Keeping it small: Getting to know the Slim micro frameworkKeeping it small: Getting to know the Slim micro framework
Keeping it small: Getting to know the Slim micro framework
Jeremy Kendall111.2K views
Perl web frameworks von diego_k
Perl web frameworksPerl web frameworks
Perl web frameworks
diego_k670 views
Using Sinatra to Build REST APIs in Ruby von LaunchAny
Using Sinatra to Build REST APIs in RubyUsing Sinatra to Build REST APIs in Ruby
Using Sinatra to Build REST APIs in Ruby
LaunchAny9.5K views
Sinatra Rack And Middleware von Ben Schwarz
Sinatra Rack And MiddlewareSinatra Rack And Middleware
Sinatra Rack And Middleware
Ben Schwarz16.9K views
Plugin jQuery, Design Patterns von Robert Casanova
Plugin jQuery, Design PatternsPlugin jQuery, Design Patterns
Plugin jQuery, Design Patterns
Robert Casanova19.8K views
Advanced symfony Techniques von Kris Wallsmith
Advanced symfony TechniquesAdvanced symfony Techniques
Advanced symfony Techniques
Kris Wallsmith5.4K views
Trading with opensource tools, two years later von clkao
Trading with opensource tools, two years laterTrading with opensource tools, two years later
Trading with opensource tools, two years later
clkao2K views
PerlDancer for Perlers (FOSDEM 2011) von xSawyer
PerlDancer for Perlers (FOSDEM 2011)PerlDancer for Perlers (FOSDEM 2011)
PerlDancer for Perlers (FOSDEM 2011)
xSawyer4.1K views
Keeping it small - Getting to know the Slim PHP micro framework von Jeremy Kendall
Keeping it small - Getting to know the Slim PHP micro frameworkKeeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro framework
Jeremy Kendall9.6K views
Web Apps in Perl - HTTP 101 von hendrikvb
Web Apps in Perl - HTTP 101Web Apps in Perl - HTTP 101
Web Apps in Perl - HTTP 101
hendrikvb2.9K views
Compass, Sass, and the Enlightened CSS Developer von Wynn Netherland
Compass, Sass, and the Enlightened CSS DeveloperCompass, Sass, and the Enlightened CSS Developer
Compass, Sass, and the Enlightened CSS Developer
Wynn Netherland3K views

Destacado

Ruby HTTP clients comparison von
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparisonHiroshi Nakamura
26.3K views77 Folien
Wp JSON API and You! von
Wp JSON API and You!Wp JSON API and You!
Wp JSON API and You!Jamal_972
960 views18 Folien
Mapping, Interlinking and Exposing MusicBrainz as Linked Data von
Mapping, Interlinking and Exposing MusicBrainz as Linked DataMapping, Interlinking and Exposing MusicBrainz as Linked Data
Mapping, Interlinking and Exposing MusicBrainz as Linked DataPeter Haase
3.7K views29 Folien
Using puppet, foreman and git to develop and operate a large scale internet s... von
Using puppet, foreman and git to develop and operate a large scale internet s...Using puppet, foreman and git to develop and operate a large scale internet s...
Using puppet, foreman and git to develop and operate a large scale internet s...techblog
3.1K views26 Folien
Continuously-Integrated Puppet in a Dynamic Environment von
Continuously-Integrated Puppet in a Dynamic EnvironmentContinuously-Integrated Puppet in a Dynamic Environment
Continuously-Integrated Puppet in a Dynamic EnvironmentPuppet
12.1K views51 Folien
Better encryption & security with MariaDB 10.1 & MySQL 5.7 von
Better encryption & security with MariaDB 10.1 & MySQL 5.7Better encryption & security with MariaDB 10.1 & MySQL 5.7
Better encryption & security with MariaDB 10.1 & MySQL 5.7Colin Charles
6.5K views51 Folien

Destacado(20)

Wp JSON API and You! von Jamal_972
Wp JSON API and You!Wp JSON API and You!
Wp JSON API and You!
Jamal_972960 views
Mapping, Interlinking and Exposing MusicBrainz as Linked Data von Peter Haase
Mapping, Interlinking and Exposing MusicBrainz as Linked DataMapping, Interlinking and Exposing MusicBrainz as Linked Data
Mapping, Interlinking and Exposing MusicBrainz as Linked Data
Peter Haase3.7K views
Using puppet, foreman and git to develop and operate a large scale internet s... von techblog
Using puppet, foreman and git to develop and operate a large scale internet s...Using puppet, foreman and git to develop and operate a large scale internet s...
Using puppet, foreman and git to develop and operate a large scale internet s...
techblog3.1K views
Continuously-Integrated Puppet in a Dynamic Environment von Puppet
Continuously-Integrated Puppet in a Dynamic EnvironmentContinuously-Integrated Puppet in a Dynamic Environment
Continuously-Integrated Puppet in a Dynamic Environment
Puppet12.1K views
Better encryption & security with MariaDB 10.1 & MySQL 5.7 von Colin Charles
Better encryption & security with MariaDB 10.1 & MySQL 5.7Better encryption & security with MariaDB 10.1 & MySQL 5.7
Better encryption & security with MariaDB 10.1 & MySQL 5.7
Colin Charles6.5K views
Ruby application based on http von Richard Huang
Ruby application based on httpRuby application based on http
Ruby application based on http
Richard Huang2.5K views
Dlsecyx pgroammr (Dyslexic Programmer - cool stuff for scaling) von Gleicon Moraes
Dlsecyx pgroammr (Dyslexic Programmer - cool stuff for scaling)Dlsecyx pgroammr (Dyslexic Programmer - cool stuff for scaling)
Dlsecyx pgroammr (Dyslexic Programmer - cool stuff for scaling)
Gleicon Moraes5.2K views
vSphere APIs for performance monitoring von Alan Renouf
vSphere APIs for performance monitoringvSphere APIs for performance monitoring
vSphere APIs for performance monitoring
Alan Renouf20.5K views
PostgreSQL Materialized Views with Active Record von David Roberts
PostgreSQL Materialized Views with Active RecordPostgreSQL Materialized Views with Active Record
PostgreSQL Materialized Views with Active Record
David Roberts6.2K views
The Complete MariaDB Server Tutorial - Percona Live 2015 von Colin Charles
The Complete MariaDB Server Tutorial - Percona Live 2015The Complete MariaDB Server Tutorial - Percona Live 2015
The Complete MariaDB Server Tutorial - Percona Live 2015
Colin Charles6.6K views
Redis — The AK-47 of Post-relational Databases von Karel Minarik
Redis — The AK-47 of Post-relational DatabasesRedis — The AK-47 of Post-relational Databases
Redis — The AK-47 of Post-relational Databases
Karel Minarik23.5K views
Taking Control of Chaos with Docker and Puppet von Puppet
Taking Control of Chaos with Docker and PuppetTaking Control of Chaos with Docker and Puppet
Taking Control of Chaos with Docker and Puppet
Puppet21.3K views
Detecting headless browsers von Sergey Shekyan
Detecting headless browsersDetecting headless browsers
Detecting headless browsers
Sergey Shekyan25.9K views
How to build an API your developers will love - Code.talks 2015, Hamburg by M... von Michael Kuehne-Schlinkert
How to build an API your developers will love - Code.talks 2015, Hamburg by M...How to build an API your developers will love - Code.talks 2015, Hamburg by M...
How to build an API your developers will love - Code.talks 2015, Hamburg by M...
Monitoring in an Infrastructure as Code Age von Puppet
Monitoring in an Infrastructure as Code AgeMonitoring in an Infrastructure as Code Age
Monitoring in an Infrastructure as Code Age
Puppet7.2K views
How to make keynote like presentation with markdown von Hiroaki NAKADA
How to make keynote like presentation with markdownHow to make keynote like presentation with markdown
How to make keynote like presentation with markdown
Hiroaki NAKADA7.6K views
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12 von Puppet
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Continuous Development with Jenkins - Stephen Connolly at PuppetCamp Dublin '12
Puppet33.3K views
Lessons I Learned While Scaling to 5000 Puppet Agents von Puppet
Lessons I Learned While Scaling to 5000 Puppet AgentsLessons I Learned While Scaling to 5000 Puppet Agents
Lessons I Learned While Scaling to 5000 Puppet Agents
Puppet15.1K views

Similar a JSON and the APInauts

Real-time search in Drupal with Elasticsearch @Moldcamp von
Real-time search in Drupal with Elasticsearch @MoldcampReal-time search in Drupal with Elasticsearch @Moldcamp
Real-time search in Drupal with Elasticsearch @MoldcampAlexei Gorobets
1.2K views90 Folien
External Data Access with jQuery von
External Data Access with jQueryExternal Data Access with jQuery
External Data Access with jQueryDoncho Minkov
18.1K views37 Folien
REST with Eve and Python von
REST with Eve and PythonREST with Eve and Python
REST with Eve and PythonPiXeL16
1.9K views57 Folien
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery von
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQueryRemedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQueryTatsuhiko Miyagawa
39.1K views131 Folien
Going crazy with Node.JS and CakePHP von
Going crazy with Node.JS and CakePHPGoing crazy with Node.JS and CakePHP
Going crazy with Node.JS and CakePHPMariano Iglesias
13.8K views48 Folien
Ams adapters von
Ams adaptersAms adapters
Ams adaptersBruno Alló Bacarini
264 views62 Folien

Similar a JSON and the APInauts(20)

Real-time search in Drupal with Elasticsearch @Moldcamp von Alexei Gorobets
Real-time search in Drupal with Elasticsearch @MoldcampReal-time search in Drupal with Elasticsearch @Moldcamp
Real-time search in Drupal with Elasticsearch @Moldcamp
Alexei Gorobets1.2K views
External Data Access with jQuery von Doncho Minkov
External Data Access with jQueryExternal Data Access with jQuery
External Data Access with jQuery
Doncho Minkov18.1K views
REST with Eve and Python von PiXeL16
REST with Eve and PythonREST with Eve and Python
REST with Eve and Python
PiXeL161.9K views
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery von Tatsuhiko Miyagawa
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQueryRemedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Tatsuhiko Miyagawa39.1K views
Going crazy with Node.JS and CakePHP von Mariano Iglesias
Going crazy with Node.JS and CakePHPGoing crazy with Node.JS and CakePHP
Going crazy with Node.JS and CakePHP
Mariano Iglesias13.8K views
Socket applications von João Moura
Socket applicationsSocket applications
Socket applications
João Moura601 views
Using and scaling Rack and Rack-based middleware von Alona Mekhovova
Using and scaling Rack and Rack-based middlewareUsing and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middleware
Alona Mekhovova1.1K views
Real-time search in Drupal. Meet Elasticsearch von Alexei Gorobets
Real-time search in Drupal. Meet ElasticsearchReal-time search in Drupal. Meet Elasticsearch
Real-time search in Drupal. Meet Elasticsearch
Alexei Gorobets8.1K views
Great Developers Steal von Ben Scofield
Great Developers StealGreat Developers Steal
Great Developers Steal
Ben Scofield1.7K views
Enter the app era with ruby on rails (rubyday) von Matteo Collina
Enter the app era with ruby on rails (rubyday)Enter the app era with ruby on rails (rubyday)
Enter the app era with ruby on rails (rubyday)
Matteo Collina5K views
Diseño y Desarrollo de APIs von Raúl Neis
Diseño y Desarrollo de APIsDiseño y Desarrollo de APIs
Diseño y Desarrollo de APIs
Raúl Neis153 views
8 Minutes On Rack von danwrong
8 Minutes On Rack8 Minutes On Rack
8 Minutes On Rack
danwrong16.7K views
JavaScript Sprachraum von patricklee
JavaScript SprachraumJavaScript Sprachraum
JavaScript Sprachraum
patricklee293 views
Cross Domain Web
Mashups with JQuery and Google App Engine von Andy McKay
Cross Domain Web
Mashups with JQuery and Google App EngineCross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App Engine
Andy McKay3.7K views
RESTful API 제대로 만들기 von Juwon Kim
RESTful API 제대로 만들기RESTful API 제대로 만들기
RESTful API 제대로 만들기
Juwon Kim57.3K views
Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data... von Big Data Spain
 Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data... Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
Big Data Web applications for Interactive Hadoop by ENRICO BERTI at Big Data...
Big Data Spain1.3K views
Solving the Riddle of Search: Using Sphinx with Rails von freelancing_god
Solving the Riddle of Search: Using Sphinx with RailsSolving the Riddle of Search: Using Sphinx with Rails
Solving the Riddle of Search: Using Sphinx with Rails
freelancing_god32.7K views

Más de Wynn Netherland

Your government is Mashed UP! von
Your government is Mashed UP!Your government is Mashed UP!
Your government is Mashed UP!Wynn Netherland
793 views50 Folien
MongoDB is the MashupDB von
MongoDB is the MashupDBMongoDB is the MashupDB
MongoDB is the MashupDBWynn Netherland
5.2K views73 Folien
America, your congress is Mashed UP! von
America, your congress is Mashed UP!America, your congress is Mashed UP!
America, your congress is Mashed UP!Wynn Netherland
604 views37 Folien
CSS Metaframeworks: King of all @media von
CSS Metaframeworks: King of all @mediaCSS Metaframeworks: King of all @media
CSS Metaframeworks: King of all @mediaWynn Netherland
67.6K views134 Folien
Hands on with Ruby & MongoDB von
Hands on with Ruby & MongoDBHands on with Ruby & MongoDB
Hands on with Ruby & MongoDBWynn Netherland
3.2K views58 Folien
MongoDB - Ruby document store that doesn't rhyme with ouch von
MongoDB - Ruby document store that doesn't rhyme with ouchMongoDB - Ruby document store that doesn't rhyme with ouch
MongoDB - Ruby document store that doesn't rhyme with ouchWynn Netherland
4K views42 Folien

Más de Wynn Netherland(9)

America, your congress is Mashed UP! von Wynn Netherland
America, your congress is Mashed UP!America, your congress is Mashed UP!
America, your congress is Mashed UP!
Wynn Netherland604 views
CSS Metaframeworks: King of all @media von Wynn Netherland
CSS Metaframeworks: King of all @mediaCSS Metaframeworks: King of all @media
CSS Metaframeworks: King of all @media
Wynn Netherland67.6K views
MongoDB - Ruby document store that doesn't rhyme with ouch von Wynn Netherland
MongoDB - Ruby document store that doesn't rhyme with ouchMongoDB - Ruby document store that doesn't rhyme with ouch
MongoDB - Ruby document store that doesn't rhyme with ouch
Wynn Netherland4K views

Último

Generative AI: Shifting the AI Landscape von
Generative AI: Shifting the AI LandscapeGenerative AI: Shifting the AI Landscape
Generative AI: Shifting the AI LandscapeDeakin University
53 views55 Folien
Qualifying SaaS, IaaS.pptx von
Qualifying SaaS, IaaS.pptxQualifying SaaS, IaaS.pptx
Qualifying SaaS, IaaS.pptxSachin Bhandari
1K views8 Folien
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... von
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...The Digital Insurer
90 views52 Folien
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... von
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...ShapeBlue
198 views20 Folien
Business Analyst Series 2023 - Week 4 Session 7 von
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7DianaGray10
139 views31 Folien
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... von
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...James Anderson
160 views32 Folien

Último(20)

Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... von The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... von ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue198 views
Business Analyst Series 2023 - Week 4 Session 7 von DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10139 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... von James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson160 views
DRBD Deep Dive - Philipp Reisner - LINBIT von ShapeBlue
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBIT
ShapeBlue180 views
Initiating and Advancing Your Strategic GIS Governance Strategy von Safe Software
Initiating and Advancing Your Strategic GIS Governance StrategyInitiating and Advancing Your Strategic GIS Governance Strategy
Initiating and Advancing Your Strategic GIS Governance Strategy
Safe Software176 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... von ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue173 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT von ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue206 views
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates von ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue252 views
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... von ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue159 views
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... von ShapeBlue
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
ShapeBlue186 views
Future of AR - Facebook Presentation von Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty64 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue von ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue135 views
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O... von ShapeBlue
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
ShapeBlue132 views
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And... von ShapeBlue
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
ShapeBlue106 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... von ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue166 views

JSON and the APInauts