the path to pair programming in che with atom teletype · the path to pair programming in che with...
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022042222/5ec821eea6f4b447d6607a5c/html5/thumbnails/40.jpg)
Paris 2018 - @sunsengdavidtan #OracleCodeParis
Thank you
@sunsengdavidtan & @stevanLM
Q&A and Open Demo