Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

Tuesday, March 4, 2014

Και στ' Αγγλικά παρακαλώ...

Δεν ξέρω από πότε ακριβώς αλλά κάποια posts περί προγραμματισμού θα γράφονται στ' αγγλικά από δω και πέρα.

Είτε θα είναι σε φάση tutorial είτε σαν απλό post, θα τα γράφω στ' αγγλικά γιατί σκοπεύω να έχω πάρε δώσε με κάποια άτομα και είναι καλό να υπάρχουν blog posts για προγραμματισμό.

Αρχικά η σκέψη ήταν να φτιάξω ένα δεύτερο blog καθαρά γι' αυτό το σκοπό, δεν υπάρχει λόγος όμως, κι αυτό το blog μια χαρά την κάνει τη δουλειά του.

See ya later!

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 κώδικά μου, ε δε θέλει και πολύ :Ρ

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

Wednesday, July 24, 2013

Code in style - Heat edition


Τελικά το να γράφεις κώδικα το καλοκαίρι δεν είναι καλή ιδέα...

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

Πόσο μάλλον όταν πρέπει να 'χεις ανοιχτό έναν browser με το εκάστοτε API ή/και tutorials, το IDE για να γράφεις και το συνεχές alt+tab για να πηγαίνεις μπρος πίσω στα παράθυρα (ναι, τα 'φτυσε η δεύτερη οθόνη που είχα).

Φυσικά μετά κάποια ώρα σε πιάνει το κεφάλι σου γιατί το ένα δε δουλεύει, το άλλο δε δουλεύει, ο άλλος το κάνει στο Eclipse εγώ το θέλω στο NetBeans...

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

Monday, July 8, 2013

public static void main(String[] args){//todo}


Μέχρι το τέλος του καλοκαιριού, ή θα τα 'χω φτύσει από υπερκατανάλωση Java ή θα 'χω μάθει τόση πολλή όσο δεν έμαθα στα τόσα χρόνια της σχολής. In any case, όπως λέει και το τραγούδι "I'm so excited, I just can't hide it, τουρου τουρου τουρου τουρου τουρου τουρου-ρου"

Ποιός θα περίμενε ότι ένα παιχνίδι και τα mods του θα σε κάνουν ν' ασχοληθείς επιτέλους με τον προγραμματισμό ε; Ώρα να ξεφεύγουμε απ' τα one-class προγράμματα της σχολής, φτάνει.

Κι έχουμε και τους κυρίους του Android που μ' ενδιαφέρουν κι αυτοί, ωραία πράγματα μπορείς να φτιάξεις για Android κι έχουμε και συνεργάτη στο "έγκλημα" :Ρ

Eclipse Kepler στήθηκε, ADT στήθηκε, workspaces έγιναν, github ρυθμίστηκε... Let's get it done!