generated from rstudio/bookdown-demo
-
Notifications
You must be signed in to change notification settings - Fork 5
/
11-collaboration.Rmd
196 lines (120 loc) · 13 KB
/
11-collaboration.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
# Collaboration tools {#collaboration-tools}
## Keybase {#keybase}
No more long emails. Nobody’s left out. No more misunderstandings. No more waiting for feedback.
**What do we need?**
- A simple-to-use communication tool where you can opt-in to be informed on a real time basis, or completely ignore us for days – similar to Whatsapp Group, Microsoft Teams, Google Hangout, Slack;
- A single, secure storage for shared documents – similar to Google Drive, Microsoft One Drive, Dropbox;
- An integration with Github – a critical feature to at least the part of our team that is working on software code or long-form technical documentations;
- Ability to oversee communications with more than 50 people with an option to streamline per topic, group, etc.;
- To avoid using emails boxes, Whatsapp, Viber, etc. – part-timers are not flooded with messages at all times, while full-timers can reach out to each other at any time;
- A space where we can communicate all the time without interrupting calls and meetings with clients on other platforms;
An integration to a project management tool that we will use for larger projects;
- A tool as simple as possible, light touch;
- Since we work in the open source, open data, open collaboration community, we would like to use something that is open source – but we are willing to pay for solutions.
And the winner is….KEYBASE.IO
Keybase is a very neat, simple, lightweight team management / chat / social networking application that is extremely focused on privacy, security and encryption.
**Keybase Key features**
- Secure instant messaging, even with a timed self-destruction feature (e.g. for sharing passwords);
Starts a Google Meet or Zoom video call natively with a single command;
- Brings your Whatsapp chat to the more private and secure keybase chat on the fly;
- Team chat rooms in real time. You can filter where you want to be involved, and you can always opt-out;
-K-Drive (similar to OneDrive, Google Drive, Dropbox) – only for our team, and fully encrypted;
Works with Github, and it even offers a more private version of Private Github Repos, encrypted gits;
An integration with other platforms;
It is neat, open source, simple, clean, and usually appreciated more in the open source community than Slack, its big corporation rival.
Practical steps you need to follow to use Keybase
1. Download & install Keybase from [https://keybase.io/](https://keybase.io/) on your computer. An easy procedure. Create yourself a professional login name – similarly to a professional github account, a professional email, etc. (you cannot change the name afterwards)
2. Once you log in to the computer, go to *Devices*, and *Create a paper key*. Write this on paper, or print it, and store it somewhere very safe (not near your computer). This to recover the access in case you lose access to all your devices.
3. You can use Keybase simultaneously on multiple devices – Install Keybase on your smartphone, tablet or any other device. You will be guided through installation & paired with your computer.
4. Shall you need them, you have *two recovery options*: the paper key and your smartphone.
5. If your smartphone breaks down and needs a replacement, you can add from your computer your new phone and deactivate the old one.
6. Once you are in, look up `antaldaniel`.
7. After a handshake Daniel will assist your smooth transition, help you find ways to our shared files, your project’s files, and set up filters, so you are not flooded with information, while never left out, unless you choose to.
8. Initially, we set up the following “Big teams”, as Keybase calls them, and we will send an invitation to join:
- `reprexfriends` for prospective team members, friends, and hoped-for-cooperation partners – partly for people we are discreetly asking to join us, or who want to know more about some of our work and cooperate with us;
- [reprexcommunity](https://keybase.io/team/reprexcommunity) is an open landing page for anybody, it is a public interface. If you every land there `antaldaniel` will take you to the appropriate, otherwise invisible team room.
Each big team has four special members for a smooth transition: Daniel and Zuzana to assist you with getting familiar with Keybase, zoombot (just type `!zoom` to create a Zoom call with the team members present) and meetbot (that does the same with Google Meet, `!meet`). Daniel will gradually withdraw from some of the teams, once their support is not needed, though each team will have at least one Reprex co-founder present. We invite everybody to at least one team, but you can sign up to as many as you like, shall you find that convenient.
9. Whenever you are in a situation you want to ignore us (e.g. because you sit in your dayjob), just do it. If you have a smartphone, we are there, separated from your Whatsapp friends, work emails, and you can always check on us. We can always send you a secure (and even encrypted) message to get in touch, if needed. However, we will never ever bother you with long emails, Whatsapp messages and other annoying things.
*Let’s keep things short, give access to the full picture when needed, and let you find out what mix of response time, details and filters works best for you.*
## Github {#github}
`Git` in general, and **Github** in particular is a simultaneous collaboration form for any distributed team work - writing, programming, design work. Git is an open source software which makes sure that your teamwork files are always synchronized, clashes are avoided (you modify the same part of a file at the same time with Daniel.) The only hard part to move to Git is to make sure that Git properly works on your computer - it needs to be installed differently on all Linux distros, Mac OSX version all Windows versions. On Windows, you must make sure that Git is on the startup path. Once you are there, you'll life will be much easier.
Github is the most popular open collaboration platform for open source software editors. If you do not write code, you will not contribute to our source files, but with a Github id you ask questions, take on tasks and report them ready on our project dashboard.
### Introduction to GitHub
::: {.rmdnote data-latex="{note}"}
This is a course is suitable for new GitHub users. You need to log into your (free) GitHub account to use it.
:::
- **Who is this for**: New developers, new GitHub users, and students.
- **What you'll learn**: We'll introduce repositories, branches, commits, and pull requests.
- **What you'll build**: We'll make a short Markdown file you can use as your [profile README](https://docs.github.com/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme).
- **Prerequisites**: None. This course is a great introduction for your first day on GitHub.
- **How long**: This course is four steps long and takes less than one hour to complete.
**Course tips:**
* Glossary terms will be _emphasised_ and linked to their definition.
* This [course](https://github.com/skills/introduction-to-github/generate) includes optional video links. Look for the :tv: emoji and follow the link to the video.
```{r intro-to-github-button, results='asis'}
if (! knitr::is_latex_output()){
cat("<br />[![start-course](https://user-images.githubusercontent.com/1221423/218596841-0645fe1a-4aaf-4f51-9ab3-8aa2d3fdd487.svg)](https://github.com/skills/introduction-to-github/generate)")
}
```
### Review Pull Requests
::: {.rmdnote data-latex="{note}"}
This is a course is suitable for new GitHub users. You need to log into your (free) GitHub account to use it.
:::
All great projects start with collaboration. Pull requests are the foundation of teamwork on GitHub — and pull request reviews give you the ability to work together and discuss changes specific to a pull request by commenting, requesting changes, or approving.
- **Who is this for**: Developers, new GitHub users, users new to Git, students, managers, teams.
- **What you'll learn**: When and how to request a review; how to provide a review of someone else's pull request.
- **What you'll build**: We'll be reviewing a pull request for a simple game.
- **Prerequisites**: We assume you are familiar with creating branches, commits, and pull requests—you can learn this in our [Introduction to GitHub](https://github.com/skills/introduction-to-github) course.
- **How long**: This course is five steps long and takes less than 30 minutes to complete.
## How to start this course
1. Right-click **Start course** and open the [link](https://github.com/skills/review-pull-requests/generate) in a new tab.
```{r review-pull-requests-button, results='asis'}
if (! knitr::is_latex_output()){
cat("<br/>[![start-course](https://user-images.githubusercontent.com/1221423/218596841-0645fe1a-4aaf-4f51-9ab3-8aa2d3fdd487.svg)](https://github.com/skills/review-pull-requests/generate)")
}
```
2. In the new tab, follow the prompts to create a new repository.
- For owner, choose your personal account or an organization to host the repository.
- We recommend creating a public repository—private repositories will [use Actions minutes](https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions).
```{r 11-create-new-course-name, echo=FALSE, message=FALSE}
knitr::include_graphics(here::here("png", "218594143-e60462b6-9f2a-4fa3-80de-063ac5429aab.png"))
```
3. After your new repository is created, wait about 20 seconds, then refresh the page. Follow the step-by-step instructions in the new repository's README.
### Resolve editing conflicts on GitHub
::: {.rmdnote data-latex="{note}"}
Merge conflicts happen when two people make changes to the same file on GitHub—a common occurrence when you’re working with others. While resolving differences might involve some discussion, merge conflicts don’t have to be scary. This course guides you through the steps to finding the best merge conflict solution, so your team can keep building.
:::
- **Who is this for**: New developers, new GitHub users, users new to Git, students, managers, teams.
- **What you'll learn**: What merge conflicts are, how you resolve merge conflicts, how to reduce merge conflicts.
- **What you'll build**: We'll work with a short Markdown resume file in this course.
- **Prerequisites**: We recommend taking [Introduction to GitHub](https://github.com/skills/introduction-to-github) prior to this course.
- **How long**: This course is three steps long and takes less than 30 minutes to complete.
## How to start this course
1. Right-click **Start course** and open the [link](https://github.com/skills/resolve-merge-conflicts/generate) in a new tab.
```{r resolve-merge-conflicts-button, results='asis'}
if (! knitr::is_latex_output()){
cat("<br/>[![start-course](https://user-images.githubusercontent.com/1221423/218596841-0645fe1a-4aaf-4f51-9ab3-8aa2d3fdd487.svg)](https://github.com/skills/resolve-merge-conflicts/generate)")
}
```
2. In the new tab, follow the prompts to create a new repository.
- For owner, choose your personal account or an organization to host the repository.
- We recommend creating a public repository—private repositories will [use Actions minutes](https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions).
3. After your new repository is created, wait about 20 seconds, then refresh the page. Follow the step-by-step instructions in the new repository's README.
## Zotero {#zotero}
```{r zotero}
knitr::include_graphics(file.path("png", "zotero.png"))
```
We have shared bibliographies on the open source, free [Zotero](https://www.zotero.org/) research assistant and we have a closed bibliography repository with BibLatex files on Github for the material that refer to in open science, open policy analysis, data science, and each other's work. The best place to share readings, bibliographies is *Zotero*, for preparing publications the Github account.
Here is [a short tutorial](https://research.library.gsu.edu/c.php?g=115275&p=751288) on how to syncronize your personal bibliographic reference collection with the Digital Music Observatory group library.
- Set up a free [Zotero.org](https://www.zotero.org/) user account if you do not have it already.
- Open Zotero preferences (via the ⚙️ gear menu) and select the **Sync** tab.
- Enter your Zotero user name and password.
- Check the "sync automatically" box.
- Check both boxes under File Syncing and choose Zotero storage for My Library. This will sync your PDF attachments as well as citations (more info).
- Click the green circular arrow button at the top right corner of the Zotero window.
Zotero will upload your library to the server.
- If you look at the screenshot below, you see *My Library*, this is your original private library. This is not syncronised to the Digtial Music Observatory (or other) group.
- You will see as separate collections the libraries of groups that you are member of. You can drag and drop references between your own personal library and the group libraries.
```{r zoterogrouplibrary}
knitr::include_graphics(file.path("png", "zotero_group_library_dmo.png"))
```