Compare commits

...

10 commits

Author SHA1 Message Date
shautvast
12200aa62c delete 'can.md' file 2026-02-16 22:41:44 +01:00
Shautvast
f52267850e layout 2025-10-14 17:23:42 +02:00
Shautvast
ce0e2f8b76 dunno 2025-10-14 17:20:19 +02:00
Shautvast
2777e9ce91 more ideas 2025-10-14 17:19:49 +02:00
Shautvast
0ff2342db6 draft 2025-10-14 17:19:49 +02:00
shautvast
227a191608 create/update 'Ideas.md' file 2025-08-02 11:34:32 +02:00
shautvast
5dfad0cf26 create/update 'Ideas.md' file 2025-08-02 11:34:20 +02:00
shautvast
1c41164b4c create/update 'Ideas.md' file 2025-08-02 11:33:48 +02:00
shautvast
fc78c917a7 create/update 'Ideas.md' file 2025-08-02 11:20:49 +02:00
shautvast
3c8933c315 create/update 'Ideas.md' file 2025-08-02 11:20:33 +02:00
13 changed files with 122 additions and 90 deletions

22
.obsidian/graph.json vendored Normal file
View file

@ -0,0 +1,22 @@
{
"collapse-filter": true,
"search": "",
"showTags": false,
"showAttachments": false,
"hideUnresolved": false,
"showOrphans": true,
"collapse-color-groups": true,
"colorGroups": [],
"collapse-display": true,
"showArrow": false,
"textFadeMultiplier": 0,
"nodeSizeMultiplier": 1,
"lineSizeMultiplier": 1,
"collapse-forces": true,
"centerStrength": 0.518713248970312,
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
"scale": 1,
"close": false
}

View file

@ -4,21 +4,17 @@
"type": "split",
"children": [
{
"id": "5bced732a7d8e497",
"id": "8148ed1567a00a9a",
"type": "tabs",
"children": [
{
"id": "26f2d4238c095833",
"id": "7021d1e5666178d1",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "blog/DDD.md",
"mode": "source",
"source": false
},
"type": "empty",
"state": {},
"icon": "lucide-file",
"title": "DDD"
"title": "New tab"
}
}
]
@ -165,12 +161,19 @@
"command-palette:Open command palette": false
}
},
"active": "26f2d4238c095833",
"active": "7021d1e5666178d1",
"lastOpenFiles": [
"tabellen.md",
"crud-lang/src/Untitled.md",
"crud-lang/README.md.md",
"crud-lang/src",
"Untitled.md",
"crud-lang",
"blog/DDD.md",
"Untitled.canvas",
"blog/uniek.md",
"blog/senior.md",
"blog/hergebruik.md",
"blog/DDD.md",
"blog"
]
}

View file

@ -1,78 +0,0 @@
**can**
I am a member of a secret society. It has its own gospel in the form of a still evolving story, it is not yet written,
that starts with Grandmother Czuckay exclaiming that she would not set foot upon MS Wilhelm Gustloff, since one can not walk on water,
it has no boards. As the official history explains the ship was sunk by the Russians on january 30th 1945. And so they took the train to hannover
where young Holger Schüring, that's his Dutch name, would grow up and found his love of music.
He is of the same generation as the fictional composer Hermann Simon in Edgar Reitz' Heimat. Born out of the shadow of WWII, thoroughly educated on
Bachisch counterpoints, too smart for his teachers, discovering new ways in experimental music
--
Irmin Schmidt en Stockhausen
Stockhausen was godlike. He challenged Irmin when he said: Tomorrow we will dedicate three hours to questions. But I only accep intelligent questions.
Next day, Irmin asked him: Do you think you will get really intelligent questions posed about the work if you act so that everybody thinks,
'I won't ask him, it's not intelligent enough'?
Stockhausen was the last of the gods, traditional composers, writing on paper, divorced from the performance of music.
Irmin's answer was: The intellectual God is Dead. Who are you on that mountain, higher that all of us? Just get down and be normal like any of us.
So is that my secret society's gospel? No, it's not about that per sé, but we will not stand for any authority.
--
Günter Grass - Danziger Trilogie: Die Blechtrommel. Katz und Maus. Hundejahre
Holger lived in the same street (?)
On the question of his nationality, Holger once said: "That I am German is a falsification. That I am Polish is a falsification. That means that
my whole person is a falsification. This happened because my grandfather told the nazis that we must be Aryan. And he made a kind of family tree. And his family tree was just born from fantasy, with no basis behind it. It looked nice..."
--
The nice thing about LCD Soundsystem is that it's not about boys drunk on testosterone going out on a Friday night. It rather hints at the hangover
next day. Or the one in the years after. The whole project was described by James Murphy as an attempt to make something out of his life after reading Infinite Jest by David Foster Wallace and feeling inadequate for not having achieved anything yet. Just spent years wasting time in resentment,
too scared to do anything meaningful. His name dropping is awesome:
```
But I was there
I was there in 1968.
I was there at the first Can show
in Cologne.
...
I was there in 1974 at the first
Suicide practices in a loft in New
York City.
...
I was there when Captain
Beefheart started up his first band.
...
This Heat, Pere Ubu, Outsiders,
Nation of Ulysses, Mars, The
Trojans, The Black Dice, Todd
Terry, The Germs, Section25,
Althea and Donna, Sexual
Harrassment, a-ha, Pere Ubu,
Dorothy Ashby, PIL, the fania All-
Stars, the Bar-Kays, the Human
League, the Normal, Lou Reed,
Scott Walker, Monks, Niagra,
Joy Division, Lower48, the
Association, Sun Ra,
Scientists, Royal Trux, 10cc,
Eric B. and Rakim, Index, Basic
Channel, Soulsonic Force ("just
hit me!"), Juan Atkins, David
Axelrod, Electric Prunes, Gil!
Scott! Heron!, the Slits, Faust,
Mantronix, Pharaoh Sanders and
the Fire Engines, the Swans, the
Soft Cell, the Sonics, the Sonics,
the Sonics, the Sonics.
```
Who is that 'Niagra'? Should that be 'Niagara', a French outfit from the eighties? I admit I did not know them, but they sound a lot like Les
Rita Mitsouko, who I still like better ;) I found them by accident in the library where at the time they lent out LP's, that I would then routinely copy to cassette.
Someone great
Degene die er niet meer is had ook we leven dat ze in de trein zat tegenover willekeurige medereizigers of alleen in een supermarktpad
Porque morir e natural
Omdat sterven natuurlijk is ben ik niet bang voor de dood
Flamenco

View file

@ -11,4 +11,6 @@ Rust image lib ffi Java 22
- Nr of usage locations in project
- Removal score based on above
- retrieve Java version from bytecode
- Nr of transitive dependencies
- Nr of transitive dependencies
- Version lag of transitive dependencies (behind latest)
- Vulns (like checkmarx ) get from nist?

1
Untitled.canvas Normal file
View file

@ -0,0 +1 @@
{}

0
Untitled.md Normal file
View file

View file

@ -1,11 +1,13 @@
**de belofte**
'If programmers are not interested in the domain, they only learn what the application should do, but not the principles behind it. Useful software can be built that way, but the project will never arrive at a point where powerful new features unfold as corollaries to older features'
Roept van alles bij me op, zoals, ben ik wel geïnteresseerd in het domein? Heb ik het altijd fout gedaan? Is dit waarom mijn leven zo moeilijk is en gaat alles straks vanzelf als ik maar betere domein modellen bedenk?
Die twijfels zijn de omgekeerde medaille van de belofte die het boek doet: 'Hé joh, als je wat beter je best doet, wordt alles mooi en gaan de moeilijke dingen vanzelf'.
**de taal metafoor**
Evans beschrijft hoe hij Spaanse les had: het was verboden Engels te praten. Daardoor leerde hij het beter.
Is dit hoe hij op het idee van 'ubiquitous language is gekomen'. Developers dwingen de taal van de business te gebruiken in plaats van technisch jargon?

46
crud-lang/README.md Normal file
View file

@ -0,0 +1,46 @@
# crud-lang
_This is now in first-draft phase. Meaning, I just had the idea and I am jotting down very preliminary design decisions._
- an experimental language for CRUD applications (backend only though)
- Enterprise as a first-class citizen
- urls are made up directories and filenames
- a controller sourcefile is a file with the .ctl extension
- likewise
- .svc services
- .cl service clients (that call other services)
- .dao database access code (not objects)
- .qc queueconsumers
- .qp queueproducers
- .utl utilities
- there is a strict calling hierarchy. A service can not call a controller. It can only go 'down'.
- Services can not call other services, because that is the recipe for spaghetti. Refactor your logic, abstract and put lower level code in utilities.
- Utilities are allowed to call other utilities. OMG, spaghetti after all! TBD
- It is an interpreter written in rust. OMG!
- And it has everything I like in other languages
- strictly typed
- [] is a list
- {} is a map
- no objects, no inheritance
- structs and duck typing
- everything is an expression
- nice iterators.
- First class functions? Maybe...
**types**
- u32, i32
- u64, i64
- f32, f64,
- string, bool, char
- struct enum
**question**
- how to model headers
- middleware, implement later
**the example: **
- a very simple api that listens to GET /api/customers{:id} and returns a customer from the database

View file

@ -0,0 +1,7 @@
GET /(id: u32) -> Json<Customer>:
service.get(id)
struct Customer:
id: u32,
first_name: string,
last_name: string

View file

@ -0,0 +1,2 @@
get(id: u32) -> Customer:
@sql(select id, first_name, last_name from customers where id = :id)

View file

@ -0,0 +1,4 @@
Customer:
id: u32,
first_name: string,
last_name: string,

View file

@ -0,0 +1,2 @@
get(id: u32) -> Customer:
dao.get(id)

19
tabellen.md Normal file
View file

@ -0,0 +1,19 @@
Ik ben niet de eerste die dit zegt, maar het is nog geen gemeengoed.
Als je een tabel definieert, neem dan altijd de volgende kolommen op (in volgorde van urgentie):
1. created_at timestamp
2. created_by varchar
3. deleted_at timestamp null
4. deleted_by varchar null
5. updated_at timestamp null
6. updated_by varchar null
#3 en #4 zijn niet alleen _nullable_, maar ook _optional_. Dat wil zeggen, je kunt het record ook fysiek verwijderen. Maar mijn advies zou zijn:
1. maak een functionele delete logisch (deleted_at/by vullen als een gebruiker iets verwijdert (een functioneel event))
2. maak een fysieke delete na bijvoorbeeld 2 jaar. Om aan juridische eisen te voldoen, of om verloren diskspace terug te krijgen. Of om zeker te weten dat de data niet gestolen kan worden. Of om tegen wie dan ook (toezichthouders, de politie) vol te kunnen houden dat je de data niet hebt.
Geloof me, op een dag zul je er voordeel van hebben.
PS.
#5 zou je zelfs nog kunnen gebruiken als _optimistic locking number_ hoewel een incrementele _integer_ waarde minstens net zo goed is. De overeenkomst is dat beide altijd oplopen. Bij een tijdgebaseerde waarde komen er allerlei vragen bij, zoals wat de precisie is, hoeveel nodes je hebt en of alle klokken gesynchroniseerd zijn.
PS2. Bij de (gerenommeerde) bank waar ik ooit werkte was het 'toezichthouder'-argument één van de redenen voor een fysieke delete.