C++ for dinosaurs

Πριν λίγο καιρό, είχα αναφερθεί στη σελίδα του φίλου και συναδέλφου Νίκου, σχετικά με συμβουλές για το πως να χρησιμοποιούμε πιο αποτελεσματικά τη C++.

Πρόσφατα ο Νίκος ολοκλήρωσε τη συγγραφή του πρώτου του βιβλίου με θέμα τη C++, με τίτλο “C++ for dinosaurs“. Αν βρήκατε χρήσιμο το blog του, σίγουρα θα σας αρέσει και το βιβλίο του.

Απευθύνεται σε όσους θέλουν να γράφουν κώδικα C++ που να είναι πιο γρήγορος, ευανάγνωστος και να χρησιμοποιεί τις δυνατότητες της STL. Ειδικότερα δε, απευθύνεται σε αυτούς που γράφουν C (ή C++ σαν να ήταν C) και θα ήθελαν ο κώδικάς τους να ακολουθεί τις συμβάσεις τις C++.

Για όσους ενδιαφέρονται, σύντομα θα είναι διαθέσιμη και έντυπη έκδοση του βιβλίου.

Η καλή μας η FIFA

Αγαπάμε ποδόσφαιρο, αγαπάμε Μουντιάλ. Όμως δεν είναι όλα ρόδινα στο χώρο του ποδοσφαίρου.

Ο Βρετανός κωμικός John Oliver, με αφορμή τη διεξαγωγή του παγκόσμιου πρωταθλήματος ποδοσφαίρου στη Βραζιλία, προσπαθεί να εξηγήσει στους Αμερικανούς γιατί ο κόσμος αγαπάει το ποδόσφαιρο και πόσο σημαντικό είναι το Μουντιάλ. Όμως ακόμα και αυτό ουσιαστικά αποτελεί μια αφορμή για να μιλήσει για την “κακιά” FIFA.

Απολαύστε!

Υ.Γ.: Εκ των υστέρων ανακάλυψα και ένα ωραίο αφιέρωμα στον εν λόγω κωμικό

Μουντιάλ 2014 – Το πρόγραμμα

Σήμερα αρχίζει μια από τις μεγαλύτερες γιορτές του αθλητισμού (αλλά και του μάρκετινγκ) παγκοσμίως. Αναφέρομαι προφανώς στο παγκόσμιο πρωτάθλημα ποδοσφαίρου ή όπως συνηθίζουμε να λέμε, Μουντιάλ.

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

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

Έτσι έψαξα να βρω να τυπώσω ένα πρόγραμμα του Μουντιάλ για να το έχω πρόχειρο να βλέπω τι αγώνες γίνονται καθημερινά. Δυστυχώς δε βρήκα κάτι που να μου αρέσει. Έτσι αποφάσισα να κάνω κάτι μόνος μου.

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

Πρόγραμμα Παγκοσμίου Πρωταθλήματος Ποδοσφαίρου Βραζιλία 2014 1η φάση
Πρόγραμμα Παγκοσμίου Πρωταθλήματος Ποδοσφαίρου Βραζιλία 2014 1η φάση

Θα ήθελα να μου πείτε πως σας φαίνεται. Επίσης, αν εντοπίσετε κάποιο λάθος παρακαλώ ενημερώστε με.

Για την δημιουργία του προγράμματος χρησιμοποίησα το πρόγραμμα Scribus (πρώτη φορά που ασχολήθηκα με αυτό).

RoR – Επιτάχυνση των tests

Όταν τρέχουμε τα tests μας, χρειάζονται κάποια δευτερόλεπτα ώστε αυτά να ξεκινήσουν να τρέχουν (τουλάχιστον αυτό συμβαίνει όταν χρησιμοποιούμε RSpec). Ο λόγος είναι ότι για να τρέξουν τα tests χρειάζεται να φορτωθεί στη μνήμη ολόκληρη η εφαρμογή μας.

Χρησιμοποιώντας το Spork

Ένας τρόπος να επιταχύνουμε αυτή τη διαδικασία είναι με τη χρήση του Spork. Για να χρησιμοποιήσουμε το Spork θα πρέπει να φορτώσουμε τα κατάλληλα gems στο gemfile μας.

group :development, :test do
  ...
  gem 'spork-rails'
end

Χρησιμοποιούμε το gem ‘spork-rails’ αντί του ‘spork’, γιατί ενώ το Spork υποστηρίζει διάφορα frameworks, η υποστήριξη για Rails αφαιρέθηκε.

Στη συνέχεια τρέχουμε:

bundle install
bundle exec spork --bootstrap

Πριν συνεχίσουμε θα πρέπει να φτιάξουμε τα configuration αρχεία. Για παράδειγμα, αν χρησιμοποιείτε RSpec ως test framework, στο αρχείο /spec/spec_helper.rb θα έχουν προστεθεί αυτόματα 2 block από το Spork. Θα πρέπει να μοιράσουμε τα προυπάρχοντα settings του αρχείου σε αυτά τα 2 blocks. Το πιο εύκολο είναι να τα βάλουμε μέσα στο block Spork.prefork.

Τέλος, για να ολοκληρώσουμε θα πρέπει να τρέξουμε την εντολή ‘spork’. Πριν την τρέξουμε όμως μπορούμε αν θέλουμε να χρονομετρήσουμε τα tests μας για να δούμε τη διαφορά. Για να χρονομετρήσουμε χρησιμοποιούμε την εντολή time, π.χ. ‘time bundle exec rspec’. Αφού ξεκινήσουμε το Spork, μπορούμε να ξανατρέξουμε τα tests και να δούμε πόσο πιο γρήγορα είναι.

Guard και Spork μαζί

Αν χρησιμοποιούμε το Guard για αυτοματοποίηση των tests, τότε για να συνεργαστούν Guard και Spork θα πρέπει να προσθέσουμε άλλο ένα gem.

gem 'guard-spork'

Στη συνέχεια τρέχουμε:

bundle install
bundle exec guard init spork

Αυτό θα προσθέσει κάποια πράγματα στο Guardfile, που αν θέλουμε μπορούμε να τροποποιήσουμε (π.χ. να βάλουμε να ξεκινάει το Spork αυτόματα όταν θα ξεκινάμε το Guard).

Έτσι, έχοντας Guard και Spork εγκατεστημένα μπορούμε να βελτιώσουμε και να επιταχύνουμε το περιβάλλον ανάπτυξής μας, αλλά και ουσιαστικά να κάνουμε τη χρήση tests πιο εύκολη.

Twitter bot – Ποιός γεννήθηκε σαν σήμερα;

Πρόσφατα έφτιαξα ένα bot για το twitter που κάθε μια ώρα κάνει ένα tweet αναφέροντας μια προσωπικότητα που γεννήθηκε σαν σήμερα και παραθέτει ένα link για την αντίστοιχη σελίδα στη wikipedia.

Όποιος ενδιαφέρεται, έχω γράψει πιο αναλυτικά για αυτό εδώ.