Add memes hackathon for brcon2023. - brcon2023-hackathons - Bitreichcon 2023 Hackathon Repository
(HTM) git clone git://bitreich.org/brcon2023-hackathons git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/brcon2023-hackathons
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
---
(DIR) commit ab70f21c78e95875b59872ab3e32f874281155cb
(HTM) Author: Christoph Lohmann <20h@r-36.net>
Date: Wed, 2 Aug 2023 21:45:40 +0200
Add memes hackathon for brcon2023.
Diffstat:
A memes/description.md | 18 ++++++++++++++++++
A memes/dir2meme | 28 ++++++++++++++++++++++++++++
A memes/dir2memeblob | 33 +++++++++++++++++++++++++++++++
A memes/dirrename2meme | 36 +++++++++++++++++++++++++++++++
A memes/meme-classify | 24 ++++++++++++++++++++++++
A randomness/description.md | 57 +++++++++++++++++++++++++++++++
6 files changed, 196 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/memes/description.md b/memes/description.md
@@ -0,0 +1,18 @@
+# Memes Hackathon
+
+## Goal
+
+We want to improve on meme tools.
+
+## Barebones
+
+Some tools have already been added to the repository, which help in
+easily classifying memes and helping you keep your daily meme collection
+easy.
+
+What is missing, is the export of meme zip files, which can then be
+easily imported into a meme repository, like with annna.
+
+
+Have fun!
+
(DIR) diff --git a/memes/dir2meme b/memes/dir2meme
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+if [ $# -lt 1 ];
+then
+ printf "usage: %s file.meme\n" "$(basename "$0")" >&2
+ exit 1
+fi
+
+memefile="$1"
+outname="${memefile%.*}"
+
+printf "meme\n" > ${memefile}
+find . -type f \
+| while read -r medianame;
+do
+ case "${medianame}" in
+ *.meme|*.memeblob.*)
+ continue
+ ;;
+ esac
+
+ filename="$(basename "${medianame}")"
+ memetag="${filename%.*}"
+ printf "#%s %s\n" "${memetag}" "${filename}" >> "${memefile}"
+done
+
+printf "%s\n" "${memefile}"
+
(DIR) diff --git a/memes/dir2memeblob b/memes/dir2memeblob
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+if [ $# -lt 1 ];
+then
+ printf "usage: %s file.meme\n" "$(basename "$0")" >&2
+ exit 1
+fi
+
+memefile="$1"
+outname="${memefile%.*}"
+outzip="${outname}.meme.blob.zip"
+
+[ ! -e "${memefile}" ] && printf "meme\n" > ${memefile}
+find . -type f \
+| while read -r medianame;
+do
+ case "${medianame}" in
+ *.meme|*.memeblob.*)
+ continue
+ ;;
+ esac
+
+ filename="$(basename "${medianame}")"
+ memetag="${filename%.*}"
+ [ ! -e "${memefile}" ] && printf "#%s %s\n" "${memetag}" "${filename}" >> ${memefile}
+ zip -u "${outzip}" "${filename}"
+done
+
+zip -u "${outzip}" "${memefile}"
+rm "${memefile}"
+
+printf "%s\n" "${outzip}"
+
(DIR) diff --git a/memes/dirrename2meme b/memes/dirrename2meme
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+if [ $# -lt 1 ];
+then
+ printf "usage: %s file.meme\n" "$(basename "$0")" >&2
+ exit 1
+fi
+
+outfile="$1"
+
+printf "meme\n" > ${outfile}
+find . -type f \
+| while read -r medianame;
+do
+ basemedianame="$(basename "${medianame}")"
+ newfilename="$(printf "%s" "${basemedianame}" \
+ | tr -c 'a-zA-Z0-9.-_' '_')"
+ if [ "${basemedianame}" != "${newfilename}" ];
+ then
+ mv "${medianame}" "${newfilename}"
+ printf "%s -> %s\n" "${basemedianame}" "${newfilename}"
+ fi
+ mpv "${newfilename}"
+ printf "%s\n" "${newfilename}"
+ memetag="$(thinglaunch -o -p "memetag> ")"
+ if [ "${memetag}" = "quit" ];
+ then
+ exit 0
+ fi
+
+ if [ -n "${memetag}" ];
+ then
+ printf "#%s %s\n" "${memetag}" "${newfilename}" >> ${outfile}
+ fi
+done
+
(DIR) diff --git a/memes/meme-classify b/memes/meme-classify
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+set -x
+
+if [ $# -lt 1 ];
+then
+ printf "usage: %s file.ext\n" "$(basename "$0")" >&2
+ exit 1
+fi
+
+inputpath="$1"
+inputfile="$(basename "${inputpath}")"
+filename="${inputfile%.*}"
+memename="$(thinglaunch -o -p "${filename} meme name> ")"
+
+memebase="$HOME/fotos/memes"
+cp $inputpath ${memebase}
+
+cd $memebase
+outputfile="$(quinq-size "${inputfile}" | cut -d' ' -f 3-)"
+outputext="${outputfile#*.}"
+mv ${outputfile} ${outputfile/${filename}_quinqsize/${memename}}
+rm $inputfile
+
(DIR) diff --git a/randomness/description.md b/randomness/description.md
@@ -0,0 +1,57 @@
+# Random Source Generator
+
+## Goal
+
+Write a simple frontend for gopher for this randomness source. This can
+then be reused everwhere over gopher.
+
+## Principle
+
+On Bitreich there will be a stream of random bits provided by a geiger
+counter and other random sources from 20h's home server. This should be
+shown to gopher in a standard way, as defined here:
+
+ * https://nvlpubs.nist.gov/nistpubs/ir/2019/NIST.IR.8213-draft.pdf
+ * https://beacon.nist.gov/ns/beacon/pulse/2.0/beacon-2.0.xsd
+ * https://beacon.nist.gov/beacon/2.0/pulse/last
+ * https://qrng.anu.edu.au/ as source
+ * https://drand.love/developer/http-api/#public-endpoints
+
+We can monkey-patch
+
+ * https://github.com/nhorman/rng-tools/rngd_nistbeacon.c
+
+to using gophers://.
+
+## Applications
+
+This could be used for
+
+ * https://codeberg.org/rendezvous/reunion/
+ * https://near.org/blog/randomness-threshold-signatures/
+ * https://apps.dtic.mil/sti/pdfs/ADA222698.pdf
+ * https://github.com/GoodiesHQ/noknow-c
+ * https://github.com/gtanzer/zk
+
+## Testing Randomness
+
+ * https://github.com/dyne/libdisorder
+
+## Naming
+
+There is a huge list of possible names for this service:
+
+ * https://de.wikipedia.org/wiki/Tyche
+ * https://de.wikipedia.org/wiki/Fortuna
+ * https://de.wikipedia.org/wiki/Parzen
+ * https://de.wikipedia.org/wiki/Moiren
+ * https://de.wikipedia.org/wiki/Klotho_(Mythologie)
+ * https://de.wikipedia.org/wiki/Lachesis_(Mythologie)
+ * https://de.wikipedia.org/wiki/Atropos
+ * https://de.wikipedia.org/wiki/Morta
+ * https://de.wikipedia.org/wiki/Datei:Kuntze-Konicz_Fortune.jpg
+ * https://de.wikipedia.org/wiki/Datei:ForutuneWheel.jpg
+
+
+Have fun!
+