1,687 karma · joined May 1, 2012
[ my public key: https://keybase.io/klmr; my proof: https://keybase.io/klmr/sigs/F9zackvFn6PE00C5T_IlAkRQPH_CVvp0aqSA-hysJ30 ]
I think that most problems are ultimately caused by the fact that R packages cannot really declare versioned dependencies (most packages only declare `>=` dependency, even though they could also give upper bounds [1]; and that is woefully insufficient), and installing a package’s dependencies will (almost?) always install the latest versions, which may be incompatible with other packages. But at any rate ‘renv’ currently seems to ignore upper bounds: e.g. if I specify `Imports: dplyr (>= 0.8), dplyr (< 1.0)` it will blithely install v1.1.3.
The single one thing that causes most issues for us at work is a binary package compilation issue: the `configure` file for ‘httpuv’ clashes with our environment configuration, which is based on Gentoo Prefix and environment modules. Even though the `configure` file doesn’t hard-code any paths, it consistently finds the wrong paths for some system dependencies (including autotools). According to the system administrators of our compute cluster this is a bug in ‘httpuv’ (I don’t understand the details, and the configuration files look superficially correct to me, but I haven’t tried debugging them in detail, due to their complexity). But even if it were fixed, the issue would obviously persist for ‘renv’ projects requiring old versions.
(We are in the process of introducing a shared ‘renv’ package cache; once that’s done, the particular issue with ‘httpuv’ will be alleviated, since we can manually add precompiled versions of ‘httpuv’, built using our workaround, to that cache.)
Another issue is that ‘renv’ attempts to infer dependencies rather than having the user declare them explicitly (a la pyproject.toml dependencies), and this is inherently error-prone. I know this behaviour can be changed via `settings$snapshot.type("explicit")` but I think some of the issues we’re having are exacerbated by this default, since `renv::status()` doesn’t show which ones are direct and which are transitive dependencies.
Lastly, we’ve had to deactivate ‘renv’ sandboxing since our default library is rather beefy and resides on NFS, and initialising the sandbox makes loading ‘renv’ projects prohibitively slow — every R start takes well over a minute. Of course this is really a configuration issue: as far as I am concerned, the default R library should only include base and recommended packages. But it in my experience it is incredibly common for shared compute environments to push lots of packages into the default library. :-(
---
[1] R-exts: “A package or ‘R’ can appear more than once in the ‘Depends’ field, for example to give upper and lower bounds on acceptable versions.”
I can’t agree with this: especially in PK/PD, R is only just now taking over from the previous (closed-source) systems. Momentum would keep R out, not in.
Oh, it’s very common unless you basically only use < 5 packages that are completely stable and no longer actively developed: packages break backwards compatibility all the time, in small and in big ways, and version pinning in R categorically does not work as well as in Python, despite all the issues with the latter. People joke about the complex packaging ecosystem in Python but at least there is such a thing. R has no equivalent. In Python, if you have a versioned lockfile, anybody can redeploy your code unless a system dependency broke. In R, even with an ‘renv’ lockfile, installing the correct packages version is a crapshoot, and will frequently fail. Don’t get me wrong, ‘renv’ has made things much better (and ‘rig’ and PPM also help in small but important ways). But it’s still dire. At work we are facing these issues every other week on some code base.
Indeed, that wouldn’t be a lot: the framing in the article is grossly misleading. The actual number of protesters this weekend was hundreds of thousands, and plausibly >1M (not “tens of thousands”), according to unanimous reporting in various German media and official sources (see e.g. https://www.tagesschau.de/inland/demos-gegen-rechts-bilanz-1...).
Because we hadn’t heard about this case before. — At all. If the vague information in this article is actually corroborated there’ll be an outcry alright.
Even if you build your scalable production environment from scratch with native object storage support (which is rare!), it’s eminently useful to be able to use coreutils to interact with said object storage for devops: nothing beats e.g. running grep on a list of log “files” in an S3 bucket in terms of convenience.
Just to clarify: no, I was referring to companies which are using products from the company behind cunoFS, and which share the actual code base of the functional interposition. My point is that while this technique is complex and brittle in general, this specific code-base is incredibly battle-tested and has proved itself even in fairly arcane configurations.
You’re definitely right about there being some amount of resistance, but functional interposition offers some compelling advantages over all alternative solutions in terms of ease of use and unparalleled performance.
I see the point in theory, but it works incredibly well in practice. The specific technology has been used in production by major companies for years. It even carefully works around buggy software that makes incorrect assumptions for undefined behaviour.
(COI disclaimer: I used to work on this product; but I no longer have any stakes in it, financial or otherwise. I do still use the product, because it’s vastly superior to the alternatives.)
The article is about POSIX compliance (or lack thereof) of storage systems.
And the article does not imply that “POSIX … sucks”. On the contrary: the answer to the rhetoric question in the title is obviously “no”.
> It's almost always a better idea … to write your own thin specialized glue layer between your application code and operating system APIs.
Oh, definitely. But writing good abstractions that work equally well with POSIX-compliant filesystems and with object storage is basically impossible without massive trade-offs. That’s the entire point of the product that’s advertised here: it provides a link between object storage and POSIX-compliant file access that manages these trade-offs extremely well, and it allows users to use their existing glue code for POSIX without having to deal with object storage altogether.
(COI disclaimer: I used to work on this product; but I no longer have any stakes in it, financial or otherwise.)
I’ve done this in a parser where I wanted to avoid storing line and column numbers instead of a single byte offset, but still wanted to provide the more user-friendly line and column numbers in the error message.
Where are you getting that from? To start with the pipe operator has been independently reinvented multiple times in R, and neither ‘magrittr’ nor ‘dplyr’ were the first to introduce the pipe operator into R. And (at least when I was exposed to it), the pipe operator had nothing whatsoever to do with Excel. Instead, it was an attempt to introduce the composability concepts from the UNIX shell and Haskell composition into R.
Anyway, the submission led to several very interesting technical comments so I don’t hate it.
Furthermore, if I’m reading the RTINGS.com source posted below correctly, modern LCDs have smaller latencies than a transatlantic ping. So not only is it not obvious, it’s no longer universally true.
Homebrew only ever writes into `/usr/local`, which was unused by macOS until very recently (though unfortunately a few third-party tools also use it and lead to very occasional conflicts with Homebrew). The original rationale for using `/usr/local` over `/opt` was that, at the time several widely-used software packages had hard-coded installation paths and would require extensive patching to work in other locations [1]. This hasn’t been true for a long time though. On systems with Apple M1, Homebrew finally made the move to `/opt/homebrew`.
> and did weird root shit
On the contrary, the philosophy of Homebrew is that package installations should never require superuser privileges. The only time Homebrew does “root shit” is when initially setting up `/usr/local` writability. Not weird at all. Though it does mean that Homebrew is effectively unusable (and a very bad idea!) on a multiuser system.
[1]: https://docs.brew.sh/FAQ#why-does-homebrew-prefer-i-install-...
Let me be frank: this sentence is nonsense technobabble.
> A segment of viral genome which encodes part of the body viral is excised and modified.
No, this does not happen (even ignoring that I don’t know what “body viral” means).
> Indeed if you review my words you'll note that I explicitly address the lack of a defect.
And yet you use the term “reconstruct”. — Reconstruct what?
> The mRNA vaccines we know today can certainly be viewed as a modification and reconstruction of viral genomic material.
This sentence becomes somewhat true if we use “information” instead of “material”. But that has nothing to do with gene therapy (as you seem to acknowledge yourself later!?).
> Gene editing or genome editing is […]. Note the distinct concept from gene therapy
I hold a PhD in genomics. You do not need to explain basic molecular biology to me.
> Even if only from the perspective of how information on Wikipedia can be construed by the layman - such as myself.
Then I humbly suggest that your understanding of the subject matter as a layman is — evidently — fragmentary, and insufficient for making up your own definitions and claiming them as being equally valid as those of experts.
I read this as a single definition rather than two distinct ones but, regardless of how you read this, mRNA vaccines do neither of these two things.
> it can be parsed as such that they are a genetic modification of a viral cell
No, it cannot be parsed like this. “Genetic modification” has a specific, technical meaning and mRNA vaccines do not perform it. Furthermore, I’m not even sure what you mean by “viral cell”, since viruses don’t form cells (they form virions). Do you mean a host cell infected by a virus? Because that doesn’t apply here: mRNA vaccines don’t specifically act on infected cells, they act on healthy cells.
> we can parse mRNA vaccines as “the treatment of disease by reconstructing genetic material”
Again, we cannot do this, because it’s flat out incorrect. What does “reconstructing genetic material” even mean in this context? There’s no defect, so there’s nothing to reconstruct, and the mRNA vaccine does not do so anyway since, again, it does not modify the host genome.
— In general I’ll note that several sentences in your answer simply make no biological sense and use made-up terms.
More importantly, though, all the paper shows is that under specific lab conditions (which are distinct from conditions in living cells!), viral RNA might integrate into the host genome (subject to the caveats about artefacts). In particular, it requires active retrotransposons [3], which are elements that are inactive in cells in the body. Unless a virus brings its own retrotransposon (and SARS-CoV-2 doesn’t), it can’t integrate into the host genome. But even if SARS-CoV-2 did, they mRNA vaccine definitely doesn’t include a retrotransposon.
[1] https://www.biorxiv.org/content/10.1101/2021.03.05.434119v1 [2] https://www.pnas.org/content/118/21/e2105968118 [3] https://twitter.com/GeneticsMike7/status/1404927629812240388
And the very next paragraph (in its heading, no less) makes it clear that RNA therapies and gene therapies are distinct, i.e. that RNA therapies are not (necessarily) gene therapies.
The Wikipedia article you cite doesn’t mention mRNA vaccines. The single mention of “mRNA payloads” does not necessarily refer to vaccines (there are other RNA therapies, and some of these might be gene therapies, although I don’t think they are) — but even if it did the sentence’s inclusion in this article is debatable at the very least.
Fundamentally, gene therapies always work by modifying the host genome. mRNA vaccines don’t do this (nor do any other RNA therapy approaches that I’m aware of).
That really isn’t true: medicine as a field does not have this assumption, and rare disease research is a thing (and it’s commonly acknowledged that “rare diseases”, taken together, aren’t rare at all). In fact, rare disease research is providing acute clinical diagnosis and sometimes cures for highly individual cases. Personalised medicine is probably the fastest growing subfield in medical research.
Your example of antidepressants underlines this: it’s in fact widely acknowledged that, while antidepressants on average only have a very mild effect, they can be very effective (or, conversely, not effective at all) for an individual, and they are actively prescribed with this in mind. Contrary to what you’ve claimed, no expert assumes that antidepressants have a uniform effect across subpopulations.
However, treating each disease as a completely individual case just isn’t feasible at scale, and is usually also not appropriate. So the first anamnesis will always focus on common diseases, and rightly so.