Tools and Tips

On this page

A lot of tools we use are described in the rest of the handbook (GitLab, Google Docs, Google Hangouts, 1Password, etc.). This section is for tools that don't fit anywhere else.

Sundial

If you move to another location, you should update Sundial to reflect that change. In order to do that:

  1. Search for "Private Sundial URL" in Google Drive
  2. Go to the Sundial URL mentioned in the Google doc
  3. Click "Log in" in the upper right corner
  4. Choose to "Login with Google" using your GitLab Gmail account
  5. Hover over your name in the upper right corner and choose "Update your location"

Google Slides templates

Use these GitLab branded slide templates when creating slide decks for internal or external use. Make a copy of the slide deck and only edit the copy; do not edit the template itself.

Updating your slide deck theme

Here are a few quick steps for updating your slide decks to match the most recent template:

  1. In the top toolbar click Theme which will open the Themes panel (on the right-hand side). Change theme in Google Slides
  2. At the bottom of the Themes panel, click Import theme.
  3. In the Import theme dialog box type template into the search field.
  4. Find the GitLab-Deck-Template-Dark or GitLab-Deck-Template-Light and click the Select button in the bottom left to apply the theme to your slide deck.

Google Forms templates

Use these Gitlab branded form templates when creating internal or external surveys or forms. Make a copy of the form and only edit the copy; do not edit the template itself.

Calendly

Calendly connects to your Google calendar so people can book a time with you without having a Google Account.

  1. Set up a Calendly account
  2. Link it to your GitLab Google Calendar to make it possible for people to schedule a call with you
  3. All meetings will have the same Google Hangout URL on your calendar based on your @gitlab.com email handle. You can use that in the booking text above. Events on your calendar will automatically have the Google Hangout URL added, so you can use the plus landing page to quickly jump into the call. Please note that the appointment will show up in other peoples calendar with a different link, to it is essential that you set a text with the link for your time slot as specified below.
  4. Set up the 45 minute time slot with the following event description text (replacing XXXXX with your @gitlab.com handle):

    This will be a Google Hangout at https://plus.google.com/hangouts/_/gitlab.com/XXXXX

    Question? Please email me. GitLab Primer: https://about.gitlab.com/primer/

  5. If you intend to use any of the other event types, make sure to add this to their event descriptions as well.
  6. For people outside of GitLab Inc, send them your Calendly link that links directly to the 45 minute time slot: "Are any of the times on https://calendly.com/XXXXX/45min/ convenient for you? If so please book one, if not please let me know what times are good for you and we'll find an alternative."
  7. Update your availability on Calendy Event Types
  8. Add your Calendly link to your Slack profile. For Display Text, use this line: Schedule a meeting with me! so GitLabbers can schedule a 1:1 call with you in GitLab, by simply clicking your Calendly link in your Slack profile.

Keep in mind that unlike normal Google Calendar events, Calendly events are not automatically synchronized between both parties when changes are made. If an event needs to be cancelled or modified, make sure to use Calendly to do so.

Shush

$4.99 tool for OSX that allows you to use you fn key as a push to talk or push to mute. Never again will you have switch window focus to Google Hangout or Zoom to speak or mute. The icon will show the current state of your mic input (x means muted). With a right click you can switch from push to talk to push to mute. Don't forget to unblock your mic in Zoom/Google Hangouts immediately after joining. Be warned that page up with fn+down arrow will activate it. Use space for page down instead of fn+up arrow.

Shush alternative for Linux

If you use Linux (eg; Arch, Ubuntu or Fedora) then you can create system-wide keyboard shortcut to mute/unmute your mic. Please note that it only works for Linux distributions which use ALSA system for sounds (most popular Linux distributions use ALSA). All you need to do is go to your desktop environment's Keyboard Settings and create a custom shortcut with command amixer set Capture toggle and assign a key combination of your choice (eg; Pause Break key). Once this is done, you can mute/unmute your mic using the assigned keyboard shortcut while you're in any application. Refer to this original answer on Askubuntu to learn more.

Disabling OS X Notification Center

During a presentation or screen share, you might want to disable your notifications on OS X to prevent distractions or possible embarrassment.

The Notification Center can be quickly disabled by Option-Clicking the menu bar icon in the top right of your screen. This disables notifications until the next day. Option-Click again to re-enable immediately. Alternatively, click on the Notification Center icon, then scroll up to reveal the "Do Not Disturb" toggle.

Slack

Do Not Disturb Hours

Slack now supports "Do Not Disturb Hours" so you won't be pinged in the middle of the night or while you are dealing with family matters. You can set your Do Not Disturb Hours by clicking on the bell at the top of the left pane in the Slack app. You also have the option of snoozing for 20 minutes or up to 24 hours. Note: Do Not Disturb can be overridden in the event of an emergency. See Slack documentation for more information.

Browse Channels

You can browse all available GitLab channels by clicking on "Channels" on the left pane in the Slack app. From there, you can see every channel, who created it, and how many members there are.

Slack Status

Slack has the functionality to set an individual status. For example, you can select away from keyboard, vacation, or working remotely. This is a great way to let your team know if you are available or not.

Google Calendar

This Chrome extension will allow guests to modify calendar appointments by default.

Add a filter to remove invites responses from your inbox with the following query:

*.ics subject:("invitation" OR "accepted" OR "rejected" OR "updated" OR "canceled event" OR "declined") when where calendar who organizer

Zoom

To set up a Zoom meeting, sign up for a free basic account using your GitLab email address, and share the link for your "personal meeting room" with your participants. Note that on the Basic license, meetings are capped at 100 people, and meeting durations are capped at 40 minutes. If you need to be able to organize calls longer than 40 minutes using Zoom, contact People Ops to be granted a Pro account. By default, only Support Engineers and members of the Sales team are given Pro accounts during onboarding since their job routinely involves making video calls with (potential) customers.

To record the meeting set up cloud recording. You can also configure Zoom to save to the cloud automatically. Go to "My Meeting Settings" and find the "Recording" section, then click on "Cloud Recording". Setting the topic of the meeting is important, otherwise all meetings will be recorded with a generic name. Once recording is complete, your videos will not appear in the “Recordings” section of your Zoom account. Your recordings will automatically be saved to a folder on Google Drive under "GitLab Videos".

Our Zoom account has End-to-End Encryption enabled. This may impact performance, so if you run into any issues, let People Ops know.

If there is a meeting active, a new meeting cannot start until the host ends the meeting or all participants leave. People Ops can force end a meeting by logging into Zoom with the credentials in 1Password, going to My Meetings, finding the meeting they would like to end, then selecting "End." This will allow the next meeting to begin.

Livestreaming to YouTube

You can use Zoom to livestream your meeting directly to YouTube. It requires some preparation, so make sure to do the first three steps ahead of time.

  1. Make sure you have access to the GitLab YouTube account. Read the secure note in 1Password called "Youtube" for instructions.
  2. Ask for the Zoom Webinar license to be assigned to you by People Ops at least one day in advance, and let People Ops know when you are done using it.
  3. Schedule your meeting as webinar.
  4. Join the meeting ahead of time, click on More and Live on YouTube.
  5. Now choose the GitLab YouTube account and mark it as Public (or unlisted for a test)
  6. Click in Zoom on Go Live! to start streaming

There are a few limitations:

  1. Only 50 people can be 'presenters', that is people sharing their video and audio.
  2. You will have to manually promote people to become presenters, from being just attendees. Do this by going to participants and clicking on the dropdown menu. Promote people to the highest level to allow them to promote others.

The video of the livestream will be available automatically on YouTube and anyone visiting our YouTube page will be notified that we're streaming live. Sharing the stream after it already started is fine, people can go back in time, even while the stream is ongoing.

See the Zoom documentation on live streaming

Zoom on Linux using FOSS (Firejail)

While Zoom works on Linux, the application is not free software. As a result, some might be wary of running this directly on their computer. One way of running Zoom without worrying about what it does is to use firejail.

To use Zoom with Firejail, first install Zoom or download the archive. Zoom offers standalone binaries that you can download should your distribution not have a package for Zoom. Once installed, install firejail.

Once both firejail and Zoom are installed we need two things:

  1. A firejail profile for Zoom
  2. A directory we can use as the home directory for Zoom, preventing it from messing with your home directory

You can use the following firejail profile and store it in ~/.config/firejail/zoom.profile:

noblacklist ~/.config/zoomus.conf

include /etc/firejail/zoom.local
include /etc/firejail/disable-common.inc
include /etc/firejail/disable-programs.inc
include /etc/firejail/disable-devel.inc

whitelist ~/.zoom

caps.drop all
netfilter
nonewprivs
noroot
protocol unix,inet,inet6,netlink
seccomp

private-tmp

Next we need a home directory for Zoom. For this example we'll use /opt/zoom/home:

sudo mkdir -p /opt/zoom/home
sudo chown -R $USER /opt/zoom

With this in place we can start Zoom using firejail as follows:

firejail --quiet --profile=~/.config/firejail/zoom.profile --private=/opt/zoom/home /path/to/zoom/ZoomLauncher

Note that you must start the ZoomLauncher binary and not the shell script wrapper called zoom.

Google Cloud Platform

Please see the secure note with the name 'Google Cloud Platform' in the shared vault in 1password for the credentials.

Once in the console, you can spin up VM instances, Kubernetes clusters, etc. Please remove any resources that you are not using, since the company is billed monthly. If you are unable to create a resource due to quota limits, file an issue on the Infrastructure Tracker.

Gmail

Filters

It might be useful to add a Gmail filter that adds a label to any GitLab notification email in which you are specifically mentioned, as opposed to a notification that you received simply because you were subscribed to the issue or merge request.

  1. Search for @your_gitlab_username in Gmail
  2. Click the down arrow on the right side of the search field
  3. Click "Create filter with this search"
  4. Check "Apply the label:" and select a label to add, or create a new one, such as "Mentioned"
  5. Check "Also apply filter to matching conversations."
  6. Click "Create filter"

Advance

If you use the archive function you normally return to your overview. With auto-advance you can return to the next message. Enable 'Auto-advance' in the labs section under settings. The default setting of showing the next older message is OK.

Email signature

Set up an email signature which includes your full name and job title so people can quickly know what you do.

Hangouts

Computers with older CPUs (pre-2016/Skylake) may be missing hardware acceleration for VP9. In Chrome, this can cause excessive CPU due to use of the codec. On MacOS switching to Safari or using h264ify solves this since it will use h264 that is hardware accelerated. Chrome Web Store.

To check the status of acceleration on Chrome, see the "Video Encode" option in about://gpu.

Hangouts on air

Hangouts on Air probably only works with a maximum of 15 people for scheduled calls (same limit as normal Google Hangouts).

Potential problem: even when I logged in as GitLab and got the bar below the call, I could not switch it too on-air! I did notice that the time was not properly set (anymore?). I did a test event before and that seemed to work OK. I'll try one more time to see if it works.

Potential problem 2: the video showed up as listed by default

Go to My live events on YouTube and switch to the GitLab account on the top right (you need to be a manager of our YouTube channel).

Go to => life streaming => events and create a new one with the attributes:

The view on watch page URL only allows for people to watch it. Window that pops up when you press the start hangout on air button has the proper URL that you can send to other people and/or add it to the calendar invite, it is structured like: https://plus.google.com/hangouts/_/ytl/LONGHASH. When people join the event they have to accept a warning.

Completed live events will show the video and you can click the image to view it. You can use actions to make it public here

BTW Trying to set this up via Google+ via Hangouts on Air instead of via YouTube doesn't seem to connect to the right YouTube channel, even if you selected the right account on the top right.

Gravatar

Link your GitLab email address to an easily recognizable photo of yourself on Gravatar. It is company policy to use a photo, and not an avatar, a stock photo, or something with sunglasses for any of your GitLab accounts, as we have a lot of GitLabbers and our brains are comfortable with recognizing people; let's use them.

Appear.in

Appear.in allows you to instantly create a free video chat room for up to 8 participants with no login and no installation. It also offers a free reliable mobile video conference app.

One Tab

One Tab (Free) tames tabs into a list which can be sorted and exported.

Quitter

Quitter (Free) will switch off apps for you after some period of inactivity. Consider using this to hide Slack after a while to reduce your urge to check new messages all the time.

TripMode

TripMode ($7.99) lets you control which apps can use the internet. Especially useful when you're working on a cellular/metered connection.

ShareX

ShareX (Free / Windows only) is the ultimate screen capture toolbox for Windows, which includes many different options to record your screen and automate your workflow with automatic uploading, resizing and much more.

Teampaper Snap

Teampaper Snap (Free / Mac only) is the ultimate screen capture tool for Mac to voice your thoughts on anything you can see on a screen.

Clocker

Clocker (Free / macOS Only) adds a clean and distraction free world clock to your menu bar so you can check on your fellow teammates across different timezones.

Check which process occupies a given port

When the GitLab Development Kit cannot start using the ./run command and Unicorn terminates because port 3000 is already in use, you will have to check what process is using it. Running sudo lsof -i -n -P | grep TCP | grep 3000 will yield the offender so this process can be killed. It might be wise to alias this command in your .bash_profile or equivalent for your shell.

Shell aliases

Use command aliases in your shell to speed up your workflow. Take a look at these aliases and others in Sid's dotfiles project. For example, by adding the following to your .bash_profile or equivalent for your shell, you can just type s to checkout the master branch of this website, pull the latest changes, and open the repository in Sublime Text:

alias gco='git checkout'
alias gl='git pull --prune'
alias gca='git commit -a'
alias gp='git push origin HEAD'
alias www='cd ~/Dropbox/Repos/www-gitlab-com/source'
alias s='www;subl .;gco master;gl'

After editing, you can just type gca to commit all of your changes, followed by gp to push them to the remote branch.

Sublime text

Putting the following in Preferences.sublime-settings - User will among other things ensure that if you open the www-gitlab-com website you're not opening the output files by accident:

{
    "font_size": 18,
    "spell_check": true,
    "translate_tabs_to_spaces": true,
    "trim_trailing_white_space_on_save": true,
    "folder_exclude_patterns": ["public"]
}

MobileDay

If you install MobileDay (Free) on your phone and give it access to your Google Calendar it can dial into conference calls for you. It is very good at detecting the number and password from the calendar invite.

Keeping You Awake

Keeping You Awake (Free & Open Source) is a macOS utility application that can prevent your Mac from entering sleep mode for a predefined duration or as long as it is activated.

Enable screen lock on your mac menu bar

  1. Open up the Keychain Access application
  2. In the menu bar (next to the apple logo), click on Keychain Access
  3. Click on Preferences
  4. Check the box Show keychain status in menu bar
  5. The lock icon should now show up on your menu bar

You can lock your screen by clicking the lock icon on the menu bar and clicking Lock Screen

Visual help to differentiate between GitLab servers

If you are working on multiple GitLab instances and want to have a visual differentiation, you can change the default Application theme to a different color.

How to change your username at GitLab.com

STEP 1: Request your new username

STEP 2: Create a new account with your new username

STEP 3: Let's have some fun (kidding, this is critical!)

STEP 4: Move your projects (or not)

That's it! Don't forget to update your username on the team page and on the Marketing Handbook, in case you're a Marketing Team member.

How to share a presentation in Zoom

At some point, you may need to give a slide presentation using Zoom. Ideally, you should be able to see your speaker notes while participants see your slide show. This is fairly easy to do with two monitors by using presenter view and sharing the monitor which contains the slides. If you have only one monitor, it is still possible using the following steps:

If you would like to practice presenting, you can do so using your own private Zoom room.

How to create gifs

We have a dedicated section for that in the handbook.

Do NOT Use

Flash: Due to security flaws, we strongly recommend not using Adobe Flash. Certainly do not install it on your local machine. But even the Google Chrome plugin that let's you see embedded Flash content in websites can pose a security hazard. If you have not already, go to your Chrome Flash Settings and disable Flash. For further context, note that Google Chrome is removing Flash support soon, and while the plugin is better than a local install of Flash, it still leaves vulnerabilities for zero-day attacks.