darktryms Frustthread

So, 5.5 "läuft", hat mir sogar Radeon-Treiber mitgebracht... interessant wird's jetzt, die Packages alle wieder reinzubekommen. Mal sehen...

Hat irgendwer von euch sich da schon ein paar Scripts gebastelt, die das weitgehend automatisieren?
 
Das stand doch im Upgrade Guide, wie man die Listen manuell und automatisch installierte Pakete extrahiert und wieder einspielt?
 
Mein Frust aktuell:

* NetBSD 6.99.31 installiert (Notebook)
* Openbox + Teile von Gnome (Nautilus, Panel, Wbar)
* Alles mit pkgsrc-2013Q4 selbst kompiliert

Fazit:

* Gnome-settings-daemon crashed,
* Nautilus crashed,
* Audio mit Pulseaudio crashed,
* Avidemux crashed,
* Xine crashed,
* Rhythmbox hangs, liest nur teilweise Oggs und MP3s
* Lese- und Schreibzugriffe mies, zu letzt erlebt unter Solaris 5.9
* Hal + Gnome-mount mountet nur USB-Sticks, HDDs, Audio-CD - keine Daten-CDs / -DVDs
+
+
+

Kurz, NetBSD ist ein super OS, pkgsrc eine feine Sache, aber für den Desktop z.Z. nicht geignet. Ich war da schon vor Jahren besser dran ( NetBSD 5.1 , KDE-3.5.10, K3B, Amarok)

Schade!!!
 
franco98 schrieb:
Audio mit Pulseaudio crashed,
Also DAS wundert mich nun nicht. :) Ich habe bis heute noch keine funktionierende Pulseaudio-Installation gesehen. Nur immer unterschiedlich große Teilmengen von "funktionierend". Klassische Poettering-Software halt. Die Erfahrungen mit Dauerbaustelle Pulseaudio sind übrigens auch einer der Hauptgründe für die Ressentiments gegenüber systemd. Sehe ich auch so. Wer nicht mal einen Sounddaemon hinbekommt und die Weiterentwicklung einstellt sobald das nächste Spielzeug da ist, sollte besser die Hände von kritischen Systembestandteilen lassen.
 
Ich hatte und werde noch viel Freude mit diesen Matlab/Simulink haben, warum, ist wohl die schlecht durchdachteste Programmierumgebung aller Zeiten.
Fangen wir bei den Datentypen an, du brauchst Listen kein Problem, da haben wir was zusammengebastelt namens Cell, funktioniert so ähnlich nur viel schlechter. Ständig darf man herumkonvertieren, weil keine Funktion Cell-Zellen annimmt. Stürzt dein Code ab und du hast Cells verwendet, gibts eine kryp. Fehlermeldung, muss so sein. Aber immerhin gibts dafür eine Repräsentation die plausibel in der Workbench/Variablenübersicht ausschaut, kann ja nicht alles so sein wie Dictionaries, da bedarfs ein keys. Die Workbench interpretiert auch mal gerne und formatiert ihre Werte, was dort funktioniert muss im Skript nicht funktionieren. Ganz toll, obwohl der Editor alle Methoden kennen könnte und es ein leichtes wäre unbekannte Variablen anzuzeigen, man vertippt sich ja gern, spart man an der Überprüfung. Herrgott wo ist das Problem, vor der Ausführung das zu prüfen.
Wer kennt es nicht ein komplexer Rückgabewert und man braucht nur ein Teil davon. Matlab braucht dafür eine Zwischenvariable. Macht den Code nicht übersichtlicher, extra dafür stets eine Variable zu nutzen die 2 Zeilen später nicht mehr gebraucht wird. Ist der Code zu breit, was häufig vorkommt, "..." . Wir ignorieren bekannte Mechanismen wie Klammern und Backslashes einfach und verschenken weitere Zeichen oder unterstützen den Programmierer bei schlechter Namenswahl von Variablen/Funktionen.

Kommen wir ein wenig zum Modellaspekt. Man kann schön mit Operatoren und Signalen programmieren. Will man auf die Struktur zugreifen wird's extrem eklig. Fängt damit an, das bereits Standardblöcke von einander ableiten, aber man zu faul war den BlockType zu ändern(löse ich derzeit über custom attribute im Maskeneditor, unsichtbar und initialisiert). So sind dann Additionen und Subtraktion von gleichen Typ wie auch Produkt und Division.
Möchte man Blöcke und Signale in Beziehung setzen, kommt das Erwachen, geht nicht (so einfach). Warum auch, so werden die Beziehungen der Blöcke zueinander(Vor- & Nachfolger) über PortConnectivity ermittelt. Aber die Signale über PortHandles. Möchte man das in Beziehung wissen, erdenkt man sich ein zufälliger einzigartigen Wert und iteriert über alle Element(von beiden Seiten natürlich), sehr schön. Da störts auch nicht das Handles Fließkommawerte sind und die Standardeinstellung das verkürzt darstellt. Möchte man mal den Namen des Signals setzen, ja das geht, aber bitte nur von einer Seite, vom Ausgang. Hat man ein Signal und will von diesen abzweigen, wird das intern über weitere Ausgänge des Vorgänger-Block abgebildet. Um den Nutzer zu verärgern, bedarf es dann weitere Klicks auf jeden Abzweig, damit der bekannte Signalname propagiert wird.
Hat man nun 2 Blöcke verbunden mit einem Signal, haben die unterschiedliche Handles, warum auch immer. Klar intern in Matlab bilden die auf dasselbe Objekt aber nur bekommt der Programmierer darauf keinen Zugriff ebenso wie die Magie von Subsystemen.
Die Doku ist auch so ein Ding, erklärt die Bedienung und Begriffe nie die Funktionsweise was man braucht beim programmieren. Da das ganze Matlab stark mit Java verbunden ist, nicht wundern, die Hilfe schaut immer kaputt aus. Copy&Paste funktioniert nie und generell eine miese Performance hat das Ganze. Multiselect gibts nicht und wer zu schnell in zu kurze Zeit auf Properties geht, kann schon mal den Speicher(immerhin 32GB) aufbrauchen. Die Grafikfehler im Multimonitorbetrieb ignoriere ich, liegt bestimmt nicht an den verwendeten Toolkit, dachte sowas gibts nur in X mit schlechten Treibern.
Dafür hat es so Nettigkeiten im Modell Viewer ein Menüpunkt der alle(!) Fenster schließt statt wie gewohnt nur das aktuelle. Also besser auf x gehen.

Simulink ist so mächtig, dass man Callbacks für bestimmte Aktionen setzen kann bspw. bei Änderung des Blocknamens. Ich habs heute geschafft ein Callback zu definieren innerhalb einer Methode die einen anderen behandeln soll(geht über Maskeneditor). Der Code soll da übrigens nur über C&P eingefügt werden, denn der Codeausschnitt ist nicht vergrößerbar, warum sollte man das auch wollen? Gut, nachdem das nicht so funktioniert hat, alles wieder raus. Und, Simulink hats trotzdem gespeichert und weigert sich das rauszunehmen, ist ja nicht vorhanden im Menü?! Gut das die Bibliotheken in Wirklichkeit Archive sind und man die XML Datei auch händisch korrigieren kann, sonst wäre ich aufgeschmissen.

Aber eines ist gelungen, man kann im Haltepunkt über die Workbench den Zugriff auf den akt. Namensraum bekommen. Unschätzbar wenn auch der Rest, trotz Release alle 6 Monate, an einer funktionierenden QA Abteilung zweifeln lässt.

Einige Mysterien bleiben da noch: Wie erstellt man einen Block aus einen Subsystem mit eigenen Typ(Die Doku behandelt nicht den Fall von häufig auftretenden Fehlermeldungen und deren Bedeutung)? Wo definiert man Callback, die nicht im Auswahlmenü des Maskeneditors existent sind? Bspw. kann man beim Setzen einer Verbindung einschreiten.
 
Zuletzt bearbeitet:
Ich hatte heute auch ein wenig Frust mit FreeBSD. Das erste Mal seit langem. make config wollte heute wegen eines versehentlichen commits nicht und natürlich genau in der Zeit, wo ich einen neuen Server aufsetze. Natürlich fies, weil man mit sowas nicht rechnet und zuerst mal denkt, dass dialog4ports spinnt, aber seit Februar gab es nichts mehr. Das Verhalten war auch ein recht fieses, ohne Hinweise. Naja, zumindest ging es dann am Nachmittag wieder und ich konnte weiter machen. War halt nur ein recht blödes Timinig. Den Commit habe ich auch gesucht, nachdem ich im FreeBSD-Forum gelesen habe, dass jemand anderer zur selben Zeit das Problem reportet hat, aber die Changes, die das verursacht haben habe ich natürlich komplett übersehen.

Aber ganz ehrlich: Mit dem Problem merkt man mal wieder wie ungewohnt es ist, dass FreeBSD Probleme macht. Ich habe in letzter Zeit so viel Schwachsinn gesehen von Leuten, die nicht wissen was sie tun, bcrypt als Protokoll bezeichnen, glauben, dass wenn sie im Browser ein SHA über das Passwort machen es damit verschlüsselt ist, etc. Unsinn gibt es. Da will man flüchten. Hätte nicht gedacht, dass ich mal so denke, aber irgendwie braucht es mehr Theo de Raadts auf der Welt.

Und dann gibt es die ganzen Doktoren in Mathematik und in Informatik, die weder Logik verstehen, noch Server aufsetzen können, ganz zu schweigen von schönem Code schreiben.

Oh und zu gute Letzt, die Leute die meinen "Ja, das ist besser. Das ist abstrakter und viel komplexer, außerdem inkompatibel, langsam und kann viel weniger. Man muss es nur lang lernen. Dafür ist es dann viel besser".

Oder die Leute, die meinen Doku ist outdated. Dokumentieren bringt sich auch nichts. Außerdem müssen wir Listen für jede Kleinigkeit schreiben und Meetings machen und alles überall aufschreiben, die Hälfte des Tages mit Management verbringen, damit der Managementoverhead weniger wird, weil wenn man das macht, was man eigentlich tun will kommt man nicht dazu vor lauter Management. Außerdem macht man was falsch, wenn man für ein Software länger als 6 Stunden braucht. Außerdem sind Sicherheitsupdates, die große Lücken stopfen und generell Security und all das unnütz, weil man die im Web Interface nicht sieht. Das alles sagen schon die Soldaten von der amerikanischen Armee!

EDIT:

Dann gibt es noch die Sache, dass sich diverse "Programmierer", die keinen kontrollierbaren Code schreiben können denken, sie müssen ihr Potential nutzen und ganze Fameworks bauen und verwenden, die dann niemand mehr kontrollieren kann und hunderte Lemminge springen hinterher.

Also DAS wundert mich nun nicht. :) Ich habe bis heute noch keine funktionierende Pulseaudio-Installation gesehen. Nur immer unterschiedlich große Teilmengen von "funktionierend". Klassische Poettering-Software halt.
Du verstehst das ganz falsch. Es geht genau darum, dass du dich entscheiden musst was geht und was nicht. Der ganze Sinn hinter der Poettering-Philosophie ist, dass die Leute lernen solche Dinge zu akzeptieren. Es kann halt nicht immer alles funktionieren. Man muss sich einfach damit abfinden. Das ist ein bisschen, wie Yin und Yang. Es gab in der Vergangenheit zu viel funktionierende Software. Das muss jetzt wieder ausgeglichen werden, damit das Gleichgewicht wieder hergestellt ist.

Und nach dem ganzen Hype um Microkernel und Hurd, muss jetzt ein systemd her, damit man wieder wie in guten alten Zeiten ein Single-Process-OS bauen kann. Dazu muss natürlich alles in einem Programm laufen. Das wiederum ist wichtig, damit man eine Abstraktionsebene hat auf der man erneut auf die Idee kommen kann Multi-Process-Support zu ermöglichen.

Den ersten Anlauf gab's ja mit emacs. Der Neue ist eben systemd. ;)
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Chu
Oh und zu gute Letzt, die Leute die meinen "Ja, das ist besser. Das ist abstrakter und viel komplexer, außerdem inkompatibel, langsam und kann viel weniger. Man muss es nur lang lernen. Dafür ist es dann viel besser".

Hab' ich da "Poettering" gelesen?
 
Ich finde es immer wieder erschreckend, wie schon lange bekannte Dinge als neu verkauft werden. Bei
Golem zu systemd 215 scheint es so, als wären geteilte /usr-Verzeichnisse und Systeme im Ram (zustandslos:confused:) erst durch systemd möglich.
 
Zurück
Oben