Beiträge von hal

    Zitat von Lord Binary

    Frage: Ist diese schwache Pseudo-Generizität besser als gar keine ???
    (Bin mir da nicht sicher)

    Solange man es nicht verwendet, ist es wenigstens nur genau so schlimm wie keine zu haben :)

    Wenn du in Java (bla)meinvektor.elementAt(4711) machst und das Objekt ist kein bla, dann bekommst du eine Exception. In C++ stürzt das Programm früher oder später komplett ab. dynamic_cast<> kann helfen, aber das verwenden C++-Programmierer nicht, nachdem das alle Vorteile von C++ übern Haufen wirft.

    In Objective C kommt der Dynamismus viel mehr durch. Dort ist es völlig egal, von welcher Klasse ein Objekt abgeleitet wurde, hauptsache es implementiert die Methoden, die man verwendet. Das geht in Java auch via Reflection, allerdings ist es dort etwas mühsamer zu verwenden.

    Naja, das passiert, wenn ein paar Tunnelblick-C++-Programmierer daherkommen und glauben, dass man in jeder Sprache Generizität haben muss, weil das in C++ ja auch absolut notwendig ist.
    (Und in C++ ist es wirklich so, dass man ohne Generizität nicht programmieren kann, ohne sehr abenteuerliche Casts zu machen, was in dynamischen Programmiersprachen wie Java oder Objective C kein Problem ist, nachdem der Typ dann sowieso zur Laufzeit kontrolliert wird.)

    Viele Router bieten auch die Option, automatisch die MAC-Adresse zu klonen, von der aus man die Erstkonfiguration vornimmt. Erspart viel Tipparbeit.

    Und auf keinen Fall bei Chello zugeben, dass man einen Router hat! Sie suchen nicht nach Routern im eigenen Netz, aber zu offensichtlich sollt man die AGB doch nicht verletzten!
    Man fragt auch keinen Polizeibeamten, wo ein günstiger Platz ist, um die Leiche im Kofferraum loszuwerden.

    Soweit ich weiß, ist das zwar der richtige Syntax, wird aber vom Treiber nicht unterstützt. Einfachste Lösung ist, den Rechner, der am Chello hängt, als Router zu verwenden.

    Rotationen in Matrixdarstellung sind sehr problematisch. Ich hab persönlich die Erfahrung gemacht, dass das ganze nicht viel Sinn macht, sobald man mal etwas mehr machen will als eine normale Rotation.
    Die einzige brauchbare Lösung ist die Darstellung als Quaternionen. Bei diesen wäre die Kombination von Rotationen auch einfach eine Multiplikation von den beiden. Außerdem umgehst du damit den gimbal lock, der sehr böse sein kann.

    Mehr theoretische Info dazu:
    http://en.wikipedia.org/wiki/Quaternion

    Zitat von laborg

    ich habe noch nie notebook nomaden kennengelernt, die jeden tag wo anders arbeiten (und unter diesen mir nicht bekannten notebook nomaden, waren noch weniger websitenentwickler.

    Ich versteh eh nicht die Fixierung auf portable Geräte. Die meisten Leute wären mit einem iMac wesentlich besser beraten.

    Zitat von laborg

    Mit meinem Macbook (ohne Pro) bin ich sehr zufrieden. Allerdings habe ich 2Gb Ram nachgerüstet. Solltest du nur Webentwickeln würde ich dir zu einem Macbook raten + einem externen Monitor, kommt billiger und ist gleich schnell...


    Aber nicht ganz so portabel.

    Zitat von phudy

    uff.... mit was für einer begründung?

    War ihnen damals wohl noch nicht so wichtig. Variablen sind sowieso alle private, und bei Methoden kann man in ObjC sowieso nicht gewährleisten, dass die Sichtbarkeiten korrekt behandelt wird, wie sollte zB ein [obj performSelector:@selector(privateMethod: ) withObject:bla] gewertet werden?
    ObjC ist als Preprocessor zu C entstanden, und in C wird der Aufrufer nicht mitgespeichert beim Funktionsaufruf, daher kann man solche Entscheidungen nur zur Compilezeit entscheiden, allerdings kann man in ObjC Methoden ja auf sehr verschiedenartige Weise aufrufen (direkt, via -performSelector:withObject: mit @selector oder NSSelectorFromString(), via IMP-Aufruf, NSInvocation, ...).

    Zitat von phudy

    meiner vorstellung nach, geht das ja durch argument-labels schon:

    Nein, genau das geht eben nicht... Probiers mal aus!

    Zitat

    apropos, methoden deklarieren, dieses zeichen davor bedeutet.... ?

    - ... private
    + ... public ?
    wie von uml-diagrammen, oder wie?

    Nein, - ist eine normale Instanzmethode, und + wird in C++ mit "static" deklariert, d.h. das sind Klassenmethoden.

    Sichtbarkeiten hat die Sprache nicht explizit, normalerweise werden Methoden, die nicht public sein sollen, einfach nicht im header deklariert (was keiner weiß kann auch keiner aufrufen).

    Zitat

    [edit]: NS steht lt wikipedia für NextStep.... was/wieviel hat sun da leicht mitgemischt?

    Tja, auch die Wikipedia enthält Fehlinformationen :) Ich hab meine Infos von ehemaligen NeXT-Mitarbeitern, die werdens wohl wissen denk ich mir...

    Sun hat Objective C mitentwickelt. Java (als Programmiersprache) ist nichts anderes als Objective C so umgestaltet, dass es C++-Programmierern nicht zu fremd vorkommt.

    [edit2]: bzgl "was an key-value-coding eigentlich so tolles dran ist": http://theocacao.com/document.page/161 (hab ich mich schon öfters gefragt, hier die antwort)[/QUOTE]

    Da wird leider KeyValue-Observing nicht erwähnt, was die Geschichte erst wirklich interessant macht. Vor allem weil das alles in Kombination mit KeyValue-Coding völlig automatisch geht.

    Zitat von phudy

    endlich is jemand draufkommen dass die reihenfolge der parameter nicht in einer vorgegebener stattfinden muss/sollte und hat das auch umgesetzt

    Naja, das geht in Objective C leider nicht. Die Parameter unterbrechen einfach den Methodennamen an gewissen Stellen. Wenn du so etwas willst, brauchst du ein NSDictionary als Parameter.

    Zitat

    ps: woher eigentlich das prefix NS?

    NeXT/SUN, die Entwickler von Cocoa.