From: 2weiEmu Date: Sun, 5 Apr 2026 16:55:23 +0000 (+0200) Subject: many notes on holiday discussion, make NATO and EU 42(7) section later X-Git-Url: https://git.saalbach.dev/?a=commitdiff_plain;h=9a19393dd841a59fd20b1268de726374b14014c5;p=research-obsidian.git many notes on holiday discussion, make NATO and EU 42(7) section later --- diff --git a/.obsidian/app.json b/.obsidian/app.json index e0dc070..80ca467 100644 --- a/.obsidian/app.json +++ b/.obsidian/app.json @@ -11,5 +11,5 @@ }, "promptDelete": false, "openBehavior": "file:List of things to do", - "readableLineLength": false + "readableLineLength": true } \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index c2aa2f2..c9c6279 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -2,5 +2,6 @@ "excel", "highlightr-plugin", "colored-text", - "pdf-plus" + "pdf-plus", + "obsidian-timeline" ] \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-timeline/main.js b/.obsidian/plugins/obsidian-timeline/main.js new file mode 100644 index 0000000..89bf30e --- /dev/null +++ b/.obsidian/plugins/obsidian-timeline/main.js @@ -0,0 +1,123 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ROLLUP +if you want to view the source visit the plugins github repository +*/ + +'use strict'; + +var obsidian = require('obsidian'); + +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ + +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +const labeledRegex = /^[ \t]*date:(.+?)(?:^[ \t]*title:(.+?))?(?:^[ \t]*content:(.+?))?(?=^[ \t]*date:)/gimsu; +const timelineLabeledParser = (source) => { + source += "\ndate: "; + let sourceMatch; + const parsed = []; + while ((sourceMatch = labeledRegex.exec(source)) !== null) { + parsed.push({ + time: sourceMatch[1], + title: sourceMatch[2], + description: sourceMatch[3] + }); + } + return parsed; +}; +const timelineParser = (source) => { + const sourceSplitted = source.split(/^\s*\+ ?/gm).slice(1); + sourceSplitted.push("", ""); + const parsed = []; + const counter = sourceSplitted.length - (sourceSplitted.length % 3); + for (let i = 0; i < counter; i += 3) { + parsed.push({ + time: sourceSplitted[i], + title: sourceSplitted[i + 1], + description: sourceSplitted[i + 2] + }); + } + return parsed; +}; +const toExport = [ + { tag: "timeline", parser: timelineParser }, + { tag: "timeline-labeled", parser: timelineLabeledParser }, +]; + +class TimelineElement { + constructor(root, sourcePath) { + this.addEvent = (info) => { + Object.entries(info).map(([key, val]) => { + const element = this.root.createDiv({ cls: key }); + const text = val; + obsidian.MarkdownRenderer.renderMarkdown(text, element, this.sourcePath, null); + return [key, element]; + }); + }; + this.getElement = () => this.root; + this.root = root.createDiv({ cls: 'timeline' }); + this.sourcePath = sourcePath; + } +} + +const classRegex = /(?<=^\s*)\[.+?\]/gs; +const toClassArray = (input) => { + input = input.trim(); + if (input[0] != "[" || input[input.length - 1] != "]") + return []; + return input + .substring(1, input.length - 1) + .trim() + .split(/\s*,\s*/); +}; +class TimelinePlugin extends obsidian.Plugin { + constructor() { + super(...arguments); + this.onload = () => __awaiter(this, void 0, void 0, function* () { + toExport.forEach(({ tag, parser }) => { + this.registerMarkdownCodeBlockProcessor(tag, (source, root, ctx) => { + const timelineElement = new TimelineElement(root, ctx.sourcePath); + const el = timelineElement.getElement(); + el.addClass("timeline"); + const classMatch = source.match(classRegex); + if (classMatch !== null) { + const classes = toClassArray(classMatch[0]); + el.addClasses(classes); + } + const events = parser(source); + events.forEach(e => timelineElement.addEvent(e)); + }); + }); + console.log("timeline load"); + }); + this.onunload = () => __awaiter(this, void 0, void 0, function* () { + console.log("timeline onunload"); + }); + } +} + +module.exports = TimelinePlugin; + + +/* nosourcemap */ \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-timeline/manifest.json b/.obsidian/plugins/obsidian-timeline/manifest.json new file mode 100644 index 0000000..29bbf2a --- /dev/null +++ b/.obsidian/plugins/obsidian-timeline/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-timeline", + "name": "Timeline", + "version": "1.1.0", + "minAppVersion": "0.15.6", + "description": "Used to build great timelines", + "author": "George Butco", + "authorUrl": "", + "isDesktopOnly": false +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-timeline/styles.css b/.obsidian/plugins/obsidian-timeline/styles.css new file mode 100644 index 0000000..a492212 --- /dev/null +++ b/.obsidian/plugins/obsidian-timeline/styles.css @@ -0,0 +1 @@ +.timeline.line-2 .time::before,.timeline.line-2 .time::after{right:-2.2rem;top:50%;transform:translateY(-50%);border-radius:50%}.timeline.line-2 .time::before{height:1.2rem;width:1.2rem}.timeline.line-2 .time::after{background:rgba(0,0,0,0);border:.2rem solid var(--text-normal);height:.8rem;width:.8rem;opacity:.15}.timeline.line-2::before{width:.2rem;opacity:.15}.timeline.line-3 .time::before{background:var(--timeline-active-color);height:1rem;width:1rem;border:.3rem solid var(--background-primary);right:-2.45rem;top:50%;transform:translateY(-50%);border-radius:50%}.timeline.line-3 .time::after{background:rgba(0,0,0,0)}.timeline.line-3::before{width:.3rem;opacity:.15}.timeline.line-4 .time::before,.timeline.line-4 .time::after{top:50%;transform:translateY(-50%);border-radius:50%}.timeline.line-4 .time::before{background:var(--text-normal);height:1.3rem;width:1.3rem;right:-2.225rem}.timeline.line-4 .time::after{opacity:1;background:var(--timeline-active-color);height:.85rem;width:.85rem;right:-2rem}.timeline.line-4::before{opacity:1;width:.15rem;background-color:rgba(0,0,0,0);background-image:linear-gradient(var(--text-normal) 60%, rgba(255, 255, 255, 0) 0%);background-position:right;background-size:.15rem 1.5rem;background-repeat:repeat-y}.timeline.line-5 .time::before,.timeline.line-5 .time::after{top:50%}.timeline.line-5 .time::before{width:3rem;height:3rem;right:-3.1rem;transform:translateY(-50%)}.timeline.line-5 .time::after{width:1rem;height:1rem;right:0;transform:translateY(-50%) translateX(2.1rem) rotate(45deg)}.timeline.line-5::before{width:.2rem;opacity:.25}.timeline.spaced-lines>.description p{line-height:1.7rem}.timeline.hide-titles>.title{display:none}.timeline{--timeline-active-color: var(--background-modifier-success)}.timeline.active-color-background-modifier-success{--timeline-active-color: var(--background-modifier-success)}.timeline.active-color-background-modifier-error{--timeline-active-color: var(--background-modifier-error)}.timeline.active-color-background-modifier-error-hover{--timeline-active-color: var(--background-modifier-error-hover)}.timeline.active-color-text-accent{--timeline-active-color: var(--text-accent)}.timeline.active-color-text-accent-hover{--timeline-active-color: var(--text-accent-hover)}.timeline.active-color-text-error{--timeline-active-color: var(--text-error)}.timeline.active-color-text-error-hover{--timeline-active-color: var(--text-error-hover)}.timeline.active-color-text-selection{--timeline-active-color: var(--text-selection)}.timeline.active-color-interactive-accent{--timeline-active-color: var(--interactive-accent)}.timeline.active-color-interactive-accent-hover{--timeline-active-color: var(--interactive-accent-hover)}.timeline.active-color-interactive-success{--timeline-active-color: var(--interactive-success)}.timeline{display:grid;grid-template-columns:auto auto 1fr;column-gap:1.5rem;margin:2.3rem 0}.timeline .time>*:first-child,.timeline .title>*:first-child,.timeline .description>*:first-child{margin-top:0}.timeline .time>*:last-child,.timeline .title>*:last-child,.timeline .description>*:last-child{margin-bottom:0}.timeline .description,.timeline .title{grid-column:3}.timeline .time,.timeline .title{display:flex;flex-direction:column;justify-content:center;padding:.4em 0}.timeline .time>*,.timeline .title>*{font-size:1.3em;font-weight:bold}.timeline .time{grid-column:1;position:relative;justify-self:right;text-align:right}.timeline .time::before,.timeline .time::after{content:" ";position:absolute;height:100%;width:.5rem;right:-2rem;top:0}.timeline .time::before{background-color:var(--background-primary)}.timeline .time::after{background-color:var(--text-normal);opacity:.25}.timeline .description{position:relative;margin-bottom:4.5rem;padding-top:.4em}.timeline .description::after{content:" ";position:absolute;border-bottom:.1rem dashed var(--text-normal);opacity:.1;width:100%;height:2.25rem}.timeline .description:last-child{margin-bottom:.4em}.timeline .description:last-child::after{display:none}.timeline::before{content:"";height:100%;width:.5rem;grid-column:2/span 1;grid-row-start:1;grid-row-end:span 1000;background-color:var(--text-normal);opacity:.1}.timeline.body-2>.title,.timeline.body-2>.description,.timeline.body-3>.title,.timeline.body-3>.description,.timeline.body-4>.title,.timeline.body-4>.description{background-color:var(--background-primary-alt)}.timeline.body-2 .description::after,.timeline.body-3 .description::after,.timeline.body-4 .description::after{display:none}.timeline.body-2 .description,.timeline.body-2 .title,.timeline.body-4 .description,.timeline.body-4 .title{padding:1.5rem;padding-top:.4em}.timeline.body-2 .title,.timeline.body-4 .title{padding-bottom:0}.timeline.body-2 .time,.timeline.body-4 .time{margin-top:.4em}.timeline.body-2 .title{border-radius:1.5rem 1.5rem 0 0}.timeline.body-2 .description{border-radius:0 0 1.5rem 1.5rem}.timeline.body-3 .title,.timeline.body-3 .description{margin-left:1rem}.timeline.body-3 .title{position:relative;background:var(--timeline-active-color);padding-left:1.5rem;padding-right:1.5rem}.timeline.body-3 .title::before{content:"";position:absolute;width:2rem;background:var(--timeline-active-color);top:0;bottom:0;left:-1rem;clip-path:polygon(1rem 0, 100% 0, 100% 100%, 1rem 100%, 0 50%)}.timeline.body-3 .description{padding:1.5rem}.timeline.body-4 .title,.timeline.body-4 .description{border-left:.3rem solid var(--timeline-active-color)} \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index b76f23d..8b467dc 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,16 +4,16 @@ "type": "split", "children": [ { - "id": "901a5011597732a5", + "id": "9e4a650806b6d2f1", "type": "tabs", "children": [ { - "id": "1598ee3eb0962476", + "id": "e23fc6ceeee74617", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "Watchlist & Do List.md", + "file": "Folkhemmet, trust and a split society.md", "mode": "source", "source": false, "backlinks": true, @@ -28,7 +28,7 @@ } }, "icon": "lucide-file", - "title": "Watchlist & Do List" + "title": "Folkhemmet, trust and a split society" } } ] @@ -174,53 +174,53 @@ "pdf-plus:PDF++: Toggle auto-paste": false } }, - "active": "1598ee3eb0962476", + "active": "e23fc6ceeee74617", "lastOpenFiles": [ + "Folkhemmet, trust and a split society.md", + "Watchlist & Do List.md", "List of things to do.md", - "DGG Hackathon Simple Cheatsheet.md", "WP and Flamethrowers/Apparently White Phosphorus and Flamethrowers are not illegal under international law.md", "WP and Flamethrowers", - "Nebulous Command/Missile Interception/Det. vs. Intc. vs. Saturation.md", - "Nebulous Command/Missile Interception/Data.md", - "Nebulous Command/Missile Interception/Effective Defense Layouts.md", "Nebulous Command/Missile Interception/Test Layouts/SCC_SGM211_Layout.png", - "Nebulous Command/Missile Interception/Test Layouts", - "Nebulous Command/Missile Interception/Missile Designs.md", - "Nebulous Command/Missile Interception/Missile Images/SGM-211_Engine.png", - "Nebulous Command/Missile Interception/Missile Images", - "Nebulous Command/ANS/My Fleets/ANS Dedicated/Stat Sheet.md", "Nebulous Command/Missile Interception/Ship Images/SCC_Layout.png", + "Nebulous Command/Missile Interception/Missile Images/SGM-211_Engine.png", + "Nebulous Command/Missile Interception/Test Layouts", "Nebulous Command/Missile Interception/Ship Images", - "4th and 5th Gen Fighters/Grippen and F-35 Deep Dive.md", + "Nebulous Command/Missile Interception/Missile Images", + "Nebulous Command/Missile Interception/Missile Designs.md", + "Nebulous Command/Missile Interception/Effective Defense Layouts.md", + "Nebulous Command/Missile Interception/Det. vs. Intc. vs. Saturation.md", + "Nebulous Command/Missile Interception/Data.md", "Nebulous Command/Missile Interception", - "get over it, everyone's tipsy. Dance..md", - "Introduction, Software Project.md", - "Blog/sis50.nl Experiences Writing that Software.md", - "Blog/My Design Philosophy when creating (web) apps.md", - "Blog/Engine-Light and Experiences writing that Software.md", - "Bundesverfassungsgericht/References on Bundesverfassungsgericht.md", - "Bundesverfassungsgericht/Urteil_des_Ersten_Senats_vom_5_November_2019.pdf", - "Daily/25-01-2025.md", - "Daily/23-01-2025.md", - "Daily/27-01-2025.md", - "Daily/22-01-2025.md", - "Daily/19-01-2025.md", - "Daily/16-01-2025.md", - "Dead Poet's Society/Some Notes.md", - "European Military Capability/On the Military Readiness of Europe.md", - "European Military Capability/References on European Military Capability.md", - "European Union/Child Sexual Abuse Act/Notes on the Original Document.md", - "European Union/Child Sexual Abuse Act/cellar_13e33abf-d209-11ec-a95f-01aa75ed71a1.0001.02_DOC_1.pdf", - "Nebulous Command/Notes on Nebulous Command.md", - "NoteOn/note-on-logo.png", - "NoteOn/note-on-500-oops.svg", - "NoteOn/note-on-404-not-found.svg", - "NoteOn/note-on-401-unauthorized.svg", - "NoteOn/Frame 1.png", - "Radar and Stealth/Method_Of_Edge_Waves_In_The_Physical_Theory_Of_Diffraction.pdf", + "DGG Hackathon Simple Cheatsheet.md", + "System Overview and Links.md", + "Thoughts on Politics and Researching, and finding out things that you think are right.md", + "WT Skins.md", + "some_ideas.md", + "4th and 5th Gen Fighters/Grippen and F-35 Deep Dive.md", + "Untitled 1.md", + "Recipes.md", + "Some cool music perhaps?.md", "University/Machine Learning/Images/Pasted image 20251025120122.png", + "University/Machine Learning/Full Notes.md", "University/Machine Learning/Images/Pasted image 20251025122036.png", + "University/Machine Learning/Images/Pasted image 20251025161239.png", + "University/Machine Learning/Images/Pasted image 20251025164452.png", + "University/Machine Learning/Images/Pasted image 20251025121602.png", + "Pasted image 20250207160807.png", + "Pasted image 20250103161642.png", "University/Machine Learning/Images", - "University/Functional Programming/test.hs~" + "University/Functional Programming/Functional Programming Round 2 Full Notes.md", + "University/Functional Programming/test.hs~", + "University/Functional Programming/test.hs", + "University/Functional Programming/Functional Programming Introduction.md", + "University/Functional Programming/Lecture 2.md", + "University/Algorithm Design/Full Notes - Run 2.md", + "Robert's Opsec Policy/Robert's Opsec Policy.md", + "Robert's Opsec Policy", + "Poems that I like/Poems that I like.md", + "Poems that I like", + "Nebulous Command/Notes on Mechanics.md", + "Nebulous Command/ANS/My Fleets/ANS Dedicated/Stat Sheet.md" ] } \ No newline at end of file diff --git a/Folkhemmet, trust and a split society.md b/Folkhemmet, trust and a split society.md new file mode 100644 index 0000000..1d51d55 --- /dev/null +++ b/Folkhemmet, trust and a split society.md @@ -0,0 +1,51 @@ +The main reason that I am writing this is because when I was in Germany for Easter (well slightly before), but we had all come together there in order to have a nice bit of time together while we could and everyone had some free time. During this time we do a lot of talking and discussing, a combination that is apparently perfectly driven by the 4 of us, especially regarding some political concepts or ideas about personal freedom. + +The four of us being: my older sister, her boyfriend (they are essentially married, and have been together 13 happy years), my younger brother and I. During this time we hit on the idea of conscription in Ukraine (this would only be the beginning of discussion that would last to 3am and beyond). This was quickly generalised to conscription in general. + +Now conscription is a very difficult topic, but not the main point that I want to say anything about, because the main split was that, forced conscription is morally wrong to us, but that does not mean that some people would not sign up. My sister, if I understood her argument correctly, was of the mind, like my brother and I, that the reasons to join up, and being forced to join up, aren't really that strong. To defend, something in the middle of Europe (we are German). Sweden on the other hand, the place of origin for my sister's boyfriend, is a country focused a lot more on the idea of total defence - or, at least, ideally is. And that if he was called up to defend Sweden (in a civil capacity, as he would be assigned a teaching position) he would feel a sense of duty to respond to the call and go back to Sweden to participate in its defence (in his capacity). This sense of duty wasn't really felt by us. + +In the middle of this conversation there was a lot of different confusions, miscommunications and a tangent into women's rights and roles in society (and how East Germany was somewhat good for future women's rights and roles in the reunited Germany), so by no means did we land here with a straight shot but the conclusion, that we arrived at is: +> Germany as a country has a smaller sense of identity and unity, than something like Sweden and, due to its history places more emphasis on individual rights than Sweden (not to say Swedes don't enjoy good individual rights), which has a more "collectivist" (not strictly collectivist, but Folkhemmet, something we will come to later) mindset. + +Now there are many things that I took issue with throughout the entire discussion that I might come back to later, but right now I want to explore these concepts, or at least, the final conclusion that we had come to. + +Now, if I recall correctly the way that my sister's boyfriend would describe the idea of Folkhemmet, is as a happy middle of socialist collectivist, Warsaw Pact, ideology and capitalist individualist, Western-American Style, ideology. The claim is that this partially originated as a consequence of how Sweden setup it's country and the decisions that historically moved it towards it, and its, eventual, relatively radical neutrality (which recently had the pleasure of having to be overturned, partially, due to pragmatic concerns). + +To explain exactly what I will be exploring it will be the following: +- A recent (1830+) history of _Swedish national identity_ +- A recent (1830+) history of _German _national identity_ +- What do we mean by _Folkhemmet_ and how can it be understood? And what makes it unqiue? +- What is the one end of _Socialist Collectivist_ thinking? +- What is the counterpart in _Capitalist Individualism_? + - What is are _High-_ and _Low-trust_ societies. +(I feel myself become Tolstoy as I keep moving these dates further and further back, thinking how I could possibly explain this one part of the history without explaining the previous one, but this cannot become War and Peace.) + +- How have these histories flowed into these different ways of thinking, and what about Folkhemmet is so different to how Germans view their nation today? + +# Swedish National Identity (gathering things) +https://www.thelocal.se/20140814/sweden-and-norway-celebrate-200-years-of-peace (weak source) - the war of 1814 against Norway was the last time in history that Sweden has been at war. + +Strong swedish grassroots movements in 1850+? +> These movements precipitated Sweden's migration into a modern parliamentary democracy, achieved by the time of World War I. +> (from wikipedia) +- strong foundation for democratic principles +Failed communist revolution in 1917? + +Swedish history during the first world war seems complicated, as there was a lot of cooperation with the germans (under what I imagine was quite strong pressure) + +the same idea basically applies to WW2, though here Germany also directly cut off a lot of swedish shipping to others. + +fuck me this is a clusterfuck +Let me make a timeline + +```timeline-labeled +[line-3, body-2] +date: 1850 +title: Begin of Large-scale Swedish Immigration to US +content: +Starting here more, until 1910 more than 1 million swedes move to the US. For context: [[#Swedish Population throughout time]] +``` + + +## Swedish Population throughout time +https://www.statistikdatabasen.scb.se/pxweb/en/ssd/START__BE__BE0101__BE0101A/BefolkningR1860N/ (need to do some processing on this, but this is data from 1860, onwards, at least you can find it and many other things here) \ No newline at end of file