Γειά σας, Χριστός Ανέστη. Η εντολή CURRENT, όπως φάνηκε από το παράδειγμα εκτέλεσης που μας δόθηκε με την άσκηση, δεν είναι υποχρεωτικό να δείχνει στο πρώτο στοιχείο της λίστας, αλλά και σε κάποιο ενδιάμεσο. Από την άλλη, η άσκηση λέει ότι όταν τελειώνει κάποιο κομμάτι mp3 η αντίστοιχη καταχώρηση στη λίστα πηγαίνει στο τέλος της. Από αυτό βγαίνει το συμπέρασμα ότι η εντολή CURRENT θα δείχνει πάντα στο πρώτο στοιχείο της λίστας (δεν μπορεί αλλιώς να γίνει). Βέβαια, στο τελευταίο μάθημα πριν τις διακοπές του Πάσχα, είχαμε αναφέρει ότι στην εργασία θα χρησιμοποιηθεί μία (πραγματική) playlist και μία εικονική λίστα, ώστε να δίνεται μία απάντηση στο ερώτημα. Κατόπιν τούτου, θα ήθελα να ρωτήσω κάποια πράγματα πάνω σ'αυτό: 1. H εντολή EXCHANGE θα αλλάξει την εικονική ή την πραγματική λίστα; Το ρωτώ γιατί στην ομάδα όπου είμαι υπάρχει αυτή η απορία (ακόμη). 2. Αν η EXCHANGE αλλάζει την πραγματική λίστα, θα επιστρέφει λάθος αν πάμε να ανταλλάξουμε στοιχεία μεταξύ των οποίων είναι και το πρώτο, έτσι δεν είναι; 3. Όταν καλείται μία οποιαδήποτε εντολή (πχ η LIST), θα καταστρέφεται η πρώτα η εικονική λίστα; Ευχαριστώ εκ των προτέρων. stasot _______________________________________________ sysprog mailing list sysprog@students.cs.unipi.gr http://students.cs.unipi.gr/cgi-bin/mailman/listinfo/sysprog Reply Forward Invite Efstathios to Gmail d.a.glynos to Unix More options Apr 27 (1 day ago) On Wed, 26 Apr 2006, Efstathios Sotiriou-Xanthopoulos wrote: > Γειά σας, Χριστός Ανέστη. Χρόνια Πολλά σε όλους, ελπίζω να προλάβατε να ξεκουραστείτε κατά τις διακοπές του Πάσχα. > Η εντολή CURRENT, όπως φάνηκε από το παράδειγμα εκτέλεσης που μας δόθηκε με > την άσκηση, δεν είναι υποχρεωτικό να δείχνει στο πρώτο στοιχείο της λίστας, > αλλά και σε κάποιο ενδιάμεσο. Τι ξέρουμε για το κομμάτι που παίζεται αυτή τη στιγμή από τον streamer? α) Σίγουρα δεν είναι το κομμάτι που βρίσκεται πρώτο στη λίστα (καθώς αυτό θα παιχθεί αμέσως μετά, αν η λίστα διατηρήσει την ίδια μορφή μέχρι τότε) β) *Μπορεί* να είναι το τελευταίο κομμάτι στη λίστα. Λέω μπορεί, καθώς όταν δόθηκε το όνομα του κομματιού στην 'queue', ναι μεν μπήκε τελευταίο στη λίστα, αλλά έκτοτε μπορεί κάποιος χρήστης να έχει προλάβει να προσθέσει και άλλο κομμάτι στο τέλος της playlist. Συνεπώς, μπορείς να είσαι σίγουρος ότι θα είναι στο τέλος της λίστας μόνο τη στιγμή που δίνεται στην queue και όχι σε οποιαδήποτε στιγμή αναπαραγωγής του κομματιού από τον streamer. Άρα η μόνη σίγουρη λύση είναι να κρατάτε ποιο ήταν το τελευταίο τραγούδι που δώσατε στην 'queue'. Να προσπαθείτε όσο μπορείτε να μπείτε στη φιλοσοφία του event-driven προγραμματισμού. Γνωρίζετε για την κατάσταση του συστήματος μόνο εξαιτίας των τελευταίων γεγονότων (events) που έχουν συμβεί. > Από την άλλη, η άσκηση λέει ότι όταν τελειώνει > κάποιο κομμάτι mp3 η αντίστοιχη καταχώρηση στη λίστα πηγαίνει στο τέλος της. > Από αυτό βγαίνει το συμπέρασμα ότι η εντολή CURRENT θα δείχνει πάντα στο > πρώτο στοιχείο της λίστας (δεν μπορεί αλλιώς να γίνει). Βλέπε παραπάνω. > Βέβαια, στο τελευταίο > μάθημα πριν τις διακοπές του Πάσχα, είχαμε αναφέρει ότι στην εργασία θα > χρησιμοποιηθεί μία (πραγματική) playlist και μία εικονική λίστα, ώστε να > δίνεται μία απάντηση στο ερώτημα. Μη μπερδεύεσαι με εικονικές/πραγματικές λίστες. H πραγματικότητα είναι μία: α) Μία λίστα από κομμάτια που προστατεύεται από το πρόγραμμά σας λόγω των πολλών χρηστών που την «πειράζουν» ταυτόχρονα β) Το κομμάτι που παίζεται αυτή τη στιγμή (βλ. παραπάνω) 12:24 O χρήστης κάνει αίτηση για την playlist 12:28 Ο χρήστης αλλάζει τη θέση δύο κομματιών μεταξύ τους Μεταξύ τις 12:24 και 12:28 μπορεί κάποιος άλλος να πρόλαβε να αλλάξει τη θέση κάποιων κομματιών. Τι σημαίνει αυτό για τις επόμενες εντολές του χρήστη από τη στιγμή που ΚΑΝΕΙΣ δε μπορεί να αφαιρέσει κομμάτι; :-) > Κατόπιν τούτου, θα ήθελα να ρωτήσω κάποια πράγματα πάνω σ'αυτό: > > 1. H εντολή EXCHANGE θα αλλάξει την εικονική ή την πραγματική λίστα; Το ρωτώ > γιατί στην ομάδα όπου είμαι υπάρχει αυτή η απορία (ακόμη). Η εντολή EXCHANGE θα αλλάξει τη θέση των κομματιών που κάνει reference ο χρήστης. Αν έχει αλλάξει η λίστα έκτοτε, αυτό σημαίνει ότι τα δύο KOMMATIA στα οποία αναφέρεται ο χρήστης θα αλλάξουν απλά θέση στη νέα λίστα ;-) Δε θα πρέπει να θεωρεί ο χρήστης οτι αλλάζοντας το 1 με το 4 ότι το 4 θα βρεθεί πρώτο στη λίστα. Απλά ότι το τραγούδι που συμβολίζουμε με 4 θα ανταλλαχθεί με το 1 σε όποια θέση βρίσκονται πλέον. > 2. Αν η EXCHANGE αλλάζει την πραγματική λίστα, θα επιστρέφει λάθος αν πάμε να > ανταλλάξουμε στοιχεία μεταξύ των οποίων είναι και το πρώτο, έτσι δεν είναι; Τι το special έχει το πρώτο; > 3. Όταν καλείται μία οποιαδήποτε εντολή (πχ η LIST), θα καταστρέφεται η πρώτα > η εικονική λίστα; Η LIST αναθέτει αριθμούς στα κομμάτια της παρούσας playlist, ώστε να μπορεί να τα διαχειριστεί στο session του o χρήστης. Άρα με κάθε LIST θα ανανεώνεται αυτή η αρίθμηση. > Ευχαριστώ εκ των προτέρων. > stasot Ελπίζω να έγινα κατανοητός. Παίδες να στέλνετε οποιεσδήποτε απορίες έχετε σχετικά με το design του προγράμματος. Γι'αυτό είμαστε εδώ. Καλό απόγευμα, Δημήτρης