13 ms·
Leaving Mozilla
- vitno 11y agoWow, it's the end of an era. I wish him the best of luck. rr is really awesome and deserves even more attention. (http://rr-project.org/ http://rr-project.org/)
- esaym 11y agoAnd for those that have no idea what rr is: http://rr-project.org/ http://rr-project.org/ So no, he is not leaving for "rest and relaxation"
- pmilot 11y agoTo be fair, people also think "rest and relaxation" is amazing, and we probably need to capture some of the value of this technology via a for-profit company as well.
- DonHopkins 11y agoI would pay to be able to time travel and replay my rest and relaxation!
- neves 11y agoI've never heard about rr http://rr-project.org/ http://rr-project.org/), his tool to record program execution and debug it afterwards. The alleged 1.2x slowdown in execution is negligible. The ability to reverse in time is almost a nirvana. I'm sad I didn't have it when I used to program C++. Hope he succeeds in his new endeavor. We'd all win big. Does anyone knows of similar tools for Python and in-browser Javascript?
- ninjaranter 11y agoRe: Javascript - If you use the'redux' (http://redux.js.org/ http://redux.js.org/) framework you can get something like this (https://github.com/gaearon/redux-devtools-dock-monitor https://github.com/gaearon/redux-devtools-dock-monitor)
- jeswin 11y agoI understand you never claimed they are similar. But to be fair (and with due credit to redux for being a great framework), all redux does is save method call arguments in an array. rr is on a different scale altogether.
- pgbovine 11y agothe python case is interesting ... after all, the interpreter is just another binary executable. perhaps there's a way to write a layer above rr to "step" in Python code rather than the underlying C code. same with JS (Node.js) or any other language run-time.
- ianbicking 11y agoPython and in-browser Javascript are also programs, in theory rr covers the entirety? But I don't know what the ergonomics are like (e.g., how much will you see program activity in your platform that you don't care about, and how well can you see the activity in the code you are debugging?)
- roca 11y agoYes, rr can record python and JS execution just fine, but the debugging experience is hopeless, since right now rr just gives you gdb. With an astounding tolerance for pain you can make progress by calling JS engine functions from gdb, but nobody wants that. This is fixable, however, and on my agenda.
- xigency 11y agoSounds very similar Green Hills Software's TimeMachine for embedded applications.
- dingo_bat 11y agoTimeMachine needs a specialized hardware probe connected via JTAG, if I'm not mistaken. The probe is powerful enough to record everything (registers, operations, etc) in its memory without affecting the embedded device. Then you can replay the info however you want, in as much detail as you like. The feature here is more like software emulation, and it will really allow you to take the instruction pointer in reverse direction. Unlike TimeMachine which records in real time and let's you browse the recorded data as you wish, but after execution has occurred.
- yitchelle 11y agoMy thoughts were very similar to yours. In 1992, when I started out in embedded on a Philips 8051 and debugging it was via an ICE and had direct visibility and control of the 8051. The ICE would be connected to a bonded out version of the 8051 and I was almost able to capture every single clock cycle of 8051's execution. When I hit a failure, I would just replay the trace and see what went wrong. It looks like the folks on the big machines have caught up :-)
- ArkyBeagle 11y agoI had access to a Huntsville Microsystems ICe that used a bog-standard - non-bonded-out - 68008 in harness. I had scripting tools that would capture and replay all the registers to back the machine up. That HMI was a brilliant machine. It's really the last debug tool I ever used besides AVR, PIC and one ARM JTAG for doing BSP work.
- cpeterso 11y agoMozilla is prototyping a feature called "WebReplay" to support reverse-debugging of JavaScript and DOM mutation: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/WebReplay https://developer.mozilla.org/en-US/docs/Mozilla/Projects/We... https://bugzilla.mozilla.org/show_bug.cgi?id=1207696 https://bugzilla.mozilla.org/show_bug.cgi?id=1207696 It looks like Microsoft is implementing a similar time-travel feature in Chakra: https://github.com/Microsoft/ChakraCore/commits/TimeTravelDebugging https://github.com/Microsoft/ChakraCore/commits/TimeTravelDe...
- StevePerkins 11y agoIf I'm understanding this correctly, then Java has had it for ages now via the "Chronon" debugger. It's the only reason why I pay for an IntelliJ Ultimate Edition license, since it comes bundled.
- microcolonel 11y agoThere are other reversible debuggers, but even a mature one like Chronon has more overhead than this. 1.2x is basically nothing.
- easytiger 11y agoNot if you have > 1 busy thread.
- shimon 11y agoIf you're willing to accept things that compile to in-browser javascript, check out Elm's magical time-traveling debugger: http://debug.elm-lang.org/ http://debug.elm-lang.org/
- jc4p 11y agoFor Python my coworker (and friend) Tom has a great project called timetravelpdb: http://everythingsysadmin.com/2014/04/time-travel-pdb.html http://everythingsysadmin.com/2014/04/time-travel-pdb.html explains a bit on it, the repo is https://github.com/TomOnTime/timetravelpdb https://github.com/TomOnTime/timetravelpdb Basically it's an extension of pdb that allows you to jump back and forth in time.
- martindale 11y agoI'm building something like this for in-browser Javascript, but in a larger context. We're not ready for public consumption yet, but: https://fabric.fm https://fabric.fm
- jamiecollinson 11y agoInteresting! Tried to subscribe but got an error: {"code":-5000}
- reaktivo 11y agoI was really impressed when finding out about Microsoft's Chakra JS engine Time travelling debugger[1], I think that's what you're looking for, haven't tried it myself though. [1] https://youtu.be/1bfDB3YPHFI?t=304 https://youtu.be/1bfDB3YPHFI?t=304
- tolmasky 11y agoNo exactly the same thing but Tonic has similar capabilities using CRIU (checkpoint and restore in user space) for Javascript time traveling: http://blog.tonicdev.com/2015/09/10/time-traveling-in-node.js-notebooks.html http://blog.tonicdev.com/2015/09/10/time-traveling-in-node.j... It's an interesting different approach because it allows you to rewind the entire machine, so you can interact with interactions between different processes, etc (happy to answer questions, I am a dev on it)
- mrdrozdov 11y agoThere is something similar in bpython called rewind. Run a few commands in the repl and then try `ctrl+r`.
- mrdrozdov 11y agoI wonder how it works. Assuming it must capture state at t=n, and somehow calculate the diff to get to t=n+1. Could theoretically pop diffs to get to any point in the past.
- Zitrax 11y agoGdb has supported reverse debugging since 2009.
- deleted 11y ago[deleted]
- sfink 11y agoI've used it, and I've been using rr. gdb's reverse debugging was useful to me a few times, in extremely limited situations. I often do my initial runs under rr, just in case I might want to debug, because it's useful most of the time and it's not enough overhead to worry about. gdb's reverse debugging works after you narrow the range of interest down to a very small region, because otherwise its buffer will repeatedly overflow and it'll take ages.
- pflanze 11y agoSeems rr is using fork for its implementation. The first time I've seen this approach taken is in Ocaml's debugger.[1] [1] http://caml.inria.fr/pub/docs/manual-ocaml/debugger.html http://caml.inria.fr/pub/docs/manual-ocaml/debugger.html
- easytiger 11y agoIts not free, but there is http://undo-software.com/undodb/ http://undo-software.com/undodb/
- gansai 11y agohe just committed 7 hours ago. https://github.com/mozilla/rr/commit/ef7691ac8a25ec9767ba7446e124bda45d192044 https://github.com/mozilla/rr/commit/ef7691ac8a25ec9767ba744...
- geofft 11y agoYes, per the blog post he plans to spend more time working on rr than he thinks it's reasonable for Mozilla to have to support: And now there's rr. People think it's amazing, and it is, but we're only scratching the surface of what could be done. I'm bursting with ideas, and realizing them will require a lot of resources, resources that Mozilla cannot and should not provide --- we probably need to capture some of the value of this technology via a for-profit company. We can change the way people debug software, and in its own way that may be as important as my Web platform work, and it's work I desperately want to do.
- josteink 11y agoFrom reddit to answer the question some might pose ("who?"): > One of Mozilla's most senior engineers who has worked on Mozilla projects as a contributor and employee for well over a decade particularly working in the graphics code and helping make native audio and video in the browser a reality. http://www.reddit.com/r/firefox/comments/48ix55/robert_ocallahan_is_leaving_mozilla/d0k5bay http://www.reddit.com/r/firefox/comments/48ix55/robert_ocall...
- autotune 11y agoGreat! Now how about the next question: "Why?" I suppose it's nice to know that he is a big deal but as someone who doesn't follow mozilla religiously a little more background is always appreciated.
- kibwen 11y agoWhy is he leaving? That's covered in the OP: he wants to devote his full-time attention to working on rr, a reversible debugger for native code that imposes impressively low overhead, and possibly spin it into a startup.
- jlebar 11y agoI think roc would give me a sly smile for pointing out that this doesn't really answer the "why". It's what he's going to do after he leaves. Doesn't quite answer why he's leaving.
- kibwen 11y agoBecause... he wants to do those things? I'm really unsure what you're trying to say.
- SkyMarshal 11y agoHe just wants to build a startup out of some cool tech and get rich. There's no conspiracy or dirty laundry here.
- disordinary 11y agoWonder if that's the end of Mozilla's only southern hemisphere office in Auckland.
- kibwen 11y agoI know of at least one other NZ Mozillian (Nick Cameron, on the Rust project) but I'm not sure if he works remotely or at an office.
- disordinary 11y agoPretty sure he lives in Wellington and so must work remotely.
- doublec 11y agoThere were about ten NZ Mozilla employees when I worked there a year ago. Not all at the Auckland office but there were plenty there to keep the office utilized at the time.
- cpeterso 11y agoNo. Mozilla's Auckland office has other engineers working on Gecko video playback.
- joshmoz 11y agoI worked with Robert at Mozilla for many years. He might be the most talented software engineer I've ever met, and he's a strong candidate for nicest person as well. An absolute pleasure to work with. Mozilla will miss him dearly but some other project (apparently rr) just got really lucky.
- BrendanEich 11y agorr is roc's baby ;-).
- idibidiart 11y ago"Christian" ... Since when has it become fashionable to define oneself by religion? I mean especially in professional circles like software development. I don't expect to see "Jew" or "Moozlim" (sic) or "Amoral Atheist" used to define people. Lots of respect for his work but I it does turn me off because of what it might imply As far as personal biases.
- dtf 11y agoIt's a personal blog, and that's a bio. A short list of interests, things that might turn up in the blog.
- mwenge 11y agoChristians of all denominations actively proselytise - it's a core part of being a Christian, spreading the 'good news'. This distinguishes the Christian ethos from most other mainstream religions which have a weak or non-existent missionary instinct. So no, it's not unusual at all for a Christian to highlight the fact. From the point of view of a Christian in an increasingly secular world it probably feels more necessary than ever. P.S. I am a Christian by birth but not vocation.
- ternaryoperator 11y agoTo be clear, only some strains of Christianity are active proselytizing. There are strains that do none at all.
- elcritch 11y agoMost strains of Christianity will have some form of proselytizing, though it might be muted. Plus there also tends to be ebbs and flows in the history and culture of such things. It's interesting to note that proselytizing arguably has a very significant (positive) effect on formation of liberal democracies [1]. [1]: http://isites.harvard.edu/fs/docs/icb.topic965299.files/Woodberry%20APSR%202011.pdf http://isites.harvard.edu/fs/docs/icb.topic965299.files/Wood...
- simplexion 11y ago
- deleted 11y ago[deleted]
- Arnavion 11y agoThanks Robert for signing up for StackOverflow just to answer my question http://stackoverflow.com/q/34488237 http://stackoverflow.com/q/34488237
- j0e1 11y agoGreat work; Great song!
- reledi 11y agoI'm not familiar with Robert or his work, but I quite liked this post. The brevity and honesty was refreshing. I couldn't help but feel excited at the end!
- haberman 11y agoRegarding RR he says: > we probably need to capture some of the value of this technology via a for-profit company I hope this doesn't mean making it proprietary. I mean obviously a person gets to decide how to best compensate themselves for the fruits of their labor. But I've seen too many compelling technologies fail to achieve the impact they could have because they were proprietary. I mean, DTrace languishes despite being open-source, because it wasn't open-source enough
- cyphar 11y agoDTrace doesn't languish. It just doesn't have a Linux port, because of people's contrived rewriting of the history of the GPL.
- gsnedders 11y agoIt does, it's part of Oracle Linux. Oracle obviously therefore believe that a CDDL kernel module is fine.
- digi_owl 11y agoOracle also owns SUN, who originally licensed it that way...
- cyphar 11y agoIt wouldn't be distributed as a kernel module (DTrace probes are far more invasive than that). But yes, I posted this before I realised that Oracle Linux has sublicensed it under the GPL in their port to Linux (for their customers), so it's fine for us to do the same as long as we "base it on their port".
- haberman 11y agoLet me put it this way. In the last say five years, I can't think of a single article I've come across where someone describes DTrace making their life better (except one I wrote in 2011: http://blog.reverberate.org/2011/05/using-dtrace-on-os-x-to-debug.html http://blog.reverberate.org/2011/05/using-dtrace-on-os-x-to-...), or a single time anyone I know or work with has even mentioned DTrace. This is a technology that received an innovation award from the Wall Street Journal in 2006. Whatever impact DTrace is having today, it should have been much larger.
- st3v3r 11y ago"we probably need to capture some of the value of this technology via a for-profit company" Why?
- garrettgrimsley 11y agoPerhaps they don't want to end up having to beg [0, 1] for donations so that they can maintain a high quality application while also being able to afford trivial niceties like "food" and "housing." [0] https://www.propublica.org/article/the-worlds-email-encryption-software-relies-on-one-guy-who-is-going-broke https://www.propublica.org/article/the-worlds-email-encrypti... [1] http://arstechnica.com/information-technology/2014/04/tech-giants-chastened-by-heartbleed-finally-agree-to-fund-openssl/ http://arstechnica.com/information-technology/2014/04/tech-g...
- roca 11y agoBecause there's a ton of work to do and getting it done in a reasonable timespan is going to require some talented people to work on it full-time.
- joeclark77 11y agoAha. Probably some co-worker noticed his self-description on his blog. Mozilla is staffed by open-minded Californians who regrettably feel compelled to burn wrongthinkers at the stake.
- roca 11y agoEverything you said there is incorrect.
- chris_wot 11y agoI've tried to use rr on LibreOffice but had no luck whatsoever. :(
- yeukhon 11y agoIf and only if there is a way to debug network traffic like I am stopping at this router and hop to the next router.
- justinclift 11y agoReverse debugging has been around for several years, but hasn't seemed to be widely adopted. Which seems kind of unfortunate, as the concept of it looked really useful. Does rr make reverse debugging much easier than it's previously been in gdb or something? :)
- heavenlyhash 11y agorr (http://rr-project.org/ http://rr-project.org/) is a piece of magic. I've heard lots of people talk about using it in wild and awesome ways. The second part of a magic trick is to connect it to your audience. Making time-travel style debugging is... not easy, but possible. Making it relevant to people, across languages and other conceptual domains, is hard. If your next work is tackling this, good luck and godspeed :)