Πέμπτη, 24 Δεκεμβρίου 2015

"Το αστέρι του διαβόλου" του Jo Nesbo

"Το αστέρι του διαβόλου" του Jo Nesbo
Ο Harry Hole έχει πιάσει πάτο... Τα φαντάσματα του παρελθόντος και οι δαίμονες του τον έχουν οδηγήσει στο χαμηλότερο σημείο... Έχει καταστρέψει την προσωπική κι επαγγελματική του ζωή, βαδίζει σε ένα μονοπάτι που οδηγεί στο πουθενά... Ξεχασμένος και παρατημένος από όλους και από τον ίδιο του τον εαυτό, βρίσκει τη μία και μοναδική σανίδα σωτηρίας που μπορεί να υπάρχει γι' αυτόν, την επίλυση ενός ακόμα εγκλήματος... Μέσα σε ένα Όσλο αυγουστιάτικο και απροσδόκητα ζεστό, εγκαταλειμμένο από τους αδειούχους κατοίκους του, μια σειρά φόνων με επαναλαμβανόμενο τελετουργικό καταδεικνύουν ότι ένας κατά συρροή δολοφόνος είναι ελεύθερος στην πόλη και ο πλέον κατάλληλος να τον πιάσει είναι ο Harry Hole... Για την επίλυση της υπόθεσης θα αναγκαστεί να συνεργαστεί με τον άσπονδο εχθρό του, τον Tom Waaler, οι ανατροπές θα είναι πολλές και το φινάλε εντυπωσιακό από κάθε άποψη...

Το "Αστέρι του διαβόλου" είναι το πέμπτο κατά σειρά μυθιστόρημα του Jo Nesbo με πρωταγωνιστή τον Harry Hole... Συγκεντρώνει όλες τις αρετές των βιβλίων του Νορβηγού συγγραφέα χωρίς όμως, κατά την άποψή μου, να φτάνει στα επίπεδα του "Φαντομά" ή της "Λεοπάρδαλης"... Μεγάλο προσόν του βιβλίου είναι η πολύ καλή πλοκή που στήνει ο Nesbo η οποία ενώ οδηγεί τον αναγνώστη σε διάφορες ερμηνείες, τις διαψεύδει με συνεχείς ανατροπές οι οποίες όμως είναι τεκμηριωμένες, δεν είναι τραβηγμένες απ΄τα μαλλιά, σέβονται τον αναγνώστη και την λογική... Αγαπημένο μου κομμάτι του βιβλίου το φινάλε και ο διάλογος του Harry Hole με τον δολοφόνο, μια κουβέντα για την αγάπη, το μίσος, την τρέλα... Επίσης ενδιαφέρουσα η κατάδυση στο παρελθόν του Waaler, μια απόπειρα να ψηλαφίσει τον χαρακτήρα του "Πρίγκηπα", τις αιτίες που τον δημιούργησαν, η οποία όμως θα μπορούσε να είναι λεπτομερέστερη...

Ενδεχομένως γίνομαι βαρετός όταν σχολιάζω βιβλία του Nesbo αλλά η αλήθεια είναι ότι ο Νορβηγός έχει καταφέρει να βρει μια μανιέρα εξαιρετικά καλά δουλεμένη η οποία αν και οικεία δεν σε αφήνει να τη βαρεθείς διότι είναι αυτό που θες και χρειάζεσαι... Επιπροσθέτως ο  Harry Hole είναι τόσο εμβληματικός σαν χαρακτήρας και σαν προσωπικότητα που δεν είναι τυχαίο που έχει αποκτήσει δικού του οπαδούς σαν να είναι υπαρκτό πρόσωπο... Φυσικά και προτείνω το "Αστέρι του διαβόλου", δεν θα μπορούσα να κάνω αλλιώς...

Τετάρτη, 23 Δεκεμβρίου 2015

T-SQL script για μαζική διαγραφή των table constraints μιας database...

Τις τελευταίες μέρες, όπως φάνηκε και από το προηγούμενο post, η δουλειά τα έφερε έτσι ώστε να ξοδέψω τον περισσότερο μου χρόνο στο γραφείο δουλεύοντας με τον SQL Server... Ανέκαθεν τον θεωρούσα το καλύτερο από τα σχετικά προϊόντα διότι κατά τη γνώμη μου έχει το υψηλότερο μέσο όρο όσον αφορά τις επιδόσεις των χαρακτηριστικών του, μπορεί να μην είναι ο καλύτερος συγκριτικά με άλλες databases σε επί μέρους χαρακτηριστικά αλλά συνολικά είναι (για μένα) η καλύτερη database ...

Δουλεύοντας λοιπόν, χρειάστηκε σε κάποιο σημείο να διαγράψω κάποια tables από μια development database τα οποία όμως είχαν διάφορα foreign keys που με την σειρά τους εμπόδιζαν τη διαγραφή των tables, οπότε έπρεπε να διαγραφούν πρώτα τα foreign keys και σίγουρα δεν ήθελα να το κάνω manually από το gui του Management Studio, ψάχνοντας και σβήνοντας τα ένα ένα ...

Το παρακάτω script ήταν μια ευκαιρία να πετύχω αυτό που ήθελα και να ξεσκονίσω λίγο την T-SQL μου και πολύ το χάρηκα.... Εδώ οφείλω να πω ότι οποιοσδήποτε θέλει να το χρησιμοποιήσει ή να το τροποποιήσει πρέπει να είναι  εξαιρετικά προσεκτικός και να γνωρίζει με σιγουριά τι θέλει να κάνει και τι αποτελέσματα θα έχει αυτό που θα κάνει διότι οποιοδήποτε λάθος ή παράλειψη όταν "παίζουμε" με τα system tables του SQL Server μπορεί να έχει πολύ άσχημα αποτελέσματα για τη database...

Κατά τ' άλλα, χρησιμοποιήστε το κατά βούληση... :)

Τρίτη, 22 Δεκεμβρίου 2015

Εισαγωγή δεδομένων UTF-8 στον SQL Server...

Το σημερινό post γράφεται για δύο λόγους: Ο πρώτος είναι ότι όλοι όσοι έχουμε δουλέψει με δεδομένα σε γλώσσες άλλες από αυτές που χρησιμοποιούν το Λατινικό αλφάβητο, ξέρουμε πολύ καλά πόσο μεγάλος μπελάς είναι... Ο δεύτερος είναι ότι επειδή έφαγα σχεδόν δυο μέρες για να καταφέρω να φορτώσω ένα αρχείο txt tab delimited σε μια βάση SQL Server 2008 R2, θέλω να θυμάμαι τον λόγο και την αιτία της ταλαιπωρίας μου έτσι ώστε να μην περάσω τα ίδια αν χρειαστεί να το επαναλάβω μετά από καιρό και να βοηθηθεί και κάποιος άλλος που μπορεί να έχει το ίδιο πρόβλημα και να σπάει το κεφάλι του, όπως έκανα εγώ...

Έστω λοιπόν ότι έχετε ένα txt αρχείο με δεδομένα τα οποία περιέχουν πεδία στα ελληνικά, το encoding του αρχείου είναι UTF-8 και δουλεύετε σε ένα μηχάνημα που το locale του είναι Greek... Δοκιμάζοντας να κάνετε import το αρχείο σε μια βάση SQL Server μέσω του Management Studio πιθανότατα δεν θα το καταφέρετε με την πρώτη... Κατά πάσα πιθανότητα το error που θα συναντήσετε οι περισσότεροι θα αναφέρει ότι υπάρχουν δύο encodings στο αρχείο, ότι το UTF-8 είναι unsupported στον SQL Server (δεν ξέρω αν αυτό ισχύει για όλες τις εκδόσεις του) και διάφορα άλλα ενοχλητικά μηνύματα...

Το πρόβλημα λύνεται με τον εξής απλό τρόπο:

Όταν σετάρουμε τα options του Import Wizard στο Management Studio πρέπει να κάνουμε τις παρακάτω επιλογές:

mssql2008-import-wizard-1

mssql2008-import-wizard-2

Με λίγα λόγια, πρέπει να ορίσουμε στον Import Data Source Wizard το locale σε "English (United States)" και το encoding σε "65001 (UTF-8)"... Κατόπιν, στο μενού Advanced, πρέπει να ορίσουμε το data type όλων των πεδίων σε "Unicode_string [DT_WSTR]"... Στην συνέχεια πατάμε διαρκώς Next μέχρι να φτάσουμε στο τέλος του Wizard... Τα δεδομένα θα φορτωθούν στη βάση μας, στο default αρχείο που θα παράξει ο Wizard και από εκεί και πέρα είναι πολύ απλό να κάνεις όλα τα απαραίτητα transformations και να τα φορτώσεις στον τελικό πίνακα με τα σωστά data types... Τόσο απλά!

Οι εικόνες και το credit ανήκουν στην GeoDataSource ...

Τετάρτη, 16 Δεκεμβρίου 2015

Η φωτογραφία της χρονιάς...

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


Η ιστορία της φωτογραφίας, εδώ...

Δευτέρα, 14 Δεκεμβρίου 2015

Agile Scrum Master: A Practical Approach (10/12 - 11/12 @ HP Enterprise Athens)...

Την Πέμπτη και την Παρασκευή που μας πέρασε είχα την τύχη να παρακολουθήσω το πολύ ενδιαφέρον σεμινάριο Agile Scrum Master: A Practical Approach στο εκπαιδευτικό κέντρο της HP Enterprise στο Χαλάνδρι... Εισηγητής ήταν ο Δημήτρης Δημητρέλος, ένα από τα πλέον δραστήρια και καταρτισμένα μέλη της εν Ελλάδι Agile κοινότητας, τον οποίο τυγχάνει να γνωρίζω και από τον χώρο εργασίας μου... Θέμα του σεμιναρίου ήταν αυτό που λέει το όνομά του, μια πρακτική προσέγγιση της μεθοδολογίας του Agile, με έμφαση στο Scrum, μέσα από ένα διαδραστικό πρόγραμμα, με συζητήσεις, ομαδικές και ατομικές εργασίες προβολές βίντεο και πολύ πολύ συμμετοχή...

Το Agile όπως διαβάζουμε στη wikipedia είναι:

Agile Software Development is a set of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change

ενώ το Scrum (πάλι σύμφωνα με τη wikipedia) είναι:

Scrum is an iterative and incremental agile software development methodology for managing product development. It defines "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal"[this quote needs a citation], challenges assumptions of the "traditional, sequential approach" to product development, and enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members, as well as daily face-to-face communication among all team members and disciplines in the project.
Η κεντρική ιδέα του Scrum είναι ότι το software development γίνεται σε μικρούς επαναληπτικούς κύκλους, υλοποιώντας μικρά κομμάτια του τελικού έργου από το επίπεδο της ανάλυσης μέχρι το επίπεδο της υλοποίησης, του unit test και του acceptanse test, ως το τελικό release... Κάθε κύκλος του Scrum με την επιτυχή του ολοκλήρωσή του έχει να παρουσιάσει ένα παραδοτέο, υποσύνολο του τελικού στόχου, με διακριτό business value... Το Scrum δεν φοβάται τις αλλαγές στις προδιαγραφές, λόγω των μικρών κύκλων ανάπτυξης είναι ευέλικτο... Βάζει στο κέντρο της προσοχής την ομάδα υλοποίησης, ποντάρει στην καλή συνεργασία των μελών της, στην μεταξύ τους συνεννόηση, στην προσωπική ηρεμία και ανάπτυξη η οποία μεσομακροπρόθεσμα ωφελεί την ομάδα, την καλή λειτουργία και την αποδοτικότητά της... Για το Scrum ο developer είναι ο πρωταγονιστής σε ένα έργο software development, όλοι οι υπόλοιποι εμπλεκόμενοι, ακόμα και το management, έχουν ρόλο υποστηρικτικό έτσι ώστε το development team να κάνει τη δουλειά του με όσο λιγότερα προβλήματα γίνεται...

Στην υπερδεκαετή καριέρα μου και έχοντας δουλέψει κατά κύριο λόγο σε έργα λογισμικού τα οποία "τρέξανε" με κλασσικότερες μεθοδολογίες (κατά κύριο λόγο Waterfall) ξέρω αρκετά καλά ποια είναι τα υπέρ και τα κατά τους... Η λογική του Scrum μου φαίνεται πολύ πιο αποδοτική και developer friendly, συνδυάζει την ποιότητα του παραγόμενου προϊόντος και την καλή λειτουργία και καλή ψυχική και σωματική κατάσταση της ομάδας ανάπτυξης... Επίσης, έχοντας την  τύχη να δουλέψω σε πολύ δεμένες ομάδες στην καριέρα μου, ξέρω ότι το Scrum έχει απόλυτο δίκιο όταν δίνει τόση σημασία στην καλή  ψυχική και σωματική κατάσταση της ομάδας ανάπτυξης και τις καλές σχέσεις μεταξύ των μελών της... Όταν ισχύουν αυτές οι προϋποθέσεις το προϊόν είναι πάντα καλύτερο, η δουλειά δεν είναι απλά ένα οχτάωρο αναγκαστικής παραμονής σε ένα χώρο...

Αν θέλετε να μάθετε περισσότερα για το Agile και το Scrum, τα παρακάτω links θα σας φανούν χρήσιμα:

Σάββατο, 12 Δεκεμβρίου 2015

Το 'φαγα...

Ο Θ. έχει τις μαύρες του και γκρινιάζει... Προσπαθούμε να τον βάλουμε για μπάνιο κι αυτός αντιστέκεται,  τσιρίζει, χτυπιέται...

Η Μ. τον παίρνει αγκαλιά και προσπαθεί να τον καλμάρει...

Μ: Πού είναι το μωρό μου, πού είναι το καλό μου το παιδάκι, τι του έκανες;
Θ: Το 'φαγα...
!!!