Programming Leftovers
Rlang ☛ Get Better: R for cell biologists
I’ve noticed that many R training courses will teach R – regardless of who is taking the course – and leave it to the participants to figure out how they can use R in their own discipline. Often, folks from my lab will take an R course and spend a half-day making some plots of the iris dataset or calculating miles per gallon using mtcars. Once they leave the room, it is hard for them to connect what they learned to a real-life use case in the lab. This is not a criticism of those courses, I have run a workshop like that, but the question is how can we empower cell biologists (or other wet lab scientists) to use R for their work?
This is my first attempt at solving this problem. The materials and brief descriptions are in this GitHub repo. Below is a full description. Skip to here for thoughts on how it went.
-
Yoshua Wuyts ☛ Musings on iterator trait names
At the end of my last post I mentioned that one of the main issues with the IntoIterator trait is that it’s kind of a pain to write. I wasn’t around when it was first introduced, but it’s not hard to tell that the original authors intended for Iterator to be the primary interface with IntoIterator being an additional convenience.
-
Sara Jakša ☛ IndieWeb Carnival January 2025: Internet Itself is a Biggest Friction
One topic would be how the software makes wrong assumptions about us. I have a non-ascii character in my last name, making my name appear incorrectly. I get send packages with the unintelligible last name. Sometimes the sites do not allow me to even enter it correctly. Not a situation one wants to be in when paying online. I would not even be the first person talking about it.
-
MaskRay ☛ Natural loops
A dominator tree can be used to compute natural loops.
-
University of Toronto ☛ Sometimes print-based debugging is your only choice
I'm a long time fan of print based debugging. Sometimes this is because print based debugging is easier if you only dip into a language every so often, but that points to a deeper issue, which is that almost every environment can print or log. Print or log based 'debugging' is an almost universal way to extract information from a system, and sometimes you have no other practical way to do that.
-
[Old] Siddhartha Kasivajhula ☛ #langs that Fit In Your Head
When a way of expressing a complex idea becomes small enough to fit in your head and doesn’t require special effort on your part to remember, it has, in a useful sense, become a language.
Take Racket’s module system, for example (which, just like those of other languages, allows you to group source code into units typically contained in files). By just writing “require” (like python’s import), we gain the ability to describe with great and effortless nuance in just what manner we mean to include those modules — whether to retain the names of the included definitions or change them in some particular way, or include or exclude particular definitions, and more. And these various ways are composable, so we could do, without any fuss: [...]
-
Noel Rappin ☛ Better Know A Ruby Thing: Singleton Classes
It is time to Better Know what is perhaps the Ruby-iest of Ruby things, a feature that didn’t even have an official name for several years, despite being critical to Ruby’s Object-Oriented semantics. (It only just now occurs to me that there was no official name in English, I wonder what the Japanese name for it was…).
Yes, it’s the singleton class.
Which isn’t really a singleton. Or really a class. It is the “grape-nuts cereal” of Ruby features.
The singleton class has been known by other unofficial names over the years. It’s been called a “metaclass” although technically it is not a metaclass, it has been called an “eigenclass”, a name I always favored because nobody knows what an eigenclass is, so whose to say whether it is one.
I went down a small rabbit hole on “eigenclass”. As far as I can tell, the term “eigenclass” is unique to Ruby, but I didn’t look that hard, maybe Matz picked it up from some obscure 60s language. I think it’s analogous to the math term “eigenvalue”, which Wikipedia says is a term in linear algebra. I may have known what that meant at some point, but I sure don’t know it any more. “Eigen” is a German word that is a cognate with the English word “own” (thanks Wikipedia) but not the sense of “own” that means “has possession of” – the sense that means “very own”, or “is characteristic of”, as in “my very own way of thinking” or “Chicago’s very own hot dog”. So an “eigenclass” is somehow a characteristic class.
Anyway, the lack of naming convention was super confusing, especially if you were trying to teach Ruby. Ruby 2.1 introduced a accessor method named
singleton_method
, and I think that was what settled the naming convention, to a general sigh of relief from the “people who write about Ruby” community.Singleton classes are often taught as just an odd bit of syntax. Well, as three odd bits of syntax: [...]
-
Education
-
EDRI ☛ FOSDEM 2025
FOSDEM is a free event for software developers to meet, share ideas and collaborate. Every year, thousands of developers of free and open source software from all over the world gather at the event in Brussels. You don't need to register. Just turn up and join in!
-
FSF ☛ Meet the FSF staff at FOSDEM 2025
Like every year, on February 1 and 2, 2025, thousands of developers and free software enthusiasts from all over the world will meet up at the annual FOSDEM conference. This year, the FSF will be well-represented and we hope to see you there!
-
[Repeat] Rlang ☛ From Novice to Contributor: Making and Supporting First-Time Contributions to FOSS
Contributing to open source can be very rewarding, but also incredibly intimidating. When we asked about first time contributions on the rOpenSci Slack, people recalled the challenges and mistakes they made, but mostly how much they learned from and enjoyed that experience.
In this community call moderated by Hugo Gruson, our speaker, Yaoxiang Li will discus the importance of tests with respect to first-time contributions, and share best practices and advanced techniques for supercharging R package quality with testthat, Pascal Burkhard will discuss is the basic git skills that can help to make a first contribution, and Sunny Tseng will share practical advice for making first contributions, common challenges and how to overcome them.
This event is supported by NumFOCUS Small Development Grants.
-