Category: Essays

Είσαι ή 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

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

Pro or against software patents? Think again.

Regardless of what you know about patents or the free software movement and whether you approve them or not, “Patent Absurdity” is a documentary you should definitely watch. Not because you will become an expert on the field but because, if you are like me, you read about all these legal fights between Apple, Microsoft, Google, and so forth and you wonder whether you or your company are likely to be sued for one of your software projects because of a “hidden patent” somewhere inside your source code.

The film is also available for download (free of charge) in various formats and qualities. In addition there is a section with subtitles in various languages.

Finally “Patent Absurdity, how software patents broke the system” makes special reference to Ben Klemens’es “Math You Can’t Use: Patents, Copyright, and Software”and James Bessen’s “Patent Failure: How Judges, Bureaucrats, and Lawyers Put Innovators at Risk”.

PS: I adore the part where Richard Stallman explains why Beethoven couldn’t compose productively nowadays. What’s your favourite part? Let me know by leaving a comment!

More

Getting out of the swamp

Once upon a time there was a guy. A greedy guy. An excellent professional but greedy guy. Hardworking person, excellent professional… but greedy guy. Well you get the point.

Being all the above, as you might have imagined, led to a great deal of work. Hours of work on a daily basis. Hours of interesting work though. Not errands or other tasks that lead to self-destructive feelings. Just tones of interesting work 🙂

After following his work-acholic schedule for several months, one Sunday, completely out of the blue, he decided to give himself a break. He worked until 04.00, as usual, slept for about five hours and, when he woke up, got dressed, got inside his car, and left.

It was about 12.00 when he reached a nearby forest. He parked his car and entered. Wandered for a while and found himself standing on a glade. He sat down and ate a big sandwich he had prepared and drank a bottle of milk. Being not hungry any more, he continued his walk to the woods. He was now far away of his car but he didn’t seem to care. He kept walking.

It was about 17.00 when he reached a strange place. There were trees but also a lot of water. And mud. A swamp. He had heard that swamps can be very dangerous places. This swamp though, was strangely attractive. He wanted to enter. Explore it. A couple of movies came to his mind and he had a plot made up for himself at no time.

Without further thought he entered the swamp and started walking, to reach the other side. He was trying to have always a tree to grab in case he started sinking. He was doing well when the trees ended and only mud was ahead. He now had to make a decision. Either continue and have faith, or go back.

He then realized that the biggest part of his life was exactly like this walk in the swamp. Always trying to follow the safest path. No challenges. No risk. He felt predictable. Common. Annoyingly common. So he went ahead.

After a couple of steps the expected happened. He started sinking into the swamp. At first he impulsively tried to stay on surface but soon he realized he was only making things worse. So he relaxed and waited. After a couple of minutes he understood that by the moment he had stopped fighting he had not sank at all. Slowly he started to practically swim to reach a nearby floating piece of wood. A few moments later he had grabbed the wood and confidently was approaching solid ground.

It was almost 20.00 and the hardworking person, excellent professional… but greedy guy was sitting to the ground of a dark swamp, covered with mud and dirt, speculating on his experience. Suddenly, he had a revelation. He stood up and left.

Next day, our friend woke up, as usual, at about 06.00. Washed his face, dressed up and left for work. He stopped, as usual, to buy coffee and after that went to the company. There, he went straight to the manager and handed over his resignation. The manager, stumped, asked him what had provoked a decision like this.

“I decided to join the company as a partner” he said and smiled. I’ll come back next week to present my ideas to the boss. “You got to be kidding” said the manager. “For ten years you worked as an employee. I don’t see how you can afford becoming a partner. But even if you can. Why now?”. “I do have the money” said the so far hardworking person, excellent professional… but greedy guy. “As for your timing question… something happened yesterday, that made my day…

(Image courtesy of Wikipedia)

More