Weekly Digest #58

Weekly Dev Blog
2 min readJan 17, 2022

Articles

A brief history of code search at GitHub

How We Saved 70K Cores Across 30 Mission-Critical Services (Large-Scale, Semi-Automated Go GC Tuning Uber Developers

Go runtime invokes a concurrent garbage collector at periodic intervals unless there is a triggering event before it. The triggering events are based on memory back pressure.

Garbage collection in Go is concurrent and involves analyzing all objects to identify which ones are still reachable.

GOGC, expressed in percentage of live dataset, to control garbage collection.

hard_target = live_dataset + live_dataset * (GOGC / 100).

Then the pacer is in charge of predicting when it is the best time to trigger GC to avoid hitting the hard target (soft target).

GOGCTuner dynamically computes the correct GOGC value in accordance with the container’s memory limit (or the upper limit from the service owner) and sets it using Go’s runtime API.

  • Simplified configuration for easier reasoning and deterministic calculations.
  • Protection against OOMs (Out Of Memory)
  • Allow higher GOGC values for corner cases

Lessons from my PhD

  • Lead or be led
  • Topic sentences
  • Get excited
  • Unmotivated details
  • Slides versus speaker
  • Daily progress tracking
  • Managers as input/output machines

You put into it your update and you get back feedback. The meeting is for your benefit.

A few suggestions for running update meetings with your advisor/manager:

  • Assume they forgot everything that was said last meeting.
  • Show up with things to talk about and a goal.
  • In 3–4 sentences, refresh everyone’s memory about the last meeting and what you were supposed to accomplish since then.
  • In 4–6 sentences, summarize what you did, what worked, what didn’t work, and what you think you should do next. Think of this as bullet points.
  • Avoid diving into details until you know everyone is on the same page and caught up.
  • If possible, show up with something tangible, like a visual aid, a demo, a draft, or at least some notes.

Tutorials

Various ways to include comments on your static site

A Visual Guide to useEffect — Cleanups

Tools

lazydocker, A simple terminal UI for both docker and docker-compose, written in Go with the gocui library.

Vizzu — Library for animated data visualizations and data stories.

GitHub-Web-IDE, browser extension adds to any GitHub repository a new drop down menu which offers links to a number of online services that allow viewing the source code of the repository in an IDE like interface.

Off-topic

In 2021, the Internet went for TikTok, space and beyond

InterfaceLIFT free high resolution wallpaper

--

--