orivej | 1 year ago | on: Pair Your Compilers at the ABI Café
orivej's comments
orivej | 1 year ago | on: Pair Your Compilers at the ABI Café
[1] https://cffi.common-lisp.dev/manual/html_node/The-Groveller....
orivej | 4 years ago | on: ImageNet contains naturally occurring Apple NeuralHash collisions
orivej | 4 years ago | on: Guix 1.3
> 1) Are these kind of systems overkill for the desktop user?
There is more to learn to be free to do everything — for some this might be too much (even though it is easy to start and the learning is mostly gradual), for others this is fine (especially those viewing the obstacles as opportunities to learn rather than distractions), and many others can be satisfied with their systems before achieving such freedom. While efficient usage of NixOS requires more upfront involvement, once settled or learned it becomes the easiest to maintain, and brings the piece of mind I had with no other OS with its easy global configuration, nondestructive updates, and manageable malleability (adding and customizing packages, effortlessly offloading their build to your other machines with Nix, even without NixOS).
> 2) How easy is it to customize/tweak these systems in the manner that Gentoo does? So, building from source by tweaking the software options on build time?
Nixpkgs have close to optimal balance between the ability to use prebuilt packages and the ability to extend them, and it's more customizable (thanks to Nix and Nixpkgs designed to allow reaching into the old definition of a package, writing tweaks just for the parts you need, while keeping automatic updates!), although it's geared towards users that want most of their packages prebuilt (in particular it does not have cross-cutting USE-flags). You can either replace a package (and cause dependent ones to be rebuilt against it), or override under a new name (and install it alongside other packages that may depend upon and actually use the non-overridden one).
orivej | 5 years ago | on: Microsoft Flight Simulator returned to the skies
[1] https://store.steampowered.com/app/493490/City_Car_Driving/
orivej | 7 years ago | on: Linux touchpad like a Macbook: progress and a call for help
orivej | 7 years ago | on: Out-of-this-world spaceship designs based on everyday objects
orivej | 7 years ago | on: Linux 4.19
> Given a choice between only two extremes, I'd far rather have Linus Torvalds telling me I'm an idiot and my code is shit, then exist in an offense taking culture where various forms of criticism are re-branded as "harassment."
However, the Linux copy has cut one of the more malicious paragraphs: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...
orivej | 7 years ago | on: Yeti DNS Project
The issue for the curious: https://github.com/miekg/dns/issues/234
orivej | 7 years ago | on: SMS over IRC
orivej | 7 years ago | on: Announcing C++ Just My Code Stepping in Visual Studio
orivej | 7 years ago | on: Reverse Shell from an OpenVPN Configuration File
Your internet service provider is one of these parties. With VPN, you have a large choice of whom to trust and an easy option to switch.
orivej | 7 years ago | on: Go vgo: Semantic Versioning and Human Error
orivej | 7 years ago | on: Go vgo: Semantic Versioning and Human Error
orivej | 7 years ago | on: Go vgo: Semantic Versioning and Human Error
vgo allows you to pin your transitive dependencies to the exact versions of your choice, as long as non of them require a dependency with a higher version than you prefer. (But then, do other dependency managers let you disregard version constraints of your dependencies?)
orivej | 7 years ago | on: Go vgo: Semantic Versioning and Human Error
Can you give an example where vgo prevents use of a library where another approach does not? The main difference in the expressive power between vgo and traditional approaches is that the latter can restrict your use of libraries together more. vgo does not need a perfect world: it is practical in the imperfect one.
> MVS does use a maximum. It's the major version number in SemVer.
So, we can not force a library that wants dependency v3 to use dependency v2 (and vice versa), even if the author of the library knows that it works with either v2 or v3. This is a loss of vgo. On the other hand, if another library can only work with v2, and yet another can only work with v3, vgo allows the use of both in the same application. This looks like an acceptable win for the price of that loss.
orivej | 7 years ago | on: Go vgo: Semantic Versioning and Human Error
* The article says that "Prior to 1.4.0 there was one function of MaxMsgSize" which "had previously set the size on both send and receive" but it does not substantiate this claim, and it may be false since go-grpc 1.3.0 documents that "MaxMsgSize returns a ServerOption to set the max message size in bytes for inbound mesages" https://github.com/grpc/grpc-go/blob/v1.3.0/server.go#L166, and it has not changed in go-grpc 1.12.0 https://github.com/grpc/grpc-go/blob/v1.12.0/server.go#L228 which strongly suggests that this is not a bug.
orivej | 7 years ago | on: Ask HN: Which VPN?
«We added iptables rules to hijack all DNS requests on port 53 going via the VPN tunnel, this is to protect users having set a DNS server unknowingly (or by malware). We are aware that not all users want this behaviour, and we intend to add an extra port that OpenVPN listens on, where DNS hijacking will not happen.»
Some VPN providers (including Mullvad) have a client-side feature called DNS leak protection that configures the system to use the provider's DNS server. I don't know how Mullvad decided that this was not enough, and they are justified to intercept DNS. (Note that for the server-side intervention to work, the client side must be configured not to use ISP DNS, hence the client-side DNS leak protection is a prerequisite.)
orivej | 7 years ago | on: Ask HN: Which VPN?
orivej | 7 years ago | on: EFail – Vulnerabilities in end-to-end encryption technologies OpenPGP and S/MIME
According to [1], Claws Mail is also unaffected. I don't know if it was tested with or without its HTML plugin, but this should make no difference as long as the plugin is not configured to access remote resources. (By default it can not make network requests.)
https://twitter.com/matthew_d_green/status/99599862678571417...
When you run ./configure or cmake for a C program, it often prints something like "configure: checking size of long long" or "-- Check size of long long". This is done by generating, compiling and running a short C program that prints sizeof long long. The result goes into an autogenerated config.h.
In Rust the first example of build.rs usage [1] compiles and runs a C program during the build of the crate, and the next page [2] shows how to use autogenerated Rust code with include! macro.
Lisp is more similar to C or Rust than you might think. Code generation typically happens while the library or program source code is being loaded, and it is orchestrated by a declaration in an .asd file, which is analogous to meson.build, but looks more like Cargo.toml, e.g. [3]
[1] https://doc.rust-lang.org/cargo/reference/build-scripts.html [2] https://doc.rust-lang.org/cargo/reference/build-script-examp... [3] https://github.com/rpav/cl-freetype2/blob/b7871aed0c5244fc3b...