HackerTrans
トップ新着トレンドコメント過去質問紹介求人

vbrandl

no profile record

コメント

vbrandl
·2 年前·議論
I would guess OSM uses optimizations for eucledian graphs, where the path a->c is always shorter than a->b->c. This restriction makes e.g. TSP solvable. But this property does not hold for any generic graph. I don't know if this makes visualisation also easier.
vbrandl
·3 年前·議論
There is a virus written in awk that infects other awk scripts[0]. And according to wikipedia, the language is Turing complete.

[0]: https://github.com/SPTHvx/ezines/tree/main/dc5/CODES/Perfori...
vbrandl
·3 年前·議論
That's the point of EurKey. Special characters are the same as on the US layout with additional, language specific letters available. At least for writing English and German it has been great for me.
vbrandl
·3 年前·議論
Could you give some links or pointers (which city/building/year)? I know of the band but not that story.
vbrandl
·3 年前·議論
Sounds like a botnet with extra steps
vbrandl
·3 年前·議論
The linked paper is not my thesis but one of the foundational works, I based my thesis on. Mine can be found here: https://git.vbrandl.net/vbrandl/masterthesis/raw/branch/mast...
vbrandl
·3 年前·議論
PageRank and similar ranking algorithms on graphs can be used to detect monitoring attempts in P2P botnets [0] (a botmaster can detect when researchers/law enforcement start monitoring a botnet).

For my master's thesis, I evaluated these algorithms and tried to find ways to prevent detection and came to the conclusion that it is hard if you don't want to deploy about as much sensor nodes as the botnet has active peers. Those algorithms are working really well and are hard do work around.

[0]: https://doi.org/10.1145/3098954.3098991
vbrandl
·4 年前·議論
Maybe I did not use it as intended, but I have an app running on fly.io that exposed the metrics endpoint on another port as the webapp itself, so it is not publicly reachable. This app suddenly broke and I had to disable the metrics endpoint to get it running again. Since it is a toy project, I didn't investigate further but internally everything worked fine (the healthcheck got the expected 200 response) but the routing of external requests just broke.

Also when building and deploying an image, some non-obvious and undocumented changes are made. My app generates version information based on the git repository state. The build process deletes (or ignores, I don't know, never got an answer to my issue) the fly.toml file in the docker build context, which resulted in uncommitted changes and a "dirty" repository when building the app. My dirty workaround is to `git checkout fly.toml` in my dockerfile. It works but it isn't pretty...
vbrandl
·4 年前·議論
Since I have no use for it, I like to globally (not just in vim) map caps to ESC.
vbrandl
·4 年前·議論
I also applaud their user-respecting design choices. E.g. if your browser sets the DNT (do not track) header, they won't show a cookie consent banner and just assume you selected "reject all"
vbrandl
·4 年前·議論
Maybe cargo2nix? https://github.com/cargo2nix/cargo2nix
vbrandl
·4 年前·議論
In the end you could use nix to build docker/VM images and use the same, reproducible environment in prod/test/CI/dev/...
vbrandl
·4 年前·議論
One thing that differentiates nix from things like virtualenv is that each (package + version) tuple exists at most once in your local nix store and is then linked into your project environments, while virtualenv will install new copies of the packages. On the other hand you have to run the nix garbage collector to get rid of unused packages.

As for Windows support: It seems to be possible to use nix in WSL [0] but I've never tried that. I have used nix alongside apt and pacman on Ubuntu/Arch before I decided to go all the way and install the NixOS distribution. Using it alongside other package managers worked really well.

[0]: https://nixos.org/download.html#nix-install-windows
vbrandl
·4 年前·議論
If you are looking for a language agnostic version manager, the nix package manager [0] might be worth a try. In combination with lorri [1] you will be dropped into a shell with all required development dependencies available, when you enter the project directory. This does not only include the interpreter/compiler versions but also any other dependency you can think of, like specific libraries the project links against (well almost any, it has to be available as a nix expression, best case directly in upstream nixpkgs).

For me, it has come so far that I don't have any interpreters or compilers in my main OS environment and even for one off REPL sessions, I'll use `nix shell nixpkgs#python3 -c python3`.

[0]: https://nixos.org/

[1]: https://github.com/nix-community/lorri/
vbrandl
·4 年前·議論
Private feedback via email is always possible and you can chose to publish specific feedback you deem important. It's the same for printed literature. There is no comment section in books. As for sharing: you can always share the URL
vbrandl
·4 年前·議論
I learned typing on German QWERTZ, too. I started using eurkey [0] a few years ago. For me it hits the sweet spot between good position of special characters used for programming (it's effectively QWERTY in that regard) but with common European special characters easily available. So instead of dedicated keys for ä/ö/ü, it became AltGr+a/o/u.

The switch was not to hard and in the beginning I kept using my QWERTZ keyboard. After about a year I decided to stick with it and bought a QWERTY keyboard.

Having to switch back to the QWERTZ layout of coworkers is a little awkward but it's not too bad.

[0]: https://eurkey.steffen.bruentjen.eu/
vbrandl
·4 年前·議論
Fear and Loathing in Las Vegas, by Hunter Thompson if anyone is wondering
vbrandl
·5 年前·議論
here's an example I had a few month ago: Password Requirements, merging of requirements and generating passwords that fulfill the requirements:

- merging/combining of requirements is a monoid operation with an "empty requirement" (e.g. one that accepts every password) as the neutral element. Finding this requirement, I could write properties for the monoid properties (a + b = b+ a, a + 0 = a, and so on) - when generating a password from a requirement, the same requirement must accept the generated password (`requirement.accept(requirement.generate()`)

In general: if you find mathematical rules to your code (commutativity, associativity,. ..), these make a great starting point for property tests.