SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
erlang at hover.in
    5 Choices to rule them all


      Bhasker V Kode
      co­founder  & CTO at hover.in

      at Commercial Users of Functional Programming 2009, 
      Edinburgh
                               
      September 4th, 2009                      http://developers.hover.in
#1. serial vs parallel




                    

                             http://developers.hover.in
“The domino effect is a chain reaction 
    that occurs when a small change 
    causes a similar change nearby, which 
    then will cause another similar change.”

           via wikipedia page on Domino Effect


                         

                                    http://developers.hover.in
small change causes a similar 
    change nearby

    similiar change causes 
    another similar change.

    domino effect  is a chain 
    reaction caused by a small 
    change.


                   

                          http://developers.hover.in
% Or functionally speaking in erlang!
small_change(Changes)­>
   similar_change(Changes).

similiar_change([NearBy|Rest])­> 
  chain_reaction(NearBy),
  similar_change(Rest);

similiar_change( [] ) ­>
  “domino effect”.

chain_reaction(NearBy)­>
  “wow”.
                   

                            http://developers.hover.in
(1)wrt flowcontrol...
    ●
        great to handle both bursts or silent traffic & to 
        determine bottlenecks.(eg ur own,rabbitmq,etc )
    ●
        eg1: when we addjobs to the queue, if it takes 
        greater than X consistently we move it to high 
        traffic bracket, do things differently, possibly 
        add workers  or ignore based on the task.
    ●
        eg2: amazon shopping carts, are known to be 
        extra resilient to write failures, (dont mind 
 
        multiple versions of them over time) http://developers.hover.in
                                   
wrt parallel computing...




“the small portions of the program which cannot be 
parallelized will limit the overall speed­up available ”
                                                  ­  _____ 's Law ?

                                    

                                                     http://developers.hover.in
wrt parallel computing...




“the small portions of the program which cannot be 
parallelized will limit the overall speed­up available ”
                                     ­ Amdahl's Law

                              

                                             http://developers.hover.in
A's and B's that we've faced at hover.in : 
    ●
        url hit counters (B), priority queue based crawling(A)
    ●
        writes to create index (B), search's to create inverted 
        index (A)
    ●
        dumping text files (B), loading them to backend (A)
    ●
        all ^ shared one common method to boost 
 
        performance – seperate flowcontrols for A,B
                                

                                                http://developers.hover.in
Further , A & B need'nt be serial, but a batch of A's & a parallel 
batch of B's running tasks serially. Flowcontrol implemented by 
tail­recursive servers handling bursty AND slow traffic well. 
     flowcontrol 1             flowcontrol 2
                                                  where                is 
                                                  free cpu / time for 
                                                  handling 2x B 
                                                  tasks
                                  

                                                  http://developers.hover.in
#2. distributed vs local




                   

                           http://developers.hover.in
in this uber­cool demo, I “node1” split this trivial task to 
the other 1000 nodes. this will be done in no time. Ha!


                            Node1




 Node2         Node3                                     NodeN




                                  

                                                  http://developers.hover.in
in this uber­cool demo, I “node2” ALSO split this trivial 
task to the other 1000 nodes. Ha!


                           Node1




 Node2        Node3                                    NodeN

in this uber­cool demo, I “nodeN” ALSO split this trivial 
task to the other 1000 nodes.  Ha! 
                                

                                                http://developers.hover.in
in other words...
●
   will none of the other N nodes behave as a master?
●
   won't most your calls be rpc if several nodes try to 
be masters and ping every other node ?
●
   would you prefer a distributed non­master setup?
●
   would you rather load­balance the jobs where each 
node does what it must do, and does only those jobs ( 
unless failover)
●
   would you prefer send the task where the data is , 
rather than one master node accessing all ?
 
      ●
         all personal choices at the end of the day...
                               

                                          http://developers.hover.in
how it works at hover.in: 
I , “node X” will rather do tasks locally since this data is 
designated to me, rather than rpc'ing all over like crazy ! 
The meta­data of which node does what calculated by 
(a) statically assigned (our choice)     (b) or a hash fn 
(c) dynamically reassigned (maybe later)
which is made available to nodes by
(a) replication or (b) location transparency (our choice)



  Node1       Node2                                  NodeN

                               

                                              http://developers.hover.in
#3. replication vs location 
    transparency




                   

                            http://developers.hover.in
some questons ...
1. replicated on nodes defined by hash function / 
consistent hashing,etc  or statically assigned ?
2. data served from in­memory or completely from disk 
or a combination of both ( LRU cache, etc)?
3. are some instances dedicated readers / writers 
4. transactions or no transactions
fortunately erlang/otp/mnesia makes it easy to make 
highly granular decissions
5. bulk load the data or not (based on your  
requirements , testing, preferences )
6. run mapreduce / fold over data ? ( js in couchdb, or 
lua with tokyocabinet )
                              

                                            http://developers.hover.in
#4. persistent data vs cyclic queues




                   

                           http://developers.hover.in
       to persist or not to persist...
●
   fixed length stores OR round­robin databases OR 
cyclic queues are an attractive option           NEW!

●
     great for recission , cutting costs ! just overwrite data
●
     speedier search's with predictable processing times!
●
     more realtime, since data flushed based on FIFO
●
     but risky if you don't have sufficient data
●
     but pro's mostly outdo cons!
●
    easy to store/distribute as in­memory data structures 
●
     useful for more buzz­analytics, trend detection, etc 
that works real­time with less overheads
                                  

                                               http://developers.hover.in
#5. in­memory vs disk




                  

                            http://developers.hover.in
in­memory is the new embedded
    ●
        servers as of '09 typically have 4 ­ 32 GB RAM 
    ●
        several companies adding loads of nodes for 
        primarily in­memory operations, caching, etc
    ●
        caching systems avoid disk/db , for temporal 
        processing tasks makes sense
    ●
        usage of in­memory data structures at hover.in :
        –   in­memory caching system , sets 
        –   LRU cache's, trending topics , debugging, etc 
                                    

                                                  http://developers.hover.in
hi_cache_worker
    ●
        a circular queue implemented via gen_server
    ●
        set ( ID  , Key , Value , OptionsList)
        Options are     {purge, <true| false>}
                                { size , <integer> }
                                { set_callback , <Function> }
                                { delete_callback , <Function> }
                                { get_callback , <Function> }
                                { timeout, <int>, <Function> }
 
        ID is usually a siteid  or  “global”
                                          

                                                   http://developers.hover.in
●
    C = hi_cache_worker,
    C:set ( User1, “recent_saved” , Value) 
    C:set ( “global”, “recent_hits” , Value  
                                      [{size,1000}] ) 

    C:get (“global”,”recent_voted”)
    C:get (User1,”recenthits”)
    C:get (User1,”recent_cron_times”)
●
    ( Note: initially used in debugging internally ­> 
    then reporting ­> next in public community stats)
                                

                                                    http://developers.hover.in
7 rules of in­memory capacity planning
    (1) shard thy data to make it sufficiently un­related
    (2) implementing flowcontrol
    (3) all data is important, but some less important
    (4) time spent x RAM utilization = a constant
    (5) before every succesful persistent write & after 
      every succesful persistent read is an in­memory one
    (6) know thy RAM, trial/error to find ideal dataload
    (7) what cannot be measured cannot be improved
                              

                                                http://developers.hover.in
➔
        hover.in founded late 2007 
    ➔
        the web ~ 10­ 20 years old 
    ➔
        humans 100's of thousands of years 
    ➔
        but bacteria.... around for millions of years
        ... so this talk is going to be about what we can 
        learn from bacteria, the brain, and memory in 
        a concurrent world followed by hover.in's erlang 
        setup and lessons learnt 

                                              http://developers.hover.in
some traits of bacteria
    ●
        each bacteria cell spawns its own proteins
    ●
        All bacteria have some sort of  some presence 
        & replies associated, (asynchronous comm.)
    ●
        group dynamics exhibits 'list fold' ish operation
    ●
        only when the Accumulator is > some guard 
        clause, will group­dynamics of making light 
        (bioluminiscence) work (eg: in deep sea)
                                 

                                              http://developers.hover.in
supervisors, workers
    ●
        as bacteria grow, they split into two. when 
        muscle tears, it knows exactly what to replace.
    ●
        erlang supervisors can decide restart policies: if 
        one worker fails, restart all .... or if one worker 
        fails, restart just that worker, more tweaks.
    ●
        can spawn multiple workers on the fly, much 
        like the need for launching a new ec2 instant

                                 

                                              http://developers.hover.in
supervisors, workers
    ●
        as bacteria grow, they split into two. when 
        muscle tears, it knows exactly what to replace.
    ●
        erlang supervisors can decide restart policies: if 
        one worker fails, restart all .... or if one worker 
        fails, restart just that worker, more tweaks.
    ●
        can spawn multiple workers on the fly, much 
        like the need for launching a new ec2 instant

                                 

                                              http://developers.hover.in
inter­species communication
    ●
        if you look at your skin – consists of very many 
        different species, but all bacteria found to 
        communicate using one common chemical 
        language. 




                                

                                             http://developers.hover.in
inter­species communication
    ●
        if you look at your skin – consists of very many 
        different species, but all bacteria found to 
        communicate using one common chemical 
        language. 
        hmmmmmmmmmmmmmmmmmmm..............
        ....serialization ?!
        ....a common protein interpretor ?!
        ....or perhaps just­in­time protein compilation?!
                                

                                             http://developers.hover.in
interspecies comm. in practice
    ➔
        attempts at serialization , cross language 
        communication include:
        ➔
            thrift ( by facebook) 
        ➔
            protocol buffers ( by google) 
        ➔
            en/decoding , port based communication ( erlang<­
            >python at hover.in )
        ➔
            rabbitMQ shows speeds of several thousands of  
            msgs/sec between python <­> erlang (by using...?)
                                      

                                                 http://developers.hover.in
talking about scaling
    The brain of the worker honeybee weighs about 
     1mg ( ~ 950,000 neurons )
    ●
        Flies acrobatically , recognizes patterns, 
        navigates , communicates, etc
    ●
        Energy consumption: 10−15 J/op, at least 106 
        more efficient than digital silicon neurons 


                                

                                              http://developers.hover.in
the human brain
    ●
        100 billion neurons, stores ~100 TB
    ●
        Differential analysis e.g., we compute color
    ●
        Multiple inputs: sight, sound, taste, smell, touch
    ●
        Facial recognition subcircuits, peripheral vision
    ●
        in essence  ­ the left & right brain vary in:
        left ­> persistent disk , handles past/future
        right ­> temporal caches! , handles present
                                 

                                              http://developers.hover.in
summary of tech at hover.in
    ●
        LYME stack since ~dec 07 , 4 nodes (64­bit 4GB )
    ●
        python crawler,  associated NLP parsers, index's 
        now in tokyo cabinet , inverted index's in erlang 's 
        mnesia db,cpu time­splicing algo's for cron's app, 
        priority queue's for heat­seeking algo's app, 
        flowcontrol, caching, pagination apps, remote node 
        debugger, cyclic queue workers, headless­firefox 
        for thumbnails 
    ●
        touched 1 million hovers/month in May'09 after 
        launching closed beta to publishers in Jan 09
                                 

                                               http://developers.hover.in
brief introduction to hover.in
    choose words from your blog, & decide what content / ad 
              you want when you hover* over it
                                           * or other events like click,right click,etc
                                     or...
                the worlds first user­engagement
          platform for brands via in­text broadcasting
                                 or
lets web publishers push client­side event handling to the 
  cloud, to run various rich applications called hoverlets

demo at http://start.hover.in/ and  http://hover.in/demo
          more at http://hover.in ,  http://developers.hover.in/blog/ 
                                        

                                                                 http://developers.hover.in
summary of our erlang modules
  rewrites.erl error.erl frag_mnesia.erl hi_api_response.erl   hi_appmods_api_user.erl  
      hi_cache_app.erl , hi_cache_sup.erl   hoverlingo.erl hi_cache_worker.erl 
     hi_lru_worker.erl  hi_classes.erl  hi_community.erl 
     hi_cron_hoverletupdater_app.erl  hi_cron_hoverletupdater.erl 
     hi_cron_hoverletupdater_sup.erl  hi_cron_kwebucket.erl hi_cron_kweload.erl  
     hi_crypto.erl hi_daily_stats.erl  hi_flowcontrol_hoverletupdater.erl 
     hi_htmlutils_site.erl hi_hybridq_app.erl hi_hybridq_sup.erl hi_hybridq_worker.erl 
     hi_login.erl hi_mailer.erl hi_messaging_app.erl hi_messaging_sup.erl 
     hi_messaging_worker.erl hi_mgr_crawler.erl hi_mgr_db_console.erl 
     hi_mgr_db.erl hi_mgr_db_mnesia.erl hi_mgr_hoverlet.erl hi_mgr_kw.erl 
     hi_mgr_node.erl hi_mgr_thumbs.erl hi_mgr_traffic.erl hi_nlp.erl hi_normalizer.erl 
     hi_pagination_app.erl   hi_pagination_sup.erl, hi_pagination_worker.erl 
     hi_pmap.erl  hi_register_app.erl hi_register.erl, hi_register_sup.erl, 
     hi_register_worker.erl hi_render_hoverlet_worker.erl hi_rrd.erl , hi_rrd_worker.erl 
     hi_settings.erl  hi_sid.erl hi_site.erl hi_stat.erl hi_stats_distribution.erl 
     hi_stats_overview.erl hi_str.erl hi_trees.erl hi_utf8.erl hi_yaws.erl  
                                                 
     & medici src ( erlang tokyo cabinet / tyrant client )
                                                                   http://developers.hover.in
thank you




     

           http://developers.hover.in
references
    ●
        All images courtesy Creative Commons­licensed content for 
        commercial use, adaptation, modification or building upon from Flickr
    ●
        http://erlang.org  , wikipedia articles on Parallel computing
    ●
        amazing brain­related talks at   http://ted.com ,
    ●
        go read more about the brain, and hack on erlang NOW!
    ●
        shoutout to everyone at #erlang ! 
    ●
        get in touch with us on our dev blog http://developers.hover.in , on 
        twitter @hoverin, or mail me at kode at hover dot in.



                                           

                                                               http://developers.hover.in

Weitere ähnliche Inhalte

Was ist angesagt?

Message-passing concurrency in Python
Message-passing concurrency in PythonMessage-passing concurrency in Python
Message-passing concurrency in PythonSarah Mount
 
Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!Peter Hlavaty
 
Defcon 21-caceres-massive-attacks-with-distributed-computing by pseudor00t
Defcon 21-caceres-massive-attacks-with-distributed-computing by pseudor00tDefcon 21-caceres-massive-attacks-with-distributed-computing by pseudor00t
Defcon 21-caceres-massive-attacks-with-distributed-computing by pseudor00tpseudor00t overflow
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking systemJesse Vincent
 
Exploring .NET memory management - JetBrains webinar
Exploring .NET memory management - JetBrains webinarExploring .NET memory management - JetBrains webinar
Exploring .NET memory management - JetBrains webinarMaarten Balliauw
 
Concurrency in Python
Concurrency in PythonConcurrency in Python
Concurrency in PythonGavin Roy
 
Packaging is the Worst Way to Distribute Software, Except for Everything Else
Packaging is the Worst Way to Distribute Software, Except for Everything ElsePackaging is the Worst Way to Distribute Software, Except for Everything Else
Packaging is the Worst Way to Distribute Software, Except for Everything Elsemckern
 
erlang at hover.in , Devcamp Blr 09
erlang at hover.in , Devcamp Blr 09erlang at hover.in , Devcamp Blr 09
erlang at hover.in , Devcamp Blr 09Bhasker Kode
 
Cooking a rabbit pie
Cooking a rabbit pieCooking a rabbit pie
Cooking a rabbit pieTomas Doran
 
Ruby 1.9 Fibers
Ruby 1.9 FibersRuby 1.9 Fibers
Ruby 1.9 FibersKevin Ball
 
Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.Carlos Miguel Ferreira
 
Repeating History...On Purpose...with Elixir
Repeating History...On Purpose...with ElixirRepeating History...On Purpose...with Elixir
Repeating History...On Purpose...with ElixirBarry Jones
 
Puppet for SysAdmins
Puppet for SysAdminsPuppet for SysAdmins
Puppet for SysAdminsPuppet
 
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)goccy
 
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyFast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyKyle Drake
 

Was ist angesagt? (20)

Spacebrew @ SFPC
Spacebrew @ SFPCSpacebrew @ SFPC
Spacebrew @ SFPC
 
Message-passing concurrency in Python
Message-passing concurrency in PythonMessage-passing concurrency in Python
Message-passing concurrency in Python
 
Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!Ice Age melting down: Intel features considered usefull!
Ice Age melting down: Intel features considered usefull!
 
Defcon 21-caceres-massive-attacks-with-distributed-computing by pseudor00t
Defcon 21-caceres-massive-attacks-with-distributed-computing by pseudor00tDefcon 21-caceres-massive-attacks-with-distributed-computing by pseudor00t
Defcon 21-caceres-massive-attacks-with-distributed-computing by pseudor00t
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking system
 
Exploring .NET memory management - JetBrains webinar
Exploring .NET memory management - JetBrains webinarExploring .NET memory management - JetBrains webinar
Exploring .NET memory management - JetBrains webinar
 
Concurrency in Python
Concurrency in PythonConcurrency in Python
Concurrency in Python
 
Packaging is the Worst Way to Distribute Software, Except for Everything Else
Packaging is the Worst Way to Distribute Software, Except for Everything ElsePackaging is the Worst Way to Distribute Software, Except for Everything Else
Packaging is the Worst Way to Distribute Software, Except for Everything Else
 
erlang at hover.in , Devcamp Blr 09
erlang at hover.in , Devcamp Blr 09erlang at hover.in , Devcamp Blr 09
erlang at hover.in , Devcamp Blr 09
 
Cooking a rabbit pie
Cooking a rabbit pieCooking a rabbit pie
Cooking a rabbit pie
 
Ruby 1.9 Fibers
Ruby 1.9 FibersRuby 1.9 Fibers
Ruby 1.9 Fibers
 
Perl-Critic
Perl-CriticPerl-Critic
Perl-Critic
 
LuaJIT
LuaJITLuaJIT
LuaJIT
 
Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.Python 3.5: An agile, general-purpose development language.
Python 3.5: An agile, general-purpose development language.
 
Version Control for Mere Mortals
Version Control for Mere MortalsVersion Control for Mere Mortals
Version Control for Mere Mortals
 
Repeating History...On Purpose...with Elixir
Repeating History...On Purpose...with ElixirRepeating History...On Purpose...with Elixir
Repeating History...On Purpose...with Elixir
 
Is Python still production ready ? Ludovic Gasc
Is Python still production ready ? Ludovic GascIs Python still production ready ? Ludovic Gasc
Is Python still production ready ? Ludovic Gasc
 
Puppet for SysAdmins
Puppet for SysAdminsPuppet for SysAdmins
Puppet for SysAdmins
 
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
 
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyFast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
 

Ähnlich wie hover.in at CUFP 2009

thinking in key value stores
thinking in key value storesthinking in key value stores
thinking in key value storesBhasker Kode
 
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...Jérôme Petazzoni
 
[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler CollectionMoabi.com
 
Making clouds: turning opennebula into a product
Making clouds: turning opennebula into a productMaking clouds: turning opennebula into a product
Making clouds: turning opennebula into a productCarlo Daffara
 
Making Clouds: Turning OpenNebula into a Product
Making Clouds: Turning OpenNebula into a ProductMaking Clouds: Turning OpenNebula into a Product
Making Clouds: Turning OpenNebula into a ProductNETWAYS
 
OpenNebulaConf 2013 - Making Clouds: Turning OpenNebula into a Product by Car...
OpenNebulaConf 2013 - Making Clouds: Turning OpenNebula into a Product by Car...OpenNebulaConf 2013 - Making Clouds: Turning OpenNebula into a Product by Car...
OpenNebulaConf 2013 - Making Clouds: Turning OpenNebula into a Product by Car...OpenNebula Project
 
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE PlatformsFIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE PlatformsFIWARE
 
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...OpenNebula Project
 
Docker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsDocker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsFederico Michele Facca
 
A Gentle Introduction to Docker and Containers
A Gentle Introduction to Docker and ContainersA Gentle Introduction to Docker and Containers
A Gentle Introduction to Docker and ContainersDocker, Inc.
 
Flow Base Programming with Node-RED and Functional Reactive Programming with ...
Flow Base Programming with Node-RED and Functional Reactive Programming with ...Flow Base Programming with Node-RED and Functional Reactive Programming with ...
Flow Base Programming with Node-RED and Functional Reactive Programming with ...Sven Beauprez
 
Peyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_futurePeyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_futureTakayuki Muranushi
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSkills Matter
 
Cassandra and Docker Lessons Learned
Cassandra and Docker Lessons LearnedCassandra and Docker Lessons Learned
Cassandra and Docker Lessons LearnedDataStax Academy
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...Codemotion
 
The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)Casey Bisson
 
Docker serverless v1.0
Docker serverless v1.0Docker serverless v1.0
Docker serverless v1.0Thomas Chacko
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014Carlo Bonamico
 

Ähnlich wie hover.in at CUFP 2009 (20)

thinking in key value stores
thinking in key value storesthinking in key value stores
thinking in key value stores
 
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
 
[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection
 
Making clouds: turning opennebula into a product
Making clouds: turning opennebula into a productMaking clouds: turning opennebula into a product
Making clouds: turning opennebula into a product
 
Making Clouds: Turning OpenNebula into a Product
Making Clouds: Turning OpenNebula into a ProductMaking Clouds: Turning OpenNebula into a Product
Making Clouds: Turning OpenNebula into a Product
 
OpenNebulaConf 2013 - Making Clouds: Turning OpenNebula into a Product by Car...
OpenNebulaConf 2013 - Making Clouds: Turning OpenNebula into a Product by Car...OpenNebulaConf 2013 - Making Clouds: Turning OpenNebula into a Product by Car...
OpenNebulaConf 2013 - Making Clouds: Turning OpenNebula into a Product by Car...
 
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE PlatformsFIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
 
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...
 
Docker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsDocker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platforms
 
A Gentle Introduction to Docker and Containers
A Gentle Introduction to Docker and ContainersA Gentle Introduction to Docker and Containers
A Gentle Introduction to Docker and Containers
 
Flow Base Programming with Node-RED and Functional Reactive Programming with ...
Flow Base Programming with Node-RED and Functional Reactive Programming with ...Flow Base Programming with Node-RED and Functional Reactive Programming with ...
Flow Base Programming with Node-RED and Functional Reactive Programming with ...
 
Peyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_futurePeyton jones-2011-parallel haskell-the_future
Peyton jones-2011-parallel haskell-the_future
 
Simon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelismSimon Peyton Jones: Managing parallelism
Simon Peyton Jones: Managing parallelism
 
Cassandra and Docker Lessons Learned
Cassandra and Docker Lessons LearnedCassandra and Docker Lessons Learned
Cassandra and Docker Lessons Learned
 
Demystifying kubernetes
Demystifying kubernetesDemystifying kubernetes
Demystifying kubernetes
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
 
The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)The Lies We Tell Our Code (#seascale 2015 04-22)
The Lies We Tell Our Code (#seascale 2015 04-22)
 
Docker serverless v1.0
Docker serverless v1.0Docker serverless v1.0
Docker serverless v1.0
 
Dev Ops without the Ops
Dev Ops without the OpsDev Ops without the Ops
Dev Ops without the Ops
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 

Kürzlich hochgeladen (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

hover.in at CUFP 2009