the path to pair programming in che with atom teletype · the path to pair programming in che with...

40
Paris 2018 - @sunsengdavidtan #OracleCodeParis The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan

Upload: others

Post on 22-May-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

The Path to Pair Programming in Che with Atom Teletype

Sun Tan - Red Hat

@sunsengdavidtan

Page 2: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Agenda● Eclipse Che● Atom Teletype● Atom Teletype in Che ● What’s next● Q&A and open demo

2

Page 3: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Eclipse Che

3

An introduction to Eclipse Che

Page 4: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis 4

Page 5: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Anyone, anytime can contribute to a project without installing software.

Page 6: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Is Che just an Eclipse IDE with a Web UI ?

6

Page 7: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Is Che just an Eclipse IDE with a Web UI?● Yes and No: Che is composed of several pieces:

○ Frontend UI in Javascript (browser)○ Workspace containers based on Docker

■ Containers may run Language Servers■ language Server for Java: Eclipse JDT

7

Page 8: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Does Eclipse Che only support Javascript?

8

Page 9: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Does Che only support Javascript?No ;) not only We support languages that has a LSP implementation

● LSP introduced by Microsoft with VSCode○ Exchange JSON RPC○ IDE clients○ Language servers

● Servers expose○ Code completion○ Markers○ Source code

● Demo: VSCode + java --- Che + php

9

Page 10: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis 10

Language ServerTool

Language Server Protocol (JSON RPC)

textDocument/publishDiagnostics

textDocument/didOpen

LANGUAGE SERVER PROTOCOL

User opens document

User edits document

Tool displays errors

Server initializes tools

Server calculates diagnostics

textDocument/didChange

Page 11: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

JDT.ls● Eclipse LSP4J● Eclipse JDT● Eclipse M2E for Maven● Eclipse Buildship for Gradle

11

Page 12: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Does Eclipse Che only work on Cloud?

12

Page 13: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Does Che only work on Cloud?● Easy to install locally:

○ Docker○ Minishift addon

● Demo: local workspace

13

Page 14: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Are project setup easier with Eclipse Che?

14

Page 15: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Are project setup easier with Che?● Workspace definition

○ Container based○ tooling

● Factory URL○ Regenerate a workspace on demand○ Projects to clone○ Post loading events

● Open a file at a line● Run a command (build and run)

○ Pull request panel

15

Page 16: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

How easy would it be to switch context/branch/task with Che?

16

Page 17: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

How easy would it be to switch context/branch/task with Che?● Factory URL

○ Project template:■ Docker image

● Available tools■ Projects to clone■ Supported language

● Generate a workspace for each task● Multiple git repos simpler to manage

17

Page 18: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Is it possible to use my own command line tools with Che?

18

Page 19: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Is it possible to use my own command line tools with Che?● YEAH: set up your own docker image with all the tools you use

○ My dev workspace sunix/che-dev https://hub.docker.com/r/sunix/chedev/~/dockerfile/ :■ Tig git■ Screen■ Npm, yarn■ Gulp■ Maven, JDK

19

Page 20: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Can I have a development environment as closed to my production environment?

20

Page 21: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Can I have a development environment as closed to my production environment?Openshift based runtime stack + tools containers

Next slide ...

21

Page 22: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

“Dev Mode” for your Application Stack

App

Application stack-

Dockerfile, kubernetes.yaml, openshift.yaml, helm chart

Application stack / “Dev Mode”IDE Tooling as microservices in sidecars

Language

IDE

DebuggerTest

App

Page 23: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

What about co-editing “a la Google Docs”?

23

Page 24: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis 24

● Quick collaboration

○ Mentoring session

○ Code reviews

○ Co-editing

● No need to setup or install anything - just share a link

● Better than screensharing...

Pair Programming ?

Page 25: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Agenda● Eclipse Che● Atom Teletype● Atom Teletype in Che ● What’s next● Q&A and open demo

25

Page 26: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Atom Teletype

26

Presentation and demo

Page 27: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Atom Teletype● Extension for the Atom editor● Pair programming/Live concurrent editing● FOSS libraries for other editors

○ teletype-client○ teletype-server○ teletype-crdt

● Communication○ Conflict-free Replicated Data Type: CRDT ○ WebRTC

27

Page 28: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Atom Teletype

28

Demo

Page 29: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Atom Teletype

Host

Guest

Guest

Guest

Page 30: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Atom Teletype

Host

Guest

Guest

Guest

TeletypeServer

register/discover

register/discover

https://api.teletype.atom.io/

Page 31: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Atom Teletype

Host

Guest

Guest

Guest

Peer-to-peerCRDT

synchronisation

Page 32: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Teletype Portals● Portal <=> workspace● 1 host portal● 1..n guest portals● A shared pair programming session● Active files of the host portal● Editors and buffers

32

Page 33: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Atom Teletype in Che

33

A status of Atom Teletype in Che

Page 34: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Why Atom Teletype ?● Looking for alternative to Eclipse Flux

○ Solve conflict issues○ FOSS○ Browser friendly

● Mainly two alternatives:○ ot.js (operational transform)○ Atom Teletype

● No available demos for ot.js

34

Page 35: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Steps to Atom Teletype in Che● Reusing previous demo

○ Cursors○ Editor content synchronization

● teletype-client embedded into the Che IDE○ Adapt a NodeJS (Electron) library to the browser○ GWT overlays

● Default teletype-server (Github Atom)● First iteration: as a Teletype guest portal

35

Page 36: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Atom Teletype in Che

36

Demo

Page 37: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Agenda● Eclipse Che● Atom Teletype● Atom Teletype in Che● What’s Next● Q&A and open demo

37

Page 38: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

What’s Next

38

How to bring the same experience we have in Google Docs for the IDE?

Page 39: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Pair.Programming.Next

App

Teletype Guest portals

HeadlessTeletype Host

portal

TeletypeServer

Tools

Che workspaces with sidecars

Guest

Guest

Guest

GuestGuest

Page 40: The Path to Pair Programming in Che with Atom Teletype · The Path to Pair Programming in Che with Atom Teletype Sun Tan - Red Hat @sunsengdavidtan. ... Does Eclipse Che only work

Paris 2018 - @sunsengdavidtan #OracleCodeParis

Thank you

@sunsengdavidtan & @stevanLM

Q&A and Open Demo