Skip to content

Latest commit

 

History

History
 
 

2014002

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

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

Στοιχεία φοιτητή

Ονοματεπώνυμο Αριθμός μητρώου Github link
Ευάγγελος Κάιρας 2014002 Click here
Εβδομάδα* Παραδοτέο Σύνοψη
1 Εισαγωγή Φορκ του αποθετηρίου του μαθήματος και αρχικό setup του περιβάλλοντος του Github. Εισαγωγή της αναφοράς και καθορισμός στόχων μαθήματος.
2 Εγκατάσταση Arch Linux Πρώτη επαφή με λειτουργικό σύστημα Arch-linux: Eγκατάσταση, προβλήματα και παρατηρήσεις.
3 Άσκηση γραμμής εντολών 2 (Eγκατάσταση Arch linux) Συνέχεια εγκατάστασης - αρχικό startup.
4 Συμμετοχικό περιεχόμενο 1A Προσθήκη εικόνων πάνω στο αντικείμενο που επιλέχθηκε για το συμμετοχικό περιεχόμενο.
5 Άσκηση γραμμής εντολών 3 (Eγκατάσταση Arch linux) Συνέχεια εγκατάστασης - Γνωριμία με το terminal και εκπαίδευση με warmup ασκήσεις εντολών.
6 Συμμετοχικό περιεχόμενο 2A Αντιστοίχιση εικόνων με το κατάλληλο σετ διαφανειών και προσθήκη στο χρονολόγιο.
7 Άσκηση γραμμής εντολών 1 (Search, download and play your favorite song of the month) Πρώτη άσκηση εντολών για αναζήτηση, κατέβασμα και αναπαραγωγή κομματιού από το Youtube.
8 Συμμετοχικό Περιεχόμενο 1B Συνδυασμός θεματικών εικόνων για την συγγραφή νέας μελέτης περίπτωσης (Modern Retro-Gaming).
9 Άσκηση γραμμής εντολών 2 (Οrganize your notes with emacs) Δεύτερη άσκηση εντολών για δημιουργία σημειώσεων τύπου λίστας και οργάνωση της με την βοήθεια του emacs.
10 Συμμετοχικό περιεχόμενο 2B Βιογραφία του Eben Upton.
11 Παράρτημα Έξτρα Ασκήσεων εντολών Aσκήσεις εντολών που εκτελέστηκαν μετά την διαδικασία εγκατάστασης του λειτουργικού για εξοικείωση με αυτές αλλά και την χρήση του Asciinema.
12 Τελική αναφορά και αίτημα ενσωμάτωσης για βαθμολόγηση Eπίλογος αναφοράς της εργασίας εξαμήνου.

Εισαγωγή

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

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

Eγκατάσταση Arch Linux

Με την εγκάσταση του λειτουργικού συστήματος Arch Linux, για τις ασκήσεις γραμμής εντολών μας ζητήθηκε επίσης να δείξουμε και τα βασικά στοιχεία του συστήματος μας. Κατά την εγκατάσταση:

  1. Πραγματοποιήθηκε επιτυχής κανονική εγκατάσταση του λειτουργικού συστήματος Arch Linux σε ξεχωριστό σύστημα (Laptop) μέσω Bootable USB flashdrive και με τα βήματα όπως προτίνεται από το installation guide.

  2. Στην συνέχεια εγκαταστάθηκαν αρκετά πρόσθετα όπως Windows Manager, Desktop Environment (XFCE λόγω παλαιού συστήματος), file managers και άλλα απαραίτητα αρχεία για την καλύτερη λειτουργία του συστήματος. (λεπτομέρειες φαίνονται στο asciinema link όπου εκτελείται η εντολή Νeofetch) καθώς και αρκετές εντολές που παραλείποταν (πχ. sudo).

  3. Δημιουργήθηκε ακόμα χρήστης με όνομα τον προσωπικό μου ΑΜ (με την βοήθεια της εντολής: sudo hostname p2014002) και του δώθηκαν δικαιώματα superuser προσθέτοντας τον στους sudoers με την εντολή: usermod -aG sudo p2014002.

Προβλήματα:

  1. Το installation guide που δίνεται απο την ArchWiki δεν ήταν αρκετό για την ολοκλήρωση της εγκατάστασης του λειτουργικού συστήματος καθώς πολλές από τις εντολές που εκτέλεσα είχαν ως προ απαιτούμενο βασική γνώση του αν θέλω να το κάνω Boot σε UEFI mode η όχι, κάτι που χρειάστηκε να το ψάξω περαιτέρω.

  2. Κατά την διάρκεια εγκατάστασης επίσης ο χρήστης δεν έχει την δυνατότητα να χρησιμοποιεί το WiFi καθώς στο σύστημα δεν έχει εγκατασταθεί ακόμα network manager με αποτέλεσμα να πρέπει να χρησιμοποιήσω καλώδιο ethernet και να στέκομαι πάνω από το router για το υπόλοιπο της διαδικασίας.

Παρατηρήσεις:

  1. Μετά την ολοκλήρωση της εγκατάστασης του λειτουργικού χρησιμοποίησα το terminal προκειμένου να κάνω κάποιες warm-up ασκήσεις με σκοπό να δω το αν το συγκεκριμένο λειτουργικό μοιάζει (όσον αφορά τις εντολές) με κάποιο άλλο λειτουργικό που άσχολήθηκα παλαιότερα. Αρχικά παρατήρησα ότι ο τρόπος εγκατάστασης προγραμμάτων γίνεται με την εντολή pacman -S μετά απο έρευνα στο διαδίκτυο και κατανόησα καλύτερα τον τρόπο λειτουργίας και άλλων εντολών τερματικού που δεν γνώριζα.

Τέλος στο παρακάτω link φαίνονται τα περιεχόμενα του συστήματος καθώς και τα .dot files.

Neofetch Link Journalctl

Συμμετοχικό περιεχόμενο 1Α

Περιγραφή: Oculus Rift

Για το συμμετοχικό περιεχόμενο 1Α αποφάσισα να ασχοληθώ με την σειρά γυαλιών Oculus rift τα οποία είναι συσκευή προσαρμοζόμενη στο κεφάλι που παρέχει εικονική πραγματικότητα για τον χρήστη. Χρησιμοποιούνται ευρέως με τα βιντεοπαιχνίδια, αλλά χρησιμοποιούνται και σε άλλες εφαρμογές, συμπεριλαμβανομένων προσομοιωτών και εκπαιδευτών. Περιλαμβάνουν μια στερεοσκοπική οθόνη τοποθετημένη στο κεφάλι (παρέχοντας ξεχωριστές εικόνες για το κάθε μάτι), στερεοφωνικό ήχο και αισθητήρες παρακολούθησης κινήσεως της κεφαλής (που μπορεί να περιλαμβάνουν γυροσκόπια, επιταχυνσιόμετρα, μαγνητόμετρα, συστήματα δομημένου φωτός κ.λπ.). Διαθέτουν επίσης αισθητήρες παρακολούθησης των ματιών και χειριστήρια παιχνιδιών.

original image thumbnail caption

Περιγραφή: Raspberry Pi Αrcade (RetroPie)

Επίσης ασχολήθηκα και με το Raspberry Pi το οποίο αποτελεί τεχνολογία η οποία είναι ένας μικρός υπολογιστής σε μέγεθος μιας πιστωτικής κάρτας. Δημιουργήθηκε στο Ηνωμένο Βασίλειο από το Raspberry Pi Foundation για την ευκολότερη εκμάθηση της επιστήμης των υπολογιστών στα σχολεία. Κοστίζει πολύ λίγα χρήματα και το δημοφιλέστερο λειτουργικό σύστημα ονομάζεται Raspbian και φυσικά βασίζεται στο Linux. Επίσης υπάρχουν και άλλα λειτουργικά συστήματα ειδικά σχεδιασμένα για το Raspberry Pi όπως Ubuntu, Windows 10 IOT Core, RISC OS καθώς και διάφορες άλλες εκδόσεις που προσομοιάζουν πλήρως ένα media center σύστημα. Το RetroPie μας επιτρέπει να μετατρέψουμε το Raspberry Pi, ή τον υπολογιστή σας σε μια μηχανή ρετρό παιχνιδιών. Βασίζεται σε Raspbian, EmulationStation, RetroArch και πολλά άλλα έργα για να σας επιτρέψει να παίξετε τα αγαπημένα σας παιχνίδια Arcade, home-console και κλασικά παιχνίδια υπολογιστή με την ελάχιστη ρύθμιση. Για ισχυρούς χρήστες, παρέχει επίσης μια μεγάλη ποικιλία εργαλείων διαμόρφωσης για να προσαρμόσετε το σύστημα όπως θέλετε.

original image thumbnail caption

Συμμετοχικό Περιεχόμενο 2Α

Περιγραφή: Oculus Rift

Πρόσθεσα τις διαφάνειες μου στο προ-υπάρχον σετ διαφανειών "videogames" καθώς αποτελεί σε μεγάλο βαθμό την κύρια λειτουργία του oculus-rift.

Διαφάνειες: slides

Κύρια κατηγορία χρονολογίου: timeline

Περιγραφή: Raspberry Pi Arcade (Retropie)

Στην συνέχεια πρόσθεσα το raspberry pi στο σετ διαφανειών "tools" καθώς πιστεύω ότι υπάρχουν περισσότερες κατηγορίες που θα μπορούσε να ανήκει διότι πρόκειται για ένα μηχάνημα τσέπης που έχει και άλλες δυνατότητες πέραν του gaming όπως αναφέρονται και στην περιγραφή του στο 1Α.

Διαφάνειες: slides

Κύρια κατηγορία χρονολογίου: timeline

Άσκηση γραμμής εντολών 1

Περιγραφή: Search, download and play (with the terminal) your favorite song of the month

Για το παραδοτέο 7 ασχολήθηκα με την άσκηση γραμμής ενολών "Search, download and play (with the terminal) your favorite song of the month" στην οποία και έγιναν τα παρακάτω βήματα.

  1. Μέ την χρήση της εντολής youtube-dl –x –audio-format mp3 "ytsearch:I surrender - Rainbow" . Η εντολή youtube-dl κάνει την λήψη, η παράμετρος -x κρατάει μόνο τον ήχο από το βίντεο σε μορφή .mp3 και η εντολή "ytsearch: " ψάχνει οτιδήποτε γράψουμε μετά από αυτήν (πχ. I surrender - Rainbow).
  2. Στην συνέχεια άλλαξα το όνομα του κατεβασμένου αρχείο έτσι ώστε να είναι ευκολότερη η εκτέλεση της επόμενης εντολής εκτέλεσης(mpv).
  3. Μέσω της εντολής mpv ο οποίος είναι απλά ένας media player και δίνοντας το κατάλληλο path στο οποίο βρίσκεται το αρχείο βλέπουμε ότι το κομμάτι παίζει κανονικά χωρίς κανένα πρόβλημα.

Παρατηρήσεις:

  1. Με τον συγκεκριμένο παραπάνω τρόπο εκτέλεσης της άσκησης έκρινα αρκετά χρονοβόρα την διαδικασία αλλαγής ονόματος του αρχείου προκειμένου να χρησιμοποιηθεί ευκολότερα από την επόμενη του εντολή.
  2. Ο mpv αποτελεί έναν media player χωρίς γραφικό περιβάλλον, απεικονίζοντας μόνο τα δευετερόλεπτα του κομματιού και το ποσοστό εκτέλεσης του. Υπάρχουν πολλοί καλύτεροι players με πιο διαδραστικό περιβάλλον που προσφέρει παραπάνω πληροφορίες όπως για παράδειγμα ο VLC.

Αsciinema Link

Συμμετοχικό Περιεχόμενο 1Β

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

Case Study

caption

Πηγές

Virtual Emulation | RetroPie Project | RetroConsoles

Συμμετοχικό Περιεχόμενο 2Β

H βιογραφία του Eben Upton: Biography

caption

Πηγές

Royal academy of Engineering | Eben Upton: Raspberry Pi pdf | BCS The chartered institute of IT

Άσκηση γραμμής εντολών 2

Περιγραφή: Οrganize your notes with emacs

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

  1. Αρχικά μπαίνουμε σε περιβάλλον το οποίο να μπορούμε να κάνουμε edit με την εντολή org-mode.
  2. Στην συνέχεια χρησιμοποιώντας τα κατάλληλα shortkeys δημιουργούμε λίστα ενεργειών, πρωτέυον(με μονούς) και δευτερέυον (με διπλους αστερίσκους) που πρέπει να γίνουν.
  3. Επιλέγουμε ποιες από αυτές θέλουμε να είναι προς εκτέλεση και με CTRL-C-C τις αλλάζουμε σε TODO. Όσες από αυτές έχουν εκτελεστεί τότε με τον ίδιο τρόπο τις αλλάζω σε DONE.
  4. Eπίσης μας δίνετε και η δυνατήτοτα να προσθέσουμε Tags για κάθε διεργασία στα δεξία τους (όπως πχ για το που θα εκτελεστεί η διαδικασία, ποιος θα την εκτελέσει κλτπ).
  5. Με την εντολή org-agenda έχουμε την δυνατότητα να δούμε κάποια απο τα shortcuts που υπάρχουν.
  6. Tέλος μπορούμε να δούμε και το ημερολόγιο και να προσθέσουμε την ημερομηνία που θέλουμε να έχει ως deadline.

Εντολές που χρησιμοποιήθηκαν: emacs -nw , Alt + X, org-mode, Alt + Enter, Shift + right arrow, Alt + Enter + right arrow, Ctrl + C + C, CTRL + C+ D, Ctrl + X +C

Αsciinema Link

Τελική Αναφορά

Συμπεράσματα

Τελειώνοντας το εξάμηνο έχω καταφέρει να αποκτήσω γνώσεις πάνω σε διάφορα θέματα στο κομμάτι της Επικοινωνίας Ανθρώπου-Υπολογιστή όπως η εγκατάσταση λειτουργικού συστήματος (Arch Linux) το οποίο ήταν πολύ διαφορετικό από την εγκατάσταση των τυποποιημένων λειτουργικών της αγοράς (windows,macOS) δίνοντας μου να καταλάβω διαφορές μεταξυ διαδραστικού λειτουργικού και μη, καθώς το terminal αποτελεί έναν όχι και τόσο διαδραστικό τρόπο επικοινωνίας. Επίσης μέσω του terminal είδα πως διάφορες εντολές του συστήματος μπορούν να χρησιμοποιηθούν για να αυτομματοποιήσουμε μια σειρά από εντολές (pipelining) αλλά και το πώς να εξελίξω ότι θέλω να δημιουργήσω σε κάτι πιο διαδραστικό. Απέκτησα πολλές θεωρητικές γνώσεις όσον αφορά τα συμμετοχικά περιεχόμενα με τα οποία ασχολήθηκα (oculus rift και Raspberry Pi) και κατάλαβα σε μεγάλο βαθμό τον τρόπο λειτουργίας της τεχνολογίας που τα διέπουν καθώς και έμαθα να τα τροποποιώ για να αναδημιουγώ παλαίότερες κονσόλες arcade. Πρέπει επίσης να τονίσω ότι τα quiz και τα βίντεο που παρακολουθήσαμε εβδομαδιαία αποτέλεσαν μια πολύ καλή πηγή για την καλύτερη κατανόηση της έννοιας του συγκεκριμένου μαθήματος αλλά και στην ιστορική εξέλιξη αυτού και γενικότερα της επιστήμης των υπολογιστών. Τέλος ένας από τους στόχους που κατάφερα να εκπληρώσω ήταν το να διευρύνω τους ορίζοντες μου πάνω σε θέματα της διάδρασης καθώς και στην επικοινωνία ανθρώπου-υπολογιστή.

Συνεργασία & Ομαδικότητα

#1673 | #1668 | #1715 | Pull request Link

Παράρτημα Έξτρα Ασκήσεων εντολών

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

Περιγραφή: Check the Weather

Για την δεύτερη άσκηση γραμμής εντολών επέλεξα την άσκηση "Check the Weather" χρησιμοποιώντας την εντολή "curl wttr.in/Volos,Greece".

Η εντολή wttr.in χρησιμοποιεί μια υπηρεσία πρόγνωσης καιρού προσανατολισμένη στην κονσόλα που υποστηρίζει διάφορες μεθόδους αναπαράστασης πληροφοριών, όπως ακολουθίες ANSI προσανατολισμένες σε τερματικά για clients HTTP κονσόλας (curl, httpie ή wget), HTML για προγράμματα περιήγησης ιστού ή PNG για προγράμματα προβολής γραφικών. Οι πόλεις που χρησιμοποιήθηκαν ηταν ο Βόλος και η Κέρκυρα.

Παρατηρήσεις:

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

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

Asciinema Link

Περιγραφή: Βecome productive with a todo list

Στην 3η άσκηση γραμμής εντολών ασχολήθηκα με την άσκηση "Βecome productive with a todo list" στην οποία μας ζητείται να φτίαξουμε μια λίστα τύπου "todo" και στην συνέχεια να την κάνουμε edit. H λίστα που δημιουργήθηκε έχει 4 tasks τα οποία δημιουργούντα με την σειρά ένα προς ένα, στην συνέχεια γίνεται edit το priority του κάθε task (στο οποίο βήμα παρατηρούμε οτι αλλάζει και η σειρά που εμφανίζονται) και στο τέλος διαγράφονται κάποια απο αυτά.

Εντολές που χρησιμοποιήθηκαν: task add (προσθήκη νέου task), task x modify priority:(L,M,H) -health (ανάλογα τι priority θέλουμε low,medium,high), task x delete (διαγραφή συγκεκριμένου task), task (γράφοντας την εντολή task σκέτη μας εμφανίζονται όλες οι πληροφορίες σχετικά με τα task που έχουμε μέχρι στιγμής)

Παρατηρήσεις:

  1. Πρόκειται για ένα αρκετά απαρχαιομένο πρόγραμμα δημιουργίας λίστας (με απλά λόγια) το οποίο απαιτεί αρκετό χρόνο για την καταγραφή όλων των task αλλά και για το να θέσουμε τα ανάλογα κριτήρια που θέλουμε στο καθένα.

Asciinema Link