forked fromsimonw/til
- Notifications
You must be signed in to change notification settings - Fork0
AssahBismarkabah/til
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
My Today I Learned snippets. Inspired byjbranchaud/til, which I spottedon Hacker News.
Search these TILs athttps://til.assahbismark.com/
254 TILs so far.Atom feed here.- Only run GitHub Action on push to master / main - 2020-04-19
- Dump out all GitHub Actions context - 2020-04-19
- Set environment variables for all steps in a GitHub Action - 2020-04-19
- Commit a file if it changed - 2020-04-19
- Running different steps on a schedule - 2020-04-20
- Updating a Markdown table of contents with a GitHub Action - 2020-07-22
- Using grep to write tests in CI - 2020-08-19
- Skipping a GitHub Actions step without failing - 2020-08-22
- Open a debugging shell in GitHub Actions with tmate - 2020-09-14
- Talking to a PostgreSQL service container from inside a Docker container - 2020-09-18
- Using Prettier to check JavaScript code style in GitHub Actions - 2020-12-31
- Running tests against PostgreSQL in a service container - 2021-02-23
- Installing different PostgreSQL server versions in GitHub Actions - 2021-07-05
- Attaching a generated file to a GitHub release using Actions - 2021-09-07
- Storing files in an S3 bucket between GitHub Actions runs - 2021-12-07
- Testing against Python 3.11 preview using GitHub Actions - 2022-02-02
- Using the GitHub Actions cache with npx and no package.json - 2022-03-22
- Deploying a live Datasette demo when the tests pass - 2022-03-27
- GitHub Actions job summaries - 2022-05-17
- Optimizing PNGs in GitHub Actions using Oxipng - 2022-05-18
- Conditionally running a second job in a GitHub Actions workflow - 2022-07-11
- Ensure labels exist in a GitHub repository - 2022-09-25
- actions/setup-python caching for setup.py projects - 2022-11-28
- Running tests against multiple versions of a Python dependency in GitHub Actions - 2023-09-15
- Serving a JavaScript project built using Vite from GitHub Pages - 2023-10-23
- GitHub Actions, Issues and Pages to build a daily planner - 2024-01-01
- Creating GitHub repository labels with an Actions workflow - 2024-02-09
- Running cog automatically against GitHub pull requests - 2024-11-06
- Convert a datetime object to UTC without using pytz - 2020-04-19
- macOS Catalina sort-of includes Python 3 - 2020-04-21
- Generated a summary of nested JSON data - 2020-04-28
- Installing and upgrading Datasette plugins with pipx - 2020-05-04
- Use setup.py to install platform-specific dependencies - 2020-05-05
- Build the official Python documentation locally - 2020-05-08
- Introspecting Python function parameters - 2020-05-27
- Password hashing in Python with pbkdf2 - 2020-07-13
- How to call pip programatically from Python - 2020-08-11
- Outputting JSON with reduced floating point precision - 2020-08-21
- Debugging a Click application using pdb - 2020-09-03
- Understanding option names in Click - 2020-09-22
- Explicit file encodings using click.File - 2020-10-16
- Decorators with optional arguments - 2020-10-28
- Running Python code in a subprocess with a time limit - 2020-12-06
- Controlling the style of dumped YAML using PyYAML - 2020-12-07
- Relinquishing control in Python asyncio - 2020-12-29
- Packaging a Python app as a standalone binary with PyInstaller - 2021-01-04
- Handling CSV files with wide columns in Python - 2021-02-15
- Using io.BufferedReader to peek against a non-peekable stream - 2021-02-15
- Tracing every executed Python statement - 2021-03-21
- Check spelling using codespell - 2021-08-03
- Find local variables in the traceback for an exception - 2021-08-09
- Using Fabric with an SSH public key - 2021-10-06
- Using the sqlite3 Python module in Pyodide - Python WebAssembly - 2021-10-18
- Planning parallel downloads with TopologicalSorter - 2021-11-16
- Using cog to update --help in a Markdown README file - 2021-11-18
- Ignoring a line in both flake8 and mypy - 2021-11-30
- init_subclass - 2021-12-03
- Using C_INCLUDE_PATH to install Python packages - 2021-12-09
- Safely outputting JSON - 2021-12-17
- Annotated explanation of David Beazley's dataklasses - 2021-12-19
- Streaming indented output of a JSON array - 2022-01-17
- Generating a calendar week grid with the Python Calendar module - 2022-03-31
- Efficiently copying a file - 2022-05-13
- Freezing requirements with pip-tools - 2022-07-14
- struct endianness in Python - 2022-07-28
- Defining setup.py dependencies using a URL - 2022-08-13
- Running PyPy on macOS using Homebrew - 2022-09-14
- Using psutil to investigate "Too many open files" - 2022-10-13
- Simple load testing with Locust - 2022-10-22
- os.remove() on Windows fails if the file is already open - 2022-10-25
- The pdb interact command - 2022-10-31
- Upgrading a pipx application to an alpha version - 2023-01-11
- Installing lxml for Python on an M1/M2 Mac - 2023-01-27
- Calculating embeddings with gtr-t5-large in Python - 2023-01-31
- A few notes on Rye - 2023-04-26
- The location of the pip cache directory - 2023-04-28
- TOML in Python - 2023-06-26
- CLI tools hidden in the Python standard library - 2023-06-28
- Python packages with pyproject.toml and nothing else - 2023-07-07
- Quickly testing code in a different Python version using pyenv - 2023-07-10
- Using tree-sitter with Python - 2023-07-13
- Protocols in Python - 2023-07-26
- Checking if something is callable or async callable in Python - 2023-08-04
- A simple pattern for inlining binary content in a Python script - 2023-08-19
- Using pprint() to print dictionaries while preserving their key order - 2024-01-14
- Getting Python MD5 to work with FIPS systems - 2024-02-13
- Programmatically comparing Python version strings - 2024-03-17
- Trying out free-threaded Python on macOS - 2024-07-12
- Using uv to develop Python command-line applications - 2024-10-23
- Installing flash-attn without compiling it - 2024-10-24
- Fixes for datetime UTC warnings in Python - 2024-12-12
- Running a Python ASGI app on Vercel - 2020-04-19
- Redirecting all paths on a Vercel instance - 2021-03-27
- Running pip install -e .[test] in zsh on macOS Catalina - 2020-04-21
- Get Skitch working on Catalina - 2020-04-21
- Close terminal window on Ctrl+D for macOS - 2020-04-21
- Fixing "compinit: insecure directories" error - 2020-04-26
- Finding the largest SQLite files on a Mac - 2020-08-19
- Shrinking PNG files with pngquant and oxipng - 2021-02-07
- Running Docker on an M1 Mac - 2021-05-25
- Using lsof on macOS - 2021-12-11
- Installing Python on macOS with the official Python installer - 2022-02-28
- Trick Apple Photos into letting you access your video files - 2022-04-12
- Seeing files opened by a process using opensnoop - 2022-04-26
- Atuin for zsh shell history in SQLite - 2022-04-26
- Driving an external display from a Mac laptop - 2022-09-10
- Browse files (including SQLite databases) on your iPhone with ifuse - 2022-09-13
- sips: Scriptable image processing system - 2023-02-18
- Using fs_usage to see what files a process is using - 2023-06-15
- Syncing slide images and audio in iMovie - 2023-06-15
- Local wildcard DNS on macOS with dnsmasq - 2023-06-30
- Downloading partial YouTube videos with ffmpeg - 2023-08-26
- Grabbing a transcript of a short snippet of a YouTube video with MacWhisper - 2023-11-30
- Editing an iPhone home screen using macOS - 2023-12-11
- impaste: pasting images to piped commands on macOS - 2024-04-04
- A script to capture frames from a QuickTime video - 2024-04-16
- Transcribing MP3s with whisper-cpp on macOS - 2024-04-26
- Accessing 1Password items from the terminal - 2024-07-09
- Use labels on Cloud Run services for a billing breakdown - 2020-04-21
- How to deploy a folder with a Dockerfile to Cloud Run - 2020-08-04
- Using the gcloud run services list command - 2020-09-01
- Listing files uploaded to Cloud Build - 2021-04-14
- Switching between gcloud accounts - 2021-05-18
- Increasing the time limit for a Google Cloud Scheduler task - 2021-07-08
- Tailing Google Cloud Run request logs and importing them into SQLite - 2021-08-09
- Using build-arg variables with Cloud Run deployments - 2021-11-19
- Converting HTML and rich-text to Markdown - 2020-05-09
- Rendering Markdown with the GitHub Markdown API - 2020-08-22
- Useful Markdown extensions in Python - 2021-04-03
- Adding project links to PyPI - 2020-05-11
- Publish releases to PyPI from GitHub Actions without a password or token - 2024-01-14
- Using heroku pg:pull to restore a backup to a macOS laptop - 2020-07-10
- Upgrading a Heroku PostgreSQL database with pg:copy - 2020-07-20
- Programatically accessing Heroku PostgreSQL from GitHub Actions - 2020-08-18
- Implementing a "copy to clipboard" button - 2020-07-23
- Working around the size limit for nodeValue in the DOM - 2020-08-21
- Dynamically loading multiple assets with a callback - 2020-08-21
- Minifying JavaScript with npx uglify-js - 2020-08-30
- Manipulating query strings with URLSearchParams - 2020-10-04
- Writing JavaScript that responds to media queries - 2020-10-21
- Dropdown menu with details summary - 2020-10-31
- Using Jest without a package.json - 2020-12-30
- Scroll page to form if there are errors - 2021-05-08
- Preventing double form submissions with JavaScript - 2021-07-08
- Loading lit from Skypack - 2021-09-21
- Using Tesseract.js to OCR every image on a page - 2021-11-09
- JavaScript date objects - 2022-01-16
- Creating a tiled zoomable image with OpenSeadragon and vips - 2022-08-12
- Copy rich text to the clipboard - 2023-03-10
- Using packages from JSR with esbuild - 2024-03-02
- Attaching a bash shell to a running Docker container - 2020-08-10
- Running gdb against a Python process in a running Docker container - 2021-03-21
- Installing packages from Debian unstable in a Docker image based on stable - 2021-03-22
- Docker Compose for Django development - 2021-05-24
- Allowing a container in Docker Desktop for Mac to talk to a PostgreSQL server on the host machine - 2022-03-31
- Testing things in Fedora using Docker - 2022-07-27
- Emulating a big-endian s390x with QEMU - 2022-07-29
- Run pytest against a specific Python version using Docker - 2022-09-05
- Using pipenv and Docker - 2022-11-28
- Pointing a custom subdomain at Read the Docs - 2020-08-14
- Read the Docs Search API - 2020-08-16
- Using custom Sphinx templates on Read the Docs - 2020-12-07
- Promoting the stable version of the documentation using rel=canonical - 2022-01-20
- Linking from /latest/ to /stable/ on Read The Docs - 2022-01-20
- Updating stable docs in ReadTheDocs without pushing a release - 2023-08-20
- Running pip install '.[docs]' on ReadTheDocs - 2023-11-24
- Creating a dynamic line chart with SVG - 2020-08-22
- Piping echo to a file owned by root using sudo and tee - 2020-08-24
- Basic strace to see what a process is doing - 2020-09-07
- Enabling a user to execute a specific command as root without a password - 2022-02-13
- Using iconv to convert the text encoding of a file - 2022-06-14
- Converting Airtable JSON for use with sqlite-utils using jq - 2020-08-28
- Loading radio.garden into SQLite using jq - 2021-02-17
- Flattening nested JSON objects with jq - 2021-03-11
- Converting no-decimal-point latitudes and longitudes using jq - 2021-03-11
- Turning an array of arrays into objects with jq - 2021-05-25
- Extracting objects recursively with jq - 2021-07-24
- Convert git log output to JSON using jq - 2023-03-25
- Combined release notes from GitHub with jq and paginate-json - 2023-08-12
- Very basic tsc usage - 2020-09-06
- Turning on Jinja autoescaping when using Template() directly - 2020-09-18
- Formatting thousands in Jinja - 2022-06-08
- Custom Jinja template tags with attributes - 2023-07-01
- Installing Selenium for Python on macOS with ChromeDriver - 2020-10-02
- Using async/await in JavaScript in Selenium - 2020-10-02
- Running Datasette on DigitalOcean App Platform - 2020-10-06
- Redirects for Datasette - 2020-11-25
- Serving MBTiles with datasette-media - 2021-02-03
- Querying for GitHub issues open for less than 60 seconds - 2021-03-12
- Running Datasette on Replit - 2021-05-02
- Searching all columns of a table in Datasette - 2021-08-23
- Reusing an existing Click tool with register_commands - 2021-11-29
- Crawling Datasette with Datasette - 2022-02-27
- Registering new Datasette plugin hooks by defining them in other plugins - 2022-06-17
- Writing a Datasette CLI plugin that mostly duplicates an existing command - 2022-10-22
- Writing a CLI utility that is also a Datasette plugin - 2022-11-21
- Scraping Reddit and writing data to the Datasette write API - 2023-03-13
- Interactive row selection prototype with Datasette - 2023-03-30
- Exploring Baseline with Datasette Lite - 2023-05-12
- Syntax highlighted code examples in Datasette - 2023-07-01
- Using pytest-httpx to run intercepted requests through an in-memory Datasette instance - 2023-07-24
- Remember to commit when using datasette.execute_write_fn() - 2023-08-31
- Running Datasette on Hugging Face Spaces - 2023-09-08
- Writing Playwright tests for a Datasette Plugin - 2024-01-08
- Show the SQL schema for a PostgreSQL database - 2021-02-23
- Granting a PostgreSQL user read-only access to some tables - 2021-02-26
- Closest locations to a point - 2021-03-22
- Using unnest() to use a comma-separated string as the input to an IN query - 2021-04-10
- Using json_extract_path in PostgreSQL - 2021-04-13
- Constructing GeoJSON in PostgreSQL - 2021-04-24
- Upgrade Postgres.app on macOS - 2024-06-15
- Exporting Amplitude events to SQLite - 2021-06-06
- Mouse support in vim - 2021-06-19
- Using nginx to proxy to a Unix domain socket - 2021-07-10
- Using the tesseract CLI tool - 2021-07-18
- Set a GIF to loop using ImageMagick - 2021-08-03
- Compressing an animated GIF with gifsicle or ImageMagick mogrify - 2021-08-05
- Basic Datasette in Kubernetes - 2021-11-05
- kubectl proxy - 2021-12-28
- WebAuthn browser support - 2021-12-29
- get-graphql-schema - 2022-02-01
- Using curl to run GraphQL queries from the command line - 2022-02-21
- GraphQL fragments - 2022-09-30
- Compiling to WASM with llvm on macOS - 2022-03-28
- Run Python code in a WebAssembly sandbox - 2023-02-02
- Intercepting fetch in a service worker - 2022-04-30
- Using DuckDB in Python to access Parquet data - 2022-09-16
- Use DuckDB to convert parquet to JSON and then open it in Datasette Lite - 2023-03-21
- Summing columns in remote Parquet files using DuckDB - 2023-11-14
- Deploying Python web apps as AWS Lambda functions - 2022-09-18
- Whisky sour - 2022-09-25
- Tommy's Margarita - 2022-10-02
- Pisco sour - 2022-10-08
- HTML video that loads when the user clicks play - 2022-09-29
- HTML datalist - 2022-11-14
- Lazy loading images in HTML - 2022-11-26
- Scroll to text fragments - 2023-08-08
- HTML video with subtitles - 2024-07-31
- Getting Mastodon running on a custom domain - 2022-11-02
- Export a Mastodon timeline to SQLite - 2022-11-04
- Verifying your GitHub profile on Mastodon - 2022-11-16
- Building Mastodon bots with GitHub Actions and toot - 2023-02-02
- hexdump and hexdump -C - 2023-05-22
- Cloning my voice with ElevenLabs - 2023-11-15
- Testing the Access-Control-Max-Age CORS header - 2023-05-25
- Understanding the CSS auto-resizing textarea trick - 2023-09-30
- A simple two column CSS grid - 2023-10-26
- Cryptography in Pyodide - 2023-11-26
- Installing tools written in Go - 2024-03-25
- Listen to a web page in Mobile Safari - 2024-05-21