Week 2023-W27 in reading

Reactive systems


Key properties of a Reactive system:

  • responsive — responds in a reasonable time if possible;
  • resilient — stays responsive even when failures occur (e.g. fail gently, isolate failures so they don't propagate and cause the whole system to fail);
  • elastic — stays responsive under varying load;
  • message-driven — relies on asynchronous communication.

My key take-away here is that asynchronously processed messages update some model behind the scenes, so when the time comes to return some data to the user, it is ready. However, this probably involves eventual consistency and increased complexity.

See also:

Evolving HTTP APIs

Source: Evolving HTTP APIs

  1. Compatible versions shouldn't cause any adjustments (shouldn't change versions).
  2. Avoid major / incompatible versions.
  3. Be backward-compatible, but still limiting the impact. New version requires everyone to adapt, so keeping the same version with some adjustments might make more sense from effort perspective.

Self-contained Systems


This idea doesn't sound very innovative, while it does sound a bit strict. Experience tells me being strict is good in theory, while practice one has to be flexible/open and mix things to achieve goals.

Firefox 115.0 release notes

According to release notes:

Certain Firefox users may come across a message in the extensions panel indicating that their add-ons are not allowed on the site currently open. We have introduced a new back-end feature to only allow some extensions monitored by Mozilla to run on specific websites for various reasons, including security concerns.

However, this isn't very transparent about those other reasons for blocking extensions. Could for example Google request Mozilla to disable ad-blockers on YouTube?

Czy praca naprawdę popłaca?


W tym krótkim tekście L. Susan Brown:

  1. wyjaśnia dlaczego relacja pracodawca–pracownik jest identyczna z relacją pan–niewolnik — bo pracownik rezygnuje z części swojej wolności na czas wykonywania pracy najemnej;
  2. podważa pojęcie “własności w osobie” — pracownik jest niepodzielną istotą i nie może oddelegować pracy do swoich umiejętności wykorzystywanych przez pracodawcę, tylko całą swoją osobę angażuje w wykonywanie pracy (nie może np. skorzystać ze wszystkich innych swoich umiejętności i możliwości);
  3. pokazuje że barter wcale nie jest rozwiązaniem i przytacza trudności z oceną wartości pracy;
  4. zachęca do tzw. pracy wolnej, wykonywanej z poczucia potrzeby a nie dla zysku.

Przykładem pracy wolnej jest np. moje zaangażowanie w FOSS.