Taking a sabbatical to work on Ruby profiling tools
jvns.ca
jvns.ca
If anyone has tools/techniques I've missed, I'd love additions to this list:
https://gist.github.com/jvns/b81eb039f6373bc577d7dbdd978581b...
What to do? Something technical is great. Non tech stuff is good too (travel, learning new skills, family time, volunteering, etc).
OT: HN folks, I posted this a few days ago, not sure if there was an issue with dup checking: https://news.ycombinator.com/item?id=15832094
I can't comment on Ruby's profiling stack, but I think that cProfile is a great tool for finding bottlenecks in Python. Usually, I've found that sorting functions by cumulative execution time is sufficient. You can't do flame graphs out-of-the-box, however.
Whereas I don't. Between the performance impact (code with and without cprofile can have very different… profile), the lack of stack information and yet the lack of precise, actionable code-level information makes it not really useful/convenient for non-trivial codebases. Feeding the trace files to more visual systems (e.g. gprof2dot or runsnakerun) doesn't help much either.
These days I tend to use python-flamegraph (or pyflame but that's linux-only, though it has the advantage of using ptrace and can be attached to a running process at any point), this gives a mile-high view of the entire software in an extremely readable format, and from there it's possible to dive into specific hotspots with limited-scope profiles (whether with cprofile, with line_profiler[0] or with dedicated benchmarks).
[0] which has cprofile's issue of impacting the software it observes except significantly worse)
Then you can either use existing scripts of build on top of that. It's quite powerful. What do you think is missing?
In fact CPtython 3.6 includes such probes: https://docs.python.org/3/howto/instrumentation.html
> does this tool, that can spit out Ruby stack traces quickly for any Ruby program with debugging symbols enabled, actually exist somewhere and I just don’t know about it?
To your question in your other post you linked in your post: Maybe you mean APM, it stands for application performance monitoring. Search for "Ruby APM". Maybe the can inspire you for your tool. Good luck
Sabbaticals are reserved for tenured professors who have been working for a lifetime so they can achieve something non-academic. It should not become a euphemism for breaks that burnt out programmers who lack time management skills take so they can get their life together.
Why do you think so? Sabbatical means a break. It's common for professors, but why prevent other people from taking it? I took a sabbatical from my uni to do some real work (and ended up moving unis, countries as a result), then took a sabbatical from work for personal reasons and did other things I wanted to do.
If that prevents a burn out for someone, great! Not every company has enough projects going on to reshuffle you to the place you enjoy. (Or may not want to for valid reasons) Not every sabbatical is about burnout either.
Because... that's what they actually are. A sabbatical was a very specific thing that was hijacked by HR people in tech companies. What you did was take a break; that has very different connotations than what a sabbatical is supposed to be.
A sabbatical is a break where you do something different with your life. If it's good for the mind of an academic, it's good for the mind of a programmer too. Having just taken a gap year myself, I recommend it to anyone. It should be more available.
This sabbatical seems exactly like something design to allow an expert focus on something outside the general scope of work. To really dedicate oneself to an academic pursuit.
I fully support providing engineers a conduit to build something that helps everyone!
For devs it could also be to work on something that isn't profitable.
Contrast this with sabbaticals, which are given to tenured professors who have been working for a lifetime so they can achieve something non-academic. Why do we acknowledge that professors may want to achieve something outside of their workplace, while not giving programmers a sabbatical to do the same?
That's absurd.