πώς να προφέρει phalanx;
pha-lanx
Προσωπικά, έχω παίξει με αρκετές από τις ενσωματωμένες επιλογές σε XML-βαρύ έργο και έχουν εγκατασταθεί σε [pulldom](http://docs.python.org/lib/module-xml.dom.pulldom.html) ως η καλύτερη επιλογή για λιγότερο πολύπλοκα έγγραφα.


Ειδικά για τα μικρά απλά πράγματα, μου αρέσει το γεγονός με γνώμονα τη θεωρία της ανάλυσης αντί για τη δημιουργία μια αρμαθιά από επιστροφές κλήσεων για μια σχετικά απλή δομή. [Εδώ είναι μια καλή γρήγορη συζήτηση για το πώς να χρησιμοποιήσετε το API](http://www.prescod.net/python/pulldom.html) .


Αυτό που μου αρέσει: μπορείτε να χειριστείτε το parsing σε ένα `for`βρόχο και όχι με τη χρήση επιστροφές κλήσεων. Μπορείτε επίσης να καθυστερήσουν την πλήρη συντακτική ανάλυση (η «τραβήξει» κομμάτι) και να πάρει μόνο πρόσθετες λεπτομέρειες όταν καλείτε `expandNode()`. Αυτό ικανοποιεί γενική απαίτηση μου για «υπεύθυνη» απόδοση χωρίς να θυσιάζει την ευκολία χρήσης και την απλότητα. **Εκφράσεις XPath δεν μπορούν να αξιολογηθούν agaist μη wellformed έγγραφο XML** , η οποία είναι ακριβώς η περιγραφόμενη περίπτωση.


Είναι δυνατόν να γίνει αυτό σε δύο αλυσοδεμένος στάδια, το πρώτο εκ των οποίων είναι να μετατρέψει τον κώδικα HTML για να wellformed XML και στη συνέχεια το δεύτερο - να εφαρμόσει την έκφραση XPath.


Ως εκ τούτου, το ερώτημα θα μπορούσε να αναφέρεται ακριβέστερα ως «Πώς να μετατρέψετε HTML σε XML, έτσι ώστε οι εκφράσεις XPath μπορούν να αξιολογούνται με βάση το».


Εδώ είναι δύο καλά εργαλεία:


1. **[TagSoup](http://home.ccil.org/~cowan/XML/tagsoup/) , ένα πρόγραμμα ανοιχτού κώδικα** , είναι ένα Java και SAX - based εργαλείο, που αναπτύχθηκε από [**τον John Cowan**](http://home.ccil.org/~cowan/) . Αυτό είναι ένα SAX-συμβατό πρόγραμμα ανάλυσης γραμμένο σε Java που, αντί για την ανάλυση καλοσχηματισμένα ή έγκυρη XML, αναλύει HTML καθώς βρίσκεται σε άγρια κατάσταση: φτωχή, άσχημη και βίαιη, αν και αρκετά συχνά μακριά από σύντομη. TagSoup είναι σχεδιασμένο για ανθρώπους που έχουν να επεξεργάζονται αυτά τα πράγματα χρησιμοποιώντας κάποια ομοιότητα ενός ορθολογικού σχεδιασμού της εφαρμογής. Παρέχοντας μια διεπαφή SAX, επιτρέπει τυποποιημένα εργαλεία XML για να εφαρμοστεί ακόμη και το χειρότερο HTML. TagSoup περιλαμβάνει επίσης έναν επεξεργαστή γραμμής εντολών που διαβάζει αρχεία HTML και μπορεί να παράγει είτε καθαρά HTML ή καλοσχηματισμένα XML που είναι μια στενή προσέγγιση με XHTML. Taggle είναι ένα εμπορικό λιμάνι C ++ της TagSoup.
2. **[SgmlReader](http://code.msdn.microsoft.com/SgmlReader)** είναι ένα εργαλείο που αναπτύχθηκε από τη Microsoft για [**Chris Lovett**](http://www.lovettsoftware.com/) . SgmlReader είναι ένα XmlReader API σε οποιοδήποτε έγγραφο SGML (συμπεριλαμβανομένων ενσωματωμένη υποστήριξη για HTML). Ένα βοηθητικό πρόγραμμα γραμμής εντολών Παρέχεται επίσης η οποία εξάγει το καλά σχηματισμένες αποτέλεσμα XML. Κατεβάστε το αρχείο zip, συμπεριλαμβανομένης της αυτόνομο εκτελέσιμο και τον πλήρη πηγαίο κώδικα: [**SgmlReader.zip**](http://code.msdn.microsoft.com/SgmlReader/Release/ProjectReleases.aspx?ReleaseId=1442)
3. **[Το καθαρό XSLT 2.0 Αναλυτής της HTML](http://www.dcarlisle.demon.co.uk/htmlparse.xsl)** γραμμένο από [**τον David Καρλάιλ**](http://dpcarlisle.blogspot.com/) . Η ανάγνωση του κώδικα θα είναι μια μεγάλη άσκηση μάθησης για τον καθένα από εμάς.


Από την περιγραφή:


«D: htmlparse (συμβολοσειρά) δ: htmlparse (συμβολοσειρά, namespace, html-mode)


Η μορφή ένα επιχείρημα είναι ισοδύναμη με) δ: htmlparse (συμβολοσειρά, ' <http://ww.w3.org/1999/xhtml> ', true ()))


Αναλύει τη συμβολοσειρά ως HTML ή / και XML χρησιμοποιώντας κάποια ενσωματωμένη heuristics να) ελέγχου σιωπηρή άνοιγμα και το κλείσιμο των στοιχείων.


Δεν έχει πλήρη γνώση της HTML DTD, αλλά δεν έχει τον πλήρη κατάλογο των κενών στοιχεία και πλήρη κατάλογο των ορισμών οντότητας. Οι HTML οντότητες, και αναφορές χαρακτήρα δεκαδικό και δεκαεξαδικό όλες δεκτές. Οι σημείωση html-φορείς αναγνωρίζεται ακόμα κι αν html-mode = false ().


Τα ονόματα των στοιχείων lowercased (αν html-mode είναι αλήθεια ()) και τοποθετείται στο χώρο ονομάτων που καθορίζεται από την παράμετρο ονομάτων (που μπορεί να είναι «» για να υποδηλώσει όχι-ονομάτων, εκτός αν η είσοδος έχει explict δηλώσεις namespace, οπότε αυτά θα τιμηθεί .


Τα ονόματα ιδιοτήτων lowercased αν html-mode = true ()»


Διαβάστε μια πιο λεπτομερή περιγραφή [**εδώ**](http://www.dcarlisle.demon.co.uk/htmlparse.xsl) . <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> Η σύντομη απάντηση είναι: Να είναι φοβερό.


Εάν το λογισμικό σας αντιμετωπίζει πραγματικά ένα σημείο του πόνου και αντιμετωπίζει καλά, οι άνθρωποι θα έρθουν να με δική τους (υποθέτοντας ένα λογικό ποσό της προώθησης από την πλευρά σας) μέσω SourceForge / GitHub / κλπ., Το Google, και από στόμα σε στόμα. Εάν προσελκύσει μια κρίσιμη μάζα των ανθρώπων που έχουν ανάγκη ό, τι κάνει το λογισμικό σας και πρέπει να έχει νέα χαρακτηριστικά, συνεργάτες θα έρθουν.


Επίσης: Παραμονή ενεργό. Αν δεν έχετε ενημερώσει τον κωδικό σας σε 6 μήνες, ή αν η σελίδα σας στο SourceForge λέει το λογισμικό σας έχει στην Alpha για ένα χρόνο, πολλοί άνθρωποι πρόκειται να το αγνοήσετε και να προχωρήσουμε στο επόμενο αποτέλεσμα αναζήτησης. Πάρτε το λογισμικό για το πού είναι έτοιμο για τους άλλους να χρησιμοποιούν, και να το διατηρεί.


Το πράγμα για Open Source είναι ότι πρέπει πραγματικά να αναπτυχθούν οργανικά - είναι να πληρωθούν κανείς, κανείς δεν είναι υπό την απειλή της απόλυσης - οι άνθρωποι πρέπει να *νοιάζονται για το λογισμικό σας* για να αυξηθεί πέρα από ό, τι μπορείτε να κάνετε. Δεν πρόκειται ποτέ να πάρει συνεργάτες (ή τέλος πάντων, καλές) από την προσέλκυση τους - μόνο κάνοντας κάτι που ένας καλός προγραμματιστής θα βρείτε ενδιαφέρον να εργαστεί με. Αν ψάχνετε για την αλληλεπίδραση που αντιμετωπίζουν χρήστη, ραβδί με xml. Έχει περισσότερη υποστήριξη, κατανόηση, και τη γενική αποδοχή του παρόντος. Αν είναι εσωτερικά, θα έλεγα ότι προσκρουστήρες πρωτόκολλο είναι μια μεγάλη ιδέα.


Ίσως σε μερικά χρόνια, καθώς περισσότερα εργαλεία για να βγει να υποστηρίξει ρυθμιστικά πρωτόκολλο, στη συνέχεια, να αρχίσει να ψάχνει προς αυτή την κατεύθυνση για μια δημόσια api επένδυση. Μέχρι τότε ... [JSON](http://en.wikipedia.org/wiki/JSON) ; Νομίζω ότι μπορείτε να αποφύγετε μια δεσμευτούν σενάριο γάντζο σε αυτή την περίπτωση με τη χρήση του `svn:eol-style`ακινήτου, όπως περιγράφεται στο SVNBook:


* [Στο τέλος της γραμμής Ακολουθίες χαρακτήρων](http://svnbook.red-bean.com/en/1.7/svn.advanced.props.file-portability.html#svn.advanced.props.special.eol-style)
* [Ιδιότητες Subversion](http://svnbook.red-bean.com/en/1.7/svn.ref.properties.html)


Με αυτό τον τρόπο SVN να ανησυχείτε για καταλήξεις γραμμή σας για σας.


Καλή τύχη! ο σωστός τρόπος είναι

nohup program -option & την γνώμη μου την έχω πει [εδώ](https://linux-user.gr/t/epilogh-dianomhs/522) και [εδώ](https://linux-user.gr/t/to-epomeno-vhma-gia-to-manjaro/1020/16) 
μήπως απλά να πέταγες το ppa; (αφού θέλεις ubuntu) Αν δεν υπάρχει άλλος λόγος, θα ήθελα να προτείνω τη χρήση C # για να δημιουργήσετε την υπηρεσία web για σας. XML σε C # είναι πολύ καλύτερα από ό, τι η διαδικασία για να το κάνει σε RPG. προτεινω να δοκιμασεις πρωτα με τους ανοιχτους οδηγους να δεις πως θα σε παει και αν συνεχισεις να εχεις προβλημα εγκατεστησε <https://snapcraft.io/install/fwts/manjaro>

που θα μας δωσει αναλυτικες πληροφοριες