Αναρτήσεις

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

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

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 μου και πολύ το χάρηκα.... Εδώ οφείλω να πω ότι οποιοσ

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

Εικόνα
Το σημερινό post γράφεται για δύο λόγους: Ο πρώτος είναι ότι όλοι όσοι έχουμε δουλέψει με δεδομένα σε γλώσσες άλλες από αυτές που χρησιμοποιούν το Λατινικό αλφάβητο, ξέρουμε πολύ καλά πόσο μεγάλος μπελάς είναι... Ο δεύτερος είναι ότι επειδή έφαγα σχεδόν δυο μέρες για να καταφέρω να φορτώσω ένα αρχείο txt tab delimited σε μια βάση SQL Server 2008 R2, θέλω να θυμάμαι τον λόγο και την αιτία της ταλαιπωρίας μου έτσι ώστε να μην περάσω τα ίδια αν χρειαστεί να το επαναλάβω μετά από καιρό και να βοηθηθεί και κάποιος άλλος που μπορεί να έχει το ίδιο πρόβλημα και να σπάει το κεφάλι του, όπως έκανα εγώ... Έστω λοιπόν ότι έχετε ένα txt αρχείο με δεδομένα τα οποία περιέχουν πεδία στα ελληνικά, το encoding του αρχείου είναι UTF-8 και δουλεύετε σε ένα μηχάνημα που το locale του είναι Greek... Δοκιμάζοντας να κάνετε import το αρχείο σε μια βάση SQL Server μέσω του Management Studio πιθανότατα δεν θα το καταφέρετε με την πρώτη... Κατά πάσα πιθανότητα το error που θα συναντήσετε οι περισσότεροι θ

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

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

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

Το 'φαγα...

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

Art...

Εικόνα

Χρήση variables για την περιγραφή των qvd path names - QlikView...

Ένα κοινό "πρόβλημα" στο QlikView development είναι όταν θέλεις να δοκιμάσεις την εφαρμογή σου σε κάποιο άλλο περιβάλλον, test ή live... Λόγω της φύσης του QlikView το να αλλάξεις απλά το connection string στη βάση που διαβάζεις δεν είναι αρκετό διότι θα πρέπει να ορίσεις ξανά το path για όλα τα qvds που φορτώνονται στην εφαρμογή, ένα ένα... Κάτι τέτοιο είναι χρονοβόρο και μη αποδοτικό και αυξάνει τις πιθανότητες λάθους... Η χρήση της επιλογής των Relative Paths δεν λύνει το πρόβλημα διότι προϋποθέτει ότι η εφαρμογή και τα qvds βρίσκονται στο ίδιο folder ή έστω διαφέρουν κατά ένα level κάτι το οποίο προσωπικά θεωρώ αρχιτεκτονικό λάθος...  Μια πολύ καλή λύση για να αντιμετωπιστεί μια τέτοια κατάσταση είναι η χρήση local variables για την αποθήκευση των path names των διαφόρων qvds... Αυτό γίνεται δηλώνοντας μια μεταβλητή  vPathName αμέσως μετά τα αρχικά set statements στο Main tab του script editor η οποία περιέχει το full path προς το qvd repository το οποίο θέλουμε να

"Νέμεσις" του Jo Nesbo

Εικόνα
Νέμεση, η θεά της εκδίκησης, το πιάτο που τρώγεται κρύο, περιγράφει ένα από τα πιο χαμηλά αλλά και αρχέγονα ένστικτα του ανθρώπου... Είναι η κεντρική έννοια γύρω από την οποία περιστρέφεται αυτό το βιβλίο... Μια αιματηρή ληστεία συμβαίνει στο κέντρο του Όσλο... Ο ληστής φεύγει με τα χρήματα αφού πρώτα έχει εκτελέσει εν ψυχρώ την ταμία... Την υπόθεση αναλαμβάνει ο Harry Hole ο οποίος βρίσκεται με την σειρά του μπλεγμένος σε μια άλλη υπόθεση καθώς μια πρώην ερωμένη του βρίσκεται δολοφονημένη την επομένη της νύχτας που ο Harry είναι προσκαλεσμένος στο σπίτι της αλλά ο ίδιος δεν θυμάται απολύτως τίποτα από την νύχτα αυτή... Οι ληστείες στο Όσλο συνεχίζονται, ο Harry νιώθει τον κλοιό γύρω του να σφίγγει και ένοχος μπορεί να είναι ο οποιοσδήποτε... Σε αυτό το βιβλίο ο  Nesbo  μας παρουσιάζει πρώτη φορά την Beate Lønn, την συνεργάτιδα και φίλη του Harry με την υπερανεπτυγμένη ατρακτοειδή έλικα που δεν ξεχνάει ποτέ πρόσωπα... Εμφανίζεται και πάλι ο  Tom Waaler, ο άσπονδος εχθρός

QlikView variable ως παράμετρος σε SQL query...

Το σημερινό tip είναι κάτι που έφτιαξα πριν περίπου 2 χρόνια, στην αρχή της ενασχόλησής μου με το QlikView, και προέκυψε από την ανάγκη να διαβάσω μια λίστα πελατών από ένα data source και μετά να περάσω αυτή την λίστα σαν παράμετρο σε ένα άλλο data source, μια βάση δεδομένων, για να συλλέξω όλη την πληροφορία που αφορούσε τους πελάτες αυτούς... Μετά από 2 χρόνια εντατικής δουλειάς και εμπειρίας ξέρω ότι υπάρχουν κι άλλοι τρόποι, να κάνεις την ίδια δουλειά, η συγκεκριμένη υλοποίηση όμως είναι ενδιαφέρουσα ως προς την χρήση των variables μέσα στο QlikView script σε συνδυασμό με SQL queries... Έστω λοιπόν ότι το πρώτο data source είναι ένα Excel αρχείο στο οποίο περιέχονται κωδικοί πελατών τους οποίους θέλουμε να διαβάσουμε και να αναζητήσουμε σε ένα άλλο data source, μια βάση δεδομένων... Για να το καταφέρουμε αυτό θα δημιουργήσουμε μια μεταβλητή η οποία θα περιέχει σαν ένα μεγάλο string, όλους τους κωδικούς πελατών (χωρισμένους με κόμματα και κλεισμένους μέσα σε "αυτάκια&quo