Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Εντάξει δε νομίζω ότι ταλαιπωρείται κανείς :)

 

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

  • Απαντ. 106
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.

Πριν χρόνια είχα γράψει μια μίνι ΒΔ για τις ανάγκες ενός προγράμματος η οποία κωδικοποιούσε με την βοήθεια bits διάφορες πληροφορίες που θεωρούσα ότι ήταν σπατάλη μνήμης & χώρου στον δίσκο η αναπαράσταση τους ως ξεχωριστά bytes.

 

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

 

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

 

-

Σχετικά με την χρήση έτοιμων ΒΔ.. φυσικά αρκεί να δικαιολογείται από την εφαρμογή, αν πρόκειται για κάτι μικρό σε απαιτήσεις (όχι απαραίτητα μικρό ως πρόγραμμα όμως) γράφω κάτι απλό, διαφορετικά κοιτώ προς έτοιμες λύσεις (SQLite, JET/OleDB κ.α.).

 

 

MODS.. αυτή είναι μουσική!

Θυμάμαι επί εποχή AMIGA 500 να προσπαθώ να ripάρω MODS παιχνιδιών από την μνήμη μέσο του ACTION REPLAY III :D

 

Δημοσ.
Μάλλον λες τον modplay που είχε κυκλοφορήσει και στο pc-master τότε

 

Δεν είχα κάποια ανάμειξη με αυτούς. Εγώ είχα φτιάξει έναν που δεν ήταν σε text mode αλλά με γραφικά (EGA). Αν είσαι retro όπως εγώ και έχεις κάνεναν 386 με soundblaster να το δεις μπορώ να στο στείλω. Σε dosbox δεν παίζει γιατί χρησιμοποιεί ένα περιέργο protected mode του 386.

 

Όλα αυτά απευθύνονται βέβαια σε "κολημένους" retromaniacs (http://www.pouet.net) και όχι στο ευρύ κοινό που οι mod μουσικές τους ακούγονται αηδιαστικές ενώ εμάς μας προκαλούν νοσταλγία (γεράματα, τι να το κάνεις :-D ).

 

Ναι το modplay λέω (είχα ξεχάσει πώς το λένε -- ντροπή...)! Είχα μείνει κάγκελο με το τι έκαναν τα παιδιά με pc speaker (οι γνώσεις προγραμματισμού μου τότε ήταν σε επίπεδο BASIC), και αυτό μου έδωσε πολλαπλά κίνητρα ενασχόλησης (τόσο προγραμματιστικά όσο και δημιουργικά αργότερα με FT2). Good times.

 

Κάποτε είχα έναν 386 με SB16 αλλά δυστυχώς (και πάλι ντροπή) δεν έχω ιδέα αυτή τη στιγμή που βρίσκεται. Πιθανότατα δεν υπάρχει πια (αυτά τα κουτιά ρε παιδί μου θες μια αποθήκη μόνο για πάρτη τους). Σίγουρα θα επισκεφτώ το site που δίνεις έτσι για nostalgia kicks, κι αν έχεις κάποιο link για το πρόγραμμά σου please share.

 

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

 

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

 

Σκέψου όμως τι γίνεται όταν λες σε κάποιον (εντελώς τυχαία ας πούμε στον god) ότι ο τάδε κώδικας έχει θέματα. Υπάρχουν άπειρες "σωστές" απαντήσεις από την πλευρά του:

  • σοβαρά? είναι πρόβλημα αυτό? γιατί?
  • το ξέρω αλλά εδώ ασχολούμαι με το τάδε υποσύστημα και δε με ενδιαφέρουν τα υπόλοιπα
  • έχω φάει κόλλημα τώρα και θέλω να το κάνω έτσι
  • είναι proof of concept και απλά θέλω να το δω να παίζει στα γρήγορα
  • αυτό ζήτησε ο πελάτης και δεν ακούει κουβέντα
  • δεν έχεις δίκιο διότι Χ Υ Ζ (αλλά προσοχή: χειροπιαστές αντιρρήσεις!)
  • κλπ κλπ

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

 

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

 

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

 

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

 

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

 

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

Δημοσ.
[..]Κλασική δηλαδή περίπτωση "η εγχείρηση πέτυχε αλλά ο ασθενής απεβίωσε", όπου τελικά συνειδητοποιείς ότι ακόμα κι αν αυτό που έκανες είναι ο καλύτερος κώδικας που έχει γραφτεί ποτέ και τρέχει 10 φορές πιο γρήγορα από τις εναλλακτικές, η απόφασή σου να το κάνεις ήταν τραγικά λανθασμένη. Νομίζω ότι πολλοί έχουμε βρεθεί σ' αυτή τη θέση.

 

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

 

Yeap, από τότε το σκέφτομαι διπλά πριν μπω σε τέτοιες περιπέτειες.

Δημοσ.

Εγώ παιδιά θα επιμείνω πως από τη μια έχω έτοιμο δικό μου κώδικα για σχεδόν οτιδήποτε χρειαστώ για το συγκεκριμένο πρότζεκτ (hashing, lists, queries, κλπ που στο 99% των περιπώσεων απλά θα αλλάξω τα data-types) κι από την άλλη έχω να μάθω το API μιας έτοιμης db (στις οποίες btw οι γνώσεις μου τείνουν στο... 0).

 

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

 

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

 

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

Δημοσ.

Ελπίζω να μην παρεξηγηθώ έτσι; ;)

 

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

 

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

 

Προσωπικά για να πω χωρίς hard data ότι "αυτό είναι πιο γρήγορο από το άλλο" πρέπει να είμαι περίπου 1000000000000000% σίγουρος, ούτε στάλα λιγότερο.

 

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

 

Αν πίνεις μερικά ποτάκια όποτε βγαίνεις έξω θα σε πουν ευχάριστο τύπο. Αν όμως πίνεις κάθε μέρα από τις 10 το πρωι μέχρι να λυποθυμίσεις θα σε πουν αλκοολικό. Με πιάνεις;

Δημοσ.

...

Με πιάνεις;

 

Τσου!

 

Το ότι δεν έχω προγραμματίσει έτοιμη db ούτε σημαίνει πως δεν έχω χρησιμοποιήσει, ούτε πως δεν έχω ιδέα για τις βασικές αρχές της λειτουργίας τους.

 

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

 

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

Δημοσ.
[..]Εν πάσει περιπτώσει, δεν υπάρχει περίπτωση να κάτσω να μπλέξω με άγνωστα API για να φτιάξω κάτι που παραπλήσια τα έχω ξαναφτιάξει πολλές φορές κι έχω έτοιμους κώδικες.[..]

Υπό αυτό το πρίσμα συμφωνώ, καθώς είμαι οπαδός του αξιώματος που λέει πως "ο πιο σύντομος δρόμος είναι εκείνος που γνωρίζεις" (ειδικά στον προγραμματισμό).

  • Like 1
Δημοσ.

Υπό αυτό το πρίσμα συμφωνώ, καθώς είμαι οπαδός του αξιώματος που λέει πως "ο πιο σύντομος δρόμος είναι εκείνος που γνωρίζεις" (ειδικά στον προγραμματισμό).

 

Ε, ναι!

 

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

Δημοσ.

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

 

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

 

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

 

Εν κατακλείδι: αν κάποιος δεν είναι διατεθειμένος να βγει από το comfort zone του για να μάθει καινούρια πράγματα σε κάποιο βαθμό τουλάχιστον τότε για μένα δεν είναι προγραμματιστής, όπως και μάγειρας δεν είναι αυτός που ξέρει να φτιάχνει 10-20-200 συνταγές και τέλος. Και για τον μεν και για τον δε, απαραίτητη προϋπόθεση είναι να έρχεται σε επαφή με καινούριες ιδέες, να τις δοκιμάζει και να βάζει τη δική του πινελιά ακόμα και όταν δεν συμφωνούν καθόλου με τα δικά του γούστα.

 

Αυτά με τη φιλοσοφία. Για τη συγκεκριμένη περίπτωση που συζητάμε δεν ξέρω τι είναι καταλληλότερο και η αντίρρησή μου δεν είναι στο flat file (μπορεί να ταιριάζει μια χαρά, I have no idea) αλλά στο "κάτσε να κάνω optimize τα 3 bytes σε 2" το οποίο είναι χίλια τα εκατό λάθος προσέγγιση σ' αυτή τη φάση του project.

 

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

Δημοσ.

...

Αυτά με τη φιλοσοφία. Για τη συγκεκριμένη περίπτωση που συζητάμε δεν ξέρω τι είναι καταλληλότερο και η αντίρρησή μου δεν είναι στο flat file (μπορεί να ταιριάζει μια χαρά, I have no idea) αλλά στο "κάτσε να κάνω optimize τα 3 bytes σε 2" το οποίο είναι χίλια τα εκατό λάθος προσέγγιση σ' αυτή τη φάση του project.

...

 

Θα παραβλέψω όλα τα υπόλοιπα (αλλιώς θα τσακωθούμε άσχημα πάλι) και θα σταθώ μονάχα σε αυτό;

 

Προηγουμένως με επέπλητες περισπούδαστα, ότι και καλά....

 

...

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

...

 

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

 

Εγώ ξέρω πως "έξω από το χορό πολλα τραγούδια λένε"...

Δημοσ.

Εμενα η αποψη μου (προς το παρον) ειναι οτι μαθαινεις καλα μια σοβαρη γλωσσα... ASSEMBLY / C

 

σαν πρωτη και αρα παιρνεις βάσεις απο αυτην σου εξασκει το μυαλο . Στην συνεχεια απο αυτη την εμπειρια μπορεις να μαθαινεις οποιαδηποτε γλωσσα αν οχι σε 2-3 μηνες

τοτε σε μερικες μέρες.....

 

Απο εκει και περα θα μιλησει και το ταλεντο.

 

Μπορει η C , η Java κτλπ να σου αρεσουν αλλα δεν θα μπορεσεις να μεινεις μια ζωη σε αυτες.

Απλα θα εχεις ενα background ωστε οταν ξαναεπιστρεψεις να μπορεσεις να τις ξαναθυμηθεις.

 

Πρεπει να χεις επιλογες σημερα και να εισαι ευελικτος....

Δημοσ.

@migf1:

 

Δεν ξέρω περισσότερα από σένα για το project. Το point μου είναι πως όταν δεν έχεις την εφαρμογή να τρέχει δεν κάθεσαι να κάνεις τέτοια optimizations. Τη φτιάχνεις "σωστά" και απο κει και πέρα αν παρουσιαστεί ανάγκα optimization είναι πανεύκολο γιατί η δομή που έστησες σου επιτρέπει να το κάνεις.

 

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

 

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

 

Εμενα η αποψη μου (προς το παρον) ειναι οτι μαθαινεις καλα μια σοβαρη γλωσσα... ASSEMBLY / C

 

σαν πρωτη και αρα παιρνεις βάσεις απο αυτην σου εξασκει το μυαλο . Στην συνεχεια απο αυτη την εμπειρια μπορεις να μαθαινεις οποιαδηποτε γλωσσα αν οχι σε 2-3 μηνες

τοτε σε μερικες μέρες.....

 

Πως φαίνεται ότι δεν ξέρεις πολλές γλώσσες... :rolleyes:

 

Μπορώ να γράψω κώδικα σε γλώσσα X != ξέρω τη γλώσσα Χ.

 

Έχω μάθει απέξω όλη την standard library της γλώσσας X != ξέρω τη γλώσσα Χ.

 

Το αν πραγματικά ξέρεις μια γλώσσα φαίνεται από το στυλ του κώδικα που γράφεις. Ναι, υπάρχει στυλ. Όχι το προσωπικό του καθενός, αυτό που έχει η γλώσσα μέσα της. Μπορεί να πω οτιδήποτε στον migf1 για τα macros που χρησιμοποιεί, αλλά σίγουρα δε μπορώ να πω ότι δεν ξέρει C.

Δημοσ.

@defacer χχαχαχα καλα νταξει αυτο σου ελειπε να πεις οτι δεν ξερει C o migf1 :P ... εγω μπορει να μην ξερω πολλες γλωσσες

αλλα και εσενα βλεπω σε κατι θρεντ συνεχεια να λες την μια "Αυτο δεν το θυμαμαι...."

 

το αλλο "Το εκανα πριν 2 χρονια μωρε... τωρα το ξεχασα!!!" :P

 

κατα τα αλλα ολο κριτικες ειναι ο defacer ! Εγω σου ειπα και χθες

ξεκινα να γραφεις κωδικα που λες να το κανουμε εμεις. Και ασε τα επιχειρηματα...

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...