Skip to content

Instantly share code, notes, and snippets.

@Wultyc
Wultyc / Tasks
Last active October 9, 2025 19:12
Kanban board using Obsidian Bases
`````col
````col-md
# 📜 Backlog
![[Tasks Base.base#Backlog]]
````
````col-md
# 📋 To Do
![[Tasks Base.base#To Do]]
````
from PIL import Image, JpegImagePlugin
from PIL.ExifTags import TAGS
def fetch_exif(image_path):
try:
image = Image.open(image_path)
exif_data = image._getexif()
if exif_data is not None:
# Convert EXIF data to a readable dictionary
exif_dict = {TAGS[key]: exif_data[key] for key in exif_data.keys() if key in TAGS and isinstance(exif_data[key], (int, str))}
@dawidkc
dawidkc / Obsidian Setup.md
Last active October 21, 2025 08:37
My Obsidian & plugin recommendations

This is my Obsidian setup.

Alternatives considered

  • LogSeq - its major advantage is that it's open source, but there's less functionality; journaling might work better in general, but with the plugins below, Obsidian is IMHO better and feels more natural to me

Themes

  • Things2 - very good just because supports additional checkmark types (e.g. in progress)
@afternoon2
afternoon2 / polygonBooleanOps.js
Last active August 18, 2024 02:52
Polygon boolean operations using clipper.js for pen plotting purposes
// this is an old version available on npm and jsdelivr, but you can download
// newer version here: https://sourceforge.net/projects/jsclipper/files/ and keep it
// locally in your project
import ClipperLib from "https://cdn.jsdelivr.net/npm/js-clipper@1.0.1/+esm";
const SUBJECT = ClipperLib.PolyType.ptSubject; // 0
const CLIP = ClipperLib.PolyType.ptClip; // 1
const FILL_NON_ZERO = ClipperLib.PolyFillType.pftNonZero;
const FILL_EVEN_ODD = ClipperLib.PolyFillType.pftEvenOdd;
const DIFFERENCE = ClipperLib.ClipType.ctDifference;
@saharshbhansali
saharshbhansali / ObsidianMarkdownGuide.md
Last active September 30, 2025 06:02
Markdown Formatting Guide for Obsidian. Import this gist as a file into your Obsidian Vault to view it and to test new themes. Certain community plugins are required for a few features.

Markdown Formatting Guide for Obsidian

Learn how to apply basic formatting to your Obsidian notes, using Markdown. Import this as a note into your Obsidian Vault to view it and to test new themes. Certain community plugins are required for a few features.


Basic Formatting Syntax


Paragraphs

To create paragraphs, use a blank line to separate one or more lines of text.

@kconner
kconner / macOS Internals.md
Last active October 31, 2025 14:00
macOS Internals

macOS Internals

Understand your Mac and iPhone more deeply by tracing the evolution of Mac OS X from prelease to Swift. John Siracusa delivers the details.

Starting Points

How to use this gist

You've got two main options:

// polygon transform with using svgpathdata.js matrix utility class
// results in the same polygon as in case of using svgpathdata directly
// but without the need of stringifying path data before processing.
// useful when working on polygons data instead of svg paths.
// Input format utilizes JS Clipper Lib polygon format:
// type PolygonRing = { X: number, Y: number }[];
// type Polygon = PolygonRing[];
//
// usage:
@DanB91
DanB91 / README.txt
Last active November 28, 2022 04:57
Playdate Zig starting point
THIS GIST IS OUT OF DATE! Please use my new project template here to get started with Zig on Playdate:
https://github.com/DanB91/Zig-Playdate-Template
The rest of this is preservied for historical reasons:
This is a small snippet of some code to get you started for developing for the Playdate on Zig. This code should be used as a starting point and may not compile without some massaging. This code has only been tested out on macOS and you'll need to modify the addSharedLibrary() portion of build.zig to output a .dll or .so instead of a .dylib, depending on you platform.
This code will help you produce both an executable for the Playdate simulator and also an executable that actually run on the Playdate hardware.
@kristopherjohnson
kristopherjohnson / Makefile
Created February 22, 2022 23:51 — forked from MLKrisJohnson/Makefile
Makefile for processing Mermaid files in the current directory
# Makefile for Mermaid files in this directory
#
# `make all` - build all targets
# `make png` - build PNGs for all source files
# `make svg` - build SVGs for all source files
# `make pdf` - build PDFs for all source files
# `make clean` - delete all targets
# `make listsources` - print list of all files to be processed
# `make listtargets` - print list of all output files
@tennantje
tennantje / convert_olm_to_eml.py
Last active April 15, 2025 19:38
Convert Outlook for Mac (OLM) to EML files as PST conversion tools are expensive
# MIT LICENSE
# Copyright 2021 Jeremy Tennant
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWA