Matthew DiLoreto

A place to keep track of some of my things.

  • The Stages of Fatherly Love

    I’m getting married this year so I feel it’s the right time to contemplate fatherhood. What makes a good father? What did my father do that I want to emulate? What kinds of things can I do? Fatherly love is a complicated thing, but in my mind it seems much less about affection, and much more about teaching; pushing one’s children beyond the familiar and comfortable, praising their efforts. Fatherly love develops over time as the child enters new stages of life.

    Read more…
  • Finding my Career in Computer Science; Busy Beavers and The Hacker Jargon Lexicon

    When you’re a decently smart and motivated kid in high school your opportunities are infinite. That’s what people say to you anyway. You can become anything you want, as long as it makes good money, and it matches your strengths and weaknesses (fishes can’t climb trees and all that), and the colleges you can get into have a good program for it, and you can afford to go to that college, and you don’t quit because that would be a waste, and if you don’t find something you’re kind of screwed, and if you do find something but you end up hating it you’re also kind of screwed, so just make the right choice in high school and you’ll be all set!

    Read more…
  • Making the Yasnippet *​new-snippet​* Buffer More Helpful

    Yasnippets are a powerful text templating system for emacs, with a convenient interface based on snippets. The templating language itself is… fine, but it can be difficult to remember exactly what the syntax is, and yasnippet doesn’t help you out that much when you run yas-new-snippet: ,# -*- mode: snippet -*- ,# name: ,# key: ,# -- That’s all you’re presented with. You have to remember the difference between name and key (key is the abbreviation you type before invoking yas-expand, name is just a human-readable description of the snippet), and then you type the snippet to be inserted below.

    Read more…
  • Literate Import

    The following is a literate program written in emacs-lisp. Rationale I like to write literate programs using org-babel-tangle. It’s an excellent workflow for literate programming which allows me to write an entire project in a single file, then tangle all the source blocks to their own files in the project. Sometimes though I want to incorporate some external files into the project, and this leads to a problem. The literate programming flow with org-babel is always:

    Read more…
  • Curate a Personal Programming Philosophy and Focus on Role Models

    Your Philosophy It’s imperative to live by a set of philosophies. It doesn’t much matter which set, as long as it is not the empty set. This applies to all aspects of life, and software development is no exception. Most people live by intrinsic philosophies, sometimes inconsistent, but you will be better served by your philosophies if you codify them. Spell them out deliberately and evolve them according to your experience and others'.

    Read more…
  • E.O. Wilson's Consilience; Religion in Society

    The fatal flaw in deism is thus not rational at all, but emotional. Pure reason is unappealing because it is bloodless. Ceremonies stripped of sacred mystery lose their emotional force, because celebrants need to defer to a higher power in order to consummate their instinct for tribal loyalty. In times of danger and tragedy especially, unreasoning ceremony is everything. There is no substitute for surrender to an infallible and benevolent being, the commitment called salvation.

    Read more…
  • Bees and Spiders; Software Developer Archetypes

    The spiders and bees going about their individual tasks, putting the world in order as best they can Bees Automatons Pluggable Super-organism more capable than the parts Cannot survive on their own I could have chosen ants for this group, but I feel they have a slightly worse cultural bias (no one likes ants in their house for example), whereas bees have earned more respect, from honey-production to essential pollination.

    Read more…
  • Thin Client

    After working with React applications for almost 5 years, I have a certain morbid attraction to the idea that React - along with all other SPA libraries, development, and progress - is unnecessary. Obviously React exists in a very complex ecosystem. To write the React applications the right way requires: javascript transpilers/bundlers hundreds of npm libraries, (potentially) SSR, SSG frameworks and tools I can’t help but feel that the vast majority of web apps that use React do not actually need it.

    Read more…
  • Mondegreen Generator

    Word Salad Rationale Back in early 2019, when the “gibberish challenge” was bubbling up through the nascent “TikTok” milieu, I was compelled to discover an algorithm which, given arbitrary English input, could produce a “gibberish” phrase appropriate for the challenge. I searched the web for such an algorithm, since surely someone had to have done this previously, but I didn’t find any results on GitHub, nor any discussions elsewhere.

    Read more…
  • Meditations: Selected Quotations

    While reading Marcus Aurelius’s Meditations, I was struck by the consistent focus on a few central themes. It reminded me of the propaganda technique, “What I say three times is true”. Marcus repeated the same ideas over and over, drilling into himself the mindset he was trying to cultivate. It’s a glimpse not only into the life of a great man, but a personal journey into the person he strove to be.

    Read more…