Κατηγορία: Άρθρα

Γραφείο Computing Grid χρησιμοποιώντας εικονικά περιβάλλοντα - Μέρος 1

Με , Παρασκευή 4 του Δεκέμβρη 2009 23:23

Εισαγωγή

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

Ως PHP προγραμματιστής Πάω να χρησιμοποιούν εργαλεία που χρησιμοποιώ κάθε μέρα, δηλαδή το Linux, mySQL , PHP, το VirtualBox και το Subversion (SVN). Ωστόσο ελπίζω ότι αυτός ο οδηγός θα προσαρμοστεί και σε άλλες γλώσσες και τεχνολογίες το ίδιο καλά.

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

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

Γιατί Ανάπτυξη μιας Grid Computing του Office;

Πρώτον μπορεί να σκέφτεστε, γιατί να μην χρησιμοποιούν μόνο έναν πόρο το cloud computing, όπως η πλατφόρμα EC2 της Amazon ; Καλά τους λόγους που θα μπορούσαν να είναι πολλές, όπως για παράδειγμα:

  • Δεν θα αναθέσει ορισμένα δεδομένα σε ένα υπολογιστικό περιβάλλον σύννεφο
  • Δεν μπορείτε να θέσει ορισμένα δεδομένα σε ένα υπολογιστικό περιβάλλον σύννεφο για νομικούς λόγους (π.χ. δεδομένα που φεύγουν από τη χώρα), πιθανώς για νομικούς λόγους, π.χ. τα αρχεία του ΕΣΥ.
  • Θέλετε να κρατήσετε τις μονάδες επεξεργασίας σας κοντά και να έχουν τον πλήρη έλεγχο του υλικού πάρα πολύ
  • Δεν έχετε τα κεφάλαια του έργου για την εκτέλεση εμφανίσεων σύννεφο
  • Το γραφείο σας δεν διαθέτει σύνδεση στο διαδίκτυο και ως εκ τούτου της δεν είναι δυνατόν να χρησιμοποιήσει έναν πόρο σύννεφο
  • Δεν είναι όπως τη βροχή, τα σύννεφα βροχή προτείνουμε, ως εκ τούτου κρατάτε μακριά

Είμαι βέβαιος ότι ο κατάλογος θα μπορούσε να συνεχίσει, αλλά νομίζω ότι είναι αρκετό για τώρα.

Πλεονεκτήματα του Grid Computing Office

Λοιπόν, σας επιτρέπει να κάνετε κάποια μαθηματικά (και το αυθεντικό στυλ της φυσικής σας δίνει τη δυνατότητα να σαρώνει κάποιες υποθέσεις). Φανταστείτε ότι έχετε μεγάλη σωματώδης διακομιστή επεξεργασία τρέχει 100 θέσεις εργασίας ανά ημέρα. Στο γραφείο σας, έχετε 50 μηχανές που είναι σε αδράνεια 16 ώρες την ημέρα, κάθε ένα από αυτά τα μηχανήματα είναι 10% τόσο ισχυρό όσο σωματώδης κόβω την επεξεργασία σας. (Όλα τα αποτελέσματα εδώ στρογγυλοποιούνται να υποτιμήσουμε την αύξηση των επιδόσεων).

Έτσι, 1 μηχανή * 10% δύναμη * 2 / 3 του χρόνου = 0,067 δηλ. 1 επεξεργασία στην επιφάνεια εργασίας χρόνο αδράνειας θα μπορούσαν διαδικασία 6 θέσεις εργασίας πλήρους απασχόλησης ανά ημέρα.

Εάν κλίμακα μέχρι τώρα αυτό που χρειάζεται 15 ρελαντί επιτραπέζιους υπολογιστές να επεξεργάζονται τόσες θέσεις εργασίας ανά ημέρα ως κύριο διακομιστή επεξεργασία σας κάνει.

Έτσι στο γραφείο μας προσποιούνται των 50 μηχανές που θα μπορούσε να αυξήσει την επεξεργαστική ισχύ μας, από την 1η διακομιστή μέχρι και 4 servers πλήρη επεξεργασία, ή θα μπορούσαμε να είμαστε επεξεργασία 400 θέσεις εργασίας ανά ημέρα αντί για 100.

Ανακοίνωση, για καμία επένδυση σε νέο hardware της εταιρείας σας έχει αυξηθεί μόλις παρτίδα την ικανότητά της επεξεργασίας 4 φορές! Δυνητικά θα πάμε να αυξηθεί η χρήση δύναμή σας, αλλά από τα περισσότερα περιβάλλοντα γραφείου Έχω πάει σε μηχανές είναι γενικά μια μέρα στην άλλη αριστερά στην έτσι κι αλλιώς, έτσι θα μπορούσατε να δείτε αυτό ως μια πράσινη πρωτοβουλία.

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

Τεχνολογίες

Τι χρειάζεστε; (Ή πιο σωστά αυτό που έκανα χρήση):

  • Idle μηχανές γραφείου (στην περίπτωσή μου μια εφεδρική παλιά XP Windows laptop)
  • VirtualBox (ή άλλο λογισμικό του πελάτη εικονικοποίησης)
  • Μια εικονική μηχανή με την PHP, mySQL running τρέχει μια περικοπή κάτω OS, είμαι καλώντας αυτές τις έκτακτες περιπτώσεις servers μου:)
  • Θέσεις εργασίας για να τρέξει
  • Διακομιστή Job (μπορεί να είναι μια άλλη εικονική μηχανή κάπου)

Τυπικές θέσεις εργασίας

Τα είδη των θέσεων εργασίας που αυτό το σύστημα είναι σχεδιασμένο να λειτουργεί ως εξής:

  • Σύστημα λαμβάνει μια λίστα δεδομένων πάνω στην οποία πρέπει να ταιριάζει και να επιστρέψει τα αποτελέσματα
  • Συνδυάζοντας περιλάμβάνει τον έλεγχο / έρευνα πολλά (αρκετά στατική) των πηγών δεδομένων
  • Τα αποτελέσματα από τις πηγές δεδομένων που μπορούν να απαιτούν περαιτέρω επικύρωση, τη συγχώνευση, τον έλεγχο της συμπληρωματικές πηγές δεδομένων, για την αντιμετώπιση των αποτελεσμάτων
  • Τα δεδομένα επέστρεψε με αντίστοιχες εγγραφές, πλήρως επικυρωμένων και επεξεργασία
  • Κάθε εγγραφή σε μια θέση εργασίας είναι ανεξάρτητο από τα υπόλοιπα

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

Πλέγμα λύσεις δεν είναι μόνο επωφελής για την επεξεργασία θέσεων εργασίας αυτού του τύπου. Βασικά, κάθε διαδικασία που μπορεί να χωριστεί σε ανεξάρτητες μονάδες μπορούν να λειτουργούν παράλληλα. Δείτε αυτό το wikipedia για παραδείγματα και περισσότερες πληροφορίες: Grid Computing , αλλά μερικά διάσημα παραδείγματα είναι SETI @ home και BIONC . Υπάρχουν πλαισίων για τη λειτουργία των δικτύων υπολογιστών, και αυτά είναι καλά αξίζει περισσότερη μελέτη.

Τι θα πετύχουμε;

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

  • Ρύθμιση του συστήματος ελέγχου της εργασίας, τη διαμόρφωση θέσεων εργασίας
  • Δημιουργία κατάλληλης επεξεργασίας εικονική μηχανή
  • Πως να ρυθμίσετε το σύστημα σε μια μηχανή παραθύρων
  • Εξασφάλιση χρησιμοποιείτε το πιο πρόσφατο κώδικα και τα δεδομένα
  • Ανάπτυξη και συγκριτική αξιολόγηση
  • Κοιτώντας προς το μέλλον

Θα είμαι κτιρίου (ok έχτισα, τότε έγραψε αυτό) μια αίτηση παράδειγμα, να δοκιμαστούν οι έννοιες σε ένα τοπικό μηχάνημα με Windows XP και μου 'GridMachine «εικονική μηχανή. Δουλειά μου με το διακομιστή ελέγχου θα είναι το κύριο μηχάνημα μου που τρέχει Fedora 11 .

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

Την επόμενη φορά

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

Γραφείο Computing Grid χρησιμοποιώντας εικονικά περιβάλλοντα - Μέρος 2

Με , Παρασκευή 4 του Δεκέμβρη 2009 23:23

Εισαγωγή

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

Στο μέρος 1 έδωσα μια γενική εικόνα του συστήματος και των τεχνολογιών θα είμαι χρησιμοποιώντας καθώς συζητηθεί ως μερικές από τις πιθανές λόγους για τους οποίους θα θέλατε να δημιουργήσετε ένα δίκτυο γραφείων.

Ελέγχου της εργασίας

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

  • Θέσεις εργασίας από το χέρι, μετά από αίτημα των εργαζομένων
  • Πείτε τους εργαζόμενους τι είδους θέσεις εργασίας για να τρέξει
  • Θέσεις εργασίας Track
  • Βεβαιωθείτε ότι οι θέσεις εργασίας είναι να εκτελεστεί μόνο μία φορά
  • Παροχή δεδομένων εργασίας για τους εργαζόμενους, ή τουλάχιστον να τους πει πού να το πάρει

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

Διακομιστής Εργασίας

Εμείς πάμε για να πρέπει κάπου να ελέγχουν θέσεις εργασίας μας από, αυτό θα πρέπει να είναι το μόνο σύστημα στο δίκτυο σας που έχει ένα σταθερό Resource Locator, είναι ότι μια διεύθυνση IP, όνομα κεντρικού υπολογιστή, διεύθυνση URL (χρησιμοποιώντας εσωτερικά DNS), κλπ. Αυτό οφείλεται στο γεγονός ότι οι εργαζόμενοι πρέπει να ξέρουν πού να ψάξουν για θέσεις εργασίας, οι εργαζόμενοι πρέπει να βρούμε το σύστημα ελέγχου της εργασίας (όχι το σύστημα ελέγχου της εργασίας βρει τους εργαζόμενους).

Ο διακομιστής ίδια η δουλειά δεν έχει πραγματικά μια πολύπλοκη εργασία (σε ένα βασικό σύστημα ούτως ή άλλως), θα πρέπει να αποθηκεύσετε μια λίστα των θέσεων εργασίας, το χέρι έξω θέσεις εργασίας, να λαμβάνουν τα αποτελέσματα, και στη συνέχεια να τα αποθηκεύσουν για μετέπειτα ανάκτηση. Πώς ορίζονται τα τμήματα αυτά («το χέρι έξω θέσεις εργασίας», όπως η) μπορεί να είναι πολύ βασικές. Αργότερα μπορούμε να επεκτείνουμε το σύστημα να περιλαμβάνει μια διεπαφή διαχείρισης για να προσθέσετε, να επεξεργαστείτε, να διαγράψετε, να αναστείλει θέσεις εργασίας, αλλά αυτό είναι πέρα ​​από αυτή την άσκηση.

Δεν υπάρχει κανένας απολύτως λόγος στη συνέχεια ότι ο διακομιστής τη δουλειά σας δεν θα μπορούσε να είναι μια εικονική μηχανή να λειτουργήσει μέσα σε κεντρικό server επεξεργασίας σας με την προϋπόθεση ότι δεν στραγγίζει πάρα πολλά μέσα από αυτό. Ο διακομιστής δουλειά, ωστόσο χρειάζονται υψηλή διαθεσιμότητα, αν πηγαίνει κάτω σε μια Παρασκευή βράδυ θα πάμε να χάσουμε ένα ολόκληρο Σαββατοκύριακο για τη μεταποίηση, ενδεχομένως να σας κοστίσει μια-δυο εβδομάδες αξίας του χρόνου επεξεργασίας (σε σύγκριση με κεντρικό server επεξεργασία σας μόνο) . Μπορεί να θέλετε να εξετάσει το ενδεχόμενο διακομιστή εργασία σας σε ένα φορτίο ισορροπημένο περιβάλλον για υψηλή διαθεσιμότητα.

Βασική ρύθμιση

Η βασική ρύθμιση για το διακομιστή δουλειά μας θα αποτελείται από ό, τι είμαι καλώντας ένα από limp διακομιστές μου (που είναι Li Nux, μ ySql, P HP). Ο κωδικός λειτουργεί με θέα εργαζομένων θα έχει κανένα αποτέλεσμα η δουλειά που μπορεί να τρέξει από την αλληλεπίδραση με βάσεις δεδομένων με το σύστημα ελέγχου της εργασίας. Αργότερα, θα μπορούσαμε να δημιουργήσουμε μια υπηρεσία web και πραγματικά το χέρι έξω θέσεις εργασίας αντί των εργαζομένων κάνει τη σκληρή δουλειά τους, αλλά προς το παρόν θα συνεχίσει να χρησιμοποιεί την αρχή KISS (κρατήστε το απλό, ηλίθια!).

Έτσι, αφήνει να δημιουργήσετε τρεις mySQL πίνακες για την αντιμετώπιση των θέσεων εργασίας. Αυτές θα είναι `θέσεις εργασίας`, `jobRecords` και `jobResults`.

θέσεις εργασίας πίνακα Εδώ είμαι με τη χρήση SQL Buddy μικρή η μεγάλη εναλλακτική λύση για το phpMyAdmin μόνο και μόνο επειδή ευκολότερη της να εγκαταστήσετε σε CentOS (για τους άλλους δείτε: 10 Μεγάλη εναλλακτικές λύσεις για το phpMyAdmin )

Αυτός ο πίνακας αποτελείται από 5 απλά πεδία,

  • id: με μοναδικά στοιχεία το έργο
  • Όνομα: Θα μπορούσε να είναι σημείο αναφοράς τον πελάτη, ή οποιοδήποτε αριθμό άλλων αναγνωριστικών
  • Κατάσταση: Πρέπει να ξέρετε όπου η εργασία είναι, π.χ.
    • 0: Δεν έχει ξεκινήσει
    • 1: επιταχύνθηκε
    • 2: Ολοκληρώθηκε
  • started_by: Ποιος είναι που ξεκίνησε να κάνει τη δουλειά; Αυτό δεν είναι απολύτως απαιτείται, αλλά είναι καλό να υπάρχει. Θα πρότεινα την παρακολούθηση των εργαζομένων από τη διεύθυνση IP τους στο δίκτυό σας
  • started_at: Πότε ο εργαζόμενος ξεκινήσει η δουλειά; Με την καταδίωξη θέσεις εργασίας που δεν έχουν ολοκληρωθεί μέσα σε Χ ποσό του χρόνου που γνωρίζουμε ότι πρέπει να πάρει τη δουλειά για άλλη μια φορά και να αρχίσει την επεξεργασία από ένα άλλο εργαζόμενο. Οι εργαζόμενοι θα μπορούσε να σταματήσει την επεξεργασία / go offline για οποιοδήποτε αριθμό λόγων, τη διακοπή ρεύματος, συντριβή, την απώλεια του δικτύου, κλπ.

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

Αφήνει να προσθέσετε μερικές θέσεις εργασίας παράδειγμα:

θέσεις εργασίας παράδειγμα

Το επόμενο πίνακα είναι και πάλι αρκετά απλό να κατανοήσει, αυτά είναι τα αρχεία δουλειά μας. Συνδέονται με τον κύριο πίνακα θέσεων εργασίας από μια στήλη `jobs_id`. Η συνθέτουν αυτού του πίνακα εξαρτάται σε μεγάλο βαθμό τα δεδομένα που χρειάζεστε για να παρέχει στους εργαζομένους σας, σας δίνει τη δυνατότητα να ένα πολύ απλό παράδειγμα, όπου έχουμε τέσσερις στήλες:

  • ID: ID της εγγραφής
  • Όνομα: Όνομα προσώπου της επιχείρησης
  • διεύθυνση: διεύθυνση Πρόσωπο του
  • jobs_id: Το αναγνωριστικό εργασίας που αυτό το αρχείο είναι συνδεδεμένο με

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

  • job_record_id: Link το αποτέλεσμα στο τραπέζι των θέσεων εργασίας
  • αποτέλεσμα: Τα στοιχεία που προκύπτουν

... Και αυτό είναι όλο που χρειάζεστε για τον έλεγχο δουλειά! (Αν και σε πολύ βασικό επίπεδο) Στην περίπτωσή μου είμαι επισήμανε σε άλλο πίνακα, όπου τα στοιχεία μου για την επεξεργασία βρισκόταν, αλλά αυτό θα μπορούσε εξίσου εύκολα να γίνει ένα αρχείο, οι παράμετροι για την εκτέλεση κώδικα προσομοίωσης, εσείς το όνομα.

Επιλέγοντας μια εργασία

Όπως αναφέρθηκε προηγουμένως, οι εργαζόμενοι θα κάνουν τη διαχείριση δουλειά μας για μας για τώρα, οπότε το μόνο που χρειάζεται πραγματικά να κάνουμε είναι να βρούμε μια δουλειά που χρειάζεται επεξεργασία και να πάρετε τις πληροφορίες. Πώς θα το κάνουμε αυτό; Καλά πάρει τη δουλειά μας κριτήρια επιλογής και να αναζητήσει θέσεις εργασίας, σε SQL έκανα τα εξής:

  1. Πάρτε καμία θέση εργασίας που δεν έχουν επισημανθεί ως ολοκληρωμένες, αλλά από εργαζομένων μας και η επαναφορά τους (υποκατάστατο __ME__ με ένα αναγνωριστικό, πιο εύκολο θα είναι η διεύθυνση IP):
      UPDATE `θέσεις εργασίας` SET `κατάσταση` = 0 όπου `κατάστασης = 1` και `started_by` = __ME__? 
  2. Χρησιμοποιώντας τη δουλειά μας κριτήρια επιλογής, επιλέξτε μια εργασία και να πει το σύστημα ελέγχου που αυτό εργαζόμενος ασχολείται με αυτό:
      UPDATE `θέσεις εργασίας` SET `κατάσταση` = 1, στο εξής started_by `= __ME__,` started_at `= NOW () Όπου` κατάσταση `= 0 ή
     (`Κατάστασης = 1` και `started_at`> DATE_SUB (NOW (), το διάστημα ώρα x)) ORDER BY `id` ASC? 

    Με την αρπαγή θέσεις εργασίας που δεν έχουν επιστρέψει τα αποτελέσματα στο ποσό Χ διάστημα να διασφαλίσουμε ότι όλες οι εργασίες εκτελούνται σε περίπτωση που ένας εργαζόμενος συντριβή ή θα AWOL.

  3. Στη συνέχεια πιάσε τα στοιχεία απασχόλησης που ακολουθείται από τα αρχεία οι ίδιοι:
      SELECT * FROM `θέσεις εργασίας` WHERE `started_by` = __ME__ ορίου του 1?
     SELECT * FROM `job_records` WHERE `id` = __JOBID__? 

Με την ολοκλήρωση της εργασίας που εισάγουν εγγραφές αποτέλεσμα μας και σηματοδοτούν την εργασία ως ολοκληρωμένη. Να θυμάστε ότι οι εργασίες που μπορεί να αναστείλει / επαναλάβει οποιαδήποτε στιγμή επιτρέπουν κάποια ευρωστία μέσα στο κείμενό σας. Θα μπορούσε να είναι ότι το έργο αναστέλλει μισά ενημέρωση του συστήματος ελέγχου της εργασίας, έτσι τον έλεγχο του αριθμού των εγγραφών σε μια θέση εργασίας και τον αριθμό των αποτελεσμάτων αποθηκεύεται πίσω στο σύστημα ελέγχου της εργασίας θα ήταν μια σοφή κίνηση.

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

Διαμόρφωση θέσεων εργασίας

Η επόμενη πτυχή που εξετάζει είναι το μέγεθος εργασίας και τη διαμόρφωση. Παίζοντας με τη διαμόρφωση δουλειά μπορούμε να επιτευχθεί η άριστη ισορροπία μεταξύ της ταχύτητας, η αναπαραγωγή της διαδικασίας και την αξιοπιστία. Πάρτε ένα σενάρια ΟΦΑ ζευγάρι:

  1. Θέσεις εργασίας λαμβάνουν 1 ημέρα κάθε για να τρέξει: Αυτό σημαίνει ότι οι εργαζόμενοι σας χρειάζονται 15 μέρες για την επεξεργασία κάθε εργασία (θυμηθείτε το 10% της ισχύος για 2/3rds του χρόνου). Αυτό δεν είναι σαφώς μια σοφή διάταξη, διαστάσεις η δουλειά σας είναι πάρα πολύ μεγάλη! Θα χρειαζόταν τουλάχιστον το διπλάσιο χρόνο για να πάρετε μια επεξεργασία θέσεων εργασίας θα πρέπει η αρχική εργαζόμενος πάει AWOL (χρόνος για να πάρει ότι δεν έχει επιστρέψει αποτέλεσμα συν ώρα επανεπεξεργασίας). Σε έναν ιδανικό θα είχατε τουλάχιστον μια πλήρους απασχόλησης εργασία εύκολα να καθαριστεί από το τέλος κάθε μακρά περίοδο αδράνειας, με αυτόν τον τρόπο κρατάτε τις θέσεις εργασίας που περνά πάνω και στη χειρότερη περίπτωση μια θέση εργασίας θα διαρκέσει δύο ημέρες για να διαδικασία αυτή θα πρέπει το πρώτο χάνονται.
  2. Θέσεις εργασίας λαμβάνουν 1 λεπτό για να τρέξει: Αυτό σημαίνει ότι οι εργαζόμενοι σας πάρει περίπου 15 λεπτά για να τρέξει κάθε εργασία. Ενώ αυτό μπορεί αρχικά να φαίνεται ιδανική, κερδίζετε επιπλέον επεξεργασία εργασία κατά τη διάρκεια του γεύματος, τα διαλείμματα για καφέ, συναντήσεις, κ.λπ. αυτό το σενάριο βάζει την πίεση σε άλλες περιοχές του συστήματός σας και να εισάγει τα δικά της προβλήματα. Για παράδειγμα, πρώτον setup / επεξεργασία αναλογία του χρόνου σας πρόκειται να πάει δεξιά προς τα κάτω, ως εκ τούτου χάνει την αποτελεσματικότητα του συστήματος. Το δίκτυό σας θα είναι συνεχώς ροής πληροφοριών θέσεων εργασίας στις διάφορες εργαζομένων απογοητευτικό το προσωπικό που είναι dong την ημέρα τους με τη μέρα δουλειά. Είστε, επίσης, πρόκειται να ασκήσει μεγαλύτερη πίεση στον server επεξεργασία εργασία σας δεδομένου ότι πρέπει να πιάτο έξω πάρα πολλά μικρά κομμάτια του έργου σε τακτική βάση. Τέλος, σε αυτή την κατάσταση αν ο διακομιστής τη δουλειά σας πηγαίνει κάτω θα πάμε να δημιουργήσουμε ένα τεράστιο κούτσουρο πλάτη της μη ολοκλήρωσης των εργασιών ενώ μεγαλύτερες θέσεις εργασίας θα μπορούσε να της συνεχούς επεξεργασίας μακάρια γνωρίζουν ότι ο διακομιστής η εργασία που αντιμετωπίζουν δυσκολίες.

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

  • Μέγεθος θέσεις εργασίας, έτσι ώστε κάθε εργαζόμενος μπορεί να περάσει τουλάχιστον 3-4 θέσεις εργασίας σε μια περίοδο 15 ωρών (το μεγαλύτερο πιθανό χρονικό διάστημα αδράνειας)
  • Παίξτε με το μέγεθος της εργασίας, έτσι ώστε του χρόνου εγκατάστασης γίνεται αρκετά ασήμαντη σε σύγκριση με το χρόνο επεξεργασίας (λαμβάνοντας υπόψη το ανωτέρω σημείο).
  • Εάν μια εργασία δεν ολοκληρωθεί στο διπλάσιο από το ποσό του χρόνου (ίσως και λιγότερο) το περιμένετε να ολοκληρωθεί αυτό υποθέσουμε ότι πάει AWOL της και να αρχίσει την επεξεργασία με ένα άλλο εργαζόμενο. Αυτό σημαίνει ότι ίσως χρειαστεί να περιμένουν μέχρι και τρεις φορές την κανονική διάρκεια μιας εργασίας για την ολοκλήρωση (ίσως περισσότερο, αν η επόμενη δουλειά αποτυγχάνει). Μπορεί να θέλετε να μειώσει αυτή τη φορά, αλλά πρέπει να προσέξουμε να μην το μειωθούν πάρα πολύ, καθώς μπορεί να αρχίσει η επικάλυψη εργασιών επεξεργασίας σε τακτική βάση.
  • Θέσεις εργασίας θα πρέπει να είναι ανεξάρτητο από έξω απαιτήσεις όσο το δυνατόν περισσότερο. Ο διακομιστής δουλειά, για παράδειγμα, θα πρέπει να έρθει σε επαφή στην αρχή και στο τέλος της κάθε εργασίας.
  • Να μην κορεστεί το δίκτυό σας, αυτό θα έχει δύο αρνητικά αποτελέσματα, τη διάρκεια της ημέρας το προσωπικό σας θα βρει τη χρήση του δικτύου απογοητευτικό και τα προβλήματα μπορεί να προκύψει σε σχέση με τις συνδέσεις ο χρόνος για ένα πρόβλημα που θα πάρει μόνο χειρότερα καθώς κλίμακας δίκτυο σας.
  • Εξασφάλιση θέσεων εργασίας μπορεί να τρέξει στους εργαζομένους σας. Αν οι εργασίες γίνονται πολύ απαιτητικές σε μνήμη ή χώρο στο δίσκο εντατικές εργασίες θα αρχίσουν να ματαιωθεί και το μόνο πράγμα που θα παρατηρήσετε είναι μια σταγόνα στον αριθμό των θέσεων εργασίας σε επεξεργασία χωρίς πραγματικό λόγο.

Την υποβολή των αποτελεσμάτων της εργασίας

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

Όταν τα αποτελέσματα υποβάλλονται εξασφαλίζει ότι ο αριθμός των αποτελεσμάτων των αγώνων ο αριθμός των εγγραφών στο πλαίσιο της εργασίας.

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

Περίληψη

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

  • Ένας διακομιστής ελέγχου της εργασίας διαχειρίζεται θέσεις εργασίας και διασφαλίζει ότι έχουν ολοκληρωθεί όλες οι μονάδες εργασίας
  • Με υδροληψίες δουλειά σας επιλογή / υποβολή των αποτελεσμάτων μπορούμε να αλλάξουμε την τεχνολογία του διακομιστή ελέγχου χωρίς πολλά προβλήματα
  • Διαμόρφωση θέσεων εργασίας σας για να βεβαιωθείτε ότι είναι τρέχουν γρήγορα και αποτελεσματικά χωρίς να θέτουν πάρα πολύ πίεση επί των υποδομών του δικτύου σας, και χωρίς επικάλυψη με την επεξεργασία εργασιών σε τακτική βάση.
  • Βεβαιωθείτε ότι έχετε χτίσει ανοχή σε σφάλματα και checking λάθος σε ρουτίνες σας, οι εργαζόμενοι μπορούν να αναστείλουν και να επαναλαμβάνεται και το πιο ενοχλητικό φορές. Θυμηθείτε να ελέγξετε αν τα αποτελέσματα έχουν ήδη υποβληθεί από άλλον εργαζόμενο.

Την επόμενη φορά

Στο μέρος 3 θα δημιουργήσουμε εικονική μηχανή επεξεργασίας μας και να εγκαταστήσετε τα Windows μηχανήματα μας για να τεθεί σε κατάσταση αδράνειας απασχολουμένων.

Γραφείο Computing Grid χρησιμοποιώντας εικονικά περιβάλλοντα - Μέρος 5

Με , Παρασκευή 4 του Δεκέμβρη 2009 23:03

Εισαγωγή

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

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

Προ-Ανάπτυξη

Πριν από την εγκατάσταση του συστήματος στο δίκτυο σας, αν υπάρχει ένα πράγμα που κάνεις και ένα πράγμα μόνο είναι σημείο αναφοράς το τρέχον σύστημά σας! Δεν έχει σημασία τι θα πείτε στους συναδέλφους σχετικά με το πόση επιπλέον εργασία σύστημά σας πρόκειται να κάνει εάν δεν έχετε τους αριθμούς για να υποστηριχτεί αυτή η προσπάθεια εγγυάται σας δεν είναι τίποτα. Έτσι,

  • πόσα αρχεία μπορεί να σας διαδικασία σήμερα; Την ημέρα; Ανά ώρα;
  • Πόσος χρόνος χρειάζεται συνήθως να να γυρίσει γύρω από μια θέση εργασίας;
  • Πόσο μεγαλύτερη χωρητικότητα έχετε;

Υπάρχει, επίσης, πρόσθετες ερωτήσεις:

  • Εάν ο διακομιστής επεξεργασία σας (ή έναν από τους διακομιστές επεξεργασία σας) πηγαίνει κάτω πώς αυτό θα επηρεάσει τις ικανότητές σας, θα είστε ανάπηρος;
  • Πλεονεκτήματα Τι ελπίζετε / περιμένετε να πάρετε από το ένα σύστημα στο δίκτυο;
  • Υπάρχουν μηχανές γραφείου σας μπορεί να λειτουργεί τις θέσεις εργασίας;
  • Είναι σας (ή μπορεί να σας θέσεις εργασίας να μετατραπούν) για να εργαστούν σε αυτό το ύφος της λειτουργίας;

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

Ανάπτυξη

Η πρότασή μου θα ήταν να εμφανιστεί στο γραφείο ένα Σαββατοκύριακο εκτελέσει όλες τις εγκαταστάσεις και τη ρύθμιση. Κάνετε αυτό λίγο πριν από τις διακοπές σε ένα δεκαπενθήμερο και να αφήσει έτσι άλλων φτωχών CHAP για την αντιμετώπιση των συνεπειών ... ίσως όχι ...

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

Μόλις το σύστημα έχει εγκατασταθεί με μερικές μηχανές (ας πούμε το 10% του συνόλου των μηχανών γραφείου, δηλαδή 5) να τηρεί την παρακολούθηση της κυκλοφορίας του δικτύου και μηχάνημα performance. Επόμενο σημείο αναφοράς και πάλι, θα πρέπει τώρα να την επεξεργασία του 33% περισσότερες θέσεις εργασίας από την πρώτη αναφοράς σας. Ελέγξτε αυτό είναι έτσι, ή ότι είστε τουλάχιστον σε αυτό το εξέδρα. Αν όχι, ερευνά τι συμβαίνει πριν από τη μετάβαση σε. Επαναλάβετε αυτόν τον κύκλο μέχρι να ευτυχώς έχει όλες τις μηχανές γραφείου να λειτουργήσει χωρίς τη θανάτωση των ατομικών επιδόσεων μηχανή λείανσης ή το δίκτυό σας σε στασιμότητα.

Ανά πάσα στιγμή κρατήσει συγκριτικής αξιολόγησης, ακόμα και μετά γίνονται όλα τα αναπτύξεις. Δείτε πώς οι νέες ενημερώσεις κώδικα επηρεάζουν την ταχύτητα του συστήματός σας, ελέγξτε το σύνολο των εργαζομένων αναφέρουν στην επεξεργασία και θέσεις εργασίας. Σιγά-σιγά (πολύ αργά) αύξηση διαμόρφωση δουλειά σας για να πάρει το καλύτερο από τους εργαζόμενους και το δίκτυό σας.

Σταματήστε!

Τι γίνεται αν θέλετε να σταματήσετε τους εργαζομένους σας από το τρέξιμο σε κάποια χρονική στιγμή; Είναι όλα εκεί έξω, το τρέξιμο, την αναγέννηση, και προσπαθεί καλύτερο εαυτό τους για την επεξεργασία δεδομένων όπως πεινασμένα έντομα. Η απάντηση μπορεί να φαίνεται προφανές, αλλά αξίζει να του προσθέτοντας ακριβώς σε περίπτωση που αγνοείται του. Απλά επεξεργαστείτε σενάριο επεξεργασίας σας με μια έξοδο (0) ή να πεθάνουν () ή σε κάποια άλλη δήλωση για να σκοτώσει τη δουλειά την επεξεργασία σας. Ένας σημαντικός λόγος που πάντα προσπαθούμε να ενημερώσετε με την τελευταία γραφή επεξεργασίας πριν από κάθε διαδρομή!

Σύστημα Επίδειξη

Για να γράψω αυτό το σύνολο των σύντομων άρθρων Δημιούργησα ένα πολύ μικρό πλέγμα για να αποδείξει τις τεχνολογίες και μεθοδολογίες. Διάβασα πολλά tutorials άρθρα, και διάφορα εργαλεία που χρησιμοποιούνται για την εγκατάσταση και παρακολούθηση τι συνέβαινε. Με κανένα τρόπο δεν έχω βγει και κορεσμένα σύνολο γραφείου με την κυκλοφορία και ούτε είχα πρόσβαση σε ένα κανονικό PC μέλη του προσωπικού, για να δούμε πώς απόδοση φιλοξενεί επηρεάστηκε.

Σύστημα επίδειξης μου ήταν πολύ ταπεινός πράγματι. Θα χρησιμοποιηθεί για κανονική επιφάνεια εργασίας του υπολογιστή μου που έχει συσταθεί ως διακομιστής ελέγχου της εργασίας. Σε αυτό το είχα εγκαταστήσει mySQL διακομιστή εγκατασταθεί συσταθεί ως master στην αναπαραγωγή, PHP , Α και SVN συνδέονται μεταξύ τους μέσω apache (για πρόσβαση μέσω εργαζόμενος VM).

Δημιούργησα στη συνέχεια μια μηχανή εργαζόμενος CentOS σε VirtualBox σε 6 ετών laptop Windows XP. I setup προγραμματισμένες εργασίες, όπως καθορίζεται μετά την αντιγραφή του VM πάνω στο μηχάνημα και αφήστε το να πάει.

Η εικονική μηχανή συστάθηκε με την PHP, ανατροπής, και mySQL. Έλεγξα έξω ένα υποκατάστημα που ονομάζεται «εργαζόμενος» από τη δουλειά τους διακομιστές έλεγχό μου αποθετήριο και φρόντισε να μπορεί να ενημερώνεται χρησιμοποιώντας «svn update '. Στη συνέχεια μπορώ να ρυθμίσω mySQL ως σκλάβος και να ελέγχεται ότι τα δεδομένα ήταν αναπαράγει από mySQL στο διακομιστή ελέγχου της εργασίας κάτω στο VM εργαζόμενο. Μετά από όλα αυτά μπορώ να ρυθμίσω το σενάριο Bash και την περιοδική εργασία.

Σενάριο επεξεργασία μου βασικά πήγε προς την κατεύθυνση αυτής της (πολύ απλά πράγματα):

  • Διαβάστε στο πεδίο όνομα
  • Συνυπολογίζεται ο αριθμός των παρόμοιων ονομάτων σε έναν πίνακα από το αρχείο προέλευσης δεδομένων που πραγματοποιήθηκε στο VM
  • Συνυπολογίζεται ο αριθμός των ονομάτων, όπως παραπάνω, αλλά διάσπαση το όνομα με κενά (π.χ. όνομα, μεσαίο, επώνυμο)
  • Η επαναλαμβανόμενη αυτή τη διαδικασία 1.000 φορές

Κάθε δουλειά πήρε περίπου 20 λεπτά για να τρέξει. Κάποια στιγμή άνοιξα πολλά αντίτυπα του VM εργαζόμενος για το φορητό υπολογιστή παράθυρα και παρακολούθησαν τις θέσεις εργασίας που να ελέγχεται από κάθε μία από τις διευθύνσεις IP των εργαζομένων. Στο σημείο αυτό επιβεβαιώνεται επίσης ότι η αναπαραγωγή αυτόματα επανεκκίνηση.

Φεύγοντας από το φορητό υπολογιστή σε κατάσταση αδράνειας είχε ως αποτέλεσμα ένας εργαζόμενος αρχίζει να επεξεργάζεται θέσεις εργασίας από το διακομιστή ελέγχου της εργασίας. Κατά την επανέναρξη της χρήσης φορητού υπολογιστή υπήρξε καθυστέρηση περίπου 30-60 δευτερόλεπτα, αυτό είναι ένα δίκαιο ποσό του χρόνου και το προσωπικό θα πρέπει να συνειδητοποιήσουν ότι η συσκευή τους μπορεί να σταματήσει για λίγο κατά την επιστροφή στο μηχάνημα. Νεώτερα μηχανές δεν μπορούν να έχουν μια παύση αυτής της μακράς. Το όφελος από το ποσό επεξεργασίας που διενεργείται από αυτά τα μηχανήματα κατά τη διάρκεια περιόδων αδράνειας θα ήταν περισσότερο ότι υπερτερούν των υπαλλήλων που να περιμένουν ένα σύντομο χρονικό διάστημα (π.χ. 1 λεπτό) κατά την είσοδό του τις μηχανές τους από το πρωί (Ι συχνά περιμένουν πλέον ότι αυτό για το Windows Defender ενημέρωση θα λάβει χώρα), εφόσον είχαν ενημερωθεί γι 'αυτό (χρήσιμο χρόνο για να πάρετε έναν καφέ το πρωί!).

Σε γενικές γραμμές αισθάνομαι σίγουρος ότι το έχω αποδείξει τις τεχνολογίες που θα μπορούσαν να χρησιμοποιηθούν για τη δημιουργία ενός τέτοιου συστήματος. Έχω δείξει ότι ένα τέτοιο σύστημα δεν λειτουργεί σε (πολύ) μικρή κλίμακα και με κάποια πιο πειραματίζονται θα μπορούσε να κλιμακωθεί μέχρι αξιοποίηση των πόρων των μηχανών γραφείου του. Αν δεν φτάσουμε στο σημείο για να γίνει αυτό, θα με ενδιέφερε πολύ να γνωρίζω / δείτε πότε κάποιος άλλος κάνει.

Συμπεράσματα / Αξιολόγηση

Το επόμενο προφανές βήμα θα ήταν να πάρετε πραγματικά ένα πραγματικό παράδειγμα κόσμο και να αρχίσει να αναπτύξει ένα σύστημα όπως αυτό μέσα σε ένα περιβάλλον γραφείου και να δούμε τι θα συμβεί. Ζητώντας μια επιχείρηση να δεσμευτούν σε αυτό χωρίς ίχνος απίστευτα εταιρεία να αποδείξει την τεχνολογία και την αποτελεσματικότητα μπορεί να είναι λίγο δύσκολο. Πλέγμα / Κατανεμημένοι υπολογισμοί είναι πολύ δημοφιλές είναι κάποιοι κύκλοι και ορισμένες μεγάλες εφαρμογές (BIONC, SETI @ Home, Folding @ Home, κλπ). Δεν είχα, όμως, να βρείτε και σε μικρότερη κλίμακα και απλό σύστημα, όπως αυτό στις αναζητήσεις μου ότι θα μπορούσε να ξεδιπλώσει μέσα σε ένα περιβάλλον γραφείου.

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

Μόλις ένα σύστημα είναι έτοιμο και λειτουργεί εκεί είναι σχεδόν κανένα τέλος στο ποσό της προσαρμογής και βελτιώσεις που μπορείτε να κάνετε. Για παράδειγμα στατιστικές / συγκριτική αξιολόγηση μπορεί εύκολα να προστεθεί δείχνει την αξία ενός τέτοιου συστήματος κάθε μέρα. Νέα μηχανήματα μπορούν να προστεθούν γρήγορα και εύκολα, όπως και κατά την άφιξή τους με τις αναβαθμίσεις στο υπάρχον υλικό ενισχύοντας την επεξεργαστική ισχύ σας.

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

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

Zend-πλαίσιο: Βασικές αρχές - Αναθεώρηση

Με , Σάββατο 28 του Νοέμβρη 2009 22:42

Εργοδότης μου που καταβλήθηκε πρόσφατα για μια ομάδα από μας στους προγραμματιστές να λάβουν τα Zend-πλαίσιο: Βασικές αρχές Φυσικά, εδώ εγώ θα συνοψίσει τις σκέψεις και τις απόψεις μου σχετικά με την πορεία για τους άλλους. Για όσους επιθυμούν να εξοικονομήσουν χρόνο, εδώ είναι περίληψη μου:

Για τους προγραμματιστές που δεν είχαν το χρόνο να εξετάσουμε το πλαίσιο Zend αυτό το μάθημα (Zend-πλαίσιο: Βασικές αρχές) προσφέρει μια καλή συνολική εικόνα του πλαισίου εισαγωγή σας στους βασικούς τομείς και δίνει αρκετές πληροφορίες για να συνεχίσει. Για εκείνους που έχουν περάσει χρόνο εξετάζοντας το πλαίσιο και έχουν ακολουθήσει ένα ή δύο μαθήματα αυτό το μάθημα δεν προσφέρει πολλά πέρα.

Φόντο

Έχω υπάρξει PHP developer για περίπου 5-6 χρόνια, και έχουν αρχίσει να συνεργάζεται με την Zend-πλαίσιο για κάθε συστατικό κατά τη διάρκεια των τελευταίων 6 μηνών. Έχω αναπτύξει και / ή έχει ένας προγραμματιστής σε ένα ζευγάρι των μικρών Zend-πλαίσιο MVC sites. Θα είμαι ειλικρινής, δεν είχα ένα τεράστιο ποσό της έκθεσης σε άλλα πλαίσια από μια κωδικοποίηση άποψη, αλλά έχουν περάσει πολλά ώρες ερευνώντας τις ιστοσελίδες του έργου και την αξιολόγηση them. Το πλαίσιο και η κοινότητα γύρω Zend-πλαίσιο είναι αρκετά συναρπαστικό και φαίνεται να υπάρχουν τεράστιες δυνατότητες για το πού πηγαίνει της.

Σχετικά με το γήπεδο

Το μάθημα έχει παραδοθεί πάνω από 9 Δύο τρίωρα μαθήματα WebEx (με 10 λεπτά διάλειμμα στη μέση). Ο χρόνος που ξοδεύεται να περάσει από μια σειρά διαφανειών που παρέχονται από Zend με συζήτηση, ανά πάσα στιγμή. Μπορείτε να χρησιμοποιήσετε ένα μικρόφωνο για να μιλήσει με τον εκπαιδευτή, αλλά για να είμαι ειλικρινής δεν είδα κανέναν χρησιμοποιούν τίποτα περισσότερο από το παράθυρο του chat. Επιπλέον, μια VMWare Ubuntu μηχάνημα με την προϋπόθεση ότι έχει κωδικό παράδειγμα και τα έργα δημιουργήσει μια δοκιμαστική έκδοση του Zend Studio. Οι συνομιλίες ηγέτης πορεία στους συμμετέχοντες είτε πάνω από μια ολοκληρωμένη λύση VoIP, ή μπορείτε να καλέσετε χρησιμοποιώντας ένα από τα πολλά παγκόσμια κλήσης σε αριθμούς.

Κατά τη διάρκεια το υλικό αποτελείται από μια σύντομη επισκόπηση του πλαισίου και το πρότυπο MVC πριν από τον τίτλο σε ένα δείγμα βιβλίο επισκεπτών αίτηση. Η συζήτηση κατέδειξε bootstrapping, Zend_Application, πίνακες Db, πρόσβαση σε βάσεις δεδομένων, έντυπα, το φιλτράρισμα, ACL, επικύρωση, κλπ, κλπ. Βασικά θα καλύπτει όλα τα θέματα που θα απαιτούν να πάρετε μια βασική ιστοσελίδα σύσταση τρέχει όλη την ώρα που σας δίνει τα εργαλεία για να πάει και να πάρει πιο προηγμένες στο πλαίσιο (αν και αυτό δεν ισοδυναμεί με «Δείτε την ιστοσελίδα« μεγάλο μέρος του χρόνου).

Ο χρόνος είναι για να δοθεί κωδικός επάνω μερικά παραδείγματα, και να αναπτύξει το «βιβλίο επισκεπτών» και η εφαρμογή απλών «wiki». Προσωπικά ένιωθα ότι η παροχή του κώδικα ή κάθε εφαρμογή και στη συνέχεια να μας ζητούν να αναπτύξει αυτό που ήταν ουσιαστικά ένα αντίγραφο παράλληλα δεν παρέχουν πραγματικά μια καλή εμπειρία εκμάθησης. Θα προτιμούσα να αναπτύξει μια εφαρμογή παρόμοια, αλλά όχι ταυτόσημες. για την εφαρμογή παράδειγμα με το πλεονέκτημα της ύπαρξης ενός οδηγού να αναφερθώ. Εναλλακτικά κτίριο των αιτήσεων από το μηδέν με το διαδηλωτή θα του ενδεχομένως οδηγήσει σε περισσότερες ερωτήσεις σχετικά με το γιατί και πώς, δίνοντας έτσι μια καλύτερη κατανόηση του πλαισίου, μετά από όλα μπορείτε να αναζητήσετε λεπτομέρειες, μετά την πορεία.

Η τελευταία διάλεξη περιελάμβανε εργασίας σχετικά με την εφαρμογή wiki με τη βοήθεια / καθοδήγηση από τον εκπαιδευτή. Μετά την ανατροφοδότηση πορεία ελήφθη, τονίστηκε αρκετές φορές μέσα από την πορεία που Zend παίρνει ανάδραση πολύ σοβαρά, στην πραγματικότητα, προφανώς τη δική μας εκδοχή του σεμιναρίου ήταν αρκετά νέος. Μερικοί από τους άλλους προγραμματιστές στην εταιρεία θα αναλάβει τη διάρκεια σύντομα έτσι θα είναι ενδιαφέρον να δούμε αν αυτό έχει συμβεί.

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

Γενική αίσθηση

Κατά κάποιο τρόπο βρήκα τη διάρκεια χάσιμο χρόνου, ενώ σε άλλες ήταν πολύ βολικό. Ας ελπίσουμε ότι θα πάρω τους λόγους μου σε όλη σαφώς, και ίσως να παρέχουν κάποια τροφή για σκέψη ή χρήσιμες πληροφορίες (γνωρίζοντας μένα αυτό είναι απίθανο!).

Για τον εαυτό μου αυτό το μάθημα είχε ως στόχο σε πολύ χαμηλό επίπεδο. Έχοντας περάσει από τη Οδηγός Γρήγορης Εκκίνησης, διαβάστε Zend Rob Άλλεν πλαισίου δράσης, και συνεργάστηκε με το πλαίσιο λίγο δεν πήρα τίποτα πάρα πολύ. Θα του άρεσε το μάθημα για να πάρει από το τέλος της γρήγορης εκκίνησης και να αναπτύξει πρόσθετες δεξιότητες.

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

Όλα δεν είχε χαθεί, ήταν καλό να αφιερώσετε χρόνο επιβεβαιώνοντας τις βασικές λεπτομέρειες του πλαισίου και να πάρει να ρωτήσω μερικές ερωτήσεις σε περιοχές όπου δεν ήμουν 100%. Ήταν επίσης το χρόνο που πήρα να καθίσουν κάθε μέρα και να σκεφτείτε για κωδικοποίηση που χρησιμοποιούν το πλαίσιο και τα μελλοντικά σχέδια, κάτι που δεν θα του ήταν σε θέση να κάνει αλλιώς (μπορείτε να φανταστείτε την εταιρεία σας συμφωνείτε με τα εξής:?)). Τελευταίο αλλά όχι ασήμαντο μπορείτε επίσης να πάρετε ένα ωραίο πιστοποιητικό από Zend να πω ότι έχετε παρακολουθήσει το μάθημα (έστω και μέσω e-mail).

Zend-πλαίσιο Πιστοποίηση

Αυτό ήταν ένα ερώτημα που συνέχισαν να έρχονται στο μυαλό κατά τη διάρκεια, θα πρέπει να είμαι προετοιμασία για την πιστοποίηση; Η γρήγορη, εύκολη είναι ένα ηχηρό Όχι. Ο εκπαιδευτής φυσικά ήταν αρκετά σαφής ως προς αυτό με τα επιπλέον συμβουλές που για την πιστοποίηση θα πρέπει πραγματικά να χρησιμοποιήσετε το πλαίσιο για μια σε καθημερινή βάση και να αισθάνονται πολύ άνετα και σίγουροι για τη χρήση και τις μεθόδους του.

Περίληψη

Λαμβάνοντας υπόψη όλα όσα έχω γράψει παραπάνω, θα συνοψίσω τα πάντα σε δύο εύκολες ακόλουθα σημεία:

  • Νέα για την Zend-πλαίσιο: Το μάθημα αυτό κάνει ακριβώς αυτό που περιμένετε, σας δίνει μια ωραία εισαγωγή στο πλαίσιο και μια καλή γείωση στα βασικά από την οποία μπορείτε να χτίσετε. Το μάθημα φαίνεται να προκαλέσει το ενδιαφέρον και ενθουσιασμό για το πλαίσιο μεταξύ των developers.
  • Χρησιμοποιείται το Zend-πλαίσιο: Αν και ήταν ωραίο να καλύψουμε μερικά από τα πολύ βασικά ένιωσα το χρόνο, προσπάθεια και κεφάλαια για να λάβουν την πορεία του θα μπορούσε να ήταν καλύτερο να δαπανηθούν αλλού. Θα είναι ωραίο να see Zend δημιουργήσετε ένα νέο μάθημα υψηλότερου επιπέδου να αναλάβουν την ανάπτυξη στο επόμενο επίπεδο. - Τουλάχιστον προς το πρότυπο πιστοποίησης και πέρα γι 'αυτο θα υπογράψουν αμέσως.

Πίνακας HTML Δημιουργία Κατηγορία (HtmlTable.php)

Με , Τρίτη 5 Μαΐου του 2009 21:11

I που απαιτείται για να δημιουργήσει ένα πίνακα HTML από PHP δεδομένα για ένα έργο που δούλευα. Δυστυχώς μετά από λίγο Googling δεν μπορούσα να βρω τίποτα που ήταν κατάλληλο γι 'αυτό αποφάσισε να δημιουργήσει το δικό μου.

Αντιλαμβάνομαι ότι αυτό μπορεί να μην είναι το καλύτερο τραπέζι δημιουργεί τάξη ποτέ και υπάρχει πιθανώς μερικά bugs ακόμα σε αυτό, αλλά εγώ προτιμώ να μοιραστούν και αν κάποιος θέλει μια καλύτερη εκδοχή εγώ θα το δω:) Αρχικά ήθελα να δημιουργήσουν ένας πίνακας δημιουργήθηκε από μεμονωμένα αντικείμενα, π.χ. αντικείμενο κυττάρων, αντικείμενο σειράς (δημιουργήθηκε από αντικείμενα των κυττάρων), αλλά συνειδητοποίησα ότι τα γενικά σε αυτό θα είναι ΤΕΡΑΣΤΙΑ! Γι 'αυτό πάει πίσω σε μια εγκατάσταση πίνακα.

Η τάξη θα υπολογίσει το μέγιστο αριθμό των στηλών που χρησιμοποιούνται στην κεφαλίδα, υποσέλιδο, ή το σώμα και να γράψουν ότι αριθμό των στηλών. Κεφαλίδες, υποσέλιδα και η λεζάντα είναι προαιρετικά. Χαρακτηριστικά αποτελούνται από μια σειρά όπου το κλειδί είναι το όνομα του χαρακτηριστικού και η τιμή είναι η τιμή χαρακτηριστικού. Χαρακτηριστικά εφαρμόζονται σε ετικέτα πίνακα (με τη δημιουργία πίνακα - αρχικοποίηση τάξη), γραμμές του πίνακα (array [γραμμής] [ιδιότητα]), και κελιά πίνακα (array [γραμμής] [στήλη] [ιδιότητα]), αυτό ισχύει για τις κεφαλίδες, υποσέλιδα, και το σώμα πίνακα.

Παράδειγμα

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

 $ Πίνακα = νέα HtmlTable (array ('class' => 'δυνατότητα ταξινόμησης »,
                 "Στυλ" => "πλάτος: 550px ;'));
 $ Header [0] [0] ['περιεχόμενο'] = 'ID'?
 $ Header [0] [1] ['περιεχόμενο'] = 'Τίτλος'?
 $ Header [0] [2] ['περιεχόμενο'] = 'Ημερομηνία'?
 $ Header [0] [3] ['περιεχόμενο'] = 'τόπος'?

 $ Πίνακα-> AddHeader ($ header)?
 $ I = 0?
 foreach ($ newsList όπως $ newsItem) {
 $ ItemLink = "{$ newsItem ['τίτλος']}";
 $ TableBody [$ i] = array (0 => array ('περιεχόμενο' => $ newsItem ['id'],
 «Χαρακτηριστικά γνωρίσματα '=> array (' style '=>' font-weight: τολμηρό ;')),
 1 => array ('περιεχόμενο' => $ itemLink),
 2 => array ('περιεχόμενο' => $ newsItem ['date_posted']),
 3 => array ('περιεχόμενο' => $ newsItem ['χώρο']))?
 $ I + +?
 }
 $ Πίνακα-> addBody ($ tableBody)?
 echo $ πίνακα-> drawTable ()?
Ταυτότητα Τίτλος Ημερομηνία Τοποθεσία
9 Νέα 1 2009-04-04 10:40:00 όνομα του δικτυακού τόπου
10 Νέο 2 2009-04-04 12:44:11 όνομα του δικτυακού τόπου

Και η HTML μοιάζει με αυτό:

  =  "sortable" style =  "width: 550px;" > <Class = πίνακα "sortable" style = "width: 550px?">
 <THEAD>
	 <Tr    >
		 <Ος    > ID </ th> 
  <Ος    > Τίτλος </ th>
		 <Ος    > Ημερομηνία </ th>
		 <Ος    > Site </ th>
 </ Tr>
 </ THEAD>
 <TBODY>
	 <Tr    >
		 =  "font-weight: bold;" >9</ td > <Td style = "font-weight: τολμηρό?"> 9 </ td> 
		 <Td    > Ειδήσεις 1 </ td> <td    > 04/04/2009 10:40:00 </ td> <td    > < tr > Το όνομα της ιστοσελίδας </ td> </ tr> <tr    = "font-weight: bold;" >10</ td > < td > <Td style = "font-weight: τολμηρό?"> 10 </ td> <td    > Ειδήσεις 2 </ td> 
  <Td    > 04/04/2009 12:40:00 </ td>
		 <Td    > Το όνομα της ιστοσελίδας </ td>
 </ Tr> 
  </ TBODY>
 </ Table> 

Κωδικός

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

Συνδεθείτε με την DB χρησιμοποιούν Zend-πλαίσιο

Με , Τρίτη 14 Απριλίου 2009 21:06

Έχω καταφέρει να πάρει μια θέση σε λειτουργία με την Zend-πλαίσιο , τα πάντα είναι η υλοτομία ωραία να το Firebug / FirePHP ώστε το επόμενο βήμα ήταν να συνδεθείτε με το ΣΠ. Ήθελα επίσης να συνδεθούν κάποιες πρόσθετες πληροφορίες χρησιμοποιώντας το πλαίσιο, όπως πράκτορας χρήστη, ημερομηνία και ώρα, να πάρει και μετά τις μεταβλητές. Έτσι για να επεκτείνει το εγχειρίδιο λίγο εδώ τι έκανα:

// Set up logging to DB
$db = Zend_Registry ::get('dbAdapters');
$db = $db['general'];

$ ColumnMapping = array ("προτεραιότητας" => «προτεραιότητας»,
«Μήνυμα» => «μήνυμα»,
"Datetime '=>' timestamp»,
«User_agent '=>' user_agent»,
«Get_vars '=>' get_vars»,
«Post_vars '=>' post_vars»,
«Τόπος» => «τόπος»
)?

$ WriterDb = νέα Zend_Log_Writer_Db ($ db, «error_logging», $ columnMapping)?
$ Logger = νέα Zend_Log ($ writerDb)?

$ Logger-> setEventItem («datetime», η ημερομηνία («YMD H: i: s '))?
$ Logger-> setEventItem («user_agent», $ _SERVER ["HTTP_USER_AGENT"])?
$ Logger-> setEventItem («get_vars», print_r ($ _GET, αλήθεια))?
$ Logger-> setEventItem («post_vars», print_r ($ _POST, αλήθεια))?
$ Logger-> setEventItem («τόπος», SITE)?

$ Logger-> Πληροφορίες («ενημερωτικό μήνυμα»)?

Σε περίπτωση που τα κλειδιά στη σειρά $ columnMapping τα ονόματα των στηλών μου. «Προτεραιότητας» και «μήνυμα» είναι κατανοητή από Zend_Log_Writers αλλά τα πρόσθετα πεδία προστέθηκαν για να μου δώσει κάποιες πρόσθετες πληροφορίες.

Προφανώς αυτό προϋποθέτει ότι έχετε την καταγραφή εργασίας χρησιμοποιώντας έναν από τους άλλους συγγραφείς πρώτα:)

Ηνωμένο Βασίλειο ονόματα καταλόγων και το Facebook εφαρμογή

Με , am Παρασκευή 10 Απριλίου 2009 9:33

Ένα από τα διασκεδαστικά πράγματα που έχω εμπλακεί σε καταβάλλοντας παράλληλα προσπάθειες για Tracesmart είναι ο κατάλογος ονομάτων . Βασικά πήραμε τεράστια βάση δεδομένων με πληροφορίες μας, και έβγαλε ένα μεγάλο σωρό από στατιστικά στοιχεία για διάφορα ονόματα.

Η διαδικασία είναι όλα ένα μεγάλο SEO προσπάθεια για να επιστήσω την μεγαλύτερη επισκεψιμότητα στο site, αλλά παρέχει επίσης μερικά ενδιαφέροντα στοιχεία και στατιστικά όνομα.

Εδώ είναι ένα παράδειγμα για το όνομά μου Lloyd Watkin , ή υποθέτω πιο σωστά Steven Watkin . Πάρτε ένα λεπτό για να δούμε το όνομά σας στην ιστοσελίδα Tracesmart, μπορεί να είναι ενδιαφέρουσα?)

Έχουμε, επίσης, τα ονόματα των δεδομένων στατιστικά στοιχεία σχετικά με κατάλογο ονομάτων σελίδα που σας λέει ποια ονόματα έχουν ερευνηθεί και πόσο πρόσφατα. Αρκετά ενδιαφέρον να δούμε τα ονόματα διάσημων ανθρώπων του πετάξει μέχρι τα στατιστικά στοιχεία, όταν αυτά εμφανίζονται στις ειδήσεις. Του Ένα πρόσφατο παράδειγμα είναι αυτό του Λίαμ Νίσον , που είναι η γυναίκα πέθανε από ένα ατύχημα στο σκι πρόσφατα, αν και προφανώς οι άνθρωποι δεν έχουν πάει καλά σχετικά με τη γραφή (εξ ου και το τεράστιο αριθμό των εμφανίσεων σε αυτό το όνομα) - Liam Nilson .

Facebook Εφαρμογή

Μόλις ο κατάλογος ονομάτων δημιουργήθηκε θέτουμε για τη δημιουργία μιας εφαρμογής facebook το οποίο duely ονομάστηκε « Το όνομά μου ». Η εφαρμογή facebook είναι μια επέκταση του καταλόγου ονομάτων και παρέχει κάποια πρόσθετα στατιστικά στοιχεία. Για να προσθέσει στον κατάλογο ονόματα στο Facebook λογαριασμό σας μπορείτε να επισκεφθείτε:

http://apps.facebook.com/my-name/

Άτομα με ειδικές ανάγκες Τα πεδία φόρμας δεν έχουν υποβληθεί ...

Με , είμαι Πέμπτη 4 Σεπτεμβρίου 2008 11:01

Ως μια γρήγορη σημείωση, ως μέρος της συνεχιζόμενης γραφείο λογισμικό περιουσίας του έργου που έχω πάει πίσω στην επεξεργασία είσοδο ημερομηνία εντός του συστήματος. Τώρα, αντί να επιτρέπει στους χρήστες να εισέρχονται σε κάθε παλιό κομμάτι του κειμένου που έχω μεταπηδήσει σε ένα Javascript επιλογέα ημερομηνίας / ώρα (για το βραχυπρόθεσμο διάστημα) που επιτρέπει στο χρήστη να «πάρει» και την ημερομηνία και την ώρα από ένα αναδυόμενο παράθυρο.

Τώρα, για το παλιό μου Systema του επιλογέα θα εμφανιστεί όταν ο χρήστης κάνει κλικ στο πεδίο εισαγωγής . Αυτό όμως θα επιτρέπουν στο χρήστη να αγνοήσει το πεδίο κειμένου και εξακολουθεί να πάει και το είδος κάθε παλιό πράγμα στο πεδίο. Αυτό δεν ήταν ιδανική. Έτσι λύση μου ήταν να « απενεργοποίηση »το πεδίο φόρμας και να θέσει ένα χρονικό δίπλα του με μια onclick εκδήλωση καλώντας την ημερομηνία / ώρα επιλογέα. Αυτό σήμαινε ότι ο χρήστης ήταν σχεδόν αναγκάζονται να χρησιμοποιούν τα ωραία ημερομηνία / επιλογέα χρόνο έτσι ημερομηνίες θα πήγαινε με τη σωστή μορφή (αν και αυτό πρέπει ακόμη να επικυρωθεί!).

Έτσι άρχισα να περνά όμορφα διαμορφωμένη μου ημερομηνία-ώρα (ες) με τη μορφή και να πάρει προσπαθώντας να τους πάρει με PHP 's $ _GET ή $ _POST μεταβλητές. Πεδία Unfortunately'disabled »δεν πέρασε από υποβολές μορφή Αυτό ήταν πολύ ενοχλητικό. Η λύση ήταν να μπορέσει το στοιχείο εισόδου χρησιμοποιώντας javascript όταν η φόρμα υποβλήθηκε με το onsubmit εκδήλωση.

Αυτό σήμαινε ότι τα δεδομένα της φόρμας είχε περάσει, όπως απαιτείται και ήταν όμορφα διαμορφωμένη έτοιμη για επικύρωση ... Â

Πλήκτρα Array Αναζήτηση και αγώνες Επιστροφή

Με , Τετάρτη 13 Αυγούστου 2008 16:26

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

«ΓΙΑΤΙ θα χρειάζομαι αυτό;" θα ήταν πιθανώς η πρώτη ερώτηση που θα ζητήσετε, και αν ήθελα να ψάξετε μέσα από μια σειρά για όλα τα στοιχεία που σχετίζονται με τις διαστάσεις ενός αντικειμένου τότε θα μπορούσα να βγάλει τα κατάλληλα πλήκτρα από που χρησιμοποιούν αυτό το μικρό λειτουργία:

 <? function searchArrayKey($array,$search) {  $search = strtolower($search);  if (is_array($array))  {   foreach ($array as $key => $data)   {    if (strpos(strtolower($key),$search) === 0) { $returnArray[$key] = $data; }   }   return $returnArray;  } else  { // User hasn't subimitted an array...   return false;  } } ?> 

Έτσι για παράδειγμα αν ήθελα να αναζητήσετε μια σειρά στοιχείων δεδομένων για τα δεδομένα διάσταση τότε θα μπορούσα να κάνω τα εξής (και να εκτυπώσετε την οθόνη προφανώς):

 $dimensions = searchArrayKeys($itemArray,'dimension'); 

Ποια θα επιστρέψει κάτι σαν:

 print_r($dimensions); Array ( [dimension_height] => 20 [dimension_width] => 30 [dimension_depth] => 40 ) 

Προσαρμοσμένη php.ini με Plesk

Με , Τετάρτη 13 Αυγούστου 2008 15:53

Έχουμε ένα dedicated server με ukFast Β επί της οποίας θα τρέξει μια σειρά τομέων που υπάρχουν σε virtual servers που τρέχουν κάτω από Plesk . Τέλος πάντων, για τα περισσότερα από τα domain μου θέλω να κρύψει μακριά προειδοποιήσεις και για την ασφάλεια κρατήσει τα σφάλματα στα αρχεία καταγραφής, ωστόσο σε μερικά από τα domain μου (όπως αυτές που είμαι στην ανάπτυξη), θέλω να δείξω κάθε μικρή άσχημη προειδοποίηση και σφαλμάτων που εμφανίζεται.

Αν μπορώ να επεξεργαστώ μου PHP . INI "> php.ini αυτό επηρεάζει κάθε τομέα στο διακομιστή, όχι μια καλή ιδέα ειδικά όταν αρκετές από τις περιοχές είναι ζωντανή πλήρως εκδόσεις A, ούτως ώστε να πάρει γύρω από αυτό πρέπει να βάλετε ένα αρχείο με όνομα vhosts.conf στον κατάλογο conf σας, για παράδειγμα, /var/www/vhosts/<my_domain>/conf/vhost.conf .

Μόλις έχετε προσθέσει τον πρόσθετο κωδικό σας, πάλι για παράδειγμα που περιλαμβάνονται,

 php_value error_reporting E_ALL php_value display_errors On 

ακολουθούμενη από εκτελώντας την ακόλουθη εντολή (αυτό αναδιαμορφώνει το σύνολο των τομέων σας ακριβώς του ταχύτερη lazier από ό, τι πληκτρολογείτε το όνομα τομέα ,

 # /usr/local/psa/admin/bin/websrvmng -a 

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

 # /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=<my_domain> 

Μετά από αυτή την εντολή αν δείτε να httpd.include αρχείο, θα δείτε ότι httpd.include σας θα έχει συμπεριλάβει γραμμή για vhost.conf σας, κάτι σαν αυτό:

 Include /srv/www/vhosts/domain.com/conf/vhost.conf 












Θέμα Πανόραμα από Themocracy

8 επισκέπτες online τώρα
6 άτομα, 2 bots, 0 μέλη
Max επισκέπτες σήμερα: 17 στις 04:02 π.μ. UTC
Αυτό το μήνα: 19 στις 19-08-2011 06:09 π.μ. UTC
Αυτό το έτος: 130 στις 28-03-2011 22:40 UTC
Όλα ώρα: 130 στις 28-03-2011 22:40 UTC