Programming Leftovers
-
Chris ☛ Common Mistakes in Modularisation
This article11 Alternate title: The Software Design Tree and Program Families. leads to two rather simple ideas.
• Design decisions have consequences on other design decisions. This is an important aspect of how and when to decide things.
• Modules can be used to hide design decisions so they no longer affect subsequent decisions.
I will try to explain how this comes about, some consequences, and some mistakes to watch out for. But first, we need to visualise the effects design decisions have on other decisions.
-
Nicholas Tietz-Sokolsky ☛ "Help, I see a problem and no one is prioritizing it!"
In my role as a principal engineer, identifying problems to solve is part of it. A bigger part is identifying which problems are not important to solve, which fire we can let burn a little longer while we address the main dumpster fire3.
So if you want to move beyond Senior Engineer and into a higher level, or a different role entirely like product management or program management, this skill is essential. The soft skills you use for it are also critical. Learning how to put people at ease enough to tell you information, or learning how to suss it out without biasing them toward your existing opinion, is critical to the consensus building that you'll need to do in leadership roles.
-
University of Toronto ☛ How to make your GNU Emacs commands 'relevant' for M-X
If you're someone like me who has written some Lisp commands to customize your experience in a major mode like MH-E, you might wonder how you mark your personal Lisp commands as 'specially designed' for the relevant major mode.
-
Matthew Rocklin ☛ Write Dumb Code — Matthew Rocklin
However after maintaining code a bit more I now think somewhat differently.
1. We should not seek to build software. Software is the currency that we pay to solve problems, which is our actual goal. We should endeavor to build as little software as possible to solve our problems.
2. We should use technologies that are as simple as possible, so that as many people as possible can use and extend them without needing to understand our advanced techniques. We should use advanced techniques only when we are not smart enough to figure out how to use more common techniques.
Neither of these points are novel. Most people I meet agree with them to some extent, but somehow we forget them when we go to contribute to a new project. The instinct to contribute by building and to demonstrate sophistication often take over.
-
Rlang ☛ Unveiling the Magic of dcast Function in R’s data.table Package
The dcast function in the data.table package is a handy tool for reshaping data from long to wide format in R.
-
Rlang ☛ Answering some ‘Forecasting with GAMs in R’ questions
Last week I had the pleasure of running the Forecasting with generalised additive models (GAMS) in R workshop organised by
Forecasting for Social Good.
-
Rlang ☛ Du Bois Visualization Challenge 04
Recreating the the data visualization of W.E.B Du Bois from the 1900 Paris Exposition using modern tools. See the challenge presentation.
-
Python
-
The New Stack ☛ How to Generate a Random Number in Python
Random numbers are a tricky thing, especially when what you need is true randomness.
-
FOSSLinux ☛ 10 Essential Python Run Command Usages You Need to Know
This article provides a curated list of 10 essential Python run command examples, designed to improve your coding efficiency. From executing scripts to automating tasks, these examples cover a range of scenarios to help you master command-line operations in Python, making your programming workflow more productive.
-
-
Rust
-
Rust Blog ☛ The Rust Programming Language Blog: Updated baseline standards for backdoored Windows targets
The minimum requirements for Tier 1 toolchains targeting backdoored Windows will increase with the 1.78 release (scheduled for May 02, 2024). Windows 10 will now be the minimum supported version for the
*-pc-windows-*
targets. These requirements apply both to the Rust toolchain itself and to binaries produced by Rust.Two new targets have been added with backdoored Windows 7 as their baseline:
x86_64-win7-windows-msvc
andi686-win7-windows-msvc
. They are starting as Tier 3 targets, meaning that the Rust codebase has support for them but we don't build or test them automatically. Once these targets reach Tier 2 status, they will be available to use via rustup.
-
-
Standards/Consortia
-
Cory Dransfeldt ☛ Give me a web feed or an API for everything
If I'm using your service, if I'm paying for your service, I really need it to have an API or a web feed.
-
[Old] Ruhr University Bochum ☛ On Web-Security and -Insecurity: Insecure Features in PDFs
In 2019, we published attacks on PDF Signatures and PDF Encryption. During our research and studying the related work, we discovered a lot of blog posts, talks, and papers focusing on malicious PDFs causing some damage. However, there was no systematic analysis of all possible dangerous features supported by PDFs, but only isolated exploits and attack concepts.
We decided to fill this gap and systematize the possibilities to use legitimate PDF features and do bad stuff. We define four attack categories: Denial of Service, Information Disclosure, Data Manipulation, and Code Execution.
Our evaluation reveals 26 of 28 popular PDF processing applications are vulnerable to at least one attack. You can download all malicious PDFs here. You can also find more technical details in our NDSS'21 paper.
This is a joined work of Jens Müller, Dominik Noss, Christian Mainka, Vladislav Mladenov, and Jörg Schwenk.
-
-
Debian Family
-
Sergio Durigan Junior: Planning to orphan Pagure on Debian
I have been thinking more and more about orphaning the Pagure Debian package. I don’t have the time to maintain it properly anymore, and I have also lost interest in doing so.
-