|
|
|
|
wo hast du das teil denn gefunden?
|
|
|
|
|
|
|
ptrdiff_t
e: Praktische Relevanz ist natürlich für x64 nicht gegeben, weil der Addressraum zu klein ist, um kein UB zu haben, ohne vorher nicht schon UB zu begehen. Aber generell kotzt mich ja bei C/C++ so einiges in Sachen Integer-Arithmetik und -API-Design an. Neulich ist mir z.B. aufgefallen, dass printf-Variable-Precision (also printf("%*s", len(s), s)) nur mit int funktioniert und daher eh nen Assert (assert(len(s) <= INT_MAX)) braucht. Und dann die ganze Signed/Unsigned-Vermischung. Es ist einfach ein Krampf. M(
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von csde_rats am 28.03.2019 21:54]
|
|
|
|
|
|
Man könnte soweit gehen zu sagen C ist halt alt und verrostet und eine Sprache mit anständiger Speicherverwaltung wäre vielleicht ein guter Ersatz.
|
|
|
|
|
|
|
*Auftritt purism-Apostel*
|
|
|
|
|
|
|
| Zitat von Traxer
wo hast du das teil denn gefunden?
| |
Ich denke du wolltest diesen Link:
https://en.cppreference.com/w/cpp/types/ptrdiff_t
Standard C11
Kapitel 6.5.6 Absatz 9
|
When two pointers are subtracted, both shall point to elements of the same array object,
or one past the last element of the array object; the result is the difference of the
subscripts of the two array elements. The size of the result is implementation-defined,
and its type (a signed integer type) is ptrdiff_t defined in the <stddef.h> header.
If the result is not representable in an object of that type, the behavior is undefined. | |
Als ich Pointer-Arithmetik gelernt habe, habe ich gehofft, dass die Implementierung das hoffentlich so implementieren müssen, dass das nicht passiert. Auftritt Realität
Klarer Fall von Rost. Hat wer WD40?
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von hoschi am 29.03.2019 14:01]
|
|
|
|
|
|
| Zitat von csde_rats
ptrdiff_t
| |
das war mir klar, ich meinte den spezifischen quote.
für den quote ja, für den rest eher weniger.
| Zitat von csde_rats
e: Praktische Relevanz ist natürlich für x64 nicht gegeben, weil der Addressraum zu klein ist, um kein UB zu haben, ohne vorher nicht schon UB zu begehen.
| |
ich seh da auch so eigentlich kein problem mit, aber das mag jetzt mal wieder meine persönliche sicht auf diese dinge sein.
| Zitat von csde_rats
Aber generell kotzt mich ja bei C/C++ so einiges in Sachen Integer-Arithmetik und -API-Design an. Neulich ist mir z.B. aufgefallen, dass printf-Variable-Precision (also printf("%*s", len(s), s)) nur mit int funktioniert und daher eh nen Assert (assert(len(s) <= INT_MAX)) braucht. Und dann die ganze Signed/Unsigned-Vermischung. Es ist einfach ein Krampf. M(
| |
sagen wir mal, die standard C und C++ sachen sind halt alle ein wenig mit sehr grosser vorsicht zu geniessen. da gibt es auch ne ganze menge an schönen funktionen, die irgendeine art von internem state mit sich rum tragen, der dir im normalen leben eher nicht den kopf wegblässt, aber wenn du dann mit threading was machst, explodiert dir war.
was den integer teil angeht, ja. da sollte man dringend mal, zumindest plattform spezifisch hingehen und einige der undefined behaviours eliminieren. was aber leider wohl nicht so wirklich passieren wird, weil die sprache ja nunmal plattform unabhängig ist und "nur" die implementation abhängig von eben dieser plattform ist und sein soll. das gleiche in c++.
effektiv schieben die standardleute das seit jahrzehnten von seiten der sprache auf die implementation und die implementationsleute schieben es auf die standardleute. politik.
das ist einer der gründe, warum eine portable support library halt einfach ne schöne sache ist, wenn diese strikt spezifiziert ist und sich tatsächlich überall gleich verhält. einer der gründe, warum z.b. spielehersteller häufig eben keine stdlib und stl nutzen. das ist dann auch mal ganz frei von den restlichen gründen, die zumindest bei c++ dagegensprechen.
| Zitat von B0rG*
Man könnte soweit gehen zu sagen C ist halt alt und verrostet und eine Sprache mit anständiger Speicherverwaltung wäre vielleicht ein guter Ersatz.
| |
haben wir aber nicht und alle versuche dahin sind bisher kläglich gescheitert.
schau dir c# an, dort wird gerade manuelles speichermanagement eingebaut, weil die VM und der GC nicht in der lage sind sachen zu managen, die irgendwas im bereich "real-time" und "system" machen. also effektiv alles, was über nen bischen businesssoftware hinaus geht. darüberhinaus wird ein pointer ähnliches system eingebaut, weil die aktuellen sachen teilweise einfach zu langsam sind und zuviel speicher für embedded systeme verschwenden.
ich bin auch nicht der meinung, dass das speichermanagement von c hier das problem ist. das ist schon recht gut, wenn man berücksichtigt, wofür die sprache gedacht ist. C war nie als sprache für anwendungen im eigentlichen sinne gedacht, sondern als high level assembler für system relevante programme. in dem bereich musst du als programmierer halt so oder so wissen, was du da machst, weil dir ansonsten unter umständen auch mal die hardware sehr real um die ohren fliegt oder abbrennt. da hilft einem dann auch kein alternatives speichermanagement konzept.
die ansätze mit nem GC in C++ gab es ja schonmal, lässt sich aber halt einfach nicht mit dem rest des sprachkonzepts vereinbaren, was dazu führte, dass das wieder rausgeflogen ist.
die einzige C-family sprache, die mir bekannt ist, die etwas ähnliches wie nen GC nutzt ist Objective-C und die sprache krankt an ganz anderen stellen.
| Zitat von GarlandGreene
*Auftritt purism-Apostel*
| |
das hat, glaube ich, weniger was mit purismus zu tun, als einfach mit der realität, dass fast alles schon versucht wurde und nichts davon wirklich besser funktioniert hat. es gab aber sehr wohl ne ganze reihe von sachen, die weit schlechter funktioniert hat, als das vorhandene. leider.
| Zitat von hoschi
Als ich Pointer-Arithmetik gelernt habe, habe ich gehofft, dass die Implementierung das hoffentlich so implementieren müssen, dass das nicht passiert. Auftritt Realität
| |
als ich das gelernt habe, hab ich das erst sicherheitshalber noch nen paar mal genauer gelesen und dann festgestellt "here be dragons", ok, dass stand in der box daneben...
die realität die sich irgendwann einfach einstellt bzw. einstellen sollte ist, dass low level sprachen halt nicht fürs "mal eben dahingeschissen" gedacht sind, sondern schon von der person vor dem rechner erwartet werden muss, dass die weiss was sie darin tut oder halt auch lässt.
was diesen low level sprachen aber generell gut tun würde sind modernere debugging werkzeuge, in denen man z.b. kontext mit angezeigt bekommt. die meisten fehler die ich z.b. beim programmieren mache sind sachen, die ich nur durch den kontext aus dem drumherum finden und eliminieren kann.
beim speichermanagement sachen wäre hier z.b. ne direkte visualisierung des speichers nicht schlecht. in etwa so, wie man das mit guten profilern inzwischen hat. da kann man dann einfach mal den cursor über nen block halten und bekommt angezeigt, was das genau ist und wo im code ich die spezielle stelle finde. damit könnte man dann sehr schnell so sachen wie "übers ende schreiben" und co finden.
was aber auch viel helfen würde ist, wenn sich leute mal diverse compiler optionen anschauen würden und da auch wissen würde, warum man bestimmte sachen anschalten und bestimmte andere besser abschalten sollte.
|
|
|
|
|
|
|
| Zitat von Traxer
also effektiv alles, was über nen bischen businesssoftware hinaus geht.
| |
Qué?
¤: Also falls das auf C# bezogen ist: unsafe gibt es schon ewig, und zum Beispiel Span<T> wird ja genau eingebaut, um nicht unsafe nutzen zu müssen. Nicht weil es nicht möglich wäre.
Und sorry, aber in Sprachen mit GC wird eindeutig nicht nur Businesssoftware geschrieben. Ich bin in der Regel ja grösstenteils deiner Meinung, aber das ist einfach ausgemachter Quatsch.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von SwissBushIndian am 29.03.2019 18:52]
|
|
|
|
|
|
| Zitat von Traxer
haben wir aber nicht und alle versuche dahin sind bisher kläglich gescheitert.
schau dir c# an, dort wird gerade manuelles speichermanagement eingebaut, weil die VM und der GC nicht in der lage sind sachen zu managen, die irgendwas im bereich "real-time" und "system" machen.
(...)
ich bin auch nicht der meinung, dass das speichermanagement von c hier das problem ist. das ist schon recht gut, wenn man berücksichtigt, wofür die sprache gedacht ist. C war nie als sprache für anwendungen im eigentlichen sinne gedacht, sondern als high level assembler für system relevante programme. in dem bereich musst du als programmierer halt so oder so wissen, was du da machst, weil dir ansonsten unter umständen auch mal die hardware sehr real um die ohren fliegt oder abbrennt. da hilft einem dann auch kein alternatives speichermanagement konzept.
| |
Natürlich meine ich nicht, dass eine systemnahe Sprache durch eine Runtime mit virtueller Maschine oder durch einen (klassischen) GC ersetzt werden sollte. Beides ist für eine solide Speicherverwaltung nicht notwendig. Das Problem mit C ist, dass es zu einer Zeit designed wurde, als Compiler eben noch nicht mehr als "bessere Assembler" waren. Das ist jetzt anders, man kann jetzt Sprachen designen die sehr viel mehr Garantien geben und Compiler schreiben, die diese Garantien auch überprüfen.
Ich sehe keinen Grund, warum in einer modernen Sprache Programme mit (z.B.) Buffer overflows überhaupt formulierbar sein sollten. Und wenn man es ermöglichen wollen würde würde man dafür offensichtlich Spezialsyntax einbauen, um solche kritischen Stellen maximal zu betonen. Auch in einem systemnahen Programm sind die größten Teile des Codes nicht Performance-kritisch. Es ist dämlich eine Sprache zu haben, in der der Speicherbug der Normalfall und die Bugfreiheit der teuer erkämpfte Spezialfall ist. Darüber sollten wir hinaus sein.
Die Vergangenheit zeigt, dass kein Mensch dazu in der Lage ist korrekten und sicheren C-Code zu schreiben. Wie auch, ist ein Ding der Unmöglichkeit. Für mich folgt daraus, dass man vielleicht über die Grundannahmen nachdenken sollte, allen voran die Sprache selbst.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von B0rG* am 29.03.2019 23:18]
|
|
|
|
|
|
Moin, Nub hier.
Habe Ubuntu 18.04 LTS.
Läuft alles super, habe mir die gnome-extensions klargemacht. Ich liebe alles.
Nur eine Sache nervt mich und ich konnte durch rumschauen nicht herausfinden wie ich es änder und weiß auch keine entsprechende Extension, aber vielleicht bin ich einfach nur dumm und übersehe etwas offensichtliches:
Wenn ich ein Programm starten will, gehe ich normalerweise so vor, dass ich die Super/Windows-Taste drücke und dann den Namen eingebe und Enter drücke. Finde ich sehr bequem, und bin zufrieden. Was mich stört ist aber, dass ich sobald ich die Super-Taste drücke er den ganzen Bildschirm verdunkelt und erstmal alle möglichen Apps anzeigt und während ich schreibe dampft er sie dann ein. Über den ganzen Bildschirm. Das stört mich.
Gibt es eine Möglichkeit dieses App-Menü welches erscheint wenn man auf die Supertaste drückt kleiner zu machen und weniger Smartphone-artig? Mir würde ein sehr kleines Fenster am Dock schon reichen, ähnlich wie es in Windows mit der Startleiste auch gelöst ist.
Danke!
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Geierkind am 30.03.2019 1:13]
|
|
|
|
|
|
Probier mal xubuntu anstatt Ubuntu, das ist näher an nem klassischen desktop und fühlt sich weniger nach Smartphone an. Kannst du auch parallel installieren mit 'sudo apt install xubuntu-desktop' und dann beim Login auswählen was du starten willst. Die Programme die du nutzt bleiben die gleichen, nur die Oberfläche sieht anders aus.
|
|
|
|
|
|
|
Habe ausprobiert. Das ist prinzipiell genau was ich will, nur dass der Druck auf die Super-Taste jetzt gar nichts bewirkt Aber das lässt sich sicher ergooglen.
Gehe ich aber richtig in der Annahme, dass ich die Gnome-Extensions und Themes jetzt nicht mehr unbedingt verwenden kann? Das wäre sehr schade.
Ich finde es auch ein bisschen komisch, man kann da jeden Pixel zweimal umdrehen und verändern, aber einfach dieses App-Menü ändern scheint zu schwer. Für mich zumindest und bei Google habe ich nichts gefunden.
Aber soweit danke schonmal Ist ein bisschen ärgerlich gerade, weil mich das System und auch die Ubuntu-Oberfläche (mit meinen netten Themes) doch extrem überzeugt und ich kleben bleiben könnte. Dementsprechend nervt mich sowas natürlich.
Vielleicht einfach einen anderen Weg um Programme zu starten?! Vielleicht gibt es ein Programm welches das gleiche macht wie die Activities-Overview, nur ohne Activities-Overview.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Geierkind am 30.03.2019 2:03]
|
|
|
|
|
|
System settings -> Workspace -> Shortcuts
| Vielleicht einfach einen anderen Weg um Programme zu starten?! Vielleicht gibt es ein Programm welches das gleiche macht wie die Activities-Overview, nur ohne Activities-Overview. | |
Eine der minimalistischsten (und schnellsten) Launcher wäre das hier: https://github.com/enkore/j4-dmenu-desktop (#ubuntu)
Das macht dir standardmäßig im Grunde nur eine kleine Leiste am Bildschirmrand.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von csde_rats am 30.03.2019 7:00]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Kleiner aber feiner Unterschied: dmenu_run zeigt Binaries ("gimp-2.8") ausm $PATH an, die anderen Vorschläge (rofi weiß ich nicht) zeigen alle Anwendungen (The GNU Image Masturbation Program [GIMP]) an.
--
Dinge benennen ist schwierig. Lass einfach jedes zweite Dings nach wikipedia:Random benennen (fdr, teddy, castle, gough, mcclellan, tamarama, ...)
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von csde_rats am 30.03.2019 10:02]
|
|
|
|
|
|
Ok, sieht sauber aus.
Hatte mir jetzt einen kleinen Workaround gebastelt indem ich Alt+F2 (run command) remappe auf erreichbarere Tasten (Super+Y) und dann einfach das Programm eingebe welches ich starten will.
Ist jetzt nicht super elegant, aber verhindert wenigstens das Smartphone-Gedampfe welches man bei den Activities habt.
Dmenu probiere ich gerade aus, habe ich aber noch technische Probleme. Bin aber gerade auch nur am Notfall-Laptop weil mein Computer kaputt ist, aber wenn er wieder läuft will ich da auch auf Ubuntu umsteigen, deswegen dient mir das gerade eh nur als Testlauf, was so möglich ist.
Wenn der Computer läuft werde ich versuchen auch mal Dmenu oder Olis Programm zum laufen zu bringen.
Danke Freunde, echt super Hilfe :-)
|
|
|
|
|
|
|
Albert heißt glaube ich ein ganz hübscher Starter.
Den habe ich auf Alt(oder Super) + Leertaste gelegt.
|
|
|
|
|
|
|
Rechner S hat NFS Laufwerke.
Rechner A kann ohne Probleme mit User a Dateien darauf per Rsync übertragen.
Rechner B kann keine Daten mit User b übertragen.
Target Aa gehört a, und Target Bb gehört b., restliche Userberechtigungen sind auch identisch. Aber immer 13 permission denied. Ich habe natürlich schon alle möglichen Kombinationen von chmod und chown probiert, aber irgendwie will das alles nicht. Was übersehe ich?
¤: Ich übertrage dabei sowieso mit --no-perms --no-owner --no-group von beiden Usern, es geht nur um einen Datendump. Habe wiel lustig beide User neu angelegt und natürlich die Berechtigungen wieder gesetzt. Ideen?
¤: Und ja, natürlich ging es bis heute noch. Also surprise Problem.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von SwissBushIndian am 30.03.2019 16:01]
|
|
|
|
|
|
Offenbar ist der Switch im Sack, Port gewechselt: geht.
Nice.
¤: Geil an der Sache war ja, dass das Netzwerk ansonsten problemlos funktioniert hat. Es war tatsächlich nur die Verbindungen zwischen den beiden Rechnern. Irgendwann ist mir halt die Hutschnur geplatzt und ich habe alles ausgesteckt und für alles andere Ports genommen. Irgendwann dann wieder zurück und dann kurz durchprobiert ob es tatsächlich das ist.
Was für ein Müll.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von SwissBushIndian am 30.03.2019 17:45]
|
|
|
|
|
|
Aber aber die Checksummen
|
|
|
|
|
|
|
Ist in diesem Fall echt egal
|
|
|
|
|
|
|
falls du da was brauchen solltest, es gibt da aktuell so ein paar netgear aus einem gewissen hetzner rechenzentrum für recht günstig.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Traxer am 30.03.2019 21:44]
|
|
|
|
|
|
1297 verkauft
100 verfügbar
|
|
|
|
|
|
|
das dürfte der 2. oder 3. nachschlag sein.
ich hab 3 stück davon hier stehen.
|
|
|
|
|
|
|
| Zitat von GandalfDerPinke
Albert heißt glaube ich ein ganz hübscher Starter.
Den habe ich auf Alt(oder Super) + Leertaste gelegt.
| |
Habe ich installiert, benutze ich jetzt. Ist genau was ich will.
Obwohl das dmenu auch sexy ist. Ist aber genau das wonach ich gesucht habe. Danke!!
|
|
|
|
|
|
|
| Zitat von Traxer
falls du da was brauchen solltest, es gibt da aktuell so ein paar netgear aus einem gewissen hetzner rechenzentrum für recht günstig.
| |
oha sehr cool, danke für den hinweis!
|
|
|
|
|
|
|
Wie stromsparend ist so ein Ding bei Unterbelegung ?
|
|
|
|
|
|
|
Bin auf MATE umgestiegen. Finde ich sehr elegant, sparsam und bedient alles was man braucht. Im Dark-Theme versteht sich.
|
|
|
|
|
|
|
| Zitat von a1ex
Wie stromsparend ist so ein Ding bei Unterbelegung ?
| |
wenn du die switches meinst. die brauchen hier bei voller belegung und mit last ca. 40 watt. die sind halt passiv gekühlt.
wenn du da nichts viel dran hast und den green mode anschaltest, dann brauchen die so um die 10-15 watt.
ihr solltet da jetzt allerdings keine wunder von dem webinterface erwarten. das ist etwas träge, aber man kann, wenn man weiss wie auch einfach ne config im editor schreiben und die hochladen.
/e
hach wie schön stackoverflow doch heute ist...
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Traxer am 31.03.2019 21:26]
|
|
|
|
|
|
| Zitat von Traxer
hach wie schön stackoverflow doch heute ist...
| |
Mich nervt es.
Wer braucht denn noch Switches? Alles in die cloud, alles in die cloud!
|
|
|
|
|
|
Thema: Der Linux-Thread 100 != 0x24 ( Ein Kernelupgrade später... ) |