HackerTrans
TopNewTrendsCommentsPastAskShowJobs

vbrandl

no profile record

comments

vbrandl
·vor 2 Jahren·discuss
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
·vor 3 Jahren·discuss
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
·vor 3 Jahren·discuss
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
·vor 3 Jahren·discuss
Could you give some links or pointers (which city/building/year)? I know of the band but not that story.
vbrandl
·vor 3 Jahren·discuss
Sounds like a botnet with extra steps
vbrandl
·vor 3 Jahren·discuss
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
·vor 3 Jahren·discuss
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
·vor 4 Jahren·discuss
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
·vor 4 Jahren·discuss
Since I have no use for it, I like to globally (not just in vim) map caps to ESC.
vbrandl
·vor 4 Jahren·discuss
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
·vor 4 Jahren·discuss
Maybe cargo2nix? https://github.com/cargo2nix/cargo2nix
vbrandl
·vor 4 Jahren·discuss
In the end you could use nix to build docker/VM images and use the same, reproducible environment in prod/test/CI/dev/...
vbrandl
·vor 4 Jahren·discuss
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
·vor 4 Jahren·discuss
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
·vor 4 Jahren·discuss
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
·vor 4 Jahren·discuss
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
·vor 4 Jahren·discuss
Fear and Loathing in Las Vegas, by Hunter Thompson if anyone is wondering
vbrandl
·vor 4 Jahren·discuss
Maybe by releasing often (every 6 weeks or out of band for bug fixes like this), they make it easier to use a current version of the compiler, in comparison to the old Java release cycle of multiple years.

Also testing the compiler against the whole ecosystem on crates.io before releasing a new version helps building trust in the backwards compatibility of new compiler versions.

So they are doing something to establish a culture where updating your compiler regularly is encouraged. I don't have actual numbers and I don't know how enterprise Rust shops handle their compiler versions, but they are doing things to encourage (not force) users to keep their compilers up to date.
vbrandl
·vor 4 Jahren·discuss
If the vessel was started at day, the earth was also pushed away from the sun
vbrandl
·vor 5 Jahren·discuss
~I'm not sure about the semantics, but the type would allow that, yes.~

Edit:

    fn scatter(&self, ray: &Ray, hit_record: &HitRecord) -> Option<(Option<Ray>, Srgb)>
The function takes a `Ray` as input, so you cannot render light without a ray. The return value might be one of the cases listed above.

The `None` case might be something like a black hole: a ray hits the object and nothing happens.

The `Some((None, Srgb))` case would be a non-reflective surface, it changes the color if hit by a ray but does not reflect the ray further.

The `Some((Some(Ray), Srgb))` case would be a reflective surface, that changes the color and reflects the ray.

Again not sure about the exact semantics and I didn't read the blog post yet, but that would be my guess.