diary 153 · 47340w
home twitter letterboxd spotify instagram pinterest medium wikiart
lr0 / diary
153 entries across 5 years · 47340 words written · ~309 avg per entry · page 2/6
wednesday, 21 january #123

12:22 Scala did it for us

One of the oldest jokes in compi-sci/engineering communities is Bjarne Stroustrup's "I Did It For You All…", which basically states that, Stroustrup made C++ the terrible language it is, for the sake that engineers can make money out of using it (I'm unsure what's this strategy is called, but I saw sometimes people picking very obscure tech at work that they're the only ones familiar with it, so they can secure job security):

Stroustrup: Remember the length of the average-sized ‘C’ project? About 6 months. Not nearly long enough for a guy with a wife and kids to earn enough to have a decent standard of living. Take the same project, design it in C++ and what do you get? I’ll tell you. One to two years. Isn’t that great? All that job security, just through one mistake of judgment. And another thing. The universities haven’t been teaching ‘C’ for such a long time, there’s now a shortage of decent ‘C’ programmers. Especially those who know anything about Unix systems programming. How many guys would know what to do with ‘malloc’, when they’ve used ‘new’ all these years - and never bothered to check the return code. In fact, most C++ programmers throw away their return codes. Whatever happened to good ol' ‘-1’? At least you knew you had an error, without bogging the thing down in all that ‘throw’ ‘catch’ ‘try’ stuff..

Interviewer: But, surely, inheritance does save a lot of time?

Stroustrup: Does it? Have you ever noticed the difference between a ‘C’ project plan, and a C++ project plan? The planning stage for a C++ project is three times as long. Precisely to make sure that everything which should be inherited is, and what shouldn’t isn’t. Then, they still get it wrong.. Whoever heard of memory leaks in a ‘C’ program? Now finding them is a major industry. Most companies give up, and send the product out, knowing it leaks like a sieve, simply to avoid the expense of tracking them all down..

Interviewer: There are tools…..

Stroustrup: Most of which were written in C++.

Interviewer: If we publish this, you’ll probably get lynched, you do realise that?

Stroustrup: I doubt it. As I said, C++ is way past its peak now, and no company in its right mind would start a C++ project without a pilot trial. That should convince them that it’s the road to disaster. If not, they deserve all they get.. You know, I tried to convince Dennis Ritchie to rewrite Unix in C++..

Interviewer: Oh my God. What did he say?

Stroustrup: Well, luckily, he has a good sense of humor. I think both he and Brian figured out what I was doing, in the early days, but never let on. He said he’d help me write a C++ version of DOS, if I was interested..

Interviewer: Were you?

Stroustrup: Actually, I did write DOS in C++, I’ll give you a demo when we’re through. I have it running on a Sparc 20 in the computer room. Goes like a rocket on 4 CPU’s, and only takes up 70 megs of disk..

Interviewer: What’s it like on a PC?

Stroustrup: Now you’re kidding. Haven’t you ever seen Windows ‘95? I think of that as my biggest success. Nearly blew the game before I was ready, though..

Interviewer: You know, that idea of a Unix++ has really got me thinking. Somewhere out there, there’s a guy going to try it..

Stroustrup: Not after they read this interview..

Interviewer: I’m sorry, but I don’t see us being able to publish any of this..

Stroustrup: But it’s the story of the century. I only want to be remembered by my fellow programmers, for what I’ve done for them. You know how much a C++ guy can get these days?

Interviewer: Last I heard, a really top guy is worth $70 - $80 an hour..

Stroustrup: See? And I bet he earns it. Keeping track of all the gotchas I put into C++ is no easy job. And, as I said before, every C++ programmer feels bound by some mystic promise to use every damn element of the language on every project. Actually, that really annoys me sometimes, eve. I almost like the language after all this time..

I'm starting to feel that the Scala authors did the same thing. They did it for us all. #Scala #Programming

12:27 Languages and IDEs

If a programming language makes you feeling like it's necessary to use an IDE, then it's probably poorly designed, common examples are C#, Java, Scala. It's a lot of hassle to add a "dependency" for other project, for example, without doing a right click magic. In a good designed modular language, it's usually only an import statement #Programming

tuesday, 20 january #122

08:28

And then dying will be the end of something dazzling: dying will be one of the most important acts in my life. I’m afraid of dying: I don’t know what nebulae and milky ways await me ~Clarice Lispector

21:02 About affairs

People who have affairs always speak as if they are the first humans to discover desire. I've mistaken novelty for transcendence a lot of time as a kid, but I'm surprised adults do it more often as if the shelves are not already heavy with the corpses of people who thought they were special. There's no criminal psychology to answer for affairs (i.e. why people do it?) but literature (as well as gossip, religion, court records and living memories, but I'm talking literature for this) answered it unironically many times. One of the greatest answers IMHO is Anna Karenina, it's rarely discussed in the context of exceptionalism, which is what I would like to do.

Exceptionalism is the belief that rules are for other people. That patterns exist until I arrive. IMO affairs are not driven by desire which is (IMHO) common and boring. What drives affairs (I'm tired of implying that this is my humble opinion, so take it as an implicit from now on) is the conviction that consequences are negotiable if your interior life feels sufficiently profound.

Anna Karenina is not a story about love but about a woman who mistakes intensity for transcendence and sincerity for immunity. Anna does not think she is immoral she thinks she is honest. She thinks her suffering sanctifies her choices and that because her feelings are real, the structure of the world will rearrange itself around them. I used to think something similar, until I didn't (plot twist; the world does not).

Tolstoy was so damn merciless because reality is indeed merciless. Anna stepped outside the social order not quietly but so loudly, it acknowledge her pain as justification. The punishment is not divine or some sort of magic it's literally structural, just like mechanics (I need to assure you society does have dynamics, but maybe I can elaborate on that somewhere else. Or never.)

She lost anything socially speaking. Doors close. Rooms go quiet. People do not scream at her anymore. They simply stop seeing her as human. Vronsky does not turn evil but he turns finite. His ambition and pride assert themselves because love does not abolish psychology and for Anna’s identity, it collapses inward. People do not scream at her anymore because screaming still acknowledges a human subject. They simply stop recognizing her as one.

This is what structural punishment looks like, aka ontological downgrade. Anna becomes an inconvenience in the social grammar. A disruption. Something that makes others uncomfortable by existing. And discomfort is always managed by distance.

Vronsky does not become a villain (my guess is that it's a fantasy belongs to sentimental readers). However, like I mentioned, he becomes something much worse, finite. Psychology (or mind, for the lack of a better word) does not evaporate in the presence of passion. It waits then it collects its debt.

Now let's restate the obvious; the affair does not free her from social structure. It expels her from it. And outside structure there is no meaning, only exposure. Every glance becomes a trial and every silence becomes a verdict. Without shared norms, there is no shared reality.

This is why exceptionalism always fails. Not because society is vindictive, but because systems do not tolerate permanent exceptions. Anna believes her feelings should count as a new law and sadly laws are not persuaded by sincerity.

People love to say she was punished for loving too deeply. That is a so biased analysis. She was punished for believing depth conferred exemption and that her interior life outranked external order. For believing that because something felt necessary, it therefore was.

It's untrue that love destroyed her. Love survives all kinds of bad decisions. However, she mistook love for sovereignty. And, again, sovereignty claimed without structure always ends the same way: isolation, paranoia, collapse.

Now imagine the counterfactual people love to hide behind. What if she cheats and nothing collapses? What if the affair is civilized and almost elegant?

Structure is not only social but also epistemic. The moment one person knows, the system is already unstable, not emotionally but ontologically (very smart face emoji), knowledge is asymmetrical FYI. And asymmetry is unstable.

The one who knows becomes a structural weight by existing (even if no acts). They carry a truth that cannot circulate and truth that cannot circulate does not disappear but curdles. And the relationship no longer has a shared map of reality.

The cheated-on partner becomes something new that destabilizes systems simply by remembering. They do not need to accuse but you can say that just their knowledge changes the gravitational field for others.

Meanwhile, the cheater must now manage two realities; public continuity and the private deviation. This requires constant cognitive partitioning. A divided self is not tragic yet, but it is expensive and life becomes logistical, memory becomes selective, language bcomes strategic. and all of that over time erodes coherence aka entropy.

But actually let's suppose none of this erupts. Suppose everyone behaves impeccably. No confessions. No slips. Still, the structure has already changed.

The cheated-on partner now lives in a world where their perception is unreliable by design. They are expected to trust a narrative that excludes crucial data. Over time, this produces one of two outcomes: hypervigilance or dissociation. Either the world becomes a crime scene, or it becomes numb, both states love can not survive them.

People think tragedy requires exposure. It does not. Exposure is usually just the visible ending. The real punishment happens earlier, in structure. In the fact that once one person knows, the relationship is no longer a shared reality but a managed illusion.

This is why the fantasy of “no one gets hurt” is incoherent (I already proven that it is not possible). Hurt is not the metric, integrity is. And integrity, once breached, does not announce its departure. It simply stops doing its job.

Later, if you want structure, it looks like this:

  • First, asymmetry of knowledge.
  • Then, asymmetry of power.
  • Then, asymmetry of reality.
  • Then, slow institutional collapse of trust.
  • Then, either revelation or emotional extinction.

People expect a sudden strike, instead, things slowly wear away, and when that happens, no one feels guilty.

monday, 19 january #121

00:35 Flowers

Most people do not know how to gift flowers. Fewer still know how to receive them. Men usually perceive it a something that women like. And most women don't like flowers actually or have a reason for loving them but they blindly follow mimetic activity of how romance was introduced to them and how they define themselves as receivers of it. I love flowers, and to me, to give a flower is to acknowledge finitude. I believe that roses, or any kind of plant, is a lovely symbol of life, and maybe of death too. It lives, it decays, and in that decay it shows off what all presence is, something already in the process of leaving.

When I give someone a flower, I offer my presence in the same way; alive, fragile, and implicitly dying. Not as tragedy or sadness, but as truth. Life happens precisely because it does not last.

And life happens. Sometimes the symbol dies, sometimes the connection renews itself and another living thing appears between us (let that be you getting something else alive from me, like another rose), and this state of continuous maintainability of a relationship between two, is symbolized, to me, in the process of gifting, taking care, and reestablishing something that is alive.

To gift a flower, to care for it, to replace it after death and wither is how I run feelings towards anyone, or anything at all, sustained attention to something alive. #Modus Vivendi

  • [2026-02-13 Fri 01:20] I just noticed a Byron poem that relates to my notion of connection:

    So, we'll go no more a roving So late into the night, Though the heart be still as loving, And the moon be still as bright.

    For the sword outwears the sheath, And the soul wears out the breast, And the heart must pause to breathe, And love itself have rest.

    Though the night was made for loving, And the day returns too soon, Yet we'll go no more a roving By the light of the moon.

11:20 Why can't I Some() directly?

A question that I had while reading Scala specs, is that why do we need Some at all? When we return an option of T, we are usually returning Some(T) or Nothing. But why not T or Nothing directly? I didn't see anything that makes Some make sense to me so far, other than it add an absence notation context (this is to say, that Some(T) means T in the context of the possibility of absence of T).

The reason that I found so far is that there is no runtime discriminator, which is basically a JVM limitation;

A runtime discriminator is data that tells you which alternative you have. Option looks like this:

sealed trait Option[+A]
case class Some[A](value: A) extends Option[A]
case object None extends Option[Nothing]

At runtime, an Option[A] value is either:

  • an instance of Some, or
  • the singleton object None

That class identity is the discriminator.

Pattern matching works because the JVM can ask:

isInstanceOf[Some[_]] ?
isInstanceOf[None.type] ?

Now remove Some and None

def findT(id: Int): T | Nothing

The issue here is that there is no value of type Nothing. It's compile-time only. I would even imagine that the type erasure in the JVM makes all the following equivalent:

User
User | Nothing
Option[User]

#Scala

sunday, 18 january #120

07:10 Rules for a happy life from Aristotle

Reading Aristotle’s 10 Rules for a Happy Life - The Atlantic (link). Why there's always that strange tendency for journalist to a reference study from a psychology journal or a a science journal after everything? I'm not expecting Aristotle's views to supported by the APA, moreover, most of the links are really irrelevant, it's almost like he/she just needed to have some blue-colored words .

10:25 There are two main problems with exceptions

The book Functional Programming with Scala mentions two main problems with exceptions:

  • Exceptions are not type-safe. The type of failingFn, Int => Int tells us nothing about the fact that exceptions may occur, and the compiler will certainly not force callers of failingFn to make a decision about how to handle those exceptions. If we forget to check for an exception in failingFn, this won’t be detected until runtime.
  • Java’s checked exceptions at least force a decision about whether to handle or reraise an error, but they result in significant boilerplate for callers. More importantly, they don’t work for higher-order functions, which can’t possibly be aware of the specific exceptions that could be raised by their arguments. For example, consider the map function we defined for List: def map[A,B](l: List[A])(f: A => B): List[B] This function is clearly useful, highly generic, and at odds with the use of checked exceptions—we can’t have a version of map for every single checked exception that could possibly be thrown by f. Even if we wanted to do this, how would map even know what exceptions were possible? This is why generic code, even in Java, so often resorts to using RuntimeException or some common checked Exception type.
  • As we just discussed, exceptions break RT and introduce context dependence, moving us away from the simple reasoning of the substitution model and making it possible to write confusing exception-based code. This is the source of the folklore advice that exceptions should be used only for error handling, not for control flow.

If I'd name a single thing that turns me down from using a certain language, it would be definitely exception handling. #Exception handling #Programming #Scala

11:22 Scala will prefer LUB

Interestingly, Scala will prefer LUB type of an expression instead of doing a type union or doing Either , so:

  val result = if (true) "what?" else 4

result type here is Any instead of a union or Either type (like String | Int). Scala 3 solves a bit of this with type unions:

  val result: String | Int = if true then "what?" else 4

#Scala

12:44 Scala the good the bad and the ugly

Scala the good the bad and ugly. Most of the mentioned problems in "bad" were radically solved by the way the Go programming language was design. It's strange that in the last two decades, no language designers were able to design something strict that prevents these issues, other than the Go designers. #Scala

15:34

My dear God. Was that really necessary?

../i/15:34/2026-01-18_15-39-46_screenshot.png

Could we live without some 'magic'?

saturday, 17 january #119

15:35 Liquid Glass

I just disabled liquid glass from my MacOS 26 machine, and I found out that Apple includes all the old features that were removed with apple glass, see for example "compact mode" in Safari:

../i/15:35/2026-01-17_15-38-30_screenshot.png

Maybe a kind of Bug compatibility. #Apple Glass

17:17 recursion in Scala

Avoid writing the following form of recursive functions:

def fib(n: Int): Int =
  if (n <= 1) n
  else fib(n - 1) + fib(n - 2)

This usually cause exponential time even when optimized. Imagine a call to fib(n) goes as follows:

fib(n)
├─ fib(n-1)
  ├─ fib(n-2)
  └─ fib(n-3)
└─ fib(n-2)
   ├─ fib(n-3)
   └─ fib(n-4)
  • fib(n-2) is computed twice
  • fib(n-3) is computed three times
  • fib(n-4) is computed five times

Instead, you should use a local tail-recursive helper:

def fib(n: Int): Int = {
  @annotation.tailrec
  def loop(i: Int, prev: Int, curr: Int): Int =
    if (i == 0) prev
    else loop(i - 1, curr, prev + curr)

  loop(n, 0, 1)
}

Now, something important to note here, if someone changes anything in the function call, it will break, silently. Moreover, the meaning of prev / curr isn’t obvious from the signature, which is important in functional programming; the invariant is not enforced by the type system. This is usually acceptable because:

  • loop is local → no external caller can misuse it
  • The invariant is encapsulated, not exposed
  • The outer API fib(n) remains clean and total

#Scala

17:25 Currying

"This is named after the mathematician Haskell Curry, who discovered the principle. It was independently discovered earlier by Moses Schoenfinkel, but Schoenfinkelization didn’t catch on." Lol. #Mathematics

friday, 16 january #118

13:46 Hearing from the wrong people

RT: there's this kind of hilarious thing that happens where the people who I most want to hear from and would totally clear my schedule to talk to are very cautious about respecting my time, but often the people who I am least enthusiastic to talk to feel the most ownership over it. #Modus Vivendi

19:11 When you buy pleasure

When you buy pleasure. Posting a very strong letter from Tanjia Rahm to her old customers. I wrote before about the pornography industry, and I'm wondering whether the same message of degradation can be used for the former consumers. I doubt, however, that consumers of both kinds are moved at all by someone denoting that what they're consuming is, indeed, fake.

wednesday, 14 january #116

03:08 Scala's multiple parameters

Multiple parameter lists are weird in Scala. I could only think of a good use of them as:

// by Knut Arne Vedaa
// Retrieved 2026-01-14, License - CC BY-SA 2.5

scala> def foo(as: Int*)(bs: Int*)(cs: Int*) = as.sum * bs.sum * cs.sum
foo: (as: Int*)(bs: Int*)(cs: Int*)Int

scala> foo(1, 2, 3)(4, 5, 6, 7, 9)(10, 11)
res7: Int = 3906

Scala author suggest it's useful with complex type inference situation, but I can't think of any. #Scala #Programming

11:14 Scala's exceptions

Apparently Scala handles exceptions pretty well, and you can even have kind of a type-safe partial-functions using something like the Try call. #Exception handling #Scala

15:22 Scala's companion types

One of the things some websites add as a reason to use companion types in Scala, is that not having the "new" keyword is cool. Since when we drop language specifications on their level of coolness? #Scala

tuesday, 13 january #115

02:58 Private life of Thomas Jefferson

I'd have never known that reading about a president's private life will help me understanding the nonidentity problem. Also why Thomas Jefferson's privates are well documented like that? #Philosophy #Power imbalance (and the Jefferson-Hemings example)

23:44 Kierkegaard Twitter Bot

I was inspired recently by the Clarice Lispector twitter bot to create something similar for Kierkegaard. For a non-anthology author like him (and her, Clarice, too in fact), it was a bit difficult to imagine how this will work, how can you cut sentences randomly so they make some context, not that full and not that ambiguous? The raw materials were three source files: a 594KB EPUB of Either/Or, an 825KB EPUB of personal journals and papers, and a 507KB text file of selected writings. Together, they contained over a million words. Not every sentence in a philosophy book is quotable. Chapter headings, footnote markers, translator notes, and incomplete fragments vastly outnumber the gems. A naive approach of random selection would produce mostly garbage: "See vol. II, pp. 234-256" or "Continued from previous section".

So I designed a relatively simple filtration,

private val philosophicalKeywords = Set(
  "soul", "despair", "anxiety", "freedom", "faith",
  "existence", "dread", "passion", "eternity", "infinite",
  "spirit", "silence", "god", "death", "suffering",
  // 180+ more terms...
)

def score(text: String): Int = {
  val keywordCount = philosophicalKeywords.count(kw => lower.contains(kw))
  val keywordScore = math.min(25, keywordCount * 4)
  
  val lengthScore = text.length match {
    case l if l <= 120 => 25  // ideal length
    case l if l <= 150 => 22
    case l if l <= 200 => 15
    case _ => 5
  }
  
  keywordScore + lengthScore + rhetoricalScore + structureScore
}

on top of which a kind of an intelligent quote (shall I call it IQ?) scoring;

  • keywords (180+ terms like "despair", "anxiety", "faith", "existence")
  • Rhetorical patterns (semicolons, em-dashes, contemplative ellipses)
  • Length optimization (60-150 characters scores highest)
  • Aphoristic bonus (short quotes with multiple keywords get extra points)

Shorter quotes with words like "existence" bubble to the top. After running this on all three source files, I got 15,455 quotes sorted by quality. Top score: 81. They're available in the source control if you are interested to have a look: https://github.com/larrasket/kierkegaard #Programming

monday, 12 january #114

16:31 Other intelligence note

I realized that most people confuse Intelligence Science to be about how a person perform in a success matrices and day-to-day life. However, most intelligence studies I've read were much more focused on abstract intelligence, without any perspective to any other life areas. For instance, someone might be just very intelligent but they're in not interested in these perspective that define the success metric for most people. Moreover, I've met enough successful people in life to be able that even that metric has absolutely nothing to do with abstract intelligence but with some agreed-on facts that most people simply ignore. Take drinking water for example, most people do not take this seriously, and definitely no studies will ever show that drinking enough water usually has to do with being intelligent, since they're interested in, again, abstract type of intelligence, however, drinking water regularly has many other effects, like good health and clearer mind in general, which both definitely do affect what people take for intelligence, or the aforementioned metrics. #Modus Vivendi

sunday, 11 january #113

03:59 Dorothy Day Letter to Forster Batterham

Dorothy Day's letter to Forster Batterham. What can I say, it's just so beautiful. عتاب جمل: 10 Dec, 1932.

Dear Forster.

I got your letter Friday afternoon and I’ve been pondering since whether or not to answer it. It doesn’t seem much use, but still I can’t let some of your statements go without telling you what I feel.

As to my feeling about sex, I do indeed now feel that sex is taboo outside of marriage. The institution of marriage has been built up by society as well as the Church to safeguard the home and children as well as people who don’t know how to take care of themselves. Of course anyone who is sane and sound mentally will agree that promiscuity and looseness in sex is an ugly and inharmonious thing. You have always in the past treated me most casually, and I see no special difference between our affair and any other casual affair I have had in the past. You avoided, as you admitted yourself, all responsibility. You would not marry me then because you preferred the slight casual contact with me to any other. And last spring when my love and physical desire for you overcame me, you were quite willing for the affair to go on, on a weekend basis.

Sex is not at all taboo with me except outside of marriage. I am as free and unsuppressed as I ever was about it. I think the human body a beautiful thing, and the joys that a healthy body have are perfectly legitimate joys. I see no immediate difference between enjoying sex and enjoying a symphony concert, but sex having such a part in life, as producing children, has been restricted as society and the Church have felt best for the children.

I believe that in breaking these laws one is letting the flesh get an upper hand over the spirit, so I do not want to break these laws.

St. Augustine says, “If bodies please thee, praise God on occasion of them.” And I feel no sorrow for all the joys we have had in the past together.

When I laughingly spoke about many a young girl holding out—you should have understood what I meant. You seem to think that one should always succumb immediately to any promptings of the flesh, and you think of it as unnatural and unhealthy to restrain oneself on account of the promptings of the spirit. What I meant was that many people in the past have observed the conventions and rules, for the sake not only of convention but of principle. It is hard for me to talk to you seriously,—you despise so utterly the things which mean so much to me. I wish you’d read more of Aldous Huxley, and imbibe a little of his rational tolerance.

You think all this is only hard on you. But I am suffering too. The ache in my heart is intolerable at times, and sometimes for days I can feel your lips upon me, waking and sleeping. It is because I love you so much that I want you to marry me. I want to be in your arms every night, as I used to be, and be with you always. I always loved you more than you did me. That is why I made up with you so many times, and went after you after we had had some quarrel. We always differed on principle, and now that I am getting older I cannot any longer always give way to you just because flesh has such power over me.

Of course I understand your allusion to smoking and drinking and such indulgences, and as I said before, I do agree with you and would give them all up for you. I really don’t think I over-indulge very often. I consider drink only sinful inasmuch as it affects one’s health, and I’m most ashamed for every time I do over-indulge. Sex and eating and drinking may easily be put in the same class since they are both physical gratifications. Still, even the slightest sexual lapse may have terrible and far-reaching consequences and so these laws have been built up. Of course all intelligent people can say—Oh, I’m so smart this doesn’t apply to me, but I think that such laws, whether one considers them human or divine, have to be obeyed by all. It all is hopeless of course, tho it has often seemed to me a simple thing. Imaginatively I can understand your hatred and rebellion against my beliefs and I can’t blame you. I have really given up hope now, so I won’t try to persuade you any more.

Dorothy

Her words are so alive, so honest. (Usher 2016)

04:10 From: “Marcel Proust to Jacques Porel”.

From: “Marcel Proust to Jacques Porel”

“I envy people who are capable of uttering such cries that, at first, I thought someone was being murdered, but I realized what was happening when the woman’s cries quickly resumed an octave below the man’s, and was reassured.”

Relatable.

References

  • Shaun Usher (2016). Letters of Note: Sex. Canongate Books.
saturday, 10 january #112

15:51 about Sara Hegazy

Revisiting the Sara Higazy incident today. I was participating in the discussion of deleting her Wikipedia page. This was around 6 years ago. Back then, the whole story struck me with an intensity I can’t quite reconstruct now. I remember feeling genuinely shaken, moved in a way that felt deep and urgent. Today, the sadness is still there, but it’s quieter, more distant, almost abstract. What I can’t fully explain is why it affected me so strongly at the time.

The sexual rights movement, which once felt like a defining moral battlefield, feels to me now as a strangely disproportionate to the scale of suffering and disorder in the world. Not wrong, exactly, just small. Almost trivial when placed beside poverty, war, genocide, poverty again, and the quiet, grinding injustices that shape most human lives. I’m surprised, in retrospect, that Sara herself, someone from a relatively ordinary, middle-class background, would stake so much of her life, and ultimately lose it, over something that now feels so marginal.

There’s also something uncomfortable in admitting this: maybe what moved me then wasn’t Sara alone, but the version of myself who needed her story. A younger self, more eager for clean moral lines, more convinced that tragedy must always point toward meaning. Nietzsche taught me that this is not always the case.

Now, older and less certain, I’m left with grief stripped of narrative payoff. No lesson neatly learned, no cause vindicated—just a human life that encountered the full weight of cruelty and didn’t survive it. #Politics

16:32 Qad saqānī min lamāh

Qad saqānī min lamāh Khamratun tughaddī sanāh Sirtu lā a‘shaqu siwāh Wa tajallā fawqa ṭūrā

Wa intathā waraqu al-khayāl Wa badā badru al-jamāl Wa ghadā fī al-kulli ghāl Bi-bahā’in wa surūrā

Nūruhu lā zāla ‘ālī Baḥruhu fayḍu al-kamāl ‘Aṭfuhu ‘inda al-wiṣāl Laḥẓuhu sayfan batūrā

Khaddahu nāru al-ma‘nā Ḥarruhā lil-ṣabbi janna Farquhu rawḍātu janna Fīhi anwā‘u al-zuhūrā

#Music #Rafa't Lila al-Stora #Poetry

18:28 Ballade No. 1

Listening to #Ballade No. 1 in G Major, Op. 23 by Hélène Grimaud. What a battle #Music

friday, 9 january #111

18:30 Maxfield Parrish (1870 – 1966)

18:41 Shaqia Rouh

Anta taḥyā fī kiyānī wal-hawā Fīhi aḥyā kayfa as-lū aw alūm? Fīhi ʿumrī wa-shabābī wal-munā Wa-maghānī ash-shiʿri fir-ruʾyā tahīm

#Music #Shaqiq Rrouh by Ghada Shbeir

tuesday, 6 january #110

09:21 Annoying bug on Github

There's an annoying bug in GitHub's "download raw file" feature, when I click download, nothing happens. Finally I had to replace my own parameters in a pattern I found online to resolve the bug and be able to download the file. Did I mention that I really hate Microsoft? #Programming

10:27 Scala docs

#Scala documentation gives me let over lambda vibes. #Relearning Scala

../i/10:27/2026-01-06_10-27-49_screenshot.png

sunday, 4 january #109

19:14 A discussion regarding the IDF database.

I microblogged about a discussion regarding that IDF database suggests that at least 83% of Gaza dead were civilians. Posting my repsonses here in full length, since HN flagged the post, and non-users can't read it.

tguvot wrote;

17% are terrorists that IDF can identify by name. Unidentified people with RPGs in their hands that were blown up don't suddenly become civilians. If we stick with that logic, 99.9% of dead in war in Ukraine are civilians, because opposite party can't identify them

My response:

In war, a person is civilian unless positively identified as a combatant. “Unidentified” does not mean militant. that’s true in international law, conflict research, and even the IDF’s own internal counting. The “17% identified by name” point actually supports the claim. Israel’s own intelligence database–which Israeli sources call the only authoritative militant tally–shows ~8,900 confirmed or probable militants killed out of ~53,000 total deaths at the time.

The “RPGs in their hands” is a strawman. The database does not count assumptions; it requires intelligence-linked identification. Israeli investigations and internal testimony show civilians were routinely misclassified as “terrorists” in field reports to inflate ratios

The Ukraine comparison is simply wrong. Ukraine has uniforms, unit records, POW lists, and mutual identification. Gaza is a besieged civilian population where Israel itself admits it cannot identify most victims. No serious dataset suggests 99.9% of Ukraine’s dead are civilians.

moreover, many independent investigations suggest the same. Airwars’ civilian harm analysis documented unprecedented civilian casualty patterns (large family deaths, high women/child counts), far exceeding norms seen in other 21st-century conflicts https://gaza-patterns-harm.airwars.org

Even conflict data experts (e.g., Uppsala Conflict Data Program) note that the proportion of civilians in this conflict is far higher than typical war patterns and comparable only to extreme cases like Rwanda and Mariupol

breppp wrote:

He is right, the logical leap would be hilarious if not a symbol for today's journalistic standards.

Let's say the IDF has positively confirmed 17% combatants. The negation of that set is not "Non combatants" but "Not positively identified by the IDF as combatants". which means that some may still be combatants, and most probably some are as the standard here is to confirm names, something hard to do when someone is under the rubble. Therefore the title here which says 83% civilians according to IDF data is simply false.

That's forgetting the other issues with this article (single IDF unit not tasked with research, multiple databases with different numbers, using Hams death data, forgetting about non-Hamas non-PIJ groups, low reputable source, etc) but I am sure that if you can see this misstep you can understand the general value of what you read there

My response:

I'm not sure if you understand how casualty classification works. “not positively identified as combatant” is not logically equivalent to “proven civilian.” No one claims it is. What it does mean is that the IDF has no evidence those people were combatants. And in law, statistics, and every serious conflict dataset, you don’t get to assign lethal status based on vibes.

Also calling Aman “a single unit not tasked with research” is false. It’s Military Intelligence, and Israeli sources say this database is the only one they can stand behind. If your position requires assuming thousands of unidentified dead people were combatants without evidence, then your position is not analytical rather ideological.

tguvot wrote:

so, your position that 10 unidentified, people each with rpg that they were observed to used, without military uniform, blown up count as 10 civilians ? right ?

My response:

No and this is misleading. First, that’s not how civilian status is determined. Civilian vs. combatant is not decided by uniforms or post-strike assumptions but on direct participation in hostilities at the time and positive identification. Someone actively firing an RPG is a combatant at that moment but that does not justify retroactively classifying every unidentified body as militant. I'm honestly surprised that I've to explain that.

Second, the example is a hypothetical case to erase the real issue. The claim about ~80% civilian deaths is not based on “assuming everyone is civilian,” but on subtracting those Israel itself could identify as militants using intelligence-linked, name-based records. Israel’s own database explicitly excludes people it merely suspects or assumes were fighters.

Third, this logic fails at scale. Gaza’s death toll includes tens of thousands of women, children, elderly, and entire families killed in homes, shelters, hospitals, and aid lines, not people observed using RPGs. Field reports and Israeli investigations show many victims were later posthumously labeled militants without evidence, inflating numbers.

Forth, the argument flips the burden of proof. You don’t get to call people militants because you can’t identify them. If that standard were accepted, any mass-casualty air war could declare most of its victims “terrorists” by default, which is exactly why serious militaries and conflict datasets reject that logic.

That user, tguvot, has a specious activity on almost every Israel-related post, gives Unit 8200 vibes. #Israel #Conversation #Politics

december 2025
tuesday, 30 december #108

18:32 ibn al-Muqaffa on friendship

[Arabic Original Below]

Abdullah ibn al-Muqaffaʿ said: Know that true brothers are the finest gains of this world: an adornment in times of ease, a promise in times of hardship, and a support for both livelihood and final return. Do not, then, be careless in earning their companionship, nor negligent in seeking the ties and paths that lead to them.

I have read his letter to Yahya ibn Ziyad al-Harithī, and it appears to be one of those very ties he spoke of in his counsel, The Peerless Pearl. It is among the best words ever addressed to a friend. In it are qualities of companionship that delight the soul, guide it by example, and awaken hope for oneself and one’s companions. For this reason, I chose to translate it and share it, to read it closely and to offer it as a gift to those among my friends who are dear to me.

You have conducted yourself with people along a praiseworthy path of loyalty and generosity—so much so that you have been known for its virtue, your mentions adorned by it, and your praise made fair through it. The tongue of truth has borne witness for you, and by it you have become known for your noble traits and marked by your virtues. Thus brothers hasten toward you out of desire, racing to win your affection and to bind themselves to you, as rivals compete for a coveted prize. You have set before them a goal toward which seekers run, and which only the foremost attain.

Whoever God has secured in your esteem as one worthy of trust and refuge—who has filled his hand through you with the share of a loyal brother and an unbroken bond, who has found rest with you in a safe shelter and a guarded covenant, and is enveloped by your grace in affection—finds himself attempting to repay you in ways beyond his capacity, striving to reach a height whose summit is hard to attain. Were you to accept as brothers only those who could fully return your affection and reach the limits of your excellence, you would have no brothers at all, and you would stand empty of companionship. Yet your brothers acknowledge your merit, while you accept from them what ease they can offer of affection. You do not burden them with the cost of matching you, nor with attaining your measure of virtue in what lies between you and them.

I did not intend by this praise to flatter you, seeking closeness thereby or a tether to secure myself to you. Rather, I sought truth and sincerity in what I described, and avoided falsehood and blame. For a little truth, pure of deceit, is better than much truth tainted by error.

I have spoken of your virtues and the fairness of your conduct, yet I fear for you the trial that comes when one hears the praise of oneself and the recounting of one’s merits. For praise corrupts the heart and stirs conceit. Still, I hope for you protection and steadfastness, for I have mentioned nothing but what is true—and truth expels vanity and the arrogance of pride from the discerning soul, leading it instead toward balance and humility.

Seeing, then, that you are as I have described—rich in virtue and loyalty—I resolved to claim my share of your affection, and to bind my cord firmly to yours, so that between us may flow the bonds of brotherhood through which affection grows strong and covenants endure. I knew that to forgo this would be loss, and to neglect it ignorance; for whoever abandons his rightful share enters into loss, and whoever turns from right judgment drifts toward error. So desire from my affection what you desire from yours, for I have left nothing undone by which I might draw forth your goodwill or awaken your friendship. Every path that leads to you I have taken, every mount I have set in motion toward you, that you may see the earnestness of my care for your affection and my longing for your companionship. Peace.

I see nothing that ennobles the bond of brotherhood more than such clarity: the open declaration of the desire for friendship, the wish for its endurance, the balance of giving and receiving. And the worst of lands is that in which one has no friend at all.


قال عبدالله بن المقفع: اﻋﻠﻢ أن إﺧﻮان اﻟﺼﺪق ﻫﻢ ﺧير ﻣﻜﺎﺳﺐ اﻟﺪﻧﻴﺎ، زﻳﻨﺔٌ ﰲ اﻟﺮﺧﺎء، وﻋﺪةٌ ﰲ اﻟﺸﺪة، وﻣﻌﻮﻧﺔٌ ﻋﲆ المعاش والمعاد، ﻓﻼ ﺗﻔﺮﻃﻦ ﰲ اﻛﺘﺴﺎﺑﻬﻢ واﺑﺘﻐﺎء اﻟﻮﺻﻼت واﻷﺳﺒﺎب إﻟﻴﻬﻢ.

وقد قرأت له رسالته إلى يحيى بن زياد الحارثي، ومما بدى أنها كانت إحدى الوصلات التي تكلم عنها في وصيته "الدرة اليتيمة". وهي من خير ما يقال لصاحب، وبها من صفات الصاحب ما تُعجب به النفس، وتقدي بها، وترجوا بها لنفسها ولرفقائها. فأثرت ترجمته ومشاركته، وقرأته وأهديته على من عزّ علي من أصحابي.

وقد لزمت من الوفاء والكرم فيما بينك وبين الناس طريقة محمودة، نُسِبْتَ إلى مزيتها في الفضل، وجمل بها ثناؤك في الذكر، وشهد لك بها لسان الصدق فعُرفت بمناقبها، ووُسِمْتَ بمحاسنها، فأسرع إليك الإخوان برغبتهم مستبقين يبتدرون ودَّك ويصلون حبلك ابتدار أهل التنافس في حظ رغيب، نصبت لهم غاية يجري إليها الطالبون ويفوز بها السابقون، فمَنْ أثبت الله عندك بموضع الحرز والثقة، وملأ بك يده من أخي وفاء ووصلة، واستنام منك إلى شِعْب مأمون وعهد محفوظ، وصار مغمورًا بفضلك عليه في الود، يتعاطى من مكافأتك ما لا يستطيع، ويطلب من أثرك في ذلك غاية بلوغها شديد، فلو كنت لا تؤاخي من الإخوان إلا مَنْ كافأ بودك، وبلغ من الغايات حدك؛ ما آخَيْتَ أحدًا، ولصِرْتَ من الإخوان صفرًا، ولكن إخوانك يقرُّون لك بالفضل، وتقبل أنت ميسورهم من الود، ولا تجشمهم كُلَف مكافأتك، ولا بلوغ فضلك فيما بينك وبينهم، فإنما مثلك في ذلك ومثلهم كما قال الأول:

ومَنْ ينازع سعيد الخير في حسب ينزع طليحًا ويقصر قيده الصعد

ولم أُرِدْ بهذا الثناء عليك تزكيتك ليكون ذلك قربة عندك وآخية لي لديك، ولكن تحرَّيت فيما وصفت من ذلك الحق والصدق، وتنكَّبت الإثم والباطل، فإن القليل من الصدق البريء من الكذب أفضل من كثير الصدق المشوب بالباطل.

ولقد وصفت من مناقبك ومحاسن أمورك، وإني لأخاف الفتنة عليك حين تسمع بتزكية نفسك وذكري ما ذكرت من فضلك؛ لأن المدح مفسدة للقلب مبعثة للعُجْب، ثُمَّ رجوت لك المنعة والعصمة؛ لأني لم أذكر إلا حقًّا، والحق ينفي من اللبيب العُجْب وخيلاء الكِبْر، ويحمله على الاقتصاد والتواضع.

وقد رأيت — إذ كنتَ في الفضل والوفاء على ما وصفتُ منك — أن آخذ بنصيبي من ودك، وأصل وثيقة حبلي بحبلك، فيجري بيننا من الإخاء أواصر الأسباب التي بها يستحكم الود ويدوم العهد، وعلمت أن تركي ذلك غبن، وإضاعتي إياه جهل؛ لأن التارك للحظ داخل في الغبن، والعائد عن الرشد مرجف إلى الغي، فارغب من ودِّي فيما رغبت فيه من ودِّك، فإني لم أدع شيئًا أستتلي به منك الرغبة وأجتر به منك المودة إلا وقد اقتدت إليك ذريعته وأعملت نحوك مطيَّته، لترى حرصي على مودتك ورغبتي في مؤاخاتك، والسلام.»

ولست أرى أن هناك ما يُقدر في علاقة المؤاخاة بمثل هذه الشفافية، بإيضاح الرغبة في المؤاخاة وإطالة العهد، والأخذ والعطاء، وشر البلاد مكان لا صديق به. #Modus Vivendi

sunday, 28 december #107

16:51 Why Go Maps Return Keys in Random Order

There's a good answer to this question:

So that no one gets dumb enough to depend on them being in any particular order because the order can change for reasons under the hood and out of your control.

Pragmatically speaking, this is a bad design. However, from an engineering perspective, it's a perfect one. This is the same way I like to think about OOP; yes it's really powerful, but it's not suitable enough for engineering once you get so many rules that the team should work with, that are not enforced by any means. #Go #Programming

sunday, 21 december #106

02:52 Device is left behind.

Apparently, if you go somewhere far from home (or any usual stay place) with multiple Apple devices and leave one behind, the FindMy App alerts: "device left behind" The irony is my MacBook is named "saleh" so the notification says: "saleh is left behind" and idk about that

wednesday, 10 december #105

19:15 Mulan (1998)

There's an observation that I thought about as a kid watching that movie, powerful training montage where Mulan is struggling to complete the challenge of retrieving an arrow from the top of a tall wooden pole. The movie supposed to go in the theme that after some life-changing exercises, effort, and most importantly mindset, she is finally able to do this very hard challenge. But She actually were never able to, what happens instead is that instead of letting the weights drag her down, she uses them as tools. She loops the straps of the weights together to form a grip, anchoring herself on the pole. While this sounds smart and everything; it is not what the exercise is meant for, otherwise there would be many other smarter and easier ways to get the arrow, the exercise was meant for bare brute strength, not thinking differently. #Cinema

november 2025
friday, 28 november #104

21:29 Upper and upper-middle classes in Egypt have an

Last Wednesday I was celebrating my last working day (before starting my short vacation and moving on) with my coworker, he suggested that we can do it around the workplace, which happens to be a common open-air outing for the Egyptian middle to upper-middle classes. It was quite fun.

As we walked around, I noticed dozens of Christmas trees scattered across which felt oddly dissonant. Familiar, but still entirely out of place.

I understand why I'm writing this blog in English, and why I can relate to European drama more than I can to my local ones; English is lingua franca, and I was exposed to foreign culture more than I was to my local one. But what I don't understand is this strange eagerness to inherit symbols that were never ours. I found a lot of Christmas trees at work yesterday. I think they were the usual Picea abies, a tree that has never grown naturally in the landscapes of the Middle East: not in our deserts, not along our Mediterranean coastlines, not even in the highlands. Even Middle Eastern Christians, for nearly two millennia, never practiced this tradition; it spread only recently through the soft power of American and Northern European culture. The tree itself has origins in pre-Christian pagan rituals of northern Europe, symbols of winter vitality adopted and reinterpreted over centuries, yet we imported it without the mythology, without the climate, without the story.

The same happens with Halloween, a Celtic festival marking the thinning veil between worlds, reshaped by Irish immigrants in the US, and then exported back to the globe through a cultural gravity the MENA region was never meant to orbit. It’s not that these borrowed traditions are wrong; they are simply unrooted. They give the illusion of participating in a universal culture while quietly eroding the questions that shaped our own. Perhaps the real issue is that we’re adopting symbols that grew from someone else’s winters and someone else’s fears.

My biggest issue, though, is that I cannot find authenticity in this or enjoy it, because it feels totally engineered by media. Perhaps I would find it fun if I were born in the US (even as a Muslim, in fact some people in Egypt attributed my thoughts about these events to radical Islam, it has nothing to do with it. I would celebrate an authentic Egyptian holiday for instance), for example. Experiencing it from here, however, feels like watching someone else’s memory and pretending it’s mine. It makes me wonder whether culture today is something we choose or something curated for us, shaped and streamlined until we mistake repetition for belonging.

When every tradition can be packaged into a trend, it becomes difficult to tell where genuine fascination ends and subtle social engineering begins. If a ritual becomes universal through marketing rather than meaning, does it still count as culture, or is it simply a very successful advertisement?

At what point do we stop being participants in culture and become mere receivers of whatever is most efficiently broadcast? #Egypt #Modus Vivendi

tuesday, 25 november #103

12:00 I really hate Microsoft

I don't think I ever got to talk about much I hate Microsoft. I will use this post to express how much I hate Microsoft.

I'm pro-FOSS and pro-Freedom, however, people who know me know that I do hate Apple and other big tech, but just not as much as I hate Microsoft. I believe that Microsoft is responsible for making one of the most terrible operating systems ever (along with other many low quality products) which was (is?) responsible for making the computing experience really terrible for people who are not much into computing. This resulted in making every task that might require using a computer a burden to these people.

I'm not talking about power users or developers who can work around Windows' quirks (like removing copilot or using the server version of Windows 10 for their desktop). I'm talking about your aunt who needs to send an email, the small business owner trying to manage inventory, the teacher preparing a presentation. Microsoft took what should have been straightforward tasks and wrapped them in layers of mysterious failures, cryptic error messages, and mandatory restarts.

The real issue isn't that software has bugs, every system does. The real issue is that Microsoft built an operating system that treated its users with contempt. Windows 95 through Windows 11 trained an entire generation to believe that computers are fundamentally unreliable, that losing work is just part of the deal, that random crashes are inevitable.

They normalized dysfunction. Microsoft convinced the world that computing is inherently fragile and frustrating.

Modern Windows is an archaeological dig. You've got Control Panel coexisting with Settings, two different interfaces for system configuration because Microsoft couldn't commit to either. You've got ancient Win32 APIs next to WinRT next to whatever they're calling the current framework (and don't get me started at how they name it). Each generation of Windows just changes (or contributes to) how terrible the experience is.

This matters because it destroys predictability. In any well-designed system, once you learn the patterns, you can reason about how things should work. Windows teaches learned helplessness. Settings might be in Control Panel, or Settings, or a right-click menu, or a PowerShell command, or not exposed at all, or in some registry, or in a file under System32 folder. Every task becomes a treasure hunt.

People who defend this as "backward compatibility". It is not. Backward compatibility is running old binaries. This is keeping decades of UI confusion and architectural mistakes on life support because Microsoft can't be bothered to make clean breaks1.

Microsoft normalized the idea that computers need to be rebooted to function properly. Not rebooted to apply updates, that's reasonable. Rebooted because something got into a weird state and nobody knows what. Rebooted because that's just what you do when Windows acts up.

This became the universal tech support answer because it actually worked disturbingly often. That's not a feature, it's an admission that the system's state management is so broken that burning it down and starting over is easier than debugging.

Servers running Linux or BSD regularly go years between reboots. macOS machines might reboot for major updates but rarely for anything else. Windows? "Have you tried turning it off and on again?" became a cultural meme specifically because of Microsoft's inability to build a stable operating system.

Microsoft had the resources and market position to build something genuinely excellent. They built something barely adequate and spent decades defending it. They trained the world that computing is supposed to be painful.

That's why I hate Microsoft more than Apple or Google or any other tech giant. Apple locks you into their ecosystem, sure. Google vacuums up your data. But Microsoft convinced generations of people that computers are fundamentally hostile tools that barely work. They normalized dysfunction at a scale that damaged the entire industry's relationship with its users.

Propaganda

Here's some anti-Microsoft propaganda that I like

  1. Microsoft won't let me pay a $24 bill
  2. Update from Microsoft
  3. Microsoft's Software Is Malware
  4. Microsoft lacks quality control
  5. Why is Microsoft Teams still so bad?
  6. Why is GitHub UI getting so much slower?
  7. Casey Muratori incident
  8. Microsoft is going to preload it in the background, because it's slow
  9. Markdown files not openable because of GitHub Copilot
  10. It's over
  11. STOP. please microsoft
  12. Microsoft keeps losing
  13. Why does Microsoft never improve?
  14. Windows 11 Start Menu Revealed as Resource-Heavy React Native App
  15. Microsoft Recall Required??
  16. Migrating from GitHub to Codeberg
  17. New Windows 11 bug causes flash bang when opening File Explorer
  18. Microsoft Is A Blackhole Of Talent And Money
  19. The Cult of Microsoft
  20. Microsoft, anybody home?
  21. GM replies to Bill Gates
  22. [2026-01-08 Thu 17:06] People are calling Microsoft now "Microslop" I would like to denote that AI/LLMs (Or like how the GNU priest calls them, bullshit generators) have absolutely nothing to do with how mediocre, low quality and buggy MS products are. People that believe so, usually haven't interacted with MS products a lot before LLMs regulations, or they didn't find the buggy software before buggy, and they only got to realize it when the scale of bugs increased when they depended more on LLMs. Google uses LLMs, Apple did too. They got mistakes as well, but MS's issues are more about a philosophy rather bugs.
  23. [2026-01-05 Mon 21:26]
    Adding:

  24. [2026-01-06 Tue 08:57]
    Microsoft is renaming all their products https://x.com/IceSolst/status/2008279151782830207
  • [2026-02-07 Sat 18:34]
    I don't want to start even talking about the development experience on Windows. ../i/2026-02-07_18-35-09_screenshot.png
  • [2026-02-12 Thu 02:47]
    Just off my head: HKLM/HKCU is nonsenes. It always has a broken uninstall state and MSI rot. NTFS has 8.3 filenames (legacy for compatibility). Reparse points layering. PATH + DLL search order is terrible; System32 precedence. Side-loading attacks. Dependency hijacking.
  • [2026-02-19 Thu 23:31]
    15+ years later, Microsoft morged my diagram » nvie.com
  • [2026-03-19 Thu 09:22]
    https://trysound.io/try-not-to-get-scammed-while-looking-for-work/

    Joan sent another Microsoft Teams link. This time, audio failed and the browser app prompted me to update some SDK. I tried the desktop app with the same room id, but it said “meeting not found.” Alright, as a user of Microsoft software first half of my life I was not surprised

    Right.

Casey Muratori incident

From: https://news.ycombinator.com/item?id=38650254

Microsoft’s new terminal application rendered text extremely slowly, like 10 minutes to cat 1gb of text slow.

Casey submitted a bug saying that it’s slow and should be much much faster. Microsoft responded something like “text is hard … … phd dissertation on rendering text”

Casey made a terminal renderer with more features than Microsoft’s renderer in a weekend, it performed orders of magnitude faster, had zero optimization work performed and he jokingly (and hilariously) titled the video “a phd dissertation”.

Next, the excuse parade rolled in and came up with all manner of excuses as to why Muratoris renderer was so much faster, so he made a follow up video addressing the excuse parade, as well as containing some very minor optimization.

Also note that Casey’s implementation isn’t even as fast as things could be. His optimizations are minor.

https://github.com/microsoft/terminal/issues/10362 https://m.youtube.com/playlist?list=PLEMXAbCVnmY6zCgpCFlgggR...

Footnotes

friday, 21 november #102

23:59 Old journals

Unsure when I will be able to read my old journal, bravely. I had this in my daily TODOs: "Run salih/org-search-entries-with-today-date and salih/open-journal-file-for-today". these were elisp functions that were showing me my log and journal for the same day of the current month, but for past years. Sounded like a fun idea at first, but it started to get extremely gloomy after couple of days, then weeks. Then I completely stopped doing it because it really harmed my mood. I rescheduled the activity to the far future, hopping that better me will be able to handle his feeling appropriately. He will probably come through this note in November's 21st, I hope he will be glad.

saturday, 15 november #101

02:36 Some other notes on exception handling

  • [2025-11-26 Wed 15:52]
    Reading https://ieeexplore.ieee.org/document/7832935/ today. It mentions that most common uses of catch: 1. Logs the error rather than recovering from it 2. About 80% of people are using the common "Exception" class, rather than their subclasses.

I wrote about exception handling before in my draft on programming languages, generally, I consider exception handling to be extremely distasteful, and before you relate this to me being biased toward functional states, no I had this feeling from the first day writing C#; I was always astonished by how the MS documentation was strictly telling us "hey be careful with this thing" and hopping for the best, and for the way my app needed a "global exception handler" that swallows everything, and I looked and looked for a way in which I could just know whether a function throw or not, I assumed that I'm getting something wrong, because I couldn't believe that this is a standard practice and due to my insufficient experience back then, I couldn't find any literature discussing this problem. I wrote about a similar concern in my old mentioned draft, but it's far from complete in the regard of why throwing exceptions is generally a terrible idea. Here I'm sharing some of contributions that I found: 1. Exception Handling Considered Harmful1 2. 13 – Joel on Software 3. Exceptions Considered Harmful 4. Why Go gets exceptions right | Dave Cheney. From the other side: 1. You’re better off using Exceptions – Eirik Tsarpalis' blog and I have a quick response for some issues it demonstrates; a. An Awkward Reconciliation: this assumes that the programming language you are using, library or other called functions are going to throw, which is invalid if you can never have this state in your language. b. Boilerplate: this is a style preference IMO, most of Go developers for example do not mind the infamous if err != nil for me it's explicit and eloquent. c. Where’s my Stacktrace?: exporting the Stacktrace has nothing to do with throwing exceptions, it's very possible to expose it in almost all languages (including Go) without exceptions. 2. Exceptions vs. status returns | Ned Batchelder2. #Programming #exception handling


friday, 14 november #100

23:59 nwalsh gallery website is very inspiring

Just wanted to say that I love https://photos.nwalsh.com/. I contacted Norm a year ago: "Hi Norm, I really enjoy browsing through your gallery https://photos.nwalsh.com/images/ndw I would like to build something similar, is the software that serves the website available for others to use? Thanks in advance." he responded: " I’ve reimplemented that a couple of times. I don’t think I ever published the current incarnation. It’s Node.js on the front and Postgresql on the back, so pretty standard stuff. I’ll put “package it up in a public repo” on my todo list, but it’s a long, long list. :-) Be seeing you, norm". I responded: "Thanks. If possible, please let me know if you release it someday. That might be a fit for an additional line in your todo :).". He responded: "I’ll try to remember. To be honest, if I was starting over today, I’d be looking hard at setting up a Pixelfed instance. That might be worth exploring. Something for your todo list, perhaps :-) Be seeing you, norm". This was at Fri, 23 Aug 2024 13:50:01 +0100. I found his response fun. I added it indeed to my long TODO, and I consider pinging him in couple of months.

wednesday, 5 november #99

23:59 Matt Holiday

Sometimes I develop feelings for books, scientific materials and tutorials. I wrote about this in Nostalgic Bibliography. One of the science books I had this experience with was Shaffer, C. Algorithm Analysis book. I wanted a lot to email Dr. Shaffer about how much I enjoyed his book, but I never found the best words, so I never did. Today I've noticed that I had the same feeling for Matt Holiday's <https://www.youtube.com/@mattkdvb5154> Go tutorial. I have a theory that he made this tutorial because he wanted to gain from time at home during the pandemic. Such a well spoken person and a great teacher. #Go and #Programming

monday, 3 november #98

23:09 Aljazira old website

I still remember Aljazira's old Arabic UI very well, it was very alive, feature-rich, has a lot of surprises and just "alive". It was a portal to the internet. There are still snapshots of it in the Wayback Machine. I feel a lot of nostalgia for it.

october 2025
wednesday, 29 october #97

23:51 Waiting and Music

Some quick notes I had recently. 1. If you play Jeno Jando's performance of Hungarian Rhapsody No. 2 (C Sharp Minor, S244), and you listen really really carefully, you can hear him humming. Which is very spectacular, in my opinion. 2 Dmitri Shostakovitch wrote about waiting in his journals. I don't have access to it right now and I can't rephrase it because I read it very long time ago. As of now (me writing this), he was correct about a lot of points. 3. Most engineering disciplines have a distinction between "waiting" and "blocking". Usually waiting is purposeful and justified (an ongoing process we must await). On the other hand, blocking is usually seen as a symptom of poor design. Most of the waiting I experience is blocking. 4. Everyday I walk myself into a state of well-being and walk away from every illness. I have walked myself into my best thoughts, and I know of no thought so burdensome that one cannot walk away from it [Soren Kierkegaard] 5. The world lost a lot from transforming the concept of playing from having joy and fun with others using tools and rocks, to sitting in front of a computer monitor staring at pixel dots. #Modus Vivendi #Music

saturday, 25 october #96

18:08 Ghada Ghanem

Discovered Ghada Ghanem this week, her music is really different and interesting. I was surprised this is my first time to stumble upon her. Her music in Arabic is very special, but sadly she only has couple of ones in Arabic. #Music

friday, 24 october #95

KILL 02:31 Have the general vocabulary shrunk?   @read @later

CLOCK: [2025-10-24 Fri 02:31]–[2025-10-24 Fri 02:38] => 0:07 CLOCK: [2023-11-08 Wed 11:16]–[2023-11-08 Wed 11:40] => 0:24

Pretty much interesting article, however, it seems like it is not published at a peer-reviewed journal but a vastly sketchy one.

13:30 Is everything okay back home?

I have never been asked this question, but I think it's extra scary. So scary that I think about it even I was not questioned. My problem with this question is simple; it does not only imply that you are being a disappointment and a failure, but it also tells about you that you are not responsible that you are still willing to produce, work, or go to the exam, even when you know you can not do your best, due to your presumed "back home" situation. It's a question of dignity too, not only performance.

20:17 Give me more build systems

Installing Zathura on OSX: ==> Fetching dependencies for homebrew-zathura/zathura/zathura: cmake, ninja, python@3.14, meson, certifi, sphinx-doc, freetype, pcre2, glib, libtiff, gdk-pixbuf, harfbuzz, pango, librsvg, adwaita-icon-theme, desktop-file-utils, dbus, libxfixes, libxi, libxtst, at-spi2-core, gsettings-desktop-schemas, hicolor-icon-theme, libepoxy, gtk+3, girara, intltool, json-glib, libmagic and gtk-mac-integration. Why is all that needed? Why do I need 3 build systems (ninja, cmake and meson) for a single software? #Programming

wednesday, 22 october #94

21:07 The life of Peliizza da Volpedo

I enjoyed this week of going through de Volpedo's art. It was very interesting. When I saw that he died before aging 40 I thought "greats die young", attributed his death to his life-style. Little I knew that he committed suicide. The Wikipedia page about him sneaks that information real quick "It seemed the beginning of a new period of favour, in which finally artistic and literary groups would recognize the themes of his work. However, the sudden death of Pellizza's wife in 1907 threw the artist into a deep depression. On 14 June of the same year, Pellizza hung himself in his Volpedo studio. He was not yet 40." His story with Giovanni Segantini is as equally tragic. I wonder if any media works, novels, or the like portrayed this tragic life of his. #Art #Pellizza da Volpedo

  • [2025-10-24 Fri 02:16]
    I tried to look for anything that documents his life or letters, but in vain.

CLOCK: [2025-10-24 Fri 02:14]–[2025-10-24 Fri 02:20] => 0:06

c. lr0 2026