IRC Logs for #zfx


2021-11-22

06:29:55 Magister joined the channel
07:55:47 xq: IceMichael: für den sprach-vergleich. perf dürfte quasi überall exakt gleich sein, außer bei Go
07:56:06 xq: und JA
07:56:11 xq: PGM ist das geilste debugging-format ever
08:09:49 xq: https://twitter.com/andy_kelley/status/1462526385579126785 :O
08:18:21 xq: https://www.reddit.com/r/ProgrammerHumor/comments/qx9dkv/zig_1_mascot_isnt_enough/
08:18:23 xq: hihi
08:26:04 IceMichael: moin
08:28:39 xq: huhu o/
09:51:56 IceMichael: xq, ja zigbuild scheint immer populärer zu werden... das läuft einfach out of the box für alle Plattformen oder wie? Aber dann muss jede lib das auch anbieten, was für Qt dann zB wild ist oder wie war das?
10:11:36 xq: für qt wärs n bissi hardcore
10:11:43 xq: vorallem weil du qmake sowieso brauchst für die moc files
10:11:56 xq: aber grundlegend für reine C/C++-Projekte läuft das out-of-the-box any-to-any compilation
10:11:57 xq: ja
10:11:58 xq: :D
10:12:16 IceMichael: ja, qmake ist halt immer noch son extra ingredient
10:12:19 xq: es ist halt die schmerzfreiste option, die grade aufm markt ist
10:12:32 IceMichael: na ja, C++ out of the box kann ja nix, hat keine libs
10:12:38 xq: aber irgendwann(tm) bau ich mir meine "compiliere qt from source selbst".zig
10:12:48 IceMichael: oh das wäre der Wahnsinn
10:12:49 xq: IceMichael: dann compilierst du die libs halt lokal auch damit ;)
10:12:54 IceMichael: wobei Qt sicher eh stirbt
10:13:00 xq: ne, denke nicht
10:13:07 xq: Qt ist zu alternativlos
10:13:13 IceMichael: es geht
10:13:27 IceMichael: Qt ist mittlerweile so behindert, dass wir das Frontend auf Web shiften
10:13:33 IceMichael: die sägen am eigenen Ast
10:13:38 xq: ja, ich würde auch auf Qt5 bleiben
10:13:46 IceMichael: im Prinzip geht damit C++ also UI-Sprache gleich mit kaputt, weil es kein vernünftiges UI gibt
10:13:49 IceMichael: ja, aber selbst dann
10:13:50 xq: <= sollte sich mal die qt-repos klonen und forken ^^
10:13:58 IceMichael: Qt5 hat ewig viele Bugs, die nicht gefixt werden, es geht mir nur noch auf den Senkel
10:14:15 IceMichael: QML QML QML... warum sollte man bei Widgets noch irgendwas fixen?
10:14:23 IceMichael: und QML kommt aus den Kinderschuhen auch nicht raus :(
10:14:43 xq: QML ist käse
10:14:50 IceMichael: und bei Web ist es halt schon geil, man findet die abgefahrensten Opensource-Views für alle möglichen Zwecke
10:15:09 IceMichael: ja, aber Qt company versteift sich total auf QML, die machen nur noch das richtig weiter
10:15:39 xq: mhm
10:15:49 xq: kann halt auch sein, dass QML mit den closed source dingen richtig hart fetzt
10:16:13 IceMichael: für mich ist Qt gestorben seit der TreeView-Geschichte
10:16:15 IceMichael: das war einfach zu hart
10:16:27 xq: was war da?
10:16:37 xq: für mich funktioniert das treeview 🙈
10:16:48 IceMichael: es gibt bei QML halt widgets1 und widgets2
10:16:58 IceMichael: was nötig ist, weil widgets1 halt ... alt und unvollständig und buggy usw. sind
10:17:05 IceMichael: aber die haben sich geweigert TreeView für widgets2 zu machen
10:17:09 IceMichael: top-3-most-upvoted-feature von der Community. Wurd jahrelang (mittlerweile, glaub ich) einfach ignoriert
10:17:26 IceMichael: nachdem der Druck immer größer wurde kam was? Die haben in ihrem behinderten Marketplace was für 15$ oder so angeboten
10:17:31 IceMichael: das hat irgendwer getestet, ist anscheinend Schrott
10:17:44 xq: the fuck
10:17:56 xq: wird zeit, dass ich DunstUI aus Dunstblick rausfaktoriere
10:17:58 xq: *grin*
10:18:03 xq: und sowas wie "Textbox" implementiere
10:18:07 IceMichael: moment, mal raussuchen
10:18:16 IceMichael: ja, mach DunstUI mal geil :D
10:18:40 IceMichael: na ja, im Endeffekt ist Web schon okay. HTML+CSS+JS nervt zwar irgendwie, aber es ist so riesig, dass es dafür alles gibt
10:18:56 IceMichael: wäre halt cool, wenn das C++-Binding mal besser wird wie mit diesem Webview-Ding von github, aber das hat ja nur v0.1
10:19:04 IceMichael: und mit electron muss man C++ halt wieder rauskapseln, nicht so nett
10:19:09 xq: guck dir mal https://svelte.dev/ an
10:19:41 IceMichael: hier übrigens der TreeView-Link im Bugtracker, falls es dich interssiert. Hat mittlerweile am zweitmeisten Votes: https://bugreports.qt.io/browse/QTBUG-61630?filter=-4&jql=ORDER%20BY%20votes%20DESC%2C%20created%20DESC
10:19:57 IceMichael: created Jun'17... da sieht man mal, dass Qt auf die Community scheißt
10:20:15 xq: ich find die idee mit der trennung zwischen web-frontend und c++-backend eigentlich ganz nice
10:20:26 xq: aber aktuell keine schönen lösungen auf dem markt
10:20:29 xq: was aber richtig fett wäre
10:20:39 xq: wenn der Browser von SerenityOS auch crossplatform wäre
10:20:49 IceMichael: hm, hat svelte ein C++-bindng? weil sonst find ich reactJS schon nett
10:20:57 IceMichael: "noch einfacher" brauch ich eigentlich nicht :)
10:21:12 IceMichael: ja, C++ als Backend wäre nett, aber die Schnittstelle bauen nervt halt :/
10:21:28 IceMichael: alles als extern "C" ist Arbeit, wasm ist Arbeit, REST-API ist Arbeit...
10:21:55 xq: Svelte ist halt *echt* convenient
10:22:09 xq: wasm ist überraschend geil imho
10:22:17 xq: jemand hat mit zig nen immediate mode dom renderer gebaut
10:22:20 xq: das war echt geil
10:22:36 joeydee joined the channel
10:22:39 xq: mit Dunstblick werd ich das ja eh mal excercisen
10:22:43 joeydee: moin
10:22:45 xq: also, Zig im Frontend im Browser
10:22:48 xq: moin joeydee o/
10:23:05 joeydee: cool, der Weekend-Raytracer :D
10:23:26 joeydee: hab ihn aber noch nicht compiliert, nur kurz drübergeschaut
10:28:04 IceMichael: xq: hm, aber WASM hat auch immer diesen compileschritt dazwischen und Klassen gehen nicht richtig, oder?
10:28:11 IceMichael: also. man muss selbst das allokierte releasen oder so... das klang kacke
10:28:20 IceMichael: und ein Adapterlayer war irgendwie auch nötig, falls ich mich richtig erinnere
10:28:22 IceMichael: hi joeydee
10:29:23 joeydee: IceMichael, du deiner Anmerkung gestern im Chat, wie man da so viele Boxen plus Shading etc. reinbekommt.
10:29:50 joeydee: Ist (ganz grob gesagt) wie wenn du ne Funktion sgn(sin(x)) findest, die dir Boxen baut.
10:30:12 joeydee: Ohne dass du irgendeine Rechteckgleichung definiert hättest.
10:30:32 IceMichael: ja gut, das war ja ungefähr vermutet, und die Reflektion dann?
10:30:53 joeydee: Und Ableitung sowie Integral können dann u.U. als Oberflächengradient und Volumeninfo (Occlusion) dienen.
10:30:56 IceMichael: ich mein wie gesagt, meine Vermutung war ja, dass man ne Rechtechtfunktion und ne Reflektionsfunktion einfach mathematisch einmal verhuddelt und dann kann man das Ergebnis einfach einsetzen
10:32:09 joeydee: Ne, ist so wie beim "Apfelmännchen" auch keine Kreis- und Spiralfunktionen"verhuddelt" werden, weil das viel zu vie werden würde um tatsächlich diese Komplexität und Varianz zu erreichen.
10:32:32 joeydee: Die "Stadt" ist daher eher sowas wie ein 3D-sgn-Apfelmännchen
10:33:10 joeydee: (muss auch keine klassische Formel sein, verschachtelte Schleifen, tun ihr übriges)
10:33:46 joeydee: Also ist jetzt meine Aussage, ohne durch die spezielle Formel durchzublicken :D aber so läuft es üblicherweise
10:37:27 xq: IceMichael: du kannst regulär C++ nach wasm coden
10:37:33 xq: nur halt ohne wirkliche globals
10:37:45 xq: aber ja, du brauchst nen glue layer zwischen wasm und web
10:37:48 xq: das ist aber auch relativ easy
10:39:56 IceMichael: ja, aber es muss gemacht werden, und das ist halt ekliger boilerplate
10:40:09 IceMichael: kein global state ist aber doof :/ den braucht man je nach app ja durchaus
10:40:51 IceMichael: joeydee: okay, danke! Kenne das Apfelmännchen leider nicht, aber ist dann halt ne Mischung aus bisschen Formelspielerei und Loops, gut
10:40:56 xq: naja, global state hast du schon
10:41:06 xq: aber dann musst du halt die ctor/dtor-dinge selbst aufrufen
10:41:15 xq: wasm ist halt einfach ein shared object und jut
10:41:28 xq: für die boilerplate gibts emscripten
10:41:42 IceMichael: hm, hast ein gutes github-Beispiel, was das neat genug macht?
10:41:46 xq: die frage ist halt auch, was du für ein interface haben willst
10:41:58 xq: IceMichael: ich kann dir LoLa anbieten ^^
10:42:04 xq: https://lola.random-projects.net/playground.htm
10:42:06 xq: also das hier
10:42:12 xq: C++ hab ich selbst noch nich gemacht mit wasm
10:42:34 IceMichael: was macht der lola-playground dann?
10:43:35 xq: der nutzt die lola runtime und den compiler
10:43:39 xq: der nach wasm compiliert ist
10:43:47 xq: https://lola.random-projects.net/playground.js
10:43:49 xq: das hier ist mein gluecode
10:44:06 xq: inklusive integration in den editor und das terminal usw
10:44:27 IceMichael: ja, ist schon nicht wenig :/
10:44:32 IceMichael: emscripten macht das automatisch oder wie?
10:44:46 IceMichael: ach ne, is nur compiler
10:45:08 xq: IceMichael: das ist relativ wenig dafür, dass ich hier auch zwei dicke JS-Libraries benutze
10:45:33 IceMichael: ja, aber wenn ich mir das im Kopf für ein großes Projekt hochskaliere, find ich das alles irgendwie nicht toll
10:45:49 IceMichael: ich weiß, mein Anspruch an Einfachheit ist hoch :D
10:45:49 xq: naja, kommt halt drauf an, wie die API ist
10:45:56 xq: die muss nicht sonderlich größer sein
10:46:06 xq: aber hier hab ich halt nur ... 3 funktionen von JS nach Wasm importiert
10:46:07 xq: https://github.com/MasterQ32/LoLa/blob/master/website/playground.js#L159-L199
10:46:21 xq: das hier ist der loader: https://github.com/MasterQ32/LoLa/blob/master/website/playground.js#L243-L252
10:46:59 IceMichael: na ja, eben 41 lines für drei Funktionen boilerplate klingt heftig
10:48:06 xq: lol
10:48:15 xq: das sind 3-4 zeilen pro funktion
10:48:19 xq: schau dir den code an ;)
10:48:32 IceMichael: also readString ist länger
10:48:34 xq: ich schreib halt relativ "noisy" as in "lieber mehr zeilen als lange zeilen"
10:48:43 xq: ja, sind effektiv 7 zeilen
10:48:51 xq: die funktion macht ja auch relevant dinge
10:49:02 xq: die ist ja keine 1:1 translation
10:49:04 xq: sondern halt app-code
10:49:05 IceMichael: ja, irgendwas mit Buffern rumbasteln
10:49:11 IceMichael: ah.. hm
10:49:17 xq: wo du den app-code hast, ist ja egal ;)
10:49:24 xq: oib das jetzt im gluecode oder in ner extra js-funktion ist
10:51:37 IceMichael: hm und wieso musst du mit den Buffern so viel rumhantieren?
10:51:57 xq: utf8 <=> utf16
10:52:04 IceMichael: ach du Schreck
10:52:14 xq: du kannst deine sw einfach in utf16 schreiben ^^
10:52:17 IceMichael: mit so was will ich zB auch nix zu tun haben, wieso ist das nötig?
10:52:25 xq: weil text?
10:52:30 IceMichael: und wieso utf16 irgendwo?
10:52:33 xq: JS
10:52:36 xq: du *musst* damit arbeiten ^^
10:52:42 xq: egal in welcher programmiersprache
10:52:47 IceMichael: :(
10:52:50 xq: ohne unicode-verständnis wirst du nur scheiße bauen
10:52:57 IceMichael: aber utf8 zu utf16 gehört für mich weggekapselt, das muss irgendne lib oder so machen
10:52:58 xq: ich kenne keine sprache, die das schön löst
10:53:11 xq: ja, dann mach dir deine 10-zeilen-lib *grin*
10:53:36 IceMichael: na ja, damit muss man sich eigentlich nirgendwo selbst rumschlagen... von C# backend zum web-teil (egal welche lib), ob bei python mit django, ob bei flutter, ob pures TS
10:54:00 IceMichael: ich kenn grob UTF8 und UTF16, aber damit selbst rumhantieren würd ich nie
10:54:20 IceMichael: und wenn ich es muss, ist die toolchain für mich hinfällig
10:54:32 IceMichael: das kann ja auch keiner vernünftig warten
10:54:47 xq: in JS musst du
10:54:52 xq: substring ist nämlich auf codepoints
10:55:02 xq: *code units
10:55:04 xq: in C# musst du, strings sind auch nur code units
10:55:07 xq: und nicht mal code points
10:55:17 xq: weder JS noch C# machen nen error, wenn du scheiße baust
10:55:18 IceMichael: aber wo wandelst du da explizit von utf16 auf utf8 um oder andersrum?
10:55:23 xq: Rust paniced jedenfalls
10:55:49 xq: const utf8_dec = new TextDecoder('utf-8'); let s = utf8_dec.decode(source_buffer);
10:55:51 xq: da zum beispiel ^^
10:56:14 IceMichael: das ist das "wie", aber wo tritt der use-case der Konvertierung de facto auf?
10:56:21 xq: mein code assumed utf-8 strings
10:56:32 xq: js arbeitet aber komplett mit utf-16
10:57:04 xq: daher muss ich konvertieren, wenn ich zwischen Zig und JS Texte austausche
10:57:05 IceMichael: js ist echt Scheißdreck, wieso utf16...
10:57:13 xq: weil das in den 2000ern hip war
10:57:20 IceMichael: scheiß 2000er
10:57:25 xq: JS ist 1995 erschienen
10:57:27 IceMichael: na gut, ich seh's ja ein, aber ich find's unendlich leidig
10:57:43 xq: ist mir komplett egal
10:57:47 xq: es ist halt so ^^
10:57:50 xq: ändern kannste es nicht
10:57:56 xq: jede platform hat da quirks, jede sprache drawbacks
10:58:02 xq: es gibt keine korrekte lösung
10:58:08 xq: die alle use cases abdeckt
10:58:12 IceMichael: ja. weil nicht einfach jeder utf8 nutzt
10:58:21 xq: nein, das ist so auch nicht korrekt
10:58:23 IceMichael: und klar, selbst wenn, wär substring immer so ein Spaß
10:58:32 IceMichael: oder Indexierung
10:58:33 xq: "ich will aber einfach text bearbeiten" existiert halt einfach nicht
10:58:45 IceMichael: je nachdem, was man damit macht halt
10:59:08 IceMichael: wenn ich nicht das 5. Zeichen ändern möchte, hab ich viele Probleme nicht
10:59:37 IceMichael: Positionsangaben müssen eigentlich auch weggekapselt sein
11:00:00 IceMichael: aber ja, ist schon richtig, Strings sind immer nervig
11:00:00 xq: was für positionsangaben?
11:00:11 xq: code unit, code point, grapheme?
11:00:21 IceMichael: eben. Das würde ich explizit nicht sagen wollen müssen, also
11:00:27 xq: ABER
11:00:28 IceMichael: angenommen, ich will einen Teilstring in nem String ersetzen
11:00:35 xq: was für einen teilstring? ;)
11:00:41 xq: grapheme oder code points?
11:00:46 xq: das is ja der punkt
11:00:49 IceMichael: ich weiß
11:00:50 xq: du MUSST dich darum kümmern
11:00:53 xq: weil es semantische unterschiede sind
11:00:54 IceMichael: ne, was ich meine, ist
11:00:56 xq: auch wenn du es nicht willst ^^
11:01:24 IceMichael: wenn ich zB einen Teil-String, der aus einer Suche resultiert, durch einen anderen ersetzen will, dann soll mir die Suchfunktion etwas zurückgeben, was in die Ersetzen-Funktion reinsoll
11:01:31 IceMichael: was dahinterliegt, soll mir die lib bitte wegkapseln
11:01:56 IceMichael: denn das Suchresultat mit Position (in welcher Form auch immer) definiert es ja gut genug, ich will gar nicht erst Indices irgendeiner Art anfassen
11:02:25 xq: das suchergebnis ist aber üblicherweise ein index ^^
11:02:28 IceMichael: und für alle anderen Arten der "Selektion" (z.B. auch wenn man als User einfach ne Markierung in einer Textbox im UI macht), soll dann bitte genau so weggekapselt werden
11:02:38 IceMichael: ja, aber das ist Impldetail, wovon ich nix sehen will
11:02:59 IceMichael: wir könnten ja haben: getStringPosition(haystack, needle) -> :SearchResult
11:03:14 IceMichael: oder :StringPositionRange oder so
11:03:21 IceMichael: und das Objekt will ich an die Replace-Funktion übergeben
11:03:49 IceMichael: den Scheiß soll mir die lib einfach abnehmen
11:04:24 IceMichael: weil wenn ich mich darum selbst kümmern muss, weiß ich GENAU, dass ich Bugs einbaue
11:04:57 IceMichael: also entweder ist der Codingtask mit Strings dann automatisch für Super-Coder und du kannst da keine Rookies draufwerfen (ziemlich ätzend aus Companysicht) oder man kümmert sich drum, dass das einmal richtig gemacht und weggekapselt ist als Lib-Bauer
11:05:12 xq: leider gibts kein "richtig machen"
11:05:19 IceMichael: doch, wegabstrahieren
11:05:20 xq: es gibt nur "richtig machen gegen usecase X"
11:05:29 xq: was in deinem fall string replace wäre
11:05:41 xq: aber dann bist du nur in-app
11:05:48 xq: sobald du mit der außenwelt redest, musst du über encoding gehen
11:05:57 xq: sei es i/o oder nur "andere sprache"
11:06:01 IceMichael: wenn ich in "Bananen sind blau" das blau durch rot ersetzen will und mir search("Bananen sind blau", "blau") etwas zurückgibt, was ich in replace einsetzen kann, dann kann man es so implementieren, dass es egal mit welcher Kodierung immer klappt
11:06:09 IceMichael: ja, Aussenwelt ist halt kacke :/
11:06:27 IceMichael: was sollen die Kellerkinder sagen
11:06:47 IceMichael: ABER wenn alle UTF8 nutzen würden, wäre das eben kein Problem mehr
11:07:10 IceMichael: oder was bleibt dann?
11:07:33 xq: alle mit utf8 geht halt nicht
11:07:49 xq: das heißt, du würdest nicht mit der außenwelt reden
11:09:12 IceMichael: hm, wieso?
11:09:22 IceMichael: ist halt ein elitärer Kreis
11:09:25 IceMichael: wer kein UTF8 macht, ist raus
11:09:36 IceMichael: scheiß legacy :D
11:10:00 IceMichael: ja, also realistisch wird es nicht passieren, ist mir klar. War jetzt mein Heile-Wunsch-Denken
11:10:05 IceMichael: äh, Welt
11:10:20 xq: ^^
11:10:23 xq: ja
11:10:32 xq: Rust, Zig und C++ machen das ja basically auch schon mal richtig
11:10:55 xq: Zig hat auch dafür, dass Zig keinen String Type hat, sehr angenehmen Unicode-support
11:11:29 IceMichael: utf8 ohne string? notbad
11:11:47 IceMichael: wie dann?
11:12:00 xq: "slices of u8"
11:12:08 xq: du hast halt einfach ne menge bytes
11:12:19 xq: und wenn du die als string betrachten musst (aka: ich arbeite mit code points und nicht bytes)
11:12:26 xq: dann nimmst du ein Utf8View oder nen utf8-iterator
11:12:33 IceMichael: ok, verstehe. Das klingt doch gut
11:13:21 xq: ich hab spaß mit der sprache *grin*
11:13:30 xq: irgendwann(tm) bau ich auch nen auto-binder für JS-Kram
11:13:40 IceMichael: hm, mal gerade wieder auf wasm gedacht... Im wasmContext können Dinge leben, die C++-seitig erstellt werden oder eher nich? Also könnte ich da zB nen "main controller" basteln, dem zB sagen (bau mir mal 10 Objekte) und er macht das dann C++-seitig und ich krieg zB aus JS-Sicht einfach handlers darauf zurück und am Programmende macht der wasmContext trotzdem brav RRID?
11:14:23 IceMichael: und der mainController ist meinetwegen einfach ein global objekt und man holt sich die Referenz darauf via ne Funktion auf JS-Seite?
11:15:13 IceMichael: also kann ich Objekterzeugung/zerstörung quasi C++-seitig wegkapseln, sodass ich auf JS-Seite kein release mehr aufrufen muss?
11:15:24 IceMichael: weil letzteres klingt für mich nach dem alten new/delete C++, das will ich nicht mehr...
11:16:18 xq: du kannst einfach pointer aus wasm rausgeben
11:16:20 xq: und diese als handles machen
11:16:33 xq: aber du brauchst halt für alles, was du rausgibst, irgendeine form von lifetime management
11:17:28 IceMichael: hm, welcher art? Kann auf C++-Seite nicht eine statische Instanz von irgendwas liegen und die macht das alles?
11:17:44 xq: ich sag ja: du brauchst halt irgendeine form
11:17:51 xq: wasm hat nen C-Interface
11:17:58 xq: pointer, integer, floats
11:18:29 IceMichael: und für ein C++-Interface braucht man boilerplate?
11:18:55 xq: was meinst du mit C++Interface?
11:19:01 xq: du hast halt keine klassen, die du rausgeben kannst
11:19:08 xq: weil auf der anderen seite sitzt halt erst mal irgendwas
11:19:09 IceMichael: ja, das wollte ich :/
11:19:14 xq: nur pointer
11:19:15 xq: keine objekte
11:19:20 IceMichael: pointer auf Objekte reicht mir ja
11:19:29 xq: warum dann die frage? ich sagte doch, pointer gehen :P
11:19:43 xq: du musst halt nen C-Interface machen, weil C++ hat name mangling
11:20:01 IceMichael: ich will ja auch bei nem pointer to object ne Memberfunktion aufrufen
11:21:05 IceMichael: weil sonst hab ich auf C++-Seite ne Klasseninstanz, ich reiche zu wasm nen pointer dazu durch mit ner C-API, baue mir JS-seitig dann boilerplate/adapter-code, um das via JS-Klasse zugreifbar zu machen, damit es "so aussieht, wie ne C++-API"
11:21:07 xq: dann musst du ne funktion haben, die das tut
11:21:16 IceMichael: ja, das ist halt shitty...
11:21:21 xq: geht nicht anders ;)
11:21:25 xq: C++ ist ein implementation detail
11:21:29 xq: und zwar immer
11:21:46 xq: wer C++-Dinge über Library-Klassen übergibt, hat die Tragweite des Problems nicht begriffen
11:21:54 IceMichael: ja, aber theoretisch hätte ja schon einer obgen genannten Boilerplate automatisiert erstellen können
11:21:59 xq: C++-DLLs sind die die übelste Sache in der C++-Welt
11:22:10 IceMichael: ja gut, die sind ätzend
11:22:13 xq: IceMichael: ohne reflection? ^^
11:22:24 IceMichael: kommt ja mit c++20 ;P
11:22:27 IceMichael: äh, 24
11:22:47 xq: ^^
11:22:53 xq: oder halt nen precompiler, der C++ parsed
11:22:56 xq: und dann bindings generiert
11:22:59 xq: a'la qmake
11:23:03 xq: brb, mittag
11:23:13 IceMichael: ich überleg halt eh gerade, wieso mich das stört und wie viel boilerplate es wäre
11:23:36 IceMichael: im Prinzip wäre das saubere wohl auf C++-Seite ein System zu basteln, was alle Objektzugriffe über irgendwelche IDs oder Handlers wegkapselt
11:23:44 Magister joined the channel
11:23:47 IceMichael: puh, aber... unschön
11:23:53 IceMichael: moin Magister
11:31:11 xq: IceMichael: wo ist dein problem zwischen "load(foo)" und "foo.load()"?
11:43:46 IceMichael: xq: hauptsächlich, dass ich boilerplate dafür schreiben muss
11:44:16 IceMichael: aber ja, es reduziert sich eigentlich so langsam von den Problemen
11:44:58 IceMichael: wie gesagt, new/delete will ich von JS nicht aufrufen, das muss dann irgendein Manager auf C++Seite machen
11:45:19 IceMichael: aber fuers Arbeiten mit dem bereits erstellten Objekt ist das schon okay so
11:48:31 IceMichael: hm hm, jetzt frag ich mich, ob man davon nicht irgendwas auch fein serverseitig machen kann, aber dann braucht man schon noch mehr layer dazwischen, schätz ich
11:50:57 IceMichael: oh, es gibt Qt for WASM, auch nicht uninteressant...
11:52:52 IceMichael: ach, die examples werfen wieder fehler, hat Qt einfach wieder nicht gut gepflegt... ich sag ja, das sind Affen
11:53:28 IceMichael: ok, ganz uninteressant ist das ja doch nicht: https://www.qt.io/web-assembly-example-slate?hsCtaTracking=3bba596e-b49d-42b2-8846-5afc7f2d8da8%7C3dc35563-7a40-4061-b98b-b66f42959c8d
11:54:12 IceMichael: ach ist wieder QML :( na gut
13:13:22 xq: https://ericwbailey.design/writing/your-css-is-an-interface/
13:13:25 xq: interessanter artikel, related
13:35:41 joeydee: ich bin gestern mal wieder an Framebuffer-Rendering gescheitert, die Tiefe wurde ignoriert. Trotz Depth-Attachment, aber bei OpenGL sind ja immer 30 Dinge *unbedingt* einzustellen, und 20 *auf gar keinen Fall* damit es tut.
13:36:09 xq: joeydee: läufts oder brauchste hilfe?
13:37:05 joeydee: Tut nicht, hab gestern abgebrochen.
13:37:40 xq: können gerne mal gucken
13:37:42 joeydee: Also colorbuffer in Framebuffer schreiben geht.
13:37:55 joeydee: Kann ich als Tex anzeigen.
13:38:03 joeydee: Aber der Depth-Test fehlt.
13:38:33 joeydee: Soll mit nem zweiten attachten Buffer mit DepthComponent gehen.
13:38:56 joeydee: Habs aber noch nicht hinbekommen, da mal wieder irgendwas zu fehlen scheint.
13:39:02 joeydee: Ich hab gestern noch 2 Seiten rausgefischt, die sich damit befassen, aber noch nicht gelesen.
13:39:16 xq: gibt zwei lösungen: depth texture oder depth render buffer
13:39:26 xq: render buffer sind potentiell nen ticken schneller
13:39:34 xq: haben aber den nachteil, dass du sie nicht lesen kannst
13:40:40 joeydee: Ich will SSAO. Also muss lesen, aber kann es auch in den Colorbuffer schreiben, ist eh erstmal experimantell wieder.
13:40:49 joeydee: -a+e
13:41:15 joeydee: da Depth Texture nicht funzte, versuch ichs mal mit Renderbuffer.
13:42:04 joeydee: In der Hinsicht ist OGL echt zum Kotzen.
13:43:02 xq: nene, bleib dann gleich bei ner textur
13:43:06 xq: ich guck mir den source gerne mal an
13:43:14 xq: was ist deine techbase grade? c# + opentk?
13:55:13 joeydee: ja
13:56:26 xq: hm, das bekomm ich ggf. sogar gebaut :D
13:56:45 joeydee: aber ich pfriemel das erst nochmal einzeln in ein separates Projekt und teste.
14:13:01 IceMichael: xq: bei solchen Artikln fehlt mir der Abstract
14:13:13 IceMichael: wenn man so ne unklare Headline macht, dann schreibt man zumindest mal hin, worum es geht
14:13:22 IceMichael: hab ein paar Absätze gelesen und immer noch keine AHnung, was der Autor mir sagen will -> closed
14:15:24 xq: "css sollte im user interface zugänglich sein"
14:17:49 IceMichael: hm, der Titel macht direkt viel mehr Sinn
14:18:08 IceMichael: und ja, ist ne gute Idee
14:25:23 joeydee: Depth geht :) (gerade in meiner "Bildschirmpaue" nochmal ein paar Varianten durchprobiert, und siehe da, eins der durchgereichten Pixelformate stand noch auf RGB)
14:26:06 xq: ah
14:26:31 xq: joeydee: hast du GL_DEBUG_OUTPUT an?
14:26:41 xq: RenderDoc aufm System?
14:29:09 joeydee: Nie mit befasst. FBComplete-Fehler abfangen hatte gereicht. Allerdings war der auch in nem falschen Branch drin und hatte daher gestern nichts sinvolles ausgesagt.
14:34:28 xq: GL_DEBUG_OUTPUT ist sehr lohnenswert
14:34:37 xq: du bekommst *jeden* fehler einfach in plaintext geloggt
14:50:36 xq: IceMichael: aus der sicht fände ich ne Variante XAML + CSS echt nice
14:50:43 xq: XAML ist imho besser für UI als HTML
14:50:48 xq: und CSS ist halt seriously gut
14:54:59 IceMichael: xq: XAML bei C# klar, das ist auch top
14:55:35 IceMichael: aber ist halt wieder nur so mittel OS-unabhängig, oder?
14:56:00 IceMichael: ich hab das mal mit VS für Mac probiert, da gibt's aber keinen optischen Editor
15:06:18 xq: XAML als Tech-Konzept, nicht als konkrete Impl
15:06:57 xq: Eine Mischung aus XAML, Web-Stack als Frontend
15:07:14 xq: und dann nen native C-Interface
15:07:16 xq: für bindings und kram
15:09:36 IceMichael: hm...
15:10:11 IceMichael: könnte nice sein, ja
15:10:33 IceMichael: ich frag mich gerade, wie ist das eigentlich mit wasm und libs?
15:10:38 xq: wie meinen?
15:10:43 IceMichael: ich nutz bei meiner App zB viel Kram mit Qt
15:10:44 xq: wasm ist quasi so/dl
15:10:45 xq: *dll
15:10:53 IceMichael: ye, aber was wenn das selbst deps hat?
15:11:00 xq: dann hast du mehr wasmfiles
15:11:06 xq: oder merged den kram beimn linken in ein file zusammen
15:11:45 IceMichael: hm, aber als ob das mit Qt wieder so einfach ginge :D
15:12:13 xq: naja
15:12:20 xq: Qt und Wasm klingt eh erst mal "nich so geil"
15:12:44 IceMichael: in der Tart
15:12:58 IceMichael: aber na ja, es gibt halt so Kram, den kann C++ halt wieder nicht so geil
15:13:04 IceMichael: zB mach ich mit Qt Translations
15:13:16 xq: sind die nicht eh embedded?
15:13:22 IceMichael: oder HTTP-Calls
15:13:51 IceMichael: hm... also man generiert welche, indem man eerstmal ne Qt-App laufen hat
15:14:06 IceMichael: man kann das natürlich auch da rauslösen oder die anders parsen und dann nur das Resultat einfügen, aber daf[r muss es schon auch wieder ne Qt App sein
15:44:26 xq: naja, http-requests kommen wieder aus JS, wenn du im browser bist
17:55:48 Schrompf joined the channel
18:02:53 Schrompf: boah, schreibt ihr viel, das krieg ich nicht aufgeholt
18:09:10 IceMichael: hi Schrompf
18:09:19 IceMichael: na ja, was bist auch einfach den ganzen Montag lang weg? Und gestern auch die meiste Zeit?
18:09:27 IceMichael: ich mein... mal ehrlich, du siehst doch, dass du dir das eigentlich nicht leisten kannst
18:20:10 Schrompf: Meine Kleine hatte nen Schnief. Ich bin mit ihr zu Hause geblieben. Ich habe den Schnief auch bekommen.
18:20:15 Schrompf: Jetzt bin ich völlig im Arsch.
18:20:18 Schrompf: aber so richtig
18:20:31 Schrompf: keine Ahnung, wie die Kleinen das immer wegstecken
18:20:39 Schrompf: oder vielleicht ist mit mir auch nix mehr los
18:21:03 Schrompf: zumindest: wenn der Selbsttest selbst bei krassem Gerotze und Gehuste noch "Nö" sagt, ist es wahrscheinlich kein Corönchen
18:21:36 Schrompf: aber ich kann kaum geradeaus gucken und meine Nase ist wund vom vielen Putzen und Schnauben
18:22:07 Schrompf: und trotzdem muss ich meine Kleine noch zu Hause hüten, weil sie mit leichtem Resthusten und Restschniefen in der aktuellen Situation in der Kita *nicht* willkommen ist
18:22:14 Schrompf: ich bin so fertig
18:22:37 Schrompf: muss durchhalten. morgen noch, dann ist sie hoffentlich symptomfrei, so dass ich sie wieder in die kita stecken kann
18:41:54 xq: gut besser dich!
18:44:46 Hannes joined the channel
18:48:13 Hannes: hm
18:48:16 Hannes: ahoi
18:52:13 Schrompf: hoia
18:53:17 Hannes: hab mein webserver auf von http auf https umgestellt und meinen ersten portfolio test hochgeladen
18:53:32 Hannes: https://hannespapajewski.de/portfolio/
18:53:57 Hannes: die schatten sind sehr verpixelt
18:54:38 Hannes: mal sehen ob man noch an ein paar werten schrauben kann
18:54:46 Schrompf: shadow map resolution
18:54:49 Schrompf: findet sich sicherlich
18:55:33 Schrompf: das ist ne 256er oder so. angemessen für web vor 10 jahren. heutzutage kannst du stressfrei ne 2048er rausholen und für diese szene macht das selbst xqs Holz-GPU mit links und 40 fieber
18:56:00 Schrompf: ansonsten: sehr cool. gz zum https. wie hast du's gemacht?
18:57:12 Hannes: ich hab ein tutorial über nginx und certbot nachgemacht
18:57:45 Hannes: ich hoffe die automatische erneuerung klappt auch
18:58:05 Schrompf: certbot ist ne alternative zu let's encrypt?
18:58:30 Hannes: ist glaubich das gleiche
19:01:45 Schrompf: ah ok, danke
19:02:04 Hannes: certbot ist das programm über welches man die zertifikate erstellt
19:02:17 Hannes: so richtig hab ichs nicht verstanden
19:03:09 Hannes: es gibt noch weitere einstellungen die man in nginx für https machen kann
19:04:18 Hannes: irgendwelche spezielle SSL Algorithmen auswählen
19:04:42 Hannes: ich bin erstmal froh das es läuft
19:05:10 Schrompf: ja, das ist schon echt was
19:05:29 Schrompf: auf meinem hosteurope-vserver war ein apache vorinstalliert. aber für den gibt's sicher auch tutorials
19:20:07 Hannes: hast recht Schrompf. Standard war 512² hab die Auflösung auf 2048² gestellt und es sieht schon besser aus
21:10:09 Hannes: gn8