[{"content":"Dass man in Zig einfach und schnell einen guten HTTP-Server schreiben kann ist wohl keine Neuheit. Was mich aber immer wieder beschäftigt ist, wie man WASM möglichst effektiv einsetzen kann, damit man kaum einen overhead hat und das Entwickeln ergonomisch bleibt.\nDabei müssen wir mehrere Dinge beachten, wenn wir das Frontend mit Zig programmieren wollen:\nDas interface zu WASM bietet nur zahlen als argument, das heisst, strings und dergleichen müssen selbst wieder hergestellt werden. Das Wechseln von WASM zu Javascript und umgekehrt ist kostspielig. WASM hat kein direkter Zugang um den DOM zu bearbeiten. WASM hat auch kein Zugang für sonstige features wie fetch, etc. Aus den letzten zwei Punkten folgt, dass diese als binding via Javascript zur Verfügung gestellt werden müssen, jedoch haben wir dann das Problem des overheads. Genau an dieser stelle kommt async ins Spiel. Meine momentane Idee ist, dass man die ganze Javascript WASM Interaktion mit dem std.Io Interface zu machen, das heisst alles was wir von Zig aus von Javascript wollen ist asynchron, mit dem Vorteil, dass wir mehrere Funktionsaufrufe in einem Schritt in Javascript behandeln können und nicht jedes mal den overhead bezahlen müssen.\nHier ist wie das ungefähr aussehen sollte:\nWir haben eine Komponente genannt SimpleMenu:\n\u0026lt;div id=\u0026#34;container\u0026#34;\u0026gt; \u0026lt;div id=\u0026#34;1\u0026#34; class=\u0026#34;item\u0026#34; @click=\u0026#34;click\u0026#34;\u0026gt;Item 1\u0026lt;/div\u0026gt; \u0026lt;div id=\u0026#34;2\u0026#34; class=\u0026#34;item\u0026#34; @click=\u0026#34;click\u0026#34;\u0026gt;Item 2\u0026lt;/div\u0026gt; \u0026lt;div id=\u0026#34;3\u0026#34; class=\u0026#34;item\u0026#34; @click=\u0026#34;click\u0026#34;\u0026gt;Item 3\u0026lt;/div\u0026gt; \u0026lt;div id=\u0026#34;4\u0026#34; class=\u0026#34;item\u0026#34; @click=\u0026#34;click\u0026#34;\u0026gt;Item 4\u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; const std = @import(\u0026#34;std\u0026#34;); const js = @import(\u0026#34;js\u0026#34;); pub fn click(io: std.Io, event: js.Event) !void { const name: std.Io.Future(js.Value) = event.target.InnerText(); const element: js.Element = js.document.querySelector(io, \u0026#34;#main\u0026#34;).await(io) orelse unreachable; element.setInnerText(io, name.await(io)).await(io); } Ist momentan nur eine Skizze, aber ungefähr so stelle ich mir das vor.\n","permalink":"https://nathanreiner.xyz/posts/webentwicklung-in-zig/","summary":"\u003cp\u003eDass man in Zig einfach und schnell einen guten \u003cem\u003eHTTP\u003c/em\u003e-Server schreiben kann\nist wohl keine Neuheit. Was mich aber immer wieder beschäftigt ist, wie man\n\u003cem\u003eWASM\u003c/em\u003e möglichst effektiv einsetzen kann, damit man kaum einen overhead hat und\ndas Entwickeln ergonomisch bleibt.\u003c/p\u003e\n\u003cp\u003eDabei müssen wir mehrere Dinge beachten, wenn wir das Frontend mit Zig programmieren wollen:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDas interface zu \u003cem\u003eWASM\u003c/em\u003e bietet nur zahlen als argument, das heisst, strings und dergleichen müssen selbst wieder hergestellt werden.\u003c/li\u003e\n\u003cli\u003eDas Wechseln von \u003cem\u003eWASM\u003c/em\u003e zu Javascript und umgekehrt ist kostspielig.\u003c/li\u003e\n\u003cli\u003e\u003cem\u003eWASM\u003c/em\u003e hat kein direkter Zugang um den \u003cem\u003eDOM\u003c/em\u003e zu bearbeiten.\u003c/li\u003e\n\u003cli\u003e\u003cem\u003eWASM\u003c/em\u003e hat auch kein Zugang für sonstige features wie \u003cem\u003efetch\u003c/em\u003e, etc.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAus den letzten zwei Punkten folgt, dass diese als binding via Javascript zur\nVerfügung gestellt werden müssen, jedoch haben wir dann das Problem des\noverheads. Genau an dieser stelle kommt \u003ccode\u003easync\u003c/code\u003e ins Spiel. Meine momentane Idee\nist, dass man die ganze Javascript \u003cem\u003eWASM\u003c/em\u003e Interaktion mit dem \u003ca href=\"https://ziglang.org/documentation/0.16.0/std/#std.Io\"\u003e\u003ccode\u003estd.Io\u003c/code\u003e\u003c/a\u003e\nInterface zu machen, das heisst alles was wir von Zig aus von Javascript wollen ist asynchron, mit dem Vorteil, dass wir\nmehrere Funktionsaufrufe in einem Schritt in Javascript behandeln können und nicht jedes mal den overhead bezahlen müssen.\u003c/p\u003e","title":"Webentwicklung in Zig"},{"content":"Wie man die Bibel liest, hat einen direkten Einfluss darauf, wie man sein Leben schlussendlich gestaltet. Doch was mir immer wieder auffällt, ist, dass wir am liebsten die Bibel für jemand anderen lesen. Nicht um Gott zu verstehen oder seine Weisungen und Rat zu erkennen, sondern um Recht zu haben und die Fehlbarkeit anderer zu sehen.\nSchnell denkt man sich, wieso andere diese Stellen nicht genauer lesen, es sich zu Herzen nehmen und was ihnen überhaupt einfällt gegen Gottes Wort zu verstossen. Doch ist das die richtige Nutzung des Wortes?\nDie knifflige Sache mit der Unterstellung Vor einiger Zeit hatte ich in der Kirche eine Unterhaltung mit einem Freund. Am Tag zuvor war er an einer Hochzeit und er freute sich darüber, was der Pfarrer im Gottesdienst zum frisch vermählten Ehepaar sagte. Mein Freund meinte, dass endlich wieder einmal jemand sagte, was gesagt werden müsse, und zwar \u0026ldquo;Die Frau sollte sich dem Mann unterstellen.\u0026rdquo;\nIch war sehr erstaunt, dass er sich so sehr über diese Nachricht erfreute, und bohrte nach, ob er auch etwas zu den Pflichten des Mannes gesagt hatte. Seine Antwort: \u0026ldquo;Keine Ahnung.\u0026rdquo;\nNur als kleine Randnotiz, meine Intention mit dieser Anekdote ist nicht, mein Freund vor den Bus zu werfen, sondern im Gegenteil, mein eigenes Verhalten zu hinterfragen. Er hat es mir in dieser Unterhaltung einfach aufgezeigt, was für Tendenzen in jedem stecken können.\nAlso habe ich mich hingesetzt und diese Stellen noch einmal genauer in der Bibel untersucht. Wenn man die Bibel mit der Absicht liest, etwas zu finden, wonach Frauen unterdrückt werden sollen, würde die folgende Stelle passen:\nIhr Frauen, ordnet euch euren eigenen Männern unter als dem Herrn;1\nOhne Kontext wirkt dieser Vers eindeutig und direkt, doch wie alles im Leben hat ein Vers einen Kontext.\ndenn der Mann ist das Haupt der Frau, wie auch der Christus das Haupt der Gemeinde ist; und er ist der Retter des Leibes. Wie nun die Gemeinde sich dem Christus unterordnet, so auch die Frauen ihren eigenen Männern in allem. Ihr Männer, liebt eure Frauen, gleichwie auch der Christus die Gemeinde geliebt hat und sich selbst für sie hingegeben hat, damit er sie heilige, nachdem er sie gereinigt hat durch das Wasserbad im Wort, damit er sie sich selbst darstelle als eine Gemeinde, die herrlich sei, sodass sie weder Flecken noch Runzeln noch etwas Ähnliches habe, sondern dass sie heilig und tadellos sei. Ebenso sind die Männer verpflichtet, ihre eigenen Frauen zu lieben wie ihre eigenen Leiber; wer seine Frau liebt, der liebt sich selbst.2\nWie man sehen kann, ist, wenn man sich nur ein wenig gründlicher mit dieser Stelle auseinandersetzt, die Situation, die von Paulus geschildert wird, komplett anders. Er schildert eine gegenseitige Haltung des Dienens, nicht die einseitige Haltung der Unterwerfung. Jedoch wenn man solche Stellen nicht richtig bis zu Ende liest, sieht es so aus, als würde ein sehr diskriminierendes Weltbild vertreten werden. Jedoch das Gegenteil ist eigentlich der Fall. Paulus vertritt in all seinen Briefen ein, im Vergleich zur damaligen Zeit, extrem fortschrittliches auf Hingabe basierendes Weltbild, das er auf Grund seines Wissens über die Schriften auch belegen kann.\nWas ich dabei mitnehme Worauf ich hinaus will, ist nicht, was die Bibel über das Verhältnis zwischen Mann und Frau sagt, auch wenn das auch interessant wäre um mal genauer unter die Lupe zu nehmen. Das Wichtige an dieser Anekdote ist, dass ich als Mann mich zuerst darum kümmern sollte, was der Herr von mir verlangt und nicht von meinen Mitmenschen. Das heisst, wenn von mir verlangt wird, dass ich meine Frau so lieben soll, wie Christus die Gemeinde, sollte ich mich immer zuerst darum kümmern, bevor ich Frauen vorschreiben kann, dass sie sich dem Mann unterordnen sollen.\nDu Heuchler, zieh zuerst den Balken aus deinem Auge, und dann wirst du klar sehen, um den Splitter aus dem Auge deines Bruders zu ziehen!3\nEph. 5:22 (SLT)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nEph. 5:23-28 (SLT)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nMt. 7:5 (SLT)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","permalink":"https://nathanreiner.xyz/posts/was-ist-mit-dir/","summary":"\u003cp\u003eWie man die Bibel liest, hat einen direkten Einfluss darauf, wie man sein Leben\nschlussendlich gestaltet. Doch was mir immer wieder auffällt, ist, dass wir am\nliebsten die Bibel für jemand anderen lesen. Nicht um Gott\nzu verstehen oder seine Weisungen und Rat zu erkennen, sondern um Recht zu\nhaben und die Fehlbarkeit anderer zu sehen.\u003c/p\u003e\n\u003cp\u003eSchnell denkt man sich, wieso andere diese Stellen nicht genauer lesen, es sich zu\nHerzen nehmen und was ihnen überhaupt einfällt gegen Gottes Wort zu verstossen.\nDoch ist das die richtige Nutzung des Wortes?\u003c/p\u003e","title":"Was ist mit dir?"}]