It’s been awhile since I’ve setup my last work system a year back, so this past month I’ve gone through the usual pains of preparing a new machine. One of those pains was realizing some network segments at one of the libraries I am a regular at have port 22 blocked at an internal boundary. Without falling into discussions about how useful such a thing is from a defensive security point of view, I…
This is the first in a rapid-fire series of howto posts regarding MacOS development environments and common blockers people face when setting them up. It should also serve as your daily reminder to Read the Freaking Manual|Logs1! As for Ruby, I needed to set up Ruby 3.3.1 for a new customer engagement. As usual, I started setting it up via asdf-vm; see…
The topic of vector spaces and subspaces came up during a conversation with a dear friend and I could not resist reminiscing the past. They were studying for an upcoming test and I wanted to try and reinforce their intuition in some areas through a couple of examples and counter-examples.
Semgrep’s Join Mode1 is a seldom discussed yet interesting experimental feature of the Semgrep OSS SAST engine which can be used to achieve rudimentary taint interprocedural and interfile analyses. In this snippet I document how to combine one search mode and two join mode rules in order to identify intrafile, intraprocedural, interfile and interprocedural tainted sinks.
In the best spirit of over-engineering for fun, this minimalistic post documents the way my snippets land over at https://github.com/jdsalaro/jdsalaro.com/tree/main/snippet.
Bastante se ha escrito sobre la experiencia y tribulaciones del migrante, sin embargo poco se habla sobre aquello que le permite mantenerse incólume y continuar su curso. Éste poema es un recordatorio precisamente de aquellas voces lejanas, voces que actuan como frazadas en las tormentas de la vida lejos de casa.
Almost everyone I know who uses a computer, for fun or work, is overtaken by a slight nervousness when installing a new library, package, service or application on their operating system. The horror stories underpinning these reservations vary slightly between Linux, Unix, Windows and MacOS users, but everyone knows, regardless of preferred ecosystem, that installing software can do a number on…
The newly discovered backdoor1 in the XZ Utils package2 affecting numerous Linux distributions3 and assigned CVE-2024-30944 is being dismissed by some members of the technology and security communities as yet another supply chain attack; relevant only because of how blatant it was and that it affected the Open Source ecosystem but in essence nothing out of the ordinary. Regardless of whether this…
These are resources I enjoy and sporadically review to get an idea for what’s going on out there. I don’t watch cable news and consume the content listed here and elsewhere slowly and sporadically.
People, shout out to some of my friends and collegues, like to configure their development environments in a myriad of ways. Even setting one’s Git author identity, a seemingly boring and mundane task, is sometimes approached in the most creative ways. This, of course, includes not only configuring git, the tool itself, but also any relevant repositories as well as the platforms where those…
While on a military campaign which started in 170 and ended in 180, Marcus Aurelius1 wrote his Meditations in Greek for his own guidance and self-development. The original title of the work, if it had one, is unknown. ‘Meditations’ – as well as other titles including ‘To Himself’ – were adopted later. He had a logical mind, and his notes were representative of Stoic philosophy and spirituality.
Read more on WikiquoteThis poem by Ryōkan was quoted by Alan Watts1 in one of his lectures2; this was what originally motivated me to look for it in full and reproduce it here. The source of the painting is not related to Ryōkan3.
As mentioned in /howto/fix-pipenv-asdf-runtimeerror-no-dist-info-has-pip, I was initially confronted with issue some weeks ago but could attribute and fix the problem to asdf misbehaving. The issue, however, resurfaced and that was no longer the case. To my surprise, asdf seemed to be behaving as expected and was therefore of no relevance to the problem I was observing:If you are experiencing this…
ℹ️ Several folks who are not using asdf-vm but are facing similar issues have asked me for advice, I’ve detailed how you can troubleshoot and fix this issue on /howto/fix-pipenv-runtimeerror-no-dist-info-has-pip.Having said that, I’ve mentioned in several occasions that pipenv is my virtual environment manager of choice in Python projects and that I use it in tandem with asdf-vm1, which allows me…
En la mitología griega Calipso (Καλυψώ: «la que oculta») era una ninfa que vivía en la isla de Ogigia, donde, según la Odisea de Homero, detuvo a Odiseo durante siete años 2.
We waited until the blast had passed, walked out of the shelter and then it was extremely solemn. We knew the world would not be the same. A few people laughed; a few people cried. Most people were silent. I remembered the line from the Hindu scripture, the Bhagavad Gita; Vishnu is trying to persuade the prince that he should do his duty, and to impress him, takes on his multiarmed form and says,…
On an uneventful Tuesday afternoon I was, as usual, enjoying my lunch while mindlessly scrolling HackerNews and, also as usual, a post caught my attention which hit home1
Although it might be a cliché by now, I’ve always been quite fond of ukiyo-e, the Japanese art of woodblock printing1, and of course of Hokusai’s work. As for many, my earliest exposure to this type of art was Hokusai’s The Great Wave off Kanagawa 2 and so it’s here for posterity.
While using git it’s common to use object identifiers to operate on the underlying objects: checking branches out, reverting a commit, resetting to a given point in the history, and more.
icrosoft has been planning a design revamp when it comes to the typography of their whole Office product line; and probably beyond that. They have worked on selecting their new default font for quite a bit1. The finalists among which the successor to the familiar Calibri typeface2 was to be chosen were long known: Bierstadt, Grandview, Seaford, Skeena, and Tenorite. The decision, however, hadn’t…
This is a topic I’ve wanted to write about for a while; and one for which I had way too many references stored. Until now, I hadn’t found a way to jump-start my internal monologue on the matter and spur the necessary motivation to put my thoughts to paper. That, however, changed last week when I engaged in a couple of conversations online on HackerNews 1 and Tildes2 about the openness and…
I’ve never been a fan of Re-StructuredText, but most importantly I’m new to MySt, which leads to a lot of googling and painstaking trial-and-error while writing. Although my preferred references are the Jupyter Book MyST Cheatsheet, the Sphinx Book Theme Documentation, and the MyST Parser Reference, they are way too extensive, sometimes incorrect, and I don’t really use every directive or variant…
I often find myself needing to terminate processes containing certain string literals or whose call matches a given regular expression. For that reason I probably re-write and tweak this one-liner several times a month; which is why I’m putting it out there.
Last Sunday I decided to try and understand the Sphinx codebase better after playing around with Jupyter Book and experiencing issue#1414. After falling down the codebase review rabbit hole I felt like fixing the bug itself was worthwhile. Eventually, fixing the issue proved to be easier than understanding where and what to fix or how to get the GitHub actions maze of checks to properly pass.
In order to come up with a reliable and standardized way of referring to document sections and document it in /cheatsheet/sphinx-myst-markdown, I went down a pretty deep rabbit hole of Sphinx label manipulations.
It seems like there’s never enough time to be really passionate about aesthetics, so that’s why when the opportunity presents itself I just roll with it and indulge that inclination. This post is the result of one such opportunity.Seeing as many of us spend a considerable amount of time in front of some sort of computing device, which is specially true for those of us who program, I wanted to put…
I often make screen captures of terminal outputs while documenting my work or helping colleagues and was always bothered when its contents were too close to the left border.Adding padding to the gnome terminal on Ubuntu, and likely any distribution using Gnome, is trivial, as it suffices to edit ~/.config/gtk-3.0/gtk.css.
Things tend to get repetitive with git after you start consistently using it. Of course, it’s still an irreplaceable tool, but that doesn’t mean we cannot try to abide by DVORAK principles and minimize the distance our fingers travel on the keyboard.As past and current colleagues can attest, I’m a serial keyboard customizer and shortcut afficionado, so my suggestion to give git console aliases a…
Git plays a crucial role in the software development industry and should therefore be part of every developer’s toolkit. Both experienced and beginner developers can increase their productivity by leveraging a code versioning system as powerful as git. Unfortunately, introductory materials are often either too shallow, making readers feel like they only scratched the surface, or too long-winded,…
Git hooks are scripts which can be executed after an action is performed, the options are: applypatch-msg, commit-msg, post-update, pre-applypatch, pre-commit, prepare-commit-msg, pre-push, pre-rebase, update.
This is compilation of useful git commands, tips and tricks I created for myself since I kept forgetting some commands related to configuring, searching and managing git repositories. The format is simple, just a list with short descriptions for some common, and other less common, commands which I often find myself looking up online.
In his thirteenth letter1, “On groundless fears”, Seneca the Younger2 writes to Lucilius about, predictably, human fear and how we, often without sufficient grounds, are affraid of that which is yet to come.
While experiencing traumatic circumstances, it is not uncommon to ask oneself whether the feeling of unease, desperation and sorrow will eventually pass. As impermanence1 would have it, suffering passes eventually in order to give room to other, not necessarily pleasant, feelings and experiences. Scarbleed is a poem about the aftermath of intense pain. When sorrow has passed and wounds have…
In the third volume, chapter XXIII §1, of his discourses compiled by Arrian1, Epictetus2 gives his advice “to those who read and discuss for the purpose of display”.