Playing Nice with Others

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1

    Raise your hand if you have a favorite programming language.
    Lower your hand when I say your favorite language.
    - Ruby
    - Java
    - Smalltalk
    - Lisp
    - Eiffel
    - C
    - C++
    - C#
    - Perl
    - Php

    What are things that are common between languages? Or Pan-language?
    Maybe I should say, what are some of the things that you learned in computer science, that had nothing to do with an actual language?

    What does everyone currently use to communicate a data structure between applications / processes?

    What does everyone currently use to communicate a data structure between applications / processes?

    A couple of questions, about 2 widely used cross language tools

    Compression key, value stores using bzip or zlib
    Server understands not only its own tyrant wire protocol, but the memcached protocol, and it has a RESTful.
    use lua in the server, invoke a lua methods

    Calls itself a data structure store

    libjlog = “journaled log”
    libjlog is a pure C, very simple durable message queue with multiple subscribers and publishers (both thread and multi-process safe).

    hash is to memcached as queue is to beanstalkd

    2 Favorites

    Playing Nice with Others - Presentation Transcript

    1. PLAYING NICE WITH OTHERS Jeremy Hinegardner / jeremy@hinegardner.org / @copiousfreetime
    2. COLLECTIVE INTELLECT
    3. Ruby (30+ gems, 20+ rails apps) COLLECTIVE INTELLECT Java(7) C++(1) C (2) Groovy(1)
    4. SURVEY SAYS?
    5. COMMONALITIES
    6. DATA STRUCTURES
    7. Array Struct List Set Stack DATA STRUCTURES Hash String Number Queue
    8. COMMUNICATION
    9. Network based COMMUNICATION
    10. Network based COMMUNICATION Library, API, IPC based
    11. PERSISTENCE
    12. None PERSISTENCE
    13. None PERSISTENCE Snapshot
    14. None PERSISTENCE Snapshot Lifetime
    15. NAME THAT TOOL! (HAVE YOU BEEN PAYING ATTENTION?)
    16. Network Communication
    17. Network Communication + No Persistence
    18. Network Communication + No Persistence + Hash data structure
    19. Network Communication + No Persistence + Hash data structure memcached
    20. Network Communication
    21. Network Communication + Lifetime persistence
    22. Network Communication + Lifetime persistence + Struct data structure
    23. Network Communication + Lifetime persistence + Struct data structure Postgresql
    24. Network Communication + Lifetime persistence + Struct data structure Postgresql Mysql
    25. Network Communication + Lifetime persistence + Struct data structure Postgresql Mysql DB2
    26. Network Communication + Lifetime persistence + Struct data structure Postgresql Mysql DB2 Oracle
    27. Network Communication + Lifetime persistence + Struct data structure Postgresql Mysql DB2 Oracle Insert favorite RDBMS (server)
    28. Data Structure (wide selection)
    29. Data Structure (wide selection) Communication (Network, Local)
    30. Data Structure (wide selection) Communication (Network, Local) Persistence (none, snapshot, lifetime)
    31. Data Structure (wide selection) Communication (Network, Local) Persistence (none, snapshot, lifetime) Supported Languages ( at least 3 )
    32. TOKYO PRODUCTS
    33. Tokyo Cabinet Homepage: http://tokyocabinet.sourceforge.net/ Data Structures : Array, Hash, Struct Communication : Local Persistence : Lifetime API Languages : C, perl, ruby, java, lua, python
    34. Tokyo Tyrant Homepage: http://tokyocabinet.sourceforge.net/tyrantdoc/ Data Structures : Array, Hash, Struct Communication : Network Persistence : Lifetime Client Lib Languages : C, perl, ruby, java, python, php, erlang
    35. Tokyo Bonuses Compression Tyrant - Memcached protocol Tyrant - RESTful API Tyrant - Lua extensions Tyrant - Replication
    36. REDIS
    37. Redis Homepage : http://code.google.com/p/redis/ Data Structures : List, Hash, Set Communication : Network Persistence : Snapshot Client Lib Languages : Ruby, Python, PHP, Erlang, Tcl, Perl, Lua, Java
    38. Redis Bonuses Replication Server-to-Server data movement In-server Set operations In-server Sorting Asynchronous snapshots
    39. LIBJLOG
    40. libjlog Homepage : https://labs.omniti.com/trac/jlog Data Structure : Queue Communication : Local Persistence : Lifetime API Languages : C, Perl, PHP, Ruby is on its way Bonus : Publish/Subscribe behavior
    41. BEANSTALKD
    42. beanstalkd Homepage : http://xph.us/software/beanstalkd/ Data Structure : Queue Communication : Network Persistence : None now, Snapshot in v1.4 Bonus : Job Queue behavior
    43. ZEROMQ
    44. 0MQ Homepage : http://www.zeromq.org/ Data Structure : Queue Communication : Network Persistence : Lifetime API Languages : C, C++, Java, Python, .Net, Mono, Ruby, Fortran, COBOL
    45. 0MQ Bonuses Implement your own messaging models Excellent examples White papers for everything Fastest. Messaging. Ever.
    46. Local Communication None Snapshot Lifetime Array N/A ? N/A ? Tokyo Cabinet Hash N/A ? N/A ? Tokyo Cabinet List N/A ? N/A ? Tokyo Cabinet Set N/A ? N/A ? Tokyo Cabinet Struct N/A ? N/A ? Tokyo Cabinet Queue N/A ? N/A ? TC / libjlog
    47. Network Communication None Snapshot Lifetime Array Tokyo Tyrant Hash TT/Memcache Redis Tokyo Tyrant List Redis Set Redis Struct TT/RDBMS Queue Beanstalk Beanstalk (1.4) 0MQ
    48. Even More! MongoDB couchdb nmdb netcdf luxIO solr ehcache rabbitmq flare ejabberd cassandra Your favorite?
    49. DEMOS
    SlideShare Zeitgeist 2009

    + Jeremy HinegardnerJeremy Hinegardner Nominate

    custom

    415 views, 2 favs, 0 embeds more stats

    In the course of writing applications you need more more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 415
      • 415 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 2
    • Downloads 8
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories