Είσαι ή developer ή designer ή sysadmin. Και δεν μπορείς να κάνεις τίποτε για αυτό.

Αν ασχολείσαι με την δημιουργία “πραγμάτων” στο Internet στις μέρες μας, μπορεί να σε προβληματίζει το πως πρέπει να αυτοπροσδιορίζεσαι επαγγελματικά. Λέω αυτοπροσδιορίζεσαι γιατί η ωμή αλήθεια (παρόλο που δεν θέλουμε να το παραδεχτούμε) είναι ότι η πλειοψηφία των ανθρώπων εκεί έξω δεν ενδιαφέρονται για τον τίτλο σου. Αλλά και η μειοψηφία εκείνη που μπορεί να ενδιαφέρεται να προσλάβει έναν “senior super saiyajin full stack all inclusive keep the change php ninja” μπορεί εύκολα να πειστεί από το καλοστημένο portfolio του απλού, κοινού θνητού, web developer.

Ας κάνουμε τώρα μια υπόθεση εργασίας. Ασχολείσαι με την κατασκευή ιστοσελίδων (οποιοδήποτε κομμάτι της, development, design, …). Είσαι καλεσμένος σε έναν γάμο. Γνωρίζεις έναν τύπο στο τραπέζι σου ο οποίος σου λέει (πριν μάθει με τι ασχολείσαι) ότι προσπαθεί να βρει κάποιον να του φτιάξει το ηλεκτρονικό μαγαζί του για να πουλάει πράγματα στα ιντερνετς, πως τα λέτε αυτά εσείς οι νέοι, και διαθέτει μέχρι και 25.000 ευρώ γιατί ξέρει ότι είναι το μέλλον. Τώρα σκέψου τι πρόκειται να απαντήσεις στην ερώτηση “με τι ασχολείσαι;”.

ΣΗΜΕΙΩΣΗ: Για λόγους απλούστευσης σε αυτό το άρθρο με τον όρο ιστοσελίδα αναφερόμαστε σε όλες τις web εφαρμογές (websites, e-shops, portals, web services, κ.ο.κ.).

Εν αρχή είν’ η αρχιτεκτονική

Κάθε ιστοσελίδα έχει μια δομή. Στην επιστήμη της Πληροφορικής η δομή αυτή εξαρτάται από την αρχιτεκτονική που θα επιλέξει ο κατασκευαστής ή η ομάδα κατασκευής της ιστοσελίδας.

Για τον κόσμο του Web η πιο συνηθισμένη αρχιτεκτονική είναι η αρχιτεκτονική πολλαπλών επιπέδων (multi-tier architecture) και πιο συγκεκριμένα η three-tier arhictecture της οποίας η λογική απεικονίζεται στην εικόνα στα δεξιά. Η αρχιτεκτονική αυτή ορίζει 3 επίπεδα τα οποία με απλά λόγια είναι τα εξής (για καλύτερη κατανόηση διαβάστε από κάτω προς τα πάνω, όπως στο σχήμα):

  • Επίπεδο Παρουσίασης (Presentation Tier): Εδώ ζει (που θα έλεγε και ο Bob Ross) το user interface (UI) ή ελληνιστί η διεπαφή χρήστη. Στην ουσία αυτό το επίπεδο είναι το σημείο επαφής του χρήστη / επισκέπτη της ιστοσελίδας, με την πληροφορία (δηλαδή τα δεδομένα της ιστοσελίδας), μεταφράζει δηλαδή, όπως σωστά αναφέρει το παραπάνω σχήμα, τις διαδικασίες της ιστοσελίδας σε κάτι που να μπορεί να καταλάβει ο χρήστης.
  • Επίπεδο Λογικής (Logic Tier ή Business Logic Tier): Πρόκειται για το κέντρο αποφάσεων της ιστοσελίδας. Εδώ, βάσει των επιλογών των χρηστών της ιστοσελίδας, ανασύρονται τα κατάλληλα δεδομένα από το επίπεδο δεδομένων για να προωθηθούν στο επίπεδο παρουσίασης (βλ. παραπάνω).
  • Επίπεδο Δεδομένων (Data tier): Η αποθήκη δεδομένων (κείμενα, εικόνες, αρχεία, βάση δεδομένων). Όλη η πληροφορία της ιστοσελίδας βρίσκεται εδώ!

Image credit: Wikipedia

ΣΗΜΕΙΩΣΗ: Η παραπάνω αρχιτεκτονική είναι αρκετά αφηρημένη. Τα τελευταία χρόνια έχουν αναπτυχθεί διάφορες παραλλαγές της όπως η Model View Controller (MVC), η Model View Viewmodel (MVVP) και η The Four‑Tier Engagement Platform που κατά βάση επεκτείνει την three-tier architecture λαμβάνοντας υπόψη σαν 4ο επίπεδο τις διαφορετικές mobile συσκευές που πρέπει να εξυπηρετηθούν.

Τίνος είσ’ εσύ;

Βάση των παραπάνω οι βασικές κατηγορίες των επαγγελματιών διαδικτύου συνεχίζουν να είναι οι εξής τρεις (στο D&D θα τις λέγαμε classes):

  • Developer: γράφει κώδικα, σκέφτεται (υπερ-)αναλυτικά, είναι problem solver και θα επιλέγει πάντοτε την πιο αποδοτική λύση για την μηχανή. Θέματα UI/UX τον αφήνουν παντελώς αδιάφορο γιατί ο ίδιος αντιλαμβάνεται εύκολα πως δουλεύει μια μηχανή ή μία εφαρμογή και δεν καταλαβαίνει γιατί δεν είναι ξεκάθαρο για τους άλλους.
  • Designer: είναι artist, πράγμα το οποίο αναπόφευκτα φέρνει υποκειμενικότητα στα παραδοτέα του. Όπως με οποιαδήποτε μορφή τέχνης, κάθε δουλειά “χτυπάει” διαφορετικά στα διάφορα μάτια. Επειδή η βασική του επιδίωξη είναι ο χρήστης μιας εφαρμογής να καταλαβαίνει τι προσφέρει η εφαρμογή και να του είναι όσο το δυνατόν πιο ξεκάθαρο πως λειτουργεί, επικεντρώνεται στο κομμάτι αυτό πολλές φορές αδιαφορώντας για τις συνέπειες σε επίπεδο απόδοσης γιατί θεωρεί πως εφόσον ο χρήστης είναι ικανοποιημένος, η πλατφόρμα είναι επιτυχημένη και όλα τα άλλα θα βρεθούν.
  • SysAdmin / Webmaster:  συνήθως λειτουργούν σειριακά με συνταγές καλών πρακτικών και απώτερο στόχο την καλή λειτουργία και την ασφάλεια των υποδομών (δίκτυο, storage, ασφάλεια, κ.ο.κ.). Έχουν βαθιά γνώση σε επίπεδο δικτύου / hardware και των online εργαλείων που αφορούν την διαχείριση των servers σε επίπεδο φιλοξενίας των ιστοσελίδων και διαχείρισης χρηστών. Βλέπουν την εφαρμογή μακροσκοπικά, ως ένα σύνολο αρχείων που ξοδεύει τους πόρους ενός συστήματος για να κάνει μια δουλειά.

Μέχρι τα 2005 περίπου οι περισσότεροι επαγγελματίες καλούνταν να διαλέξουν μία από τις παραπάνω κατηγορίες για να ακολουθήσουν ως επάγγελμα. Οι περισσότεροι ωστόσο από αυτούς (είτε ως φοιτητές, είτε ως χομπίστες) είχαν εκπαιδευτεί σε μια σειρά πραγμάτων που άγγιζαν περισσότερες (και πολλές φορές όλες) τις παραπάνω κατηγορίες. Αυτό σε συνδυασμό με την συνήθη πρακτική εταιριών να ζητούν “ανθρώπους για όλες τις δουλειές” οδήγησε στη δημιουργία επαγγελματιών που ήταν λίγο από αυτό και λίγο από το άλλο (στο D&D θα τους λέγαμε cross-class characters).

Καθώς οι τεχνολογίες του διαδικτύου εξελίσσονταν τα κλασσικά κανάλια UI (desktops / laptops) διευρύνθηκαν με νέους τύπους συσκευών (mobiles, tablets, smart tvs, smart watches, κ.ο.κ.) επεκτείνοντας τις ανάγκες στο Presentation Layer. Ομοίως, οι τεχνολογίες που αφορούσαν τους servers και τις βάσεις δεδομένων εξελίχθηκαν επίσης, επεκτείνοντας τις ανάγκες στο Data Layer. Ο συνδυασμός των δύο αυτών φαινομένων έφερε μοιραία αλλαγές και στο επίπεδο Business Logic.

Οπότε;

Η ζωή συνεχίζεται 🙂 Ο κάθε επαγγελματίας καλείται να διαλέξει το βασικό τομέα (domain) στον οποίο θα ειδικευτεί (στο D&D θα έμοιαζε με τα Schools of Magic των Wizards) προσπαθώντας (κατά την προσωπική μου άποψη) να μένει όσο το δυνατόν ενημερωμένος με τις βασικές εξελίξεις των τομέων – γειτόνων ώστε να μπορεί να καταλαβαίνει τους επαγγελματίες με τους οποίους θα κληθεί να συνεργαστεί στο πλαίσιο μιας ομάδας.

Επειδή το Ελευθέρο Λογισμικό / Λογισμικό Ανοικτού Κώδικα έφερε πληθώρα έτοιμου κώδικα και εργαλείων που μπορούν να επιταχύνουν κατά πολύ την ανάπτυξη λογισμικού, οι ανάγκες ενός έργου πληροφορικής πολλαπλασιάζονται αφού στον ίδιο χρόνο, μπορούν να γίνουν πολύ περισσότερα πράγματα. Το πιθανότερο είναι πως, αν εργαστείτε σε ένα σοβαρό έργο πληροφορικής, θα κληθείτε να δουλέψετε σε μια ομάδα που θα περιλαμβάνει κάποιου είδους designer, κάποιου είδους developer και κάποιου είδους webmaster 😉

More

Tim Harford on the Importance of Being Messy

An excellent podcast episode about how difficulties, obstacles and courageous decisions can shape a persons character and how being messy can sometimes help 🙂

More

Merry Christmas by Social Mind team

This time every year I wonder: how the Christmas spirit and the feelings that dominate those festive days of the year help us to think more with love in mind. Is this sense of love, the warmth, a real feeling or it is yet another result of “Christmas marketing”. A result of the decorations, of the festive TV and radio spots, of the facebook posts, covers, of the instagram selfies beside Christmas trees and Santa Claus figures and snowgoons and reindeers…

Every year I end up with the feeling that Christmas is a time to be with the ones you love. To feel things, even if those things are not always happy and entertaining. But feel them always without misery, without arrogance. To not quit when hard times come and try for the best, despite the circumstances. To change with your words and actions your life and the lives of those around you for the better.

With those few thoughts, on behalf of Social Mind team, I wish you Merry Christmas and the troubles you faced until today, be over with the end of 2016 ????

(I asked everyone on my team, Social Mind, to send me a favorite movie and a phrase that accompanies it and expresses the Christmas spirit. The lines above are the synthesis of those phrases and the respective trailers of the movies are linked to the text.)

A greek version of the post can be found at Social Mind blog.

More

Plato’s cave

It is the task of the enlightened not only to ascend to learning and to see the good but to be willing to descend again to those prisoners and to share their troubles and their honors, whether they are worth having or not. And this they must do, even with the prospect of death.

More

It’s not about Open Source

Three days ago we celebrated 25 years from the birth of Linux. I have been an Open Source user for over a decate now and I consider myself lucky to be part of this awesome network.

Open Source gave me free access to applications that, have they been proprietary, I would need to pay good money or illegally obtain them. Open Source fueled my research when I was an undergrad computer science student and, later on, during my MSc and currently during my PhD endeavor. As a researcher it gave me the opportunity to be part of EU funded research projects and get paid to study what I love. As a freelancer it gave me the means to rapidly develop software and therefore deliver competitive, high quality and tested software to my clients. It also allowed me to do consulting work for a couple of amazing software development companies and startups.

Anyways, it was not until recently that I realized that it’s not about Open Source! I was invited as a guest speaker to an event of the Arcitecture Dept., Aristotle University of Thessaloniki. My mission was to present a short history of the free software movement / open source initiative and then present applications of open source to the arts / creative professions. I have never touched a similar area before so I tried to think as a creative professional (NOT easy, if you are a tech person!) and imagine how open source, open licenses and so forth could benefit my world.

After my experiment was over the following came in mind: Open Source helped the world get familiar with the concept of sharing the raw materials of a creation, plus know-how (if needed), allowing the community to take it to the next level. Initially, those creations were open source software and their raw materials the source code but, nowadays, we have moved past that. Books, music, video productions, hardware even games are being published under open licenses.

Supporting openness is a choice anyone can make. Following the philosophy of openness however is a whole different discussion. One that I will leave for another post 🙂

Happy birthday Linux! Happy birthday Open Source!

 

More

31

Φέτος τα (31α) γενέθλιά μου με βρήκαν να υπηρετώ τη θητεία μου ( περισσότερα για αυτό σε επόμενο άρθρο 😛 ). Ο περασμένος χρόνος έφυγε πολύ γρήγορα και δαπανήθηκε σχεδόν εξ’ ολοκλήρου σε δουλειά. Δουλειά, που πλαισιώθηκε ευτυχώς από ενδιαφέρουσες προκλήσεις.

Την χρονιά που πέρασε είχα την χαρά να δω την Social Mind να μεγαλώνει κι άλλο και την ομάδα μας να αποκτά ουσιαστικούς δεσμούς εντός και εκτός γραφείου (στο τελευταίο θέλω να πιστεύω ότι βοήθησε αρκετά και η διοίκηση :P). Λειτουργώντας σε ένα περιβάλλον πλήρους οικονομικής, πολιτικής και, δυστυχώς, κοινωνικής αβεβαιότητας είχα τον φόβο ότι όλα τα παραπάνω μπορεί να έχουν αντίκτυπο στην παραγωγικότητα και / ή την λειτουργία της εταιρίας. Πολύ γρήγορα όμως διαψεύσθηκα και για αυτό, Άγγελε, Θεόφιλε, Θοδωρή, Ιωάννα, Πελαγία, Angel, Κυριάκο, Γιώργο, σας είμαι ευγνώμων. Αυτή τη χρονιά, παρόλο που η κατάσταση της χώρας βρίσκεται στην ίδια, αν όχι χειρότερη, κατάσταση επέλεξα να εμπιστευθώ την ομάδα μου και να μην αγχωθώ προκαταβολικά 😛

Εν όψη θητείας χρειάστηκε να απομακρυνθώ σταδιακά από κάποιες ομάδες τις οποίες αγαπώ ιδαίτερα. Το Open Coffee Thessaloniki, το οποίο παρά τα 9 χρόνια παρουσίας στην πόλη, συνεχίζει να αποτελεί ένα από τα πιο αγαπητά events αυτής. Είναι περίεργο να λαμβάνω πλέον το πρόγραμμα των συναντήσεων και να μην ξέρω από πριν τους ομιλητές αλλά με αποζημιώνει η άριστη δουλειά που κάνουν ο Γιώργος και ο Χρήστος 🙂 Ο Σύλλογος Αποφοίτων του Π.Σ.Π.Θ. υπήρξε η πρώτη ομάδα της οποίας έγινα μέλος το 2003 αμέσως μετά την αποφοίτησή μου από το Λύκειο. Πρόκειται για ένα από τα παλαιότερα σωματεία της πόλης το οποίο σήμερα αναβιώνει (κατά την άποψή μου) με έναν σύγχρονο χαρακτήρα διατηρώντας παράλληλα όλα τα ποιοτικά χαρακτηριστικά του παρελθόντος. Τέλος, το Open Thessaloniki, μια ιδιαίτερη ομάδα εργασίας συνεχίζει να λειτουργεί σχεδόν under the hood παράγοντας όμως ποιοτική και στοχευμένη δουλειά (με τη στόχευση να έχει επιτευχθεί αφότου αποχώρησα οπότε, ίσως άργησα κιόλας :P). Θέμη, Άρτεμις, Σοφία, Βασίλη, Κώστα, αναλάβατε πάνω στην ώρα!

Τον Αύγουστο του 2015 συμμετείχα στο πρόγραμμα Train the Trainer του Open Data Institute. Ανεξαρτήτως της πιστοποίησης, το συγκεκριμένο πρόγραμμα υπήρξε μια από τις μεγαλύτερες προκλήσεις του περασμένου χρόνου αφού αναγκάστηκα να λειτουργήσω σε ένα εντελώς διαφορετικό περιβάλλον εκμάθησης από αυτό που είχα συνηθίσει και να διδαχθώ αντικείμενα εκπαίδευσης για τα οποία είχα μέχρι τότε μαύρα μεσάνυχτα.

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

More

3 life lessons software metrics can teach us (and make good resolutions)

Happy new year everybody! In case you are looking for a couple of good resolutions to add to your 2016 list, here’s a bunch of geeky ones coming from software engineering research field 🙂

1. Keep your diff low

Diff (short for difficulty) is one of the Halstead complexity measures. It is used to measure the difficulty of the source code of a specific software system.

Moral: try to measure your difficulty level and keep it as low as possible. If you meet a difficult person, try to engage and understand how s/he thinks. It will help you identify you own difficulty level.

2. Keep your effort low

Effort is another Halstead complexity measure. As you probably already guessed it measures the effort one needs to understand the source code of a specific software system.

Moral: do you open up to people? Do you make it easy for them to understand how you think, where you come from? There is a fine line between mystery and perplexity. Make sure you balance them right.

3. Keep your LCOM low

LCOM (abrr. for Lack of cohesion of methods) is a Chidamber  & Kemerer metric measuring the cohesion of a class. High levels of the LCOM increases complexity. Also, classes with low cohesion could probably be subdivided into two or more subclasses with increased cohesion.

Moral: the more things you engage with, the less cohesive you are. Try to focus on the things that really matter.

(photo credit: pintanescu @ flickr)

More

How to completely remove kubuntu desktop from your Ubuntu 14.04

Say you wanna try (for fun) to experience the Kubuntu desktop environment while you run Ubuntu 14.04. Now say that after you play a while you decide you wanna go back to your familiar Ubuntu interface and you wanna get read of the Kubuntu desktop you have installed.

If you are not lucky (I usually am not!) things will get messy!

Long story short, it happened to me this morning and it took me some time to get things back to normal. Here’s what I did (hopefully it will save you some time).

CALL TO ACTION: If you do the routine and the problem is not resolved or you take some extra steps, or whatever, please leave a comment so as to help future readers 🙂 THANKS!

THE ROUTINE

A. You:

sudo apt-get remove --purge kde-plasma-desktop kde-workspace kubuntu* plymouth-theme-kubuntu-logo plymouth-theme-kubuntu-text
sudo apt-get autoremove --purge && apt-get autoclean
[via: askubuntu]

Hopefully everything works fine now!

B. If you find yourself missing some system icons 😛 (sound, language, mouse, etc…) try this:

sudo apt-get remove unity-control-center
sudo apt-get install unity-control-center
[via: askubuntu]

(image credit: flickr)

More

How to make ClickShare work with Ubuntu

Last time I had to do a presentation was during ODI’s Train the Trainer program. One of the options we were given in order to connect to the projector was ClickShare. If you don’t know what ClickShare is, watch this!

In order to use ClickShare you have to plug it to your machine. It works like a USB flash drive so a folder opens and gives you executables for Windows and iOS. Normally you install one of them and you are good to go.

But what happens if you use a Linux machine? Well, you will probably have to use a cable because “this thing does not work well with Linux”. That’s what I was told! But it wasn’t good enough for me 🙂

So, if you happen to use Ubuntu 14.04 LTS and want to use ClickShare, all you have to do is:

  1. go here *
  2. download the Linux launcher
  3. install it to your machine
  4. open the application
  5. plug the dongle

If you are getting steady white light then you are good to go (hit it, it will normally go red and your screen should be up!).

NOTE: According to Barco, they currently support  Fedora 20 and Ubuntu 14.04 LTS. If you are using a different Linux OS this solution will probably not work but you might find some answers to this official thread **!

* 10/03/2017: Support for the Linux client has ended as it requires an enormous effort to support all the Linux distributions and their quick updates, while the usage rate of the Linux client was/is very limited. [as published on barco.com]

** 13/06/2017: Thread [www.barco.com/en/mybarco/mysupport/productsupport/knowledgebase?kbid=1191&productid=b21eda55-0837-4478-87f6-68d51b71e405] does not exist any more.

Cheers!

(image credit: 2piradians @ flickr)

More