Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Build impossible programs

Build impossible programs

80c37b7308df099b8b9ec660146cf3da?s=128

Julia Evans

May 21, 2018
Tweet

Transcript

  1. build impossible programs JULIA EVANS bork

  2. about a program I built that I wasn't sure would

    work rb spy
  3. I 800 debugging profiling tools

  4. ftp.sina.io yYIato OEht

  5. GOAL 12016 Write a profiler that will work with and

    running Ruby program
  6. Ei O myipn f

  7. what I knew profilers like this existed for C Java

    997 Your kite to perf as
  8. why doesn t go.othaisreaefjs.fm ftp.iismptohsissible uT

  9. myths about doing innovative work i i

  10. myths you have to be an expert if it were

    possible worthwhile somebody would have done it you have to code on the weekend
  11. MYTH ti

  12. some minor problems understanding of Ruby internals none Ruby OSS

    contributions none profilers 1debuggers written O it trust 1C skills beginner
  13. alternative to being an expert find a starting point spend

    time learning build a prototype
  14. HE 2016 HE E Q

  15. Bok 2016 Bok i O

  16. HE 2016K Recurse center never graduate week f Iprwo pied

  17. ruby current thread Rstring cfp l seq black panther body

    location label rb.threao.trb.co roi.frame.trb iseg.t a ct ise µµ µ
  18. 1 week later 5Ucctssu extremely sketchy Rust demo

  19. None
  20. ET i 0 spoiler I didn't work on it for

    more than a year
  21. my prototype had serious problems depended on highly unstable details

    about Ruby interpreter internals 2 3.2 2 3 3 required debugging symbols
  22. MYTH E

  23. 3 months later Rust conf ei

  24. make that i o yehud Katz

  25. REALITY not many people work on Ruby profilers same is

    true for MANY other I
  26. MYTH OEI xaoi.neieo.fi praa time

  27. where am I going to find 400 hours

  28. where I found the time prototype kzo 6 L week

    of vacation the rest 2018 3 months paid or
  29. cold

  30. o Q

  31. I have 3 months now what

  32. TACTICS choose Rust survey the space amazing testing invest in

    usability document
  33. on choosing Rust a even though I didn't know it

    well
  34. Rost lets me to write fast programs to work with

    C data structures to write programs with no faults memory leaks
  35. g for ambitious projects you might need new tools

  36. TACTIC survey prior art

  37. goal find out how every Ruby Python profiler works doing

    this took 1 day
  38. 3 kinds of profilers to tracing profilers same process to

    sampling profilers same process to pyflame
  39. how to find struct layouts pyflame compile time header files

    my demo runtime DWARF
  40. how to find struct layouts pyflame compile time header files

    rbspy runtime compile time
  41. TACTIC invest in testing

  42. rb spy testing strategy collect core dumps memory snapshots for

    5 6 different Ruby versions of test on those
  43. result only 1 bug report about incompatibility with Ruby binary

    reported in 2 months
  44. TACTIC invest in usability

  45. features nobody can use might as well not exist

  46. None
  47. how flame graphs usually work to git clone github.com I

    add it to your PATH to cat data 1 flame graph.pl
  48. how flame graphs work in rbspy run rbspy record rbspy

    automatically creates a flame graph
  49. I qq.EU jcheerfulstoiccommented23daYJ I'm not sure if flame graphs are

    available in other tools but the ease and accessibility of them in rbspv brought them to me for the first time t
  50. write documentation

  51. rbspy.github.io

  52. I spent 400 hours on this project

  53. it mostly works I E.EE andrewhamptoncommented on Mar 30 I

    do a lot of work on a rails appthat's over 70yearsold I used rbspy record bundle exec rspec ftp aefeweeshagnniortoprmaesef.tv configuredthe script The CPUtime for the entire suitedroppedbynearlyan hour Thanks junsfor theamazingtool
  54. give yourself the time to do something 0 ambitious as

  55. qinermeonisso oasis toot 2017 2018 julia julia

  56. provide sabbaticals thanks stripe Fund open source thanks

  57. g yan bcrypt A lot of people ask why should

    I work in software development as opposed to math physicsHinanceletc One reason is that this field is surprisingly full of inadequate equilibria a steady state in which low hanging fruits are still available for non experts to solve 20 11428 07,487
  58. go build something impossible