Discover more from hrbrmstr's Daily Drop
gping; Visualizing Codebases; arxiv2notion
Let's start the week with a refresh of a foundational command line tool, a new way to view codebases, and something to help you/your team organize research links.
When there's a need to investigate network issues, the "ping" command line utility almost types itself for most of us. Most hosts/devices are configured to honor to these Internet Control Message Protocol (ICMP) messages, and this simple
echo reply exchange lets us know if the receiver's network stack is up and how much Comcast (feel free to substitute your own ISP hate target) has screwed up their network that day.
ping you eventually get a wall of text to run mental distribution calculations on. This is fine, but we can do better. Enter gping. With
gping, you'll get a live, text-based chart of all hosts you enter on the command line. The example in the section header was generated by
gping 220.127.116.11 18.104.22.168 22.214.171.124
(testing the connections to three major DNS providers). The scales auto-adjust, and you can pick the colors you like the most vs leave them to the built-in sequence.
You can also use
gping to graphically benchmark program execution via the
--cmd option. Unlike the default "ping" functionality, you can only benchmark one command with this option. Here's a snapshot of my weatherkit command line utility, showing a fairly consistent response time from Apple's REST API servers:
gping --cmd weatherkit
And, that's it! No "options DoS" with
gping. It's a highly focused utility that works great on all platforms.
This GitHub Next project tries to answer the question: "How can we "fingerprint" a codebase to see its structure at a glance?", and walks through some traditional examples of how to get an overview of a directory tree of code. Then, it drops a bit of circle-packed crunchy goodness via the repo visualizer tool.
To see it in action, just hit up this free Azure app which lets you enter any
owner/repo reference and kicks back an interactive circle-packing explorer view. The section header image is a screen capture of the awesome Pandoc repo.
And, you're not limited to just an online tool. You can add an SVG of your own repo to your project via a GitHub action the GH team has made available. This is a demo of it, and adding it to your own project is as straightforward as:
creating a new GitHub Action by adding a
.ymlfile inside the
.github/workflowsdirectory. For example: .
adding the diagram image to your
![Visualization of the codebase](./diagram.svg)
Once you push, you can watch the GHA run in the Actions tab of your repository. Within a minute, you should have a visualization of your codebase in your
These "do one, focused thing well" resources are the bees knees.
You can skip this if you don't use Notion for personal notes or team/company knowledge management. Notion is like Obsidian and all the other "linked markdown notes" programs/services out there.
Most readers are familiar with arXiv, a "free distribution service and an open-access archive for 2,117,633 scholarly articles in the fields of physics, mathematics, computer science, quantitative biology, quantitative finance, statistics, electrical engineering and systems science, and economics."
If you're in a team that's researched-focused, you likely stalk arXiv for new and interesting papers aligned with your research priorities. We care quite a bit about new data science and cybersecurity research at GreyNoise, and we use Notion, so this open-source extension will be helpful in automagically maintaining an arXiv collection. The setup is a bit klunky, but it works and will save me just enough time to risk having another extension installed (seriously, try not to use browser extensions, they're mostly security risks these days).
We stated out with a
ping and we'll leave you with:
If you aren't IPv6-capable or don’t feel like installing `traceroute` (for many OSes, it’s not part of the included batteries), then you can read the output here. Quite the clever way to separate one's self from a semi-crowded talent pool. ☮