Contemplating going back to Ubuntu LTS from opensuse tumbleweed: with Nix on Ubuntu LTS it would easy to have a stable base with bleeding edge dev envs
An unexpected benefit from fixing #rstats packages for #nix is that you discover some super useful ones. Like {opencv} for face detection and other image analysis tasks, {unrtf} to process rich text files {asciicast} to create animated code displays, and the indispensable {switchboard} with a Pikachu-shaped progress bar.
Hey, #rstats packaging and CRAN gurus out there! If a package needs another package for compilation only (not for its functionality), does that other package have to be in the DESCRIPTION? Where? Imports? Suggests? Nowhere?
It seems like Nature does some suboptimal engineering. Every cell in your body contains the complete blueprint for the whole organism and instructions for assembling every possible protein. But only a small part of the DNA is ever used in somatic cells. The rest is inactive. Why carry this baggage?
@BartoszMilewski
Contrary to common belief, nature does not strive for perfection. Our bodies are full of inefficiencies and ugly hacks, but they work, and that's good enough. Having a copy of the whole genome in each cell allows transdifferentiation to other cell types (usually with an intermediate dedifferentiation step to a stem cell), which can improve fault tolerance [also known as healing :) ]
I want to start a R project and I want to keep everything about this project static and frozen in time. I know nix-shell is a thing, but:
is there a better/smoother approach?
is it possible to also have a service/daemon running in that nix-shell ? The editor I use (Rstudio) has desktop and server versions, and I would rather have the server version running on a beefy remote machine and I ssh into it.
@Mehrad
{rix} will just help you generate the Nix expression you need for that fully reproducible environment. It will not be needed later and won't be included in the environment unless you declare it. You can give it a try, what can you lose? @RossGayler@brodriguesco
I am once again wondering if there is an equivalent to the great {targets} #RStats package by @landau for #Python. Not just a build automation tool, but one that makes you write pure functions, making the pipeline a composition of pure functions. Is there something like that?
Would you agree with the following statement (why, why not): "even though #Python is multi-paradigm, the prevailing paradigm is object oriented programming"
@brodriguesco
Yes, 100%. The more experienced you get with #rstats, the more you adopt a functional style. It's just the right thing to do in that language.
In #Haskell, you do that from the beginning. There's just no other way. You can write imperatively, but it's really a pain.
#Python is different. You really have to want to write in a functional style, and even then, it doesn't make it easy for you.
So from the functional perspective: Haskell > R > Python
@brodriguesco
I've been eyeing {targets} for a while. How does it work together with #nix, or other workflow managers, like #nextflow? Does it add useful functionality on top of those? #RStats
Some people argue that renaming Twitter to X was the worst marketing move of history, but these people don't know that Speculoos are now called Biscoff
I was discussing with a colleague the other day that perhaps the best and indisputable random generator seed is the author' s own name.
The issue is R's set.seed() only accepts integer as random seed value. So I played around a little and finally managed to come up with a simple one-liner solution all using base R to use my own name as random seed.
I wrote a short blog post about it to explain my journey: