Saturday, August 24, 2013

Database fun times...


Ας μιλήσουμε λίγο για βάσεις δεδομένων... Είπα να κάνω μια εφαρμογή σε Java για ένα φίλο, θα 'χει κλασικά γραφικό περιβάλλον, θα συνδέεται σε βάση δεδομένων και θα κάνει διάφορα πράγματα (doh!).

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

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

Όταν όμως ένα text αρχείο δεδομένων (από εκεί θα τραβούσα τα δεδομένα και θα τα έβαζα στη βάση) έχει μέγεθος 35ΜΒ(!), δεν ξέρεις τι ακριβώς παίζει, πόση ώρα θα κάνει να εισάγει 500.000+ εγγραφές...

Τα δεδομένα καταρχήν ήταν... ένα σωρό text αρχεία με πόσες εγγραφές. Σκέφτηκα ότι θα μπορούσα να εξάγω αυτά που ήθελα με Regular Expressions και στην αρχή πήγε καλά, έλα όμως που κάποιοι χαρακτήρες μου χαλούσαν το SQL ερώτημα... Έπρεπε να κάνω ελέγχους για να σβήνω χαρακτήρες που θα δημιουργούσαν πρόβλημα και μετά να εισάγω στη βάση.

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

Φυσικά έγραψα πολύ απλό κώδικα για να τα κάνω αυτά, καθόλου optimized και τα περισσότερα hardcoded, άστα να πάνε.

Βρίσκω ευτυχώς τα ίδια δεδομένα σε μικρότερο όγκο (μια Αγγλίδα έκατσε και τα καθάρισε), σε JSON αρχείο όμως! Άρα πάμε σε φάση MongoDB, δε με χάλασε ιδιαίτερα μιας κι έχουν Java Driver οπότε θα 'κανα παιχνίδι άνετα.

Εκεί που χάρηκα και πάω να εισάγω το JSON στη MongoDB κι είμαι σε φάση "let's get it on, bitch!" έρχεται η πρώτη ψυχρολουσία... Ίσως ήταν formatting του JSON που δε διάβαζε τίποτα, το αρχείο δεν έμπαινε τέλος πάντων στη MongoDB.

Κατεβάζω καντήλια, "FUUUUUUUU...", αποφασίζω να κάνω μια τελευταία προσπάθεια να βρω τη βάση σε SQL εντολές για να περαστούν κατευθείαν σε MySQL ας πούμε.

Και ω ναι, τελικά βρήκα! *Ταντάαααν* αγγελάκια κατεβαίνουν απ' τον ουρανό, τρομπέτες να παίζουν "Αλληλούια", πυροτεχνήματα αριστερά και δεξιά...

Κατέβασμα MySQL Server, εγκατάσταση MySQL Workbench, εισαγωγή του .sql αρχείου και μετά από 1,5 ώρα που περνούσε τα δεδομένα, έχω επιτέλους τη βάση μου!

Γύρω στις 10-12 ώρες μου πήρε να τα κάνω όλα αυτά μες στην τελευταία βδομάδα, βάλε και το ηλίθιο, inneficient κώδικά μου, ε δε θέλει και πολύ :Ρ

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

Tuesday, August 6, 2013

Sharknado


Ω ναι το είδα... Μόνο και μόνο γιατί μαζευτήκαμε σπίτι μου με διάθεση να δούμε μαλακία και να φάμε "βρωμιές".

Εντάξει, εκ των πραγμάτων ξέρεις ότι με το ζόρι κατατάσσεται σαν ταινία κι ότι το πιθανότερο είναι ότι θα χάσεις 1,5 ώρα απ' τη ζωή σου. Στο ίντερνετ είχε γίνει τρελός ντόρος για τη συγκεκριμένη ε και θες να δεις τι διάολο είναι.

Είναι τόσο μαλακία που δύσκολα χαρακτηρίζεις το συγκεκριμένο "βίωμα"... Βαρέθηκα ρε φίλε, σε κάποια φάση κοιτάζω το vlc για να δω πόσο μένει ακόμα κι είχαμε δει μόνο μισή ώρα! Ακόμα και τώρα δυσκολεύομαι να γράψω το post, δε μπορώ να κάνω το μυαλό μου να βγάλει λόγια για το Sharknado. Θα σταματήσω να προσπαθώ.

Ο κόπος εν τω μεταξύ που μπήκαμε για να δούμε αυτό το έκτρωμα, δεν περιγράφεται. Η τηλεόραση δεν έχει HDMI, ούτε και το λαπτοπ μου. Οπότε λέμε ας πάμε S-Video σε SCART. Δε μπορούσα ν' αλλάξω την "πηγή" της τηλεόρασης για να δει από το λαπτοπ. Μετά από δοκιμές είπαμε να φέρουμε στο σαλόνι την οθόνη του υπολογιστή. Έλα όμως που στο desktop τη συνδέω με DVI, άρα χρειάζεται VGA αντάπτορας. Έπρεπε να βρω το καλώδιο της παλιάς οθόνης που τα 'φτυσε, επειδή εκείνη την είχα με τον αντάπτορα. Πόσο ψάξιμο και γι' αυτό. Πριν τον βρω τσεκάραμε S-Video σε S-Video αλλά η εικόνα στην οθόνη ήταν θάνατος...

Γαμώ την τρέλα μου φάγαμε περίπου 1,5 ώρα για να στήσουμε το "home cinema" της συμφοράς, είδαμε μια μαλακία που κράτησε 1,5 ώρα, δηλαδή χάσαμε 3 ώρες γι' "αυτό". Πω ρε φίλε ντάξει...

Τουλάχιστον είχαμε τα γυρόνια και γελάσαμε αρκετά. Κάτι είναι κι αυτό.

Κι η ταινία ήταν σε HD. Είδαμε μια HD μαλακία. Αν είναι να κάνεις κάτι να το κάνεις σωστά...