Damien Gonot
Home Blog Notes About

Computer Science Tools

Homepage / Notes / Computer Science / Tools

Text editors

Git

Tmux

Terminal

Zellij

https://zellij.dev/

asdf

LaTeX

Replit

https://replit.com/ Online REPL in many languages. Might be useful from an iPad / a computer I don't own.

Stow

Helps config dotfiles? Take care of symlinking for you. https://www.gnu.org/software/stow/manual/html_node/Resource-Files.html http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html

IRC Clients

Weechat

https://weechat.org/files/doc/stable/weechat_quickstart.en.html

Add an IRC server

/server add {server_name} {server_url_no_port}

Connect with SSL

/set irc.server.{server_name}.ssl on

Connect to IRC server

/connect {server_name}

Join IRC channel

/join {channel]

Switch buffers

Alt -> or Alt <-

Resources

https://christine.website/blog/irc-stuff-nixos-2021-05-29

Irssi

WebAssembly

(or Wasm)

Wasmer

https://docs.wasmer.io/ Running WebAssembly on the server

WAPM

https://wapm.io/ WebAssembly Package Manager

WASI

https://wasi.dev/

The WebAssembly System Interface

Lunatic

https://lunatic.solutions/

Lunatic is an Erlang-inspired runtime for WebAssembly

Resources

WebAssembly Concepts

https://developer.mozilla.org/en-US/docs/WebAssembly/Concepts

Pandoc

https://pandoc.org/ "If you need to convert files from one markup format into another, pandoc is your swiss-army knife."

Basic usage

pandoc -o output_file input_file

Default is a "document fragment" (ex: HTML file with no <html>, <head>…)

For a complete ("standalone") document: pandoc -s -o output_file input_file

Org-specific doc

https://pandoc.org/org.html

Templates

https://pandoc.org/MANUAL.html#templates

Virtual Machines

virt-manager

https://virt-manager.org/

Firecracker MicroVMs

https://firecracker-microvm.github.io/ Fast microVMs for serverless computing (AWS Lambda…)

VPNs

Tailscale

https://tailscale.com/

Mobile Development

React Native

https://reactnavigation.org/

Flutter

https://github.com/go-flutter-desktop/go-flutter

just

https://github.com/casey/just just is a handy way to save and run project-specific commands, similar to make

HTTP Clients

CLI

curl

Resources

wget

httpie

https httpie.io/hello
{"ahoy":["Hello, World! 👋 Thank you for trying out HTTPie 🥳","We hope this will become a friendship."],"links":{"homepage":"https://httpie.io","twitter":"https://twitter.com/httpie","discord":"https://httpie.io/discord","github":"https://github.com/httpie"}}

httpbin

Returns client's headers

curl https://httpbin.org/headers
{
  "headers": {
    "Accept": "*/*",
    "Host": "httpbin.org",
    "User-Agent": "curl/7.77.0",
    "X-Amzn-Trace-Id": "Root=1-618168b4-0982f80d2e2330516e6d3566"
  }
}

hurl

echo "GET https://example.org" > sample.hurl
hurl sample.hurl

GUI

Postman

Went enterprise-?

Insomnia

Bruno

https://www.usebruno.com/

restclient

Favourite for now, great integration with Emacs

Hoppscotch

https://github.com/hoppscotch/hoppscotch

Kreya

https://kreya.app/

Started for gRPC actually! But supports HTTP as well

Accounting

Beancount

Image Manipulation

Imagemagick

http://www.fmwconcepts.com/imagemagick/index.php

Diagrams

https://kroki.io/

Mermaid

https://mermaid-js.github.io/ https://github.com/mermaid-js/mermaid-cli

graph TD
    A[Front-end] -->|HTTP Request| B(Server)

https://mermaid.live/

Remote Desktop

VNC

TigerVNC

Chrome Remote Desktop

https://remotedesktop.google.com/

TeamViewer

RustDesk

https://github.com/rustdesk/rustdesk

Build Tools

Makefiles

hello:
    echo "hello world"
cd ~/tmp/makefile_tutorial && make
echo "hello world"
hello world
hello: dependency
    echo "hello world"

dependency:
    echo "run dependency first"
cd ~/tmp/makefile_tutorial && make
echo "run dependency first"
run dependency first
echo "hello world"
hello world

Bazel

https://bazel.build/

Recommended way to install is via bazelisk

Diagrams

PlantUML

https://plantuml.com/

Create diagrams from text

Ditaa

https://ditaa.sourceforge.net/

Create diagrams from ASCII art

Penrose

https://penrose.cs.cmu.edu/

Create diagrams with separate definitions of domain, substance and style

Misc

Beautiful images from code

Workflow Automation

Pipedream

https://pipedream.com/

Connect APIs, remarkably fast. Stop writing boilerplate code, struggling with authentication and managing infrastructure. Start connecting APIs with code-level control when you need it — and no code when you don't.

Windmill

https://docs.windmill.dev/ Open source alternative to Pipedream?

n8n

https://n8n.io/

Huginn

https://github.com/huginn/huginn

Create agents that monitor and act on your behalf. Your agents are standing by!

saasform

https://github.com/saasform/saasform "Saasform is a state-of-the-art website for your SaaS, with authentication, payments and common growth & marketing tools."

S3 Email

📫 A serverless email server on AWS using S3 and SES https://github.com/0x4447/0x4447_product_s3_email

Mailchimp => AWS email

Similar to above? https://carlchenet.com/how-to-save-up-to-500e-year-switching-from-mailchimp-to-open-source-mailtrain-and-aws-ses/

Combine pdf

pdf-diff

https://github.com/serhack/pdf-diff

A tool for visualizing differences between two pdf files.

MDX

https://mdxjs.com/

Tangram

https://github.com/tangramxyz/tangram Tangram is an all-in-one automated machine learning framework.

Static Website With Built-In SQL

https://www.evidence.dev/ Business Intelligence for Modern Data Teams Beautiful reports synced to your data with just SQL and Markdown

jc

https://kellyjonbrazil.github.io/jc/

CLI tool and python library that converts the output of popular command-line tools, file-types, and common strings to JSON, YAML, or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts.

MailCrab

https://tweedegolf.nl/en/blog/86/introducing-mailcrab

MailCrab is an email test server for development, written entirely in Rust.

Competitive Programming

Websites

HackerRank
LeetCode
TopCoder
CodeForces

Competitions

ICPC
IOI

Ways to Exercise

Exercism.io

https://exercism.io/ Interactive learning of multiple languages Really smart, can code in your own text editor

Advent of Code

PocketBase

Open Source backend for your next SaaS and Mobile app in 1 file

https://pocketbase.io/