Γιατί είναι η τεκμηρίωση PyObjC τόσο κακό;




Για παράδειγμα, <http://developer.apple.com/cocoa/pyobjc.html> εξακολουθεί να είναι για το OS X 10.4 Tiger, δεν 10.5 Leopard .. Και αυτή είναι η επίσημη τεκμηρίωση της Apple για αυτό ..


Η επίσημη σελίδα PyObjC είναι εξίσου κακό, <http://pyobjc.sourceforge.net/>


Είναι τόσο κακό αυτό είναι μπλέκοντας .. Σκέφτομαι μάθηση Ruby κυρίως επειδή η ουσία RubyCocoa είναι τόσο πολύ καλύτερα τεκμηριωμένες, και υπάρχουν πολλά αξιοπρεπή tutorials ( <http://www.rubycocoa.com/> για παράδειγμα), και λόγω των Παπούτσια GUI toolkit ..


Ακόμη και [αυτό το άσχημα-auto-μεταφραστεί ιαπωνική φροντιστήριο](http://66.163.168.225/babelfish/translate_url_content?lp=ja_en&url=http%3A%2F%2Fblog.monospace.jp%2F2007%2F11%2F05%2Fxcode3_cocoa_python%2F&fr=avbbf-us&.intl=us) είναι πιο χρήσιμο από ό, τι στην υπόλοιπη τεκμηρίωση θα μπορούσα να βρω ..


Το μόνο που θέλω να κάνω είναι να δημιουργήσει αρκετά απλές εφαρμογές Python με το κακάο GUI του ..   

Μπορεί κανείς να ρίξει φως στο φρικτό έγγραφα ή σημείο μου σε μερικά σεμινάρια που όχι μόνο θα δώσει τεράστια μπλοκ του κώδικα και να αναλάβουν ξέρετε τι `NSThread.detachNewThreadSelector_toTarget_withObject_(queryController, self, None)`κάνει .. ;
Συμφωνώ ότι το φροντιστήριο είναι εσφαλμένη, ρίχνει τυχαία, ανεξήγητη κώδικα ακριβώς μπροστά από τα μάτια σας. Εισάγει έννοιες όπως το απόθεμα αυτόματης και προεπιλογές του χρήστη χωρίς να εξηγήσει γιατί θα τους θέλουν ( «αυτόματης κυκλοφορίας στην πισίνα για τη διαχείριση της μνήμης» δεν είναι καθόλου μια εξήγηση).


Εχοντας πεί αυτό…



> 
> Βασικά το μόνο που θέλω να κάνετε είναι να γράψετε εφαρμογές για το κακάο, χωρίς να χρειάζεται να μάθουν ObjC.
> 
> 
> 


Φοβάμαι ότι προς το παρόν, που *θα* χρειαστείτε μια βασική κατανόηση της ObjC, προκειμένου να επωφεληθεί από οποιαδήποτε γλώσσα που χρησιμοποιεί το κακάο. PyObjC, RubyCocoa, Nu και άλλοι είναι κόγχες, στην καλύτερη περίπτωση, και όλοι τους είχαν αναπτυχθεί από ανθρώπους στενά εξοικειωμένοι με το INS και outs της ObjC *και* κακάο.


Προς το παρόν, θα ωφεληθεί περισσότερο αν δείτε ρεαλιστικά αυτές τις γέφυρες ως χρήσιμο όταν γλώσσες προγραμματισμού πραγματικά λάμπει, αντί να προσπαθεί να χτίσει μια ολόκληρη εφαρμογή τους. Αν και αυτό *έχει* γίνει (με LimeChat, είμαι χρησιμοποιώντας ένα RubyCocoa-γραπτή app τώρα), είναι σπάνια και κατά πάσα πιθανότητα θα είναι για λίγο.
[εικόνα] petrosmpam:

πιθανολογώ οτι φταίει το nemo άρα.

τώρα που το λες έχω ξανακούσει παλιότερα για προβλήματα στις αντιγραφές με τον nemo (δεν είχα εγώ τέτοια για τον απλό λόγο ότι δεν χρησιμοποιώ mint/cinnamon/nemo). αν υπάρχει τέτοιο bug η κοινότητα τού mint/cinnamon θα έπρεπε να το έχει … εντάξει, όλα καλά. το θέμα λύθηκε. η απορία όμως έμεινε.

**τι έκανα:text

άλλαξα τα repos σε testing. αυταααα… ευχαριστώ όλους για την συμπαράσταση!! ευχαριστώ και το [linux-user.gr](http://linux-user.gr) γιατί υπάρχει. Κάνατε πολύ καλή δουλειά στο να συνοψίσετε τι είναι φοβερό στο Node.js. Η αίσθησή μου είναι ότι το Node.js είναι ιδιαίτερα κατάλληλο για εφαρμογές όπου θα θέλατε να διατηρήσετε μια μόνιμη σύνδεση από το πρόγραμμα περιήγησης πίσω στον διακομιστή. Χρησιμοποιώντας μια τεχνική γνωστή ως ["long-polling"](https://en.wikipedia.org/wiki/Push_technology#Long_polling), μπορείτε να γράψετε μια εφαρμογή που στέλνει ενημερώσεις στον χρήστη σε πραγματικό χρόνο. Η πραγματοποίηση long polling σε πολλούς από τους γίγαντες του διαδικτύου, όπως το [Ruby on Rails](https://en.wikipedia.org/wiki/Ruby_on_Rails) ή το [Django](https://en.wikipedia.org/wiki/Django_%28web_framework%29), θα δημιουργούσε τεράστιο φόρτο στον διακομιστή, επειδή κάθε ενεργός πελάτης τρώει μια διεργασία του διακομιστή. Αυτή η κατάσταση ισοδυναμεί με επίθεση [tarpit](https://en.wikipedia.org/wiki/Tarpit_(networking)). Όταν χρησιμοποιείτε κάτι όπως το Node.js, ο διακομιστής δεν έχει ανάγκη να διατηρεί ξεχωριστά νήματα για κάθε ανοιχτή σύνδεση. 


Αυτό σημαίνει ότι μπορείτε να δημιουργήσετε μια [εφαρμογή συνομιλίας με βάση το πρόγραμμα περιήγησης](https://github.com/rivalslayer/node_chat) σε Node.js που δεν χρειάζεται σχεδόν καθόλου πόρους συστήματος για να εξυπηρετεί πολλούς πελάτες. Κάθε φορά που θέλετε να κάνετε αυτού του είδους τη μακροχρόνια αναζήτηση, το Node.js είναι μια εξαιρετική επιλογή. 


Αξίζει να αναφέρουμε ότι και η Ruby και η Python έχουν εργαλεία για να κάνουν κάτι τέτοιο ([eventmachine](http://rubyeventmachine.com/) και [twisted](https://twistedmatrix.com/trac/), αντίστοιχα), αλλά ότι το Node.js το κάνει εξαιρετικά καλά, και από την αρχή. Η JavaScript είναι εξαιρετικά καλά τοποθετημένη σε ένα μοντέλο ταυτόχρονης λειτουργίας βασισμένο σε callback, και υπερέχει εδώ. Επίσης, η δυνατότητα σειριοποίησης και αποσειριοποίησης με JSON εγγενές τόσο στον πελάτη όσο και στον διακομιστή είναι αρκετά έξυπνη.


Ανυπομονώ να διαβάσω άλλες απαντήσεις εδώ, αυτή είναι μια φανταστική ερώτηση.


Αξίζει να επισημάνουμε ότι το Node.js είναι επίσης εξαιρετικό για καταστάσεις στις οποίες θα επαναχρησιμοποιήσετε πολύ κώδικα σε όλο το χάσμα πελάτη/εξυπηρετητή. Το [Meteor framework](https://meteor.com) το κάνει αυτό πολύ εύκολο, και πολλοί άνθρωποι προτείνουν ότι αυτό μπορεί να είναι το μέλλον της ανάπτυξης ιστοσελίδων. Μπορώ να πω από την εμπειρία μου ότι είναι πολύ διασκεδαστικό να γράφεις κώδικα στο Meteor, και ένα μεγάλο μέρος αυτού είναι να ξοδεύεις λιγότερο χρόνο σκεπτόμενος πώς θα αναδομήσεις τα δεδομένα σου, ώστε ο κώδικας που εκτελείται στο πρόγραμμα περιήγησης να μπορεί εύκολα να τα χειριστεί και να τα μεταβιβάσει πίσω.


Εδώ είναι ένα άρθρο για το Pyramid και το long-polling, το οποίο αποδεικνύεται ότι είναι πολύ εύκολο να ρυθμιστεί με λίγη βοήθεια από το gevent: [*TicTacToe και Long Polling με την Pyramid*](http://michael.merickel.org/2011/6/21/tictactoe-and-long-polling-with-pyramid/). τελικά έβαλα την έκδοση 5.2.36 η οποία λειτουργεί μια χαρά! Έχεις κάνει το τεστ από το λινκγομάγαζο να δεις το σκορ σου; Το τεστ εξετάζει σε όλο το δέντρο μαζί.


Δες τις απαντήσεις μου για το τι να κάνεις αφού έχεις τελειώσει όλα τα μαθήματα [εδώ](https://www.duolingo.com/comment/13395575). [@stergios](/u/stergios) καλοσωρισες στην παρεα μας.

μπορεις να δοκιμασεις καποια αλλη ιστοσελιδα πχ το <https://vimeo.com> ή το [ted talks](https://www.ted.com/talks)

ο λογος γιατι προτεινω διαφορετικες ιστοσελιδες ειναι για να δω αν ειναι θεμα του browser ή αν ειναι θεμα καποιου codec που μπορει να λοιπει απο το συστημα σου.

παραλληλα ανοι… κάτι έχει γίνει λάθος στην περίπτωσης σου διότι αυτή η μετάφραση χρησιμοποιείται σε αρκετές επαγγελματικές εγκαταστάσεις εταιρειών (με εξαίρεση κάποιες περιπτώσεις που είναι custom μεταφράσεις εξειδίκευσης π.χ. ιατρεία, οδοντιατρεία, δικηγορικά γραφεία και δεν είναι online) Η προφορά στα μαθήματα είναι αμερικανική. Η αλήθεια είναι ότι για τις διάφορες γλώσσες του Duolingo όπου οι ηχογραφήσεις είναι τεχνητές, από λογισμικό και όχι από άνθρωπο, δεν είναι πάντα και οι καλύτερες. Παρ' όλα αυτά οι εκφωνήσεις της αγγλικής φωνής είναι ακριβείς και ως επί το πλείστον ακούγονται φυσιολογικές, όπως όταν μιλάς με κάποιον που έχει τα αγγλικά ως μητρική του γλώσσα. Αυτό μάλλον κάνει τα πράγματα δύσκολα, γιατί οι δάσκαλοι συνήθως ευκολοποιούν τα πράγματα για τους αρχάριους μαθητές.


Προσωπικά, για την προφορά ολόκληρων φράσεων, χρησιμοποιώ επίσης το παρακάτω site: [www.acapela-group.com](http://www.acapela-group.com) Έχει πραγματικές και τεχνητές φωνές, με διαφορετικές προφορές, και εκεί φαίνεται καλύτερα πώς ακούγονται οι λέξεις στην κανονική ομιλία, κάτι που ένα λεξικό δεν μπορεί να αποδώσει.


Επίσης, μία μικρή παρατήρηση: γενικά οι αναρτήσεις με κεφαλαία στο ίντερνετ θεωρούνται το αντίστοιχο του "βάζω τις φωνές", κατά συνέπεια μία μίξη πεζών και κεφαλαίων μπορεί να αποφύγει πιθανές παρεξηγήσεις. :) <p>απλά χρησιμοποιήστε <a href="http://ruby-doc.org/core-1.9.3/array.html#method-i-sample"><code>array#sample</code></a> :</p><pre><code>[:foo, :bar].sample # =&gt; :foo, or :bar :-) </code></pre><p>διατίθεται σε ruby 1.9.1+. για να μπορέσετε να το χρησιμοποιήσετε με μια προηγούμενη έκδοση του ruby, θα μπορούσατε <a href="https://github.com/marcandre/backports"><code>require "backports/1.9.1/array/sample"</code></a> .</p><p>σημειώστε ότι στο ruby 1.8.7 υπάρχει κάτω από το ατυχές όνομα <code>choice</code>; μετονομάστηκε σε μεταγενέστερη έκδοση, επομένως δεν πρέπει να το χρησιμοποιήσετε.</p><p>παρόλο που δεν είναι χρήσιμη σε αυτή την περίπτωση, το <code>sample</code> δέχεται ένα όρισμα αριθμού σε περίπτωση που θέλετε μια σειρά διακριτών δειγμάτων.</p> Αυτή είναι η γνώμη μου, αλλά? όπως ακριβώς και οι τάξεις περίπτωση δεν, θα ήθελα να εφαρμόσουν μια `copy`μέθοδο του είδους στην τάξη για να καταστεί δυνατή η τροποποίηση, διατηρώντας παράλληλα το αμετάβλητο, αλλά υπάρχει ορισμένες περιπτώσεις που δεν μπορώ να βοηθήσω να το μεταβλητό? Για παράδειγμα, όταν κάτι αναμένεται να γίνει η λειτουργία αντιγραφής είναι πολύ μεγάλη και αργή για την κατηγορία? όπως όταν η τάξη έχει τόσα πολλά συχνά τροποποιημένο μέλη. Και μην ανησυχείτε για χιλιάδες περιπτώσεις που επιπλέουν γύρω στη μνήμη, επειδή είναι αυτόματα GC'ed, οπότε το πιο πραγματικό πρόβλημα είναι ο χρόνος κόστος της αντιγραφής περιπτώσεις της κλάσης. Παρακαλώ πείτε μου εάν η γνώμη μου είναι κάπως λάθος :)