Skip to content

Instantly share code, notes, and snippets.

@alakra
Created October 29, 2012 20:00

Revisions

  1. Angelo Lakra revised this gist Nov 8, 2012. 1 changed file with 0 additions and 0 deletions.
    Binary file added d4962fe5e172d4a389f2fead26d4938d.jpeg
    Loading
    Sorry, something went wrong. Reload?
    Sorry, we cannot display this file.
    Sorry, this file is invalid so it cannot be displayed.
  2. alakra revised this gist Nov 3, 2012. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -341,6 +341,10 @@
    Can do "futures" also (much like ordering food at a restaurant
    before getting to the restaurant)
    ** Day 3
    *** The Insufficiency of Good Design
    by Sarah Mei
    OOP Design
    Good communication is important
    *** mruby meets iOS and RTOS! :track3:
    *** Machine Write Tests For Our Code? New Verification Techniques :track2:
    *** How we try to answer The Great Energy Questions with Ruby :track2:
  3. alakra revised this gist Nov 2, 2012. 1 changed file with 11 additions and 0 deletions.
    11 changes: 11 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -329,6 +329,17 @@
    *** The Celluloid Ecosystem :track1:
    Why use threads? Because of multicore systems
    Cores are growing and threads are getting cheaper
    Processes waste RAM
    Serialization penalty
    Used circles to do UML object messaging diagrams
    **** Applications
    Sidekiq and Ahearsion
    **** OOP Tools and Concurrency Tools need to be combined
    Active Objects (Based on Actor Model)
    "Cells" name of abstraction
    Can call methods asynchronously
    Can do "futures" also (much like ordering food at a restaurant
    before getting to the restaurant)
    ** Day 3
    *** mruby meets iOS and RTOS! :track3:
    *** Machine Write Tests For Our Code? New Verification Techniques :track2:
  4. alakra revised this gist Nov 2, 2012. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -328,6 +328,7 @@
    malloc vs gmalloc (gmalloc is more aggressive, stresses the system because it locks a page after an allocated page and uses memory up quickly)
    *** The Celluloid Ecosystem :track1:
    Why use threads? Because of multicore systems
    Cores are growing and threads are getting cheaper
    ** Day 3
    *** mruby meets iOS and RTOS! :track3:
    *** Machine Write Tests For Our Code? New Verification Techniques :track2:
  5. alakra revised this gist Nov 2, 2012. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -327,6 +327,7 @@
    CFLAGS-"-O0 -g" ./configure
    malloc vs gmalloc (gmalloc is more aggressive, stresses the system because it locks a page after an allocated page and uses memory up quickly)
    *** The Celluloid Ecosystem :track1:
    Why use threads? Because of multicore systems
    ** Day 3
    *** mruby meets iOS and RTOS! :track3:
    *** Machine Write Tests For Our Code? New Verification Techniques :track2:
  6. alakra revised this gist Nov 2, 2012. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -325,6 +325,7 @@
    Set env variables to log the stack during allocations
    Run in GDB, use malloc_history to view stacks
    CFLAGS-"-O0 -g" ./configure
    malloc vs gmalloc (gmalloc is more aggressive, stresses the system because it locks a page after an allocated page and uses memory up quickly)
    *** The Celluloid Ecosystem :track1:
    ** Day 3
    *** mruby meets iOS and RTOS! :track3:
  7. alakra revised this gist Nov 2, 2012. 1 changed file with 6 additions and 0 deletions.
    6 changes: 6 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -319,6 +319,12 @@
    set pre-run breakpoints
    pass arguments to miniruby with "run"
    watch it crash
    ****** Advanced Weaponry
    MallocStackLoggingNoCompact
    man malloc
    Set env variables to log the stack during allocations
    Run in GDB, use malloc_history to view stacks
    CFLAGS-"-O0 -g" ./configure
    *** The Celluloid Ecosystem :track1:
    ** Day 3
    *** mruby meets iOS and RTOS! :track3:
  8. alakra revised this gist Nov 2, 2012. 1 changed file with 6 additions and 0 deletions.
    6 changes: 6 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -313,6 +313,12 @@
    lexer, parser, interpreter, VM/runtime
    core library classesx
    make miniruby to build
    ****** Weapon of choice
    GDB
    gdb ./miniruby
    set pre-run breakpoints
    pass arguments to miniruby with "run"
    watch it crash
    *** The Celluloid Ecosystem :track1:
    ** Day 3
    *** mruby meets iOS and RTOS! :track3:
  9. alakra revised this gist Nov 2, 2012. 1 changed file with 9 additions and 3 deletions.
    12 changes: 9 additions & 3 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -302,11 +302,17 @@
    Build it
    ****** Study the map
    include/ruby/ruby.h
    ID => symbols
    VALUE => everything else
    rb_id2name => dump symbols in GDB
    ID => symbols
    VALUE => everything else
    rb_id2name => dump symbols in GDB
    rb_string_value_cstr => #to_s for GDB
    vm_call_method
    ****** Bring your gardener
    miniruby
    like ruby, only smaller
    lexer, parser, interpreter, VM/runtime
    core library classesx
    make miniruby to build
    *** The Celluloid Ecosystem :track1:
    ** Day 3
    *** mruby meets iOS and RTOS! :track3:
  10. alakra revised this gist Nov 2, 2012. 1 changed file with 7 additions and 0 deletions.
    7 changes: 7 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -300,6 +300,13 @@
    Pack your Bags
    Get the source code
    Build it
    ****** Study the map
    include/ruby/ruby.h
    ID => symbols
    VALUE => everything else
    rb_id2name => dump symbols in GDB
    rb_string_value_cstr => #to_s for GDB
    vm_call_method
    *** The Celluloid Ecosystem :track1:
    ** Day 3
    *** mruby meets iOS and RTOS! :track3:
  11. alakra revised this gist Nov 2, 2012. 1 changed file with 5 additions and 0 deletions.
    5 changes: 5 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -295,6 +295,11 @@
    Better: try different ruby releases
    Best: git bisect (ZOMG!)
    Bonus: try different build settings
    ***** Repair
    Try and fix it
    Pack your Bags
    Get the source code
    Build it
    *** The Celluloid Ecosystem :track1:
    ** Day 3
    *** mruby meets iOS and RTOS! :track3:
  12. alakra revised this gist Nov 2, 2012. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -291,6 +291,10 @@
    Simple scripts are the best
    Shrink code (5 or fewer lines is ideal)
    ***** Regress
    Try different versions
    Better: try different ruby releases
    Best: git bisect (ZOMG!)
    Bonus: try different build settings
    *** The Celluloid Ecosystem :track1:
    ** Day 3
    *** mruby meets iOS and RTOS! :track3:
  13. alakra revised this gist Nov 2, 2012. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -286,6 +286,10 @@
    Ruby Version
    Crash log (look in Console.app in OS X, find the equivalent for your system, maybe syslog for other unix distros)
    ***** Reduce
    Reduce the environment dependencies to narrow the scope of where the bug is
    Eliminate libraries
    Simple scripts are the best
    Shrink code (5 or fewer lines is ideal)
    ***** Regress
    *** The Celluloid Ecosystem :track1:
    ** Day 3
  14. alakra revised this gist Nov 2, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -284,7 +284,7 @@
    Ruby Bug Tracker - http://bugs.ruby-lang.org
    All steps to reproduce, bonus points for attachments (script that shows the bug in action)
    Ruby Version
    Crash log (look in Console.app in OS X)
    Crash log (look in Console.app in OS X, find the equivalent for your system, maybe syslog for other unix distros)
    ***** Reduce
    ***** Regress
    *** The Celluloid Ecosystem :track1:
  15. alakra revised this gist Nov 2, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -282,7 +282,7 @@
    ask a friend to run the code on their codebase
    ***** Report
    Ruby Bug Tracker - http://bugs.ruby-lang.org
    All steps to reproduce, bonus points for attachments
    All steps to reproduce, bonus points for attachments (script that shows the bug in action)
    Ruby Version
    Crash log (look in Console.app in OS X)
    ***** Reduce
  16. alakra revised this gist Nov 2, 2012. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -281,6 +281,10 @@
    rvm and rbenv
    ask a friend to run the code on their codebase
    ***** Report
    Ruby Bug Tracker - http://bugs.ruby-lang.org
    All steps to reproduce, bonus points for attachments
    Ruby Version
    Crash log (look in Console.app in OS X)
    ***** Reduce
    ***** Regress
    *** The Celluloid Ecosystem :track1:
  17. alakra revised this gist Nov 2, 2012. 1 changed file with 9 additions and 4 deletions.
    13 changes: 9 additions & 4 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -274,10 +274,15 @@
    Also interesting: http://rdoc.info/stdlib/rinda/frames
    *** How I Set out to Benchmark an Algorithm and Ended Up Fixing Ruby :track3:
    **** 4 Rs of bug reporting
    Reproduce
    Report
    Reduce
    Regress
    ***** Reproduce
    Make the bug occur everytime (or at least more than once)
    Ruby can be influenced by various .*rc files (.irbrc, .gemrc)
    Environmental variables
    rvm and rbenv
    ask a friend to run the code on their codebase
    ***** Report
    ***** Reduce
    ***** Regress
    *** The Celluloid Ecosystem :track1:
    ** Day 3
    *** mruby meets iOS and RTOS! :track3:
  18. alakra revised this gist Nov 2, 2012. 1 changed file with 6 additions and 0 deletions.
    6 changes: 6 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -271,7 +271,13 @@
    Ruby socket programming paterns from shttpserv
    DRB doesn't translate procs remotely, it will proxy back to the client
    http://segment7.net/projects/ruby/drb/DRbSSL/
    Also interesting: http://rdoc.info/stdlib/rinda/frames
    *** How I Set out to Benchmark an Algorithm and Ended Up Fixing Ruby :track3:
    **** 4 Rs of bug reporting
    Reproduce
    Report
    Reduce
    Regress
    *** The Celluloid Ecosystem :track1:
    ** Day 3
    *** mruby meets iOS and RTOS! :track3:
  19. alakra revised this gist Nov 2, 2012. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -270,6 +270,7 @@
    Using Marshalling to save and resurrect objects
    Ruby socket programming paterns from shttpserv
    DRB doesn't translate procs remotely, it will proxy back to the client
    http://segment7.net/projects/ruby/drb/DRbSSL/
    *** How I Set out to Benchmark an Algorithm and Ended Up Fixing Ruby :track3:
    *** The Celluloid Ecosystem :track1:
    ** Day 3
  20. alakra revised this gist Nov 2, 2012. No changes.
  21. alakra revised this gist Nov 2, 2012. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -268,6 +268,8 @@
    Extending Ruby's method invocation to socket programming
    ObjectSpace._id2ref & send
    Using Marshalling to save and resurrect objects
    Ruby socket programming paterns from shttpserv
    DRB doesn't translate procs remotely, it will proxy back to the client
    *** How I Set out to Benchmark an Algorithm and Ended Up Fixing Ruby :track3:
    *** The Celluloid Ecosystem :track1:
    ** Day 3
  22. alakra revised this gist Nov 2, 2012. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -267,6 +267,7 @@
    RPC -> RMI
    Extending Ruby's method invocation to socket programming
    ObjectSpace._id2ref & send
    Using Marshalling to save and resurrect objects
    *** How I Set out to Benchmark an Algorithm and Ended Up Fixing Ruby :track3:
    *** The Celluloid Ecosystem :track1:
    ** Day 3
  23. alakra revised this gist Nov 2, 2012. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -256,7 +256,7 @@
    unix
    ipc - interprocess comm
    fork/pipe, systemV IPC
    **** Embedding HTTP into processes
    **** DRB story and methodology
    embedded web servers into small apps
    was doing everyting with CGI (not cool anymore)
    http restricts how to exchange objects
    @@ -266,6 +266,7 @@
    Wanted Ruby to talk to Ruby.
    RPC -> RMI
    Extending Ruby's method invocation to socket programming
    ObjectSpace._id2ref & send
    *** How I Set out to Benchmark an Algorithm and Ended Up Fixing Ruby :track3:
    *** The Celluloid Ecosystem :track1:
    ** Day 3
  24. alakra revised this gist Nov 2, 2012. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -264,6 +264,8 @@
    function api (rpc)
    Didn't want to convert Ruby world to Web world
    Wanted Ruby to talk to Ruby.
    RPC -> RMI
    Extending Ruby's method invocation to socket programming
    *** How I Set out to Benchmark an Algorithm and Ended Up Fixing Ruby :track3:
    *** The Celluloid Ecosystem :track1:
    ** Day 3
  25. alakra revised this gist Nov 2, 2012. 1 changed file with 6 additions and 0 deletions.
    6 changes: 6 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -258,6 +258,12 @@
    fork/pipe, systemV IPC
    **** Embedding HTTP into processes
    embedded web servers into small apps
    was doing everyting with CGI (not cool anymore)
    http restricts how to exchange objects
    server - client relationship
    function api (rpc)
    Didn't want to convert Ruby world to Web world
    Wanted Ruby to talk to Ruby.
    *** How I Set out to Benchmark an Algorithm and Ended Up Fixing Ruby :track3:
    *** The Celluloid Ecosystem :track1:
    ** Day 3
  26. alakra revised this gist Nov 2, 2012. 1 changed file with 8 additions and 0 deletions.
    8 changes: 8 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -250,6 +250,14 @@
    Pure Ruby
    In ruby standard library
    Using recorded videos to display irb coding
    **** Usage
    distributed RSpec
    **** Design Style
    unix
    ipc - interprocess comm
    fork/pipe, systemV IPC
    **** Embedding HTTP into processes
    embedded web servers into small apps
    *** How I Set out to Benchmark an Algorithm and Ended Up Fixing Ruby :track3:
    *** The Celluloid Ecosystem :track1:
    ** Day 3
  27. alakra revised this gist Nov 2, 2012. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -249,6 +249,7 @@
    Can send objects between processes
    Pure Ruby
    In ruby standard library
    Using recorded videos to display irb coding
    *** How I Set out to Benchmark an Algorithm and Ended Up Fixing Ruby :track3:
    *** The Celluloid Ecosystem :track1:
    ** Day 3
  28. alakra revised this gist Nov 2, 2012. 1 changed file with 6 additions and 0 deletions.
    6 changes: 6 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -243,6 +243,12 @@
    Searching
    bug #7158 - require is too slow - https://bugs.ruby-lang.org/issues/7158
    *** What we can learn from dRuby's metaprogramming magic :track3:
    What is dRuby? (dRB)
    Distributed Object System
    Can invoke methods in different processes
    Can send objects between processes
    Pure Ruby
    In ruby standard library
    *** How I Set out to Benchmark an Algorithm and Ended Up Fixing Ruby :track3:
    *** The Celluloid Ecosystem :track1:
    ** Day 3
  29. alakra revised this gist Nov 2, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -241,7 +241,7 @@
    GC Time
    Compile Time
    Searching
    bug #7158 - require is too slow
    bug #7158 - require is too slow - https://bugs.ruby-lang.org/issues/7158
    *** What we can learn from dRuby's metaprogramming magic :track3:
    *** How I Set out to Benchmark an Algorithm and Ended Up Fixing Ruby :track3:
    *** The Celluloid Ecosystem :track1:
  30. alakra revised this gist Nov 2, 2012. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -241,6 +241,7 @@
    GC Time
    Compile Time
    Searching
    bug #7158 - require is too slow
    *** What we can learn from dRuby's metaprogramming magic :track3:
    *** How I Set out to Benchmark an Algorithm and Ended Up Fixing Ruby :track3:
    *** The Celluloid Ecosystem :track1: