kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: Das Universalienproblem

    geschrieben von kamakura

    ggamee schrieb:
    Eine Universalie, oder zu deutsch einfach Verallgemeinerung, ist letztendlich ein Merkmal, welches man an mehr als einem existierenden Objekt findet. Beispielsweise Farben, Gerüche, Geschmäcker, Oberflächenbeschaffenheiten, usw. Alles Eigenschaften, die wir mit unseren Sinnen wahrnehmen können, und zur Klassifizierung benutzen.

    Soweit ich mich erinnere ist der Grundgedanke jedoch nicht zu sagen, dass eine Eigenschaft einer Entität, also eines existierenden Etwas, ist, sondern eigentlich wurde behauptet "eine Idee besteht aus Eigenschaften, dann ist diese Idee eine Entität". Man hat also seine Vorstellungen versucht einzuordnen, ob real oder nicht. So hab ich das zumindest im Kopf.
    Mmh. Das macht es jetzt noch komplizierter.

    In Wikipedia steht:
    "Als Universalien wurden im Lauf der Auseinandersetzungen sehr unterschiedliche gedankliche Prinzipien gekennzeichnet. Neben den angesprochenen Ideen Platons waren dies vor allem Regeln, Tugenden, Transzendentalien, Kategorien oder Werte. Die Position, die von der Existenz solcher abstrakter Entitäten ausgeht, wird Realismus genannt."

    Warum ist denn jetzt "Rundheit" kein Kandidat für eine Universalie?
    Der nächste Schritt hier ist nämlich zu fragen: Was sind überhaupt Gesetze, Regeln, oder gar Moral? Sowas wie "darf das nicht" ist auch eine Eigenschaft von real existierenden Dingen. Nehmen wir mal die Eigenschaft "darf nicht töten". Auch dies ist eine Universalie, welche jedem gegeben ist, durch die Regeln unserer Kultur: "[Mensch] [darf nicht töten] [Mensch]". Nun kennen wir die Universalie [Mensch], zu welcher zum Beispiel Peter, Klaus und Anna gehören. Aber die Universalie [darf nicht töten] ist identisch definiert, sie verweist auf exakt den selben Pool an Möglichkeiten (Peter, Klaus und Anna). Dementsprechend kannst du behaupten, dass wenn [Mensch] eine Entität ist, auch [darf nicht töten] eine Entität ist. Wenn es aber eine Entität ist, dann ist es etwas real existierendes.
    Damit wird dann auch der Grund, warum wir uns daran halten greifbar: Weil es eine reale Entität ist.
    Ich finde es sehr eigenartig zu sagen, dass "darf nicht töten" eine Entität sein soll. Das ist doch nur eine Aufforderung.

    "Die Menschheit", ok, das kann vielleicht gerade noch als Entität vorgestellt werden. Wobei es ja eher eine gedankliche Zusammenfassung aller Menschen ist. Aber "Mensch" an sich ist für mich keine Entität, außer natürlich wenn es sich um einen konkreten Menschen handelt.
    Letztendlich ist das also die Frage ob eine Klassifizierung nur eine abstrakte Beschreibung ist, oder du ihr eine Existenz beimessen möchtest.
    Ich hatte, wo ich das gelesen habe nur gedacht "Jo, nur weil es das Selbe ist, ist es noch lange nicht das Gleiche".
    Warum nicht?
  • in: Linux Academy

    geschrieben von kamakura

    Wo doch so viele hier Linux lieben:

    Linux Academy

    :biggrin:

    Hat das schon mal jemand ausprobiert?

    Ich wollte mich da mal aus Spaß anmelden. Ich mein, $9 für den ersten Monat ist wirklich billig. Aber geht nicht! Paypal will unbedingt, dass ich da eine Kreditkarte angebe (obwohl ich über 50 Euro auf meinem Paypal-Konto habe). Ich habe aber keine Kreditkarte.

    Tja, war wohl nix!
  • in: Sind Windkraftanlagen noch zeitgemäß?

    geschrieben von kamakura

    Dass bei Atommüll-Fässern aus Stahlblech Korrosionsgefahr besteht weiß auch jeder Akademiker, der irgendwas mit Naturwissenschaften oder Technik studiert hat. :tongue:

    Im Gegensatz zu den USA sind hierzulande die Container nicht aus Edelstahl gefertigt, nicht mal die für hochradioaktiven Atommüll. Das liegt aber nicht an den "Idioten von Akademikern" sondern wird leider aus Kostengründen so gemacht.
  • in: Sind Windkraftanlagen noch zeitgemäß?

    geschrieben von kamakura

    turmfalken-nikolai schrieb:
    Und was die Auswirkungen auf Mensch und Natur angeht: Atomkraftwerke können da wesentlich mehr Schäden anrichten als jede Windkraftanlage. Siehe Fukushima oder Tschernobyl. Von den Langzeitwirkungen des Atommülls in den Endlagern mal ganz zu schweigen! Da strahlt es noch tausende von Jahren und niemand kann garantieren das die Strahlung da mal austrit. Jetzt schon gibt es ja massive Probleme mit verrosteten Fässern etc.
    Ja, man muss hier halt zwischen der Art von Schäden unterscheiden: direkt vs. indirekt. Im Regelbetrieb vs. wenn was schief geht.
    Deswegen vertrete ich ja wie gesagt die Meinung das jede form der Energieerzeugung ihre Vor - und auch Nachteile hat.
    Ja. Und Erneuerbare haben natürlich große Nachteile, nämlich die Volatilität (bis auf Biomasse und Laufwasser) und die Kosten. Und von dem Hauptvorteil der Erneuerbaren, nämlich der CO2-Neutralität, wird man wenig haben, solange Schmutzfinken wie Australien, USA, China, Indien usw. munter weiter den Dreck in die Atmosphäre pusten.

    Aber Leute, die mit Vogelschlag oder Landschaftsverunstaltung gegen Windkraft argumentieren, machen sich lächerlich. Das sind nur die typischen "Hauptsache-Dagegen"-Idioten, die auch die Welt.de-Kommentarspalten mit ihrem dummen Gegrantel vollspammen. Get a life! :biggrin:
  • in: Sind Windkraftanlagen noch zeitgemäß?

    geschrieben von kamakura

    turmfalken-nikolai schrieb:
    Das ist eine Unterstellung! Schon deswegen weil ich beispielsweise gar nichts davon habe. Ich habe weder in irgendwelche Anlagen zur Energiegewinnung investiert noch profitiere ich direkt von ihnen.

    Schau Dir mal die Tagebaugebiete in der Lausitz an! Bis diese Flächen renaturiert sind vergehen Jahrzehnte. Allein die vielen Dörfer die zu Gunsten der Tagebaue abgerissen und die Bewohner zwangsumgesiedelt wurden sind doch wohl auch ein nicht zu widerlegendes Argument!
    Ja, wenn man sich mal auf die unmittelbaren Auswirkungen beschränkt (von den gigantischen indirekten Auswirkungen der Kohle durch den CO2-Ausstoß wollen wir gar nicht reden!), dann trifft die Kohle wenige Menschen wirklich hart (Häuser abgebaggert oder Asthma und Lungenkrebs in der Nähe von Kohlekraftwerken).
    Windenergie betrifft zwar mehr Menschen aber dafür nur leicht. Das ist doch gerechter!

    Und ob Windräder die Landschaft verschandeln ist sowieso subjektiv. Ich finde manchmal können sie sogar schön aussehen:
    [1], [2], [3]

    Wahrscheinlich ist das alles Gewöhnungssache. Es gibt ja auch Kalenderbilder mit Eisenbahnbrücken und Leuchttürmen!
  • in: Das Universalienproblem

    geschrieben von kamakura

    Das Universalienproblem [...] ist eines der zentralen Themen der Philosophie und betrifft die Frage, ob es ein Allgemeines wirklich gibt oder ob Allgemeinbegriffe menschliche Konstruktionen sind. (Quelle)

    :confused: :confused:

    Ok, vielleicht kann mir hier jemand weiterhelfen:

    - Was sind Universalien? (Beispiele)
    - Wozu sind sie gut?
    - Warum soll man annehmen, dass sie existieren?

    Eine Melone und ein Ball sind rund. Wahnsinnige Erkenntnis. Daraus nun zu schließen, dass "Rundheit" real existiert, scheint mir schon ein wenig eigenartig zu sein. Was soll das denn bringen? Ball ist rund, Melone ist rund. Damit ist alles gesagt. Wie kommt man überhaupt nur auf die Idee, dass Allgemeinbegriffe genauso real existieren wie Einzeldinge?
  • in: Eingliederung von Flüchtlingen in den Arbeitsmarkt

    geschrieben von kamakura

    seven-sign schrieb:
    Jene die sich in Europa eine Zukunft aufbauen wollen,
    sollten erstmal die jeweilige Landessprache erlernen um
    überhaupt "Vermittelbar" zu werden.
    Im Anschluss gilt es den jeweiligen "Bildungsstand" fest zu stellen.

    Wenn man kein Verständnis dafür aufbringen kann,
    dass man lieber sein Leben als Zeugnisse und Diplome rettet
    dann sollte man über seine Menschlichkeit nachdenken.
    Ja, nur hilft einem moralische Empörung hier auch nicht weiter.

    Es ist einfach eine Tatsache, dass es hier in Deutschland in der Beziehung extrem unflexibel zugeht.

    Der deutsche Arbeitnehmer kann auch nicht einfach sein Leben "resetten" und den Leuten vorführen, was er kann. Ihm hängt seine Vergangenheit an. Und wenn die problematisch ist, kriegt er keine Stelle.
    So gibt es Beispiele von Menschen, die ins Zeugenschutzprogramm kamen und denen keine Arbeitszeugnisse für die neue Identität ausgestellt wurden. Die waren auch ein Fall für Hartz-IV.

    Bei der Hochschulzugangsberechtigung können die Bundesländer natürlich die Aufnahmebedingungen für Flüchtlinge lockern. Ich sehe es allerdings schon als problematisch an, wenn deutsche und reguläre ausländische Studierende hier diskriminiert werden.
    Um fest zu stellen ob jemand über das Wissen verfügt welches
    er behauptet zu besitzen kann man einfach "Branchen/Bereichs"
    spezifische Tests entwickeln.
    Woher aber diese Flexibilität auf einmal?
  • in: Eingliederung von Flüchtlingen in den Arbeitsmarkt

    geschrieben von kamakura

    sebulon schrieb:
    Auch wenn ich einer Mathematikerin mal unterstelle, dass sie logisch denken können sollte, kann ich sie als Programmierin wohl auch weniger gebrauchen. Denn das Rechnen, kann mein Rechner. Und auf dem Bau kann ich sie auch nicht gebrauchen, ohne Praxiserfahrung.


    Wenn du zu blöd bist, den Praxiseinsatz von Leuten festzustellen, ist es dein Problem, ich würde mir nie anmaßen, dieser Person eine unfähigkeit zu attestieren... was bildest du dir eigentlich ein, wer du bist? Von deiner Argumentationsweise her bist du ein Wurm... übrigens hast du bewiesen, dass du keine Ahnung hast, was softwareentwicklung ist...
    all-in1 kommt so extrem naiv rüber, dass man es kaum für möglich hält, dass er das wirklich ernst meint. Als ob Mathematiker zum Zahlenrechnen da wären!
    kalinawalsjakoff schrieb:
    Die meisten Flüchtlinge hier am Ort sind junge Leute, die hier in Deutschland studieren wollen. Aber schaut man sich die deutschen Studenten an, so kommen die meisten davon (nicht alle) aus finanziell recht gut situierten Familien. Die meisten der Flüchtlinge, die ich kenne, haben meist aber nur ihr Handy und die Kleidung, die sie am Leib tragen und zumeist auch keine adäquate Schulbildung, um ein Studium hier in Deutschland schaffen zu können.
    Die Armut sollte natürlich kein Grund sein. Ist es natürlich in der Praxis, da der studierende Flüchtling kein ALG-2 mehr bekommt.
    Daher halte ich das mit dem Studieren von den meisten Flüchtlingen eher als Traum, den sie nicht erreichen werden.
    Die interessante Frage ist auch, wie man die Schulbildung von Flüchtlingen denn nun überhaupt feststellen soll. Teilweise kann man noch nicht mal deren Alter überprüfen!

    Man könnte natürlich für sie eine Aufnahmeprüfung für die Universität einführen, ähnlich dem Nichtschüler-Abitur. Wenn aber die Durchfallquote so bleibt wie beim Nichtschüler-Abitur, nämlich ca 50%, dann werden viele Flüchtlinge verdammt sauer werden.
  • in: RFC 3526 Diffie-Hellman P und G generieren

    geschrieben von kamakura

    computerkurs2011 schrieb:
    Also bedeutet es doch, dass meine 4096-bit Primzahl sicherer ist als wenn ich nur eine 1024-bit benutze. Oder habe ich da grundlegende Verständnisprobleme :slant:
    Ja, das ist richtig. Ich habe nur nicht verstanden, was du mir sagen wolltest.

    kamakura schrieb:
    Dann machst du was falsch. Warum ist die Zahl denn bei dir negativ? Das darf nicht sein! Irgendwas ist da schief gelaufen und du hast eine andere Zahl gekriegt, die keine Primzahl ist.
    Dass der Miller-Rabin-Primzahltest sagt, deine Zahl wäre eine Primzahl, liegt möglicherweise daran, dass er ein probabilistischer Primzahltest ist. Wenn du den mit wenigen Iterationen durchführst, dann kann er eine Zahl, die keine Primzahl ist, schon mal fälschlicherweise als Primzahl ansehen.

    Die 4096-Bit-Primzahl ist in Dezimal ausgedrückt:

    104438888141315250667960271984652954583126906099213500902258875644433817\
    202232269071044404666980978393011158573789036269186012707927049545451721\
    867301692842745914600186688577976298222932119236830334623520436805101030\
    915567415569746034717694639407653515728499489528482163370092181171673897\
    245183497945589701030633346859075135836513878225037226911796898519432244\
    453568741552200715163863814145617842062127782267499502799027867345862954\
    439173691976629900551150544617766815444623488266596168079657690319911608\
    934763494718777890652800800475669257166692296412256617458277670733245237\
    100127216377684122931832490312574071357414100512456196591388889975346173\
    534797001169325631675166067895083002751025580484610558346505544661509044\
    430958305077580850929704003968005743534225392656624089819586363158888893\
    636412992005930845566945403401039147823878418988859467233624276379513817\
    635322284552464404009425896243361335403610464388192523848922401019419308\
    891166616558422942466816544168892779046060826486420423771700205474433798\
    894197466121469968970652154300626260453589099812575227594260877217437610\
    731421774923304821790494440983623823577230674987439676046337648021513346\
    133347839568274660824258513395388388222678611803018402813675597004538553\
    47584532478


    Ich habe das mal nachgerechnet allerdings komme ich a auf ein anderes Ergebnis und b zeigen mir alle Primzahltests, egal ob von C#, PHP oder Online, dass deine Primzahl keine Primzahl ist. Tippe ich etwas falsch ein? Die Zahl ist doch ohne \ zu verstehen. Warum sagen mir dann alle Tests das es keine Primzahl ist? :(
    Ja, die
    \
    -Dinger müssen entfernt werden. Also so:
    1044388881413152506679602719846529545831269060992135009022588756444338172022322690710444046669809783930111585737890362691860127079270495454517218673016928427459146001866885779762982229321192368303346235204368051010309155674155697460347176946394076535157284994895284821633700921811716738972451834979455897010306333468590751358365138782250372269117968985194322444535687415522007151638638141456178420621277822674995027990278673458629544391736919766299005511505446177668154446234882665961680796576903199116089347634947187778906528008004756692571666922964122566174582776707332452371001272163776841229318324903125740713574141005124561965913888899753461735347970011693256316751660678950830027510255804846105583465055446615090444309583050775808509297040039680057435342253926566240898195863631588888936364129920059308455669454034010391478238784189888594672336242763795138176353222845524644040094258962433613354036104643881925238489224010194193088911666165584229424668165441688927790460608264864204237717002054744337988941974661214699689706521543006262604535890998125752275942608772174376107314217749233048217904944409836238235772306749874396760463376480215133461333478395682746608242585133953883882226786118030184028136755970045385534758453247
    Wenn ich das in den Online-Test eingebe, dann gibt der mir "Sehr wahrscheinlich eine Primzahl" raus.

    Ich wollte nicht den Generator finden, denn der ist doch schon im RFC als 2 angegeben oder irr ich mich?
    Richtig, den kannst du nehmen. Ich dachte, das wolltest du auch selber programmieren.
    Ich wollte die Zufallszahl a bzw. b generieren (der private Schlüssel von Alice oder Bob). Und dieser muss doch eine Zufallszahl (keine Primzahl oder?) zwischen 1 und p-1 sein, wobei es ja besser ist wenn die Zufallszahl recht groß ist.
    So könnte man doch z.b. p*0,5 rechnen und dann die Zufallszahl zwischen p*0,5 und p-1 suchen, so wäre doch garantiert, dass die Zufallszahl groß ist und noch genug Raum für eine Zufallszahl besteht?
    Ich weiß nicht, warum dein Zufallszahlengenerator so lahm ist. Mit SageMath bekomme ich in einer Sekunde mit
    randint(0,2^4096)
    eine zufällige 4096 Bit-Zahl generiert.

    EDIT: Ich habe herausgefunden, wo der Fehler mit der Primzahl war: Aus irgendeinem Grund hat sich da am Ende eine '8' eingeschlichen. In dem Fall wäre die Zahl ja sogar gerade gewesen. Aber jetzt ist alles richtig.
  • in: Eingliederung von Flüchtlingen in den Arbeitsmarkt

    geschrieben von kamakura

    all-in1 schrieb:
    waytogermany schrieb:
    Vom ökonomischen Standpunkt ist es natürlich eine Verschwendung von Humankapital. Jedoch ist die Verschwendung bei Arbeitslosigkeit 100% und beim Straßenfegen nur eventuell 99%. Also immer noch besser für die Volkswirtschaft. Weiterhin sage ich mir, wer es geschafft hat, zu promovieren, wird wohl auch Abläufe am Fließband erlernen können. Hängt ganz von dem Menschen ab.


    Die Erfahrung meinerseits bzw. auch innerhalb meiner Familie zeigt, dass ein promovierter Mensch für niedrigere Arbeiten zu 99% nicht tauglich ist.
    Erstens muss aber auch alles ausdiskutiert werden und dann von Praxis null Ahnung.
    Gegen unbelegte, anekdotische Evidenz — oder nennen wir's doch einfach mal beim Namen: Vorurteile — kann man schwerlich argumentieren.
    kamakura schrieb: Der Punkt ist doch der: es gibt 6 Monate Probezeit. Und eine Stelle kann auch grundlos für zwei Jahre befristet werden. Wenn sich der Herr Doktor der Mathematik tatsächlich — wie die AG wohl befürchten — als verkopftes, unmotiviertes Schweinchen Schlau entpuppt, dann kann man ihn doch immer noch leicht loswerden. Warum kriegen Leute wie er keine Chance?


    Eben aus den oben genannten Gründen. Es ist viel zu teuer diesen Menschen einzuarbeiten.
    Was auf der Theorie basiert, dass man mit Doktortitel langsamer lernt. Wenn's dafür nur auch Belege gäbe...
    Zur Zeit ist es so, dass jeder, der arbeiten will, auch einen Job bekommen kann.
    Der promovierte Mathematiker offensichtlich nicht.

    Und noch eine Promovierte:
    Habe ich schon erwähnt, dass ich seit drei Jahren, seit dem Ende des Stipendiums, kein festes Gehalt beziehe, teilweise mit zwei Euro in der Woche haushalte und mir drei Mal überlege, ob ich heute warm esse oder doch lieber erst am Sonntag? Ich würde mit 1.100 Euro netto SEHR, SEHR glücklich werden! (Quelle)
    Nur bekommt man zur Zeit einfach keine guten Leute.
    Ich hatte vor einiger Zeit versucht Personal zu bekommen. Einige kommen erst gar nicht zum Vorstellungsgespräch, die nächsten kommen dann morgens, wenn es los gehen soll nicht, und die letzten sind dann auch nächsten Tag verschwunden. Und das bei 10,-€ netto Lohn in Branche, in der es gerade eigentlich als Anfangsgehalt nur den gesetzlichen Mindestlohn gibt.

    Arbeitszeugnisse werden in der Regel überbewertet. So ein Zeugnis sagt lediglich aus, wie gut der Bewerber mit seinem letzten Arbeitgeber auseinander gegangen ist.
    Ein Lebenslauf der sagt etwas mehr aus. Hier kann man viel mehr drin erkennen.
    Nur dass man ohne Arbeitszeugnisse den Lebenslauf nicht überprüfen kann!
    Will ein Arbeitgeber einen Asylbewerber einstellen, dann interessiert er sich gar nicht für die Lücken im Lebenslauf. Da wird sich nur dafür interessiert, dass er Arbeitswillig ist, den Anforderungen genügt und er versteht, was er machen soll. Denn solchen Leuten musst nicht den Tarif zahlen, sondern lediglich den Mindestlohn.
    Ach? Wenn du dich als Müllsortierer (bezahlt mit Mindestlohn) bewirbst, musste deinen Lebenslauf und Zeugnisse auch abgeben. Warum denn, wenn sie uninteressant sind?

    Und zynisch könnte man argumentieren: Was ist wenn der Asylbewerber seinen Doktortitel verschweigt, welcher für dich nach eigener Aussage ein Ausschlusskriterium für einfache Arbeiten darstellt? :biggrin: :biggrin:
  • in: RFC 3526 Diffie-Hellman P und G generieren

    geschrieben von kamakura

    computerkurs2011 schrieb:
    Hallo kamakura,

    ich habe mich jetzt für die feste Primzahl aus dem RFC entschieden. Ich habe einfach die 4096-bit Primzahl genommen, denn wenn 1024-bit schon eher für die NSA machbar sind, dann wird eine 4096-bit Primzahl wohl eher für einfache Hacker und nicht staatliche Institutionen nicht knack bar sein in einer realistischen Zeit.
    :confused:

    Willst du mir sagen: "Umso mehr Bit umso sicherer" ?
    kamakura schrieb:
    Verstehe die Frage nicht. Du kannst doch einfach die Zahl vom Hexadezimal- ins Dezimalsystem konvertieren, oder nicht?

    Natürlich brauchst du auch noch eine BigInteger-Klasse.


    Visual Studio bietet sogar die Möglichkeit mit einem byte array das mit Hex gefüllt ist zu rechnen :thumb:

    Für alle die so ein byte Array vllt. auch mal für DH brauchen:
    byte[] m_MODP4096 = new byte[]
                {
                   0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x90, 0xFD, 0xAA, 0x22, 0x16, 0x8C, 0x23, 0x4C, 0x4C, 0x66, 0x28, 0xB8, 0x0D, 0xC1, 0xCD, 0x12, 0x90, 0x24, 0xE0, 0x88, 0xA6, 0x7C, 0xC7, 0x40, 0x20, 0xBB, 0xEA, 0x63, 0xB1, 0x39, 0xB2, 0x25, 0x14, 0xA0, 0x87, 0x98, 0xE3, 0x40, 0x4D, 0xDE, 0xF9, 0x51, 0x9B, 0x3C, 0xD3, 0xA4, 0x31, 0xB3, 0x02, 0xB0, 0xA6, 0xDF, 0x25, 0xF1, 0x43, 0x74, 0xFE, 0x13, 0x56, 0xD6, 0xD5, 0x1C, 0x24, 0x5E, 0x48, 0x5B, 0x57, 0x66, 0x25, 0xE7, 0xEC, 0x6F, 0x44, 0xC4, 0x2E, 0x9A, 0x63, 0x7E, 0xD6, 0xB0, 0xBF, 0xF5, 0xCB, 0x6F, 0x40, 0x6B, 0x7E, 0xDE, 0xE3, 0x86, 0xBF, 0xB5, 0xA8, 0x99, 0xFA, 0x5A, 0xE9, 0xF2, 0x41, 0x17, 0xC4, 0xB1, 0xFE, 0x64, 0x92, 0x86, 0x65, 0x1E, 0xCE, 0x45, 0xB3, 0xDC, 0x20, 0x07, 0xCB, 0x8A, 0x16, 0x3B, 0xF0, 0x59, 0x8D, 0xA4, 0x83, 0x61, 0xC5, 0x5D, 0x39, 0xA6, 0x91, 0x63, 0xFA, 0x8F, 0xD2, 0x4C, 0xF5, 0xF8, 0x36, 0x55, 0xD2, 0x3D, 0xCA, 0x3A, 0xD9, 0x61, 0xC6, 0x2F, 0x35, 0x62, 0x08, 0x55, 0x2B, 0xB9, 0xED, 0x52, 0x90, 0x77, 0x09, 0x69, 0x66, 0xD6, 0x70, 0xC3, 0x54, 0xE4, 0xAB, 0xC9, 0x80, 0x4F, 0x17, 0x46, 0xC0, 0x8C, 0xA1, 0x82, 0x17, 0xC3, 0x29, 0x05, 0xE4, 0x62, 0xE3, 0x6C, 0xE3, 0xBE, 0x39, 0xE7, 0x72, 0xC1, 0x80, 0xE8, 0x60, 0x39, 0xB2, 0x78, 0x3A, 0x2E, 0xC0, 0x7A, 0x28, 0xFB, 0x5C, 0x55, 0xDF, 0x06, 0xF4, 0xC5, 0x2C, 0x9D, 0xE2, 0xBC, 0xBF, 0x69, 0x55, 0x81, 0x71, 0x83, 0x99, 0x54, 0x97, 0xCE, 0xA9, 0x56, 0xAE, 0x51, 0x5D, 0x22, 0x61, 0x89, 0x8F, 0xA0, 0x51, 0x01, 0x57, 0x28, 0xE5, 0xA8, 0xAA, 0xAC, 0x42, 0xDA, 0xD3, 0x31, 0x70, 0xD0, 0x45, 0x07, 0xA3, 0x3A, 0x85, 0x52, 0x1A, 0xBD, 0xF1, 0xCB, 0xA6, 0x4E, 0xCF, 0xB8, 0x50, 0x45, 0x8D, 0xBE, 0xF0, 0xA8, 0xAE, 0xA7, 0x15, 0x75, 0xD0, 0x60, 0xC7, 0xDB, 0x39, 0x70, 0xF8, 0x5A, 0x6E, 0x1E, 0x4C, 0x7A, 0xBF, 0x5A, 0xE8, 0xCD, 0xB0, 0x93, 0x3D, 0x71, 0xE8, 0xC9, 0x4E, 0x04, 0xA2, 0x56, 0x19, 0xDC, 0xEE, 0x3D, 0x22, 0x61, 0xAD, 0x2E, 0xE6, 0xBF, 0x12, 0xFF, 0xA0, 0x6D, 0x98, 0xA0, 0x86, 0x4D, 0x87, 0x60, 0x27, 0x33, 0xEC, 0x86, 0xA6, 0x45, 0x21, 0xF2, 0xB1, 0x81, 0x77, 0xB2, 0x00, 0xCB, 0xBE, 0x11, 0x75, 0x77, 0xA6, 0x15, 0xD6, 0xC7, 0x70, 0x98, 0x8C, 0x0B, 0xAD, 0x94, 0x6E, 0x20, 0x8E, 0x24, 0xFA, 0x07, 0x4E, 0x5A, 0xB3, 0x14, 0x3D, 0xB5, 0xBF, 0xCE, 0x0F, 0xD1, 0x08, 0xE4, 0xB8, 0x2D, 0x12, 0x0A, 0x92, 0x10, 0x80, 0x11, 0xA7, 0x23, 0xC1, 0x2A, 0x78, 0x7E, 0x6D, 0x78, 0x87, 0x19, 0xA1, 0x0B, 0xDB, 0xA5, 0xB2, 0x69, 0x9C, 0x32, 0x71, 0x86, 0xAF, 0x4E, 0x23, 0xC1, 0xA9, 0x46, 0x83, 0x4B, 0x61, 0x50, 0xBD, 0xA2, 0x58, 0x3E, 0x9C, 0xA2, 0xAD, 0x44, 0xCE, 0x8D, 0xBB, 0xBC, 0x2D, 0xB0, 0x4D, 0xE8, 0xEF, 0x92, 0xE8, 0xEF, 0xC1, 0x41, 0xFB, 0xEC, 0xAA, 0x62, 0x87, 0xC5, 0x94, 0x74, 0xE6, 0xBC, 0x05, 0xD9, 0x9B, 0x29, 0x64, 0xFA, 0x09, 0x0C, 0x3A, 0x22, 0x33, 0xBA, 0x18, 0x65, 0x15, 0xBE, 0x7E, 0xD1, 0xF6, 0x12, 0x97, 0x0C, 0xEE, 0x2D, 0x7A, 0xFB, 0x81, 0xBD, 0xD7, 0x62, 0x17, 0x04, 0x81, 0xCD, 0x00, 0x69, 0x12, 0x7D, 0x5B, 0x05, 0xAA, 0x99, 0x3B, 0x4E, 0xA9, 0x88, 0xD8, 0xFD, 0xDC, 0x18, 0x6F, 0xFB, 0x7D, 0xC9, 0x0A, 0x6C, 0x08, 0xF4, 0xDF, 0x43, 0x5C, 0x93, 0x40, 0x63, 0x19, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
    
                };


    Allerdings geben manche Primzahlen Tests aus, dass dies keine Primzahl wäre, vermutlich, weil es eine mit negativen Vorzeichen ist. Allerdings gibt der Miller-Rabin Primzahltest ein positives Ergebnis aus, weshalb ich hier mal von einer richtigen Implementierung ausgehe.
    Dann machst du was falsch. Warum ist die Zahl denn bei dir negativ? Das darf nicht sein! Irgendwas ist da schief gelaufen und du hast eine andere Zahl gekriegt, die keine Primzahl ist.
    Dass der Miller-Rabin-Primzahltest sagt, deine Zahl wäre eine Primzahl, liegt möglicherweise daran, dass er ein probabilistischer Primzahltest ist. Wenn du den mit wenigen Iterationen durchführst, dann kann er eine Zahl, die keine Primzahl ist, schon mal fälschlicherweise als Primzahl ansehen.

    Die 4096-Bit-Primzahl ist in Dezimal ausgedrückt:
    104438888141315250667960271984652954583126906099213500902258875644433817\
    202232269071044404666980978393011158573789036269186012707927049545451721\
    867301692842745914600186688577976298222932119236830334623520436805101030\
    915567415569746034717694639407653515728499489528482163370092181171673897\
    245183497945589701030633346859075135836513878225037226911796898519432244\
    453568741552200715163863814145617842062127782267499502799027867345862954\
    439173691976629900551150544617766815444623488266596168079657690319911608\
    934763494718777890652800800475669257166692296412256617458277670733245237\
    100127216377684122931832490312574071357414100512456196591388889975346173\
    534797001169325631675166067895083002751025580484610558346505544661509044\
    430958305077580850929704003968005743534225392656624089819586363158888893\
    636412992005930845566945403401039147823878418988859467233624276379513817\
    635322284552464404009425896243361335403610464388192523848922401019419308\
    891166616558422942466816544168892779046060826486420423771700205474433798\
    894197466121469968970652154300626260453589099812575227594260877217437610\
    731421774923304821790494440983623823577230674987439676046337648021513346\
    133347839568274660824258513395388388222678611803018402813675597004538553\
    47584532478


    Genau das, was durch
    2^4096 - 2^4032 - 1 + 2^64 * { [2^3966 pi] + 240904 }
    herauskommt (es ist zwar nirgends in dem RFC erklärt, aber ich denke, dass die eckigen Klammern wie üblich Abrundung bedeuten).

    Und das ist auch eine Primzahl, ich habe es mit SageMath überprüft.
    Allerdings dauert das Finden einer Zufallszahl, also keine Primzahl, sondern die Zahl a zwischen 2 und P-1, immer um die 40-50 Sekunden, hat jemand ein Tipp wie man dies verkürzen könnte?
    Du kannst einfach mit der 2 anfangen und testen, ob sie eine Primitivwurzel ist, dann mit der 3, 5, 6, usw.

    Was du nicht testen musst, sind Potenzen von Zahlen, die du bereits getestet hast und die keine Primitivwurzeln sind (denn dann sind die Potenzen auch keine Primitivwurzeln).
  • in: Eingliederung von Flüchtlingen in den Arbeitsmarkt

    geschrieben von kamakura

    mein-wunschname schrieb:
    Die Berufs- und Studienabschlüsse anderer Länder sind mit denen in Deutschland oft nicht vergleichbar. Innerhalb der EU hat die Harmonisierung der Anerkennung von Berufsabschlüssen mehrere Jahre (eigentlich Jahrzehnte). So steht also selbst dann, wenn die Leute ein Abschlusszeugnis mitgebracht haben, zunächst ein langwieriges Anerkennungsverfahren an erster Stelle.
    In vielen Fällen ist nicht so sehr eine Frage der Paranoia der Arbeitgeber sondern einfach eine Frage der gesetzlichen Regelungen einschließlich der damit zusammenhängenden Haftungsfragen.
    Tatsache ist aber nun mal, dass deutsche Arbeitgeber extrem paranoid sind, was die Erwerbsbiografie angeht. Das kannst du doch nicht abstreiten!

    Ich habe das selbst in so vielen Fällen miterlebt. Was glaubst du wie unglaublich schwer (fast unmöglich) es ist, wieder in den Arbeitsmarkt einzusteigen, wenn lange Lücken wegen Arbeitslosigkeit oder psychischen Erkrankungen oder noch längere Lücken wegen Prostitution etc. vorliegen? Und bei Flüchtlingen soll die unklare Vergangenheit auf einmal kein Problem mehr sein?

    Die Anerkennung von Hochschul- und Berufsabschlüssen ist dagegen nur dann wichtig, wenn sie an gesetzliche Bedingungen geknüpft ist, wie z.B. bei bestimmten Handwerkern (Meister-/Gesellenpflicht), Ärzten, Pharmazeuten, ... usw.
    Ein Informatik-Master muss z.B. nicht offiziell anerkannt werden. Solange es den Arbeitgeber von der Qualikation des Bewerbers überzeugt, hat es seinen Zweck erfüllt.

    Jetzt stell dir mal vor, ein deutscher Arbeitnehmer würde sich auf eine Stelle bewerben wo er für eine jahrelange Tätigkeit kein Arbeitszeugnis vorzuweisen hat. Killer. Und nun nehmen wir Meldungen wie diese. Schaut man sich mal die Bewerbungsunterlagen des Herrn Fanari an, fallen die fehlenden Arbeitszeugnisse sofort auf (er hat zwar viele Zertifikate aber die Arbeitszeugnisse fehlen für alle Beschäftigungen bis auf die letzte). Ein deutscher Arbeitnehmer hätte mit so einer Bewerbung keine Chance.
    Noch eine Kuriosität am Rande: Das BAMF verkauft es als Erfolgsgeschichte, dass ein Syrer 2001 als Flüchtling nach D kam und 2015 seine volle Anerkennung als Tischler erhielt - also 14 Jahre später.
    Grauenhaft.
    turmfalken-nikolai schrieb:
    Da wird die Regierung dann vermutlich schnell reagieren und eine Prämie oder irgendwelche Vergünstigungen für die Unternehmen einführen.
    "Stellst Du einen Flüchtling ein erhälst Du die und die Förderung ( Übernahme eines Teils der Lohnkosten oder Lohnnebenkosten und was es da sonst noch für Möglichkeiten gibt )."
    Das ist genauso wie ähnliche Unterstützungen für Langzeitarbeitslose in der Praxis eine extrem problematische Regelung.
    waytogermany schrieb:
    Oft ist es jedoch auch so, dass deutschen Bewerbern Nachteile unterstellt werden, die gar nicht existieren Ala - den Job will kein Deutscher machen - so früh steht doch keiner auf - wenn er verheiratet ist, zieht er doch nicht um (wird von vielen Bewerbern tatsächlich so im Vorstellungsgespräch behauptet und bleibt manchmal bei den Unternehmen haften). Ausländer haben es da manchmal leichter.
    Ein Problem ist oft auch die hohe Qualifizierung im falschen Bereich. Ein promovierter Wirtschaftswissenschaftler, der in internationalen Unternehmen tausende von Mitarbeitern geleitet hat, wird nicht zu einem Vorstellungsgespräch zum Straße fegen eingeladen. Wenn er es nicht machen wollte, hätte er sich doch nicht beworben!
    Gott ja, "überqualifiziert" :sauer:

    "Ich beispielsweise bin promovierter Mathematiker mit mehr als zehn Jahren Erfahrung in Forschung und Lehre. Derzeit verdiene ich nur etwas Geld durch schlecht bezahlte Lehraufträge oder indem ich Gymnasiasten und Studenten Nachhilfe gebe. Davon alleine kann ich aber nicht leben. Meine Bewerbungen in der freien Wirtschaft sind aussichtslos. Ich bin mit über 40 Jahren zu alt und mein Lebenslauf verrät, dass meine Bewerbungen nur eine Notlösung sind. Das sehen Unternehmen nicht gerne." (Quelle)

    Es ist klar, dass wenn jemand promovierter Mathematiker ist (selbst wenn er auf reine Mathematik spezialisiert ist), er ausreichend intelligent ist, sich schnell in Probleme der angewandten Mathematik oder IT-Umfeld einarbeiten kann.

    Der Punkt ist doch der: es gibt 6 Monate Probezeit. Und eine Stelle kann auch grundlos für zwei Jahre befristet werden. Wenn sich der Herr Doktor der Mathematik tatsächlich — wie die AG wohl befürchten — als verkopftes, unmotiviertes Schweinchen Schlau entpuppt, dann kann man ihn doch immer noch leicht loswerden. Warum kriegen Leute wie er keine Chance?

    Aber Fachkräftemangel. :megarofl:

    Fazit: Es gibt wahrhaftig kein dümmeres, ignoranteres, paranoideres und narzisstischeres Wesen auf diesem Planeten als den deutschen Personaler. Zum Glück bin ich selbstständig. ;-)
  • in: Eingliederung von Flüchtlingen in den Arbeitsmarkt

    geschrieben von kamakura

    Wie realistisch ist die Eingliederung von Flüchtlingen in den Arbeitsmarkt?

    Klar, man hört immer von den Problemen mit der niedrigen Qualifikation (gar nicht wenige sollen sogar Analphabeten sein). Aber das ist nur ein Problem... ein anderes wird gar nicht thematisiert.

    Konzentrieren wir uns allein nur auf Flüchtlinge unter 35 mit sehr guten Hochschulabschlüssen in Mangelfächern. Was ist die Chance, dass wenigstens die Hälfte davon irgendeinen Job bekommt?

    Nun, ich kenne deutsche Arbeitnehmer mit "problematischen" Lebensläufen (Lücken im Lebenslauf, z.B. durch einen Aufenthalt in der Psychiatrie), die auch wenn sonst alles stimmt (sehr gutes Hochschulzeugnis, unter 35) fast unüberwindbare Probleme haben, einen Job zu bekommen.

    Ich frage mich nun folgendes: Niemand kann sicher die Biografie von Flüchtlingen nachvollziehen.

    Ein syrisches Arbeitszeugnis zu verifizieren ist meiner Ansicht nach ein Ding der Unmöglichkeit.
    Arbeitszeugnisse sind ja generell extrem leicht zu fälschen, weil sie meist gar keine, oder zumindest keine ernsthaften, Sicherheitsmerkmale haben. In Deutschland besteht halt nur die Gefahr, dass wer beim Ex-Arbeitgeber anruft. Ups. :eek:

    Nun ist aber halb Syrien zerbombt und niemand kann da noch irgendetwas herausfinden.

    Oder umgekehrt: Könnte man es einem Flüchtling wirklich vorwerfen, wenn er eines seiner Arbeitszeugnisse bei der Flucht verloren oder vergessen hätte?

    Aber es kommt noch schlimmer. Durch das Chaos in Syrien kann man dort auch an offizielle staatliche Zeugnisse (wie Hochschulzeugnisse), die 100% originalgetreu "gefälscht" (also hergestellt mit allen Sicherheitsmerkmalen) sind, herankommen.

    Klar kann man bei einem Flüchtling kontrollieren, was er kann und was nicht. Man kann jemanden an seinen realen Leistungen messen. Wirkliche Hochstapler fliegen dann doch auf.

    Der deutsche Arbeitgeber ist aber was die Biografie von Bewerbern angeht extrem pingelig und paranoid. Wegen jeder Lücke wird ein Riesentheater gemacht. So sind ja z.B. 6+ Monate arbeitslos ein Riesenproblem. Es geht dem deutschen Arbeitgeber nicht darum, was jemand im hier und jetzt leisten kann, sondern es wird in der Vergangenheit gewühlt. Alles, was ein wenig unstimmig ist, lädt zu Spekulationen ein, und was da spekuliert wird, ist selten für den Bewerber positiv.

    Wenn deutsche Arbeitgeber bei Flüchtlingen mit der gleichen Paranoia wie beim deutschen Arbeitnehmer herangehen, dürften selbst top-qualifizierte, junge Flüchtlinge mit Abschlüssen in Mangelfächern de facto unvermittelbar sein. Sie sind höchstens als PR-Maßnahme interessant.
  • in: RFC 3526 Diffie-Hellman P und G generieren

    geschrieben von kamakura

    computerkurs2011 schrieb:
    Hallo liebes Lima-Forum,

    ich möchte bzw. muss für ein C# Programm einen Diffie-Hellman Schlüsselaustausch realisieren. Dafür ist es zwingend notwendig, dass ich elementare Bestandteile wie die Primzahl P und den Generator G jederzeit abrufen kann, da der C#-Client mit einem PHP Script kommuniziert und dies ebenfalls die öffentlichen Parameter P und G benötigt.
    Entschuldige die Frage, aber machst du das bloß zur Übung oder willst du deinen Code ernsthaft benutzen?
    Nun habe ich folgendes Problem. C# stellt kein Framework, zumindest nicht nach meiner Recherche, zur Verfügung um einen Diffie-Hellman Schlüsselaustausch "einfach" zu realisieren. Ich müsste die Primzahl P und den Generator G selber generieren. Allerdings weiß ich a.) nicht wie ich G generieren soll in einem Programm mit riesigen Primzahlen (min. 300 Dezimalstellen)
    Also du suchst eine Primitivwurzel zu P?

    Wie effizient soll das sein?

    Die simpelste Art, die du sicher leicht selber programmieren kannst, wäre:
    1. Wähle eine zufällige Zahl z zwischen 2 und P-1
    2. Berechne die Primfaktorzerlegung von P-1
    3. Angenommen die Primfaktorzerlegung von P-1 ist

    Formel: P-1 = p_1^{e_1} \cdots p_n^{e_n}

    dann berechnet für alle Formel: p_1, \ldots, p_n:

    Formel: z^{\frac{P-1}{p_i}} \bmod P

    Falls dies niemals 1 ist, dann ist z eine Primitivwurzel (und damit ein Generator).

    Allerdings dauert diese Vorgehensweise bei einer 3000+ Bit Primzahl zu lang. Das Problem ist die Faktorisierung von P-1.
    und b.) bin ich auf ein RFC gestoßen.

    Und dazu habe ich jetzt ein paar Fragen:
    1. Das RFC 3526 (http://www.rfc-base.org/txt/rfc-3526.txt) gibt DH Gruppen an. Wozu genau kann ich diese verwenden? - Sind das dort fertige, sichere Primzahlen mit dem dazu gehörigen Generator?
    Zumindest steht genau das in der Beschreibung.

    1.1. Wenn dem so ist. Beeinträchtigt dies nicht die Sicherheit, wenn ich immer dieselbe Primzahl und denselben Generator verwende?
    https://de.wikipedia.org/wiki/Diffie-Hellman-Schlüsselaustausch#Verwendung_fester_Gruppen_und_Primzahlen
    1.2. Wie kann ich diese Primzahl, wenn es eine ist, aus dem Hex nutzbar für Modulo Rechnungen in C# machen?
    Verstehe die Frage nicht. Du kannst doch einfach die Zahl vom Hexadezimal- ins Dezimalsystem konvertieren, oder nicht?

    Natürlich brauchst du auch noch eine BigInteger-Klasse.
    2. Wenn das RFC etwas ganz anderes angibt, was gibt es an?
    3. Wenn das RFC etwas ganz anderes angibt, wie könnte ich dann ein Generator G zu einer Zufälligen Primzahl P erzeugen bzw. finden und das in einer für den Nutzer ertragbaren Zeit?^
    Komplizierte Fragen... :confused:

    Du siehst, ich habe von dem Thema auch kaum Ahnung, aber wollte dir das wenige, was ich weiß, wenigstens mitteilen.
  • in: Strategien zum spielen an online Spielautomaten

    geschrieben von kamakura

    john-gunn schrieb:
    Hatter mir auch was von erzählt. AUch warum das anders ist. Können wir nicht reproduzieren, weil er nicht mehr da ist. Und mich interessiert´s nicht so sehr. Ich sagte bereits mehrfach, daß ich nicht um Geld spiele. Wenn DIr so daran gelegen ist, kannst Du ja gerne Deine These beweisen.
    Es ist anerkannte Lehrmeinung der Stochastik, dass keine Spielstrategie für das Roulette existiert, die langfristig einen Gewinn abwirft.

    Das zu beweisen ist jedoch auf elementare Art nicht möglich. Es ist eine Folgerung des Optional Stopping Theorem aus der maßtheoretischen Wahrscheinlichkeitstheorie.
    Ich habe ihm damals auch nicht geglaubt und deshalb an die 150/200 Simulationen mit seiner Tabelle durchgezogen. bei 2 oder 3 Spielen bin ich mit Minus raus. ca. 20/25% +/-0. Rest Gewinn.
    Im Grund benimmst du dich nicht anders als jemand, der behauptet, er könne den Kreis quadrieren (es gibt einen mathematischen Beweis, dass dies nicht möglich ist) aber der nicht zeigen will, wie das genau funktionieren soll.
  • in: Sterben Foren aus?

    geschrieben von kamakura

    mein-wunschname schrieb:
    Übrigens: bei lima city forum erscheint
    Das Suchvolumen ist zu gering, um Grafiken anzeigen zu können.

    Über die zugegeben unzuverlässige Methode nach
    [JAHR] site:https://www.lima-city.de/thread/
    zu googlen, stellt man fest: In den letzten fünf Jahren hat sich die Frequentierung des Forums mehr als gedrittelt.
  • in: Abschaffung des 500€ Schein

    geschrieben von kamakura

    invalidenturm schrieb:
    Nein mir ist bei so einem Gedanken auch nicht wohl. Allerdings gäbe es auch Vorteile: Terroristen hätten wirklich Probleme und Steuerflucht würde ebenfalls erschwert, auch das Bezahlen ginge schneller.
    Naja, die Todesopfer durch Terrorismus sind vergleichsweise gering (und Anti-Terror-Maßnahmen haben selbst schon Menschenleben gekostet).

    Dem Kampf gegen den Terror so eine hohe Priorität einzuräumen, kann man nur dadurch rechtfertigen, dass Terrorismus eine Gefahr für die Freiheit darstellt. Schließlich versuchen Terroristen durch Angst und Schrecken einer freien Gesellschaft ihr ideologisches System aufzuzwingen.

    Spätestens dann, wenn uns die staatlichen Anti-Terror-Maßnahmen unfreier machen als der Terror, ist aber etwas gehörig schief gelaufen. Und genau in diese Richtung bewegen wir uns.

    Solange sonst alles rechtsstaatlich und demokratisch zugeht, ist auch ziemlich invasive staatliche Überwachung nicht so schlimm. Es ist allerdings exzellente Vorarbeit dafür geschaffen worden, dass der Staat in den Totalitarismus kippt (oder zumindest russische Verhältnisse). Denn der Überwachungsapparat steht dann ja schon fertig bereit um kurzfristig zu einer Stasi-ähnlichen Institution zu mutieren und muss nicht erst mühsam aufgebaut werden.

    Das ist ähnlich wie z.B. mit der Öffentlichkeit von Gerichtsprozessen. Im Einzelfall ist ein Ausschluss der Öffentlichkeit selten problematisch. Den meisten Angeklagten wäre es sogar lieber, wenn sie nicht öffentlich vorgeführt werden.
    Aber die Öffentlichkeit von Gerichtsprozessen ist halt eine der wesentlichen Sicherheitsmaßnahmen zur Wahrung der Rechtsstaatlichkeit.
    Wird der Ausschluss der Öffentlichkeit gängig, ist die beste Basis dafür geschaffen worden, dass unliebsame Personen in Geheimprozessen unschädlich gemacht werden.

    Genau darin reiht sich auch die Abschaffung des Bargeldes ein. Ist das Bargeld abgeschafft, kann man sich der völligen Überwachung sämtlicher finanziellen Transaktionen nicht mehr entziehen.
    In Italien hat z.B. das Finanzamt ein Programm namens Redditometro ins Leben gerufen um Steuersünder aufzuspüren. Überwacht werden Auto, Miete, Urlaube, Abos für Fitnessstudios, Kleidung, Kauf teurer Geräte, etc.. Passt das durch Schnüffeln erhaltene "Gesamtbild" nicht mit dem Einkommen zusammen, kriegt man Besuch.
    Redditometro wird zwar (angeblich) für den richtigen Zweck eingesetzt, aber das Missbrauchspotential dieser Schnüffelinfrastruktur ist natürlich exorbitant. Ohne Bargeld kann man sich sowas prinzipiell nicht mehr entziehen.

    Ich werde aus dem Grund immer vermeiden im Alltag mit Karte zu zahlen. Aus Prinzip. Und dass keine 500-€-Scheine mehr gedruckt werden sollen, interpretiere ich durchaus als einen vorsichtigen ersten Schritt in Richtung Abschaffung des Bargelds.
  • in: Sterben Foren aus?

    geschrieben von kamakura

    eierkopf schrieb:
    kamakura schrieb:Naja, die Formulierung als Frage ist eigentlich unnötig. Foren befinden sich wie im Zustand der Dinosaurier als der Komet eingeschlagen war

    Dann waren die Dinos nach dem Kometeneinschlag aber noch ganz schön fit. Wenn ich nach einem fahrzeugspezifischen Problem suche finde ich die Lösung nicht beim Hersteller oder Facebook oder was noch halt so modern ist, nein ich finde sie in einem Forum (motortalk). Das einzige was ein bisschen nervt ist, dass man gar viele schlecht frequentierte Foren hat, wo zwar ein Problem angefragt wurde aber dann leider keine Lösung kommt. Wenn der Dinosaurier aber in dieser Beziehung nachlegt, wird er noch ewig leben.
    Hoffen wir es. Ich habe selber andere Beobachtungen gemacht und könnte jetzt auch auf zig Posts in Foren verlinken, wo User beklagen, dass kaum mehr gepostet wird. Stattdessen nur dieser Link, der die Problematik schön zusammenfasst.
  • in: C oder C++ lernen?

    geschrieben von kamakura

    hackyourlife schrieb:
    kamakura schrieb:
    Die Frage war hier eher zu verstehen als: Warum kannst du nicht wie ein normaler Mensch auf eine gängige yacc-Grammatik verlinken?
    1) Warum sollte ich das tun? Es gibt schließlich mehr als nur yacc.
    2) Weil Coco/R im Gegensatz zu yacc einen Parser im rekursiven Abstieg erzeugt.
    3) Um sehr schnell zu zeigen, dass du eben nicht verstanden hast, worum es hier geht.

    Und von wegen Naivität: wozu sollte ich bei dir überhaupt irgend etwas voraussetzen, wenn du doch ständig beweist, dass du entweder keine Ahnung von dem hast, wovon du sprichst (z.B. wenn du von Strohmännern redest, wenn man dir lediglich etwas erklärt, was du ganz offensichtlich nicht verstanden hast), oder du auf irgendwelchen Punkten herumreitest, die nicht (vollständig) ausgesprochen wurden, weil man annahm, dass sie »eh klar« sind (z.B. LL(k)-Konflikte haben nichts mit der Chomsky-Hierarchie zu tun)? Oder Kombinationen davon? Für mich siehst du mittlerweile einfach nur wie ein Troll aus. Als Troll hast du dein Ziel also schon erreicht, du darfst dich also wieder verziehen. Dennoch bekommst du von mir eine Antwort auf all deinen Müll, den du hier verbreitest, da leider nicht jeder hier hinreichend viel zu dem Thema weiß oder Lust hat, selbst zu recherchieren.
    Da regt sich aber jemand auf.
    Denn das ist das einzige Problem mit dem typedef hier. Würdest du beim Parsen einen GLR-Parser nutzen (kann ebenfalls nur CFGs parsen), dann hättest du nicht einmal ein Problem mit LL(k)-Konflikten.
    Tja, aber hier bleibt es bei der reinen Behauptung. Im Lichte des Kommentars (wenn man's verstanden hat) ist das wohl eben nicht möglich.
    Falsch. Wenn du Ahnung von der Sache hättest, wüsstest du auch warum. Tipp: 1) GLR verstehen, 2) darüber nachdenken, was du gerade behauptet hast, 3) korrekte Aussage tätigen.
    Geht es noch diffuser?
    Für die Sache mit dem typedef wirst du aber wohl selbst dann keinen eindeutigen Parse-Baum bekommen. Dass eine Grammatik nicht eindeutig ist, darf sein, hat aber nichts mit der Klasse der Grammatik zu tun.
    Und?
    Nichts »und«, denn um genau diesen Punkt geht es hier. Nicht mehr und nicht weniger. Du müsstest ihn nur endlich mal verstehen. Siehe Wikipedia.
    Offensichtlich liest du dir die Links, die du hier postest, nicht mal durch. Erster (!) Satz: "In computer science, an ambiguous grammar is a context-free grammar ..."
    Also hat es trivialerweise was mit der Klasse zu tun.
    Ein weiteres Beispiel für uneindeutige Konstrukte ist übrigens z.B. das dangling else, und dort wirst du wohl auch nicht auf die Idee kommen zu behaupten, dass das die Klasse der Grammatik irgendwie berührt.
    Weil wie jeder weiß (außer dir), das nur eine scheinbare Uneindeutigkeit ist. Und ob es möglich ist, einen LL(1)-Parser zu bauen, der damit klar kommt, würde ich schon bezweifeln.
    Ob scheinbar oder nicht, es ist in der Grammatik eine Uneindeutigkeit. Ob sie dir egal ist, weil du den Parser eben so »hinbiegst«, dass er den Baum baut, den du willst, oder nicht, macht hierbei keinen Unterschied.
    Ging es hier nicht um C? C ist doch nach deiner eigenen Aussage (weil du ja die "Theoretische Informatik"-Definition von "kontextfrei" verwendest) sowieso nicht kontextfrei. Was soll das also? "Uneindeutige Grammatik" ist per definitionem also schon auf C nicht anwendbar.
    Das dangling else kannst du übrigens problemlos mit LL(1) parsen, dabei bekommst du aber als Ergebnis, dass das else immer zum innersten if gehört.
    Dafür, dass du so extrem pedantisch bist, schreibst du reichlich viel Unsinn.

    Bei Code wie folgendem
    if (expr1) if(expr2) f();
    if (expr1) if(expr2) f(); else g();
    ist klar, dass der Parser nicht, ohne einen Token vorauszuschauen, wissen kann, ob das Semikolon nach dem
    f()
    zum ersten if (Zeile 1) oder zum zweiten (Zeile 2) gehört.
    Da du offenbar immer noch nicht verstanden hast, worum es hier geht, und ständig LL(k)-Konflikte mit der Klasse lt. Chomsky verwechselst und noch nicht einmal verstanden hast, warum ein LL(k)-Konflikt kein Problem für einen GLR/LALR/LR/…-Parser ist, folgende Checklist für dich:

    [ ] Du hast verstanden, was überhaupt eine CFG ist (falls nicht: *klick* → Type-2; was »non-deterministic« hier heißt musst du schon selbst rausfinden).
    [ ] Du hast verstanden, was das Problem bei einem LL(k)-Konflikt ist bzw wodurch dieser entsteht (falls nicht: *klick*).
    [ ] Du hast die Arbeitsweise von Parsern im rekursiven Abstieg verstanden (falls nicht: *klick*).
    [ ] Du hast verstanden, warum ein LL(k)-Konflikt ein Problem für Parser im rekursiven Abstieg ist (hier darfst du ggf. selbst nachdenken).
    [ ] Du hast die Arbeitsweise von Parsern nach GLR/LR/LALR/… verstanden (siehe GLR, LR, LALR).
    [ ] Du hast verstanden, warum sich GLR/LR/LALR/…-Parser nicht für LL(k)-Konflikte interessieren (falls nicht: basierend auf den vorherigen Punkt selbst nachdenken).
    [ ] Du hast verstanden, welche Art von Konflikten es bei LR/LALR/…-Parsern gibt (falls nicht: siehe vorherige Punkte).
    Vielen Dank. Wäre nicht nötig gewesen. Ich verstehe sowieso alles.
    Wenn du alle Punkte abhaken kannst, dann ist dir auch klar, dass:
    1) eine Grammatik Uneindeutigkeiten haben kann, da es für die Syntaxprüfung nicht nötig ist zu wissen, welche Regel wofür angewandt wurde. Und eine Grammatik sagt schließlich nicht mehr, als »Diese Zeichenkette liegt in der Sprache«, oder »Diese Zeichenkette liegt nicht in der Sprache« (bzw um genau zu sein: die Grammatik generiert alle Strings, die in der Sprache liegen). Nicht mehr. Und auch nicht weniger.
    2) Parser im rekursiven Abstieg wissen müssen, in welche Regel sie als nächstes springen müssen, und immer nur eine Regel verarbeiten können, während LR/LALR/… mehrere Regeln gleichzeitig verfolgt, bis er sich sicher ist, um welche Regel es sich handelt.
    3) yacc im Gegensatz zu Coco/R Parser nach LALR generiert, welche kein Problem mit LL(k)-Konflikten, sondern Probleme bei shift/reduce-Konflikten o.ä. haben.

    Glaubst du nicht? Sieh selbst: C89 oder C11. Natürlich wirst du jetzt fragen: »und was ist ein shift/reduce-Konflikt?«, aber hierfür verweise ich auf Google, denn ich habe keine Lust mehr, Leuten etwas zu erklären, wenn sie eh glauben, selbst alles besser zu wissen. Und wegen »/* identifiers must be flagged as TYPEDEF_NAME */«: auch hier geht es wieder darum, einen eindeutigen Parse-Baum zu erzeugen. Sparst du dir das, bekommst du einen reduce/reduce-Konflikt, und für
    a * b;
    wäre eine Deklaration oder ein Ausruck möglich.
    Off-Topic!
    Und noch ein Beispiel (bzw dein eigenes sogar):
    // typedef int a;
    // int a = 1, b = 2;
    void f(void) {
            a * b;
    }
    Ist dieser Codeschnipsel syntaktisch korrekt? Natürlich könnte es sich, abhängig davon, welche Zeile auskommentiert war, um eine Deklaration handeln, genauso wie es sich sonst um einen Ausdruck handeln kann. Aber ist deshalb eine von beiden Varianten syntaktisch falsch? Nein. Also: egal welche Regel der Parser hier nutzt, er kommt zum richtigen Ergebnis: kein Syntaxfehler. Beim Parser in einem Compiler interessiert dich syntaktische Korrektheit aber nur ein wenig, wichtiger ist dir, welche Bedeutung dieses Konstrukt hat. Und da es hier eine Uneindeutigkeit gibt, hast du damit ein Problem, da du entweder einen Ausdruck oder eine Deklaration vom Parser bekommst. Das löst du bei einem Parser laut rekursiven Abstieg (da es sich hier gleichzeitig um einen LL(1)-Konflikt handelt (sowohl Deklaration als auch Ausdruck kann mit Identifier anfangen)), indem du einen LL(1)-Konfliktlöser einbaust. Und genau das sagt der Kommentar in der ursprünglich verlinkten ATG.

    Um das kurz per vereinfachter Grammatik zu zeigen:
    statement = ( decl | expr ) ";";
    decl = ident { "*" } ident;
    expr = ident "*" ident;
    Welche Regel nimmst du nun in
    statement
    , wenn du
    a * b;
    parsen willst? Du wirst feststellen: es ist völlig egal.

    Aber ist das jetzt eine kontextsensitive Grammatik? Ja, da eine kontextfreie Grammatik auch eine kontextsensitive ist, in diesem Fall wäre das allerdings sogar eine reguläre Sprache (ich nehme jetzt an dieser Stelle trotzdem einfach mal an, dass du zumindest die Beziehung der Klassen zu einander kennst, und die Bedeutung des Unterschiedes zwischen »Grammatik« und »Sprache« in meiner Wortwahl) :-P
    Wie man zeigen könnte, dass es sich hier wirklich um eine reguläre Sprache handelt? Grammatik Umformulieren:
    statement = ident { "*" } ident ";";
    Genau das könntest du auch mit der Grammatik für C tun, und du würdest feststellen: kontextfrei, aber nicht hilfreich für einen Parser, der dein Programm parsen soll. Für die formale Eigenschaft »kontextfrei« interessiert aber niemanden, ob man damit Parser bauen könnte. Und somit ist das, was du ursprünglich behauptet hast (»allein durch typedef wird die Sprache C kontextsensitiv«) schlicht falsch. Die Sprache C ist auch ohne typedef kontextsensitiv (wegen typisierten Variablen), und die Sprache der Syntax von C ist kontextfrei, unabhängig von typedef.
    Ist ja interessant.

    Ich sag dir was (zum wiederholten male): Wenn du mir beweisen willst, dass C auch ohne typedef nach der Definition von "kontextfrei" wie in der theoretischen Informatik nicht kontextfrei ist, musst du dir keine Mühe machen. Das weiß ich auch so.

    Aber hier ging es nie um dieses Verständnis von "kontextfrei". Denn fast überhaupt keine Programmiersprache (komm jetzt nicht mit Brainfuck) ist in diesem Sinne kontextfrei, selbst wenn sie keine typisierten Variablen haben.

    Hier ging es um das Verständnis von "kontextfrei", das Compilerbauer haben. Wenn du nur ein Minimum an common-sense hättest, sollte dir schon durch das Threadthema klar geworden sein, dass hier abgehobene und uferlose Theoretische-Informatik-Debatten (und dazu sinnlos, da eigentlich einfach zu beantworten: C und C++ sind – wie fast jede Programmiersprache – nicht im Sinne der theoretischen Informatik kontextfrei. Ende) 100% fehl am Platze sind.

    "Kontextfrei" bedeutet für den Compilerbauer (und für jeden, der sich für die wirklichen Unterschiede zwischen Programmiersprachen interessiert), dass sich Syntax- und Semantik-Überprüfung sauber, einfach und sinnvoll voneinander trennen lassen. Da macht einem bei C das typedef einen Strich durch die Rechnung, abgesehen davon wäre C (in diesem Sinne) kontextfrei. C++ dagegen hat nicht nur eine solche problematische Stelle, sondern ist generell Lichtjahre von Kontextfreiheit entfernt.

    Da du hier auf so viele Wikipedia-Artikel verlinkt hast, mache ich das auch mal (und der Artikel ist sogar on-topic!): The lexer hack
    Genau um dieses Verständnis von "kontextfrei" wie in diesem Artikel geht es. Nix theoretische Informatik. Klar?
    Namen im Scanner auflösen oder Konfliktresolver wie bei der verlinkten ATG sind übrigens nicht die einzigen Lösungsmöglichkeiten: du könntest auch eine Regel »typedefdecl-or-mul« o.ä. machen, dann kannst du das im Semantikanschluss prüfen. Ergebnis: gar kein Konflikt mehr in der Grammatik.
    Ja, das ist eine hinreichend groteske "Lösungsmöglichkeit". Hinter "typedefdecl-or-mul" kann sich nämlich fast alles verstecken. Komplexe Ausdrücke, die die halbe Grammatik von C "in Anspruch nehmen", wie
    a * ((int) b(x + y, z))
    . Wenn du so ein Teil dem Semantik-Check übergibst, dann kannst du es eigentlich gleich bleiben lassen.
    Das passiert schon die ganze Zeit. Nur bist du offensichtlich nicht in der Lage, den Ausführungen bis zu Ende zu folgen und sie auch zu verstehen. Du solltest es auch endlich unterlassen, ständig von Dingen zu reden, von denen du offensichtlich keine Ahnung hast,
    Dunning-Kruger? :biggrin:
  • in: C oder C++ lernen?

    geschrieben von kamakura

    kamakura schrieb:
    @hackyourlife: was hat die verlinkte Datei für eine Grammatik? Definitiv nicht yacc. Und dass nur das typedef ein Problem macht, steht sogar in den Comments (ganz oben) der verlinkten Datei.
    Wie zu erwarten war, hat diese Datei die Grammatik »Attributierte EBNF«. Im Speziellen handelt es sich um eine Grammatik-Beschreibung für den Generator Coco/R. Dass du den nicht kennst wundert mich übrigens nicht.
    Um mal deine Rhetorik zu imiteren: Den Begriff "rhetorische Frage" hast du schon mal gehört? :lol:

    Auf eine solche Naivität trifft man selten.. :wall:

    Coco/R, ja. Was denn sonst??? Steht u.a. oben in der URL.

    Die Frage war hier eher zu verstehen als: Warum kannst du nicht wie ein normaler Mensch auf eine gängige yacc-Grammatik verlinken?
    hackyourlife schrieb:
    Zum Problem mit dem typedef: hast du denn auch nur annähernd verstanden, was dir der Kommentar in der Datei sagen will?
    Ja. Natürlich.
    Sieht nicht so aus, denn sonst wüsstest du, um was es sich bei einem »LL(1)-Konflikt« handelt, und dass das nichts mit kontextsensitiv/kontextfrei zu tun hat. Du leitest mit den LL(1)-Resolvern den Parser lediglich in eine konkrete Regel, um die Uneindeutigkeit (= mehrere Regeln beginnen mit dem selben Token) zu eliminieren.
    Hääh? Was willst du hier für Strohmänner abbrennen?
    /* ANSI C 89 grammar as specified in http://flash-gordon.me.uk/ansi.c.txt
    
    	Processing the C grammar requires LL(1) conflict resolvers, some of which
    	need to check whether an identifier is a type name (see IsTypeName() below).
    	So the grammar assumes that there is a symbol table, from where you can
    	look up an identifier and find out whether it is a type name.
    	
    	The language in the semantic actions here is C#, but it can easily be
    	translated to any other language.
    */
    Da steht es doch klipp und klar: "So the grammar assumes that there is a symbol table, from where you can look up an identifier and find out whether it is a type name."
    Und das darfst du bei einer kontextfreien Grammatik streng genommen nicht machen. Das sollte doch offensichtlich sein.
    Denn das ist das einzige Problem mit dem typedef hier. Würdest du beim Parsen einen GLR-Parser nutzen (kann ebenfalls nur CFGs parsen), dann hättest du nicht einmal ein Problem mit LL(k)-Konflikten.
    Tja, aber hier bleibt es bei der reinen Behauptung. Im Lichte des Kommentars (wenn man's verstanden hat) ist das wohl eben nicht möglich.
    Für die Sache mit dem typedef wirst du aber wohl selbst dann keinen eindeutigen Parse-Baum bekommen. Dass eine Grammatik nicht eindeutig ist, darf sein, hat aber nichts mit der Klasse der Grammatik zu tun.
    Und?
    Ein weiteres Beispiel für uneindeutige Konstrukte ist übrigens z.B. das dangling else, und dort wirst du wohl auch nicht auf die Idee kommen zu behaupten, dass das die Klasse der Grammatik irgendwie berührt.
    Weil wie jeder weiß (außer dir), das nur eine scheinbare Uneindeutigkeit ist. Und ob es möglich ist, einen LL(1)-Parser zu bauen, der damit klar kommt, würde ich schon bezweifeln.

    Ach, ich komme mit deiner "Weißt du nicht ...?"-Rhetorik (in den meisten Fällen wahrscheinlich dem Umstand, dass du es selber nicht weißt, geschuldet) nicht klar. Sag was Sache ist, oder lass es bleiben.
  • in: Kritik am Buddhismus

    geschrieben von kamakura

    sebulon schrieb:
    Moment, waren die auf Dämonologie basierenden Ableger nicht eigenständige Religionen? Teilweise mit wurzeln VOR der Entstehung des Buddhismus, die sich dann mit eben jenem vermischt hatten?
    Stimmt, die Bön-Religion z.B., die war schon vorher da. Inwieweit Bön den tibetischen Buddhismus beeinflusst hat, ist aber unklar. Und unabhängig davon, auch wenn sie von Bön übernommen wurden, gehören sie doch trotzdem offiziell zum tibetischen Buddhismus, oder nicht?

    Und manche Götter wie z.B. Tara die Befreierin wurden definitiv vom Buddhismus in Tibet eingeführt.

    Es gibt natürlich "reinere" Formen des Buddhismus wie Theravada, wo es keine Götter gibt. Und ich denke, westliche Buddhisten haben es auch nicht so mit Göttern.

    Egal, auch Wiedergeburt und Karma sind genauso wie Gott/Götter Glaubenssache. Warum der Glaube an Gott/Götter jetzt so viel problematischer sein soll als der Glaube an Wiedergeburt und Karma, müsstest du auch mal erklären.
  • in: Sterben Foren aus?

    geschrieben von kamakura

    mein-wunschname schrieb:
    Wobei es mir grundsätzlich schon möglich erscheint, dass auch eines Tages diese Internet-Infrastruktur nur noch ein Nischendasein fristet.
    Grauenhafte Vorstellung!!!

    Gewisse 100%-Knallchargen wie Jaron Lanier schlagen jetzt schon vor, die komplette Internet-Infrastruktur zu ersetzen, weil das angeblich eine Sackgasse ist (und werden für diesen Unsinn noch mit den Friedenspreis des Deutschen Buchhandels belohnt).
  • in: C oder C++ lernen?

    geschrieben von kamakura

    annihilus schrieb:
    kamakura schrieb:
    Hängende Referenzen: ...
    Unsichere smart pointer: ...

    Das ist aus dem gleichen Gruselkabinett wie dein voriges Vector-Beispiel: Den Karren mit 300 Klamotten sehenden Auges vor die Wand setzen und dann den Hersteller des Sicherheitsgurtes verklagen.
    Wenn ich von den sicher(er)en Mechanismen in C++ profitieren will, darf ich sie logischerweise nicht blöd auf C-Style-Zeiger casten, weil ich dann wenig gewonnen hab.
    Nur dass ich nirgends auf Zeiger gecastet habe. Du liest dir die Code-Beispiele anscheinend nicht mal durch.
    Nebenbei trotzdem besser als nichts: In deiner Referenz steht zwar Blödsinn (weil du explizit Blödsinn reingeschrieben hast), aber du kriegst keine Schutzverletzung, wie du sie mit einem Zeiger unweigerlich provoziert haben würdest.
    Es ist trivial, die Code-Beispiele umzuschreiben, dass es Schutzverletzungen gibt.
    #include <iostream>
    
    using namespace std;
    
    int main() {
        int* x = NULL;
        int& y = static_cast<int&>(*x);
    
        cout << "y = " << y << endl;
    
        return 0;
    }
    #include <iostream>
    #include <memory>
    
    using namespace std;
    
    int main () {
      auto x = make_unique<int>(-12345);
    
      cout << "x = " << *x << endl;
    
      auto y = move(x);
    
      cout << "x = " << *x << endl;
    
      return 0;
    }
    Aber was mich wirklich interessieren würde: Was um Gottes willen ist positiv daran, dass es keine Schutzverletzung gibt!?!?

    Z.B. ist der ganze Sinn von Smart Pointern ja diese zu provozieren, anstatt zu hängenden Zeigern zu werden (was auch nicht immer funktioniert, wie das Beispiel aus meinem letzten Post zeigte).
    kamakura schrieb:
    C war halt als minimalistische, Hardware-nahe, Compiler-freundliche, schnelle Sprache gedacht. Nicht als einfach verständliche.

    Ach was? War der Ausgangspunkt der ganzen Diskussion nicht genau der, dass du das Gegenteil behauptet hast? Von wegen zwei Bücher und so?
    Ne, es geht um C vs C++. Ich habe vor sechs Posts geschrieben:
    Ich habe nie gesagt, dass C eine einfach zu erlernende Sprache ist (nur im Vergleich zu C++).
    Und das Durcharbeiten der zwei Bücher K&R und van der Linden ist nicht ohne.
    Da habe ich mir geschenkt, tiefer drauf einzugehen, weils die gleiche Güteklasse ist: So etwas kann ich benutzen wenn ich gezwungen bin (meistens durch externe Gründe wie eine Bibliothek die ich benutzen muss), würde ich in C++ aber niemals einsetzen wenn ich eine Wahl habe.
    Wie verhinderst du denn Doppelinklusion dann? Wie würdest du denn Matrizen ohne mehrdimensionale Arrays realisieren?
    Das ist so formuliert ja auch falsch. Die C-Kompatibilität war beim ursprünglichen Entwurf ein zentrales Feature des Designs von C++. Die daraus resultierenden Probleme werden von Stroustrup auch offen eingeräumt, aber damals war es für den Erfolg eben essentiell wichtig. Und dass man mich an der Stelle nicht falsch versteht: Es kann auch heute noch nützlich sein. Allerdings nicht für Code den man selbst schreibt, sondern zum Einbinden von C-Fremdbibliotheken.
    Wie würdest du denn z.B. einen balancierten Baum ohne das C-Konstrukt Pointer in C++ implementieren?
    kamakura schrieb:
    Das Beispiel war an den Haaren herbeigezogen. Ansonsten wäre es nicht so kurz und leicht verständlich geworden. Objekt-Korruption und Heap-Korruption ist aber ein reales Problem. Realistische Beispiele findest du auf Stackoverflow:

    http://stackoverflow.com/search?q=heap+corruption+[c%2B%2B] (sorry, der Lima-URL-Tag kommt mit Brackets im Link nicht klar)

    Ich bestreite nicht, dass das ein reales Problem ist (habe selbst erst vor zwei Wochen einen ganzen Tag lang nach so einem Fehler suchen dürfen). Aber: Solche Fehler passieren nicht durch "Magie", sondern das Problem sitzt vor der Tastatur. In meinem Fall hat der Kollege es für eine gute Idee gehalten, einen static_cast zu benutzen. Was in der damaligen Klassenhierarchie funktioniert hat, in der aktuellen aber dazu führte, dass Daten an einen Member geschrieben wurden, den das Objekt gar nicht hatte. Explizite (und unsinnige) casts sind ja auch in deinen Beispielen oft das Problem, da gibt es also offenbar ein Muster...
    Aber wenn man in C Fehler macht, dann ist die Sprache schuld? :confused:

    Explizite casts muss man in C++ machen: Denk mal an die Implementierung von NULL in C als
    ((void *)0)
    .

    C++ erlaubt keine implizite casts von
    ((void *)0)
    auf jeden anderen Pointertyp, was ironischerweise zu viel mehr Unsicherheit führt. Bei so Ausdrücken wie
    while(cin >> x)
    muss stattdessen der operator void* oder operator bool überladen werden. In den alten Versionen lief so was noch:
    #include <iostream>
    
    using namespace std;
    
    int main(){
      cout << cin + 3*cin << endl;
      return 0;
    }
    clang++38 --std=c++03 doof.cpp -o doof
    ./doof
    4
    Irgendwann hieß es, man sollte dieses safe bool verwenden um derartiges zu vermeiden. Aber safe bool ist schon wieder obsolet, seit C++11 kann man explizite casts gesondert definieren und über die soll man es jetzt auch machen.

    Das soll einfacher als C sein?
    Es ist vollkommen klar, dass man so etwas nicht debuggen kann. Ein expliziter Cast sagt dem Compiler ja gerade explizit, dass man sich einen Scheiß um seine Prüfungen und Warnungen kümmert. Entweder man ist sich sicher, dann braucht man keinen Debugger, oder man ist sich eben nicht sicher, dann macht man verdammt noch mal erst mal eine Typprüfung, auch wenns ein wenig "teurer" ist.
    Ja, da bist du nicht auf dem neuesten Stand. Seit C++11 soll man ja gerade explizite Casts verwenden, es gibt nun eine Möglichkeit die speziell zu definieren.
    Und es gibt - aus welchen Gründen auch immer - natürlich immer Projekte, die daraus ausbrechen. Ich persönlich weiß zwar nicht warum man das tun sollte und Anwendungssoftware in C schreiben sollte. Aber bitte, es gibt ja auch Leute die lassen sich gern auspeitschen.
    Das ist eine bisschen dürftige Erklärung.
  • in: Kritik am Buddhismus

    geschrieben von kamakura

    sebulon schrieb:
    aber anhand der bewertung des vollpfostens, der 9 mal negativ bewertet hat und 8 mal zurückgezogen mich mit bewertungsnachrichten zugespammt hat, zeigt mir, wie sensibel das Thema hier ist und wie schwer, den Islam sogar indirekt zu kritisieren...
    Nur hat sich dieser User bei mir mit ganzen 20 negativen und wieder zurückgezogenen Bewertungen auch ausgetobt.
    kigollogik schrieb:
    Zur Sache Dalai Lama und Homophob. Wo genau hat er denn diese Äußerungen getätigt? Sie sind mir nicht bekannt, aber ich habe mich damit auch nicht befasst.
    Hier gibt es eine schöne Zusammenfassung.
    sebulon schrieb:
    Vielleicht solltest du dich mal anfangen zu informieren. Was in Asien mit Buddhistischen Ländern abgegangen ist in der Vergangenheit ist nie im Namen Buddhas passiert...
    es waren weltliche Interessen und die Tempel haben sich auch bei nix beteiligt. Deswegen gibt es da nix negatives. Im Gegenteil, es waren Buddhisten, die aufgrund ihres Glaubens verfolgt wurden... übrigens erklärt sich der Buddhismus als eine Religion, die dem Atheismus sehr nahe ist und die sehe ich als höchste Stufe an. Wer frei von Glauben ist, unterwirft sich so beklopptem Hordentrieb nicht.
    Was ist Atheismus? Fehlender Glaube an Gott oder Götter? Es gibt im Buddhismus keine Schöpfergötter, aber je nach Richtung gibt es Götter durchaus.

    Insbesondere der tibetische Buddhismus zeichnet sich durch einen illustren Pantheon inkl. kurioser Dämonologie aus, die hier im Westen in unverdünnter Form reichlich befremdlich wirken dürften.
    Des Weiteren, wenn ich mich richtig entsinne, war das einzige, wo der Buddhismus sich in die Politik eingemischt hatte in indien gewesen, als Widerstand gegen zu der Zeit dort vorherrschende Kastensystem, also war es dazu da, den Menschen zu helfen.
    Bei Tibet handelte es sich allerdings bis zur Annektion an die VR China um eine real existierende Theokratie mit institutionalisierter Leibeigenschaft. Leider hat die chinesische Propaganda diesbzgl. dazu geführt, dass man kaum mehr seriös darüber diskutieren kann.
  • in: Kritik am Buddhismus

    geschrieben von kamakura

    Kommt es mir nur so vor, oder wird der Buddhismus im Westen praktisch nie kritisiert?

    Ersteinmal vorneweg: wie in jeder anderen Religion gibt es natürlich auch beim Buddhismus unzählige Variationen und Schulen (also bitte das, was folgt, nicht als unzulässige Verallgemeinerung ansehen).
    Das Aushängeschild "des Buddhismus" im Westen, Tenzin Gyatso, 14. Dalai Lama und Friedensnobelpreisträger, gehört nun allerdings ausgerechnet einer der problematischeren an (Vajrayana). Z.B. geht er selber, auch wenn er sich sehr diplomatisch ausdrücken kann, in Richtung ... homophob.
    Wenn er groß verkündet, dass er kein Problem mit der gleichgeschlechtlichen Ehe hat, geht für die meisten Menschen unter, dass Homosexualität (wie btw jede sexuelle Aktivität außer PIV-Sex) für ihn klar "sexuelles Fehlverhalten" darstellt. In dem Punkt hat er nie seine Meinung geändert. Etwas, das man anderen so prominenten religiösen Führern immer vorwerfen würde. Aber wenn der Dalai Lama es sagt, ist es anscheinend ok. :confused:

    Wie so ziemlich jede ernst gemeinte Religion lässt sich auch der Buddhismus nicht mit einem materialistischen Weltbild vereinbaren.
    Gewisse moderne westliche Theologen wie z.B. der katholische Ex-Priester Eugen Drewermann haben (aus Respekt oder "Angst" vor der Naturwissenschaft) versucht, das Christentum von den transzendenten Elementen weitgehend zu befreien. Das Ergebnis ist imho einigermaßen bizarr und man fragt sich, warum sie nicht einfach Ungläubige geworden sind.

    Drewermann macht sich z.B. über den Glauben an die Seele im Katholizismus lustig:

    "Ich glaube, die meisten Katholiken stehen unter dieser dogmatischen Doktrin, dass sie an eine unsterbliche Seele glauben sollen, in dem Sinne, dass es eine Substanz im Menschen gibt, die in sich selber unzerstörbar ist und auch vom Tode nicht affiziert wird. Da ist sozusagen etwas im Menschen wie ein Edelmetall oder ein Edelgas, das durch keinerlei Veränderungen tangiert wird und das sich im Grunde im Tode freisetzt. Wenn der Körper zerfällt, ist dies um so einfacher. Es muss die Seele, so betrachtet, eine Art Gas sein, damit sie sich im Tod zum Himmel erhebt - sehr leichtförmig." (Eugen Drewermann: Wozu Religion?)

    Nun gibt es zwar im Buddhismus nichts, was einer Seele im klassischen Sinne entsprechen würde. Aber irgendwie muss die Wiedergeburt ja ablaufen; geschehen soll dies durch einen den Tod überdauernden Bewusstseinsstrom.

    Drewermann lobt (wenig überraschend) den Buddhismus bei jeder Gelegenheit. Aber kritisiert er die Vorstellung der Wiedergeburt? Nein. Da misst Drewermann mit zweierlei Maß: Die Seele im Katholizismus, die ist absurd. Aber der den Tod überdauernde Bewusstseinsstrom im Buddhismus ist ok.
    Dabei hat der Dalai Lama diesbezüglich Sachen von sich gegeben, die sich sicherlich nicht weniger absonderlich anhören als die katholische Dogmatik. Z.B. dass man in einen Computer (!) wiedergeboren werden kann.

    Stimmt ihr mir zu? Woran könnte es liegen, dass sich kaum jemand im Westen traut, was gegen den Buddhismus zu sagen?
  • in: Filme, die in der nahen Vergangenheit spielen

    geschrieben von kamakura

    Muss ich mir wirklich mal anschauen.

    Noch einer: Verblendung (2009), spielt 2002/2003
  • in: Sterben Foren aus?

    geschrieben von kamakura

    wodka-gorbatschow schrieb:

    Schau dir doch mal Stackoverflow an.
    Wie könnte man ohne solche Foren leben? XD
    Ja, sehr witzig.

    Im übrigen vermisse ich bei manchen Stackexchange Unternetzwerken wirklich, dass sie nicht mehr in Richtig Forum gehen. philosophy.stackexchange.com: Philosophie kann man nicht im Stackoverflow-Frage-Antwort-Stil betreiben.
  • in: C oder C++ lernen?

    geschrieben von kamakura

    @hackyourlife: was hat die verlinkte Datei für eine Grammatik? Definitiv nicht yacc. Und dass nur das typedef ein Problem macht, steht sogar in den Comments (ganz oben) der verlinkten Datei.
    Dass Variablen vor Benutzung deklariert werden oder den richtigen Typ haben müssen, wird üblicherweise nicht zu Syntax gerechnet. Sonst wäre praktisch keine Programmiersprache kontextfrei.

    annihilus schrieb:
    Naja, es ging eigentlich doch ums Programmieren, denn man lernt eine Programmiersprache ja nicht um sie zu kennen, sondern um sie anzuwenden.
    Sorry, ich finde den Satz

    "Man lernt das Programmieren nicht durchs Lesen von zwei Büchern sondern durch lange Praxis."

    ähnlich aussagelos wie

    "Man lernt die Mathematik nicht durchs Lesen von zwei Büchern sondern durch lange Praxis."

    Was ist denn "das Programmieren"?
    Das geht dehalb, weil es entweder gar keinen booleschen Datentyp gibt oder aber aus Gründen der Abwärtskompatibilität implizit nach int gecastet wird.
    Ja, aber in C++ besteht dieses Problem ja weiterhin. C++ hat viele implizite Typenumwandlungen.
    Ja, sind sie, denn immerhin können sie zumindest bei der Übergabe nicht Null oder ungültig sein.
    Hängende Referenzen:
    #include <iostream>
    
    using namespace std;
    
    int main() {
        int *x = new int(-12345);
        delete x;
    
        int *z = new int(-6789);
    
        int& y = (int&) *x;
        cout << "y = " << y << endl;
    
        return 0;
    }
    Ausgabe:
    y = -6789
    (!!!)
    Das ist schlicht falsch, man kann Pointer sehr einfach durch RAII absichern, oder, wie gesagt, Smart Pointer verwenden.
    Unsichere smart pointer:
    #include <iostream>
    #include <memory>
    
    using namespace std;
    
    unique_ptr<int> f(int k){
      auto x = make_unique<int>(k);
      return x;
    }
    
    int &a = *f(-12345); // genial ;-)
    
    int main () {
      f(-6789);
      cout << "a = " <<  a << endl;
      return 0;
    }
    Ausgabe:
    a = -6789
    (!!!)
    Die Kapselung.
    Geht mit opaque pointers (so wird es z.B. in GLib gemacht).

    Genau. Und als erfahrener Programmierer kennt man diese Fallstricke und umgeht sie. Das ändert nichts daran, dass das eigentlich schlechtes Design ist.
    C war halt als minimalistische, Hardware-nahe, Compiler-freundliche, schnelle Sprache gedacht. Nicht als einfach verständliche.

    C++ erbt die C-Kuriosa und ist zudem noch abartig umfangreich, komplex und schwer zu parsen (schlecht für Debugger und IDEs).
    genau deshalb ist C++ für Anfänger schlecht geeignet.
    Da sind wir ja einer Meinung. ;-)
    An einer einzigen Stelle einen nullterminierten String benutzen zu müssen oder permanent damit zu hantieren sind dann doch zwei verschiedene paar Schuhe.
    Was ist mit den anderen Beispielen? Eigen (die Bibliothek) verwendet intern z.B. klassische C-Arrays.
    Die C-Kompatibilität ist ein zentrales Feature des Designs von C++. Wenn man sie eigentlich gar nicht benutzen darf, hätte man ja auch darauf verzichten können.
    Klar. Ist ja einer der Gründe, warum C++ nix für Anfänger ist. Aber C ist es halt erst recht nicht.
    Nur wenn man in C++ programmieren könnte ohne mit den C-Altlasten konfrontiert zu werden.
    Wow. Das Beispiel scheint mir extrem akademisch.
    Sämtliche Beispiele, die ich hier bringe, sind akademisch. Es sind immer proof-of-concept-Beispiele. Realistische Beispiele wären viel länger und schwer verständlich.
    Ja, darüber müssen wir nicht streiten. Makros in C++ sind so mächtig dass es schon lächerlich ist. Aber man muss sie ja nicht benutzen.
    Dann hoffen wir mal, dass sie auch andere Programmierer nicht benutzen, ansonsten versteht man deren Code nicht.

    Und die mächtige Metaprogrammierung ist für Tools wie IDEs, static analysis und Debugger auch ein Problem.
    Nein. Wer sowas ernsthaft programmiert, dem kann kein Debugger mehr helfen. Wenn ich in einer OO-Sprache programmieren will sollte ich schon das Konzept einer Klasse verstanden haben. Ich stürz mich als Nichtschwimmer auch nicht in den Atlantik und jammere dann dass Baywatch gerade pennt.
    Das Beispiel war an den Haaren herbeigezogen. Ansonsten wäre es nicht so kurz und leicht verständlich geworden. Objekt-Korruption und Heap-Korruption ist aber ein reales Problem. Realistische Beispiele findest du auf Stackoverflow:

    http://stackoverflow.com/search?q=heap+corruption+[c%2B%2B] (sorry, der Lima-URL-Tag kommt mit Brackets im Link nicht klar)

    Solche Bugs können jedem passieren, die sollte man also hoffentlich auch irgendwie debuggen können.
    Aber für GIMP, CPython, Stata, SAS, Maple, Apache Webserver oder Git arbeiten n00bs, die mit C zurechtkommen weil es simpel ist und nicht etwa weil es erfahrene Entwickler sind... irgendwie argumentierst du da ziemlich willkürlich.
    Nein, so war das nicht gemeint. Die Frage ist, wie das mit folgender deiner Aussagen zusammenpasst:
    Kurz:
    C, wenn du Betriebssysteme, Treiber, Maschinensteuerungen und andere Hardware-nahe Dinge programmieren willst.
    C++ für alles andere.
  • in: Sterben Foren aus?

    geschrieben von kamakura

    muellerlukas schrieb:
    E-Mail war nicht auf Anhänge (ebenso wenig wie für HTML) ausgelegt. Rein Plaintext. Deswegen gibts solche Freuden wie Mime und Base64.

    Zeilen: Mein Fehler, ich dachte du redest von 998 maximalen Zeilen.
    Das es eine Binärdatei sehr wahrscheinlich verhunzt, wenn man die Plain verschickt ist klar.
    Gut, dann sind wir uns darüber wenigstens einig. Wie ich sagte: Usenet unterstützt nativ Binärdateien nicht.
    Dafür werden die für gewöhnlich base64-codiert. Da jucken Zeilenumbrüche auch nicht.
    yEnc hab ich übrigens 2-3 mal überhaupt in der freien Wildbahn getroffen. Wüsste gar nicht, ob den Zeilenumbrüche stören.
    Nein, den stören Zeilenumbrüche nicht. Genau das ist ja die Raison d'Être von yEnc. :biggrin:

    Und in den Binary Groups ist yEnc die mit Abstand am häufigsten verwendete Methode. Siehe dieses Beispiel: Alles yEnc.
    Mit DB-Groups meine ich Usenet-Gruppen zu DB. Natürlich beliebig austauschbar gegen Amateurfunker-, Wardriving- oder Musiker-Gruppen ...

    Der MathJax vergleich hinkt etwas: Eine Tex Live-Installation ist nicht nur für die Anzeige zuständig und unterstützt nicht nur mathematische Formeln.
    Vergleich? Man muss sich Gigabytes an Software runterladen, damit deine Plugins funktionieren. Das ist Fakt. Und der Vergleich war immer Foren vs. Usenet, falls du das vergessen haben solltest.
    Wenn du nur davon sprichst: Da eignet sich MathML eher. Das können Thunderbird und Firefox nämlich von Haus aus.

    Übrigens: Das HTML, was an den Browser bekommst ist auch nur Plaintext. Was der Browser draus macht, ist seine Sache. Fett oder kursiv bekommt dein Browser auch nur durch <b>Fett</b> mit.
    Wenn ich will stellt Thunderbird Sachen auch *fett* oder _unterstrichen_ dar.
    Mir ist ein ordentlich formatierter Plaintext um einiges lieber als HTML (am besten noch blinkend in Comic Sans und als Laufschrift).
    Aus dem Grund verschicke ich auch nur Plaintext. (Gut, mit Anhängen, was mir kein Provider ohne Weiteres verbieten kann bei Mail & Usenet)

    Die Usenet-Nutzung hat zwar wegen Foren abgenommen, aber tot isses lang noch nicht.
    Der Verweis auf Google Groups von bladehunter war tatsächlich etwas doof. Für Google Groups waren Usenet-Posts die Grundlage. Die haben aber seit Jahren schon nichts mehr miteinander zu tun.
    Das war bei Mailinglisten ebenso. Die rennen zumindest hier immer noch großflächig. Weil man eben sein gewohntes Medium Mail hat, das man überall auch ohne große Bandbreite abrufen kann. Auch das kann durchaus problematisch sein bei Foren. Der ganze Mist wie JS, Bilder, CSS-Spielzeug, Iframes, ...
    Man siehts ja hier im Chat. Der Großteil nutzt den Webchat. Die Daueruser steigen früher oder später auch einen lokalen Client um.
    Für mich spiegelt es sich langsam so ab:
    Usenet nutzen die alten Hasen, die gerne Anonym in einer Diskussion dabei sind, eine einheitliche Oberfläche haben und jederzeit den Server wechseln können, wenn ein Anbieter tot ist.
    E-Mail/Mailinglisten nutzen ist ähnlich oben, das Medium ist halt nicht ganz so anonym und grade in geschlossenen Mailinglisten blöd, wenn man nur trollt und fliegt.
    Foren für die, denen es nichts ausmacht, wenn jedes Forum anders ist, die selbst nicht wissen wie man obige Medien nutzt. Oder eben die die gezwungen sind das zu nutzen. :P
    Und natürlich Facebook: Für die, die eine längere Diskussion eh nicht möglich ist, weil die Sätze nur aus "Subjekt, Prädikat, Beleidigung, 'Alda'" bestehen.

    Und jetzt gucke ich mal wieder ob in eine der Eisenbahn-Usenet-Gruppen neue PDFs zu finden sind. ;)
    :lol: Viel Spaß!
  • in: Sterben Foren aus?

    geschrieben von kamakura

    muellerlukas schrieb:
    kamakura schrieb:
    muellerlukas schrieb:
    nativ unterstützt das Usenet keine Binärdateien, daher müssen die Binärdateien mit yEnc in Text und wieder zurück kodiert werden

    Email ist auch nie dazu gedacht gewesen Anhänge zu transportieren. Trotzdem tuts jeder. Ist Email jetzt scheiße?
    Nein, ist es nicht. Habe ich auch nie behauptet. Es ging hier um den Vergleich Foren vs. Usenet. Was hat E-Mail damit zu tun?

    Bezogen auf deine Aussage, das Usenet nicht dazu gedacht wär Binärdateien zu verbreiten. Das war Email eben auch nicht. Nebenbei sind Email- und Usenet-Nachrichten ziemlich ähnlich im Aufbau.
    Naja, klassisch unterstützt NNTP im Gegensatz zu E-Mail nicht einmal Anhänge. Beim Usenet bleiben Binärdateien ein Hack.
    _Müssen_ tust du gar nix. Du kannst Binärdateien auch so direkt in den Post rein packen. Die Frage ist, ob der Client das dann noch versteht.
    Ach, und was ist mit den Einschränkungen des Protokolls, dass die Zeilen höchstens 998 Zeichen lang sein dürfen? Das wird mit einer Binärdatei sehr problematisch werden.

    Wie kommst du auf die Zahlen? Weder RFC 5536 noch RFC 3977 sprechen von einer maximalen Länge.
    Aber RFC 5322 (auf das RFC 5536 verweist):
    There are two limits that this specification places on the number of
       characters in a line.  Each line of characters MUST be no more than
       998 characters, and SHOULD be no more than 78 characters, excluding
       the CRLF.
    Nach spätestens 998 Bytes muss also LF+CR eingefügt werden. Dies verändert die Binärdatei. Du musst die Zeilenumbrüche (LF+CR) also wieder herausbekommen. Um all diese Probleme kümmert sich yEnc.
    Beispiel: In den DB-Groups diverse PDFs/Weisungen.
    Je nach Retention kommen da einige Jahre zusammen, die die Files dezentral unterwegs sind.
    Ja, natürlich werden die Binary-Groups auch für illegale Inhalte genutzt. Ebenso wie Torrent.
    Trotzdem verteufeln Leute (zumindest die, die auch nur den Hauch einer Ahnung haben) Torrent nicht.
    Was sind "DB-Groups"?
    Natürlich. Ebenso wie du zur Nutzung eines .zip-Archivs eine Zip-Bibliothek brauchst.
    Ja, nur dass man eine TeX-Installation in Gigabyte-Größenordnungen misst. MathJax ist so klein, das merkt man gar nicht, wenn man die Seite lädt.
  • in: Sterben Foren aus?

    geschrieben von kamakura

    muellerlukas schrieb:
    nativ unterstützt das Usenet keine Binärdateien, daher müssen die Binärdateien mit yEnc in Text und wieder zurück kodiert werden

    Email ist auch nie dazu gedacht gewesen Anhänge zu transportieren. Trotzdem tuts jeder. Ist Email jetzt scheiße?
    Nein, ist es nicht. Habe ich auch nie behauptet. Es ging hier um den Vergleich Foren vs. Usenet. Was hat E-Mail damit zu tun?
    _Müssen_ tust du gar nix. Du kannst Binärdateien auch so direkt in den Post rein packen. Die Frage ist, ob der Client das dann noch versteht.
    Ach, und was ist mit den Einschränkungen des Protokolls, dass die Zeilen höchstens 998 Zeichen lang sein dürfen? Das wird mit einer Binärdatei sehr problematisch werden.
    Nur die Tatsache, dass das Usenet das Internet-Äquivalent der Freistadt Christiania ist, macht es für eine gewisse Klientel interessant.

    Es mag Leute geben, die das Dezentrale am Usenet zu schätzen wissen.
    Strohmann-Argument. Das bezog sich auf die Binärdateien.

    Was für Binärdateien laden die Leute aus dem Usenet denn herunter? Ubuntu-DVDs?

    Ok, wollen wir ihnen das glauben. Ich bin letztens ja auch nach Somalia geflogen um auf dem Bakara-Markt in Mogadischu einen Sack Reis zu kaufen. Das habe ich dem Zöllner genau so erklärt, aber der war so verbohrt...
    Es kommt eben auch darauf an, welchen Client man für seine Newsgroups verwendet. Es ist durchaus denkbar einen Client zu haben, der LaTeX-Formeln in Nachrichten lokal rendert.
    Gibt es einen solchen?

    Jedes x-beliebige Latex-Addon zu Thunderbird z.B.
    Braucht nur eine volle Tex-Installation.
    Grundlage zu Google Groups sind übrigens auch Usenet-Inhalte.
    Ja, weiß ich.
  • in: Webdav-Laufwerk unter Linux

    geschrieben von kamakura

    Mit
    -o umask=000
    mounten?
  • in: Sterben Foren aus?

    geschrieben von kamakura

    bladehunter schrieb:
    kamakura schrieb:
    Der Unterschied ist, dass Usenet Webforen technisch unterlegen ist. Es lässt sich im Usenet nur reiner Text übermitteln. Allein über Mathematik zu diskutieren ohne die Möglichkeit, Formeln darstellen zu können, stelle ich mir sehr anstrengend vor.

    Und trotzdem machen Leute das. Siehe beispielsweise die Newsgroup sci.math.symbolic.
    Mit weniger als einem Beitrag pro Tag.
    Das usenet ist auch keineswegs auf Text beschränkt. Es gibt auch Newsgroups die sich auf binären Content spezialisieren und daher insbesondere Downloads von Programmen, Filmen etc. ermöglichen.
    - nativ unterstützt das Usenet keine Binärdateien, daher müssen die Binärdateien mit yEnc in Text und wieder zurück kodiert werden
    - kostenfreie Usenet-Server hosten die Subhierarchie alt.binaries.* fast nie. Man benötigt daher einen Account bei einem Premium-Usenet-Server um binären Content herunterzuladen
    - die Artikellänge ist um Usenet stark limitiert. Eine Linux-Live-DVD müsste in zigtausende einzelne Posts zerstückelt werden. Nur mit NZB geht das Downloaden aus dem Usenet komfortabel

    Normalerweise würde sich das doch niemand antun. Nur die Tatsache, dass das Usenet das Internet-Äquivalent der Freistadt Christiania ist, macht es für eine gewisse Klientel interessant.
    Es kommt eben auch darauf an, welchen Client man für seine Newsgroups verwendet. Es ist durchaus denkbar einen Client zu haben, der LaTeX-Formeln in Nachrichten lokal rendert.
    Gibt es einen solchen?
    kalinawalsjakoff schrieb:
    Facebookgruppen fehlt einfach eine richtige Struktur, alles was älter als ein paar Tage ist, verschwindet irgendwo in der Versenkung.
    Oh ja. Ich habe gesagt "Facebook Gruppe = Forum mit einem Thread". Aber das ist eigentlich beschönigend! Bei einer Facebook-Gruppe kann man nicht mal blättern, sondern nur scrollen, scrollen, scrollen, .....
    Formatieren bei Facebooks Gruppeneinträge? Fehlanzeige, schon wenn man einen Absatz machen will, muß man Tastenkombos drücken (Shift + Enter) sonst ist der Beitrag zu schnell abgeschicht. Zudem ist das testfeld zum Schreiben recht klein und bietet keine Shortcuts für schnelle Formatierungen des Textes an. Das erhöht nicht unbedingt die Lesefreundlichkeit, daher liest man die ersten zwei drei Zeilen und ist bei längeren Texten auch schnell weg, was die gepflegte Diskussion drückt.
    Kann man da überhaupt kursiv oder fett schreiben?
    mein-wunschname schrieb:
    Immer wenn etwas neues kommt wird dem Alten, mit dem es konkurriert, das Aussterben prophezeit (Radio, Fernsehen, Internet allgemein, eBooks usw.). Ich denke, dass der Kuchen nur anders aufgeteilt wird.
    Wer sagt denn, dass das Internet ausstirbt? :eek: Meinst du das WWW?

    Es ist schwer beim Fernsehen die Statistiken ernst zu nehmen. Hier stehen starke finanzielle Interessen dahinter. Denn wenn der mit 9 Milliarden im Jahr vom zahlenden Bürger finanzierte ÖRR nicht mal mehr die Legitimation besitzt, dass das Fernsehen zu den wichtigsten Medien gehört...
    Mir kommt es aus direkter Beobachtung schon so vor, als würde das klassische (!) Fernsehen für unter 30-Jährige keine große Rolle mehr spielen. Aber vielleicht sind die Leute, die ich kenne, nicht repräsentativ.

    Und "aussterben" darf man natürlich nicht ganz so eng fassen, sieht man an den Diskussionen um das Rieplsche Gesetz. Denn man schreibt sich ja z.B. immer noch private Briefe oder man kann bei der Deutschen Post sogar Telegramme verschicken (wenn das nur etwas stilvoller realisiert wäre... ;-) ). Jedoch ist der private Brief nur noch ein Schatten von dem, was es mal war. Und das Telegramm nur noch eine Retro-Kuriosität.
  • in: Sterben Foren aus?

    geschrieben von kamakura

    bladehunter schrieb:
    Foren sind selber nicht die älteste breite Diskussionsplattform im Internet. Es gab schon seit Anfang der Achtziger Jahre eine Technologie die sich Usenet nennt. Das Usenet gibt es selbst heute noch, aber es ist nicht mehr so bedeutungsvoll, weil es - ihr ahnt es vielleicht - durch die Foren im WWW an Relevanz verloren hat.

    Das was das Usenet auszeichnet, ist, dass es verschiedene newsgroups gibt, die sich jeweils mit einem spezifischen Thema beschäftigen. Das Usenet ist zudem hierarchisch organisiert, so dass es newsgroups mit Namen wie sci.crypt.random-numbers gab, die sich dann mit der "Wissenschaft" der "Crytographie" mit speziellem Fokus auf "Zufallszahlen" beschäftigten. Im Gegensatz zu Webforen ist das Usenet dezentral und die identischen Beiträge können von verschiedenen Newsservern abgerufen werden.
    Der Unterschied ist, dass Usenet Webforen technisch unterlegen ist. Es lässt sich im Usenet nur reiner Text übermitteln. Allein über Mathematik zu diskutieren ohne die Möglichkeit, Formeln darstellen zu können, stelle ich mir sehr anstrengend vor.
    Ich selber habe keinen nennenswerten Einblick darauf, wie es in Facebook Gruppen zugeht. Vermutlich gibt es aber auch Gruppen, wo die Diskussion strukturierter verläuft als in anderen Gruppen.
    Der Rahmen, den FB vorgibt ist doch immer der gleiche. D.h. keine Threads und kein Zitieren. Dadurch wird es zwangsläufig unstrukturiert.

    Für so Gruppen wie Flohmarkt XYZ finde ich die Einschränkungen ok. Und für oberflächlichen Zeitvertreib. Aber für mehr imho nicht.
    Fakt ist natürlich dass für viele Menschen Facebook-Gruppen die erste Diskussionsplattform überhaupt ist, die sie im Internet kennen gelernt haben und daher sind sie auch nicht erfahren darin eine gepflegte online-Diskussion zu führen.
    Kann man ohne Threads, ohne Quote-Funktion, ohne "neue Zeile über Enter", ohne Links mit Verweistext und ohne Schriftformatierung überhaupt eine gepflegte Diskussion führen?
  • in: Sterben Foren aus?

    geschrieben von kamakura

    c22 schrieb:
    Weil sich die Kommunikationsmittel in Zeiten von Whatsapp, Facebook, Social-Media-Plugins auf den Webseiten, ect. halt geändert haben.
    Erklärt es noch nicht ganz. Denn auf Facebook bekomme ich keine gescheiten Informationen bzw. Antworten auf meine Fragen.
    c22 schrieb:
    Der Community-Gedanken der früher das Internet geprägt hat hat sich in Richtung Social Media verschoben (was auch nicht sonderlich schlimm ist, die Menschen entwickeln sich und die Technik entwickelt sich -> wer da stehen bleibt ist selber schuld).
    "Es ist wie es ist" ist eine reichlich banale Aussage. Es ging hier im übrigen nur darum, das Phänomen zu erklären, nicht es zu werten.
  • in: Sterben Foren aus?

    geschrieben von kamakura

    Naja, die Formulierung als Frage ist eigentlich unnötig. Foren befinden sich wie im Zustand der Dinosaurier als der Komet eingeschlagen war.

    Nur, woran liegt es? Ich mein klar, Facebook Gruppen usw. Aber wie kann das für die Leute wirklich ein Ersatz sein? Muss man geistig nicht ein wenig schlicht veranlagt sein um mit einem gigantischen, chaotischen quasi-Thread wunderbar leben zu können...?

    Dann gibt es noch die Stackexchange-Seiten (fast alle Englisch). Im Gegensatz zu FB, das von mir aus im Orkus versinken kann, hat Stackexchange für mich wirklich einen Wert. Es ist mittlerweile eine riesige Sammlung von Informationen sehr hoher Qualität und man bekommt (immer noch) gute Antworten auf seine Fragen.
    Allerdings ist es schon arg übermoderiert. Jede Antwort die nicht objektiv beantwortbar ist, oder aus den vielen anderen Gründen ("zu breit", "zu eng", ...) nicht gefällt, wird downgevoted und dann meist gelöscht.
    Die Angst vor Niveau-Verfall ist da schon hysterisch.
    Stackexchange..? Eher "Snobexchange"! :biggrin:

    Arbeitshypothese: Trotz der gravierenden Mängel graben Facebook im Bereich "nicht so ernst gemeint" und Stackexchange im Bereich "ernst gemeint" (IT, Mathematik, Technik, Naturwissenschaften, ...) den Foren das Wasser ab. Ja, nein?
  • in: C oder C++ lernen?

    geschrieben von kamakura

    annihilus schrieb:
    kamakura schrieb:
    Der Vorteil an C ist, dass man es in relativ kurzer Zeit vollständig verstehen kann. Dazu muss man "nur" K&R und "Expert C Programming" von Peter van der Linden durchgearbeitet und verstanden haben.

    So eine Aussage find ich schon generell gewagt. Man lernt das Programmieren nicht durchs Lesen von zwei Büchern sondern durch lange Praxis.
    Mag sein. Aber hier geht es nicht um "das Programmieren" (wie immer man das definiert) sondern um das Verständnis der Sprache C. Hat man die beiden genannten Bücher durchgearbeitet, was das bearbeiten der Übungen darin natürlich mit einschließt, dann wird man C vollständig verstanden haben, heißt: Es gibt keine Syntaxkonstruktionen oder Eigenheiten der Laufzeitumgebung mehr, die man nicht versteht.
    Und gerade bei C wird man "dank" fehlenden Typprüfungen, hängender Zeiger, Schreiben über Bereichsgrenzen etc. pp. auch noch nach Jahren immer mal wieder ins Klo greifen.
    Kannst du zu den fehlenden Typprüfungen Beispiele bringen? C hat Typprüfungen. Ok, etwas wie int *x = 8; ist nicht valide in C++ und erlaubt in C. Aber macht das in der Praxis so einen Unterschied? Ich hab das mit drei C-Compilern getestet und jeder gab da in der Standardeinstellung eine Warnung aus. Ach, ja, variadische Funktionen (wie printf) haben auch keine Typprüfung :rolleyes: aber so oft kommen die nun auch nicht vor.

    Und sind C++-Referenzen denn sicherer als C-Pointer? Was bei dieser ganzen Pointer-Referenzen-Diskussion untergeht, ist, dass allein nur die Existenz eines Garbage-Collectors einen wesentlichen Unterschied machen kann. Bei Go und Java ist aufgrund des Garbage-Collectors garantiert, dass Pointer (Go) bzw. Referenzen (Java) nicht ins Leere zeigen. C und C++ haben aber keinen Garbage-Collector, allein schon daher können ihre Pointer/Referenzen gar nicht sicher sein. Die Existenz von C++-Referenzen neben klassischen Pointern hat eigentlich nur eine Rechtfertigung, nämlich dass Referenzen das Operator-Overloading von [] für Zuweisungen ermöglichen.

    Auch C++ liefert natürlich keine Arraygrenzen-Überwachung auf fundamentaler Ebene wie Go oder Java. Wenn man wenigstens den schwachen Abklatsch davon haben will, muss man die Container-Klassen aus der STL verwenden. Aber hierin allein kann der Vorteil nicht liegen, denn was ist da der große Unterschied zu C mit Verwendung von C-Bibliotheken mit quasi-Container-"Klassen"?
    Ein kompakter Sprachkern (woraus du wahrscheinlich die angeblich einfache vollständige Erlernbarkeit ableitest) macht eine Sprache nicht simpel, sondern eher ist das Gegenteil der Fall.
    Ich habe nie gesagt, dass C eine einfach zu erlernende Sprache ist (nur im Vergleich zu C++).

    Es ist sinnlos, hier all die zahllosen C-Kuriosa aufzulisten (hinter manchen entdeckt man mit mehr Erfahrung einen tiefereren Sinn. Manche sind einfach nur sinnlos skurril), die Klassiker wie
    if(x = 1) {
    // Code hier wird sicher ausgeführt und x wurde auf 1 gesetzt
    }
    kennt ja jeder (mit den richtigen Warneinstellungen des Compilers ist man vieles schon los). Auch der Arraytyp von C ist sehr erheiternd: Er existiert zwar als eigener Typ (und ist kein Pointer!), aber kaum schaut man hin, ist er schon in einen Pointer kollabiert. Wie im Märchen.

    Go wäre für mich eine einfache Sprache: Die Syntax ist nicht umfangreicher als C aber ohne Kuriosa und das Sich-Dummstellen von C und mit richtigem import statt #include. Und es gibt einen Garbage-Collector!

    Eine interessante Frage ist nun: Kann man in C++ programmieren, ohne sich mit dem C-Kuriositätenkabinett auseinandersetzen zu müssen? Du hast geschrieben:
    Modernes C++ hat mit C quasi nichts zu tun.
    Mag sein, dass man in 95% der Fälle C-typische Konstrukte vermeiden kann. Aber was ist mit den restlichen 5%? Um ein halbwegs kompetenter Programmierer zu sein, sollte man keine solchen blind spots haben. Um die ganzen C-Kuriosa wie mit Pointern (this ist ein Pointer), sequence-points (Geht folgendes: int x = 3, &y = x; ?), dem Präprozessor (Include-Guards braucht man auch in C++), nullterminierten Strings (kommt schon bei int main(int argc, char *argv[]) vor) oder C-Arrays (anders bekommt man echte, d.h. halbwegs performante, mehrdimensionale Arrays nicht hin) kommste nicht drum rum.

    Ok, ist das, was "High Level" an C++ ist, wenigstens einfacher zu benutzen als C mit guten Bibliotheken?

    Sowohl C als auch C++ haben (nachdem der Präprozessor durchgelaufen ist) keine kontextfreie Grammatik. Aber C wird nur durch typedef kontextabhängig. Z.B. je nachdem, welche der beiden Zeilen du auskommentierst, ist die dritte Zeile eine Deklaration oder eine Multiplikation:
    // typedef int a;
    // int a = 1, b = 2;
    a * b;
    C++ ist dagegen extrem kontextabhängig. Je nachdem, welche der beiden Zeilen du in folgendem C++-Code auskommentierst
    // int aa, bb, cc(int);
    // struct aa {int x, y;} *bb;
    aa * cc(bb);
    ist die dritte Zeile ein Ausdruck oder eine Deklaration. In validem C muss die dritte Zeile jedoch sicher ein Ausdruck sein.
    Die Metaprogrammierbarkeit in C++ ist so umfangreich, dass sie selber schon eine vollständige Programmiersprache bildet. Man kann den Compiler in eine Endlosschleife schicken oder Primzahlen über Templates während des Kompilierens berechnen. Mir ist keine Programmiersprache außer C++ bekannt, die eine solche Komplexität (Kontextabhängigkeit + Metaprogrammierung) erreicht.

    So, dann egal wie brav man böse Operationen vermeidet: C++ erlaubt direkten Zugriff auf den Speicher und damit wird wohl jeder mit Korruptionen von Objekten auf dem Free Store konfrontiert werden. Bei einem Code wie
    #include <vector>
    #include <iostream>
    
    
    int main(int argc, char *argv[]){
      std::vector<int> vec;
      for (int j=0; j<1000; j++) {
          vec.push_back(j);
      }
      int * boese = (int *) &vec;
      boese[2] = -1;
      int i = 1010;
      vec.at(i) = 777;
      std::cout << "vec.at(" << i << ") = " << vec.at(i) << std::endl;
      return 0;
    }
    funktioniert die Überwachung der Bereichsgrenzen von std::vector nicht mehr.

    Die Frage ist nun: Kann man C++ genauso gut debuggen wie C? Weder der AddressSanitizer, noch Electric Fence, noch Valgrind finden den Bug. Bei äquivalenten Spielchen mit C und malloc schlagen sie sofort an.
    Aber ich kenne mich was C++-Debuggen angeht leider nicht gut aus. Hast du irgendwelche Ideen?

    Falls man Bugs mit Objekt-Korruption schlechter beheben kann als Pufferüberläufe in C (und so sieht es aus), dann sehe ich keinen Vorteil von C++ was die Fehleranfälligkeit angeht. C++ warnt einen zwar komfortabel vor gewöhnlichen Fehlern, wenn sonst alles ok läuft, falls jedoch nicht, dann scheint es im Vergleich zu C richtig heftig zu werden.
    kamakura schrieb:
    Ich habe dagegen von sehr erfahrenen C++-Programmieren gehört, dass C++ es schafft, sie immer noch zu überraschen.

    Keine Ahnung, wie das gemeint sein könnte. Bezieht sich das auf Sprachfeatures?
    Ich denke ja. Die Komplexität von C++ ist wirklich atemberaubend. Aber das ist anekdotische Evidenz, also lassen wir das.
    Das könnte dann daran liegen, dass da die Entwicklung nicht in den 80ern aufgehört hat.
    Verglichen mit C++ ist C natürlich relativ stabil. C11 ist aber schon eine moderne Programmiersprache mit Unicode-Support, Multithreading, echten Boolschen Variablen, generischen Funktionen, freier Möglichkeit seine Variablen zu definieren, lokalen Schleifenvariablen, usw. :-) Sollte natürlich selbstverständlich sein aber ist auch tatsächlich drin!
    Oder Programmverhalten?
    Da bietet C ein "Überraschungs"-Potential, da (alp-)träumst du in anderen Sprachen nur von.
    Im Vergleich zu allen Sprachen mit Garbage-Collector ist C äußerst "überraschend". Aber ist es schlimmer als C++?

    Wenn C wirklich so problematisch wäre, d.h. sich leicht Fehler einschleichen (relativ unkontroverse Behauptung), die gleichzeitig (!) schwer zu debuggen sind (?? das ist eben die große Frage...), dann müsste sich das empirisch irgendwie auch feststellen lassen. Warum lässt sich überhaupt stabile, sehr umfangreiche Anwendungssoftware wie z.B. GIMP, CPython, Stata, SAS, Maple (der Kern), der Apache Web Server oder Git mit reinem C bewerkstelligen?

    Empirisch stellt man natürlich auch fest, dass es extrem viel C++-Software gibt, die sehr umfangreich und stabil ist. Aber bei Adobe o.ä. arbeiten (hoffentlich!) auch keine Hobby-Programmierer wie wir hier (oder zumindest der Threadersteller), sondern Profis, von denen man verlangen kann, dass sie auch eine extrem komplexe Sprache gut zu beherrschen lernen.
  • in: rm -rf alles weg (verspäteter Aprilscherz)

    geschrieben von kamakura

    Was ist denn daran übertrieben?
  • in: rm -rf alles weg (verspäteter Aprilscherz)

    geschrieben von kamakura

    davidlw schrieb:
    Ach was, demletzt hast Du uns doch noch erklärt, dass bei Linux ein falsch gesetztes Leerzeichen für enormen Datenverlust sorgen kann?
    Das stimmt auch. Die von mir gebrachten Beispiele werden durch das Getrolle eines ahnungslosen Trolls ja nicht widerlegt.
    Jetzt hättest Du Deinen Beweis der hochgefährlichen Kommandozeile und willst ihn nichtmal?
    Natürlich, weil es eben, wie ich erklärt habe, kein Beweis ist. Das wäre unfair argumentiert. Es mag vielleicht deine Art sein, die Fakten zu verdrehen (da wird man auch von Linuxfanboys upgevoted), aber ich versuche objektiv zu bleiben.

    Unter Unix hat das Stammverzeichnis den gleichen Namen wie der Verzeichnisseparator, nämlich /.
    :wall:
    Und das ist natürlich hochproblematisch. Das führt zu einer ganzen Klasse von Problemen, von denen eine Unterklasse letztlich zu rm -r / führen.
    Ich finde es ja auch schön, dass man nach 30+ Jahren endlich das verpflichtende --no-preserve-root eingeführt hat um wenigstens diese allerdümmste Sorte von Fehlern zu vermeiden (btw, angeblich soll rm -rf / unter Mac OS X immer noch funktionieren. Probiert es jemand aus? :-D)

    Man hätte natürlich auch einfach das Stammverzeichnis anders nennen können als /, z.B. base/ :rolleyes:

    Wäre der Troll schlauer gewesen, hätte er behauptet, er hätte ein Skript
    #!/bin/sh
    
    ....
    
    rm -rf /$foo/$bar/*
    als root ausgeführt, wobei $foo und $bar dummerweise durch einen Bug nicht gesetzt wurden (leere Strings).

    Denn mit leeren Strings steht da:
    rm -rf ///*
    Nach POSIX werden mehrere Schrägstriche zu einem zusammengefasst, d.h. das ist gleichbedeutend mit:
    rm -rf /*
    und daher löscht das Skript mit ausreichenden Privilegien ausgeführt alles gnadenlos.
  • in: rm -rf alles weg (verspäteter Aprilscherz)

    geschrieben von kamakura

    http://www.welt.de/wirtschaft/article154378454/Programmierer-zerstoert-in-Sekunden-sein-Unternehmen.html

    Ok, Trollo???

    Wie alt muss das Linux sein, dass es den Befehl rm -rf / ohne --no-preserve-root ausführt? Auch FreeBSD hat es seit 10 Jahren. Und das gilt auch in Skripten.

    Aber noch verdächtiger:
    rm -rf {foo}/{bar}
    was soll da schon passieren?

    Wenn dann müsste es schon
    rm -rf ${foo}/${bar}
    heißen.

    Troll + "Qualitätsjournalismus" = 15 minutes of fame
  • in: Filme, die in der nahen Vergangenheit spielen

    geschrieben von kamakura

    mein-wunschname schrieb:
    Fragen über Fragen:
    - muss der Zeitpunkt / Zeitraum exakt definiert sein, wenn ja wie exakt, oder reicht ein "irgendwann im Sommer 79"
    Ja, reicht aus. Es geht sogar "Ende 60er".
    - was ist "nah", welchen maximalen Zeitraum würdest du ansetzen
    Maximal 20 Jahre und keinen Tag mehr!
    - was heißt "keine Rolle spielen". In dem von dir genannten Film gibt es ja sehr wohl Anspielungen. Ob sie wesentlich sind, hängt vom Standpunkt des Zuschauers ab.
    Das stimmt, dass das leider ziemlich subjektiv ist. Bei Donnie Darko kommt am Anfang diese Diskussion zur Präsidentschaftswahl vor. Aber ich denke, man hätte das Drehbuch an dieser Stelle ohne Probleme umschreiben können, und der Rest des Films hätte bleiben können wie er ist.
    Damit du mich richtig verstehst: Damit ich meine Filmdatenbank durch einen Filter schicken kann, brauche ich EuGH-feste Kriterien.
    Okay, du hast mich überzeugt. Streichen wir das mit "historische Ereignisse dürfen keine wichtige Rolle spielen".

    Also zusammengefasst:

    1. Abstand Produktionsjahr - Jahr, in dem der Film spielt: Maximal 20 Jahre. Falls das Jahr nicht festzustellen ist: Frühesten Zeitpunkt nehmen. D.h. "Irgendwann zwischen 1967 und 1969" => 1967
    2. Die Handlung muss fiktiv sein.

    Ist Punkt 2 hoffentlich klar genug definiert? (weil ohne Punkt 2. kommt True-Crime, Biographien, etc. ohne Ende)

    Vielen dank für deine Bemühungen!
  • in: Filme, die in der nahen Vergangenheit spielen

    geschrieben von kamakura

    Was kennt ihr für Filme, die von dem Zeitpunkt des Drehs gerechnet in der nahen Vergangenheit spielen?

    In den meisten Fällen ist der Grund dafür ja, dass ein Film reales Geschehen (Biographie o.ä.) wiedergibt oder dass bei einer fiktiven Handlung historische Ereignisse zumindest eine wichtige Rolle spielen sollen. Z.B. gab es Mitte der 50er die ersten Spielfilme über den 2. Weltkrieg. Oder Hair (1979), das Ende der 60er, während des Vietnamkriegs, spielt. Oder der Film "The Program" über das Leben von Lance Armstrong von 2015 endet irgendwann im Jahre 2012.

    Ich denke solche Filme müssen wir ausschließen, damit es interessant bleibt.

    Also: Was kennt ihr für Filme mit fiktiver Handlung in denen historische Ereignisse keine wichtige Rolle spielen (sie tragen nichts wesentliches zur Handlung bei) und die vom Zeitpunkt des Drehs gerechnet in der nahen Vergangenheit spielen?

    Ich fange mal an:
    Donnie Darko von 2001. Spielt im Oktober 1988. Zeitdifferenz: 13 Jahre.
  • in: C oder C++ lernen?

    geschrieben von kamakura

    annihilus schrieb:
    Kurz:
    C, wenn du Betriebssysteme, Treiber, Maschinensteuerungen und andere Hardware-nahe Dinge programmieren willst.
    C++ für alles andere.

    Der Grund ist: C++ abstrahiert stärker (durch den objektorientieren Ansatz), kann dadurch Polymorphismus und andere nette Dinge, die C noch völlig fremd sind, macht Typ- und Bereichsprüfungen, und bietet drüber hinaus eine umfangreiche Standardbibliothek, kurz: Es macht es sehr viel einfacher, strukturiert und fehlerfrei zu programmieren.
    Ich sage wohlgemerkt nicht, dass das in C nicht auch möglich ist, das erfordert vom Programmierer aber mehr Disziplin und Erfahrung.
    In C kann man aber GLib (nicht zu verwechseln mit glibc) verwenden, das hat eigentlich alles, was man an Datenstrukturen und Utility-Funktionen braucht.

    Der Vorteil an C ist, dass man es in relativ kurzer Zeit vollständig verstehen kann. Dazu muss man "nur" K&R und "Expert C Programming" von Peter van der Linden durchgearbeitet und verstanden haben.

    Ich habe dagegen von sehr erfahrenen C++-Programmieren gehört, dass C++ es schafft, sie immer noch zu überraschen.
  • in: ARM Laptops - Linux noch Salonfähiger?

    geschrieben von kamakura

    Du hast in deinem Beitrag — der ziemlich genau annihilus Vorurteilen gegenüber Linuxfans entspricht :lol: — wirklich atemberaubend viele Strohmann-Argumente gebracht.

    Ich habe keine Lust da jedes mal richtig zu stellen "Das habe ich nicht gesagt, sondern ...". Außerdem würde das das 15.000 Zeichen Limit knacken. Daher werde ich nur auf die extremsten Strohmann-Argumente explizit eingehen und sie ansonsten überspringen. Ich hoffe du hast dafür Verständnis.

    Konfiguration: Wenn die Syntax der Konfigurationsdatei nicht esoterisch ist (einen Standard gibt es ja nicht) und eine kommentierte Beispieldatei vorliegt oder sie gut dokumentiert ist, kann die Konfiguration ohne GUI einfach sein. Aber genau das ist meist nicht der Fall.
    Z.B. wird einem durch wpa-supplicant die Option wpa-conf in /etc/network/interfaces erst zur Verfügung gestellt. Daher ist sie in man 5 interfaces natürlich nicht dokumentiert. Aber sie ist auch sonst in keiner manpage dokumentiert. Unter Linux darf man also das Internet bereits befragen, wenn es um sowas banales wie WPA-verschlüsseltes WLAN geht.

    Unix-Kommandozeile & GNU: Dass es mehrere Shells gibt, macht die Inkonsistenz nur schlimmer (csh :eek:). Die Inkonsistenz der Optionen der Programme selbst ist vielleicht nicht so schlimm, aber das ist bei weitem nicht alles. Z.B. die verschiedenen Regex-Standards. Oder die interaktiven Programme: Kommandos C-f C-r C-u C-d C-v C-y C-w / n p bedeuten in Bash (libreadline-Programmen), less, nano, top, info alle was anderes. Null Konsistenz.
    Und es hängt von der Shell ab, wie ein Programm seine Kommandozeile interpetiert. Nämlich in dem Sinne, dass es nicht weiß, was vor der Shell-Expansion (für Wildcards oder Konstrukte wie ps `pgrep firefox`) auf der Kommandozeile stand. Die Befehle könnten nicht mal sanity-checks durchführen wenn sie es wollten (was sogar Windows del tut).
    Genial auch, dass die langen GNU Optionen mit -- beginnen, was für sich genommen "Ab jetzt kommen keine Optionen mehr" bedeutet. U.a. so legt man sich (mit einem Leerzeichen zu viel) auch Dateien an, die mit - beginnen. Das nächste rm * wird dann evtl. sehr amüsant. GNU "Komfort".:tongue:
    Oder bekanntlich sind Dateien, die mit einem Punkt beginnen, nicht nur erlaubt, sondern sie sind überall zu finden, da der Versteckmechanismus unter Unix darauf beruht. Aber was macht eigentlich cp -r .* /media/backup ? :-D
    Bash und GNU-coreutils sind ziemlich bloated. Abgesehen davon, dass uns die Komplexität im Falle Bash den Shellshock brachte, existiert dadurch so viel an Redundanz. All die Optionen der GNU-Tools, mit denen ihre Manpage zugespammt ist. Da kriegt man den Eindruck, die wären alle wichtig. Meist könnte man aber durch Kombination von Befehlen das gleiche Ergebnis erreichen. Also z.B. ls -lh | sort -k 5 -h statt ls -lhS.

    Dateisystem: Ob das intuitiv ist, ist subjektiv (ich würde es bezweifeln), also lassen wir das. Objektiv ist aber, dass es deswegen nur mit irgendwelchen Tricks möglich ist, einzelne Dateien in einem für alle User schreibbaren Verzeichnis zu schützen.
    Ja, rm fragt nach, wenn es eine schreibgeschützte Datei löschen soll. Und? In einem Script ausgeführt löscht rm in jedoch gnadenlos schreibgeschützte Dateien. So viel zum Thema "Konsistenz".

    man/info: Eine manpage ist (meist) eine Referenz und keine Dokumentation. Für GNU-Software ist eine Manpage sogar eher eine Kurzreferenz. Wo sind in der manpage von ls denn die Abkürzungen für die Dateitypen (-, d, c, usw.) erklärt? Oder wo ist in der manpage von ln erklärt, wie ein Symlink funktioniert? Auf der info-Seite steht das aber.
    winhlp32 ist wirklich ein Problem. Aber es ist seit 10 Jahren deprecated. Da ist also ein Ende in Sicht! Beim GNU-Projekt geben sie jedoch nicht so schnell auf, auch im Jahre des Herrn 2016 verweisen GNU-manpages auf die info-Seite als "wahre Dokumentation". :lol:

    Windows-Kommandozeile: GUIs gibts da schon, wie EasyBCD oder was weiß ich, nur werden sie nicht mitgeliefert und sind daher nicht Standard. Ähnliches Problem wie man es konstant unter Linux hat. Siehe Beitrag von annihilus.

    Binärkompatibilität: Dir ist noch nie passiert, dass ein altes proprietäres Programm nicht mehr lief? Kaum zu glauben.
    Allein glibc: Die Rückwärtskompatibilität ist zwar nicht so schlecht, aber erheiterte uns immer wieder mit interessanten Problemen beim Update zwischen minor versions (!!!). Ok, das ist natürlich kein Vergleich zu der massiven Vorwärtsinkompatibilität, ja (siehe im letzten Beitrag verlinkter Artikel).
    Und zum Thema "verschiedene Versionen von Bibliotheken installieren": Zumindest neue glibc und alter Kernel sind gar keine gute Idee.
    Aber proprietäre Software soll man unter Linux ja auch nicht verwenden! :lol:

    Breite Auswahl an Software: Das ist natürlich für sich genommen kein Problem. Äußerst negativ sind allerdings die Qualitätsprobleme, ganz besonders bei der Interaktion zwischen den einzelnen Systemkomponenten, die sich durch "mehr Auswahl" halt offensichtlich ergeben. Besonders wenn es keine Standards gibt oder sich niemand daran hält.
    Wenn meine Festplatte den Geist aufgibt, dann krieg ich unter Windows eine unübersehbare und hartnäckige Warnung (so auch unter Gnome). Aber mit meinem coolen Tiling- Fenstermanager, kriege ich bloß irgendwann mal beim nächsten Login ein dezentes "Sie haben neue Nachrichten", also lokale Mail von smartd.

    Paketmanager: Ja, die sind toll. apt hat sich z.B. unter Debian darum gekümmert mir einen einen "Bugfix" zu installieren, der mein System unbenutzbar machte. Also alten Kernel neu installiert und apt so konfigurieren, dass er die anderen Updates installiert aber nicht den verböserten Kernel etc. pp.

    Ubuntu-Tutorial: Wie annihilus schrieb: bei Linux wird es immer oldschool. Weil alles andere nicht standardisiert ist. Und die Kommandozeile ist bei Linux nun mal so, dass jeder kleine Tippfehler üble Konsequenzen haben kann, z.B. !r (mit dem falschen in der history) oder rm *>tmp (mit US-Tastaturbelegung passiert das leicht) oder rm * .tmp oder rm -rf ~ /irgendwas
    Auch bei Windows musst du die Bedienung erst einmal erlernen, und auch dort ist vieles (auch in der GUI) alles andere als intuitiv.
    Unity, KDE 4 oder Gnome 3 bringen jedoch sogar Torvalds persönlich um den Verstand. ;-)
    Copyleft: vermutlich verwechselst du was, denn für das Linken gegen den Linux-Kernel gibt es keine Ausnahme!
    Falsch. Für den Kernel als Systembestandteil gibt es Ausnahmen. In der Datei COPYING, die beim Linux-Quellcode mitgeliefert wird, steht z.B.:

    NOTE! This copyright does *not* cover user programs that use kernel services by normal system calls - this is merely considered normal use of the kernel, and does *not* fall under the heading of "derived work".

    Was glaubst du denn, warum es (derzeit?) kein ZFS im Kernel gibt? Oder warum du dir für die proprietären GPU-Treiber selbst die Kernel-Module bauen musst?
    Du argumentierst hier auf der Basis von Halbwissen.

    Der Grund ist, dass es für Kernel-Module andere Ausnahmen gibt, die komplexer sind als die oben zitierte Ausnahme in dem COPYING-File. Es gibt zwei C-Macros EXPORT_SYMBOL() und EXPORT_SYMBOL_GPL(), über die Kernel-Funktionen für die Module bereitgestellt werden. Und gegen die mit EXPORT_SYMBOL_GPL() exportierten dürfen proprietäre Module nicht linken.
    Also solange du die aktuellen rechtlichen Experimente ignorierst natürlich. Was am Copyleft rechtlich fragwürdig sein soll, ist übrigens auch die Frage. Wenn der Entwickler ein proprietäres Stück Code und eine GPL-Bibliothek separat zum Download anbietet, dann kann er das tun. Dann darfst du dir als User das sogar linken. Du darfst das dann allerdings nicht weiter verbreiten o.ä., und der Entwickler darf dir deshalb auch nicht das gelinkte Binary direkt geben. Siehe Kernel-Module. Wo ist da also das Problem?
    Wo hast du das denn aufgeschnappt? Hast du den Text der GPL überhaupt mal gelesen?

    Richard Stallman persönlich meint, dass genau dieses Szenario (also "getrennt in zwei Teilen verbreiten, den User linken lassen") die GPL verletzt. Siehe diese Diskussion, ab Zeile 366.

    Da ist das Problem.
    Und von wegen juristischer Experimente: ganz offensichtlich lassen sich da durchaus Leute darauf ein. Oder ist das mit Canonical + ZFS, VMware usw an dir vorbeigegangen?
    Übles Strohmann-Argument. Ich habe geschrieben, dass sich niemand darauf einlassen will, nicht dass sich (notgedrungen) niemand darauf einlässt.
    Ich würde übrigens sogar behaupten, dass Linux gerade wegen des Copyleft so erfolgreich ist wie es ist. Wenn dir das Copyleft nicht passt, dann nimm ein anderes System, das kein Copyleft hat.
    Strohmann-Argument. Ich habe kein Problem mit Copyleft. Und es ging hier sowieso immer nur um starkes Copyleft, das sogar Linken verbietet, nicht um Copyleft allgemein.

    Aber die GPL ist generell eine schlechte Lizenz. Nicht wegen Copyleft, sondern weil sie schwammig formuliert und juristisch fragwürdig ist.
    Z.B. BSD. Komischerweise hat sich das aber nicht in der Form durchgesetzt wie Linux
    Ein Argument, das so vernünftig ist wie "Komischerweise hat sich Linux auf dem Desktop nicht wie Windows durchgesetzt... " :biggrin:

    Abgesehen davon gibt es viel extrem erfolgreiche Software unter freizügiger Open-Source-Lizenz (Apache, nginx, alles von Android außer dem Kernel).

    Und der Trend geht auch schon lange weg von der GPL.
    (also solche Systeme wie auf der PlayStation, oder so manches proprietäre BSD-basierte Router-/Firewall-OS, von denen du nie auch nur eine Zeile Quellcode zu sehen bekommen wirst, ausgenommen). Warum wohl?
    Ja, nur dass das nicht mal stimmt.

    Wow, schon zwei negative Bewertungen. :frust: :frust:

    Wer mich downvoted ist bloß ein Linuxfan, der die Wahrheit nicht ertragen kann! :cool:
  • in: ARM Laptops - Linux noch Salonfähiger?

    geschrieben von kamakura

    davidlw schrieb:
    a) Also ich kenne keinen »typischen« Windows Nutzer, der sich jemals mit den Windows Dateirechten auseinandersetzt, geschweige denn einen Grund hätte, das Löschen einer Datei zu verhindern. Die, die sich damit auseinandersetzen und das Windows Rechte System verstehen, werden m.E. auch keine Probleme haben, das Linux/Unix Dateirechte System zu verstehen.
    Du hast genau wie muellerlukas meinen Beitrag nicht richtig gelesen. Punkte a) bis e) sind nicht als "Hier ist Windows besser" gedacht, sondern sind Unterpunkte von Punkt 1.

    Und die Aussage von Punkt 1 war: Die Unix-Kommandozeile zu erlernen ist vergleichbar mit Ungarisch (Ungarisch hat 18 Fälle!) oder Japanisch lernen (Japanisch hat keine Leerzeichen, zwei 48-Silben-Alphabete + 2000 Schriftzeichen!): Die Inkonsistenz, Komplexität, und Kontraintuitivität machen es unnötig schwer (es ist schnuppe was mit der Windows-Kommandozeile abgeht, da man diese selbst als Poweruser schlicht nicht benutzen muss. Ähnliches gilt für Mac OS X, obwohl da unter der Haube auch ein Unix steckt).

    Die Kritik am Schweregrad der Unix-Kommandozeile hat eine sehr lange Tradition (so lange wie Unix existiert). Siehe z.B. folgender Artikel:

    The truth about Unix: The user interface is horrid
    von Donald A. Norman (Center for Human Information Processing University of California, San Diego, USA), in: Datamation 27, 12 (1981).

    So, dass chmod a-w apfel.txt nicht bewirkt, dass User die Datei apfel.txt nicht mehr löschen können, ist etwas, das sogar in vielen Linux-Büchern falsch drin steht. So liest man z.B. in der weit bekannten Linux-Bible (2015) von Christopher Negus auf Seite 110 folgende falsche Behauptung:

    The first line shows that the ch3 file has read and write permission for the owner and the group. All other users have read permission, which means they can view the file but cannot change its contents or remove it.

    Heißt, dass das Unix-Dateirechtesystem so komplex ist, dass es selbst Experten oft nicht verstehen.
    b) »less is more« - ursprünglich wurde dafür »more« verwendet. Und der Name more macht für einen Pager durchaus irgendwie Sinn. Aber ja - ich gebe zu, das ist alles andere als offensichtlich. Aber anders herum - gibts sowas für Windows überhaupt? Wüsste ich jetzt nichts. Höchstens für die PowerShell (die ja recht gut sein soll, hab ich mir aber ehrlich gesagt noch nicht angeschaut). Der »typische« Nutzer schaut sich Dateien eh mit einem GUI Editor an, da Programme bei Linux DEs schön nach Verwendungszweck sortiert sind, sollte ein solcher sehr einfach zu finden sein.
    Wie gesagt, Punkt 1 nicht gelesen, der Vergleich mit Windows ist hier sinnlos, es geht hier darum ob die Unix-Kommandozeile benutzerfreundlich ist (rofl).
    Und das mit less war nur ein Beispiel. Siehe der oben zitierte Artikel von Donald Norman: apropos, finger, cat, chown (mnemotechnisch ganz übel, weil viele denken, das 'o' in den Dateirechten würde für owner stehen statt für others), w vs. who usw.

    Manchmal haben die langen Optionen zwei Dashes, manchmal nur einen. Mal ist rekursiv -r, mal -R usw.

    Brian Kernighan, einer der Mitentwickler von Unix, räumte sogar mal ein:

    As you learn more, you will find that there is little regularity or system to optional arguments. Each command has its own idiosyncrasies, and its own choices of what letter means what (often different from the same function in other commands). This unpredictable behavior is disconcerting and is often cited as a major flaw of the system.
    aus: The Unix Programming Environment (1984), Prentice Hall, von Brian W. Kernighan und Rob Pike
    c) Was muss er denn groß konfigurieren? Bei Distros wie Ubuntu oder Suse läuft das doch alles über GUI, wenn denn überhaupt nötig. Auch ist mir kein Befehl bekannt, wo ein Leerzeichen zu Datenverlust führt. Und wer mit Dingen wie dd herumspielt, wenn er eigentlich nur was konfigurieren will, ist, ganz ehrlich, selbst schuld.
    Lies dir doch mal paar Tutorials auf help.ubuntu.com durch.

    An einer Stelle wird empfohlen, wie man den Sound resettet, wenn Pulse Audio spinnt. Dazu soll man den folgenden Befehl eingeben:
    killall pulseaudio; rm -r ~/.config/pulse/* ; rm -r ~/.pulse*
    Aber "rm -r" ist unter Unix immer gefährlich. Denn rm überprüft nicht, ob alle Pfade, die ihm übergeben wurden auch korrekt sind. Es fängt an zu löschen mit dem ersten Pfad, der stimmt. Bei einem Leerzeichen an der falschen Stelle zu viel, wie
    killall pulseaudio; rm -r ~ /.config/pulse/* ; rm -r ~/.pulse*
    fängt rm also an, die Dateien im Heimverzeichnis zu löschen.

    Müssen sehr viele User bei Linux an sehr unangenehmen Ecken Hand anlegen, damit es annehmbar läuft? Nun, das Problem ist, dass hier viele unüberprüfbare Anekdoten wie "Ich nutze Linux, habe damit nicht die geringsten Probleme und bin damit total zufrieden!" gepostet werden. Umgekehrt kann jeder Sachen posten wie "Linux hat meinen Laptop zerstört [wobei, das kam sogar schon vor] und meine Hausaufgaben gefressen!". Das ist Zeitverschwendung, man sollte versuchen glaubwürdiges und möglichst nicht-anekdotisches zu posten.

    In dem Sinne noch mal der Artikel von Miguel de Icaza, Zitat:

    Machine [Anmerkung: der Mac] would suspend and resume without problem, WiFi just worked, audio did not stop working, I spent three weeks without having to recompile the kernel to adjust this or that, nor fighting the video drivers, or deal with the bizarre and random speed degradation that my ThinkPad suffered.
    While I missed the comprehensive Linux toolchain and userland, I did not miss having to chase the proper package for my current version of Linux, or beg someone to package something. Binaries just worked.


    Und das ist nicht irgendwer, sondern einer der Top-Linux-Entwickler. Wenn der schon sagt, ok, mir reicht's mit Linux ich nehme einen Mac..!
    d) man und info zeigen bei mir genau das gleiche an, lediglich die Bedienung ist minimal unterschiedlich. Ich bin bisher immer mit man durchgekommen, also nix 2 Hilfesysteme lernen (was es unter Windows so ausführlich mal wieder gar nicht gibt).
    info ist in seiner Bedienung EMACS ähnlich während man (also less) vi ähnlich ist. Die Richtungstasten hjkl funktionieren unter info nicht, genauso wie Marks (mit m+Buchstabe) oder Hoch-Runter mit u,d/f,b und Anfang/Ende mit g, G usw. Ok, du kannst info mit der Option --vi-keys starten, dann ist es man ähnlicher. Aber lernen muss man doch zwei, denn ohne die Befehle um die Knoten zu navigieren, kommst du nicht weit. Und die volle Dokumentation z.B. von vielen Tools wie grep findest du halt nur auf der info Seite (so steht es in man grep) und nicht der manpage.
    e) Das ist auf der Windows Kommandozeile doch das gleiche - und will man auf der Kommandozeile wirklich einen Editor, der sich wie ein GUI Editor verhält? Ich denke nicht. (Wobei Programme Strg-C auch abfangen können und somit das Verhalten überschreiben)
    Siehe oben. Es geht in den Punkten a) bis e) nicht um den direkten Vergleich Windows vs. Linux, sondern um die Frage: Ist die Unix-Kommandozeile benutzerfreundlich? Von mir ein klares Nein. Dass die Windows-Kommandozeile (auch PowerShell) ihre Probleme hat, ist egal, da man sie sowieso nicht benutzen muss.

    Bei Linux muss man sie früher oder später benutzen. Und das ist auf zwei Arten möglich: (1) man tippt Tutorials aus dem Internet ab ohne irgendwas davon zu verstehen. (2) man lernt die Unix-Kommandozeile. Option (2) ist allerdings wie Ungarisch lernen. ;-)
    2) Ja, teilweise ein Problem, teilweise auch ein Feature. Ich kann mir z.B. mit i3 ein an meinen Gebrauch angepasstes System selber zusammenbauen, eben aufgrund der Vielfalt, die manchmal auch chaotisch sein kann.
    Möglichkeiten sein System zu Konfigurieren haben relativ wenig mit inkompatiblen Standards zu tun. Was bringt es denn z.B. dem User, dass die libc zur Kernel-Version passen muss und dass verschiedene Versionen der libc sich so unterscheiden, dass Linux-Systeme mit verschiedenen libc-Versionen und damit die Distros selbst für die einfachsten Programme binär miteinander inkompatibel sind? Was ja einer der Gründe ist, dass es proprietäre Software unter Linux so schwer hat. Oder, was bringt es einem, dass es rpm und deb, GTK und QT gibt?
    Ton sollte unter den typischen DAU-Distros auch kein Problem darstellen, funktioniert ja sogar bei mir unter ArchLinux mit reinem ALSA wunderbar.
    Ja "sollte". ist aber nicht der Fall, der Bug tritt auch bei Ubuntu auf. Ich hatte da einen Link gepostet, hier noch mal. Und dass du archaisch reines ALSA verwendest, könnte genau der Grund sein, warum es bei dir funktioniert.
    3) Mir persönlich ist da jetzt noch nix falsches aufgefallen, aber ich verwende auch vorwiegend englische Kommandozeilenprogramme…
    https://www.google.de/search?q=wrong+translation+german+site:bugs.debian.org
  • in: ARM Laptops - Linux noch Salonfähiger?

    geschrieben von kamakura

    Auch wenn das Thema etwas älter ist, möchte ich mich doch dazu äußern, es ist nämlich sehr interessant.
    seven-sign schrieb:
    Moin,

    heute habe ich einen Artikel auf fossbytes.com gelesen in dem Linus Torvalds
    ein Statement abgab in dem er vermutet das 2016 das Jahr der ARM Laptops
    werden könnte: Link zum Artikel.

    Nur um mal kurz auf ARM einzugehen für jene die nicht unmittelbar wissen
    was das ist:

    ARM Prozessoren werden vorallem derzeit in Smartphones, Tablets u.a. verbaut.
    Die Architektur gibt es allerdings nicht erst seit dem das erste Smartphone auf dem Markt kam,
    sondern schon seit den späten 80ern/frühen 90ern und 2013 wurden auch die ersten 64 Bit
    ARM Prozessoren verbaut.

    Nun könnte man noch Windowsbetriebssysteme mit einbeziehen, doch bietet Linux einfach
    viel mehr Freiheiten und vorallem Auswahl an Distributionen als Windows.
    Wir haben mit Linux die Möglichkeit ältere Hardware noch sinnvoll einsetzen zu können,
    aber danach kann jeder gerne selber googlen.

    Nun könnte man auch wieder das Argument Linux und Gaming bringen,
    doch auch hier gibt es lange Vorstöße Linux besser mit einzubeziehen.
    Man sie z.B. Valve und Valve OS: EInen Artikel zu 1500 Steam Games für Linux.
    Somit ist dies auch kein Thema und mit Wine laufen ja nun mal auch eine Vielzahl
    an Windowsgames auf einem Linuxsystem.

    Nun könnte auch wieder die Diskussion über vorhandene Treiber einbezogen werden,
    was lange auch kein Problem mehr ist. Immer mehr Hersteller liefern ihre Treiber auch für Linux.

    Mal noch so ein kleiner Gedanke es würde mich nicht Wundern wen 60% der Durschnitts-Androiduser
    auch der Ansicht wäre, er könne mit Linux nicht umgehen, obwohl Andriod auch auf dem Linux-Kernel basiert.
    Das Linux-basierte Chrome OS lässt sich auch problemlos benutzen (falls es einem egal ist, ob man ausspioniert wird ;-))

    Ich denke dass der Linux Kernel selbst den meisten Leuten nur Kopfschmerzen bereitet, wenn es Hardware-Inkompatibilitäten gibt (ansonsten werkelt der im Hintergrund und man kriegt nichts von ihm mit). Die sind allerdings oft richtig heftig. Da kann tausendmal der Hersteller den Treiber mitliefern, es wird immer noch viel zu sehr grundlegendes am Kernel verändert. Dadurch gibt es sogar Verschlimmbesserungen. Wenn selbst ein bekannter Linux-Programmierer wie Miguel de Icaza meint, dass es so viel angenehmer ist einen Mac zu benutzen, muss es schon richtig übel sein.

    Aber wenn die Hardware besser standardisiert ist und sich der Hardware-Hersteller selbst um die Distro kümmert, so wie z. B. bei Raspbian für den Raspberry Pi, sollten solche Probleme natürlich nicht auftreten.

    Ein anderes Problem sind die Probleme im weiteren Linux-Umfeld. Bei einer Feld-Wald-und-Wiesen-Distro, die mit Linux-Kernel+GNU+Xorg+Gnome/KDE kommt, weiß man gar nicht, wo man anfangen und wo man aufhören soll mit den Ärgernissen.

    1.) Im Gegensatz zu Android und ChromeOS ist die Integration der Konfiguration in die GUI äußerst mäßig. Der User ist irgendwann gezwungen, mit der Kommandozeile zu arbeiten. Es gibt vielleicht ein Tutorial im Netz, wo der Noob-User alles abtippen kann. Aber auf sich gestellt, müsste er Linux schon richtig erlernt haben. Und Linux basiert (ok, eher ist) Unix. Und da sind selbst die einfachsten Dinge entsetzlich kompliziert.

    Ok, es gibt meines Wissens keine empirischen Studien, ob Linux/Unix im Vergleich zu anderen Systemen schwer zu erlernen ist. Aber mal ehrlich....

    a) Als ein Beispiel für die notorisch uintuitive "Logik" von Unix: Wenn der Noob-User eingibt
    chmod a-w apfel.txt
    dann erwartet er doch, dass man die Datei apfel.txt nicht mehr löschen kann, oder? Für alle ('a') User wurden entfernt (-) die Schreibrechte ('w').
    Aber man kann apfel.txt löschen (falls man Rechte für das Verzeichnis hat, in dem es liegt).
    Unix stellt sich hier (wie überall sonst) richtig, richtig dumm und meint, dass das löschen einer Datei ja nur den Eintrag in das Verzeichnis ändert aber die Datei nicht verändert. "Alles ist eine Datei" also auch ein Verzeichnis, jaja.

    b) Dann haben in Unix teilweise die Befehle die absurdesten Namen und sind in ihrer Bedienung inkonsistent. less als Betrachter um Dateien anzuzeigen? Wirklich?

    c) Mit sudo oder als root eingeloggt (und das muss auch der Noob-User, wenn er sein System konfigurieren will) kann jeder dumme Tippfehler wie ein Leerzeichen an der falschen Stelle zu katastrophalem Datenverlust führen.

    d) Und bei Linux ist durch GNU vieles noch schlimmer geworden. Z. B. hat man nicht bloß ein Hilfesystem (nämlich man), sondern gleich zwei, nämlich man und info (was völlig anders funktioniert als man)! Allein nur um die Hilfe zu bedienen muss man zwei Programme erlernen!

    e) Jedes Kommando, das man von normalen GUI-Programmen wie Firefox oder LibreOffice kennt (und wofür man vielleicht ein Muskelgedächtnis entwickelt hat), hat auf der Unix-Kommandozeile eine andere Bedeutung. Z. B. Strg-C ist auf der Kommandozeile nicht mehr kopieren sondern Programm beenden (genauer: SIGINT senden).
    Aus dem Grund gibt es auch keinen Editor auf der Kommandozeile, der sich ähnlich wie ein Editor unter Windows oder ein normaler Linux-GUI-Editor verhält.

    2.) Alles ist total chaotisch unter Linux. Jeder kocht sein eigenes Süppchen. Das führt dazu, dass die Bedienung komplett inkonsistent ist und man alles drei mal einzeln konfigurieren muss. Ich sage nur GTK und QT.
    Oder ALSA / pulse-audio... Nicht mal sowas simples wie der Ton in VLC funktioniert beim aktuellen Debian gescheit out-of-the-box. Wenn die Apps bei Android ähnliche Probleme hätten...

    3.) Die Lokalisierung ist unter Linux unterirdisch (von Kommandozeilenprogrammen bis KDE/Gnome). Jahre alte Bugreports wegen falschen Übersetzungen werden ignoriert. Android ist dagegen richtig schön lokalisiert.
    Jetzt aber auch mal zu den ARM Laptops, welche an sich ja nicht wirklich etwas "neues" sind.
    Noch ein Link dazu: http://armdevices.net/category/laptops/.

    Der enorme Vorteil den ich darin sehe, ist vorallem das Energieersparnis im Vergleich zu den
    "normalen mobielen Prozessoren" bei gleicher Leistung.
    Zu dem lässt sich so eine noch dünnere Bauweise realisieren, längere Akkulaufzeiten (vorallem mit Linux)
    und andere Preisklassen werden wahrscheinlich.

    Warum vorallem mit Linux? Wenn ich z.B. mein 64Bit Windows System mit meinem 64Bit Linux System vergleiche
    fallen vorallem bei Windows zu viele und teils unnötige Hintergrundprozesse auf die a) auf die Leistung und
    b) auf die Akkulaufzeit gehen.

    Jetzt seit ihr gefragt, seht ihr es ähnlich das leistungsstärkere ARM Laptops den Markt doch
    noch in gewisser Form verbesern werden oder doch eher als Alternative zu dem was eh auf dem Markt ist?

    Es ist zwar davon auszuegen das der typische "Hauptsache-es-funktioniert-Nutzer" sich keine Gedanken
    machen wird da ja auch Windows auf ARM Prozessoren arbeitet.

    Ich bin gespannt auf eure Meinungen.

    MfG
    Ich denke, dass Torvalds Recht hat, dass die Chancen für Linux (den Kernel) hier gut stehen. Viele Leute machen nicht viel mehr als Internet und einfachstes Office. Ein gut gepflegtes Linux-basiertes Betriebssystem ähnlich wie Android oder ChromeOS hätte gute Chancen auf ARM-basierten Laptops zum Mainstream zu werden. Aber ein Linux-Kernel+GNU+Xorg+Gnome/KDE Betriebssystem ist zu schrecklich, und wird das auf absehbare Zeit auch bleiben, als dass sich der normale Nutzer das antun würde.

    Dazu haben wir noch das Linken-Verbot der GPL. Natürlich ist das rechtlich total fragwürdig: Was ist, wenn jemand die GPL-lizensierten Libraries und sein proprietäres Programm, das zu den GPL-lizensierten Libraries linkt, separat zum Download anbietet? Ist das schon verboten? Aber niemand will sich natürlich auf solche juristischen Experimente einlassen.

    Das Linken-Verbot gilt offiziell nicht für Systembestandteile, also u.a. den Linux-Kernel. Aber das Linken-Verbot wird bei einem Linux-Kernel+GNU+Xorg+Gnome/KDE Betriebssystem den Software-Herstelleren immer ärger machen, auch wenn viele Libraries unter LGPL stehen und Linken erlaubt. Bei einem Betriebssystem wie Android steht dagegen der ganze Rest außer dem Kernel sowieso unter einer freien nicht-Copyleft Lizenz ist also unproblematisch.

Login zum Webhosting ohne Werbung!