Skip to content

Latest commit

 

History

History
 
 

2015002

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Επικοινωνία Ανθρώπου Υπολογιστή

Ονοματεπώνυμο: Μάριος Κωνσταντίνου

Αριθμός Μητρώου: Π2015002

GitHub Profile: mariosconsta

Shell Scripts Repository: Scripts

Netlify - p2015002

Activelylearn:

- User: [email protected]
- First Name: Marios
- Last Name: 2015002

edpuzzle:

- Username: 2015002

Netlify Status


Πίνακας με σύνοψη των παραδοτέων

Εβδομάδα* Παραδοτέο Αυτοαξιολόγηση
1 Φορκ του αποθετηρίου και δημιουργία της σελίδας της αναφοράς με τα προσωπικά στοιχεία σας, της σύνοψης με αυτόν τον πίνακα περιεχομένων, και συγγραφή της εισαγωγής με περιγραφή των αναγκών και των στόχων σας για το μάθημα Πλήρης ολοκλήρωση
2 Άσκηση γραμμής εντολών Πλήρης ολοκλήρωση, μετά από τεχνικά προβλήματα
3 Άσκηση γραμμής εντολών Πλήρης ολοκλήρωση
4 συμμετοχικό περιεχόμενο Α1 Πλήρης ολοκλήρωση
5 Άσκηση γραμμής εντολών Πλήρης ολοκλήρωση
6 συμμετοχικό περιεχόμενο Α2 Πλήρης ολοκλήρωση
7 Άσκηση γραμμής εντολών Πλήρης ολοκλήρωση - Script
8 συμμετοχικό περιεχόμενο Β1 Πλήρης ολοκλήρωση
9 Άσκηση γραμμής εντολών Πλήρης ολοκλήρωση
10 συμμετοχικό περιεχόμενο B2 Πλήρης ολοκλήρωση
11 Άσκηση γραμμής εντολών Πλήρης ολοκλήρωση - Script
12 Τελική αναφορά και αίτημα ενσωμάτωσης για βαθμολόγηση Πλήρης ολοκλήρωση

1ο Παραδοτέο - Εισαγωγή

Οι προσδοκίες μου από το μάθημα

Με τα Linux δεν είχα ποτέ επαφή. Ήξερα μόνο πως είναι ένα εργαλείο με αμέτρητες δυνατότητες. Πάντα μου κέντριζαν το ενδιαφέρον και ελπίζω πως με αυτό το μάθημα θα εμπλουτίσω τις γνώσεις μου και τις δεξιότητες μου πάνω σε αυτό το λογισμικό. Πιο συγκεκριμένα αυτό που αποσκοπώ είναι η ομαλή εξοικείωσή μου με τα Linux, τα εργαλεία του όπως το terminal/shell και τα διάφορα plugins που είναι διαθέσιμα.

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

Πέρα από το πρακτικό κομμάτι θα ήθελα να εστιάσω και στο θεωρητικό. Τι ακριβώς είναι τα Linux; Ποιες είναι οι διαφορές του κάθε distribution όπως Ubuntu ή Arch; Που χρησιμοποιείτε το κάθε distribution; Παράλληλα θα ήθελα να εμπλουτίσω τις γνώσεις μου στην εξέλιξη της επικοινωνίας που έχει ο άνθρωπος με την τεχνολογία. Πως ξεκίνησαν όλα; Τώρα, οι τρόποι που μπορεί κάποιος να έρθει σε επαφή με τον υπολογιστή είναι αμέτρητοι. Πριν τι επιλογές είχαν; Τι προβλήματα αντιμετώπιζαν και οι λύσεις που σχεδίασαν ποιες ήταν;

Στο μέλλον θα ήθελα να ασχοληθώ με εφαρμογές που ως πυρήνα έχουν να κάνουν με την αλληλεπίδραση του ανθρώπου και υπολογιστή συνδυάζοντας παράλληλα τεχνητή νοημοσύνη. Για παράδειγμα ένα Chat Bot με Python, ή κάποιο custom script που θα μπορεί ο χρήστης να χειρίζεται τις Smart συσκευές του στο σπίτι με φωνή ή χειρονομίες. Και για αυτό ο σκοπός μου σε αυτό το μάθημα, πέρα από την εξέλιξη των τεχνικών μου δεξιοτήτων είναι να εμπλουτίσω και τις γνώσεις μου στους διάφορους τρόπους αλληλεπίδρασης και τα διαφορετικά αποτελέσματα που μπορεί κάποιος να λάβει.

Workspace Overview

ΣΥΝΟΨΗ

Συνοπτικά το μάθημα είναι με απαλλακτική εργασία που είναι χωρισμένη σε 11 παραδοτέα διάρκειας 12 εβδομάδων και απαρτίζεται από 6 ασκήσεις γραμμής εντολών όπου οι 4 είναι ουσιαστικά η πρόοδός που κάναμε κατά την εγκατάσταση του απαιτούμενου λογισμικού (Arch Linux) και στην συνέχεια παραμένουν 2 ασκήσεις μεγαλύτερης πολυπλοκότητας. Ενδιάμεσα των ασκήσεων γραμμής εντολών έχουμε ασκήσεις συμμετοχικού περιεχομένου.

Για τις ασκήσεις γραμμής εντολών θα χρησιμοποιηθεί το εργαλείο Asciinema για την καταγραφή του terminal και για την ολοκλήρωση της εργασίας θα χρησιμοποιηθεί το vscode για την επεξεργασία του README αρχείου όπως και το Sourcetree για την επιμέλεια των αλλαγών / commits. Παράλληλα θα υπάρχουν Screenshots σε μερικά παραδοτέα

Τα παραδοτέα που υλοποιήθηκαν μαζί με τους τίτλους τους βρίσκονται στα περιεχόμενα. Όλα τα παραδοτέα υλοποιήθηκαν πλήρως με αναφορές σε προβλήματα που αντιμετώπισα, τις λύσεις σε αυτά τα προβλήματα και τις πηγές τους. Παράλληλα υπάρχουν screenshots, asciinema links και όλα τα commits με περιγραφή στο κάθε commit για το τι άλλαξε. Τα Commits μπορείτε να τα βρείτε στο Commit History του GitHub.


2ο Παραδοτέο - Εγκατάσταση Arch Linux σε USB

Αρχικά έκανα μία μικρή έρευνα για τον πιο χρήσιμο τρόπο εγκατάστασης Arch Linux. USB ή Dual Boot; Κατέληξα σε USB για να μπορώ να έχω το λειτουργικό σύστημα μαζί μου σε όποια συσκευή είμαι. Στην συνέχεια ήθελα να δω την προτεινόμενη χωρητικότητα του USB η οποία δεν ήταν μεγάλη, στο τέλος αποφάσισα να πάρω ένα USB των 64GB για να είμαι άνετος και να μπορώ να πειραματιστώ εύκολα χωρίς να σκέφτομαι αν έχω αρκετό χώρο.

Γενικά για την εγκατάσταση χρειάστηκα 2 USBs. Ένα ήταν για το Arch iso και το άλλο είναι για την εγκατάσταση. Αφού έβαλα και τα 2 USB στον υπολογιστή μου, κατέβασα το Arch Linux 2021.11.01 -x86_64.iso από το official site του Arch Linux και έκανα burn το iso με το πρόγραμμα balenaEtcher στο μικρό USB που είχα. Στην συνέχεια, έκανα restart τον υπολογιστή, μπήκα στα Bios και έκανα boot με το USB για να ξεκινήσω την εγκατάσταση του λογισμικού.

Για την εγκατάσταση ακολούθησα αυτό το βίντεο. Παρόλα αυτά, αντιμετώπισα αρκετές δυσκολίες διότι πρώτη φορά κάνω εγκατάσταση λογισμικού με terminal. Έπρεπε να αφιερώσω αρκετό χρόνο στο να μάθω τις εντολές και ότι λάθος έκανα με ανάγκαζε να αρχίσω ξανά από την αρχή. Συγκεκριμένα κόλλησα στο σημείο που έπρεπε να δημιουργήσω Partitions στο USB που ήθελα να γίνει η εγκατάσταση και μετά να τα κάνω format. Πέρα από αυτά η εγκατάσταση έγινε ομαλά.

Στην συνέχεια έπρεπε να εγκαταστήσω αρκετά packages. Μερικά από αυτά ήταν το vim, linux, linux firmware και το base. Δεν θα μπω σε λεπτομέρεια για το installation, ουσιαστικά ακολούθησα το βίντεο. Θα αναφέρω μόνο τα σημεία που κόλλησα τα οποία ήταν τα partitions, η γενική χρήση του vim και στο κομμάτι που έπρεπε να δημιουργήσουμε έναν user και να του δώσουμε username.

Ολοκληρωματικά, αφού πλέον έχω ένα λειτουργικό Linux Distribution (Arch) μπορώ να αρχίσω να “παίζω” μαζί του και να πειραματιστώ. Για την επόμενη άσκηση θα δείξω τα configuration files του συστήματος και το system information για hardware και software.

Πηγές:


3ο Παραδοτέο - Set-up the main dependencies and demonstrate your base system

Όπως ανάφερα παραπάνω, η εγκατάσταση ολοκληρώθηκε με επιτυχία. Αυτό δεν ίσχυε τελικά. Με την επανεκκίνηση του Arch παρατήρησα πολλά errors, system freezes και γενικά πάρα πολύ αργό boot time. Μου πήρε μέρες έντονης αναζήτησης για το κάθε error που μου έβγαζε(ήταν πολλά) στο shell και παράλληλα χρειάστηκε να κάνω install τα Arch αρκετές φορές διότι το σύστημα δεν ήταν responsive με αποτέλεσμα να μην μπορώ ούτε boot να κάνω.

Μερικά από τα errors που χρειάστηκε να ψάξω ήταν kernel panic και κατά την διαδικασία εγκατάστασης packages το error “task blocked for more than Χ seconds”. Το “task blocked for more than Χ seconds” ήταν το error που με βοήθησε να βρω το πρόβλημα.

Συγκεκριμένα βρήκα αυτά τα τρία threads:

Στα οποία έλεγε για πιθανό προβληματικό USB. Μετά από περίπου 10 προσπάθειες εγκατάστασης του Arch σε ένα καινούριο USB 64GB που αγόρασα αποκλειστικά για το Arch, είπα να δοκιμάσω την εγκατάσταση σε ένα 32GB type C USB που είχα.

Μετά από 10 εγκαταστάσεις του Arch δεν χρειάστηκα καν το tutorial. Κατά την διάρκεια της εγκατάστασης στο type C USB που είχα παρατήρησα, πως η διαδικασία προχωρούσε υπερβολικά γρηγορότερα, το vim δεν κολλούσε σε κάθε αλλαγή που έκανα, τα packages κατέβαιναν αμέσως και γενικά όλα ήταν πιο ομαλά. Ολοκληρωματικά, πλέον μπορώ να πω με σιγουριά πως έχω ένα λειτουργικό Linux Distribution (Arch) και μπορώ να συνεχίσω με τα παραδοτέα.

Στο συγκεκριμένο παραδοτέο θα δείξω το shell configuration, software και hardware specifications και τα .dot αρχεία του συστήματος:

Τίτλος Asciinema
Shell configuration files link
Software / Hardware Specs link
Showing .dot files link

Πηγές:


4ο Παραδοτέο - Συμμετοχικό περιεχόμενο: Α1

Από μικρός πάντα μου άρεσαν τα βίντεο παιχνίδια. Ήταν ένας τρόπος να ξεφύγεις και να βιώσεις εμπειρίες που θα ήταν αδύνατον να βιώσεις στην πραγματικότητα. Αυτό σε πολλά άτομα δίνει μία ελευθερία και ένα τρόπο να ξεφύγουν από τα προβλήματα και την ρουτίνα της καθημερινότητας.

Για αυτό αποφάσισα οι δύο εικόνες που διάλεξα να έχουν θέμα τα παιχνίδια. Ήθελα να δείξω το ξεκίνημα αυτής της πλέον τεράστιας βιομηχανίας με το Pong του Atari το οποίο έκανε την αρχή και στην συνέχεια ήθελα να δείξω το Xbox Controller της Microsoft που θεωρώ πως είναι ένα απίθανο εργαλείο διότι επιτρέπει σε άτομα με αναπηρία να απολαύσουν τον κόσμο του video gaming και να λάβουν μέρος σε μια δραστηριότητα χωρίς να τους εμποδίζει η αναπηρία τους.

Πως ξεκίνησαν όλα

Θεωρείτε πως το “πρώτο” βίντεο παιχνίδι που δημιουργήθηκε ποτέ ήταν το Tennis for Two από τον πυρηνικό φυσικό William Higinbotham. O Higinbotham δούλευε στο Brookhaven National Laboratory και διαπίστωσε πως το εργαστήριο είναι ελλιπής στο κομμάτι της αλληλεπίδρασης με τους επισκέπτες του. Για αυτό τον λόγο αποφάσισε να δημιουργήσει το Tennis for Two, έτσι ώστε οι επισκέπτες του εργαστηρίου να μπορούν να παίξουν και να έχουν μία πιο “γεμάτη” εμπειρία στο εργαστήριο.

Η συνέχεια

To 1972 ήταν η χρονιά που κυκλοφόρησε το Pong της Atari Inc. Το παιχνίδι ήταν τεράστια επιτυχία και θεωρείτε πως ήταν το παιχνίδι που έκανε την αρχή για την άνοδο της βιομηχανίας βίντεο παιχνιδιών. Για αυτό τον λόγο ανέβηκε και η δημοτικότητα του video gaming. Περισσότερος κόσμος ήθελε να παίξει αυτό το παιχνίδι και να βιώσει αυτή την εμπειρία.

Προσβασιμότητα

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

Πράγμα το οποίο έγινε. Υπάρχουν πολλές ομάδες ανθρώπων που τροποποιούν μοχλούς για να ικανοποιούν συγκεκριμένα άτομα που δεν μπορούν να παίξουν με τους παραδοσιακούς τρόπους. Παράλληλα έχουμε τους δημιουργούς βίντεο παιχνιδιών που προσθέτουν βοηθήματα στα παιχνίδια όπως mini-map για άτομα που δεν μπορούν να βασιστούν στον ήχο, παρά μόνο στην όραση, ή την επιλογή να αυξήσει ο παίχτης την ένταση μερικών χρωμάτων διότι δεν βλέπει καλά κάποια άλλα χρώματα. Υπάρχουν πολλά παραδείγματα για το πως πλέον τα παιχνίδια γίνονται πιο προσβάσιμα.

Θεωρώ πως το gaming πρέπει να είναι προσβάσιμο σε όλους και όλα έχουν να κάνουν με την αλληλεπίδραση που έχει ο καθένας με την τεχνολογία..

Θέμα Εικόνα Πληροφορίες Netlify
Atari Home Pong Εικόνα - Thumbnail MD Αρχείο link
Xbox adaptive controller Εικόνα - Thumbnail MD Αρχείο link

Δυσκολίες

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

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

Πηγές:


5ο Παραδοτέο - Try a different Shell

Για το 5ο παραδοτέο αποφάσισα να δοκιμάσω το Shell ZSH. Η διαδικασία εγκατάστασης είναι αρκετά εύκολη και το wiki τα εξηγεί όλα αναλυτικά. Μπορώ να πω, πως μου άρεσε αρκετά το zsh και το customizability του. Μπορεί ο κάθε χρήστης να το φτιάξει στα δικά του μέτρα με μία πληθώρα από themes και plugins.

Αντί να κάνω ένα μεγάλο asciinema με την διαδικασία εγκατάστασης, είπα να το σπάσω σε κομμάτια τα οποία μπορείτε να βρείτε παρακάτω.

Βήμα Asciinema
Setup ZSH link
Setup promtinit link
Setting up prompt link
Installing ohmyzsh framework link
Setup theme and plugins link
Setup auto suggestions link

Αφού ολοκλήρωσα την διαδικασία και ρύθμισα το Shell στα δικά μου γούστα, το αποτέλεσμα είναι φανταστικό και το functionality που σου προσφέρει είναι αρκετά χρήσιμο! Βέβαια, συνέχισα να επεξεργάζομαι το Shell και έχω να πω πως ή εμπειρία που έχω μαζί του τώρα είναι πολύ πιο ευχάριστη από πριν. Αναρωτιέμαι βέβαια τι άλλες επιλογές υπάρχουν πέρα από το zsh και τι μπορεί κάποιος να κάνει με αυτές.

Δυσκολίες

Το μόνο πράγμα που με “δυσκόλεψε” ήταν στο σημείο με τα themes και plugins. Υπήρχε μια πληθώρα, πράγμα που ένα νέο χρήστη μπορεί να μπερδέψει και να τον κάνει να χαθεί. Έψαχνα για αρκετή ώρα να βρω ένα theme που να είναι οπτικά εύχρηστο και εύκολο στο μάτι και μετά τα plugins που ήθελα να κατεβάσω. Αφού βρήκα το theme της αρεσκείας μου και μερικά plugins που θεώρησα πως είναι must, ξεκίνησα να δοκιμάζω διάφορα με το shell και συνειδητοποίησα πως τα plugins τα κατεβάζεις με τον καιρό ανάλογα με τις ανάγκες σου. Δεν χρειάζεται να τα βρεις όλα από την πρώτη στιγμή. Είναι μία διαδικασία που γίνεται με τον καιρό όσο εξελίσσονται οι ικανότητες σου και αυξάνονται οι ανάγκες σου.

Πηγές:


6ο Παραδοτέο - Συμμετοχικό περιεχόμενο Α2

Η τεχνολογία υπάρχει για να λύνει προβλήματα της ανθρωπότητας και να επιτρέπει στην εξέλιξη της. Ένα από τα προβλήματα που προσπαθεί να λύσει είναι το πρόβλημα της προσβασιμότητας. Το interaction που έχει ένα υπολογιστικό σύστημα διαφέρει από άνθρωπο σε άνθρωπο για διάφορους λόγους.

Μερικοί λόγοι είναι, γλωσσολογικές προκλήσεις. Ένα πρόγραμμα μπορεί να μην είναι γραμμένο σε γλώσσα που να καταλαβαίνει ο χρήστης. Παράλληλα άνθρωποι με αναπηρίες δεν μπορούν να χρησιμοποιήσουν τις παραδοσιακές μεθόδους αλληλεπίδρασης που υπάρχουν όπως πληκτρολόγιο, ποντίκι, ηχεία κλπ. Για τους λόγους αυτούς και πολλούς άλλους δημιουργούνται εργαλεία που να επιτρέπουν στον κάθε χρήστη να αλληλοεπιδρά με τον υπολογιστή με πάνω από ένα ή δύο τρόπους.

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

Θέμα Αρχείο Είδος Netlify Link
Προσβασιμότητα link Slide link
Video Games link Timeline link

Δυσκολίες

Στο συγκεκριμένο παραδοτέο δεν είχα πρόβλημα με τα submodules. Το πρόβλημα ήταν ότι στο timeline είχα duplicate το Atari Pong. Η δική μου προσθήκη ήταν το Atari Home αλλά από τι φαίνεται επειδή τα ονόματα των αρχείων ήταν παρόμοια το σύστημα νόμιζε ότι και τα δύο ήταν Atari Pong. Η εικόνα που φαινότανε στο δικό μου αρχείο ήταν λανθασμένη. Αντί να φαίνεται το Atari Home φαινόταν το Atari Pong. Βέβαια αν πατούσες πάνω στο αρχείο που προσπαθούσα να προσθέσω σε πήγαινε στο σωστό. Εκεί κατάλαβα πως το πρόβλημα ήταν στην ονομασία της εικόνας. Άλλαξα τα ονόματα στις εικόνες για να ξεχωρίζουν, έκανα update το submodule, deploy το site και όλα δούλεψαν κανονικά!


7ο Παραδοτέο - Download mp3

Για το 7ο παραδοτέο αποφάσισα να υλοποιήσω την άσκηση που ζητούσε να βρούμε ένα τραγούδι από το YouTube, να το κατεβάσουμε στον υπολογιστή μας και μετά να το παίξουμε, όλα μέσω του Terminal.

Βρήκα ένα εργαλείο που λέγετε ytfzf όπου μπορείς να κάνεις search βίντεο του YouTube και στην συνέχεια σου δίνει την επιλογή να τα κατεβάσεις. Η διαδικασία ήταν σχετικά εύκολη και όλα κύλισαν ομαλά μέχρι το σημείο που κατέβασα το βίντεο που ήθελα.

Δυσκολίες

Το σημείο που κόλλησα ήταν να μετονομάσω το αρχείο σε κάτι άλλο. Για να κάνω την ζωή μου πιο εύκολη, χρησιμοποίησα alias,το xclip και mv εντολές για να δώσω άλλο όνομα στο αρχείο. Αφού έγινε η εγκατάσταση, έτρεξα την εντολή, άλλαξα το όνομα του αρχείου και έκανα αναπαραγωγή του βίντεο με mplayer.

Χρειάστηκα λίγο χρόνο στο να μάθω πως λειτουργεί το Alias και παράλληλα δεν ήξερα πως αν δεν βάλω το alias που δημιούργησα στο bash_aliases τότε δεν αποθηκεύεται με αποτέλεσμα όταν ξανά ανοίξω το terminal να μην υπάρχει. Και αυτό φαίνεται στο asciinema που ανέβασα όταν γράφω pbcopy, το shell επιστρέφει “Command not found”.

Βήμα Asciinema
Download mp3 link
Script code

Script:

asciicast

Πηγές:


8ο Παραδοτέο - Συμμετοχικό περιεχόμενο Β1

Για το παραδοτέο Β1 αποφάσισα να κάνω μία έρευνα για την κατάσταση της προσβασιμότητας στα βίντεο παιχνίδια και συγκεκριμένα στις κονσόλες. Μέσα από διάφορες πηγές, προς δική μου ευχαρίστηση, είδα πως υπάρχουν αρκετά εργαλεία και μέθοδοι που να επιτρέπουν σε άτομα με αναπηρία να απολαύσουν τα βίντεο παιχνίδια.

Παράλληλα είδα πως υπάρχει μια τεράστια κοινότητα που προωθεί αυτό το ζήτημα!

Σελίδα Link
Netlify site
Case Study game-accessibility.md
Extras cs-accessibility.md

Δυσκολίες

Στο συγκεκριμένο παραδοτέο είχα απορία το μεγάλο κείμενο που φαίνεται στην σελίδα από που προέρχεται, διότι στο .md αρχείο μέσα στον φάκελο _case-study δεν ήταν το ίδιο κείμενο. Μετά από λίγο είδα στην τελευταία γραμμή {% include extras/cs-facebook.md %} και {% include gallery %}. Εκεί κατάλαβα ότι το κείμενο και οι φωτογραφίες θα παρθούν από τον φάκελο extras και gallery. Συνέχισα λοιπόν και δημιούργησα τα ανάλογα αρχεία και φωτογραφίες, τα ανέβασα στα ανάλογα submodules, έκανα build και deploy το site και όλα δούλεψαν κανονικά εκτός από τις φωτογραφίες που μέχρι τώρα δεν μπορώ να καταλάβω γιατί δεν φαίνονται.

Επίσης είχα μπερδέψει κάτι στις εντολές όταν έκανα update τα submodules. Στο Deploy του Netlify μου έβγαζε fail με error “Liquid Exception: Could not locate the included file …” και δεν μπορούσα να καταλάβω το γιατί. Για κάποιο λόγο παρόλο που το submodule έγινε update, μου έλεγε ότι δεν μπορούσε να βρει το αρχείο στον φάκελο extras πράγμα που δεν μπορούσα να καταλάβω διότι το αρχείο ήταν μέσα στο submodule. Μου πήρε δύο ώρες να καταλάβω πως έκανα update το submodule αλλά δεν έκανα update το site repository. Αφού έτρεξα τις εντολές git add, commit και push στο site repository το deploy δούλεψε.

Netlify Errors Netlify Errors

Πηγές:


9ο Παραδοτέο - Organise todo list with emacs

Για το 9ο παραδοτέο αποφάσισα να γράψω ένα To-do list με emacs.

Σελίδα Link
Asciinema link

Το συγκεκριμένο παραδοτέο ήταν αρκετά ευχάριστο αν και χρειάστηκα λίγο χρόνο να γίνω familiar με τα key binds του emacs. Έπρεπε να παίξω αρκετά μαζί του έτσι ώστε να εξοικειωθώ με το εργαλείο και να μπορώ να γράψω την λίστα σε μικρό χρονικό διάστημα.

Αυτό που μου άρεσε περισσότερο όμως δεν ήταν η λίστα αλλά το εργαλείο από μόνο του. Όσο μάθαινα για αυτό, έβλεπα πως δεν είναι απλά ένα εργαλείο για σημειώσεις. Μπορείς να κάνεις σχεδόν τα πάντα μαζί του, από επεξεργασία κειμένου ακόμη και για remote access, μπορείς παράλληλα να δημιουργήσεις ένα ημερολόγιο το οποίο σου στέλνει και ιδιοποιήσεις στο κινητό, επίσης σου δίνει access στο terminal και έχει scripting capabilities. Είναι ένα φανταστικό περιβάλλον που σίγουρα θα επεξεργαστώ περισσότερο μόνος μου.

Δυσκολίες

Το emacs μπορεί να κάνει σχεδόν τα πάντα. Είναι ένας ισχυρός text-editor με μία μεγάλη γκάμα από λειτουργίες. Αυτό είναι καλό, αλλά ταυτόχρονα σε μπερδεύει. Μου πήρε λίγο χρόνο να βρω πως έπρεπε να χρησιμοποιήσω το org mode και παράλληλα το -nw παράμετρο για να ανοίγει στο terminal.

Το επόμενο “εμπόδιο” ήταν να μάθω τα βασικά keybinds τα οποία ήταν πολλά. Όλες οι λειτουργίες μπορούν να γίνουν με το πληκτρολόγιο και για αυτό τον λόγο τα keybinds που έχει είναι αμέτρητα. Βέβαια με λίγη εξάσκηση κατάφερα να μάθω τα keybinds που ήθελα για να φτιάξω ένα απλό to-do list.

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

Πηγές:


10ο Παραδοτέο - Συμμετοχικό περιεχόμενο Β2

Για το παραδοτέο Β2 αποφάσισα να γράψω για τον Nolan Kay Bushnell ο οποίος ήταν ένας από τους ιδρυτές της Atari Inc. Παράλληλα θεωρώ πως με το Pong έφερε την επανάσταση στον κόσμο των βίντεο παιχνιδιών.

Σελίδα Link
Netlify link
bio-nolan.md GitHub
nolan-bushnell.md GitHub
Image Link

Το συγκεκριμένο παραδοτέο δεν μου παρουσίασε κάποιο πρόβλημα. Έχω μάθει να χειρίζομαι τα submodules και το πως εμφανίζετε το κείμενο στην σελίδα. Με κάθε άσκηση και παραδοτέο βλέπω πως γίνομαι πιο γρήγορος όχι μόνο στην εκτέλεση αλλά και στο όταν μαθαίνω καινούρια πράγματα.

Πηγές:


11ο Παραδοτέο - TMUX

Για την τελευταία άσκηση γραμμής εντολών αποφάσισα να χρησιμοποιήσω το TMUX μαζί με το glance για να οργανώσω το terminal σε διάφορα παράθυρα όπου το κάθε παράθυρο θα είχε διαφορετικές πληροφορίες. Παράλληλα χρησιμοποίησα το ytfzf για αναπαραγωγή βίντεο από YouTube

Σελίδα Link
Asciinema link
Script code

Script:

asciicast

Δυσκολίες

Αφού εγκατέστησα pip, glances και tmux έπρεπε να εξοικειωθώ με τα keybinds του tmux για να ρυθμίσω το terminal στα δικά μου μέτρα. Μετά από αυτό όλα έτρεξαν ομαλά χωρίς κανένα πρόβλημα!

Στο συγκεκριμένο παραδοτέο δεν αντιμετώπισα κάποιο πρόβλημα. Όλες οι εντολές έτρεξαν από την πρώτη φορά και το αποτέλεσμα ήταν αυτό που ζητούσε η άσκηση. Χώρισα το terminal σε παράθυρα όπου στο ένα έκανα monitor το performance του υπολογιστή και στο άλλο έκανα αναπαραγωγή βίντεο από YouTube.

Για να μην βγει μεγάλο το asciinema επέλεξα να μην προσθέσω παραπάνω λειτουργείες όπως text-editing με vim κλπ. διότι είναι κάτι που έκανα ήδη στα προηγούμενα παραδοτέα και η διαδικασία είναι ακριβώς η ίδια απλά η διαφορά τώρα ήταν πως θα είχα παραπάνω πληροφορία στο terminal από τα άλλα παράθυρα.

Πηγές:


12ο Παραδοτέο - Επίλογος

Ολοκληρώνοντας την εργασία εξαμήνου μπορώ να πω με σιγουριά πως έχω εκπληρώσει σχεδόν όλους από τους αρχικούς στόχους που είχα. Έμαθα πολλά για το Linux, είμαι πλέον άνετος με το terminal/shell, και δεν φοβάμαι να πειραματιστώ με τις έξτρα λειτουργείες που στην αρχή, μου φαινόντουσαν βουνό.

Παράλληλα έχω εξοικειωθεί με το GitHub. Λάτρεψα την πλατφόρμα για την επικοινωνία και λειτουργικότητα που προσφέρει σε προγραμματιστές και δημιουργούς. Την χρησιμοποιώ σε προσωπικό επίπεδο για δικά μου project, όπως ένα Chat Bot που φτιάχνω σε γλώσσα προγραμματισμού Python! Work in progress!!

Επίσης έχω μάθει πολλά για την διάδραση και αλληλεπίδραση που έχει ο άνθρωπος με την τεχνολογία. Είδα από που ξεκίνησαν όλα και την όλη εξέλιξη αυτού του κλάδου. Παράλληλα, είδα την μεριά του δημιουργού παρά του χρήστη. Τα προβλήματα που αντιμετώπιζαν και τις λύσεις τους. Πράγματα που θεωρούμε τώρα δεδομένα όπως το Virtual Reality ή Haptic Feedback τότε ήταν ταινίες επιστημονικής φαντασίας. Το visualization αυτής της εξέλιξης με έκανε να νιώσω ενθουσιασμό και ανυπομονησία για το μέλλον και τις καινούργιες τεχνολογίες που μας περιμένουν. Πιστεύω από όλες τις ασκήσεις που έκανα μέχρι τώρα, αυτό το κομμάτι ήταν το πιο ωραίο για έμενα.

Θα ήθελα να αναφέρω πως δεν κατάφερα να ασχοληθώ με pipeline scripting, λόγο περιορισμένου χρόνου. Βέβαια είναι κάτι που θα δοκιμάσω μόνος στον ελεύθερο μου χρόνο. Σκοπεύω να εγκαταστήσω ξανά τα Linux ως dual-boot στον υπολογιστή μου διότι θα ήθελα ένα μόνιμο installation χωρίς τα limitations ενός USB.

Τέλος θεωρώ πως το μάθημα είναι ένα πολύ καλό exposure για εμάς, τους φοιτητές. Μας εισάγει σε ένα περιβάλλον όπου μπορούμε να αποκτήσουμε δεξιότητες που μπορούν να χρησιμοποιηθούν σε ένα real-life scenario, ειδικά με το GitHub. Παράλληλα μας έδωσε την ευκαιρία να πειραματιστούμε και να δοκιμάσουμε καινούρια πράγματα, να δούμε διαφορετικά αποτελέσματα ανάλογα με τις επιλογές μας.


Σχόλια

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

Συγκεκριμένα θα ήθελα να αφιερώσω περισσότερο χρόνο σε scripting. Δοκίμασα διάφορα και έφτιαξα μικρά scripts αλλά αλλά πιστεύω πως μπορώ με λίγο παραπάνω εξάσκηση να δημιουργήσω κάτι καλύτερο. Στην συνέχεια θεωρώ πως θα μπορούσε η συμμετοχή μου στην τάξη να ήταν μεγαλύτερη.

Μπορείτε να δείτε τα Script σε αυτό το Repository:

Η πιο αναλυτικά στο παρακάτω πίνακα:

Script Link
calendar.sh link
specs.sh link
tmux.sh link
weather.sh link
youtube.sh link

Weather Script:

asciicast


Ομαδικότητα

Discussion Link
Διάδραση ανθρώπου / υπολογιστή, με… πλέξιμο; #1728 link
Π2020231 #1711 link
Netlify και submodules #1705 link
Pull Request - 2019135 link
Pull request Conflicts #1695 link
Git submodules + Netlify #1666 link
Kernel Panic Errors και "task blocked for more than X seconds" #1661 link
Categories και tags για παραδοτέο Α1 #1662 link
Εγκατάσταση το Arch Linux με Virtualbox; #1616 link
Παραδοτέα γραμμής εντολών #1607 link
Ασκήσεις (γραμμής εντολών) που έγιναν τον Σεπτέμβρη, ισχύουν και για την εξεταστική του Φεβρουαρίου; #1608 link
Zoom meetings για διευκρινίσεις και απορίες #1599 link