Programming Leftovers
-
Multilingual Publishing
As global movements, Open Source and Open Science face language-based exclusion as most resources are in English. This affects scientists and research software engineers working in R, particularly those who don’t have English as their first language.
rOpenSci multilingual efforts aim to lower access barriers, democratize quality resources, and increase the possibilities of contributing to open software and science. We successfully piloted our Spanish-language peer review and the localization to Spanish of our comprehensive guide to software development, with Portuguese translation underway.
-
Let's Talk About Open Source
Yesterday we announced that Codecov is now “Open Source”, and we messed up in two ways:
We wrongly used the term Open Source; while unintentional, we should have known better
We let our emotions get the best of trying to explain our position, rather than stepping back and addressing the problem
I want to talk about both of these, how we made the mistake, why it’s important to us, and what we plan to do about this to improve the conversation in the future.
-
Throwing money at point A to get to D
Sadly, it doesn’t work like that. You cannot solve the problem with the same mentality that created it. Sometimes money is not the solution. Sometimes bringing in new people is not the solution. Sometimes, we have to start from the within and be honest about why one environment stayed at point A while others went to point C.
-
Drawing a tubular path with Julia
I implemented the framed closed curves exposed in this blog post, in Julia and R. In fact it is useless with R, because the rgl function cylinder3d is faster and better.
Here is the Julia implementation: [...]
-
An Introduction to Rust Generics
Rust’s use of generics enables developers to write flexible and reusable code. Generics allow functions, structs, and enums to be defined without specifying the type of data they will operate on. This means that a single implementation can work with various types of data, making the code more versatile. Additionally, generics provide better type safety and reduce the likelihood of errors.xs
-
Focus On What Could Go Right (Not Wrong)
In startups, focus on what could go right instead of wrong.
Startups are call options in more ways than one. The extreme downside is capped at zero — the startup fails. You’ve lost time and effort, but the company wasn’t worth much (if anything) in the nascent stages. The fewer users you have, the fewer that will remember the product even existed.
-
Behind "Hello World" on Linux
But behind the scenes, there’s a lot more going on. I’ll describe some of what happens, and (much much more importantly!) explain some tools you can use to see what’s going on behind the scenes yourself. We’ll use readelf, strace, ldd, debugfs, /proc, ltrace, dd, and stat. I won’t talk about the Python-specific parts at all – just what happens when you run any dynamically linked executable.
-
Security Developer-in-Residence – Weekly Report #6
I shared this newly published database with the OpenSSF Vulnerability Disclosures WG and received lots of feedback and tips for managing an OSV advisory database. Madison Oliver of GitHub Security gave advice on being a CNA and guidance for hosting first-party and third-party advisories as a CNA. Also received helpful feedback from Oliver Chang and Andrew Pollock. Thanks everyone!
Being a participant in the distributed vulnerability database for OSV requires choosing an ID prefix for advisories. I chose PSF as the prefix and the prefix was accepted into the OSV schema specification. After the prefix was selected I configured automation in the database to automatically assign IDs for the PSF prefix.