Skip to content

Instantly share code, notes, and snippets.

View n2o's full-sized avatar
🕵️‍♂️
...

Christian Meter n2o

🕵️‍♂️
...
View GitHub Profile
@n2o
n2o / tool-uebersicht.md
Last active August 13, 2025 17:29
Tools! Eine Toolsammlung aus der EntwickelBar 04/2025
@n2o
n2o / rest-password-url.md
Created July 28, 2025 13:16
Strapi 5: Configure Email Reset Password Url via Environment Variables

As to my knowledge, strapi does not provide any options to set the email urls via the environment variable. So I included it into the strapi bootstrap function. It relies on the environment variable common.emails.resetPasswordUrl:

// index.ts
import type { Core } from "@strapi/strapi"

async function setEmailConfiguration(strapi: Core.Strapi) {
  strapi.log.info("✉️  Setting email configuration...")
  const resetPasswordUrl = strapi.config.get("common.emails.resetPasswordUrl")
  strapi.log.info(`✉️  Reset password Url: ${resetPasswordUrl}`)
@n2o
n2o / sha256.md
Created March 26, 2025 15:24
SHA256-Function in VBA for Mac-Users and Microsoft Excel

SHA256-Function in VBA for Mac-Users and Microsoft Excel

I needed a function to hash a cell's content in Microsoft Excel. Internal calls to .NET functions don't work on a Mac. Also the Python-Integration is only available in Business-Plans. So I wrote a VBA function to hash a string with SHA256 on a Mac.

This VBA function uses the Mac's internal sha256 implementation, makes a system call and returns the hash. The function is called SHA256_Mac and takes a string as input. The function returns the hash as a string.

Add it to your macro-enabled Excel file and use it like this:

=SHA256_Mac("abc")
@n2o
n2o / nasm_m1.md
Last active February 17, 2025 19:26
Compiling x86_64 assembly program on M1 Mac

If you have an M1 Mac and want to compile and execute x86_64 assembly code, make sure you install Rosetta 2 and nasm (brew install nasm).

Than, take a 64 Bit assembly program, e.g. from this tutorial page (https://cs.lmu.edu/~ray/notes/nasmtutorial/) in Section "Your First Program" for macOS, save it to a file called hello.asm.

Compile, link and execute the program:

nasm -f macho64 hello.asm
ld hello.o -o hello -macosx_version_min 11.0 -L /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib -lSystem

./hello

@n2o
n2o / README.md
Last active January 24, 2025 09:23
Convert wav file to 16 kHz for Whisper in Rust

Convert wav file to 16 kHz for Whisper in Rust

If you want to convert a wav file to 16 kHz for whisper in Rust, you can use the following script. It uses the hound crate to read and write wav files and rubato to resample the audio.

Reads a file as input.wav and returns a converted wav as output.wav.

use rubato::{
    Resampler, SincFixedIn, SincInterpolationParameters, SincInterpolationType, WindowFunction,
};
@n2o
n2o / wordpress-posts-by-category-shortcode.md
Last active December 3, 2024 10:12
Wordpress Shortcode: Get posts by category and sort them in a grid or slider

Let's assume we have a post type employee and some categories. We want to get all employees, who are assigned to a specific category to add them via a shortcode. The shortcode should have two attributes: category and layout. The category attribute should accept a comma-separated list of category slugs or IDs. The layout attribute should define the output layout: grid or slider.

Here is an example of how to create a shortcode to list employees by category:

/**
 * Listing of employees by category
 *
 * Example: [employee category="Physiotherapie" layout="grid"]
 * - layout="grid": Displays the employees in a grid (default)
@n2o
n2o / sitemap.md
Created October 23, 2024 12:13
Automatic sitemap.xml for NextJS with Internationalization

This script creates a sitemap based on the page.tsx-files found in your app-directory.

Create a file called sitemap.ts inside of your app/ directory of your NextJS application.

Then fill it with this script:

import { globby } from "globby"
import type { MetadataRoute } from "next"
@n2o
n2o / pdf-like-fax.md
Last active October 1, 2024 09:22
Babashka Script to make a PDF file look like a fax by using ImageMagick

Inspired by this Gist and @coryodaniel's solution, I put the script inside a babashka script, called pdf-like-fax.clj:

#!/usr/bin/env bb
(defn pdf-like-fax [input output]
  (let [sign (rand-nth ["+" "-"])
        rotation (rand-int 1000)
        cmd (format "convert -density 150 %s -rotate %s0.%s -attenuate 0.4 +noise Multiplicative -attenuate 0.03 +noise Multiplicative -sharpen 0x1.0 -colorspace Gray %s" input sign rotation output)
 prepared-cmd (str/split cmd #" ")]
@n2o
n2o / mattermost-permission-fix.md
Last active August 24, 2024 12:09
Fix mattermost permissions when deployed with helm

Fix Mattermost Permission Problem

This solution is based the code snippet provided @nsteinmetz in this issue.

If you deployed mattermost via the helm chart, you might experience the same problem as we at @schnaq did: the mounted volumes belong to root but not to the mattermost user. This is a problem if you want to install settings, or new plugins (e.g. the playbook or the focalboard).

To fix this, we checked the id of the mattermost user in our running pod:

@n2o
n2o / picowifi.md
Created July 14, 2024 21:10
Raspberry Pi Pico W as Wifi Access Point

Pico W as Wifi Access Point

This script spins up the Pico W as a Wifi Access Point. It assigns itself the IP 192.168.4.1 and assigns new Clients some IP starting at 192.168.4.16 or so.

import network
from machine import Pin

led = Pin("LED", Pin.OUT)