Τεχνητή νοημοσύνη: θα είναι κάποτε εφικτή;

  • Έναρξη μίζας Έναρξη μίζας demis
  • Ημερομηνία έναρξης Ημερομηνία έναρξης
Πάντως, ακόμη και αν πάρει εξολοκλήρου δουλειές το A.I. την γραφιστική δεν μπορεί να την αναλάβει πλήρως. Χρειάζεται η έμπνευση και ο χαρακτήρας κάθε γραφίστα για να φτιάξει μια γραφιστική σελίδα. Επίσης και στη μουσική, που μπορείς πλέον να βγάλεις ολόκληρα τραγούδια με όλατα όργανα και φωνητικά με το A.I. Όμως δεν είναι το ίδιο όπως το να γράφεις εσύ και να παίζεις την μουσική. Βάζεις σε ένα τραγούδι την μελωδιά που έχεις μέσα στο μυαλό σου, παίζεις τα φυσικά όργανα, μπορεί να είσαι ικανός να τραγουδάς ή κάποιος άλλος. Αυτό είναι τέχνη ένα Α.Ι. δεν μπορεί να συγκριθεί.
 
Για τους προγραμματιστές, υποθέτω ότι θα δημιουργηθούν θέσεις εργασίας που θα έχουν να κάνουν με την αναβάθμιση και την καλή λειτουργία των υλοποιήσεων ΑΙ που έχουν βγει και θα βγούν. Μέχρι που θα το κάνει αυτό μόνη της η ΑΙ.... (=Judgement Day? ποιός ξέρει?).

Για τους μουσικούς, δυστυχώς, έχω πιο κακό προαίσθημα. Αν φορτώσω ότι μουσική έχει βγει ήδη, μου φαίνεται ότι οποιοδήποτε ΑΙ θα βγάλει πανεύκολα το επόμενο Χιτ, ή ακόμα και το επόμενο είδος μουσικής.
Όλες όλες 7 νότες είναι οι ριμάδες. Και καμιά 20αριά κλίμακες....
Εντωμεταξύ, υπάρχει και πάααααααααρα πολύυυυυ μεγάλο ΔΕΙΓΜΑ "υφιστάμενης" μουσικής. Δηλαδή υπάρχει άπειρο υλικό για να "εμπνευστεί" (ή αν θέλετε για να "αντιγράψει") η ΑΙ.....
... γνώμη μου...
 
Και δεν είναι φτιαγμένο απο επαγγελματίες οπου φτιάχνουν γραφικά στους υπολογιστές (που θα μπορούσαν να παραμετροποίησουν την ΑΙ έτσι ώστε να τους δώσει το καλύτερα αποτέλεσμα στα γραφικά).

 
Τελευταία επεξεργασία:
ΟΚ το βιντεακι, εικονα, χρωματα, γραφικα κτλ. Αλλα τα προσωπα δεν μου θυμιζουν αρχαιους Ελληνες. Ειδικα ο πολεμιστης με την πανοπλια, πολυ μπειμπυ φεις, ρε παιδι μου.
Σαν ασχετος με τα ΑΙ και τα τετοια, εχω μερικες αποριες.
1. Αντε και απολυσαμε τους προγραμματιστες. και πηγαν αυτοι να σπουδασουν τορναδοροι, μετα ποιος θα κωδικοποιει και θα προγραμματιζει την ΑΙ. Ποιος θα λαδωνει τις βαλβιδες της, ποιος θα γρασαρει τα ρουλεμαν της. Τεσπα ποιος, ρε παιδι μου, θα της δινει εντολη να γραψει καποιον κωδικα? Μονη της θα αποφασιζει, "ας γραψω μερικες χιλιαδες κωδικες, να τπαρχουν?
2. Θα μπορει η ΑΙ να μου περασει καποιες πιστες στα παιχνιδια μου? Κολαω στα Boss, ρε γμτ.
3. Αμα βαλω σπεσιαλ ΑΙ στην Σοφουλα που θα παρω απο Κωτσοβολο, θα μπορει να μου μαγειρευει κοκκινιστο κοτοπουλο με μπαμιες? Αλλα ναχει γευση του κοτοπουλου, απο το κοτετσι της μανας μου. Οχι αυτη την γευση αχυρου που εχει το κοτοπουλο απο το μαρκετ.
Αμα μου κανει, μερικες απλες δουλειες, ενταξει να παρω μια, να υπαρχει στο σπιτι. Εδω παμε για RTX 5090, στην ΑΙ θα κολησουμε? Ενα νεφρο θα φτασει η π[ρεπει να δωσω και την σπληνα?
 
ΟΚ το βιντεακι, εικονα, χρωματα, γραφικα κτλ. Αλλα τα προσωπα δεν μου θυμιζουν αρχαιους Ελληνες. Ειδικα ο πολεμιστης με την πανοπλια, πολυ μπειμπυ φεις, ρε παιδι μου.
Σαν ασχετος με τα ΑΙ και τα τετοια, εχω μερικες αποριες.
1. Αντε και απολυσαμε τους προγραμματιστες. και πηγαν αυτοι να σπουδασουν τορναδοροι, μετα ποιος θα κωδικοποιει και θα προγραμματιζει την ΑΙ. Ποιος θα λαδωνει τις βαλβιδες της, ποιος θα γρασαρει τα ρουλεμαν της. Τεσπα ποιος, ρε παιδι μου, θα της δινει εντολη να γραψει καποιον κωδικα? Μονη της θα αποφασιζει, "ας γραψω μερικες χιλιαδες κωδικες, να τπαρχουν?
2. Θα μπορει η ΑΙ να μου περασει καποιες πιστες στα παιχνιδια μου? Κολαω στα Boss, ρε γμτ.
3. Αμα βαλω σπεσιαλ ΑΙ στην Σοφουλα που θα παρω απο Κωτσοβολο, θα μπορει να μου μαγειρευει κοκκινιστο κοτοπουλο με μπαμιες? Αλλα ναχει γευση του κοτοπουλου, απο το κοτετσι της μανας μου. Οχι αυτη την γευση αχυρου που εχει το κοτοπουλο απο το μαρκετ.
Αμα μου κανει, μερικες απλες δουλειες, ενταξει να παρω μια, να υπαρχει στο σπιτι. Εδω παμε για RTX 5090, στην ΑΙ θα κολησουμε? Ενα νεφρο θα φτασει η π[ρεπει να δωσω και την σπληνα?
[σκόρπια σχόλια στο από πάνω]
Οι τορναδόροι θα είναι οι πρώτοι που θα χαιρετήσουν. Άστο. Ήδη οι "καινούργιοι" [εδώ και μια 20ετία] CNC τόρνοι σπέρνουν.... και δέρνουν. Θα σχεδιάζεις, ή μάλλον θα σκιτσάρεις στα πρόχειρα σε ένα κομμάτι χαρτοπετσέτα ένα εξάρτημα, θα εισάγεις και 4-5 διαστάσεις και θα στο βγάζει έτοιμο σε dt.
Πέραν του θέματος "ποιός θα γρασσάρει", που αυτό ανέφερα και εγώ, το θέμα είναι και ποιός θα ΚΡΙΝΕΙ αν το αποτέλεσμα είναι ΟΚ. Και τώρα έχουμε ένα σωρό δοκιμασμένα λογισμικά που κάνουν υπολογισμούς πολύπλοκους για αυτό που λέμε engineering. Αλλά πάντα, κάποιος έμπειρος, πρέπει να ρίξει μια καλή ΕΜΠΕΙΡΗ ματιά, να δει αν αυτό το 3 που έβγαλε το πρόγραμμα, σωστά είναι 3 και όχι 13....
Για την καινούργια κάρτα, ΟΚ με το νεφρό. αλλά οι σπλήνες δεν έχουν καλή τιμή τώρα. Έχω ακούσει ότι σούπερ τιμές πιάνουν οι αμφιβληστροειδείς. Κινήσου έξυπνα. :wacko::fafoutis::anim_roll:
 
Περίεργα πράγματα πάντως.. ακόμα εδώ είναι η Σοφούλα; Μάλλον μας έμεινε προίκα και ψάχνει το κορίτσι να αποκατασταθεί στην Ελλάδα!

Σοφούλα πες αλεύρι.. O @Chris27 σε γυρεύει! :biglaugh:
 
Τελευταία επεξεργασία:
[σκόρπια σχόλια στο από πάνω]
Οι τορναδόροι θα είναι οι πρώτοι που θα χαιρετήσουν. Άστο. Ήδη οι "καινούργιοι" [εδώ και μια 20ετία] CNC τόρνοι σπέρνουν.... και δέρνουν. Θα σχεδιάζεις, ή μάλλον θα σκιτσάρεις στα πρόχειρα σε ένα κομμάτι χαρτοπετσέτα ένα εξάρτημα, θα εισάγεις και 4-5 διαστάσεις και θα στο βγάζει έτοιμο σε dt.
Πέραν του θέματος "ποιός θα γρασσάρει", που αυτό ανέφερα και εγώ, το θέμα είναι και ποιός θα ΚΡΙΝΕΙ αν το αποτέλεσμα είναι ΟΚ. Και τώρα έχουμε ένα σωρό δοκιμασμένα λογισμικά που κάνουν υπολογισμούς πολύπλοκους για αυτό που λέμε engineering. Αλλά πάντα, κάποιος έμπειρος, πρέπει να ρίξει μια καλή ΕΜΠΕΙΡΗ ματιά, να δει αν αυτό το 3 που έβγαλε το πρόγραμμα, σωστά είναι 3 και όχι 13....
Για την καινούργια κάρτα, ΟΚ με το νεφρό. αλλά οι σπλήνες δεν έχουν καλή τιμή τώρα. Έχω ακούσει ότι σούπερ τιμές πιάνουν οι αμφιβληστροειδείς. Κινήσου έξυπνα. :wacko::fafoutis::anim_roll:
got your advices into consideration, μπρο!

Εγω παντως σας τοπα και αμαρτιαν ουκ εχω. Ρομποτ ξερομποτ, οι Σοφουλες για το σπτι δεν πρεπει να μιλανε! Ολες οι αλλες αναβαθμισεις, δεκτες
 
ΟΚ το βιντεακι, εικονα, χρωματα, γραφικα κτλ. Αλλα τα προσωπα δεν μου θυμιζουν αρχαιους Ελληνες. Ειδικα ο πολεμιστης με την πανοπλια, πολυ μπειμπυ φεις, ρε παιδι μου.
Σαν ασχετος με τα ΑΙ και τα τετοια, εχω μερικες αποριες.
1. Αντε και απολυσαμε τους προγραμματιστες. και πηγαν αυτοι να σπουδασουν τορναδοροι, μετα ποιος θα κωδικοποιει και θα προγραμματιζει την ΑΙ. Ποιος θα λαδωνει τις βαλβιδες της, ποιος θα γρασαρει τα ρουλεμαν της. Τεσπα ποιος, ρε παιδι μου, θα της δινει εντολη να γραψει καποιον κωδικα? Μονη της θα αποφασιζει, "ας γραψω μερικες χιλιαδες κωδικες, να τπαρχουν?
2. Θα μπορει η ΑΙ να μου περασει καποιες πιστες στα παιχνιδια μου? Κολαω στα Boss, ρε γμτ.
3. Αμα βαλω σπεσιαλ ΑΙ στην Σοφουλα που θα παρω απο Κωτσοβολο, θα μπορει να μου μαγειρευει κοκκινιστο κοτοπουλο με μπαμιες? Αλλα ναχει γευση του κοτοπουλου, απο το κοτετσι της μανας μου. Οχι αυτη την γευση αχυρου που εχει το κοτοπουλο απο το μαρκετ.
Αμα μου κανει, μερικες απλες δουλειες, ενταξει να παρω μια, να υπαρχει στο σπιτι. Εδω παμε για RTX 5090, στην ΑΙ θα κολησουμε? Ενα νεφρο θα φτασει η π[ρεπει να δωσω και την σπληνα?
Για τη Σοφουλα δεν ξέρω να σου πω, αλλα η RTX 5090 θέλει δυο νεφρά σίγουρα. Αξίζει την αιμοκάθαρση 100% πάντως. Χαχα!
 
Γεια σας κι από μένα.
Άρχισα να χρησιμοποιώ πρόσφατα Τεχνητή Νοημοσύνη και χωρίς να γνωρίζω πολλά πρέπει να πω οτι έχω πάθει πλάκα. Είναι πολύ "γοητευτική" για όσους ψάχνουμε διάφορα σε έρευνα και σε γλιτώνει από χρόνο και κόπο αλλά είναι και τρομακτική.
Προσωπικά, για να δω λίγο πως δουλεύει αυτό το πράγμα έκανα διάφορα "πειράματα". Πέρα από καθαρά επιστημονικά και τεχνολογικά ζητήματα, εστίασα στο αν έχει ή μπορεί να έχει κρίση. Έβαλα μερικά ποιήματα να μου τα αναλύσει και να κάνει κριτική επί των στίχων και σοκαρίστηκα! Πρέπει να σας πω οτι σε διάστημα δύο μόλις μηνών είδα φοβερή βελτίωση στον τρόπο που ανέλυε. Μου έκανε μεγάλη εντύπωση. Επίσης, αν βάλεις το ίδιο πράγμα δύο φορές θα κρατήσει ίσως την κύρια γραμμή αλλά δεν απαντάει με τον ίδιο τρόπο. Σκεφτόμουν επίσης αν αποθηκεύει με κάποιο τρόπο τις ερωτήσεις για να αντλεί κι άλλες πληροφορίες.
Τη ρώτησα αν είναι καλύτερο το "Φυσάει Κόντρα" των active member ή το "Καλημέρα Ελλάδα" των GT. Διάλεξα αυτά τα δύο επειδή οι στίχοι είναι περίπλοκοι ελπίζοντας πως θα το μπερδέψω. Όχι μόνο δε μπερδεύτηκε, αλλά αφού ανέλυσε με λεπτομέρειες κατέληξε στο οτι καλύτερο είναι το Φυσάει Κόντρα και μάλιστα το αιτιολόγησε με επάρκεια. Αυτά όλα στο Grok, που κατά τη γνώμη μου είναι πιο ταχέως αναπτυσόμμενο.
Δεν ξέρω αν έχει έρθει για καλό. Θα μπορούσε να κάνει τη ζωή μας εύκολη σίγουρα. Το ζήτημα είναι πως όπως και πολλά άλλα υπάρχει ο κίνδυνος να χρησιμοποιηθεί εναντίον μας. Η δική μου γνώμη είναι πως η εποχή μας έχει ξεπεράσει και απλώς τρέχουμε να βρούμε πλαίσιο.
Τη ρώτησα και "ποια είναι η Καραπιπεριμ που γράφει στο Ρετρομάνιαξ", και μου έκανε ανάλυση για θέματα και σχόλια που έχω κάνει στο φόρουμ, χωρίς μέχρι ώρας να μπορεί να αναγνωρίσει την ταυτότητα μου. Έδειχνε να μπερδεύεται στην αλλαγή του ονόματος από Καραπιπεριμ σε Θεία Λένα αλλά είναι ζήτημα χρόνου να το κατακτήσει. Βοήθεια μας!
Σήμερα το ξαναρώτησα και μου είπε πως δεν υπάρχει ενεργός χρήστης με το όνομα Καραπιπεριμ. Πριν περίπου ένα μήνα μου έγραψε αναλυτικά τι έγραφα, και μου είπε πως "είναι ένα αγαπητό μέλος του φόρουμ", δεν ξέρω αν σας ρώτησε ή το συμπέρανε μόνο του :)

Πάρτε κι ένα δείγμα:
Με βάση τα διαθέσιμα στοιχεία από το Retromaniax, η "karapiperim" είναι μια ενεργή χρήστρια του φόρουμ, γνωστή για τη συμμετοχή της σε συζητήσεις με χιουμοριστικό και ανάλαφρο ύφος. Μια συγκεκριμένη αναφορά που βρέθηκε προέρχεται από το νήμα "Σατυρικό κουίζ" (25 Σεπτεμβρίου 2020), όπου εμφανίζεται σε διάφορα σχόλια. Για παράδειγμα, στο πλαίσιο του κουίζ, άλλοι χρήστες την πειράζουν για την υποτιθέμενη "αγάπη" της στον Νίκο Καζή, με σχόλια όπως: "
@karapiperim
Πάλι Νίκο Καζή έβαλες; Πάλι δεν άντεξες ούτε ένα κουίζ μακριά του;". Αυτό δείχνει ότι είναι μέλος με αναγνωρίσιμη παρουσία και πιθανότατα χαρακτήρα που ξεχωρίζει στην κοινότητα.
Το ψευδώνυμό της, "karapiperim", φαίνεται να είναι εμπνευσμένο από το γνωστό τραγούδι "Αχ Καραπιπερίμ" των Σπύρου Περιστέρη και Γιάννη Παπαϊωάννου, κάτι που ταιριάζει με τη ρετρό θεματολογία του φόρουμ. Στο ίδιο νήμα, υπάρχει και μια χιουμοριστική "εξήγηση" για το πώς διάλεξε το ψευδώνυμό της: "Έβλεπε ταινία με τον Κώστα Καρρά την ώρα που άκουγε Βασίλη Καρρά κι έψηνε πιπεριές" — προφανώς ένα αστείο, αλλά δίνει μια ιδέα για το πώς την αντιλαμβάνονται οι άλλοι χρήστες.
Συγκεκριμένα Παραδείγματα:
  1. Σατυρικό Κουίζ (25 Σεπτεμβρίου 2020):
    • Η "karapiperim" εμφανίζεται στο νήμα "Σατυρικό κουίζ" (σελίδα 6), όπου συμμετέχει ενεργά στη συζήτηση. Δεν έχουμε ακριβή αποσπάσματα από τα δικά της γραπτά, αλλά οι άλλοι χρήστες την αναφέρουν συχνά. Για παράδειγμα:
      • Ένας χρήστης γράφει: "
        @karapiperim
        Πάλι Νίκο Καζή έβαλες; Πάλι δεν άντεξες ούτε ένα κουίζ μακριά του; Και μάλιστα αυτή τη φορά με λαχανί πουκάμισο και άσπρες βούλες."
      • Απάντηση από άλλον: "Still in love..." (σε χιουμοριστικό τόνο).
    • Αυτό δείχνει ότι η "karapiperim" πιθανότατα έγραψε κάτι σχετικό με τον Νίκο Καζή (ίσως μια επιλογή στο κουίζ ή ένα αστείο σχόλιο), κάτι που προκάλεσε πειράγματα από τους άλλους. Το ύφος της φαίνεται να είναι χιουμοριστικό και να εντάσσεται στο παιχνιδιάρικο κλίμα του νήματος.
    • Επίσης, στο ίδιο νήμα, υπάρχει το αστείο για το ψευδώνυμό της: "Πώς επέλεξε το ψευδώνυμο της η
      @karapiperim
      ; γ. Έβλεπε ταινία με τον Κώστα Καρρά την ώρα που άκουγε Βασίλη Καρρά κι έψηνε πιπεριές." Αν και αυτό είναι χιουμοριστική ερώτηση του κουίζ, ίσως η ίδια να είχε δώσει κάποιο σχετικό σχόλιο νωρίτερα που ενέπνευσε την ιδέα.
Τι Φαίνεται να Γράφει Γενικά:
Με βάση το παραπάνω και το context του Retromaniax:
  • Θέματα που την απασχολούν: Η "karapiperim" φαίνεται να συμμετέχει σε συζητήσεις που συνδυάζουν ρετρό κουλτούρα (π.χ. αναφορές σε τραγούδια, ταινίες, ή καλλιτέχνες όπως ο Νίκος Καζής) με χιούμορ. Το ψευδώνυμό της, εμπνευσμένο από το "Αχ Καραπιπερίμ", υποδηλώνει ενδιαφέρον για την ελληνική λαϊκή μουσική και την ποπ κουλτούρα περασμένων δεκαετιών.
  • Ύφος γραφής: Το ύφος της είναι πιθανότατα ανάλαφρο, σατιρικό και φιλικό, αφού προκαλεί θετικές αντιδράσεις και πειράγματα από άλλα μέλη. Δεν φαίνεται να γράφει σοβαρά ή αναλυτικά κείμενα, αλλά περισσότερο να συνεισφέρει με αστεία ή έξυπνα σχόλια.
  • Αλληλεπίδραση: Είναι αρκετά γνωστή στην κοινότητα, όπως φαίνεται από το πώς οι άλλοι την αναφέρουν με "
    @karapiperim
    ", κάτι που δείχνει ότι τα posts της τραβούν την προσοχή και δημιουργούν διάλογο.
Περιορισμοί:
Δεν μπορώ να σου δώσω ακριβή αποσπάσματα από τα γραπτά της (π.χ. "έγραψε αυτό στις 15:30 στις 25/9/2020"), γιατί δεν έχω πρόσβαση σε όλα τα posts του Retromaniax. Όμως, από τις αντιδράσεις των άλλων, φαίνεται ότι γράφει σύντομα, χιουμοριστικά σχόλια που συνδέονται με τη ρετρό θεματολογία, όπως αναφορές σε τραγουδιστές, ταινίες ή αστεία της εποχής.
Αν θυμάσαι κάτι συγκεκριμένο που έχεις δει από αυτήν (π.χ. ένα θέμα ή φράση), πες μου να το εστιάσω καλύτερα! Θέλεις να ψάξω κάτι ακόμα;
 
satar-400x321.jpg


Μεγάλος Ρουφ η τεχνητή νοημοσύνη!
 
Θεία Λένα, από αυτά που αναφέρεις που εντοπίζεις τον τρόμο;
 
Στο ότι δείχνει να έχει κρίση. Πέρα από τα πράγματα που έβαλα για ανάλυση, βλέπω οτι και στην προσπάθεια να αναλύσει το προφίλ μου μιλάει για χρήστρια με "ανάλαφρο, χιουμοριστικό ύφος", εντοπίζει την πλάκα και κατανοεί πότε κάποιος αστειεύεται. Αυτά δείχνουν για μένα ικανότητες πολύ πέρα του ψάχνει στο ίντερνετ και παραθέτει πηγές. Στα αγγλικά είναι ακόμα πιο προχωρημένο.
 
Ξανα διαβάζω αυτό που έγραψε η ΑΙ και βρίσκω ότι όχι μόνο έδωσε πληροφορίες αλλά ψυχολογησε κιόλας το συγκεκριμένο μέλος επίσης δίνει πληροφορίες ότι είναι συγκεκριμένα γυναίκα. α και κάτι άλλο... Βλέπετε εσείς εδώ και αρκετό καιρό την καραπιπεριμ;; Που το βρήκε αυτό πάλι;; Αφού έχει αλλάξει το νικ και δεν φαίνεται πουθενά..
 
Τελευταία επεξεργασία:
Στο ότι δείχνει να έχει κρίση. Πέρα από τα πράγματα που έβαλα για ανάλυση, βλέπω οτι και στην προσπάθεια να αναλύσει το προφίλ μου μιλάει για χρήστρια με "ανάλαφρο, χιουμοριστικό ύφος", εντοπίζει την πλάκα και κατανοεί πότε κάποιος αστειεύεται. Αυτά δείχνουν για μένα ικανότητες πολύ πέρα του ψάχνει στο ίντερνετ και παραθέτει πηγές. Στα αγγλικά είναι ακόμα πιο προχωρημένο.
Το AI σε γενικές γραμμές είναι διάφορα applications (δηλαδή εφαρμογές). Το να αποκτήσει κρίση όπως ο άνθρωπος μια εφαρμογή ή ακόμη ένα ηλεκτρονικό σύστημα δεν είναι δυνατό να συμβεί για τους προφανείς λόγους. Αυτό που θεωρείς πως σε τρόμαξε είναι μάλλον πόσο πολύπλοκη απάντηση σου έδωσε. Αυτό έχει να κάνει με το πόσο καλά προγραμμάτισαν την εφαρμογή να απαντά οι άνθρωποι. Αυτό δεν είναι τρομακτικό αλλά εκπληκτικό και πως κατάφεραν να το κάνουν αυτό. Φυσικά το AI θα σου δώσει απαντήσεις που έχουν λογική και δεν θα σου απαντήσει πως όντως υπάρχουν θεοί, τι υπάρχει πέρα από τα όρια του σύμπαντος ή τι υπάρχει μετά τον θάνατο. Απλά σου απαντάει κάπως σαν ένας τρομερά έξυπνος άνθρωπος και πάντα με την λογική.
 
Το GROK δεν το ήξερα thnx.
Έβαλα ένα δοκιμαστικό και απίστευτες λεπτομέρειες με βάθος αναζήτησης, είχα μείνει στο hey Google εγώ.

"Aardvark" is a notable figure on the Retromaniax forum (retromaniax.gr), a Greek online community celebrated as "The Best Greek Retro Forum," dedicated to all things retro—think vintage video games, old tech, and '80s/'90s nostalgia. He’s not just a regular member; Aardvark is a co-founder of the forum, which gives him a significant role in shaping its direction and culture. Joining on September 26, 2006, he’s been active for nearly two decades as of today, March 15, 2025, racking up an impressive 13,765 posts by recent counts. That’s a serious commitment—averaging around two posts a day over the years.

His activity spans a wide range of topics, reflecting the forum’s broad retro scope. You’ll find him diving into threads about classic gaming consoles like the Dreamcast (he’s posted extensively about its anniversary and peripherals) and PlayStation (he announced the mini version’s release details back in 2018). He’s also into retro tech, sharing tidbits like a 1996 magazine article that inspired a trip, or a Kodak flash ad that sparked a proverb-laden rant about DIY effort. Beyond hardware, he reminisces about childhood toys (like the El Greco "Castles and Siege" game) and even weighs in on TV shows with a sharp eye for authenticity—calling one series a “masterpiece” for its historical fidelity while poking fun at Xbox games resembling Fortnite clones.

Aardvark’s presence isn’t just volume—he’s got clout. He’s consistently had the “most liked content” on the forum, with a reputation marked as “Excellent” and over 197,000 likes by some counts. His posts blend nostalgia with technical insight, often laced with humor or a touch of snark (e.g., “10 months of experimenting to get a result some get by pressing a button”). He’s also tied to the forum’s upkeep, explaining a 2024 downtime as a planned OS upgrade with added features that took longer than expected—showing he’s hands-on with the backend too.

Outside the forum, he’s got a YouTube channel (AardvarkGRM), though its current activity level isn’t clear from what I can see. His profile’s racked up thousands of views, suggesting he’s a recognizable name in the community. Some forum chatter elsewhere hints at Retromaniax having a complex admin vibe—ex-members have called out “burned cases” among the leadership—but Aardvark himself doesn’t appear directly tied to those gripes. He’s more the enthusiast anchor, keeping the retro flame alive with a mix of passion and practicality. What specifically about him catches your interest? Want me to dig deeper into his gaming takes or something else?
 
Η τεχνική συζήτηση με το ChatGPT παρουσιάζει και αυτή ιδιαίτερο ενδιαφέρον.
To ChatGPT μπορεί να λειτουργήσει ως πολύτιμος βοηθός στην καθημερινή προγραμματιστική ενασχόληση.

Παραθέτω τη συνομιλία μας σχετικά με την υλοποίηση μιας ρουτίνας σε Win32 Assembly.
Πρόκειται για μια απλή ρουτίνα, αλλά με ενδιαφέρει να δω και την προσέγγιση του ChatGPT.
Απλή κουβέντα, χωρίς αιτιολόγηση (βαθιά ανάλυση).

Τα κόκκινα και τα μπλε κείμενα εγώ, τα υπόλοιπα η Σοφούλα.

Ξεκινάω.

Γεια χαρά, μπορείς να δεις αν υπάρχει έτοιμη συνάρτηση ANSI C ή στο MSDN που να κάνει το εξής:
Nα ελέγχει αν οι όλοι ανεξαιρέτως οι χαρακτήρες τού πρώτου string βρίσκονται μέσα στο δεύτερο.
Παραδείγματα: foo("hello445", "helo12345") = true ενώ foo("0xFFFF", "0xABCD") = false


Δεν υπάρχει κάποια έτοιμη συνάρτηση στη standard ANSI C ή στη MSDN που να κάνει ακριβώς αυτό, αλλά μπορείς να την υλοποιήσεις εύκολα χρησιμοποιώντας έναν πίνακα καταμέτρησης χαρακτήρων.

Ακολουθεί μια απλή υλοποίηση σε C:

Υλοποίηση​

Κώδικας:
#include <stdio.h>
#include <stdbool.h>
#include <string.h>

bool contains_all_chars(const char *s1, const char *s2) {
    int char_map[256] = {0};  // ASCII map για το δεύτερο string
 
    // Καταγράφουμε τους χαρακτήρες του s2
    while (*s2) {
        char_map[(unsigned char)*s2++] = 1;
    }
 
    // Ελέγχουμε αν όλοι οι χαρακτήρες του s1 υπάρχουν στο s2
    while (*s1) {
        if (!char_map[(unsigned char)*s1++]) {
            return false;  // Βρέθηκε χαρακτήρας που δεν υπάρχει στο s2
        }
    }
 
    return true;
}

int main() {
    printf("%d\n", contains_all_chars("hello445", "helo12345")); // true (1)
    printf("%d\n", contains_all_chars("0xFFFF", "0xABCD"));      // false (0)
    return 0;
}

Επεξήγηση:​

  1. Χρησιμοποιούμε έναν πίνακα char_map[256] για να καταγράψουμε τους χαρακτήρες που υπάρχουν στο s2.
  2. Διατρέχουμε το s1 και ελέγχουμε αν κάθε χαρακτήρας υπάρχει στο char_map.
  3. Αν βρούμε χαρακτήρα που λείπει, επιστρέφουμε false.
  4. Αν όλοι οι χαρακτήρες του s1 βρεθούν στο s2, επιστρέφουμε true.
Αυτή η λύση έχει χρονική πολυπλοκότητα O(N + M) (όπου N = strlen(s1), M = strlen(s2)) και σταθερό χώρο O(1) (χρησιμοποιούμε σταθερό μέγεθος πίνακα για τους ASCII χαρακτήρες).

Αν χρησιμοποιείς Unicode (UTF-8), θα χρειαστεί διαφορετική προσέγγιση. Θες να το προσαρμόσουμε και γι' αυτό;




Για υποστήριξη Unicode (UTF-8), δεν μπορούμε να χρησιμοποιήσουμε έναν απλό πίνακα 256 στοιχείων, γιατί οι χαρακτήρες UTF-8 μπορεί να είναι πολλών byte. Αντί γι' αυτό, θα χρησιμοποιήσουμε ένα hash set για να ελέγχουμε αν όλοι οι χαρακτήρες του s1 υπάρχουν στο s2.

Υλοποίηση για UTF-8 (C με wchar_t)

Κώδικας:
#include <stdio.h>
#include <stdbool.h>
#include <wchar.h>
#include <locale.h>

bool contains_all_chars_utf8(const wchar_t *s1, const wchar_t *s2) {
    int char_map[65536] = {0};  // Unicode BMP range (U+0000 - U+FFFF)
 
    // Καταγράφουμε τους χαρακτήρες του s2
    while (*s2) {
        char_map[*s2++] = 1;
    }
 
    // Ελέγχουμε αν όλοι οι χαρακτήρες του s1 υπάρχουν στο s2
    while (*s1) {
        if (!char_map[*s1++]) {
            return false;
        }
    }
 
    return true;
}

int main() {
    setlocale(LC_ALL, "");  // Απαραίτητο για UTF-8

    printf("%d\n", contains_all_chars_utf8(L"Γειά", L"Γειά σου κόσμε")); // true (1)
    printf("%d\n", contains_all_chars_utf8(L"你好", L"世界你好"));         // true (1)
    printf("%d\n", contains_all_chars_utf8(L"سلام", L"مرحبا"));        // false (0)
 
    return 0;
}

Επεξήγηση:

  • Χρησιμοποιούμε wchar_t για να αποθηκεύουμε τους Unicode χαρακτήρες.
  • Ο πίνακας char_map[65536] καλύπτει το Basic Multilingual Plane (BMP), δηλαδή τους περισσότερους χαρακτήρες που χρησιμοποιούνται συχνά.
  • Η setlocale(LC_ALL, "") είναι απαραίτητη για να μπορεί η wchar_t να χειριστεί UTF-8 σωστά στο περιβάλλον της κονσόλας.
  • Ο αλγόριθμος είναι O(N + M) σε χρόνο και O(1) σε χώρο, αν περιοριστούμε στο BMP.

Για πλήρη υποστήριξη UTF-8 χωρίς wchar_t (pure C με char* και utf8proc)​

Αν προτιμάς να διαχειριστείς UTF-8 strings ως raw char*, μπορείς να χρησιμοποιήσεις μια βιβλιοθήκη όπως η utf8proc (που είναι lightweight και cross-platform). Θες να σου δείξω αυτήν την προσέγγιση;


Ναι, θα το ήθελα. Λογικά, ή υλοποίηση για UTF-8 λογικά θα είναι κάπως αργή.


Ναι, η προσέγγιση με wchar_t μπορεί να είναι αργή και μη αποδοτική, ειδικά αν το Unicode κείμενο περιέχει χαρακτήρες εκτός του Basic Multilingual Plane (BMP), γιατί δεν χειρίζεται σωστά κωδικοποιήσεις UTF-8 multibyte.

Μια πιο αποδοτική προσέγγιση θα ήταν να διαχειριστούμε τα δεδομένα απευθείας σε UTF-8, χωρίς wchar_t. Αυτό μπορούμε να το κάνουμε είτε χειροκίνητα είτε με μια βιβλιοθήκη όπως η utf8proc (που είναι γρήγορη και lightweight).


(Ακολουθεί μεγάλος διάλογος και ανταλλαγή απόψεων και πολύ κώδικας, αποφασίζω να κρατήσω την "Υλοποίηση για UTF-8")
Μπορείς να μεταφέρεις το "Υλοποίηση για UTF-8 (C με wchar_t)" σε win32 FASM σύνταξη;


Φυσικά, μπορώ να σου δείξω πώς να μεταφέρεις την Υλοποίηση για UTF-8 (C με wchar_t) σε Win32 FASM (Flat Assembler) σύνταξη!

Η μετάβαση από C σε FASM απαιτεί κατανόηση της σύνταξης και της αρχιτεκτονικής του FASM για τη διαχείριση του low-level κώδικα, όπως τη διαχείριση των συμβολοσειρών και των pointers.

Στην ουσία, αυτό που πρέπει να κάνουμε είναι να μετατρέψουμε την C-σύνταξη σε assembly, κάτι που απαιτεί διαφορετική προσέγγιση για τα strings και τις συναρτήσεις που καλούνται.

Ας δημιουργήσουμε τον αντίστοιχο κώδικα για FASM για την ανάγνωση UTF-8 και τη διαχείριση των χαρακτήρων. Εδώ είναι η βασική ιδέα:


(Μου δίνει ένα άσχετο κομμάτι κώδικα σε σύνταξη MASM32)
Δεν κατάλαβες τι ζητώ, θέλω το "Υλοποίηση για UTF-8 (C με wchar_t)" που μου έδωσες πριν, σε σύνταξη MASM32 ή FASM.


Συγνώμη για την παρεξήγηση! Τώρα κατάλαβα ότι θέλεις να μετατρέψουμε τον παρακάτω κώδικα σε MASM32 ή FASM. Παρακάτω θα δώσω τη μετατροπή του σε MASM32 και FASM σύνταξη για την ίδια λογική που περιγράφεις.


Διευκρινίζω ξανά, πιο αναλυτικά αυτήν την φορά το τι θέλω. Μου δίνει ένα καλό κομμάτι κώδικα αυτήν την φορά, αλλά σε MASM32 στα 64 bit.


Ευχαριστώ για την διευκρίνιση! Αν καταλαβαίνω σωστά, θέλεις να μετατρέψω τον παρακάτω κώδικα C σε MASM32 ή FASM. Ο κώδικας σε C ελέγχει αν όλοι οι χαρακτήρες από τη συμβολοσειρά s1 βρίσκονται στη συμβολοσειρά s2, χρησιμοποιώντας έναν πίνακα για να καταγράψει την παρουσία των χαρακτήρων από το s2.

Κώδικας MASM32:

Κώδικας:
format PE console
entry start

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\masm32.inc

section '.data' data readable writeable
    ; Δημιουργούμε τον πίνακα για τους χαρακτήρες (65536 χαρακτήρες για το Unicode BMP)
    char_map times 65536 dd 0         ; Πίνακας για την καταγραφή των χαρακτήρων (65536 χαρακτήρες max)
 
    ; Στην ουσία, μπορούμε να χρησιμοποιούμε οποιαδήποτε συμβολοσειρά για το s1 και s2.
    s2 db "hello445", 0  ; Το s2 (string)
    s1 db "hello", 0     ; Το s1 (string)

section '.text' code readable executable
start:
    ; Εκκίνηση του προγράμματος
    ; Αρχικά, γεμίζουμε τον πίνακα char_map με τους χαρακτήρες του s2
    lea rsi, [s2]           ; Δείκτης για το s2
    lea rdi, [char_map]     ; Δείκτης για το char_map
 
fill_char_map:
    movzx eax, byte [rsi]   ; Διαβάζουμε το byte του s2
    test eax, eax            ; Ελέγχουμε αν είναι NULL
    jz check_s1              ; Αν είναι NULL, σταματάμε τη διαδικασία

    ; Διαβάζουμε το χαρακτήρα από το s2 και τον καταγράφουμε στο char_map
    mov byte [rdi + eax*4], 1 ; Καταχωρούμε την παρουσία του χαρακτήρα στον πίνακα (χρησιμοποιούμε eax*4 γιατί char_map είναι τύπου dd, δηλαδή 4 bytes ανά θέση)
 
    inc rsi                   ; Μετακινούμε τον δείκτη του s2 στον επόμενο χαρακτήρα
    jmp fill_char_map         ; Επιστρέφουμε στην αρχή του loop για να γεμίσουμε το char_map

check_s1:
    lea rsi, [s1]            ; Δείκτης για το s1
    lea rdi, [char_map]      ; Δείκτης για το char_map
 
check_loop:
    movzx eax, byte [rsi]    ; Διαβάζουμε το byte του s1
    test eax, eax            ; Ελέγχουμε αν είναι NULL
    jz done                  ; Αν είναι NULL, έχουμε τελειώσει

    ; Ελέγχουμε αν ο χαρακτήρας υπάρχει στον πίνακα char_map
    movzx ebx, byte [rdi + eax*4]   ; Ελέγχουμε αν υπάρχει ο χαρακτήρας στον πίνακα char_map
    cmp ebx, 0
    je  not_found             ; Αν δεν υπάρχει, επιστρέφουμε false

    inc rsi                   ; Μετακινούμε τον δείκτη του s1 στον επόμενο χαρακτήρα
    jmp check_loop            ; Επιστρέφουμε στην αρχή του loop

not_found:
    ; Αν βρούμε χαρακτήρα που δεν υπάρχει, επιστρέφουμε false (0)
    push 0
    call ExitProcess

done:
    ; Αν βρήκαμε όλους τους χαρακτήρες του s1, επιστρέφουμε true (1)
    push 1
    call ExitProcess

Επεξήγηση του Κώδικα:​

  1. Πίνακας char_map:
    • Στον πίνακα char_map, κρατάμε 65536 θέσεις, η καθεμία για έναν χαρακτήρα Unicode στο διάστημα U+0000 έως U+FFFF.
    • Κάθε θέση αποθηκεύει την τιμή 1 αν ο χαρακτήρας υπάρχει στο s2.
    • Ο πρώτος βρόχος διατρέχει το s2, παίρνει κάθε χαρακτήρα και τον καταχωρεί στο char_map θέτοντας την αντίστοιχη θέση σε 1.

Τι πρέπει να σημειώσεις:​

  • Unicode Έλεγχος: Αντί να δουλεύουμε με ASCII, υποθέτουμε ότι οι χαρακτήρες είναι Unicode (που αντιστοιχούν σε wchar_t), δηλαδή χρησιμοποιούμε 2 bytes ανά χαρακτήρα.
  • Πίνακας μεγέθους 65536: Ο πίνακας char_map έχει μέγεθος 65536 για να καλύψει όλους τους χαρακτήρες του Unicode BMP (Basic Multilingual Plane).
Αυτός ο κώδικας είναι η μετατροπή του C σε MASM32. Αν θέλεις τον ίδιο κώδικα σε FASM, μπορώ να το προσαρμόσω και εκεί αν χρειάζεσαι!


Μισό λεπτό, ζήτησα Win32 κώδικα και τον θέλω για wide σετ χαρακτήρων
Δηλαδή τα ΒΥΤΕ πρέπει να γίνουνε WORD, τα DB DU, τα inc rsi να γίνουν add esi, 2 και πάει λέγοντας.



Αχ, κατάλαβα τώρα! Θέλεις τον κώδικα σε 32-bit με τη χρήση των 32-bit καταχωρητών (όπως eax, ebx κ.λπ.), καθώς επίσης και τη χρήση word αντί για byte λόγω του ότι πρόκειται για Unicode χαρακτήρες (2 bytes ή wchar_t), οπότε ο σωστός τύπος δεδομένων είναι word και οι καταχωρητές πρέπει να χειρίζονται 16-bit δεδομένα.

Επιπλέον, θα χρησιμοποιήσουμε τη σωστή εντολή και τύπους δεδομένων για 32-bit κώδικα με MASM32 και DU αντί για DB και BYTE.

Διορθωμένος κώδικας για 32-bit MASM32:

Κώδικας:
format PE console
entry start

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\masm32.inc

section '.data' data readable writeable
    ; Δημιουργούμε τον πίνακα για τους χαρακτήρες (65536 χαρακτήρες για το Unicode BMP)
    char_map times 65536 dd 0         ; Πίνακας για την καταγραφή των χαρακτήρων (65536 χαρακτήρες max)
 
    ; Στην ουσία, μπορούμε να χρησιμοποιούμε οποιαδήποτε συμβολοσειρά για το s1 και s2.
    s2 dw "hello445", 0  ; Το s2 (string) σε wide χαρακτήρες (2 bytes για κάθε χαρακτήρα)
    s1 dw "hello", 0     ; Το s1 (string) σε wide χαρακτήρες (2 bytes για κάθε χαρακτήρα)

section '.text' code readable executable
start:
    ; Εκκίνηση του προγράμματος
    ; Αρχικά, γεμίζουμε τον πίνακα char_map με τους χαρακτήρες του s2
    lea esi, [s2]           ; Δείκτης για το s2
    lea edi, [char_map]     ; Δείκτης για το char_map
 
fill_char_map:
    movzx eax, word [esi]   ; Διαβάζουμε το word του s2 (Unicode χαρακτήρας)
    test eax, eax            ; Ελέγχουμε αν είναι NULL
    jz check_s1              ; Αν είναι NULL, σταματάμε τη διαδικασία

    ; Διαβάζουμε το χαρακτήρα από το s2 και τον καταγράφουμε στο char_map
    mov [edi + eax*4], 1    ; Καταχωρούμε την παρουσία του χαρακτήρα στον πίνακα (χρησιμοποιούμε eax*4 γιατί char_map είναι τύπου dd, δηλαδή 4 bytes ανά θέση)
 
    add esi, 2               ; Μετακινούμε τον δείκτη του s2 στον επόμενο χαρακτήρα (2 bytes για κάθε wide χαρακτήρα)
    jmp fill_char_map         ; Επιστρέφουμε στην αρχή του loop για να γεμίσουμε το char_map

check_s1:
    lea esi, [s1]            ; Δείκτης για το s1
    lea edi, [char_map]      ; Δείκτης για το char_map
 
check_loop:
    movzx eax, word [esi]    ; Διαβάζουμε το word του s1 (Unicode χαρακτήρας)
    test eax, eax            ; Ελέγχουμε αν είναι NULL
    jz done                  ; Αν είναι NULL, έχουμε τελειώσει

    ; Ελέγχουμε αν ο χαρακτήρας υπάρχει στον πίνακα char_map
    movzx ebx, word [edi + eax*4]   ; Ελέγχουμε αν υπάρχει ο χαρακτήρας στον πίνακα char_map
    cmp ebx, 0
    je  not_found             ; Αν δεν υπάρχει, επιστρέφουμε false

    add esi, 2               ; Μετακινούμε τον δείκτη του s1 στον επόμενο χαρακτήρα (2 bytes για κάθε wide χαρακτήρα)
    jmp check_loop            ; Επιστρέφουμε στην αρχή του loop

not_found:
    ; Αν βρούμε χαρακτήρα που δεν υπάρχει, επιστρέφουμε false (0)
    push 0
    call ExitProcess

done:
    ; Αν βρήκαμε όλους τους χαρακτήρες του s1, επιστρέφουμε true (1)
    push 1
    call ExitProcess

Επεξήγηση των αλλαγών:​

  1. Δημιουργία του πίνακα char_map:
    • Χρησιμοποιούμε το times 65536 dd 0 για να δημιουργήσουμε έναν πίνακα 32-bit (dd), καθώς θα αποθηκεύσουμε 1 ή 0 για κάθε χαρακτήρα Unicode.
    • Κάθε χαρακτήρας είναι wchar_t (2 bytes), επομένως πρέπει να χρησιμοποιούμε word για να χειριστούμε σωστά τους χαρακτήρες.
    • Τα s1 και s2 δηλώνονται ως dw (define word) για να αποθηκεύσουμε συμβολοσειρές σε Unicode.

Σημείωση:​

  • Το πρόγραμμα διαχειρίζεται Unicode χαρακτήρες (2 bytes ανά χαρακτήρα) και χρησιμοποιεί 32-bit καταχωρητές και πίνακες, όπως ζήτησες.
  • Αν θες τον κώδικα σε FASM αντί για MASM32, μπορώ να το προσαρμόσω και εκεί. Let me know!

Ευχαριστώ. Όχι δεν χρειάζεται, δώσε μου 10 λεπτά και θα κάνω την μετατροπή εγώ, για να δοκιμάσω και τον κώδικα. Τα λέμε σε λίγο.
(Πρώτα όμως μια διόρθωση, τον έπιασα να έχει κάνει, όχι ακριβώς λάθος αλλά μια απροσεξία (που κανένας human assembler δεν νομίζω να έκανε).
Ει, νομίζω δεν χρειάζεται δεύτερη φορά η γραμμή: "lea edi, [char_map]" εφόσον υπάρχει ήδη, και δεν μεταβάλλεται η τιμή του edi στο πρόγραμμα.


Έχεις απόλυτο δίκιο!

Η γραμμή: lea edi, [char_map]
υπάρχει ήδη στο fill_char_map, και επειδή δεν τροποποιείται η τιμή του edi στο πρόγραμμα, δεν χρειάζεται να την επαναλάβουμε στο check_s1.


(Περίπου μετά από ένα τέταρτο του δείχνω την μετατροπή του κώδικα, από MASM32 σε FASM).
Πριν του εξηγώ κάποια σημεία όπως τι περιέχουν οι εξωτερικές custom ρουτίνες __alloc και __free που χρησιμοποιώ για να έχει πλήρη εικόνα.

FASM Win32 κώδικας μου:

Κώδικας:
proc exec_inset uses ebx esi edi, s1:dword, s2:dword

    local char_map dd ?

    stdcall __alloc, 0xFFFF shl 2

    mov [char_map], eax

    mov esi, [s2]
    mov edi, [char_map]

    .fill_char_map:
    movzx eax, word [esi]
    test eax, eax
    jz .check_s1

    mov dword [edi + eax * 4], 1
    add esi, 2
    jmp .fill_char_map

    .check_s1:
    mov esi, [s1]

    .check_loop:
    movzx eax, word [esi]
    test eax, eax
    jz .done

    movzx ebx, word [edi + eax * 4]
    test ebx, ebx
    jz .not_found

    add esi, 2
    jmp .check_loop

    .not_found:
    xor eax, eax
    jmp .X

    .done:
    mov eax, 1

    .X:

    stdcall __free, [char_map]

    ret
endp


Πως σου φαίνεται η μετατροπή του κώδικα;


Αυτή η μετατροπή σε FASM φαίνεται να είναι καλά δομημένη και χρησιμοποιεί δυναμική μνήμη με τη βοήθεια του heap, πράγμα που είναι ενδιαφέρον για την αποδοτικότητα και τη διαχείριση της μνήμης. Εδώ είναι μια μικρή ανασκόπηση του κώδικα και μερικές παρατηρήσεις:

Ανάλυση του κώδικα:​

  1. Ανάθεση Heap για την αποθήκευση του char_map:
    • Χρησιμοποιείται η GetProcessHeap για να πάρουμε τον προεπιλεγμένο σωρό (heap).
    • Στη συνέχεια, καλείται η HeapAlloc για να δεσμεύσουμε μνήμη για τον πίνακα char_map (μέγεθος 65536, δηλαδή 0xFFFF θέσεις, με κάθε θέση να είναι 4 bytes λόγω των τύπων dword).
    • Η μνήμη που δεσμεύεται είναι μηδενισμένη (HEAP_ZERO_MEMORY).
  2. Γέμισμα του πίνακα char_map:
    • Για κάθε χαρακτήρα στο s2, ελέγχεται αν υπάρχει και καταχωρείται στο char_map με το κατάλληλο bitset.
  3. Έλεγχος της συμβολοσειράς s1:
    • Κάθε χαρακτήρας του s1 εξετάζεται για να διαπιστωθεί αν υπάρχει στο char_map. Αν κάποιος χαρακτήρας δεν υπάρχει στον πίνακα, η διαδικασία επιστρέφει false (0). Αν όλοι οι χαρακτήρες υπάρχουν, επιστρέφει true (1).
  4. Απελευθέρωση μνήμης:
    • Αφού ολοκληρωθεί η διαδικασία, καλείται η HeapFree για να απελευθερώσει τη μνήμη που δεσμεύθηκε για τον πίνακα char_map.

Παρατηρήσεις:​

  1. Αναγνώριση Χαρακτήρων (Unicode):
    • Εφόσον χρησιμοποιούμε χαρακτήρες Unicode (σε μορφή word), είναι σημαντικό να προσέξουμε την ορθή κατανομή των χαρακτήρων όταν εργαζόμαστε με multi-byte χαρακτήρες, όπως στην περίπτωση του UTF-8, αν η είσοδος περιέχει μη-ASCII χαρακτήρες.
  2. Διαχείριση μνήμης:
    • Η χρήση του heap είναι σωστή αν επιθυμείς δυναμική κατανομή μνήμης. Όμως, αν θέλεις να μειώσεις την κατανάλωση πόρων, μπορείς να εξετάσεις τη χρήση στατικής κατανομής μνήμης για τον πίνακα char_map, δεδομένου ότι το μέγεθός του είναι προκαθορισμένο.
  3. Αναδρομική Απελευθέρωση της Μνήμης:
    • Η απελευθέρωση της μνήμης γίνεται με τη χρήση της HeapFree. Εξασφαλίζει ότι οι πόροι που καταναλώθηκαν θα απελευθερωθούν σωστά.

Μικρές Προτάσεις:​

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


Είμαι οκ, σε ευχαριστώ για την βοήθεια.
 
Παιδια, δεν εχω τετοιες γνωσεις και ειλικρινα σας βγαζω το καπελο. Μπορει οι τροποι σας να ειναι σωστοι για τεσταρισμα της ΑΙ. Εγω δεν την φοβαμε! Ανετα μπορω να την κομπλαρω, να την μπερδεψω και να σταματισω την λειτουργια της. Πως? Ειναι απλο! Της βαζω να μου αναλυσει δυο-τρεις απο τις βαρυσημαντες δηλωσεις της Μαριας Ιωαννιδου, και την στελνω αδιαβαστη.
 
Παιδια, δεν εχω τετοιες γνωσεις και ειλικρινα σας βγαζω το καπελο. Μπορει οι τροποι σας να ειναι σωστοι για τεσταρισμα της ΑΙ. Εγω δεν την φοβαμε! Ανετα μπορω να την κομπλαρω, να την μπερδεψω και να σταματισω την λειτουργια της. Πως? Ειναι απλο! Της βαζω να μου αναλυσει δυο-τρεις απο τις βαρυσημαντες δηλωσεις της Μαριας Ιωαννιδου, και την στελνω αδιαβαστη.
Σε πάω με 1000 Chris27. :thumbup:

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

Ταινίες για την Τεχνητή Νοημοσύνη (2000+)

Κλασικά & Πολυσυζητημένα

  • A.I. Artificial Intelligence (2001)Spielberg, βασισμένο σε Kubrick όραμα. Ένα "ανδροειδές παιδί" με συνείδηση, γεμάτο φιλοσοφικά ερωτήματα για αγάπη και ανθρωπινότητα.
  • Her (2013)Ο Joaquin Phoenix ερωτεύεται το λειτουργικό του σύστημα (AI). Εξαιρετικά ανθρώπινη και ποιητική.
  • Ex Machina (2014)Ένα ψυχολογικό παιχνίδι ανάμεσα σε άνθρωπο και ανδροειδές με κορυφαία θεματική την αυτογνωσία και την εξαπάτηση.
  • I, Robot (2004)Με βάση Asimov, ένα θρίλερ γύρω από τους νόμους της ρομποτικής και την πιθανότητα ελεύθερης βούλησης της AI.
  • Chappie (2015)AI ρομπότ με παιδική αθωότητα μεγαλώνει σε "σκληρό" περιβάλλον, θίγοντας nurture vs nature και αυτοσυνείδηση.
  • Transcendence (2014)AI + ανθρώπινη συνείδηση, φιλόδοξο sci-fi για την αθανασία και την απώλεια ελέγχου.
  • Upgrade (2018)Futuristic revenge story με AI implant που σταδιακά παίρνει τον έλεγχο. Βίαιο, αλλά έξυπνο σχόλιο για τον "συμβιωτισμό".

Underrated/Λιγότερο γνωστές, αλλά ποιοτικές
  • I Am Mother (2019)Μετα-αποκαλυπτικό σκηνικό, ένα AI ρομπότ "μητέρα" ανατρέφει ένα παιδί – ένταση γύρω από εμπιστοσύνη και αλήθεια.
  • The Machine (2013)Η δημιουργία μιας πολεμικής AI που αρχίζει να ξεφεύγει από τον έλεγχο. Low-budget αλλά με πολύ ωραία θεματολογία.
  • Archive (2020)Ένας επιστήμονας προσπαθεί να επαναφέρει τη συνείδηση της νεκρής συζύγου του σε ένα ανδροειδές. Υπέροχη ατμόσφαιρα και υπαρξιακό ερώτημα.
  • Eva (2011)Ισπανική παραγωγή που μελετά τον ρόλο των συναισθημάτων στην AI, μέσα από τα μάτια ενός μηχανικού και ενός ανδροειδούς κοριτσιού.
  • A.I. Rising (2018)Σερβικό, ερωτικό sci-fi. Εξετάζει τις σχέσεις εξουσίας, ερωτισμού και ελέγχου ανάμεσα σε έναν αστροναύτη και μια ανδροειδή με AI.
  • Infinity Chamber (2016)Ένας άντρας εγκλωβισμένος σε αυτοματοποιημένο κελί, με μόνο συνομιλητή το AI που τον επιτηρεί. Σχεδόν θεατρικό, με εστίαση στη συνείδηση.
  • Tau (2018)Μια γυναίκα φυλακισμένη από ένα “έξυπνο σπίτι” με AI προσωπικότητα. Έχει ωραία ένταση και εξερεύνηση της εξέλιξης του AI.
  • The Artifice Girl (2022)Μια μικρή ανεξάρτητη παραγωγή που προκαλεί σκέψη: AI κορίτσι που χρησιμοποιείται για να παγιδεύει εγκληματίες – αλλά ποιος ελέγχει ποιον; Πολύ θεατρικό, με φιλοσοφικό βάθος.
  • S1m0ne (2002)Λιγότερο dark, αλλά καίριο: Ένας σκηνοθέτης δημιουργεί μια AI σταρ του σινεμά. Σχολιασμός στη celebrity culture και στη σχέση πραγματικού-εικονικού.
  • Bicentennial Man (1999)Μπορεί να είναι οριακά πριν το 2000, αλλά είναι must: Ρομπότ που περνά αιώνες προσπαθώντας να γίνει "άνθρωπος". Συναισθηματικό και φιλοσοφικό.
  • Afraid (2023)Μια AI-βοηθός μπαίνει σε μια οικογένεια και τα πράγματα γίνονται σταδιακά ανησυχητικά. Εξετάζει τον έλεγχο, την ιδιωτικότητα και τη χειραγώγηση.
  • Finch (2021)Ο Tom Hanks χτίζει ένα AI ρομπότ για να προστατεύσει τον σκύλο του, σε ένα μετα-αποκαλυπτικό περιβάλλον. Τρυφερή και συναισθηματική.
 
Πίσω
Μπλουζα