
Ask HN: Solutions for collaborative code review, pair programming? - deepakkarki
Hey HN,
Me and a friend of mine want to do a series of screen casts of walking through and modifying open source code of popular libraries. The idea is to help people dig into OSS and to understand how the software they use work under the hood!<p>I plan to start with JavaScript based front-end libraries. So other than the editor and terminal, there is the browser as well that needs to be shared.<p>Any hints on what tools I can use to collaborate with my friend online? Final product is a open video playlist on YouTube. Ideally I&#x27;d like my friend to also modify the code when we&#x27;re playing with it!
======
neppo
For collaborating on the code look at the Visual studio code feature called
live share, which allows you to collaborate in real-time [1].

I've tried it and it worked well.

[1] [https://code.visualstudio.com/blogs/2017/11/15/live-
share](https://code.visualstudio.com/blogs/2017/11/15/live-share)

~~~
nijaru
Atom has [https://teletype.atom.io/](https://teletype.atom.io/) as well. I
don't have any experience with either though.

~~~
rjzzleep
supposedly tandem leverages teletype work for vim and sublime

[https://github.com/typeintandem/tandem](https://github.com/typeintandem/tandem)

------
mrborgen
Hey there!

At Scribma, we're building a new tool for doing exactly this: sharing both
code, terminal, and browser, and collaborating using 100 times less bandwidth
than you would via traditional screen sharing tools.

Also, it's automatically recorded, so you don't have to worry about doing
screen recording via e.g. QuickTime while coding (which at least makes my mac
fan go nuts after a few minutes).

You can check out a video of it here:
[https://www.youtube.com/watch?v=Rsorl3-TjdY](https://www.youtube.com/watch?v=Rsorl3-TjdY)

We're on the lookout for more beta testers, so I'd love to set up a chat with
you.

Interested?

If so, let me know at per@scrimba.com

~~~
w4tson
That looks very cool. The demo says it’s 2-way collaboration. How does that
work with the terminal? Or rather how do you stop your colleague from going
rogue at your command line before you can hit stop

~~~
hamandcheese
If this is part of your threat model then you probably shouldn’t be
collaborating with a shared terminal in the first place.

------
mikekchar
Probably not quite what you had in mind, but because I'm half way around the
world from my teammates the most successful tools I've used are a console
editor and tmux (potentially running on a VM if you don't trust your friend).
For voice, mumble is my first choice because it is both low bandwidth and low
latency. Tiger VNC works reasonably well to display a shared web browser.
Nothing else I've tried has the fidelity and low latency to do serious pair
programming for long periods of time when one person is really far away.

Having said that, almost _anything_ works well if you are close to each other
or if you are only going to pair for an hour or so. Even non-collaborative
conference call-type tools work fine. One person does some work. Then they
check in their code to a git repository. The other person merges the changes,
shares the screen and picks up from there. It means about a 1 minute "keyboard
handoff", but it's pretty reasonable.

For you, though, I think the main thing is trying to find a solution that
allows you to capture video and audio from both parties easily. You don't want
to be relying on two parties to record and then editing because it's pretty
risky if something goes wrong. I would first look at mutli-gamer streaming
setups and then start seeing how a collaborative session might be done.

------
nicolasv
If you're both using macOS, the Messages app's screen sharing [1] is seriously
good.

[1]: [https://support.apple.com/en-au/guide/messages/screen-
sharin...](https://support.apple.com/en-au/guide/messages/screen-sharing-
icht11883/mac)

------
frant-hartm
This is where Intellij IDEA (and other JetBrains' products) lack severely.

There is a 14 year old (!!) issue in their issue tracker
[https://youtrack.jetbrains.com/issue/IDEABKL-708](https://youtrack.jetbrains.com/issue/IDEABKL-708)
asking for such feature. Unfortunately they are so much better in other areas
(code navigation/exploration, refactoring) that they don't have to even try
:-//.

There is a commercial plugin [https://floobits.com/](https://floobits.com/),
but it is \- monthly subscription \- buggy \- transfers code to their servers
so it is not really an option.

~~~
Insanity
Sounds like a good idea for an OSS IntelliJ plugin actually.

------
slovette
While researching remote desktops this weekend I ran across this:

[https://www.use-together.com/](https://www.use-together.com/)

Looks pretty cool actually.

~~~
jlehuraux
Thanks for sharing Slovette :) we're building USE Together on Windows and
MacOS (Linux coming later) as a Screenhero replacement tool for remote pair
programming and collaborative screen sharing.

When you share a screen or app with people via USE Together, you see each
user's mouse cursor on your screen and they can interact with your apps in
real time, feeling like you are at the same desk.

You can share any IDE with USE Together :)

------
pedro1976
I can recommend two free solutions that both work fine. For both you can share
the controls, to basically hand-over the keyboard/mouse.

\- zoom.com: You can share desktop or windows with groups or individuals. We
use it at work, the user experience is really great. There is a record-feature
(probably not available in the free version).

\- slack.com: The popular chat provides a desktop (not windows) share feature.
I am not aware tough if you can share a stream with a group of people.

------
lukebennett
Tuple[0] is a new entrant in this space, still in alpha currently. I've never
seen or used the tool, only know of it via Ben Orenstein's Art of Product
podcast[1].

[0] [https://tuple.app](https://tuple.app)

[1] [http://artofproductpodcast.com/](http://artofproductpodcast.com/)

------
sixhobbits
Take a look at repl.it - I've been using it a lot after trying glitch and a
bunch of others and it's really flexible and powerful. They released some more
collaboration features very recently. It's a bit rough around the edges, but
it's been working great for me so far.

------
chandru89new
One alternative is [Codesandbox.io][0] for collaborative editing. Your friend
and you can then do a Hangouts Live session. Only one of you needs to share
your screen (with the codesandbox tab open).

[0]: [https://codesandbox.io](https://codesandbox.io)

------
another-cuppa
I'm not sure what other commenters are talking about, but the vast majority of
open source is developed by programmers in isolation and the only
collaborative tools used are some kind of VCS like git and some kind of
"forge" like GitHub.

~~~
ThePadawan
OP is looking for a tool to live-share their programming environment with a
friend for demonstration (and recording) purposes.

------
hashkb
Use the same vim or emacs with ssh and floobits or something. Stream windows
with ultimate flexibility using OBS.

Edit: ngrok for exposing ports, OBS can stream and record simultaneously.

------
GarethX
You can collaborate on code in the browser with Glitch
([https://glitch.com](https://glitch.com))

------
cyphar
tmate is pretty good as a way of sharing a tmux session over the internet
(which precludes you do development in a terminal)[1]. We use it quite a bit
in my team as a quick way to explain/debug a problem.

[1]: [https://github.com/tmate-io/tmate](https://github.com/tmate-io/tmate)

~~~
BlackjackCF
+1 for tmate. I use it constantly with friends in combination with Vim.

------
smilesnd
Vim, ssh, irc, mumble, and screen all the tools I need for collaborating on
code with others.

------
mooreds
Zoom lets you record and share screens. Not free, but works with most
operating systems.

------
Kagerjay
VScode livecode share works great.

If it can stay purely on codepen, that's a great alternative too

------
agnelvishal
Such a video will be useful for newbies like me

------
hex20
vscode live share

------
Dowwie
atom teletype

