blog

warum?

dem blog gebührt keine besondere intention, neben der neugierde.

was?

der blog ist gedacht wie ein tage- oder notizbuch. kein besonderes thema wird diskutiert, keine besondere meinung vertreten. es ist ein ort für gedanken, welche online ich festzuhalten gedenke.



toc


beginn

29. august 2023

es kam mir im beiwohnen meines besten freundes in einem altbekannten café in den sinn, einmal den traum der sammlung mancher ideen zu verwirklichen. inspiration ist ein flüchtiges gut, sodaß an selbem heutigen tage ich mich zu einer minimalistischen umsetzung dessen entschloß.

läuft durch die stadt, sein altes heim
das menschlein nicht allein,
sieht an, wie sie sich hat verzerrt,
doch kennt es wahrlich noch,
ihr altes warmes herz.

nach studien der physik, nicht immer der freiwilligen entscheidung entsprungen, ist es ein herrliches privileg der freizeit, sich anderen kreationen zu widmen. noch viel herrlicher ist jedoch der neu gewonnene blick!

#include <stdio.h>
int main() {

printf("hello world!");
return 0;

}

was man beim ersten designen der website sofort lernt ist die handhabung der grundlegenden umgebungen; notiere, die <pre>-tags übernehmen die formatierung des codes, i n s b e s o n d e r e die einrückung. aspekte aus LaTeX lassen grüßen! .. (da fällt mir ein, daß noch immer der bericht der quantenmodelle unvollendet schlummert) ..


zunächst werde ich die seite per github hosten. in der zukunft stelle ich mir jedoch das hosting auf dem eigenen server vor.. dessen passende konfiguration ist jedoch noch gegenstand aktueller studien. die hostingsituation in ihrer allgemeinheit ist in meinem wohnheim nicht vorgesehen, wodurch ich mich größeren schwierigkeiten gegenübersehe; eine secure shell konnte ich bereits einrichten, jedoch ist hier ein netzwerk namens yggdrasil verantwortlich, nach empfehlung eines verehrten mitstudierenden. jeder an der website interessierte müsste demnach zuerst dem netzwerk betreten und sich per ipv6 protokoll mit meinem server verbinden.


    $ yggdrasil -genconf > yggdrasil.conf

            

die konfiguration des netzwerks erfordert nun lediglich den eintrag von peers in den zugehörigen eintrag der konfigurationsdatei, ich verwende vim als editor und wähle die peers aus der publicpeers liste aus, drei sollten genügen (ich habe das netzwerk auch schon mit einem laufen gehabt, sollte dieser jedoch ausfallen, kommt backup gelegen). ist dies getan, so folgt


    $ sudo yggdrasil -useconffile yggdrasil.conf

    $ ssh unb3rechenbar@<ipv6>

            

in getrennten terminals. möchte man den dienst zu yggdrasil automatisiert beispielsweise per systemd starten, empfiehlt sich eine .service datei im verzeichnis /etc/systemd/system/ zu erstellen. ein aktuelles beispiel wäre dabei


    [Unit]
    Description=Yggdrasil Network Daemon
    After=network.target
    
    [Service]
    ExecStart=/path/to/start-yggdrasil.sh
    Restart=always
    
    [Install]
    WantedBy=default.target

            

wobei zu beachten ist, daß zuerst network.target ausgeführt worden ist. die datei start-yggdrasil.sh ist dabei eine einfache bash-datei, welche den oben genannten startbefehl ausführt. gegeben seien hierbei die nötigen rechte der datei, gesichert durch "chmod +x /path/to/start-yggdrasil.sh". reload des daemons liefert dann die gewünschte automatisierung. achja, i'm using arch, btw.


ein update des quantum photonic projektes gibt es ebenfalls noch zu verzeichnen - die arbeit kann an einem neuen system wieder aufgenommen werden. nach der zerlegung der rechten seite in ihre komponenten phi und psi ist die lösungsstruktur nun erstmal von der folgenden form.


    typedef struct {
        C2 Phi;
        C2 Psi;
        C2 mu;
        C2 u;
        C2 du;
    } Lsng;

            

ob sie sich zur lösung letztendlich eignet, bleibt erkenntnis der kommenden tage.



dancing in the GNU light ..

30. august 2023

die kompatibilität von dateisystemen zwischen betriebssystemen ist nicht gegeben, eine zeitraubende erfahrung. man geht so seines weges ..


    $ lsblk
    $ sudo fdisk /dev/sdc
    $ n # new partition
    $ p # primary partition
    $ 1 # partition number
    ...
    $ w # write changes
    $ sudo mkfs.ext4 /dev/sdc1

            

.. und formatiert eine secure digital memory card zum transfer einer logdatei .. kopiert sie und verbindet die karte mit dem mac .. der verlauf ist bekannt. hätte man doch direkt netcat verwendet.


ein mir ebenfalls neuer fehler ereignete sich bei der konfiguration von yggdrasil auf einem neuen rechner. der wortlaut war:


    $ sudo yggdrasil -useconffile $Home/.conf/yggdrasil.conf
        .. Panic: no such device

            

interessanterweise löste sich das problem von nach einem neustart von alleine .. da will man noch einmal den it bewanderten wegen seiner empfehlung verhöhnen ..


der website ist nun die projekte - sektion beigefügt worden, zunächst nur beschränkt auf texte .. ein sample ist virtuelle realität ein zweites zwischen zwei welten; vielleicht bald zwischen weitern.


zum abend verfolgt mich noch ein ungewöhnlicher, mir bisher unbekannter und in allen sinnen unverständlicher bug: die ablehnung meiner anmeldedaten nach dem login in tty für sämtliche sudo eingaben innerhalb der X.Org umgebung, sowie die verweigerung eines ssh zugriffes über root und privataccount. die unkenntnis des grundes versperrt mir aktuell jede möglichkeit der lösung ..


natürlich fehlt noch ein erfolg: das skript der theoretischen physik ließ sich nach einigen versuchen invertiert auf eine extraseite einbauen, wenn auch noch nicht optimal. es ist am ende doch ein pdf, welches in html etwas fehl am platz wirkt .. die invertierung gelang jedoch mittels css folgendermaßen:


    img { 
        width: 90vw;
        height: 100vh;
        -webkit-filter: invert(.75); /* safari 6.0 - 9.0 */
        filter: invert(.75);
    }

            


something about c

31. august 2023

ich fand heraus, daß es so etwas wie "#ifdef" gibt .. ihre anwendung findet sich vielleich im c physik header wieder ..

weiter gibt es die "namespace" umgebung, welche ich in der simulation des quantenprojektes helfend sehe. möglicherweise könnten dann verschiedene namespaces verschiedene situationen darstellen, für DGPs verschiedener rechter seiten.



simulating the world

01. september 2023

mein vs code ist erneut verbugt, sodaß es mich zwingt, vim zu lernen und endlich zu benutzen. ich bin gespannt auf diese reise! heute morgen las ich den blogpost von James Scholz zum thema focus, recht empfehlenswert!


nun widme ich mich dem alten problem des nicht im lokalen netzwerk verfügbaren nas. ich operiere in kontanz, auf meinem server. per w3m, links, lynx und elinks ist die lokale loginseite meines nas nicht in einer verwendbaren form erreichbar, wenn ich auch im selben zuge gute webbrowser (die genannten) kennenlernen konnte. das problem mit icu konnte ich folgend lösen, indem ich eine gesamte reinstallation aller an icu beteiligten pakete durchführte:


	$ sudo pacman -S $(pacman -Qq | grep icu)
	$ sudo pacman -Syu

				

das zweite kommando bestätigte durch wegfallende fehlermeldung die lösung des konfliktes. er war bis dato immerzu von der form

$ sudo pacman -Syu

:: Paketdatenbanken werden synchronisiert …
core ist aktuell
extra ist aktuell
community ist aktuell
:: Vollständige Systemaktualisierung wird gestartet …
Abhängigkeiten werden aufgelöst …
Nach in Konflikt stehenden Paketen wird gesucht …
Fehler: Vorgang konnte nicht vorbereitet werden (Kann Abhängigkeiten nicht erfüllen)
:: Installation von icu (73.2-1.0) verletzt Abhängigkeit »libicuuc.so=72-32«, benötigt von harfbuzz-icu

ich umging ihn bisher lediglich durch ignorieren des paketes, also "--ignore icu"; dem ist nun ein ende gesetzt. das folgende problem ist ein aus unbekanntem grunde zerstörtes vim:

$ vim

vim: error while loading shared libraries: libperl.so: cannot open shared object file: No such file or directory

bisher habe ich nur herausfinden können, daß die datei am ort "/usr/lib/x86_64-linux-gnu/libperl.so.5.20" nicht existiert. dies ist intuitiv berechtigt, da wir auf einem x86_32 system arbeiten: die i686 architektur. auf der suche nach libperl.so mit find finde ich sie schließlich:

$ find / -name libperl.so 2> /dev/null

/usr/lib/perl5/5.36/core_perl/CORE/libperl.so

$ export LD_LIBRARY_PATH = /usr/lib/perl5/5.36/core_perl/CORE:$LD_LIBRARY_PATH

$ echo $LD_LIBRARY_PATH

/usr/lib/perl5/5.36/core_perl/CORE:

nachdem ich die bisher leer definierte umgebungsvariable "LD_LIBRARY_PATH" auf den mit find lokalisierten pfad setze, kann ich vim wieder ordnungsgemäß verwenden. ob diese lösung nur temporär ist, kann ich bisher nicht einschätzen - in dessen fall wird der blogeintrag mir ein leitendes licht stellen.

schnell stellt sich heraus, daß vim im rahmen von sudo nach wie vor zerschossen ist.


um eine website lokal zu hosten, stieß ich auf apache, eine http webserver projekt. nach der installation (unter macOS)

$ brew install apache2
$ apachectl -v

kann ich mich mit der konfiguration auseinandersetzen. zunächst einige grundlegende eingaben.

$ cat /etc/hostname
$ cat /etc/hosts

die erste datei wird informationen über den lokalen rechner beinhalten, genaugenommen seinen netzwerk-hostnamen. die zweite datei wird informationen über (vor)definierte hosts im netzwerk geben. in meinem fall habe ich ein lokales netzwerk, in welchem ich verschiedenen ip addressen einen zugehörigen gerätenamen gegeben habe.

will man nun einen webserver über das internet einrichten, so würde man hier als hostname seine domain und unter hosts die verknüpfung "127.0.1.1 <domain>" setzen. als sicherheitsmaßnahme deaktiviere man weiter den root login per ssh in der /etc/ssh/sshd_config datei.

da wir hier jedoch zunächst nicht global, sondern nur lokal hosten wollen, muss diese skizze nicht weiter verfolgt werden. nach erfolgter installation werfen wir einen blick unter /etc/apache2/httpd.conf und machen uns mit der umgebung vertraut. wirklich eine anpassung vornehmen müssen wir zunächst nicht, wenn wir den standardpfad der websitedateien unter /Library/WebServer/Documents akzeptieren (nachher erstellen wir hier einfach einen symlink). damit ich den richtigen port herausfand, musste ich nun folgende befehle und entsprechende ausgaben ausführen und begutachten:

$ sudo apachectl stop
$ sudo apachectl status

Looking up localhost:8080
Making HTTP connection to localhost:8080
Alert!: Unable to connect to remote host.

lynx: Can't access startfile http://localhost:8080/server-status

$ sudo apachectl start

somit ergibt sich als domain "http://localhost" und als port "8080". die fehlermeldungen ignorieren wir hier zunächst einmal gekonnt und geben die informationen in einen browser ein. wir sehen: "It works!", erzeugt durch die standardkonfiguration des Documents ordners

$ tree /Library/WebServer/Documents

/Library/WebServer/Documents
└── index.html.en

1 directory, 1 file

lassen wir uns nun einmal den inhalt der 'index.html.en' datei anzeigen, so sehen wir

It works!

nach diesem erfolg verlinke ich nun noch die tatsächliche website mit dem verzeichnis under benützung des befehls

$ sudo ln -s /Users/me/Library/Mobile\ Documents/com~apple~CloudDocs/Privat/Creative/Code/html/Project0 Documents

.. das funktioniert jedoch nicht wie gewünscht, die alte website bleibt weiterhin erhalten.

worauf wir hier reingefallen sind ist ein klassischer fall der dateisystem unkenntnis. macos selbst funktioniert zwar ähnlich zu arch, hat jedoch seine apple eigenen tücken. wir benötigen hier nicht wie zunächst gedacht die datei unter dem pfad '/Library/Webserver/Documents', sondern unter dem standardverzeichnis '/var/www'. dieses ist jedoch nicht erreichbar unter dem tatsächlichen pfad '/var/www', sondern künstlich mitgebracht durch die homebrew installation unter '/opt/homebrew/var/www'. hier findet sich eine weitere index.html datei, welche ich zur unterscheidbarkeit leicht veränderte:

$ tree /opt/homebrew/var/www

/opt/homebrew/var/www
├── cgi-bin
│   ├── printenv
│   ├── printenv.vbs
│   ├── printenv.wsf
│   └── test-cgi
└── index.html

2 directories, 5 files

.. und wir sehen:

It also works!

der standardmäßig selbe inhalt an zwei völlig unterschiedlichen orten .. und noch dazu ein irreführender hinweis in der '/etc/apache2/httpd.conf' datei .. M1 sei dank. den kritischen tipp des pfades sei einem video gedankt.



shadowlinking

10. september 2023

um einmal ferner das kapitel des apache local web hostings abzurunden, verbinde ich unter zsh die Variable WEBSITE mit der virtuell korrekt einsortierten addresse '$CODE/html/Pr0ject' (unter $CODE ist der intuition folgend sämtlicher code hinterlegt). selbige besteht imzuge von

$ ln -s /opt/homebrew/var/www Pr0ject

aus einem syslink, sodaß ich unter WEBSITE eigentlich den lokalen projektordner '/opt/homebrew/var/www' vorfinde. dies hat allein human-organisatorische gründe und ist technisch eigentlich zu umständlich, jedoch akzeptabel. im hinblick zu früherer technik vereinfacht sich das schreiben eines eintrages dadurch um die ausführung eines rsync commands der form

$ rsync -P -avz $WEBSITE/ /opt/homebrew/var/www/

wie es zuvor vonnöten war.



day of silence

11. september 2023

zunächst ein rückschlag: die kommunikation zu meinem heimserver ist abgebrochen. vermutlich wird sie nicht wieder zustandekommen, ehe ich vor ort den grund des ausfalls begutachten und beheben kann. viele pläne hatte ich für diesen speziellen rechner glücklicherweise noch nicht, jedoch gilt dieser kommunikationsabbruch als deutlicher rückschlag bei dem projekt eines sicheren, zuverlässigen datenverkehrs zu meiner wohnung.

als hingegen potentiell an anderer stelle nützliches werkzeug entdeckte ich das programm fclones auf github: es soll den heimischen datenspeicher einmal durchlaufen und auf duplikate überprüfen, um speicherplatz einsparen zu können. die installation und erste inbetriebnahme gelang sofort durch

$ brew install fclone $ fclone group /Volumes/NAS/Backup > /Volumes/NAS/Backup/dupes.txt

wonach planmäßig ein command der Form

$ fclone link < dupes.txt

die überschüssigen Dateien durch hardlinks zu einer einzigen verknüpfen soll. hier hoffe ich auch im sinne aller gesicherten dateien auf dringlichen erfolg. ein test an meinem lokalen download-ordner lieferte diesen augenscheinlich.



swingin doors

13. september 2023

webhosting hat neben dem 'konventionellen weg', über welchen diese website erstellt wurde, auch noch interessante alternativen, wie beispielsweise das tor projekt. Da aktuell jedoch mein Hauptrechner nicht mehr erreichbar ist, muss ich auf einen alternativen pc umsteigen. bis dato hatte ich nach der einrichtung bugs bezüglich der anmeldung - es stellte sich gerade heraus, daß das numpad meiner tastatur nicht konfiguriert war, über welches ich ein testpassword '123' setzte - folglich wurden, nachdem mein laptop kein numpad besitzt, bei der eingabe von '123' die tatsächlichen zeichen übertragen, während die konfiguration lokal vermutlich aus leeren zeichen bestand - welche natürlich nicht übereinstimmen können!



explosion

14. september 2023

es ist wohl an der zeit, sich einmal der simulation unseres forschungsprojektes zu widmen. ein aktuelles problem ist der erhalt unglaublich großer zahlen, wie

2 330 128 186 488 320 081 941 283 009 090 978 563 212 089 451 231 619 125 989 754 004 961 332 859 543 114 547 398 517 482 530 261 323 923 354 130 330 280 433 599 044 500 062 208.000000

+ 5 488 640 304 795 846 017 239 001 765 742 815 023 637 203 337 913 853 855 492 338 810 979 191 573 810 211 432 724 274 044 567 136 904 803 329 259 781 433 409 945 982 210 146 304.000000 * i

(ja, die leerzeichentrennung ist nur zur formatierung, es handelt sich um eine zahl ..) dies ist offensichtlich unsinnig, sodaß die suche nach einem fehler beginnen muss - eventuell sind auch die startbedingungen noch nicht die richtigen.



arch setup

15. september 2023

bei der neuinstallation von arch ist es immer wieder aufs neue eine spannende angelegenheit, unbekannten geräten den zugang zum internet zu ermöglichen, ob kabellos oder kabelgebunden. meistens läuft das ganze auf die suche eines hardwareswitches hinaus, welcher 'intuitiv' konstruiert wurde.

nach einigem herumprobieren fand ich (natürlich) auf der arch wiki seite zu iwctl hilfe, die in kombination mit trial and error die station 'wlan0' aktivierte. mit

$ iwctl device list

$ iwctl device wlan0 set-property Powered on

$ iwctl station wlan0 scan

$ iwctl station wlan0 get-networks

$ iwctl station wlan0 connect "FRITZ\!Box"

bekam ich schließlich durch '$ ping www.google.de' die bestätigung der verbindung! der rest der installation ist geschichte und teil meines post-install skripts ..



bugs everywhere

16. september 2023

eine neue offenbarung: man muss natürlich in seine '.vimrc' datei auch im bereich 'call plug#begin('')' den richtigen pfad angeben, und *keinen* relativen! so zerschießts jedes mal die plugineinlese und alle müssen erneut in das aktuelle arbeitsverzeichnis geladen werden - natürlich vollkommen unsinnig. ein schneller fix löst das problem und eine sorge:

call plug#begin('$VIMFOLDER/plugged')

für eine kleine inspiration am abend sorgt der github eintrag spotx-bash.



sudo rm -rf .*

13. februar 2024

vor etwa einem monat ereignete sich ein unangenehmer fauxpas, nämlich das entfernen sämtlicher configdateien in meinem macOS homeverzeichnis. dies betraf vor allem kritische konfigurationen in .config, wie sie '$ tree -aL 1' konkretisiert:

$ tree -aL 1

.

├── .DS_Store

├── skhd

├── vim

├── yabai

├── zsh-git

glücklicherweise waren 'zsh-git' und 'vim' bereits auf github gesicherte ordner, sodaß ein einfaches '$ git clone URL' die dateien wiederherstellte. alle anderen ordner waren zu meinem bedauern nicht gesichert, sodaß eine manuelle wiederherstellung durch das erneute einrichten vonnöten war. soviel zu

$ sudo rm -rf .*

.. und der gefahr des unaufmerksamen ausführens! Darüberhinaus sei angemerkt, daß 'auth sufficient tid.so' in der /etc/pam.d/sudo datei zur sofortigen unzugänglichkeit von sudo führt.. lösung sei an dieser stelle ein externer root anmeldezugang in form eines separaten kontos, auf welchem mir ausgerechnet textedit den zugang wieder sicherte.. soviel zur vermeidung von systemsoftware und vim!