[{"data":1,"prerenderedAt":288},["ShallowReactive",2],{"project-4439772":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":43,"post_text":46,"what":47,"said":86,"maker_in_thread":178,"shape":185,"grid":189,"attempts":251,"same_week":252,"maker_shows":34,"maker_hidden":281,"reader_version":282,"card":283},"4439772","pry-rescue","workflow-optimized debugging for ruby","title","Show HN: pry-rescue — workflow-optimized debugging for ruby","http:\u002F\u002Fcirw.in\u002Fblog\u002Fpry-to-the-rescue","cirw.in","cirwin",1346087651,2012,69,30,343,1677,21,"notable","dev_tools","debugging","library",[24,25,21,26,27],"ruby","pry","exceptions","rails","mixed",0.29,{"positive":31,"neutral":32,"mixed":33,"critical":34},9,8,0,2,19,{"idea":37,"docs":38,"execution":39,"performance":41},{"positive":34,"critical":33},{"positive":33,"critical":33},{"positive":40,"critical":33},1,{"positive":42,"critical":34},4,[44,33,33,33,45,33,45,33,45,45,45,33,44,33,33,33,33,45,44,44,45,44,40,44,40,44,44,45,33,44],5,3,null,{"problem":48,"audience":56,"pricing":46,"motivation":46,"time_to_build":46,"stack":67,"openness":84,"stage":85,"team_size":85},{"value":49,"source":50,"evidence":51},"Debugging crashed Ruby programs from stack traces without an interactive session","commenter",[52],{"id":53,"by":54,"text":55},"4440087","stcredzero","> Whenever an unhandled exception happens in your program, pry-rescue opens an interactive pry shell right at the point it was raised. Instead of glowering at a stack-trace…",{"value":57,"source":58,"evidence":59},"Ruby and Rails developers","inferred",[60,64],{"id":61,"by":62,"text":63},"4439934","picardo","Thanks for this. How would I use it in Rails? Any tips for integration?",{"id":65,"by":11,"text":66},"4439967","In rails you can just do: ``` class ApplicationController \u003C ActionController::Base around_filter :pry_rescue if Rails.env == 'development' def pry_rescue Pry::rescue{ yield } end…",[68,76],{"value":69,"source":70,"evidence":71},"Pry","maker",[72,73],{"id":65,"by":11,"text":66},{"id":74,"by":11,"text":75},"4440110","pry-rescue is a modernization thereof (banisterfiend helped me build it). The only technical difference is that pry-rescue can catch exceptions raised at the C level (like…",{"value":77,"source":70,"evidence":78},"Rack",[79,80],{"id":65,"by":11,"text":66},{"id":81,"by":82,"text":83},"4439989","blaines","Here's a basic middleware... ``` pry_rescue.rb require 'pry\u002Frescue' class PryRescue def initialize(app) @app = app end def call(env) Pry::rescue{ @app.call(env) } end end ``` For…","open_source","unknown",{"praise":87,"objections":110,"requests":121,"questions":134,"alternatives":152},[88,103],{"value":89,"source":50,"evidence":90},"Useful and awesome work",[91,95,99],{"id":92,"by":93,"text":94},"4440748","malvim","This is awesome work, thanks! Just throwing this out there, I know a bit about the difficulties this would entail, but: Is it plausible to have something like this running in…",{"id":96,"by":97,"text":98},"4441962","cmer","Great job by the way!",{"id":100,"by":101,"text":102},"4440125","teffen","This is really cool. Looking forward to a rails version of the gem!",{"value":104,"source":50,"evidence":105},"Works in production-like use, lighter than full debug mode",[106],{"id":107,"by":108,"text":109},"4441840","banister","Not sure it's quite the same. My understanding is that `ipython --pdb` would run the entire program in debugging mode, causing a dramatic slow-down in performance of the app. The…",[111],{"value":112,"source":50,"evidence":113},"Tab completion in Pry feels slow compared to ipdb",[114,118],{"id":115,"by":116,"text":117},"4442488","gingerlime","you're probably right, and it sounds like a nice idea to create an exception wrapper that on exception does `import ipdb; ipdb.set_trace()`. However, having worked with both pry…",{"id":119,"by":116,"text":120},"4445293","I actually think it's mostly rails, not pry. I'm still new to rails and ruby, but somehow it feels much slower than django. Just loading the console feels like forever compared…",[122,130],{"value":123,"source":50,"evidence":124},"Rails integration or gem version",[125,126],{"id":100,"by":101,"text":102},{"id":127,"by":128,"text":129},"4442125","drewda","I know this is short and simple, but it still might be nice to wrap up in a gem. Or maybe work into the pry-rails gem?",{"value":131,"source":70,"evidence":132},"Rack middleware",[133],{"id":65,"by":11,"text":66},[135,139,145],{"value":136,"source":50,"evidence":137},"Can it run in production to inspect saved state later?",[138],{"id":92,"by":93,"text":94},{"value":140,"source":50,"evidence":141},"Compatibility with Pow and binding.remote_pry",[142],{"id":143,"by":97,"text":144},"4441959","I assume this won't work with Pow as it would require binding.remote_pry?",{"value":146,"source":50,"evidence":147},"Support for Ruby 1.8.7",[148],{"id":149,"by":150,"text":151},"4441420","meedimusic","is there any way to make this compatible with ruby 1.8.7? Seems like just what I need, but haven't upgraded my current app with a newer version of ruby.",[153,164,171],{"value":154,"source":50,"evidence":155},"pry-exception_explorer",[156,160],{"id":157,"by":158,"text":159},"4440056","MartinMond","Are there any difference to https:\u002F\u002Fgithub.com\u002Fpry\u002Fpry-exception_explorer ?",{"id":161,"by":162,"text":163},"4440123","kyrylo","Yes. Actually, pry-rescue not only imbibes pry-exception_explorer's power, but also provides its own possibilities. pry-rescue catches everything (even syntax errors).",{"value":165,"source":50,"evidence":166},"ipython --pdb \u002F ipdb",[167],{"id":168,"by":169,"text":170},"4440537","makmanalp","For python, ipython --pdb \u003Cderp.py> does the trick. Don't forget to install ipdb too, much nicer than plain pdb.",{"value":172,"source":50,"evidence":173},"pry-remote and pry-debugger",[174],{"id":175,"by":176,"text":177},"4441541","getriver","Wow, pry and its plugins universe gets better each day. If you're new to pry I recommend you check pry-remote & pry-debugger.",{"comments":42,"answered":42,"key":179},[180,183,184],{"id":181,"text":182},"4441216","Yes :). I'm not exactly sure of the details, but I certainly want to try! See https:\u002F\u002Fgithub.com\u002Fmrbrdo\u002Frack-webconsole: there's already a rack-webconsole-pry, so it should be an…",{"id":65,"text":66},{"id":74,"text":75},{"commenters":35,"max_depth":186,"maker_replies":42,"first_comment_mins":187,"lifespan_hours":188},7,40,48,[190,192,196,199,201,203,204,206,207,208,209,211,213,214,218,221,224,226,228,230,233,234,236,238,240,241,244,246,247,250],[53,33,44,191,54,33],"project\u002Fpositive\u002Fidea",[193,33,33,194,195,33],"4440195","other\u002Fneutral\u002Fnone","dmansen",[197,33,33,194,198,33],"4441009","vidarh",[200,33,33,194,54,33],"4441063",[92,40,45,202,93,33],"project\u002Fneutral\u002Fidea",[181,40,33,202,11,40],[61,34,45,205,62,33],"project\u002Fneutral\u002Fdocs",[65,34,33,205,11,40],[81,34,45,205,82,33],[127,34,45,202,128,33],[157,45,45,210,158,33],"project\u002Fneutral\u002Fnone",[74,45,33,212,11,40],"project\u002Fpositive\u002Fexecution",[161,45,44,212,162,33],[215,42,33,216,217,33],"4440115","other\u002Fneutral\u002Fdesign","koenigdavidmj",[219,42,33,220,101,33],"4440132","commenter\u002Fneutral\u002Fnone",[222,42,33,216,223,33],"4440150","ilja",[225,42,33,216,162,33],"4440343",[143,44,45,227,97,33],"project\u002Fneutral\u002Fexecution",[96,44,44,229,97,33],"maker\u002Fpositive\u002Fnone",[175,231,44,232,176,33],6,"project\u002Fpositive\u002Fnone",[168,186,45,210,169,33],[107,186,44,235,108,33],"project\u002Fpositive\u002Fperformance",[115,186,40,237,116,33],"project\u002Fcritical\u002Fperformance",[239,186,44,235,108,33],"4442729",[119,186,40,237,116,33],[242,186,44,243,108,33],"4447664","maker\u002Fpositive\u002Fperformance",[245,186,44,243,116,33],"4449792",[149,32,45,227,150,33],[248,32,33,249,11,40],"4441493","maker\u002Fneutral\u002Fexecution",[100,31,44,191,101,33],[],[253,258,262,267,271,276],{"id":254,"name":255,"points":256,"category":257},"4424081","Watsi",462,"web_saas",{"id":259,"name":260,"points":261,"category":257},"4438194","Business.txt",264,{"id":263,"name":264,"points":265,"category":266},"4427174","GoScale",118,"infrastructure",{"id":268,"name":269,"points":270,"category":266},"4443321","phoenixfs",115,{"id":272,"name":273,"points":274,"category":275},"4448043","Coding.fm",81,"productivity",{"id":277,"name":278,"points":279,"category":280},"4429053","ASCII Animals",62,"creative",false,"v2",{"id":284,"name":5,"line":6,"ai":281,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":285,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":286,"url":9,"mix":287,"praise":89,"objection":112,"sub":21},4439772,[24,25,21,26,27],"500030303330500003553515155305",[31,32,33,34],1793990884657]