Skip to content

Instantly share code, notes, and snippets.

View trikko's full-sized avatar

Andrea Fontana trikko

View GitHub Profile
@trikko
trikko / dlang_static.md
Created November 2, 2024 14:09
Build dlang fully static executable

Docker with Alpine+MUSL

FROM alpine:latest
RUN apk add gcc musl-dev ldc dub llvm-libunwind-static openssl-libs-static gzip upx

On dub.json

"dflags": ["--nodefaultlib", "-static"],
"subConfigurations": {
@trikko
trikko / uuid.d
Last active December 20, 2024 15:11
UUIDv7 and UUIDv4 in dlang
import std.stdio : writeln;
void main() {
writeln(UUIDv4!string());
writeln(UUIDv7!string());
}
/// Generate a UUID v4 (random bytes) as string
string UUIDv4(T = string)() if(is(T==string)) { return formatUUID(UUIDv4!ubyte); }
@trikko
trikko / Dockerfile
Created January 30, 2023 17:44
Serverino + Docker
FROM alpine:latest
RUN apk update && apk upgrade
RUN apk add dmd dub cmake gcc make musl-dev
RUN ln -fs /usr/share/zoneinfo/Europe/Rome /etc/localtime
RUN apk add tzdata
RUN adduser -D -S www-data
WORKDIR /source
@trikko
trikko / raylib-video.c
Last active August 4, 2024 12:40
How to render a video with raylib and gstreamer
#include "raylib.h"
#include <gst/gst.h>
#include <gst/app/gstappsink.h>
GstElement* createPipeline(const char* filename)
{
GError *error;
gchar *pipelineString = g_strdup_printf ("filesrc location=%s ! tee name=t ! queue ! decodebin ! videoconvert ! appsink name=output caps=video/x-raw,format=RGBA,pixel-aspect-ratio=1/1 t. ! queue ! decodebin ! audioconvert ! audioresample ! autoaudiosink", filename);
GstElement *pipeline = gst_parse_launch (pipelineString, &error);