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

moukoublen

Members
  • ΜΗΝΥΜΑΤΑ FORUM

    606
  • ΜΕΛΟΣ

  • ΤΕΛ. ΕΠΙΣΚΕΨΗ

Σχετικά με moukoublen

  • Ημερομηνία γέννησης 26/02/1988

Πληροφορίες προφίλ

  • Φύλο
    Άνδρας

Ιστοσελίδα

  • Skype
    moukoublen

Πρόσφατες Επισκέψεις

4.147 προβολές προφίλ

moukoublen's Achievements

Mentor

Mentor (11/15)

  • Αφοσιωμένος
  • 10 Classifieds
  • Εκκίνηση Συζήτησης
  • 10 χρόνια Insomniac
  • 5 χρόνια Insomniac

Πρόσφατες Διακρίσεις

452

Φήμη

  1. χμ... Δεν είμαι σίγουρος αν εισαι τρολ. Στην περίπτωση που δεν είσαι. Έχεις έστω μια κάποια, παραμικρή ιδέα για ποιο πράγμα μιλάς; Τι είναι πυρήνας για αρχή; Πως είναι ο πυρήνας στα XP; Πως στα 7,8,10; Χμ...
  2. Προσωπικά δεν καταλαβαίνω καν το γιατί αναρωτιέσαι κάτι τέτοιο. Φυσικά θα πας στο τελευταίο. Και πάντα θα πηγαινεις στο τελευταίο no matter what. Και παλιά projects να έχεις (σε παλαιότερο .NET) μπορεις να τα δουλεύει μια χαρά κι από τα καινούρια VS. αυτό που κανείς που μένεις με παλιά tools (γιατί δυστυχώς έτσι όπως τα σερβίρει η μικροσοφτ τα πράγματα για πολλούς developers είναι δύσκολο να καταλάβουν oti άλλο to .net allo to building tool kai allo to IDE) μόνο πίσω σε κρατάει. Και εαν ήσουν μέχρι σήμερα με 2013 είναι λάθος. Λάθος νοοτροπία και λάθος για την εξέλιξη σου. Φρόντισε να το διορθώσεις σύντομα. Γνώμη μου πάντα.
  3. Αυτό με χτύπησε άσχημα. Ωστόσο με χτυπάει επίσης άσχημα (λόγω OCD ίσως ) η ιδέα οτι θα το διαβάσουν άνθρωποι και θα νομίζουν ότι επιβεβαιώνει ως κάτι θετικό την προχειρότητα.
  4. Nokia και Ericsson είναι απο τις μεγαλύτερες εταιρίες σε παροχή τηλεπικοινωνιακών solutions. Το ότι δεν απευθύνονται πια σε εμάς (τους τελικούς καταναλωτές) δεν σημαίνει κάτι. Έχουν ένα τεράστιο τζίρο και πουλάνε πάρα πολύ μεγάλα προϊόντα σε ετερείες που με τι σειρά τους πουλάνε σε εμάς (π.χ. πάροχοι κινητής τηλεφωνίας). Θέλω να πω, η "αγορά" δεν είναι μόνο ότι αγοράζουμε εμείς (π.χ. κινητά).
  5. [Ωραία ιδέα το thread] Εδώ Δεν είναι κάτι φαντασμαγορικό μιας και δε χρησιμοποιώ zsh, ούτε vim ιδιαίτερα και καθόλου μα καθόλου tmux (το μισώ ) Ωστόσο έχω ένα λίγο "fancy" PS1 για το bash και απο κει και πέρα configuration, aliases, path management. Έχω φτιάξει bash functions για το path manipulation που ελέγχουν ταυτόχρονα αν ένα path που πάω να βάλω υπάρχει ήδη ώστε να μην ξαναμπεί. Επίσης δίνω την δυνατότητα να φτιαχτεί αρχείο .path στο home που μπορεί να περιλαμβάνει όποιο path θέλουμε ακόμα και με environment variables μέσα και όλα γίνονται append στο PATH. (όλα τα περι path είναι στο pathmixer.sh)
  6. Ωραία φάση, όμως... Εφόσον θες να φτιάξεις κάτι έξω απο τη λογική του message queue ενός multithread application (και άρα κοινής μνήμης) και θες να βασίζεσαι αποκλειστικά σε socket - και για να είναι και εντελώς αυτόνομα τα processes (μεταφέροντας διεύθυνση μνήμης συνάρτησης προφανώς δε μιλάμε για αυτονομία) εγώ θα σου πρότεινα το εξής: Τα messages θα έχουν μόνο data. Τίποτα άλλο. Ο κάθε worker θα πρέπει να ξέρει ποια συνάρτηση "επεξεργασίας" να καλέσει για το κάθε task απο τα data και μόνο. (πχ ένα defined κατα το compile time, map με συμβολική τιμή (enumerator φάση) και τη συνάρτηση που επεξεργάζεται αυτό τον τύπο task. Και κάθε task να έχει ένα taskType μεταβλητή ας πούμε απο αυτό το enumerator.) Φαντάζομαι οτι όλες οι συναρτήσεις υπάρχουν απο το compile time σωστά; Και είναι γνωστές σε όλους (coordinator και workers) απο το compile time σωστά; Το πρόβλημα για μένα είναι στη λογική. Αν κάνεις κάτι αυτόνομο (έστω και θεωρητικά) σε επίπεδο μνήμης, δεν μεταφέρεις function pointers. Αλλιώς πας σε λογική όπως είπα task queue σε multi thread περιβάλλον όπου εκεί δε χρειάζεσαι socket. PS Πάντως ωραία φάση αν και με χαλάει η C του πράγματος (Με C++11 ή 14 θα πέταγα τη σκούφια μου). Ωστόσο παίζει κανα github σε αυτό που κάνεις ή είναι κλειστό;
  7. Τα message objects σου έχουν function pointer σαν member το οποίο θες και να το μεταφέρεις. Κάτι μου κάνει πολύ λάθος σε αυτό το design συνολικά. Γιατί να θες να μεταφέρεις ένα function pointer; Σαν συμπεριφορά τι είναι αυτό που θέλεις να πετύχεις; (γιατί ο τρόπος που πας να το πετύχεις είναι ξεκάθαρα λάθος)
  8. Ακριβώς. Και εδώ ξεκινάει να γίνεται κάπως προβληματική αυτή η κατάσταση (τουλάχιστον στην Ελλάδα, για το εξωτερικό δεν έχω άποψη). Δηλαδή η μεγάλη ροή των "μέσων" software developer που βγαίνουν απο τα πανεπιστήμια τείνουν να έχουν πάρει πολύ λάθος εικόνα για το τι είναι OOD και τι ανάγκες καλύπτει. Τείνουν να το θεωρούν ένα "βίτσιο" των "ψαγμένων". Κάτι σαν τέχνη για την τέχνη. Το οποίο είναι τέρμα λάθος. (Και λέω των "μέσων" προγραμματιστών γιατί αυτοί που είναι πραγματικά πωρωμένου θα βρουν την άκρη και το path που χρειάζονται. Ωστόσο αυτό το μεγάλο μέρος των "μέσων" προγραμματιστών δεν παύει να είναι αναγκαίο από την αγορά του σήμερα λόγω της μεγάλης ζήτησης λογισμικού)
  9. Καλά δεν είσαι σοβαρός. Πόσο είσαι; 16; Γιατί μέχρι 16 μπορώ να καταλάβω το γιατί να λες τέτοιες σαχλαμάρες. Ρε παιδιά. Εταιρεία είναι η microsoft. Πόσο δύσκολο είναι να το καταλάβουμε αυτό; Ό,τι κάνει το κάνει για το κέρδος. Αλλιώς κλείνει. Το να υποστηρίζει συνεχώς καινούριο (το ξαναλέω γιατι ίσως κάποιοι δεν έχουν καταλάβει καν για τι πράγμα μιλάμε) καινούριο hardware σε παλιό λειτουργικό, την βάζει μέσα! Πως να το πούμε πιο απλά; (Συν το ότι η συνεχής προσπάθεια για backward compatibility τελικά βάζει φρένο στην εξέλιξη της τεχνολογίας συνολικά αλλά αυτό είναι μια άλλη δύσκολη συζήτηση). Τα windows 10 στα έδωσε δώρο. Δώρο! Το να λες, και δε θέλω να αναβαθμίσω δωρεάν αλλά και θέλω η microsoft να κάνει τα πάντα σύμφωνα με τα δικά μου "θέλω" είναι χαζομάρα, δε το καταλαβαίνεις; Μάλλον όχι. Εδώ υπάρχει μια σύγχυση στο πως λειτουργεί μια εταιρεία και στα 400χρόνια σκλαβιάς (ό,τι να 'ναι). ...
  10. Αυτό ακριβώς. Και δε καταλαβαίνω γιατί διαμαρτύρονται πολλοί ή αν καταλαβαίνουν για πιο λόγο διαμαρτύρονται. Δικό της είναι το προϊόν (windows) όχι δικό μας. Δεν είναι υποχρεωμένη να υποστηρίζει τις παλιές εκδώσεις λειτουργικού για κάθε καινούριο hardware. Ίσα ίσα είναι εντελώς ανόητο αυτό. (Άσε που αν πας και πάρεις το καινούριο hardware και βάλεις windows 7 ε, είσαι έτσι κι αλλιώς για κλάματα). Αν δε σου αρέσει πάρε άλλο προϊόν. Σκεφτείτε απλά λίγο τι ζητάτε... [Το αν τελικά υποχώρησε εν μέρη είναι μια ήττα που κρατάει πίσω τα πράγματα όσο αφορά την εξέλιξη.]
  11. Τι both? Και C και C++? Άλλο πράγμα το ένα άλλο το άλλο. Είναι σαν να ζητάς: Θέλω advanced βιβλία για java και ruby. Άλλο σύμπαν το ένα άλλο το άλλο. Ειδικά αν μιλάμε για τα advanced ζητήματα κάθε γλώσσας.
  12. Μα γιατί; Αφού ασχολούμαι με την τεχνολογία. Αγοράζω gadgets και κάνω likes στο facebook. [τρολλ mode off] Ρε πραγματικά αυτό δε το έχω καταλάβει εδώ στο insomnia. Είναι πολλές φορές βρίσκω εδώ διαμάντια από σκοταδιστικές ή τεχνοφοβικές απόψεις. Στο insomnia. Ένα τεχνολογικό forum.
  13. Δεν είναι μόνο ότι θα δείχνει σε σκουπίδια. Έχεις crash αν πας να γράψεις και μπορεί και να διαβάσεις από χώρο που έχει ελευθερωθεί. Το ίδιο πράγμα με το one.arrPointer = two.arrPointet γίνεται αν κάνεις memcpy το ένα instance στο άλλο (to one στο two). Αντιγράφεται δυαδικά το ένα instance στο άλλο και άρα οι 2 pointers δείχνουν μετά στο ίδιο σημείο. Άρα αν κανεις delete το ένα instance, boom. Τώρα... Ακριβώς αυτό κάνεις όταν κανεις memcpy τον ένα πίνακα στον άλλο. Αντιγράφεται δυαδικά ένα ένα instance από τον ένα πίνακα στον άλλο. Όταν λοιπόν οι πίνακες σου είναι κάτι άλλο πέρα απο απλοί τύποι δεδομένων τότε μπορεί να γίνουν όλα αυτά που είπαμε παραπάνω. Το string λοιπόν είναι ενα τέτοιο αντικείμενο. Εσωτερικά έχει pointers και δυναμική δέσμευση μνήμης. Ποτέ δεν αντιγράφουμε το string αντικείμενο (και γενικά κανένα αντικείμενο αν θέλουμε να είμαστε ασφαλείς και όχι να φλερταρουμε με crash) με memcpy.
  14. class Foo{ public: int* arrPointer; Foo() { arrPointer = new int[4]; } ~Foo() { delete[] arrPointer; } } Foo one; //Παράδειγμα δεδομένων /* one.arrPointer : 0x10 * * 0x10 | 0x11 | 0x12 | 0x13 [memory address] * ----------------------------------- * 145 | 123 | 543 | 323 [memory content] τυχαίες τιμές * ----------------------------------- */ Foo two; /* two.arrPointer : 0x20 * * 0x20 | 0x21 | 0x22 | 0x23 [memory address] * ----------------------------------- * 965 | 765 | 267 | 222 [memory content] τυχαίες τιμές * ----------------------------------- */ Ας πάμε βήμα βήμα. 2 διαφορετικά instances του παραπάνω. Καταλαβαίνουμε μέχρι εδώ ότι το κάθε instance θα έχε ενα στοιχείο arrPointer τύπου int pointer όπου το arrPointer του κάθε instance θα δείχνει σε ένα διαφορετικό array. Σωστά; Αν δεν είμαστε σίγουροι για το παραπάνω πρέπει να διαβάσουμε λίγο περισσότερο τους pointers. Τώρα αν εγώ κάνω αυτό: two.arrPointer = one.arrPointer Τι έχω κάνει; Έχω αντιγράψει τα περιεχόμενα που ενός array στο άλλο; Δηλαδή μετά απο αυτή τη γραμμή το two.arrPointer θα έχει την τιμή που είχε (0x20) αλλά περιεχόμενα στις τέσσερις αυτές θέσεις θα είναι τα ίδια με αυτά απο τη θέση 0χ10; Η απάντηση είναι ενα τεράστιο όχι. Μετά απο αυτή τη γραμμή και οι 2 pointers θα έχουν την τιμή 0x10. Άρα θα δείχνουν στο ίδιο σημείο! Αν το καταλάβαμε μέχρι εδώ πάμε στο επόμενο. κάνω τώρα delete one; Τι θα γίνει στο delete του one? Και πως αυτό επηρεάζει το two?
  15. Ξαναδιάβασε γιατι έκανα update. Μη σκέφτεσαι τον pointer του proto ή του deftero. Τον pointer items του κάθε instance.
  • Δημιουργία νέου...