Add memes hackathon for brcon2023. - brcon2023-hackathons - Bitreichcon 2023 Hackathon Repository HTML git clone git://bitreich.org/brcon2023-hackathons git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/brcon2023-hackathons DIR Log DIR Files DIR Refs DIR Tags --- DIR commit ab70f21c78e95875b59872ab3e32f874281155cb HTML 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! +