Προς το περιεχόμενο
  • Εγγραφή

albNik

Members
  • ΜΗΝΥΜΑΤΑ FORUM

    1.040
  • ΜΕΛΟΣ

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

Οτιδήποτε δημοσιεύεται από albNik

  1. Δεν ειναι πάντα θεμα ταιριασματος. Πολλές ομάδες είναι μη-αποδοτικές, τα bugs δεν τελειώνουν, τα deadlines δεν τηρούνται, τα projects δεν ολοκληρώνονται. Η διοικηση με ψευτουπολογισμους (του στυλ 5 developers βγάζουν δουλειά x5 ή 5 φορες γρηγορότερα) αποφασίζει ότι χρειάζονται επιπλέον προγραμματιστες...
  2. Παραθετω αυτη την απάντηση με την οποια συμφωνώ. https://news.ycombinator.com/item?id=25414534 Σχετικα με το παρακατω θεμα https://www.quantcast.com/blog/death-by-1000-layers-the-perils-of-over-abstraction-in-java/
  3. Γενικα εγω τα παω καλα με σύντομες τεχνικες ερωτήσεις και μικρές ασκησουλες. Η συζήτηση προχωράει γρήγορα και ολοι ειναι happy. Μετα σου βαζουν ενα design problem. Π.χ να δεις κωδικα (5-6 αρχεια) ή να σχεδιασεις ενα μικρο προγραμματακι μονο UML. Εδω αρχίζουν τα δυσκολα, η αποψη μου δεν συμφωνεί σχεδόν ποτε με τη δική τους. Προτιμώ ελάχιστες κλάσεις, χωρίς περιττα abstractions, οχι unit tests, θελω η μεθοδος να κανει κατι μονη της, οχι μικρες που καλουν αλλες μικρες ... και καμια δεν κανει κατι απο μονη της. Συνηθως διαφωνούμε και ξερω απο μονος οτι αποριφθηκα.
  4. albNik

    Απορίες στην Java

    Οι managed γλωσσες Java, C#... εχουν εξελιχθεί αρκετα στο code optimisation και ειδικά στην διαχείριση μνήμης. To εκτελέσιμο τους ξεπερνάει ανετα σε ταχύτητα τα αντίστοιχα των c/c++. Ο GC είναι ουσιαστικά ενας perfomance booster.
  5. albNik

    Απορίες στην Java

    Αυτό που βλέπεις υποτίθεται ότι είναι το hashcode του object, όχι διευθυνση μνήμης. Επίσης o JVM ειναι έξυπνος ώστε να μην αποθηκεύει καν το ενα object που δεν χρησιμοποίησες ποτέ. Εκτυπωσε τα S1, S2 πριν και μετα το S2=S1 public class HelloWorld{ public static void main(String []args){ T a=new T(); T b=new T(); // System.out.println(a); // System.out.println(b); a=b; System.out.println(a); System.out.println(b); } } class T{} Δες τη διαφορα αν κανεις uncomment τις δυο γραμμές.
  6. Ευκολο ειναι, θα στρογγυλοποιήσεις το x σε ακεραιο. (5330+10x)/(650+x)=8.7
  7. albNik

    Απορίες στην Java

    Tα references δειχνουν σε θεσεις μνημης οπως και οι pointers, απλα ειναι πιο βελτιωμένα. Εχουν εκτός apo την διεύθυνση του object καποια επιπλέον metadata οπως τον τυπο της κλασσης π.χ. αν ειναι πινακας τοτε εχει και το Length του. Δεν μπορει το reference ενός Dataset object να δειχνει αργοτερα στο BankAccount. Ειναι πιο ασφαλή επίσης επειδή δεν επιτρέπονται low level arithmetic tricks με τις διευθύνσεις τους.
  8. albNik

    Απορίες στην Java

    Το αντικείμενο καταλαμβάνει χωρο μονο για τα πεδία. Οι μέθοδοι 'ανήκουν' στην κλαση. Οταν καλεις μια μεθοδο απο την main τότε οι primitive (int, boolean, float..) τοπικές μεταβλητές και παράμετροι αποθηκεύονται στην stack memory (LIFO) η οποια καθαρίζει μόλις τελειωσει η μέθοδος (οπως στην C). Αν μεσα στη μεθοδο δημιουργείς αντικείμενα τοτε αυτα τα καθαρίζει ο GC όταν δεν υπάρχουν references προς αυτά (Στην C πρέπει να κάνεις deallocate).
  9. Δεν ειναι καλο να εχεις embedded json array μεσα σε ενα field. Θα εχεις θεμα με edit/update καθε φορα. Ασε που μπορεί να μεγαλώνει και να γινει αργο. Θα εχεις ενα αλλο table με info απο τη δραστηριοτητα + customerId + articleId. To join info-customer-article δεν νομιζω να ειναι αργο. Δεν θα εχεις θεμα ουτε με ταχυτητα εισαγωγης στο info.
  10. Σου εχω πιο φθηνή λύση, δηλαδη εντελώς τζαμπα. Μπες στο github, ψαξε για τις τεχνολογίες που λες σιγουρα θα βρεις έτοιμο καποιο (open source) project. Στείλε απλα το λινκ στον καθηγητη αν βαριεσαι να το κατεβασεις.
  11. Αυτο που ηθελα να πω απο ειναι οτι το recursive (level--); ειναι ισοδύναμο με recursive (level); level=level-1; αρα η κάθε νέα θα καλείται με το ιδιο level=10 recursive (--level); ειναι ισοδύναμο με level=level-1; recursive (level); εδω το level μειώνεται σε καθε κληση Βασικά δεν τερματίζει επειδή η συνθήκη τερματισμού ειναι μετά την κλήση την επόμενης recursive(). Το παρακατω εχει το if πριν και τερματίζει γραφοντας 10, 9 ,8,..0 . Aφαίρεσα το level++. public static void recursive(int level) { Console.WriteLine(level); if (level == 0) { retur
  12. Το θεμα ειναι να καταλάβει ο φοιτητής οτι recursive(--level) ειναι διαφορετικό απο recursive(level--)
  13. Ολα τα παραπανω, μην αναρωτιεσαι καθολου.
  14. albNik

    άσκηση

    Επίσης στο 2: το μέγεθος της βάσης δεδομένων μπορεί να είναι πολύ μεγαλύτερο του περιεχόμενου της.
  15. Θα εχεις ενα πινακα int μήκους 50 ( ας πουμε δεν υπάρχει λεξη με πανω απο 50 γραμματα), θα τρέξεις το αρχειο σου και για καθε λεξη που βρισκεις θα αυξανεις τη συγκεκριμενη θεση του πινακα κατα 1. Π.χ. αν η λέξη ηταν μήκους 5 θα πεις a[5]++; while((word=getNextword())!=null) { a[word.length]++; } for(i=1; i<50; i++) print("Λεξεις με μηκος " + i +" : ", a[i]);
  16. albNik

    ΑΣΚΗΣΗ C

    Παντως πρεπει με 10 προσπαθειες να βρισκεις παντα οποιοδηποτε μεταξυ 1-1000 (απο 1 εως 2^10 για την ακρίβεια). Θες κατι σε δυαδικη αναζητηση. Π.χ. για να βρεις το 284 δοκιμαζεις 500, ειναι μεγαλυτερο, αρα ειναι μεταξυ [1-500] δοκιμαζεις 250, ειναι μικρότερο, αρα ειναι μεταξυ [250-500] δοκιμαζεις (500+250)/2 =375, μεγαλυτερο , αρα ειναι μεταξυ [250-375] δοκιμαζεις (250+375)/2=312, μεγαλυτερο, αρα ειναι μεταξυ [250-312] δοκιμαζεις (250+312)/2=281, μεγαλυτερο, αρα ειναι μεταξυ [281-312] δοκιμαζεις (281+312)/2=296, μεγαλυτερο, αρα ειναι μεταξ
  17. albNik

    Coding Bootcamp

    Εγω ηξερα εναν που πηγε δυο φορες. Την πρωτη φορα βρηκε δουλεια με 1200 και τη δεύτερη με 2400.
  18. albNik

    Coding Bootcamp

    Παντως την κοπέλα του τη ριξανε. Ισοτήτα σου λεει μετα. ☹️
  19. Και ποιος θα τεσταρει το τεστ οτι τεσταρει σωστα το x+y 😃 Θέλω να πω ότι το τεστ μπορει να εχει παραπλήσια η και μεγαλύτερη δυσκολία με το ιδιο το πρόγραμμα.
  20. Στην πραξη ειναι πιο περίπλοκο. Το feature λεει οτι τωρα οταν καλεις το a θα εκτελεις τα x'y'z' αντι για xy που ηταν πριν. Στα τεστ δεν ειναι τοσο ευκολη η αντικαταστάση xy-->x'y'z'. Όσο περισσότερα τεστ τόσο πιο δυσκολα
  21. Μια που πιασατε τα σχολια πρεπει να πουμε πως κατι χειρότερο ειναι τα unit tests. Πας σε ενα ξένο κωδικα να προσθεσεις ενα feature, χαιρεσαι που το καταφερες πριν πεσουν τα μαλλιά και μετα αρχιζουν να κλοτσανε τα τεστ. Αναγκαζεσαι να τα πειραξεις ωστε να πρασινισουν αλλα μερικές φορες ειναι τοσο αθλια που απλα τα κανεις Assert(true) ή comment out.
  22. albNik

    Βοήθεια σε άσκηση C

    Οι αριθμοι ειναι απειροι δλδ να μην τους αποθηκεύσεις (σε λιστα, πινακα κλπ). Θα πρεπει να αποθηκεύεις σε μεταβλητές μόνο το τρέχων σύνολο αριθμών, άθροισμα, ελάχιστο, μέγιστο κλπ. Αν εχεις διαβασει π.χ. εως τωρα 10 αριθμους με μεσο ορο = 1000 και μετα διαβασεις το 50 ποσο ειναι ο νεος μεσος ορος των 11 αριθμων;
  23. for(int i = 0; i < 1000; i++) Console.WriteLine(Int32ToString(i, 3).PadLeft(10, '0')); public static string Int32ToString(int value, int toBase) { string result = string.Empty; do { result = "0123456789ABCDEF"[value % toBase] + result; value /= toBase; } while(value > 0); return result; } 0000000000 0000000001 0000000002 0000000010 0000000011 0000000012 0000000020 0000000021 0000000022 0000000100 0000000101 0000000102 0000000110 0000000111 0000000112 .....
  24. albNik

    SQL query

    Πρεπει να πεις τι πληροφοριες ζητας και απο ποιους πινακες. Π.χ η ερώτηση για υποθετικη βαση με Customers και Orders : Return customers with orders placed on February 12, 2007, along with their orders. SELECT C.custid, C.companyname, O.orderid, O.orderdate FROM Sales.Customers AS C JOIN Sales.Orders AS O ON O.custid = C.custid WHERE O.orderdate = '20070212';
  • Δημιουργία νέου...

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.