Skip to content

Latest commit

 

History

History

2013021

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΥΠΟΛΟΓΙΣΤΗ

ΟΝΟΜΑΤΕΠΩΝΥΜΟ: Αλέξανδρος Βυθούλκας

ΑΜ: Π2013021

Αποθετήριο site: https://github.com/AlexandrosV20/site

Πλατφόρμα Username First name Last name
Actively Learn [email protected] p13vyth Π2013021
Edpuzzle p13vyth Alexandros Vithoulkas P2013021
Asciinema p2013021 Alexandros Vithoulkas

Ιστορικό αναφοράς

Παραδοτέα και Τελική αναφορά

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

Εβδομάδα* Παραδοτέο Σύνοψη
1 Φορκ του αποθετηρίου και δημιουργία της σελίδας της αναφοράς με τα προσωπικά στοιχεία σας, της σύνοψης με αυτόν τον πίνακα περιεχομένων, και συγγραφή της εισαγωγής με περιγραφή των αναγκών και των στόχων μου για το μάθημα Έγκυρο commit, 100% COMPLETED
2 Άσκηση γραμμής εντολών - Πρώτη προσπάθεια εγκατάστασης του Arch Linux Μη έγκυρο commit λόγω λαθών κατά την εγκατάσταση, 50% COMPLETED
3 Άσκηση γραμμής εντολών - Δεύτερη προσπάθεια εγκατάστασης του λειοτυργικού Arch Linux Έγκυρο commit μετά από επίλυση των λαθών του προηγούμενου παραδοτέου, 100% COMPLETED
4 Συμμετοχικό περιεχόμενο 1A - Επιλογή θέματος Atari 2600 Joystick και 5 chordes keyset Έγκυρο commit καθώς οι επιλογές των θεμάτων αυτών έγιναν με προσοχή και μετά απο μελέτη του ήδη υπάρχοντως υλικού, 100% COMPLETED
5 Άσκηση γραμμής εντολών - Εύρεση χαρακτηριστικών του συστήματος με τις εντολές journalctl και neofetch Έγκυρο commit απλά θα ήθελα με την εντολή journalctl να καταφέρω να εμφανίσω μικρότερη λίστα, 100% COMPLETED
6 Συμμετοχικό περιεχόμενο 2A - Δημιουργία timeline και slides για τα θέματα του Α1 Έγκυρο commit, 100% COMPLETED
7 Άσκηση γραμμής εντολών - Search, download and play (with the terminal) your favorite song Έγκυρο commit και κατάφερα να το πάω και ένα βήμα παραπέρα με την μετακίνηση και μετονομασία του mp3 αρχείου στον σωστό φάκελο ωστόσο δεν κατάφερα να το κάνω με script αυτό, 100% COMPLETED
8 Συμμετοχικό περιεχόμενο 1B - Επιλογή του Stanford Research Institute ως μελέτη περίτπωσης Έγκυρο commit, 100% COMPLETED
9 Άσκηση γραμμής εντολών - Text editor and plug-ins for code highlighting and autocompletion Έγκυρο commit ωστόσο η προσπάθεια μου για την εγκατάσταση του plugin "youcompleteme" μέσω του Vundle plugin manager δεν κατέστη δυνατή μετά απο αδυναμία εγκατάστασης ορισμένων πακέτων. Έγινε όμως η κατάλληλη τροποποίηση στο .vimrc, 100% COMPLETED
10 Συμμετοχικό περιεχόμενο 2B - Επιλογή βιογραφίας του Steve Bristow, δημιουργού του Atari 2600 joystick Έγκυρο commit, 100% COMPLETED
11 Άσκηση γραμμής εντολών - Organize your notes with emacs Έγκυρο commit, 100% COMPLETED
12 Τελική αναφορά και αίτημα ενσωμάτωσης για βαθμολόγηση Έγκυρο commit με εμπρόθεσμό αίτημα ενσωμάτωσης και συμπέρασμα για τις προσδοκίες μου που καλύφθηκαν και με το παραπάνω από το μάθημα, 100% COMPLETED
[1]

Προσωπικοί μου στόχοι για το μάθημα/Εισαγωγή:

Μέσα από το μάθημα "Eπικοινωνία Aνθρώπου Yπολογιστή", επιθυμώ να κατανοήσω τη σχεδίαση των συστημάτων διάδρασης ανθρώπου και υπολογιστή και πως αυτή επιτυγχάνεται μέσω όλων των σύγχρονων τεχνολογιών και μεθόδων. Οι προσδοκίες μου για το μάθημα είναι η εξοικείωση μου με την πλατφόρμα του github, ώστε να αναπτύξω τις δεξιότητες μου σε αυτό, καθώς αποτελεί ένα από τα σημαντικότερα μέσα για την οργάνωση και real time αλλαγών σε κώδικα είτε σε δικό σου πρότζεκτ, είτε σε άλλων, αλλά και να αποκτήσω μια πρώτη εικόνα για το λειτουργικό linux και τον χειρισμό του μέσω του terminal και των γραμμών εντολών. Επίσης το github αποτελεί ένα βασικό εργαλείο για τον διαμοιρασμό διαφόρων πρότζεκτς και κώδικα μεταξύ της προγραμματιστικής κοινότητας. Κατα την γνώμη μου θα ήταν καλό να υπάρχει η συνεχής παρακολούθηση των εβδομαδιαίων διαλέξεων και εργαστηρίων, καθώς θα βοηθήσει του χρήστες που δεν έχουν ξαναχρησιμοποιήσει την πλατφόρμα του github, καθώς με μια πρώτη προσέγγιση το Gιthub δεν φαίνεται ιδιαίτερα φιλικό και εύχρηστο ως προς τον χρήστη.Συνεπώς απο το μάθημα αυτό θα γίνει μια πρώτη επαφή με την πλατφόρμα του github και θα μας μάθει κάποια βασικά πράγματα για αυτό, αλλά και μια πιό ολοκληρωμένη έννοια για την επικοινωνία μεταξύ ανθρώπου και υπολογιστή.

[2]

Παραδοτέο 2 : Πρώτη προσπάθεια εγκατάστασης λειτουργικού συστήματος Arch linux.

Η πρώτη μου προσπάθεια εγκατάστασης των Arch Linux σε πραγματικό υλικό, ήταν σε ένα παλιό μου δίσκο που περιείχε windows 10, το οποίο όπως αποδείχτηκε ήταν λάθος καθώς κατα την διαδικασία εγκατάστασης τα δεδομένα του δίσκου δεν γίνονται overwrite και πρέπει ο δίσκος να είναι "unallocated". Ωστόσο αυτό δεν το γνώριζα απο την αρχή συνεχίζοντας την εγκατάσταση κανονικά μέχρι που έβγαλε σφάλμα. Το πρώτο πράγμα που έκανα αρχικά ήταν να σετάρω το keymap του πληκτρολογίου. Από default το keymap είναι για US english, συνεπώς εκτέλεσα την εντολή ls /usr/share/kbd/keymaps/**/*.map.gz για να βρώ όλα τα διαθέσιμα keymaps. Όταν βρήκα τα ελληνικά απλά loadkeys greek. Μετά απο αυτό έπρεπε να ελέγξω ότι το ρολόι του συστήματος ήταν ακριβές οπότε εκτέλεσα την εντολη timedatectl set-ntp true και για να το επιβεβαιώσω εκτέλεσα την εντολή timedatectl status και είδα οτι όλα λειτουργούν σωστά. Να προσθέσω σε αυτό το σημείο ότι στην πρώτη προσπάθεια εγκατάστασης χρησιμοποίησα ενσύρματη σύνδεση συνεπώς δεν χρειάστηκε να να ψάξω για wifi δίκτυο και να συνδεθώ. Στην συνέχεια εκτέλεσα την εντολή fdisk -l για να βρώ τον δίσκο στον οποίο θα έκανα εγκατάσταση το λειτουργικό. Μου έβγαλε 2 δίσκους, ο ένας ήταν το usb stick - sda1 που περιείχε το iso αρχείο και ο άλλος ο δίσκος sdb εκει που γινόταν η εγκατάσταση. Η επόμενη εντολή ήταν fdisk /dev/sdb για να ξεκινήσω το partition του δίσκου. Για να συνεχίσω την διαδικασία του διαχωρισμού του δίσκου πατήσα m για να μου βγάλει τον οδηγό που περιέχει το λειτουργικό για το partiton. Αμέσως μετά επέλεξα το gpt partition label πληκτρολογώντας το γραμμα g. Συνέχισα πληκτρολογώντας το γράμμα n και πρόσθεσα νέο partition, που θα περιείχε τα efi και επέλεξα τον αριθμό "1" απο τα 128 διαθεσιμα που μπορεις να φτιάξεις και ολοκλήρωσα το πρώτο partition αφήνωντας το πρώτο sector ως έχει και σαν δεύτερο sector πληκτρολόγησα το μέγεθος που θα ήθελα δηλαδή +550M. Την ίδια διαδικασία ακολούθησα και για τα άλλα δυο partitions, το swap που του έδωσα +2G μέγεθός και το file system που θα περιείχε όλα τα αρχεία του χρήστη στον χώρο του δίσκου που απέμεινε. Μόλις ολοκλήρωσα την διαδικασία με τα partition, πληκτρολόγησα ξανά m για να μου βγάλει τον οδηγό και στην συνέχεια το γράμμα t για να διαλέξω τον τύπο του κάθε partition που δημιούργησα, ξεκινώντας απο το 1ο και πατώντας L εμφανιστηκε μια λίστα με όλους τους τύπους που μπορεί να έχει ένα partition. Έτσι για το 1ο διάλεξα το νούμερο "1" που αντιπροσώπευε τα efi systems, για το 2ο partition διάλεξα το νούμερο "19" που αντιπροσώπευε το linux swap και για το 3ο partition το άφησα όπως ήταν σε linux filesystem. Αφού αποθηκεύσω τις αλλαγές αυτές πληκρολογώντας w, συνεχίζω την διαδικασία της εγκατάστασης δημιουργώντας τα filesystems για τα 3 αυτά partions. Για το efi partition πρέπει να είναι FAT32, οπότε πληκτρολόγησα την εντολή mkfs.fat -F32 /dev/sdb1. Για το swap partition mkswap /dev/sdb2 και αμέσως μετά swapon /dev/sdb2 και για το τρίτο partition mkfs.ext4 /dev/sdb3. Στην συνέχεια έπρεπε να κάνω mount το sdb3 γράφωντας την εντολή mount /dev/sdb3 /mnt. Το επόμενο βήμα ήταν να γίνει η εκατάσταση του base system των Arch linux με την εντολή pacstrap /mnt base linux linux-firmware. Μετά το installation πρέπει να γίνει generate το filesystem με την εντολή genfstab -U /mnt >> mnt/etc/fstab και να μπούμε στο root directory έγραψα arch-chroot /mnt. Και μέσα στο root κάνω διάφορες ρυθμίσεις για το timezone με την εντολή ln -sf /usr/share/zoneinfo/Greece/Athens /etc/localtime, hardware clock με την εντολή hwclock --systohc. Μόλις ρύθμισα και το hardware clock η επόμενη κίνηση ήταν να ρυθμίσω το "locale", χρησιμοποιώντας τον nano editor pacman -S nano, με την εντολή nano /etc/locale.gen. Βρήκα την γραμμή (el_GR.UTF-8 UTF-8) με τα ελληνικά και την επέλεξα. Αμέσως μετά έκανα generate το locale με την εντολή locale-gen. Μετά έπρεπε να φτιάξω το hostname με την εντολή nano /etc/hostname και έδωσα το όνομα archlinux. Στη συνέχεια έπρεπε να φτιάξω ένα host file nano /etc/hosts και πρόσθεσα τις εξής γραμμές 127.0.0.1 localhost, ::1 localhost και 127.0.1.1 archlinux.local domain archlinux. Μετά έφτιαξα έναν κανονικό user που δεν ήταν root με την εντολή useradd -m p13vyth και έβαλα έναν κωδικό με την εντολή passwd p13vyth. Όταν ολοκληρωθεί η δημιουργία του νέου μας χρήστη για να του δώσουμε κάποια επιπλέον προνόμια όπως "sudo" κτλ, εκτέλεσα την εντολή usermod -aG wheel,audio,video,optical,storage archlinux. Συνέχισα με την εντολή εγκατάστασης του πακέτου "sudo" pacman -S sudo γιατί θα χρειαζόταν στην συνέχεια που θα έπρεπε να κάνω edit το αρχείο του sudo για να βεβαιωθούμε ότι ο χρήστης μας έχει αυτά τα προνόμια. Οπότε έγραψα την εντολή EDITOR=nano visudo, βρήκα την εντολή που αναφερόταν στο wheel group και την έβγαλα απο τα σχόλια. Στην συνέχεια εγκατέστησα μερικά ακόμα πακέτα οπως pacman -S grub και pacman -S efibootmgr dosfstools os-prober mtools. Και το τελικό βήμα, πριν παρουσιαστεί το σφάλμα που προανέφερα στην αρχή, είναι η δημιουργία ενός φακέλου efi μέσα στον φάκελο boot και μετά να γίνει mount με τις εντολές mkdir /boot/EFI και mount /dev/sdb1 boot/EFI.

Πηγές : https://www.youtube.com/watch?v=PQgyW10xD8s

https://wiki.archlinux.org/title/installation_guide

[3]

Παραδοτέο 3 : Δεύτερη προσπάθεια εγκατάστασης λειτουργικού Arch linux.

Κατά την διαδικασία της εγκατάστασης το stick (32 gb) όπου θα γινόταν η εγκατάσταση, έπρεπε να έιναι αδέσμευτο χωρίς κάποιο partition - χώρισμα μέσα. Μετά πήρα άλλο ένα usb stick το οποίο το έκανα "bootable" με την εφαρμογή Rufus παιρνώντας μέσα τα αρχεία όλα τα αρχεία του αρχικόυ iso αρχείου το οποίο κατέβασα από το magnet link που παρείχε η επίσημη ιστοσελίδα των Arch. Αφού έγιναν αυτές οι δύο ενέργειες στα stick, μετά έκανα boot το stick με τα αρχεία του iso και αφού σύνδεσα το τελείως άδειο στικάκι, συνέχισα με την διαδικασία της εγκατάστασης. Ακολούθησα τις οδηγίες από το βιντεάκι στις πηγές. H διαδικασία είναι παρόμοια με την διαδικασία της πρώτης προσπάθειας οπότε το πρώτο πράγμα που έπρεπε να φτιάξω ήταν το keymap του πληκτρολογίου για τα ελληνικά γράφωντας την εντολή localectl list-keymaps | el, για να μου βγάλει όλα τα διαθέσιμα keymaps για τα ελληνικά και αμέσως μετά την εντολή loadkeys greek για να το βάλω στο σύστημα που πρόκειται να εγκαταστήσω. Να σημειώσω ότι επειδή για να συνδεθώ στο internet χρησιμοποιούσα ενσύρματη σύνδεση προσπέρασα το βήμα με την εντολή iwtctl. Το επόμενο βήμα είναι να σιγουρευτούμε ότι θα έχουμε τους πιο διαθέσιμους srvers για το downloading πακέτων κατα την διάρκεια της εγκατάστασης οπότε χρειάζεται να τρέξω την εντολή pacman -Syy reflector για να εγκαταστήσω το πακέτο reflector το οποίο θα χρησιμοποιήσω για να φτιάξω την mirrorlist με την εντολή reflector -c Greece -a --sort rate --save /etc/pacman.d/mirrolist. Στην συνέχεια έψαξα με την εντολή lsblk όλα τα διαθέσιμα μέσα στα οποία θα μπορούσα να κάνω εγκατάσταση το λειτουργικό μου. Είδα απο την λίστα ότι σαν sdb/sdb1 είχε το στικάκι με το iso αρχείο και σαν sda το κενό στικάκι όπου θα γίνει η εγκατάσταση. Μετά ξεκινάω την διαδικασία δημιουργίας των partitions και συγκεκριμένα με το πρώτο το οποίο θέλουμε να έχει gtp label οπότε πρέπει να εκτελέσω την εντολή gdisk /dev/sda. Στην συνέχεια πληκτρολογώ το γράμμα n για να δημιουργήσω καινούργιο partition. Αφήνω το πρώτο νούμερο του particion όπως είναι στο νούμερο 1 και το πρώτο sector επίσης δεν το αλλάζω. Το μόνο που άλλαζω για την δηιουργία του πρώτου partition είναι το δεύτερο sector όπου πληκτρολογώ +200M, δηλαδή 200 megabytes που χρειάζονται για τα efi και του αλλάζω τύπο πλητρολογώντας ef00 για να αλλάξει τύπο απο linux filesystem σε efi. Για να ολοκληρωθεί η διαδικασία δημιουργίας των partitions, χρειάζεται να φτιάξω άλλο ένα root partition ακολουθώντας την ίδια διαδικασία, πληκτρολογώ το γράμμα n, αφήνω το νούμερο του partition στο νούμερο 2 όπως και το πρώτο και δεύτερο sector αφου θέλουμε να χρησιμοποιήσουμε όλον τον χώρο που απέμεινε στον δίσκο και τέλος αφήνουμε τον τύπο του partition σε linux filesystem αφού αυτό θα είναι το κύριο filsystem μας. Όταν ολοκληρωθεί η διαδικασία δημιουργίας των partitions, πρέπει να τα διαμορφώσουμε. Για το πρώτο partition χρειάζεται να φτιάξω ένα filesystem τύπου FAT32 με την εντολή mkfs.fat -FAT32 /dev/sda1. Για το δευτερο partition (root), η διαδικασία είναι λίγο διαφορετική. Επειδή το στικάκι έχει περιορισμένο αριθμό εγγραφών, πρέπει το Journal να γίνει εγκατάσταση στην μνήμη ram, συνεπώς για να φτιάξω ένα filesystem για το δεύτερο partition τύπου ext4 εκτελώ την εντολή mkfs.ext4 -O "^has_journal" /dev/sda2. Μετά από αυτό, πρέπει να γίνουν mount τα partitions που δημιουργησα ξεκινώντας απο το root partition γράφωντας την εντολή mount /dev/sda2 /mnt. Για το partition με τα efi, πρώτα πρέπει να φτιάξω εναν boot directory με την εντολή mkdir -p /mnt//boot/efi και μετά mount με την εντολή mount /devsda1 /mnt/boot/efi. Όταν ολοκληρωθεί το mount σειρά έχει η εγκατάσταση κάποιων βασικών πακέτων των linux με την εντολή pacstrap /mnt base linux linux-firmware vim όπου vim ο editor που θα χρησιμοποιήσω στην συνέχεια. Το επόμενο βήμα είναι να γίνει generate το filesystem με την εντολή genfstab -U /mnt >> mnt/etc/fstab. Τα επόμενα βήματα πρέπει να γίνουν μέσα από τον chroot και εκτελώ την εντολή arch-root /mnt. Μόλις πάω σε chroot mode, το πρώτο πράγμα που πρέπει να φτιάξω είναι το timezone. Βρίσκω την ζώνη ώρας που αντιστοιχεί στην Αθήνα με την εντολή timedatectl list-timezones | grep Athens και μετά για να την βάλουμε στο σύστημα, εκτελούμε την εντολή ln -sf /usr/share/zoneinfo/Europe/Athens /etc/localtime. Σειρά έχει να συγχρονίσουμε το hardware clock και το system clock μετην εντολή hwclock --systohc και να κάνουμε κάποιες αλλαγές στο locale.gen αρχείο το οποίο το ανοίγουμε με τον vim editor που έχουμε κάνει εγκατάσταση απο πριν. Γράφουμε την εντολή vim /etc/locale.gen και απο το αρχείο βρίσκω τα "locale" για τις γλώσσες όπως αυτή για τα αγγλικά #en_US.UTF-8 UTF-8, αφαιρώ το hashtag (#) και αποθηκεύω τις αλλαγές. Μετά μπορούμε να κάνουμε generate τα locales με την εντολή locale-gen και να τα βάλουμε σε ένα locale.conf αρχειο με την εντλή vim /etc/locale.conf. Μέσα στο αρχείο αυτό γράφουμε LANG=en_US.UTF-8 και το αποθηκεύουμε. Επίσης πρέπει να βάλουμε και το keymap που διαλέξαμε στην αρχή , στο αρχειο vconsole.conf πάλι με την εντολή vim /etc/vconsole.conf και γράφουμε KEYMAP=(και το keymap για τα ελληνικά) και το αποθηκεύουμε. Το επόμενο που φτιάχνουμε μετά είναι το hostname με την εντολή vim /etc/hostname και στο αρχείο γράφω το όνομα του χρήστη archusb και το αποθηκεύω. Επίσης χρειάζεται να επεξεργαστώ και το hosts file ανοίγωντας το με την εντολή vim /etc/hosts και πάω σε μια κενή γραμμή και συμπληρώνω τα εξής, με την σειρά και το ένα κάτω απο το άλλο, 127.0.0.1 localhost, ::1 localhost και 127.0.1.1 archusb.local domain archusb και αποθηκεύω τις αλλαγές. Το βήμα για να εισάγω κωδικό για τον root user το προσπέρασα και συνέχισα με την εγκατάσταση κάποιων πακέτων με την εντολή pacman -S grub efibootmgr networkmanager network-manager-applet mtools dosfstools reflector git base-devel linux headers bluez bluez-utils cups xdg-utils xdg-user-dirs. Πριν συνεχίσω με την εγκατάσταση του "grub" χρειάζεται να κάνω κάποιες αλλαγές στο αρχείο mkinitcpio.conf το οποίο θα ανοίξω με τον vim editor γράφωντας την εντολή vim /etc/mkinitcpio.conf, βρίσκω την εξής γραμμή που γράφει HOOKS=(base udev autodetect modconf block filesystems keyboard fsck και την μετατρέπω σε HOOKS=(base udev block keyboard autodetect modconf filesystems fsck και αποθηκεύω τις αλλαγές. Και τέλος πρέπει να κάνω generate το mkinitcpio με την εντολή mkinitcpio.conf -p linux. Αφού ολοκληρώσω την διαδικασία με το mkinitcpio συνεχίζω με την εγκατάσταση του grub εκτελώντας την εντολή grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB --removable --recheck. Όταν ολοκληρωθεί η εγκατάσταση πρέπει να κάνω generate το configuration αρχείο με την εντολή grub-mkconfig -o /boot/grub/grub.cfg. Τελειώνουμε και με την διαδικασία εγκατάστασης του grub και τώρα σειρά έχει να ενεργοποιήσουμε κάποια services του συστήματος με την εξής εντολή systemctl enable NetworkManager bluetooth org.cups.cupsd. Στην συνέχεια φτιάχνω έναν κανονικό user (εκτός απο τον root user) με την εντολή useradd -mG wheel p2013021 και δίνω και έναν κωδικό στον χρήστη με την εντολή passwd p2013021 και πληκτρολογώ τον κωδικό. Μετά συνεχίζω με την εντολή EDITOR=vim visudo, βρίσκω στο κείμενο την γραμμή που γράφει # %wheel ALL=(ALL) ALL και διαγράφω το hashtag # και αποθηκεύουμε τις αλλαγές.Για να ολοκληρωθεί η διαδικασία της βασικής εγκατάστασης των Arch Linux, πρέπει να βγώ απο το chroot mode πληκτρολογώντας exit και να κάνω "reboot" τον υπολογιστή αφού πρώτα κάνω unmount όλα τα partitions με την εντολή unmount -a. Μετά το reboot και μόλις ανοίξει κανονικά το λειτουργικό πατάω την εντολή sudo su για να αλλάξω από τον κανονικό χρήστη (p2013021) σε root user και αμέσως μετά πρέπει να φτιάξουμε το journal να αποθηκεύεται στην ram επειδή το στικάκι έχει περιορισμένο αριθμό εγγραφων. Αυτο για να γίνει πρέπει να δημιουργήσω πρώτα εναν φάκελο με την εντολή mkdir /etc/systemd/journald.conf.d και μετά να δημιουργήσω το configuration αρχείο με την εντολή vim /etc/systemd/journald.conf.d/usbstick.conf το οποίο θα περιέχει τις εξής γραμμές [Journal], Storage=volatile και RuntimeMaxUse=30M και το αποθηκεύουμε. Το μόνο που έχει μείνει για εγκατάσταση πλέον είναι οι drivers και πακέτα όπως το γραφικό περιβάλλον, τον chrome browser το nemo filemanager, κ.α. Αρα γράφω την εντολή pacman -S xf86-video-vesa xf86-video-ati xf86-video-intel xf86-video-nouveau για να εγκαταστήσω τους drivers για τις καρτες γραφικών.Και για το τέλος κάνω εγκατάσταση κάποια βασικά πράγματα που θα μου χρειαστούν για την χρήση του λειτουργικού με την εντολή pacman -S xorg sddm plasma chromium konsole packagekit-qt5 nemo και ενεργοποιώ το sddm με την εντολή systemctl enable sddm.

Πηγές : https://www.youtube.com/watch?v=yaThYGr37DI&t

https://wiki.archlinux.org/title/installation_guide

[4]

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

Link αποθετηρίων images: https://github.com/AlexandrosV20/images/blob/master/5chordeskeyset-thumb.jpg

https://github.com/AlexandrosV20/images/blob/master/5chordeskeyset.jpg

https://github.com/AlexandrosV20/images/blob/master/atari2600Joystick.jpg

https://github.com/AlexandrosV20/images/blob/master/atari2600Joystick-thumb.jpg

Link αποθετηρίων gallery: https://github.com/AlexandrosV20/_gallery/blob/master/5chordeskeyset.md

https://github.com/AlexandrosV20/_gallery/blob/master/atari2600Joystick.md

Link netlify: https://alexandrosv20.netlify.app/gallery/5chordeskeyset/

https://alexandrosv20.netlify.app/gallery/atari2600joystick/

Πηγές : https://dougengelbart.org/content/view/273/

https://deiimages.files.wordpress.com/2020/10/demo-keyset-wh.jpeg

https://commons.wikimedia.org/wiki/File:Atari-2600-Joystick.jpg

https://www.digitalgamemuseum.org/consolecontrollerevolution/classic/atari2600/

[5]

Παραδοτέο 5 : Εύρεση των χαρακτηριστικών του συστήματος με τις εντολές journalctl -b και neofetch

Asciinema links: https://asciinema.org/a/SQ9oKeJwOOPOsWC8GSdA2dnop

https://asciinema.org/a/sK80w8yjdQKBaVZ4CKX5J4IiK

Αφού έγινε με επιτυχία η εγκατάσταση του λειτουργικού Arch Linux στην συνέχεια έψαξα και βρήκα μέσω terminal τα χαρακτηριστικά του συστήματος μου με τις εντολές jounralctl -b | less και neofetch.

Πηγές : https://www.youtube.com/watch?v=SC4Onk7HdkI

[6]

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

Link αποθετηρίων slides : https://github.com/AlexandrosV20/site/blob/master/_slides/archetypes.md

https://github.com/AlexandrosV20/site/blob/master/_slides/videogames.md

Link αποθετηρίων timeline : https://github.com/AlexandrosV20/site/blob/master/_timeline/input-devices.md

https://github.com/AlexandrosV20/site/blob/master/_timeline/keyboard.md

Link netlify-slides: https://alexandrosv20.netlify.app/slides/archetypes/

https://alexandrosv20.netlify.app/slides/videogames/

Liknk netlify-timeline: https://alexandrosv20.netlify.app/timeline/input-devices/

https://alexandrosv20.netlify.app/timeline/keyboard/

[7]

Παραδοτέο 7 : Άσκηση γραμμής εντολών - Search, download and play (with the terminal) your favorite song

Asciinema link: https://asciinema.org/a/447324

Για πρώτη άσκηση γραμμής εντολών επέλεξα το download ενός mp3. Αρχικά πρέπει να μπώ σαν host user, και όχι με τον p2013021 user πατώντας sudo su. Αφού μπώ στο root, εγκαθηστώ το πακετο youtube-dl πατώντας pacman -S youtube-dl. Επίσης θα χρειαστεί να εγκαταστήσω και τον mpv player για να το παίξω το αρχείο, οπότε πάλι όπως είμαι στο root pacman -S mpv. Αμέσως μετά απο την εγκατάσταση των δύο πακέτων παταμε exit να βγούμε από το root, και συνεχίζουμε με την εντολη asciinema rec -i 0.2 για να ξεκινήσει το record του terminal και με το κατέβασμα του mp3 αρχείου γράφοντας την εντολή youtube-dl -x --audio format.mp3 "ytsearch:SongName". Αφού κατεβεί το αρχείο mp3 (στην περίπτωσή μου το Dire Straits - Sultans Of Swing-0fAQhSRLQnM.mp3),το μετονομάζω σε ένα μονολεκτικό όνομα, για να έιναι πιο εύκολο να διαχειριστώ το αρχείο,γράφοντας την εντολη sudo mv Dire\ Straits\ -\ Sultans\ Of\ Swing-0fAQhSRLQnM.mp3 SultansOfSwing.mp3. Μετά την αλλαγή του ονόματος μεταφέρω το αρχείο απο το /home/p2013021/ στόν φάκελο Music με την εντολή mv SultansOfSwing.mp3 ~/Music/, όπου το σύμβολο ~ συμβολίζει το /home/p2013021/ και τέλος για να το παίξω το κομμάτι με τον mpv player, γράφω την εντολή mpv /home/p2013021/Music/SultansOfSwing.mp3. Όταν τελειώσει το τραγούδι πατάμε exit για να τελειώσει το record και enter για να ανεβεί το asciicast στο asciinema.

Πηγές: https://www.linux.com/training-tutorials/how-move-files-using-linux-commands-or-file-managers/

https://github.com/ytdl-org/youtube-dl

[8]

Παραδοτέο 8 : Συμμετοχικό περιεχόμενο Β1 - Μελέτη περίπτωσης

Link αποθετήριου μελέτης περίπτωσης : https://github.com/AlexandrosV20/site/blob/master/_case-study/sri.md

https://github.com/AlexandrosV20/extras/blob/master/cs-sri.md

Link netlify-case study: https://alexandrosv20.netlify.app/case-study/sri/

Πηγές: https://www.sri.com/about-us/

https://dougengelbart.org/content/view/273/

[9]

Παραδοτέο 9 : Άσκηση γραμμής εντολών - text editor and plug-ins for code highlighting and autocompletion

Asciinema link: https://asciinema.org/a/WIHMV2LRYFQMppN911xXIlyhe

Αρχικά για το syntax highlighting στον editor vim, φτιάχνω μέσω του terminal ένα αρχείο .vimrc με την εντολή vim /etc/.vimrc. Επειδή το syntax highlighting είναι ενεργοποιημένο από default,στο αρχείο .vimrc που σημιουργήσαμε πατάμε i για να φύγουμε από το normal mode και να μπούμε στο edιting mode του vim. Μόλις μπούμε editing mode γράφουμε την εντολή sytntax off και πατάμε Esc για να επιστρέψουμε πάλι στο normal mode. Για να αποθηκέυσουμε τις αλλαγές και να βγούμε απο το αρχείο αυτό, πατάμε : και αμέσως μετά wq w για "write" και q για "quit". Μόλις γίνει αυτό τότε δοκιμάζω να ανοίξω ένα πρόγραμμα σε c. Βλέπω οτι ενώ αρχκά ήταν highlighted τώρα δεν έιναι. Εάν όμως θελήσουμε να το ξανακάνουμε highlighted πάμε στο normal mode με Esc αν βρισκόμαστε στο editing mode, και στην συνέχεια πατάμε : και γράφουμε syntax on όπου θα ενεργοποιήσει πάλι το syntax highlighting για το συγκεκριμένο αρχείο κώδικα.

Δυσκολίες :

Προσπάθησα να περάσω και ένα plugin για autocompletion, το youcompleteme, μέσω του Vundle plugin manager κάνοντας clone το κατάλληλο repository από το github. Υπήρξαν όμως κάποιες δυσκολίες στο install κάποιων αλλων πακέτων όπως το cmake τα οποία δεν μπόρεσαν να επιλύσω. Παρόλλα αυτά το Vim παρέχει autocompletion με τον συνδυασμό ctrl + n και ctrl + p που σου βγάζει μια λίστα από όλες τις διαθέσιμες λέξεις από το συγκεκριμένο γράμμα που έχεις πλητρολογήσει.

Πηγές: https://www.youtube.com/watch?v=n9k9scbTuvQ&t=598s

[10]

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

Link αποθετήριου βιογραφίας : https://github.com/AlexandrosV20/site/blob/master/_biography/steve-bristow.md

https://github.com/AlexandrosV20/extras/blob/master/bio-bristow.md

Link netlify-biography: https://alexandrosv20.netlify.app/biography/steve-bristow/

Πηγές: https://www.digitalgamemuseum.org/steve-bristow-an-appreciation/

https://arstechnica.com/gaming/2015/02/obituary-gaming-pioneer-steve-bristow-helped-design-tank-breakout/

[11]

Παραδοτέο 11 : Organize your notes with emacs

Asciinema link: https://asciinema.org/a/JSbiEXiw73lHvdgvAaBTnYDeH

Αφού εγκατέστησα το emacs με την εντολή sudo pacman -S emacs, εκτέλεσα την εντολή asciinema rec -i 0.2 για να ξεκινήσει το record του terminal. Στην συνέχεια εκτέλεσα την εντολή emacs -nw για να ανοίξει το emacs editor σε μορφή terminal. Πληκτρολόγησα Ctrl + X + F για να ανοίξω ένα καινούργιο αρχείο και μετά πληκτρολόγησα Alt + X και έπειτα org-mode για να αλλάξει σε org mode ο editor. Αρχικά ξεκίνησα να οργανώνω το πρόγραμμα της μέρας με τον σχηματισμό αστερίσκων πατώντας Alt + Enter και για τους διπλούς αστερίσκους απλά πάτησα Alt + Enter + right arrow. Όρισα μια κατάσταση σε κάθε αντικείμενο πατώντας Shift + right arrow. Δημιούργησα ενδεικτικά και κάποιες στείλες σε ορισμένα αντικείμενα με - [ ] αντί για αστερίσκο όπου με το πάτημα Ctrl + C + C αλλάζει η κατάσταση εμφανίζοντας ένα X στις αγκύλες και εμφανίζει και ποσοστό αν βάλω το % ή το μέρος που έχει ολοκληρωθεί απο τις διεργασίες αν βάλω /. Υπάρχει ακόμα η δυνατότητα να ορίσουμε με τον ίδιο συνδυασμό Ctrl + C + C μια περιγραφή ή κατηγορία δίπλα απο το κάθε αντικείμενο, για παράδειγμα :WORK:, :HOME: κτλ. Επίσης με το Alt + X και το org-agenda, εμφανίζονται διάφορα χρήσιμα χρήσιμα χαρακτηριστικά όπως Show all TODOs. Και τέλος μπορείς να πατήσεις CTRL + C+ D για να σου εμφανίσει το ημερολόγιο και να ορίσεις ένα deadline για κάποιο task. Για να αποθηκεύσουμε το αρχείο μας και να βγούμε απο το emacs πατάμε Ctrl + X +C και μόλις ξαναεπιστρέψουμε στο terminal μας, πατάμε exit για να σταματήσει το record από το asciinema και Enter για να ανέβει στο profile μας.

Πηγές : https://www.control-escape.com/linux/editing-emacs.html / https://www.youtube.com/watch?v=bzZ09dAbLEE

[12]

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

Συνεισφορές και συμμετοχικότητα - ομαδικότητα

Discussion & Pull Requests
#1627
#1630
#1633
#1634
#1637
#1650
#1665
#1667
#1673
#1695
#1702
#1705
#1715
#1711

Συμπέρασμα :

Οι γνώσεις που αποκόμισα από το μάθημα αυτό ήταν πάρα πολλές και κάλυψαν με το παραπάνω τις προσδοκίες μου. Μέσω του μαθήματος αυτού τώρα εχω κατανοήσει πλέον σε μεγάλο βαθμό την έννοια επικοινωνία ανθρώπου και υπολογιστή τόσο σε πρακτικό επίπεδο με τις ασκήσεις γραμμών εντολών όσο και σε θεωρητικό επίπεδο και μέσα από λεγόμενα αξιόλογων επιστημόνων όπως ο Alan Kay και ο Ted Nelson. Επίσης το μάθημα αυτό μου προσέφερε πολύ σημαντικές γνώσεις για το λειτουργικό Linux (Arch) καθώς από την εγκατάσταση ακόμα με έβαλε στην διαδικασία να κατανοήσω το filesystem του, το πως δουλέυουν τα partitions αλλά και το πώς να δημιουργώ και να επεξεργάζομαι αρχεία μέσω εντολών απο το terminal. Τέλος οι γνώσεις μου επεκτάθηκαν και στην χρήση του github το οποίο στην αρχή μου φαινόταν πολύ δυσνόητο που όμως στην συνέχεια μαζί με την εξοικείωση μου με τις γραμμές εντολών μου φάνηκε τόσο εύχρηστο και τόσο σημαντικό εργαλείο για έναν προγραμματιστή.

Βιβλιογραφία

Stack Overflow

Stack Exchange

ArchWiki

D.Engelbart Institute

Digital Game Museum

Adding a submodule

Updating a submodule

Deleting a submodule