Skip to content

Instantly share code, notes, and snippets.

View bskinn's full-sized avatar

Brian Skinn bskinn

View GitHub Profile
@dawnmist
dawnmist / wine-doodly.md
Last active September 26, 2022 18:10
Installing Doodly with Wine/Winetricks on Linux

I have managed to get the 32bit Windows version of Doodly working in linux using wine and winetricks, and using vulkan as the renderer. This assumes that you have installed the vulkan driver packages for your video card - which is beyond the scope of this gist. I set it up with its own wine prefix, so it wasn't affecting any others. Documented here so other people can give it a try - you will need to remember to specify the path to where you downloaded the installer:

env WINEPREFIX="$HOME/wine-doodly" WINEARCH=win32 winetricks dotnet48 dxvk corefonts mf nuget 
env WINEPREFIX="$HOME/wine-doodly" WINEARCH=win32 winetricks renderer=vulkan
env WINEPREFIX="$HOME/wine-doodly" WINEARCH=win32 wine <path_to_installer>/DoodlySetup2.7.1_32bit.exe
@nymous
nymous / README.md
Last active April 22, 2025 21:37
Logging setup for FastAPI, Uvicorn and Structlog (with Datadog integration)

Logging setup for FastAPI

This logging setup configures Structlog to output pretty logs in development, and JSON log lines in production.

Then, you can use Structlog loggers or standard logging loggers, and they both will be processed by the Structlog pipeline (see the hello() endpoint for reference). That way any log generated by your dependencies will also be processed and enriched, even if they know nothing about Structlog!

Requests are assigned a correlation ID with the asgi-correlation-id middleware (either captured from incoming request or generated on the fly). All logs are linked to the correlation ID, and to the Datadog trace/span if instrumented. This data "global to the request" is stored in context vars, and automatically added to all logs produced during the request thanks to Structlog. You can add to these "global local variables" at any point in an endpoint with `structlog.contextvars.bind_contextvars(custom

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
import panel as pn
script = """
<script>
function querySelectorDeep(selector, rootNode=document.body) {
const arr = []
const traverser = node => {
// 1. decline all nodes that are not elements
if(node.nodeType !== Node.ELEMENT_NODE) {