about summary refs log tree commit diff
path: root/users/Profpatsch
AgeCommit message (Collapse)AuthorFilesLines
2022-08-22 r/4447 feat(users/Profpatsch): init haskell exec-helpersProfpatsch3-0/+80
Mirrors the rust exec-helpers Change-Id: I8fba49525949a8f38ca8c215e2ec7ba9d97d3bf9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6116 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-08-22 r/4446 fix(users/Profpatsch/my-prelude): use exactSourceProfpatsch1-1/+4
Change-Id: I1b797fb69f69e09f2dda99fce2f12adef0ac2ad2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6115 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-08-22 r/4445 feat(users/Profpatsch): init netencode-hsProfpatsch3-0/+445
Haskell implementation of the netncode parser & generators. Change-Id: I904df752e78641110af2857e71d8206bf432d427 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6114 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-07-17 r/4304 feat(users/Profpatsch/cas-serve): initProfpatsch9-0/+928
A dumb little daemon that stores arbitrary files by content-hash, and exposes a randomly generated URL by which the file can be fetched again. If the same file is uploaded twice, it will only be stored once. CAS hashes are not exposed to the user, so they can’t figure out whether a file they know is in the database. Change-Id: Ie57bc09d429a9f31c8f0fc5f63f78d6a84d650f7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5952 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-07-01 r/4270 docs(users/Profpatsch/netencode): Parser security considerationsProfpatsch1-0/+18
Netencode parsers should probably set an upper length limit. Change-Id: Ibe65f2b59058106b720867a83435bf45660f1adf Reviewed-on: https://cl.tvl.fyi/c/depot/+/5908 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-06-30 r/4265 feat(users/Profpatsch): add lorri-wait-for-evalProfpatsch3-0/+217
A small exec wrapper which will query the lorri daemon for the last few events, and if it sees a build running for the current project (searching upwards for shell.nix), it will wait for the build to finish before executing the command (in the new direnv environment). TODO: should patch lorri so that it can provide this information in a better digestive format; right now it might have a later evaluation running, so it’s hard to know which completion to wait for … Change-Id: I8fa4a10484830a731fe3ec58f2694498f46a496c Reviewed-on: https://cl.tvl.fyi/c/depot/+/5903 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-06-19 r/4248 feat(users/Profpatsch/sync-abfall): caldav vdirsyncer config genProfpatsch2-1/+157
Gonna have to generate some vdirsyncer config, reusing the toIni stuff, nice. Change-Id: I036ce9990f70d3b035e47151f336d0d3971f2c91 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5888 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2022-06-19 r/4247 refactor(users/Profpatsch/aerc): move ini stuff outProfpatsch5-145/+256
First shot at generating a dhall FFI standard. Change-Id: I1cdf7eeaa6b2668a49282315f308a8e51abd0cf6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5887 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2022-06-19 r/4243 feat(users/Profpatsch/sync-abfall-ics-aichach-friedberg): initProfpatsch3-4/+161
A small script that fetches calendar files for our local trash provider. First step towards integrating ics files into my calendar setup. Change-Id: I0e8915a00c19349104cb6256e9dc87c17620fcae Reviewed-on: https://cl.tvl.fyi/c/depot/+/5883 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de>
2022-05-26 r/4138 refactor(Profpatsch/blog): Prepare for restricted-evalVincent Ambo1-1/+1
Change-Id: Ia73db534634b11c6361e4e88a4d73a1512d969ca Reviewed-on: https://cl.tvl.fyi/c/depot/+/5685 Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-05-05 r/4013 feat(users/Profpatsch/aerc): use toINIProfpatsch2-158/+43
Uses the list-based toINI, which removes a lot of the complications caused by the INI DSL (it was fun to write but really not necessary). Change-Id: Ia6c30a726662416c99ed74f9eb33537573543383 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5530 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-05-05 r/4012 feat(users/Profpatsch): add toINIProfpatsch1-0/+79
This is a morph of the `pkgs.lib.generators.toINIWithGlobalSection` function, which is simplified, inlined, and takes lists instead of attrsets. This makes the key ordering stable and is easy to generate from dhall. Ideally I’d upstream it at one point (in the sense that `generators.toINI` can also take lists), but that will be a lot more work that is not necessary atm. Change-Id: I7d6c129cfee9faedb62f69d479e59a6e05bb7ac6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5529 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-05-05 r/4011 feat(users/Profpatsch/importDhall): print dhall commandProfpatsch1-4/+8
It’s often not obvious what dhall command to run to (type)-check the dhall files directly without the nix roundtrip. Now we just print the command, easy to copy. Change-Id: I704a647bff13f73d5a1b1d33b00a46bcb1a9de4e Reviewed-on: https://cl.tvl.fyi/c/depot/+/5528 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2022-05-05 r/4009 feat(users/Profpatsch): init initial aerc configProfpatsch3-0/+335
aerc is a mail client. It needs some ini files to work. This is an initial attempt at generating them. Change-Id: I087955f19d2c4527275500a1e13eeb071c98a7b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5526 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-05-05 r/4008 feat(users/Profpatsch/importDhall): print type annotationProfpatsch1-4/+15
If no type annotation is given, debugging errors gets a lot harder because there is nothing to compare it against. But we can tell dhall to print the type first (this means double evaluation, but that’s an optimization problem to be solved later). Change-Id: Icf793828070cd6bb8daeb4c07de3162a5e064653 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5525 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-05-05 r/4005 fix(users/Profpatsch/alacritty): remove stable alacrittyProfpatsch1-1/+1
I figured out that the problem came from me installing alacritty in my home profile, which was out of sync with my system closure’s opengl. Updating the home profile “fixed” it. Change-Id: I1e2b3a91da9a3ab8c47182e0e0a8e69b9285c75b Reviewed-on: https://cl.tvl.fyi/c/depot/+/5522 Reviewed-by: Profpatsch <mail@profpatsch.de> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2022-04-21 r/3983 fix(users/Profpatsch/alacritty): use alacritty from stableProfpatsch1-1/+1
Change-Id: I8a3f22dd752b5cd70518424335de876210e9bcd4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5487 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-04-20 r/3981 feat(users/Profpatsch/blog): Idealized Conflang blogpostProfpatsch2-4/+311
Change-Id: Iec01bc2a1a5ed5d21627ba1f9554ec4b3a8fc4ad Reviewed-on: https://cl.tvl.fyi/c/depot/+/5480 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-04-20 r/3980 feat(users/Profpatsch/alacritty): Some more configurationProfpatsch2-12/+28
Change-Id: Ibb2e1892327bd1f27a16dcde1424b8d55c7783d2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5479 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-02-28 r/3878 feat(users/Profpatsch/nix-home): add terminal-emulator to ~/binProfpatsch1-27/+59
This is an ad-hoc way of adding “well known” executables to my user directory for now. It’s not pretty, it is what it is. Change-Id: I93ee1d75b48536692da86485f0ac517aa1935ec4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5335 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2022-02-28 r/3877 feat(users/Profpatsch): Basic alacritty dhall configurationProfpatsch3-0/+105
Change-Id: I73e91a0abeec013445d0b14867e38637b2a9397f Reviewed-on: https://cl.tvl.fyi/c/depot/+/5334 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2022-02-28 r/3876 feat(users/Profpatsch): add importDhallProfpatsch1-0/+78
Makes it possible to import a dhall file as a nix expression (at IfD time), embedding dhall into nix. There’s some setup for adding dhall dependencies as well, but it hasn’t been really battle-tested yet. Change-Id: I3e5670f93c612f2eb530d7c65d6bb4b1bf7bd8bd Reviewed-on: https://cl.tvl.fyi/c/depot/+/5333 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2022-02-28 r/3875 feat(users/Profpatsch): add exactSourceProfpatsch1-0/+90
This is a little helper that Graham cobbled together at one point, it will filter an exact list of files. Change-Id: Iab786abcd4a7a3cce45a20b2950f103defa91998 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5332 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2022-02-28 r/3874 feat(users/Profpatsch/nix-home): add findia* aliasesProfpatsch2-6/+101
Change-Id: I66d3e69ae2cb4cf56a49c970f59f62fa945dd736 Reviewed-on: https://cl.tvl.fyi/c/depot/+/4840 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de>
2022-02-14 r/3822 feat(users/Profpatsch/netencode): ignore earlier record entriesProfpatsch2-6/+8
It turns out that the netencode spec requiring to ignore *later* entries meant that every parser has to do an extra check for each element, instead of just overriding the key in the hash map. This leads to a situation where the simple implementation is the wrong one, which would lead to very subtle problems in parsers (see also the infamous “json duplicate record entry” problem which has been used for various exploits in the past). To be fair, exploits are still possible, but at least a `Map.fromList` will be the right implementation (provided it folds from the left) now instead of the wrong one. Examples of the trivial implementation being now right: Python: > dict([("foo", 1), ("foo", 2)]) {'foo': 2} Rust: > println!("{:?}", HashMap::from([ ("foo", 1), ("foo", 2) ])); {"foo": 2} Haskell: > Data.Map.fromList [ ("foo", 1), ("foo", 2) ] fromList [("foo",2)] Change-Id: Ife9593956f4718e5e720f4f348c227e4f3a71e2d Reviewed-on: https://cl.tvl.fyi/c/depot/+/5108 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de> Reviewed-by: sterni <sternenseemann@systemli.org> Autosubmit: Profpatsch <mail@profpatsch.de>
2022-02-08 r/3791 style(rust): Format all Rust code with rustfmtVincent Ambo7-389/+547
Change-Id: Iab7e00cc26a4f9727d3ab98691ef379921a33052 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5240 Tested-by: BuildkiteCI Reviewed-by: kanepyork <rikingcoding@gmail.com> Reviewed-by: Profpatsch <mail@profpatsch.de> Reviewed-by: grfn <grfn@gws.fyi> Reviewed-by: tazjin <tazjin@tvl.su>
2022-01-31 r/3723 style: format entire depot with nixpkgs-fmtVincent Ambo25-603/+932
This CL can be used to compare the style of nixpkgs-fmt against other formatters (nixpkgs, alejandra). Change-Id: I87c6abff6bcb546b02ead15ad0405f81e01b6d9e Reviewed-on: https://cl.tvl.fyi/c/depot/+/4397 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: wpcarro <wpcarro@gmail.com> Reviewed-by: Profpatsch <mail@profpatsch.de> Reviewed-by: kanepyork <rikingcoding@gmail.com> Reviewed-by: tazjin <tazjin@tvl.su> Reviewed-by: cynthia <cynthia@tvl.fyi> Reviewed-by: edef <edef@edef.eu> Reviewed-by: eta <tvl@eta.st> Reviewed-by: grfn <grfn@gws.fyi>
2022-01-16 r/3600 fix(users/Profpatsch/blog): fix path check assocProfpatsch1-2/+2
It would left-associate in some nix version, this way it’s clear that you want to join a path segment. Change-Id: I82a00de720187d1faf908c842e396301ea435a97 Reviewed-on: https://cl.tvl.fyi/c/depot/+/4886 Reviewed-by: Profpatsch <mail@profpatsch.de> Reviewed-by: sterni <sternenseemann@systemli.org> Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2022-01-09 r/3581 feat(users/Profpatsch/nix-home): set up actual home pathsProfpatsch1-6/+9
Now baba can start using it to populate config files from depot. It’s not entirely working as expected, if stow finds a symlink dir coming from a different stow, it won’t know how to split it up, so some manual intervention is required in the beginning. Change-Id: Ia2271308bf7994ea42e6d7c81c2f3fd94ddf63f3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/4838 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2022-01-09 r/3580 feat(users/Profpatsch): add ytextr, a sandboxed yt-dlp wrapperProfpatsch2-0/+77
Change-Id: Id0992e5c1f52ac2c95444721c7565a66ef484e2b Reviewed-on: https://cl.tvl.fyi/c/depot/+/4836 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-01-09 r/3578 feat(users/Profpatsch/nix-home): create gc root on stowProfpatsch1-1/+10
Change-Id: Ifda8273502f6f4bef0739005319ee6993cb328c8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/4835 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2022-01-09 r/3577 feat(users/Profpatsch): set up stow for nix-homeProfpatsch3-0/+115
nix-home is (hopefully) gonna be a home-manager alternative for my home directory. Files are symlinked into the home directory via GNU stow (since that is a tried and tested tool), so first step is to set up the base code for that. Implements a small tool that reads a single environment variable and prints it to stdout. Change-Id: Ifa3fd9f9e1cedc52c3002196d3971b02cb840e80 Reviewed-on: https://cl.tvl.fyi/c/depot/+/4832 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de>
2021-12-26 r/3423 feat(users/Profpatsch): add git-dbProfpatsch2-0/+93
WIP: currently just a simple setup that creates an empty git repo if it doesn’t exist yet, and writes a commit to it. A simple database backed by a bare git repository. WIP: Will speak a simple interactive protocol to query files and update them atomically. It could be made atomic on the git repo level, if a lock is taken between reading the current commit ref and creating the commit. Change-Id: I1fd30a046ac977063c3e08c36d96e835b35ff07d Reviewed-on: https://cl.tvl.fyi/c/depot/+/3046 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-12-19 r/3311 style: format all Go codeVincent Ambo1-18/+18
The code in //users/wpcarro/tools/monzo_ynab/ynab/client.go was not valid Go and has been commented out. Change-Id: Icb4003607f30294dcbf60132eb7722702c7f0d84 Reviewed-on: https://cl.tvl.fyi/c/depot/+/4400 Tested-by: BuildkiteCI Reviewed-by: wpcarro <wpcarro@gmail.com> Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-11-23 r/3088 refactor(readTree): Move 'drvTargets' into readTreeVincent Ambo9-9/+9
This function is also generally useful for readTree consumers that have the concept of subtargets. Change-Id: Ic7fc03380dec6953fb288763a28e50ab3624d233
2021-11-15 r/3067 docs(users/profpatsch/blog): rust string conversions: &str -> &OsStrProfpatsch1-0/+1
Change-Id: I215cd311551d54ce42c71d4e80ea18f9a17d4cf8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3879 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-11-13 r/3053 feat(users/Profpatsch/lens): add _ as reverse function applicationProfpatsch1-0/+3
Change-Id: I0bcd997ea469ff55d2170027184fc5bd10b44e00 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3847 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2021-11-13 r/3052 docs(users/Profpatsch/lens): setter inline arrowsProfpatsch1-0/+2
Change-Id: I22bed7bc16b69f94556142cad1079e23f3550bb1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3846 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-11-13 r/3051 docs(users/Profpatsch/netencode): fix typoProfpatsch1-1/+1
Change-Id: I7edb9027c0a9eb014931033760be5f3d6e734b8a Reviewed-on: https://cl.tvl.fyi/c/depot/+/3845 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-11-13 r/3050 feat(users/Profpatsch/blog: inject css into markdown filesProfpatsch1-24/+50
Change-Id: I72bba4bd8aa9a9fccab1fd3d618cfcfa7e0507c5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3844 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-11-13 r/3049 feat(users/Profpatsch/lens): lens library for nixProfpatsch1-0/+131
Profunctor lenses for nix. Implemented Profunctor and Strong instances for `(->)`, and some simple setters. Next step would be getters, which will need the `Forget` profunctor. Fairly straightforward implementation of https://github.com/purescript-contrib/purescript-profunctor-lenses (with all the types erased and instance dicts passed manually). ``` > :p set (optic [_2 (field "foo") _1]) 42 (tuple 1 { foo = (tuple 1 2); }) { fst = 1; snd = { foo = { fst = 42; snd = 2; }; }; } ``` Change-Id: Iad145523d1c035187b8b2db9302b840c282d427a Reviewed-on: https://cl.tvl.fyi/c/depot/+/3295 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-11-13 r/3048 feat(users/Profpatsch/blog): Add posts sectionProfpatsch2-38/+168
A new section for my awesome website. Migrates an old blogpost from the github repository. Change-Id: I5fd0c2b2679a1367015fa098e3e787bbc0cdd973 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3293 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-11-13 r/3047 feat(users/Profpatsch/blog): Add projects sectionProfpatsch1-7/+106
A new section for my awesome website. Change-Id: I6c624aa0bfaf82aff943431da7499bec1d842c67 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3291 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-11-13 r/3046 docs(users/Profpatsch/blog): document symbolsProfpatsch1-12/+20
… and clean up the import list a little. Change-Id: I7a116e9bbf01731267795b5327fecf98f0c7c3e4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3286 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-11-13 r/3045 docs(users/Profpatsch/lib): move split-stdin to lib & documentProfpatsch2-7/+24
Change-Id: I39e81ed766cb209ded5309ea962a59a6f1c811c9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3285 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-11-13 r/3044 chore(users/Profpatsch/blog): me -> depot.users.ProfpatschProfpatsch1-16/+14
Change-Id: I72e38ce4cef109df197eccedac8e67ec423d4996 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3284 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-11-13 r/3043 chore(users/Profpatsch): move cdbListToNetencode out of the blogProfpatsch2-94/+91
It’s a small tool that I’ve used before but not anymore, but since it has a few helpers for dealing with cdb stuff, I’m gonna keep it around for now I guess. Change-Id: I83c62fa2194113d021414708b0906350b3f2a222 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3283 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-11-13 r/3042 fix(users/Profpatsch/blog): notes toplevel renderingProfpatsch1-4/+17
The rendering of the notes/ template was done in a very roundabout way through the routing table before. Now it’s constructed directly. Change-Id: Iaa6157cc3f9a7e5e0ad81ab843efa988995666b2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3282 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-11-13 r/3041 docs(users/Profpatsch/netencode): some docstringsProfpatsch1-0/+10
Change-Id: I447113d408cf51f1ed9f9d7571b2229e166e7680 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3281 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-11-13 r/3040 feat(users/Profpatsch/netstring): add nix toNetstring* functionsProfpatsch1-0/+12
We can easily construct netstrings from nix strings, which is super helpful to inject proper structured data into execline scripts. Change-Id: Ie8bffed285896223db83652eaea868ece43592b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3265 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>