πώς να προφέρει divergence;
di-ver-gence
<p>δεν περιγράφετε κλίμακα για να ταιριάζει. περιγράφεις την εμφάνιση. (έχω επεξεργαστεί την ερώτησή σας σε αυτό το θέμα.) η υποβολή γίνεται όσο το δυνατόν μεγαλύτερη, διατηρώντας παράλληλα την αναλογία της και προσαρμόζοντας εξ ολοκλήρου μέσα στον γονέα της.</p><p>τέλος πάντων, μπορείτε να το κάνετε αυτό με αυτόματη διάταξη. μπορείτε να το κάνετε εξ ολοκλήρου στο ib από xcode 5.1. ας ξεκινήσουμε με μερικές προβολές:</p><p><img src="https://i.stack.imgur.com/hhdxr.png" alt="some views"></p><p>η ανοιχτή πράσινη όψη έχει αναλογία διαστάσεων 4: 1. η σκούρα πράσινη προβολή έχει αναλογία διαστάσεων 1: 4. πρόκειται να δημιουργήσω περιορισμούς έτσι ώστε η μπλε όψη να γεμίζει το πάνω μισό της οθόνης, η ροζ όψη να γεμίζει το κάτω μισό της οθόνης και κάθε πράσινη προβολή να επεκτείνεται όσο το δυνατόν περισσότερο, διατηρώντας παράλληλα τον λόγο διαστάσεων και προσαρμόζοντας την δοχείο.</p><p>κατ 'αρχάς, θα δημιουργήσω περιορισμούς και στις τέσσερις πλευρές της μπλε όψης. θα το περάσω στον κοντινότερο γείτονα σε κάθε άκρη, με απόσταση 0. φροντίζω να απενεργοποιήσω τα περιθώρια:</p><p><img src="https://i.stack.imgur.com/yo2jf.gif" alt="blue constraints"></p><p>σημειώστε ότι το i <strong> δεν ενημερώνει </strong> το πλαίσιο ακόμα. θεωρώ ότι είναι ευκολότερο να αφήνετε χώρο μεταξύ των απόψεων κατά τη δημιουργία περιορισμών και απλά να ορίσετε τις σταθερές στο 0 (ή οτιδήποτε άλλο) με το χέρι.</p><p>στη συνέχεια, κλίνω το αριστερό, το κάτω και το δεξί άκρο της ροζ εικόνας στον πλησιέστερο γείτονά της. δεν χρειάζεται να ρυθμίσω έναν ανώτατο περιορισμό edge επειδή η άνω άκρη του είναι ήδη περιορισμένη στο κάτω άκρο της μπλε όψης.</p><p><img src="https://i.stack.imgur.com/spins.gif" alt="pink constraints"></p><p>χρειάζομαι επίσης έναν περιορισμό ισοδύναμων μεταξύ των ροζ και μπλε απόψεων. αυτό θα τους κάνει να γεμίσουν το ήμισυ της οθόνης:</p><p><img src="https://i.stack.imgur.com/oelrv.gif" alt="enter image description here"></p><p>αν λέω στο xcode να ενημερώσει όλα τα πλαίσια τώρα, έχω αυτό:</p><p><img src="https://i.stack.imgur.com/9fbwl.png" alt="containers laid out"></p><p>έτσι, οι περιορισμοί που έχω δημιουργήσει μέχρι τώρα είναι σωστοί. ανεξάρτητα από αυτό και να αρχίσετε να εργάζεστε με την ανοιχτό πράσινη όψη.</p><p>η τοποθέτηση σε πτυχές της ανοιχτής πράσινης προβολής απαιτεί πέντε περιορισμούς:</p><ul> <li>απαιτούμενος λόγος αναλογίας διαστάσεων προτεραιότητας στην ανοιχτό πράσινη όψη. μπορείτε να δημιουργήσετε αυτόν τον περιορισμό σε xib ή storyboard με xcode 5.1 ή νεότερη έκδοση.</li> <li>ο περιορισμός της απαιτούμενης προτεραιότητας που περιορίζει το πλάτος της ανοιχτό πράσινης όψης να είναι μικρότερο ή ίσο με το πλάτος του δοχείου.</li> <li>ένας περιορισμός υψηλής προτεραιότητας που καθορίζει το πλάτος της ανοιχτής πράσινης όψης να είναι ίσο με το πλάτος του δοχείου.</li> <li>ο περιορισμός της απαιτούμενης προτεραιότητας που περιορίζει το ύψος της ανοιχτής πράσινης όψης να είναι μικρότερο ή ίσο με το ύψος του δοχείου.</li> <li>ένας περιορισμός υψηλής προτεραιότητας που θέτει το ύψος της ανοιχτής πράσινης όψης να είναι ίσο με το ύψος του δοχείου.</li> </ul><p>ας εξετάσουμε τους δύο περιορισμούς πλάτους. ο περιορισμός που δεν είναι ο ίδιος, είναι επαρκής για να καθορίσει το πλάτος της ανοιχτής πράσινης όψης. πολλά πλάτη θα ταιριάζουν με τον περιορισμό. δεδομένου ότι υπάρχει ασάφεια, το autolayout θα προσπαθήσει να επιλέξει μια λύση που ελαχιστοποιεί το σφάλμα στον άλλο περιορισμό (υψηλής προτεραιότητας αλλά όχι υποχρεωτικό). η ελαχιστοποίηση του σφάλματος σημαίνει ότι το πλάτος είναι όσο το δυνατόν πλησιέστερο στο πλάτος του κιβωτίου, ενώ δεν παραβιάζεται ο απαιτούμενος περιορισμός που δεν είναι μικρός ή ίσος.</p><p>το ίδιο συμβαίνει και με τον περιορισμό του ύψους. και επειδή απαιτείται επίσης ο περιορισμός της αναλογίας πλευρών, μπορεί να μεγιστοποιηθεί το μέγεθος του υποβιβασμού κατά μήκος ενός άξονα (εκτός αν ο περιέκτης έχει την ίδια αναλογία διαστάσεων με την υποέκθεση).</p><p>έτσι πρώτα δημιουργώ τον περιορισμό της αναλογίας διαστάσεων:</p><p><img src="https://i.stack.imgur.com/4ihow.gif" alt="top aspect"></p><p>στη συνέχεια, δημιουργώ ίσους περιορισμούς πλάτους και ύψους με το δοχείο:</p><p><img src="https://i.stack.imgur.com/vycag.gif" alt="top equal size"></p><p>πρέπει να επεξεργαστώ αυτούς τους περιορισμούς ώστε να είναι λιγότερο από-ή-ίσους περιορισμούς:</p><p><img src="https://i.stack.imgur.com/bc7rh.gif" alt="top less than or equal size"></p><p>στη συνέχεια πρέπει να δημιουργήσω ένα άλλο σύνολο ίσων περιορισμών πλάτους και ύψους με το δοχείο:</p><p><img src="https://i.stack.imgur.com/u9hkm.gif" alt="top equal size again"></p><p>και πρέπει να θέσω τους νέους αυτούς περιορισμούς λιγότερο από την απαιτούμενη προτεραιότητα:</p><p><img src="https://i.stack.imgur.com/i7dte.gif" alt="top equal not required"></p><p>τελικά, ζητήσατε να είναι κεντραρισμένο το υποπεριοχή στο δοχείο του, οπότε θα ρυθμίσω αυτούς τους περιορισμούς:</p><p><img src="https://i.stack.imgur.com/4dtr1.gif" alt="top centered"></p><p>τώρα, για να δοκιμάσετε, θα επιλέξω τον ελεγκτή προβολής και θα ζητήσω από το xcode να ενημερώσει όλα τα πλαίσια. αυτό έχω:</p><p><img src="https://i.stack.imgur.com/kmtoy.png" alt="incorrect top layout"></p><p>ωχ! το subview έχει επεκταθεί για να γεμίσει πλήρως το δοχείο του. αν το επιλέξω, μπορώ να δω ότι στην πραγματικότητα διατηρείται η αναλογία του, αλλά κάνει μια πτυχή - <strong> συμπληρώστε </strong> αντί για μια πτυχή - <strong> ταιριάζει </strong>.</p><p>το πρόβλημα είναι ότι σε έναν λιγότερο από ή ίσο περιορισμό, έχει σημασία ποια είναι η άποψη σε κάθε άκρο του περιορισμού, και το xcode έχει δημιουργήσει τον περιορισμό απέναντι από την προσδοκία μου. θα μπορούσα να επιλέξω καθέναν από τους δύο περιορισμούς και να αντιστρέψω το πρώτο και δεύτερο στοιχείο. αντ 'αυτού, θα επιλέξω μόνο το subview και θα αλλάξω τους περιορισμούς ώστε να είναι μεγαλύτερο από-ή-ίσο:</p><p><img src="https://i.stack.imgur.com/mh4xm.gif" alt="fix top constraints"></p><p>το xcode ενημερώνει τη διάταξη:</p><p><img src="https://i.stack.imgur.com/srvqg.png" alt="correct top layout"></p><p>τώρα κάνω όλα τα ίδια πράγματα με τη σκούρα πράσινη θέα στο κάτω μέρος. πρέπει να σιγουρευτώ ότι η αναλογία πλευρών είναι 1: 4 (το xcode το μείωσε με περίεργο τρόπο αφού δεν είχε περιορισμούς). δεν θα δείξω τα βήματα ξανά, αφού είναι τα ίδια. εδώ είναι το αποτέλεσμα:</p><p><img src="https://i.stack.imgur.com/kdj1r.png" alt="correct top and bottom layout"></p><p>τώρα μπορώ να το εκτελέσω στον προσομοιωτή iphone 4s, ο οποίος έχει διαφορετικό μέγεθος οθόνης από τον ib που χρησιμοποιείται και δοκιμή περιστροφής:</p><p><img src="https://i.stack.imgur.com/hpa6w.gif" alt="iphone 4s test"></p><p>και μπορώ να δοκιμάσω στο iphone 6 προσομοιωτή:</p><p><img src="https://i.stack.imgur.com/otbq9.gif" alt="iphone 6 test"></p><p>έχω ανεβάσει τον τελικό πίνακα ιστορικού μου στο <a href="https://gist.github.com/mayoff/d9320088ab4025c95e40">αυτό το gist</a> για την ευκολία σας.</p> Η προφορά στα μαθήματα είναι αμερικανική. Η αλήθεια είναι ότι για τις διάφορες γλώσσες του Duolingo όπου οι ηχογραφήσεις είναι τεχνητές, από λογισμικό και όχι από άνθρωπο, δεν είναι πάντα και οι καλύτερες. Παρ' όλα αυτά οι εκφωνήσεις της αγγλικής φωνής είναι ακριβείς και ως επί το πλείστον ακούγονται φυσιολογικές, όπως όταν μιλάς με κάποιον που έχει τα αγγλικά ως μητρική του γλώσσα. Αυτό μάλλον κάνει τα πράγματα δύσκολα, γιατί οι δάσκαλοι συνήθως ευκολοποιούν τα πράγματα για τους αρχάριους μαθητές.


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


Επίσης, μία μικρή παρατήρηση: γενικά οι αναρτήσεις με κεφαλαία στο ίντερνετ θεωρούνται το αντίστοιχο του "βάζω τις φωνές", κατά συνέπεια μία μίξη πεζών και κεφαλαίων μπορεί να αποφύγει πιθανές παρεξηγήσεις. :) [Αυτή η ιστοσελίδα](http://people.richland.edu/james/lecture/m170/ch13-2wy.html) μπορεί να σας βοηθήσει λίγο περισσότερο. Επίσης [αυτό](http://www.unesco.org/webworld/idams/advguide/Chapt4_3.htm) .


Δουλεύω από μια αρκετά σκουριασμένο μνήμη ενός μάθημα της στατιστικής, αλλά εδώ πηγαίνει τίποτα:


Όταν κάνεις ανάλυση διακύμανσης (ANOVA), μπορείτε πραγματικά να υπολογίσετε το στατιστικό F ως ο λόγος των μέσων τετραγώνων αποκλίσεις «μεταξύ των ομάδων» και των μέσων τετραγωνικών αποκλίσεις «εντός των ομάδων». πάνω από το δεύτερο link φαίνεται αρκετά καλό για τον υπολογισμό αυτό.


Το γεγονός αυτό καθιστά την F στατιστική μέτρο ακριβώς πόσο ισχυρό το μοντέλο σας είναι, επειδή η διακύμανση «μεταξύ των ομάδων» είναι επεξηγηματική δύναμη, και «εντός των ομάδων» διακύμανσης είναι τυχαίο σφάλμα. Υψηλή F συνεπάγεται μια πολύ σημαντική μοντέλο.


Όπως και σε πολλές στατιστικές εργασίες, που πίσω καθοριστεί Sig. χρησιμοποιώντας την F στατιστική. Εδώ είναι όπου οι πληροφορίες σας Wikipedia έρχεται σε λίγο βολικό. Τι θέλετε να κάνετε είναι - χρησιμοποιώντας τους βαθμούς ελευθερίας που σας έχει δοθεί από το SPSS - βρείτε τη σωστή τιμή P στο οποίο ένα [πίνακα ΣΤ](http://www.ento.vt.edu/~sharov/PopEcol/tables/f005.html) θα σας δώσει την F στατιστική που υπολογίζεται. Η τιμή Ρ όταν αυτό συμβαίνει [F (πίνακας) = F (υπολογισμένο)] είναι η σημασία.


Εννοιολογικά, η χαμηλότερη τιμή σημασίας δείχνει μια πολύ ισχυρή ικανότητα να απορρίψουμε την μηδενική υπόθεση (η οποία για τους σκοπούς αυτούς σημαίνει να προσδιορίσει το μοντέλο σας έχει επεξηγηματική δύναμη).


Συγγνώμη για τυχόν παιδιά τα μαθηματικά, εάν κάποιο από αυτό είναι λάθος. Θα πρέπει να τον έλεγχο πίσω για να κάνετε αλλαγές !!!


Καλή σου τύχη. Στατιστικά είναι διασκέδαση, απλά ίσως όχι αυτό το μέρος. =) Η καλύτερη εξήγηση που έχω δει είναι στο κεφάλαιο 7 των ελεύθερων [Ιδρύματα Προγραμματισμού e-book](http://codebetter.com/karlseguin/2008/06/25/foundations-of-programming-ebook/) .


Βασικά, σε **ΝΕΤ** παρουσιάζεται διαρροή μνήμης όταν τα αντικείμενα αναφοράς τις ρίζες και έτσι δεν μπορεί να σκουπίδια συλλέγονται. Αυτό συμβαίνει κατά λάθος, όταν κρατάτε για τις αναφορές πέρα από το σκοπούμενο πεδίο εφαρμογής.


Θα γνωρίζετε ότι έχετε διαρροές όταν ξεκινάτε να πάρει OutOfMemoryExceptions ή τη χρήση της μνήμης σας ανεβαίνει πέρα από αυτό που θα περίμενε κανείς ( **PerfMon** έχει ωραία μετρητές μνήμης).


Κατανόηση **ΝΕΤ** μοντέλο μνήμης «s είναι ο καλύτερος τρόπος για σας να αποφευχθεί αυτό. Συγκεκριμένα, την κατανόηση του πώς λειτουργεί ο συλλέκτης σκουπιδιών και πώς αναφορές λειτουργούν - και πάλι, σας παραπέμπω στο κεφάλαιο 7 του e-book. Επίσης, να λαμβάνει υπόψη της τις κοινές παγίδες, ίσως τα πιο κοινά είναι τα γεγονότα. Εάν το αντικείμενο **Α** έχει καταχωρηθεί σε μια εκδήλωση στο αντικείμενο **Β** , τότε αντιρρήσεις **Α** θα μείνω μέχρι το αντικείμενο **Β** εξαφανιστεί λόγω **B** κατέχει αναφορά στο **Α** . Η λύση είναι να καταργήσετε τις εκδηλώσεις σας, όταν τελειώσετε.


Φυσικά, ένα καλό προφίλ μνήμης θα σας αφήσει να δείτε το αντικείμενο γραφήματα σας και να εξερευνήσετε το φώλιασμα / αναφορά των αντικειμένων σας για να δείτε πού είναι οι αναφορές προέρχονται από και ποια ρίζα αντικείμενο είναι υπεύθυνος ( [προφίλ μυρμήγκια κόκκινο-πύλη](http://www.red-gate.com/products/ants_memory_profiler/index.htm) , JetBrains dotMemory, [memprofiler](http://memprofiler.com/) είναι πραγματικά καλό επιλογές, ή μπορείτε να χρησιμοποιήσετε το κείμενο-μόνο **WinDbg** και **SOS** , αλλά θα ήθελα να συνιστούμε ένα εμπορικό / οπτική του προϊόντος, εκτός αν είστε ένας πραγματικός γκουρού).


Πιστεύω μη διαχειριζόμενο κώδικα υπόκειται σε τυπικό διαρροές μνήμης, εκτός από το ότι μοιράζονται τις αναφορές που διαχειρίζεται τον συλλέκτη σκουπιδιών. Μπορεί να κάνω λάθος σχετικά με αυτό το τελευταίο σημείο. Σφάλματα που είναι δύσκολο να αναπαραχθούν είναι το πιο δύσκολο να επιλυθεί. Τι θα πρέπει να βεβαιωθείτε ότι έχετε βρει τη ρίζα του προβλήματος, ακόμα και εάν το πρόβλημα δεν μπορεί να αναπαραχθεί με επιτυχία.


Οι πιο κοινές διαλείπουσα σφάλματα που προκαλούνται από τη φυλή, τις συνθήκες - με την εξάλειψη του αγώνα, ή τη διασφάλιση ότι η μία πλευρά κερδίζει πάντα θα έχουν εξαλείψει τη ρίζα του προβλήματος, ακόμη και αν δεν μπορείτε να το επιβεβαιώσετε με επιτυχία τη δοκιμή των αποτελεσμάτων. Το μόνο πράγμα που μπορείτε να δοκιμάσετε είναι ότι η αιτία δεν πρέπει να επαναληφθεί.


Μερικές φορές, για τον καθορισμό αυτό που θεωρείται ως η ρίζα λύνει πράγματι ένα πρόβλημα, αλλά δεν είναι το σωστό - δεν υπάρχει αυτό αποφεύγεται. Ο καλύτερος τρόπος για να αποφευχθεί η διαλείπουσα σφάλματα είναι να είστε προσεκτικοί και μεθοδικοί με το σχεδιασμό του συστήματος και την αρχιτεκτονική. [Κόκκινο-μαύρο](http://en.wikipedia.org/wiki/Red-black_tree) είναι καλύτερο από το AVL για την εισαγωγή-βαριές εφαρμογές. Αν έχετε προβλέψει σχετικά ομοιόμορφη εμφάνιση-up, στη συνέχεια, κόκκινο-μαύρο είναι ο τρόπος να πάει. Αν έχετε προβλέψει μια σχετικά ισορροπημένη ματιά-up, όπου θεωρείται πιο πρόσφατα στοιχεία είναι πιο πιθανό να είναι ορατό και πάλι, θέλετε να χρησιμοποιήσετε [τα δέντρα άτεχνος](http://en.wikipedia.org/wiki/Splay_tree) . Eric νεροχύτη έχει μια [εξαιρετική σειρά](http://www.ericsink.com/scm/source_control.html) για τον έλεγχο του πηγαίου κώδικα απευθύνονται σε αρχάριους. Για λεπτομέρειες Subversion, συμπεριλαμβανομένης της καθιέρωσης και της διαχείρισης ενός διακομιστή, το [βιβλίο Subversion](http://svnbook.red-bean.com/) είναι μια μεγάλη πηγή, και περιλαμβάνει ένα τμήμα με παραδείγματα από μια τυπική συνεδρία με το Subversion (checkout, διαπράττουν, συγχώνευση και βασικά ενημέρωση).


**Ενημέρωση:** Ξέχασα να αναφέρω ότι για αρχάριους, θα ήθελα επίσης να συστήσει Messing περίπου σε ένα γραφικό πελάτη, η οποία αφαιρεί την παρενόχληση της γραμμής εντολών από την εμπειρία εκμάθησης. [RapidSVN](http://rapidsvn.tigris.org/) είναι μια λογική πελάτη cross-platform. Θα βρείτε επίσης ότι κοινή IDEs είτε έρχονται με την υποστήριξη Subversion, ή έχουν plugins που μπορούν να εγκατασταθούν, οι οποίες επιτρέπουν περισσότερες λειτουργίες ελέγχου έκδοση που πρέπει να εκτελεστούν μέσα σε αυτό το περιβάλλον.


**@John Millikin:** Ενώ η δημιουργία ενός διακομιστή Subversion μπορεί να είναι περίπλοκη, ανάλογα με τη γενική εμπειρία κάποιου διαχειριστή, μην ξεχνάτε ότι δεν χρειάζεται να το κάνουμε αυτό ακριβώς να χάνω την ώρα μου με ένα αποθετήριο και να ασχοληθούμε με τα βασικά - το πελάτης μπορεί να αλληλεπιδράσει με ένα αποθετήριο στο τοπικό σύστημα αρχείων. Εύκολο μου click-by-click οδηγίες ( **ειδικά για TortoiseSVN** ) είναι Stack λόγω υπερχείλισης *[Ποιος είναι ο απλούστερος τρόπος για να γίνει διακλάδωση και συγχώνευση με τη χρήση TortoiseSVN;](https://stackoverflow.com/questions/1461922)* . Χρησιμοποιούμε [MbUnit](http://www.mbunit.com/) και [Rihno χλευάζει](http://www.ayende.com/Blog/archive/2007/03/28/Rhino-Mocks-3.0-Released.aspx) και να αποδειχθεί ότι λειτουργεί πολύ καλά μαζί. Όταν κάνετε TDD θα πρέπει σχεδόν σίγουρα να κάνετε κάποια μορφή ένεσης εξάρτησης, ενώ αυτό μπορεί να γίνει με το χέρι, την αξία του κοιτάζοντας ένα δοχείο ΔΟΕ, όπως [το Κάστρο του Windsor](http://www.castleproject.org/projects/windsor/) .


Είναι καλά αξίζει κοιτάζοντας την οθόνη του Ιωάννη Παύλου Bodhood του ρίχνει για να ξεκινήσετε. [Blog JPB του](http://www.jpboodhoo.com/) Όχι, αυτό που κάνετε είναι μια χαρά. Μην αφήσετε αυτούς τους ανθρώπους να σας μπερδέψει.


Εάν έχετε γράψει τις διαδικτυακές υπηρεσίες με .net, στη συνέχεια, τα πληρεξούσια αναφοράς που παράγεται από .net πρόκειται να είναι αρκετά κατάλληλο. Η κατάσταση που περιγράφει (όπου θα είναι και παραγωγός και καταναλωτής) είναι η ιδανική κατάσταση.


Αν χρειαστεί να συνδεθείτε σε υπηρεσίες web που είναι *άγνωστο* κατά τη μεταγλώττιση, τότε θα θέλετε μια πιο δυναμική προσέγγιση, όπου μπορείτε να συναγάγει το «σχήμα» της υπηρεσίας web.


Αλλά ξεκινήστε με τη χρήση της αυτόματης δημιουργείται τάξη μεσολάβησης, και μην ανησυχείτε γι 'αυτό μέχρι να χτυπήσει έναν περιορισμό. Και όταν το κάνεις - επανέλθω σε στοίβα υπερχείλιση ;-)