Πλήρης οδηγός εγκατάστασης και χρήσης XAMPP σε Linux. Παράδειγμα εγκατάστασης Wordpress

Λογότυπο XAMPP

Τι είναι το XAMPP

Το XAMPP αποτελεί ένα πακέτο προγραμμάτων το οποίο περιέχει ένα εξυπηρετητή ιστοσελίδων (Apache), μια βάση δεδομένων (MySQL) και τις γλώσσες προγραμματισμού PHP και Perl. Αποτελεί εργαλείο ανάπτυξης και δοκιμής ιστοσελίδων τοπικά στον υπολογιστή χωρίς να είναι απαραίτητη η σύνδεση στο διαδίκτυο. Ενδείκνυται για δοκιμαστικές εγκαταστάσεις CMS ή άλλων παρόμοιων προγραμμάτων που κάνουν χρήση ενός διακομιστή, μιας βάσης δεδομένων και της γλώσσας PHP.

Πλεονεκτήματα - Μειονεκτήματα

Το ερώτημα που γεννιέται είναι αν είναι καλύτερο έναντι άλλων λύσεων, όπως του virtual box, του docker ή άλλων λύσεων.

Προσωπική άποψη, στο virtual box, πρέπει να εγκατασταθεί εκ νέου το λειτουργικό σύστημα host, μετά να ακολουθηθεί το tutorial εγκατάστασης του lamp server (Apache, MySQL, PHP) και αν δουλεύει καλά, τότε να δοκιμαστούν οι ιστοσελίδες. Αποτελεί μια πολύ καλή λύση εάν ο προγραμματιστής θέλει να μάθει-γνωρίσει και πως χειρίζεται ο διαχειριστής τον εξυπηρετητή. Δεν την θεωρώ μια πολύ καλή λύση για την εργασία που συζητάμε.

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

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

Εγκατάσταση

1. Καταρχήν μεταβείτε στην σελίδα των λήψεων και κατεβάστε το αρχείο που είναι για το λειτουργικό Linux. Θα είναι ένα αρχείο με κατάληξη .run (έστω είναι το xampp-linux-x64-8.0.5-0-installer.run).

2. Αφού κατέβει, μετακινηθείτε στον κατάλογο που έγινε η λήψη. Στη συνέχεια αλλάξτε τα δικαιώματα με την παρακάτω εντολή:
chmod +x xampp-linux-x64-8.0.5-0-installer.run

3. Στη συνέχεια εισάγετε την παρακάτω εντολή, ώστε να εκκινήσει η εγκατάσταση:
sudo ./xampp-linux-x64-8.0.5-0-installer.run

4. Πατήστε Next και περιμένετε:
Εγκατάσταση XAMPP
Εγκατάσταση XAMPP
5. Όταν τελειώσει η εγκατάσταση, πατήστε το κουμπί Finish.
Τερματισμός εγκατάστασης XAMPP
Αυτό θα έχει ως αποτέλεσμα να ανοίξει το xampp. Αν βλεπετε την παρακάτω εικόνα, έχει ολοκηρωθεί επιτυχώς η εγκατάσταση.
XAMPP Manager
6. Αφού ανοίξει το xampp, καλό είναι να δοκιμάσετε εάν δουλεύει. Πως θα το κάνετε αυτό; Μετακινηθείτε στην καρτέλα Manage Servers όπου θα σας εμφανίσει τους servers που πρέπει να ενεργοποιήσετε.
Διακομιστές XAMPP απενεργοποιημένοι
Επιλέξτε Apache Web Server και MySQL Database και πατήστε το Start. Θα πρέπει να βλέπετε την παρακάτω εικόνα:
Διακομιστές XAMPP απενεργοποιημένοι
7. Αφού είναι ενεργά, ανοίξτε τον browser και γράψτε localhost. Θα πρέπει να βλέπετε την παρακάτω σελίδα:
XAMPP localhost
Για να κλείσετε το xampp, πρέπει να κλείσετε τους servers (επιλέξτε τους Apache Web Server και MySQL Database και πατήστε το Stop).

Εκκίνηση

Για να εκκινήσει ο xampp μπορείτε να το κάνετε με 3 τρόπους:

1. Τερματικό: Μπορείτε να εκτελείτε τις εντολές κάθε φορά που ανοίγετε το xampp ή απλά να τις προσθέσετε ως alias στο .bashrc.
ΕΚΚΙΝΗΣΗ: sudo /opt/lampp/xampp start

ΤΕΡΜΑΤΙΣΜΟΣ: sudo /opt/lampp/xampp stop

2. Τερματικό + Γραφικό: Εδώ ανοίγετε το τερματικό και γράφετε την παρακάτω εντολή:
sudo /opt/lampp/manager-linux.run

Το ίδιο και εδώ, μπορείτε να προσθέσετε την εντολή αυτή ως alias στο .bashrc.

3. Προσθήκη εκκινητή στο menu: Μετακινηθείτε στον παρακάτω κατάλογο:
cd /usr/share/applications

Πρέπει να δημιουργήσετε ένα αρχείο xampp.desktop και να το επεξεργαστείτε.
sudo touch xampp.desktop
sudo gedit xampp.desktop

Προσθέστε μέσα τα παρακάτω:
[Desktop Entry]
Encoding=UTF-8
Name=XAMPP Control Panel
Comment=Start and Stop XAMPP
Exec=sudo /opt/lampp/manager-linux-x64.run
Icon=/opt/lampp/htdocs/favicon.ico
Categories=Application
Type=Application
Terminal=true

Και είστε έτοιμοι.

Παράδειγμα εγκατάστασης wordpress

1. Κατεβάστε το wordpress από την ιστοσελίδα https://el.wordpress.org/

2. Αποσυμπιέστε το αρχείο και μετακινήστε το στον φάκελο που "σερβίρει" το XAMPP.
sudo mv wordpress /opt/lampp/htdocs/

3. Αλλάξτε τα δικαιώματα με την εντολή:
sudo chown -R daemon /opt/lampp/htdocs/wordpress

4. Δημιουργήστε μια βάση δεδομένων. Αφού έχετε εκκινήσει το XAMPP, πρέπει να μετακινηθείτε στην διεύθυνση http://localhost/phpmyadmin και πατήστε στην καρτέλα Βάσεις δεδομένων. Πχ ονομάστε την wordpress (τι πρωτότυπο) και ως κωδικοποίηση (το ονομάζει Σύνθεση ή Coalition) επιλέξτε είτε utf8_general_ci είτε utf8_unicode_ci, όπως φαίνεται στην εικόνα.
XAMPP δημιουργία βάσης δεδομένων
5. Εγκαταστήστε το wordpress (http://localhost/wordpress). Στο σημείο που θα χρειαστεί να εισάγετε τα δεδομένα της βάσης, θα χρησιμοποιήσετε τα παρακάτω.
Database – wordpress
Username – root
Password – (αφήστε το κενό)

Εγκατάσταση wordpress, βάση δεδομένων
Στις τελευταίες εκδόσεις, προτού ξεκινήσετε την εγκατάσταση του wordpress, πρέπει να επεξεργαστείτε ένα αρχείο. Αυτό είναι το wp-config.php στο οποίο εισάγετε το όνομα της βάσης, τον χρήστη και το συνθηματικό. Οπότε δεν θα χρειαστεί να δείτε την παραπάνω οθόνη.

Απεγκατάσταση

Έστω ότι δεν σας βόλεψε ή θέλετε να αλλάξετε σε docker και δεν χρειάζεστε άλλο το XAMPP. Υπάρχουν 3 τρόποι να το απεγκαταστήσετε.
1. sudo /opt/lampp/uninstall

2. sudo -i cd /opt/lampp ./uninstall

3. sudo rm -r /opt/lampp
Επιλέξτε όποιον τρόπο επιθυμείτε.

Εάν έχετε και εσείς κάποιον φίλο-γνωστό που φοβάται να εγκαταστήσει docker ή έστω ένα virtual box, ενημερώστε τον για τις παραπάνω διαδικασίες.

Μετατροπή αρχείου vdi του Virtual Box σε αρχείο raw img

Virtual Box αρχεία vdi σε img και αντίστροφα
Πολλοί φίλοι μου φοβούνται να εγκαταστήσουν μια διανομή Linux στον υπολογιστή τους. Πολλοί είναι οι λόγοι. Παλιά σίγουρα ήταν ότι δεν υπάρχουν προγράμματα. Τώρα νομίζω είναι ο φόβος της αποτυχίας στην εγκατάσταση και ίσως ότι αν τυχόν χαλάσει κάτι είτε στην εγκατάσταση είτε μετά, δεν θα βρουν τρόπο να το διορθώσουν. Στην ουσία, είτε windows, είτε Linux, η οδηγία είναι η αναζήτηση στο Internet μήπως κάποιος έχει αντιμετωπίσει το ίδιο πρόβλημα. Συνήθως, 90% θα βρεθεί ερώτηση με το ίδιο πρόβλημα και θα βρεθεί η λύση. Για να αποφύγουμε τον φόβο της "αποτυχίας", δυο είναι οι λύσεις.

ΕΠΙΛΟΓΗ 1: Η πιο εύκολη είναι να εγκαταστήσουν την διανομή σε Virtual Box (εικονική μηχανή).

ΠΛΕΟΝΕΚΤΗΜΑΤΑ:

  • Εγκατάσταση και δοκιμή (εγκατάσταση, κατατμήσεις, ρυθμίσεις κλπ) και αν γίνει κάποιο λάθος, διαγράφει ο χρήστης ένα αρχείο ενώ το host μηχάνημά με Windows ή MAC OSX δουλεύει κανονικά. Στην επόμενη δοκιμή απλά φροντίστε να μην κάνετε το ίδιο λάθος.

ΜΕΙΟΝΕΚΤΗΜΑΤΑ:

  • Περιορίζονται οι πόροοι (μνήμη, δίσκος) αφού χρειάζεται μνήμη και το host λειτουργικό σύστημα.
  • Το εικονικό λειτουργικό Linux μπορεί να έχει πρόσβαση στα αρχεία του host, μέσω ενός κοινόχρηστου φακέλου που θα δηλωθεί στο πρόγραμμα Virtual Box. Αντιθέτως μέσα από τα Windows δεν μπορεί κάποιος να έχει πρόσβαση στα αρχεία του εικονικού συστήματος Linux (έχει μόνο πρόσβαση στον κοινόχρηστο φάκελο).

ΕΠΙΛΟΓΗ 2: Η λίγο πιο δύσκολη λύση είναι η dual boot, δηλαδή να εγκατασταθούν στον ίδιο δίσκο, τόσο Windows όσο και Linux. Στην επιλογή αυτή θα εκτελείται ένα λειτουργικό σύστημα την φορά.

ΠΛΕΟΝΕΚΤΗΜΑΤΑ:

  • Kαι τα δυο λειτουργικά έχουν την απόλυτη επίδοση που μπορούν να έχουν όταν είναι σε λειτουργία.

ΜΕΙΟΝΕΚΤΗΜΑΤΑ:

  • Δεν υπάρχει πρόσβαση αρχείων από τα Windows στον δίσκο με το Linux (μόνο εάν έχει εγκατασταθεί πρόγραμμα). Η λύση δίνεται μόνο εάν δημιουργηθεί μια κατάτμηση NTFS όπου θα προσαρτείται τόσο στα Windows όσο και στο Linux και εκεί αποθηκεύονται τα αρχεία.
  • Δυσκολία για έναν αρχάριο να διαχειριστεί τις κατατμήσεις κατά την εγκατάσταση. Από τη στιγμή που αυτό λυθεί, μετά δεν υπάρχει κάποια δυσκολία.


Ίσως μια τρίτη επιλογή θα ήταν το Live ISO αλλά δεν κερδίζει κάποιος κάτι από αυτή την επιλογή. Δεν διατηρούνται ρυθμίσεις (υπάρχει η επιλογή του persistent storage αλλά προσωπικά δεν την εμπιστεύομαι).

ΠΡΟΒΛΗΜΑ

Θέλω να εγκαταστήσω Linux αλλά φοβάμαι επειδή δεν γνωρίζω. Θα εγκαταστήσω σε Virtual Box για να μάθω την διαδικασία.

Αυτή είναι η φράση που έχει χιλιοειπωθεί. Όταν πετύχουν την εγκατάσταση, μετά υπάρχει η "βαρεμάρα" να το στήσει κάποιος σε κανονικό μηχάνημα από την αρχή.

ΛΥΣΗ

Η λύση έρχεται να δοθεί εν μέρη με την μετατροπή του εικονικού λειτουργικού σε img όπου στη συνέχεια μπορεί να περαστεί σε κανονικό υπολογιστή. Εδώ θα δούμε πως γίνεται τόσο σε Windows, όσο και σε Linux (ουσιαστικά είναι η ίδια διαδικασία-εντολή).

WINDOWS

Σε Windows, ανοίξτε το τερματικό (cmd ή Command Line) και μετακινηθείτε στον κατάλογο:
cd "C:\Program Files\Oracle\VirtualBox"

Εδώ θα βρείτε το πρόγραμμα VBoxManage. Στη συνέχεια πρέπει να αντιγράψετε την παρακάτω εντολή:
VBoxManage clonehd --format RAW “C:\Users\stathis\VirtualBox VMs\opensuse\opensuse.vdi” “C:\Users\stathis\VirtualBox VMs\opensuse\opensuse.img”

Ας εξηγήσουμε λίγο το σενάριο. Στην παραπάνω εντολή υποθέτουμε ότι έχετε εγκαταστήσει openSUSE. Η εγκατάσταση έγινε μέσα στον φάκελο opensuse. Οπότε το όνομα του αρχείου που δημιουργήθηκε είναι opensuse.vdi. Προσέξτε λίγο και τον χρήστη (stathis). Πρέπει να δώσουμε την ακριβή διαδρομή που βρίσκεται το αρχείο vdi. Και επειδή σίγουρα θα έχει κενά κάπου, καλύτερα να χρησιμοποιήσετε και τα "".

Περιμένετε λίγο και θα έχετε έτοιμοι το αρχείο opensuse.img. Τι μπορείτε να κάνετε με αυτό; Μπορείτε να χρησιμοποιήσετε κάποιο live usb και να αντιγράψετε με την εντολή dd (ή άλλο εργαλείο) από ένα εξωτερικό μέσο στον δίσκο του υπολογιστή.

LINUX

Εδώ ίσως είναι ακόμα πιο εύκολα τα πράγματα. Ανοίξτε το τερματικό και μετακινηθείτε στον φάκελο με τα VM (VirtualBox VMs). Αφού το κάνετε αυτό, εκτελέστε την εντολή:
VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img

Στο σενάριο εδώ, έχουμε εγκαταστήσει ένα σύστημα με Ubuntu και θέλουμε να το μεταφέρουμε σε έναν υπολογιστή. Το αρχείο ubuntu.img το αντιγράφουμε σε ένα δίσκο και μετά με live usb και την εντολή dd το μεταφέρουμε σε υπολογιστή.

ΑΝΤΙΣΤΡΟΦΗ ΔΙΑΔΙΚΑΣΙΑ

Μπορείτε να κάνετε και την αντίστροφη διαδικασία. Εάν έχετε ένα πλήρως λειτουργικό σύστημα, μπορείτε να δημιουργήσετε ένα αρχείο img (με την εντολή dd). Στη συνέχεια μετατρέπετε το img σε vdi με την παρακάτω εντολή:
VBoxManage convertdd opensuse.img opensuse.vdi

Στη συνέχεια δημιουργούμε μια νέα εικονική μηχανή:
Δημιουργία εικονικής μηχανής στο Virtual Box
Σειρά έχει ο καθορισμός της μνήμης (8 είναι το μινιμουμ αλλά αν εσείς έχετε λιγότερη, προσαρμόστε ανάλογα):
Καθορισμός μνήμης στο Virtual Box
Τέλος η εισαγωγή του αρχείου vdi που δημιουργήσατε ως υπάρχοντας σκληρός δίσκος:
Εισαγωγή αρχείου vdi στο Virtual Box ως νέος σκληρός δίσκος
Περιμένετε λίγο μέχρι να το περάσει στην λίστα με τα εικονικά λειτουργικά που έχετε εγκατεστημένα. Τα στοιχεία του χρήστη θα είναι αυτά που είχατε κατά τη δημιουργία του img.

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

Feb 23rd, 2021

5 συμβουλές για να μάθετε μια νέα γλώσσα προγραμματισμού

5 συμβουλές για να μάθετε μια νέα γλώσσα προγραμματισμού

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

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

Ακόμη μια αλήθεια είναι ότι εάν γνωρίζεις μια γλώσσα προγραμματισμού, είναι εύκολο να μάθεις την επόμενη. Προφανώς γνωρίζεις τον τρόπο εκμάθησης και επίσης πολλές τεχνικές μπορεί να είναι ίδιες.

Ας δούμε όμως κάποια tips για το πως μπορείτε να μάθετε μια ΝΕΑ γλώσσα προγραμματισμού:

1. ΑΠΟΦΑΣΙΣΤΕ ΤΟ ΜΕΣΟ ΕΚΜΑΘΗΣΗΣ


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

Μαθήματα online (δωρεάν και επί πληρωμή):
https://www.w3schools.com/
https://www.udemy.com/
https://www.coursera.org/
Πολλές σειρές στο Youtube (τόσο στα Ελληνικά, όσο και στα Αγγλικά)

2. ΝΑ ΜΑΘΑΙΝΕΤΕ ΛΙΓΟ ΚΑΘΕ ΜΕΡΑ


Αφού αποφασίσατε το μέσο εκμάθησης, σειρά έχει η συχνότητα. Προσπαθήστε να διαβάζετε από λίγο κάθε μέρα. Αυτό θα είναι πχ 10 λεπτά από τον χρόνο σας; Θα είναι η ολοκλήρωση του κεφαλαίου; Χωρίστε το ανάλογα με τις αντοχές σας.

Θυμηθείτε ότι η συχνότητα είναι πιο σημαντική της ποσότητας. Εάν αφήσετε κάτι, θα σας αφήσει και αυτό.

3. ΑΚΟΛΟΥΘΗΣΤΕ ΤΗΝ ΣΕΙΡΑ ΤΟΥ ΜΕΣΟΥ


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

4. ΠΩΣ ΝΑ ΜΗΝ ΞΕΧΝΑΩ;


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

5. ΞΕΚΙΝΑ ΔΙΚΟ ΣΟΥ PROJECT


Με λίγα λόγια εξάσκηση. Όταν ξεκινάς ένα δικό σου project θα ψάχνεις πως γίνεται μια τεχνική που δεν γνωρίζεις-έμαθες. Θα κάνεις μια αναζήτηση πχ σε stack overflow.

Εσείς μαθαίνετε κάποια γλώσσα προγραμματισμού; Αν ναι, υπάρχουν κάποια tips που θέλετε να τα μοιραστείτε;

Ένωση πολλών εικόνων σε ένα .pdf

ImageMagick

Η ΑΝΑΓΚΗ

Η τηλε-εκπαίδευση μπορεί να ήταν και πολύ βοηθητική για κάποιους, αφού δεν ήταν απαραίτητο να κρατούν σημειώσεις σε χαρτί κατά την ώρα της παράδοσης, αλλά να παρακολουθούν τον καθηγητή και να κατανοούν καλύτερα το αντικείμενο. Η εμπέδωση γίνεται με την επανάληψη των αρχείων που παρέχουν οι καθηγητές μέσω πλαφόρμας ασύγχρονης εκπαίδευσης του κάθε ιδρύματος. Αντί χειρόγραφων σημειώσεων, δίνεται η δυνατότητα της λήψης στιγμιοτύπου οθόνης (screenshot), με ότι πιθανές σημειώσεις έχει γράψει ο καθηγητής. Πως μπορείτε να λάβετε ένα στιγμιότυπο οθόνης; Δείτε παρακάτω για τα διαφορετικά λειτουργικά συστήματα:
  • LINUX: Πατάτε το πλήκτρο PrtScr και ανοίγει το πρόγραμμα λήψης στιγμιοτύπου οθόνης και αποθηκεύει (αυτόματα) όλη την οθόνη σας μέσα στον φάκελο των εικόνων.
  • MAC OSX: Πατήστε το συνδυασμό Command+Shift+3 και σας αποθηκεύει την εικόνα στην επιφάνεια εργασίας σας.
  • Windows: Πατήστε το συνδυασμό Windows key + Print Screen key και θα σας αποθηκεύσει την εικόνα στον φάκελο Εικόνες>Στιγμιότυπα οθόνης.

Όλες αυτές τις εικόνες (συνήθως png), μπορείτε να τις βλέπετε μια-μια με το πρόγραμμα προβολής εικόνων. Είναι όμως καλύτερα να τις προσθέσετε σε ένα αρχείο pdf. Το αρνητικό και στις δυο περιπτώσεις είναι ότι δεν μπορείτε να κάνετε αναζήτηση ενός όρου, αφού είναι εικόνες.

ΤΟ ΠΡΟΒΛΗΜΑ

Μετά από λίγη αναζήτηση στο Internet, η λύση ήταν απλή. Ανοίξτε ένα τερματικό και εκτελέστε την εντολή:
convert *.png out.pdf

Αυτό που κάνει η παραπάνω εντολή είναι να πάρει όλα τα αρχεία με κατάληξη .png και τα προσθέτε σε ένα αρχείο .pdf. Όμως με την εκτέλεση αυτής της εντολής, λάμβανα ένα μήνημα σφάλματος:
convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408. convert: no images defined `output.png' @ error/convert.c/ConvertImageCommand/3288.

Μετά από λίγη αναζήτηση, βρήκα στο stackoverflow παρόμοιο πρόβλημα. Να δούμε τι λύση δώσανε λοιπόν.

Η ΛΥΣΗ

Ουσιαστικά έπρεπε να δικαιώματα εγγραφής στο ImageMagick.
sudo nano /etc/ImageMagick-6/policy.xml

Στην περίπτωσή σας μπορεί να είναι το αρχείο /etc/ImageMagick-7/policy.xml, ανάλογα με την έκδοση του ImageMagick που έχετε.

Ουσιαστικά πρέπει να σβήσετε ένα κομμάτι και να προσθέσετε μια γραμμή. Προσωπικά κράτησα με σχόλιο όπως βλέπετε παρακάτω:

<!--
<policy domain="coder" rights="none" pattern="PS" />
<policy domain="coder" rights="none" pattern="PS2" />
<policy domain="coder" rights="none" pattern="PS3" />
<policy domain="coder" rights="none" pattern="EPS" />
<policy domain="coder" rights="none" pattern="PDF" />
<policy domain="coder" rights="none" pattern="XPS" />
-->

Και μετά πρόσθεσα την παρακάτω γραμμή:

<policy domain="module" rights="read|write" pattern="{PS,PS2,PS3,EPS,PDF,XPS}">

Επειδή οι εικόνες είναι πολλές σε αριθμό, μπορεί να μην σας τις προσθέσει όλες με την πρώτη. Καλύτερα είναι να τις προσθέσετε ανά μάθημα και στο τέλος να ενώσετε τα pdf με την εντολή:
pdfunite *.pdf out.pdf

Αυτό υπάρχει στα εργαλεία poppler-utils. Για περισσότερες πληροφορίες πως μπορείτε να ενώσετε πολλά pdf σε ένα, δείτε σε προηγούμενο άρθρο.

Κοινοποιήστε το παρόν άρθρο σε φίλο σας που προσπαθεί να ενώσει πολλές εικόνες σε ένα pdf. Θα του σώσετε αρκετό χρόνο.

Feb 9th, 2021

4 τρόποι για να ενώσετε πολλά .pdf σε ένα μεγάλο

4 τρόποι για να ενώσετε πολλά .pdf σε ένα μεγάλο

ΤΟ ΠΡΟΒΛΗΜΑ

Έστω ότι συγκεντρώνετε πολλά αρχεία pdf. Είτε σχολή λέγεται αυτό, είτε εργασία; Το πρόβλημα που αντιμετωπίζουν πολλοί είναι η εύρεση της πληροφορίας όταν την χρειάζονται. Σίγουρα μπορεί να γίνει και μέσα από το λειτουργικό σύστημα αλλά αρκετές φορές δεν έχει επιτυχία. Οπότε μια καλή λύση είναι η ένωση σε ένα αρχείο, όλων των pdf που έχουν το ίδιο αντικείμενο, ώστε να αναζητάτε μέσα από το πρόγραμμα ανάγνωσης pdf. Εδώ θα εξετάσουμε πως μπορείτε με μια κίνηση, να ενώσετε πολλά pdf.

Η ΛΥΣΗ

Μέχρι στιγμής, βρήκα 4 λύσεις:

ΛΥΣΗ 1:

Εγκαταστήστε το poppler-utils με την παρακάτω εντολή:
#Σε openSUSE
sudo zypper in poppler-utils

#Σε Ubuntu/Linux Mint
sudo apt install poppler-utils

#Σε Arch Linux
sudo pacman -S poppler

Στη συνέχεια, στον κατάλογο με τα pdf, εκτελέστε την εντολή:
pdfunite *.pdf out.pdf


ΛΥΣΗ 2:

Εγκαταστήστε το πρόγραμμα pdftk με την παρακάτω εντολή:
#Σε openSUSE
sudo zypper in pdftk

#Σε Ubuntu/Linux Mint
sudo apt install pdftk

#Σε Arch Linux
sudo pacman -S pdftk

Έστω ότι είστε φοιτητής και έχετε οργανώσει τις διαλέξεις ανά φάκελο (με ότι πιθανά αρχεία να σας έχουν δώσει). Δώστε την παρακάτω εντολή:
pdftk lecture?/*.pdf cat output lecturesall.pdf

Αυτό που θα κάνει είναι να μπει σε ένα ένα φάκελο, θα δει αν έχει κάποιο αρχείο pdf και θα το ενώσει σε ένα pdf.

ΛΥΣΗ 3:

Χρήση latex. Εγκαταστήστε το παρακάτω πακέτο.
#Σε openSUSE
sudo zypper in texlive-latex-base

#Σε Ubuntu/Linux Mint
sudo apt install texlive-latex-base

#Σε Arch Linux
sudo pacman -S texlive-latexextra

Εστω ότι έχετε τα αρχεία file1.pdf και file2.pdf στον ίδιο φάκελο. Φτιάξτε το αρχείο output.tex με το περιεχόμενο:
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-]{file1}
\includepdf[pages=-]{file2}
\end{document}

Εκτελέστε την εντολή:
pdflatex output.tex


ΛΥΣΗ 4:

Μπορείτε να κατασκευάσετε ένα script στο Nautilus:
Εγκαταστήστε το πακέτο (εάν δεν το έχετε):
#Σε openSUSE
sudo zypper in poppler-utils

#Σε Ubuntu/Linux Mint
sudo apt install poppler-utils

#Σε Arch Linux
sudo pacman -S poppler

Κατασκευάστε ένα αρχείο μέσα στον κατάλογο nautilus/scripts
nano ~/.local/share/nautilus/scripts/merge_pdfs.sh

Στην συνέχεια προσθέστε το παρακάτω κώδικα:
#!/bin/sh
CLEANED_FILE_PATHS=$(echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS | sed 's,.pdf /home/,.pdf\\n/home/,g')
echo $CLEANED_FILE_PATHS | bash -c 'IFS=$'"'"'\n'"'"' read -d "" -ra x;pdfunite "${x[@]}" merged.pdf'

Το αρχείο αυτό κάντε το εκτελέσιμο (πατήστε δεξί πλήκτρο πάντω του > Ιδιότητες > Δικαιώματα > Να επιτρέπεται η εκτέλεση του αρχείου ως προγράμματος). Εναλλακτικά δώστε την παρακάτω εντολή:
chmod +x ~/.local/share/nautilus/scripts/merge_pdfs.sh

Τώρα για να ενώσετε τα αρχεία, φωτίστε τα στον φάκελο στο Nautilus, πατήστε δεξί πλήκτρο > Δέσμες ενεργειών (scripts) και επιλέξτε το merge_pdfs.sh για να σας εξάγει ένα αρχείο pdf.

Εάν βρήκατε κάποιον τρόπο εύκολο στην χρήση, ενημερώστε και τους φίλους σας ώστε να μην παιδεύονται.

Nov 11th, 2020

Εγκατάσταση Code::Blocks σε διανομές GNU/Linux και ρυθμίσεις (αλλαγή θέματος, ρυθμίσεις τερματικού)

Code::Blocks
Το Code::Blocks είναι ένα δωρεάν εργαλείο με περιβάλλον ανάπτυξης κώδικα C, C ++ και Fortran, κατασκευασμένο για να ικανοποιεί τις πιο απαιτητικές ανάγκες των χρηστών του. Είναι σχεδιασμένο να είναι πολύ επεκτάσιμο και πλήρως διαμορφώσιμο.

Στο Code::Blocks μπορούν να ενεργοποιηθούν πολλά πρόσθετα. Για παράδειγμα, η λειτουργία μεταγλώττισης και εντοπισμού σφαλμάτων παρέχεται ήδη από πρόσθετα!

Εδώ θα δούμε πως εγκαθιστάτε το Code::Blocks πολύ εύκολα σε διανομές Linux. Για αρχή, υπάρχει η ιστοσελίδα λήψεων εδώ.

Εγκατάσταση με χρήση flatpak

Η πιο σίγουρη λύση για εγκατάσταση είναι μέσω του flatpak.
Ανοίξτε τερματικό και εκτελέστε την εντολή:
sudo flatpak install org.codeblocks.codeblocks

Εγκατάσταση σε openSUSE

Στο openSUSE η εγκατάσταση είναι πολύ απλή. Θα χρησιμοποιήσετε την τεχνολογία 1-click-install. Μετακινηθείτε στην σελίδα:

https://software.opensuse.org/package/codeblocks

Εκεί επιλέξτε την έκδοση που έχετε εγκατεστημένη (μπορείτε να πατήσετε και εδώ επάνω στην έκδοσή σας): Και θα ανοίξει ένα ymp αρχείο, θα προσθέσει το αποθετήριο devel:tools:ide, από όπου θα γίνει η εγκατάσταση του Code:Blocks.

Εναλλακτικά με τερματικό, μπορείτε να χρησιμοποιήσετε τις εντολές:

- Για openSUSE Leap 15.2:
su -
zypper ar http://download.opensuse.org/repositories/devel:/tools:/ide/openSUSE_Leap_15.2/ devel:tools:ide
zypper in codeblocks

Εγκατάσταση σε Arch Linux

Ανοίξτε το τερματικό και πληκτρολογήστε:
sudo pacman -S codeblocks

Εγκατάσταση σε Ubuntu/Linux Mint

Σε Ubuntu, θα βρείτε τα πάντα στην διεύθυνση https://launchpad.net/~codeblocks-devs. Μάλιστα εντύπωση που έκανε που το διατηρεί Ελληνας.

Εδώ θα πρέπει να προσθέσετε το αποθετήριο και μετά να κάνετε μια ενημέρωση των αποθετηρίων, καταλήγοντας στην εγκατάσταση με τις παρακάτω εντολές:
sudo add-apt-repository ppa:codeblocks-devs/release
sudo apt-get update
sudo apt-get install codeblocks codeblocks-contrib


Ελπίζουμε να μην βρήκατε ιδιαίτερα δύσκολη την εγκατάσταση του Code::Blocks.
Code::Blocks
Αφού εγκαταστήσαμε το Code::Blocks και γράψαμε τους πρώτους κώδικες σε C, επόμενη κίνηση ήταν να βρούμε ένα όμορφο χρώμα για τα παράθυρά μας, που να ταιριάζει και να μην κουράζει το μάτι. Δυστυχώς από τα υπάρχοντα, δεν μου άρεσε κάποιο, οπότε ξεκίνησε το ψάξιμο για αλλαγή του θέματος.

Στο αρχείο default.conf, έχει πολλά θέματα, όμως που έπρεπε νααποθηκευτούν; Όπως είδατε, υπάρχουν δυο τρόποι.

1. Εάν το εγκαταστήσετε από το πακέτο ή αποθετήριο της διανομής σας, τότε μπορείτε να αποθηκεύσετε το αρχείο default.conf στον φάκελο όπως βλέπετε παρακάτω:
# Κρατήστε αντίγραφο ασφαλείας
cp ~/.codeblocks/default.conf ~/.codeblocks/default.conf.bak

# Αντιγράψτε το αρχείο default.conf από τον φάκελο που το κατεβάσατε, στον παρακάτω φάκελο
cp default.conf ~/.codeblocks/

2. Εάν το εγκαταστήσετε από το αποθετήριο flatpak, τότε ο φάκελος είναι διαφορετικός. Αποθηκεύστε το αρχείο default.conf στον φάκελο όπως βλέπετε παρακάτω:
# Κρατήστε αντίγραφο ασφαλείας
cp ~/.var/app/org.codeblocks.codeblocks/config/codeblocks/default.conf ~/.var/app/org.codeblocks.codeblocks/config/codeblocks/default.conf.bak

# Αντιγράψτε το αρχείο default.conf από τον φάκελο που το κατεβάσατε, στον παρακάτω φάκελο
cp default.conf ~/.var/app/org.codeblocks.codeblocks/config/codeblocks/

Mετακινηθείτε στο Settings->Editor->Syntax highlighting->Colour theme. Ορίστε το στο επιθυμητό θέμα.

Τέλος, για να φαίνονται λίγο μεταλύτερα τα γράμματα στο τερματικό, μετακινηθείτε το Settings>Environment και στο Terminal to launch console programs και αλλάξτε το στο παρακάτω:
xterm -fa 'Monospace' -fs 12 -bg black -fg white -geometry 132x50 -T $TITLE -e


Θα μεγαλώσουν τα γράμματα (αλλάξτε το μέγεθος 12) αλλά και το παράθυρο.

Εγκατάσταση Μαθηματικού Λογισμικού SageMath σε διανομές GNU/Linux

SageMath Logo

ΠΡΟΛΟΓΟΣ

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

Στον αντίποδα, υπάρχουν μαθηματικά λογισμικά ανοικτού κώδικα που μπορούν να αντικαταστήσουν τα εμπορικά λογισμικά στην διαδικασία της διδασκαλίας. Ίσως, να μπορεί να γίνει η αντικατάσταση αυτή και στον παραγωγικό τομέα, αφού οι περισσότεροι απόφοιτοι θα γνωρίζουν τον χειρισμό ΜΟΝΟ των λογισμικών ανοικτού κώδικα. Ένα από αυτά είναι το SageMath. Εδώ θα δούμε πως μπορεί να εγκατασταθεί στο Linux.

ΕΙΣΑΓΩΓΗ

Το Sage (System for Algebra and Geometry Experimentation) είναι ένα ελεύθερο (δωρεάν) λογισμικό μαθηματικών ανοιχτού κώδικα που υποστηρίζει αριθμητικούς υπολογισμούς, και γενικά την έρευνα και τη διδασκαλία στην άλγεβρα, στη γεωμετρία, στην θεωρία αριθμών, στην κρυπτογραφία, και σε συναφείς τομείς. Καλείται συχνά και Sagemath καθώς η λέξη Sage είναι πολύ κοινή.

Συνδυάζει τις δυνατότητες πολλών υπαρχόντων πακέτων ανοιχτού κώδικα (NumPy, SciPy, matplotlib, Sympy, Maxima, GAP, FLINT, R κ.τ.λ.) σε µία κοινή διεπαφή βασισμένη στη γλώσσα Python. Είναι λογισμικό γενικής χρήσης, με δυνατότητες αναλυτικών και αριθμητικών υπολογισμών καθώς και γραφικών.

Ο γενικός στόχος του Sage, σύμφωνα με τον δημιουργό του, είναι να δημιουργηθεί μια βιώσιμη, δωρεάν, ανοιχτού κώδικα εναλλακτική λύση απέναντι στα μαθηματικά λογισμικά: Maple, Mathematica, Magma, και MATLAB.

Η πρώτη δημόσια έκδοση παρουσιάστηκε τον Φεβρουάριο του 2005 ως ελεύθερο λογισμικό. Ο δημιουργός της είναι ο William Stein, καθηγητής μαθηματικών στο University of Washington.

Εγκατάσταση σε Debian/Ubuntu/Linux Mint

Η εγκατάσταση σε Debian/Ubuntu είναι εύκολη, καθώς υπάρχουν στο αποθετήριο. Μπορείτε εύκολα να τα εγκαταστήσετε με την εντολή:
sudo apt install sagemath sagemath-jupyter sagemath-doc-en

Ο διακομιστής Sage Jupyter Notebook θα εκκινήσει αμέσως μόλις εκκινήσετε την εφαρμογή, είτε από το GUI είτε από το τερματικό.

Εγκατάσταση σε Debian/Ubuntu από συμπιεσμένο αρχείο

1. Μεταβείτε στην ιστοσελίδα των λήψεων και κατεβάστε την έκδοση που αντιστοιχεί στο λειτουργικό σας.

2. Στη συνέχεια αποσιμπιέστε το αρχείο .tar.bz2 που κατεβάσατε.
ΣΥΜΒΟΥΛΗ: Φτιάξτε ένα κατάλογο bin μέσα στον προσωπικό σας φάκελο. Εκεί να αποθηκεύετε τα προγράμματα που θέλετε να εγκαταστήσετε (όπως το SageMath). Με αυτό τον τρόπο θα γνωρίζετε ότι πρόκειται για προγράμματα και δεν θα τον πειράζετε. Επίσης δεν θα είστε σίγουροι ότι δεν υπάρχει κάποιος Ελληνικός χαρακτήρας στο path που μπορεί να προκαλέσει κάποιο πρόβλημα.

3. Αφού το αποσυμπιέσατε, μεταβείτε στον κατάλογο SageMath και εκτελέστε το πρόγραμμα sage
./sage

4. Την πρώτη φορά που θα εκτελεστεί το Sage θα σας δώσει μια εικόνα όπως το παρακάτω μήνυμα:
Rewriting paths for your new installation directory
===================================================

This might take a few minutes but only has to be done once.

patching ... (long list of files)

Από εδώ και πέρα, δεν μπορείτε να μετακινήσετε το Sage.

5. Τελευταία κίνηση είναι η δημιουργία συντόμευσης ώστε να μπορείτε να εκτελέσετε το Sage από το τερματικό. Τώρα μπορείτε να δημιουργήσετε την συντόμευση με την εντολή:
$ sudo ln -s /path/to/SageMath/sage /usr/local/bin/sage

Όπου /path/to/ είναι το πλήρες path που εγκαταστήσατε το SageMath.

Μπορείτε να βρείτε περισσότερες πληροφορίες στο wiki του Ubuntu.

Εγκατάσταση σε Arch Linux

1. Εγκατάσταση με την εντολή:
sudo packam -S sagemath sagemath-jupyter sagemath-doc

2. Το SageMath παρέχει και το Jupyter Notebook. Εκτελέστε την εντολή:
$ jupyter notebook

και επιλέξτε "SageMath" από το αναδυόμενο μενού "New...".

Εκκίνηση

Εκτέλεση στο τερματικό με την εντολή:
$ sage -c "notebook(automatic_login=True)"

Μεταβείτε στην διεύθυνση http://localhost:8080/ και εκεί θα μπορείτε χρησιμοποιήσετε το Jupiter Notebook. Επειδή θα χρησιμοποιείτε μόνο εσείς το SageMath, μπορείτε να το εκτελέσετε χωρίς κωδικό.

Για περισσότερες πληροφορίες, μπορείτε να δείτε το Arch Linux wiki.

Εγκατάσταση και χρήση Docker

Όμως τι γίνεται αν έχετε κάποια άλλη διανομή (όπως έγώ με openSUSE); Η λύση είναι η χρήση Docker.

Ψάχντοντας στο hub, βρήκα την διευθυνση:
https://hub.docker.com/r/sagemath/sagemath/

Οπότε εδώ θα δούμε πως θα κάνουμε λήψη, ενεργοποίηση και χρήση του SageMath.

1. Λήψη του θα την κάνετε με την εντολή:
sudo docker pull sagemath/sagemath


2. Αφού κατέβει, μπορείτε να δείτε την λίστα με τα images με την εντολή:
sudo docker images


3. Εκκίνηση του SageMath μαζί με το Jupyter Notebook.
sudo docker run -p8888:8888 sagemath/sagemath:latest sage-jupyter


Αφού εκτελεστεί, δείτε λίγο τα μηνύματα που θα βγάλει. Θα σας εμφανίσει ένα token. Αυτό θα το χρειαστείτε για να κάνετε είσοδο από την διεύθυνση http://localhost:8888 ή την τύπου http://IP:8888.
SageMath στον Browser

4. Αφού τελειώσετε, πρέπει να τερματίσετε τον server και να τερματίσετε το docker.

Αυτό γίνεται πολύ εύκολα με μια εντολή:

sudo docker ps | grep sagemath | awk '{print $1}' | xargs docker stop

Εάν παρόλα αυτά δεν δουλέψει, μπορείτε να τερματίσετε το container με την παρακάτω διαδικασία.
Θα βρείτε το CONTAINER_ID με την εντολή:
sudo docker container ps


Δείτε το ID της και μπορείτε να τερματίσετε με το ID της με την εντολή (αν πχ το ID είναι 3b40632adb78):
sudo docker container stop 3b40632adb78


ONLINE

Υπάρχει και η δυνατότητα να μην εγκαταστήσετε τιποτα. Μπορείτε να βρείτε online τις εξής λύσεις:

1. https://cocalc.com/: Η λύση αυτή είναι επι πληρωμή. Υπάρχει το δωρεάν πλάνο αλλά δεν είναι και τόσο γρήγορο. Μπορεί να περιμένετε αρκετή ώρα μέχρι να έχετε αποτέλεσμα.
2. https://sagecell.sagemath.org/: Ακόμα μια λύση, καλύτερη από το cocalc.

Σημειωματάριο PORTO

Εναλλακτικά του Jupyter μπορείτε να εγκαταστήσετε το Porto από το flathub.

https://flathub.org/apps/details/org.cvfosammmm.Porto

Ή εκτελέστε την εντολή
sudo flatpak install org.cvfosammmm.Porto
Porto notebook


Δείτε πως μπορείτε να κάνετε εγκατάσταση από το πηγαίο αρχείο.

Όρια φόρτισης μπαταρίας και διαχείριση ισχύος στο openSUSE με TLP

Λάμπα openSUSE
Οι μπαταρίες είναι ένα σημαντικό στοιχείο στη βιωσιμότητα των φορητών υπολογιστών. Αξίζει ειδική μεταχείριση για την παράταση της διάρκειας ζωής τους. Μια ειδική μεταχείριση λοιπόν είναι με την προσαρμογή των ορίων φόρτισης μπαταρίας.

Τα όρια φόρτισης μπαταρίας είναι ένας μηχανισμός διακοπής φόρτησης, προτού να φορτιστεί πλήρως η μπαταρία και συνέχιση φόρτησης όταν αρχίσει να αδειάζει. Χωρίς ποτέ φόρτιση της μπαταρίας να πάει στο 100%, η διάρκεια ζωής της μπαταρίας μεγαλώνει. Ρυθμίστε για διακοπή της φόρτισης, εάν η χωρητικότητα της μπαταρίας είναι 85% και επανέναρξη όταν η μπαταρία είναι 75%. Μπορείτε να προσαρμόσετε αυτήν την ποσοστιαία τιμή όπως θέλετε.
START_CHARGE_THRESH_BAT0="75"
STOP_CHARGE_THRESH_BAT0="85"

START_CHARGE_THRESH_BAT1="75"
STOP_CHARGE_THRESH_BAT1="85"

Αυτή η δυνατότητα διαχείρισης ενέργειας είναι αρκετά ολοκληρωμένη όταν χρησιμοποιείτε το ThinkVantage σε λειτουργικό σύστημα Windows. Προφανώς, το ThinkVantage είναι ένα ξεχωριστό χαρακτηριστικό της σειράς φορητών υπολογιστών Thinkpad. Το λογισμικό ThinkVantage δεν είναι διαθέσιμο στο λειτουργικό σύστημα GNU / Linux.

Μία εφαρμογή που μπορεί να εκτελέσει το καθήκον του καθορισμού ορίων φόρτισης μπαταρίας είναι το TLP. Αυτό το λογισμικό είναι άμεσα διαθέσιμο σε πολλά αποθετήρια διανομών GNU / Linux.

Εγκατάσταση TPL

Βλέποντας στον επίσημο ιστότοπο TLP στον σύνδεσμο https://linrunner.de/tlp/ , τα βήματα εγκατάστασης και η εκτέλεση του είναι αρκετά εύκολα.
sudo zypper in tlp-rdw
sudo systemctl enable tlp

Διαμόρφωση TLP

Η διαμόρφωση του TLP γίνεται αλλάζοντας τις ρυθμίσεις στο αρχείο του TLP στη διεύθυνση: /etc/tlp.conf. Χρησιμοποιήστε το αγαπημένο σας πρόγραμμα επεξεργασίας κειμένου. Εδώ είναι η διαμόρφωση η δικιά μου:
--- TLP 1.3.1 --------------------------------------------
+++ Configured Settings:
/etc/tlp.conf L0026: TLP_ENABLE="1"
/etc/tlp.conf L0038: TLP_PERSISTENT_DEFAULT="0"
/etc/tlp.conf L0050: DISK_IDLE_SECS_ON_AC="0"
/etc/tlp.conf L0051: DISK_IDLE_SECS_ON_BAT="2"
/etc/tlp.conf L0056: MAX_LOST_WORK_SECS_ON_AC="15"
/etc/tlp.conf L0057: MAX_LOST_WORK_SECS_ON_BAT="60"
/etc/tlp.conf L0100: CPU_ENERGY_PERF_POLICY_ON_AC="balance_performance"
/etc/tlp.conf L0101: CPU_ENERGY_PERF_POLICY_ON_BAT="balance_power"
/etc/tlp.conf L0128: SCHED_POWERSAVE_ON_AC="0"
/etc/tlp.conf L0129: SCHED_POWERSAVE_ON_BAT="1"
/etc/tlp.conf L0135: NMI_WATCHDOG="0"
/etc/tlp.conf L0150: DISK_DEVICES="sda"
/etc/tlp.conf L0158: DISK_APM_LEVEL_ON_AC="254 254"
/etc/tlp.conf L0159: DISK_APM_LEVEL_ON_BAT="128 128"
/etc/tlp.conf L0198: SATA_LINKPWR_ON_AC="med_power_with_dipm max_performance"
/etc/tlp.conf L0199: SATA_LINKPWR_ON_BAT="med_power_with_dipm min_power"
/etc/tlp.conf L0219: AHCI_RUNTIME_PM_TIMEOUT="15"
/etc/tlp.conf L0264: WIFI_PWR_ON_AC="off"
/etc/tlp.conf L0265: WIFI_PWR_ON_BAT="on"
/etc/tlp.conf L0270: WOL_DISABLE="Y"
/etc/tlp.conf L0276: SOUND_POWER_SAVE_ON_AC="0"
/etc/tlp.conf L0277: SOUND_POWER_SAVE_ON_BAT="1"
/etc/tlp.conf L0283: SOUND_POWER_SAVE_CONTROLLER="Y"
/etc/tlp.conf L0291: BAY_POWEROFF_ON_AC="0"
/etc/tlp.conf L0292: BAY_POWEROFF_ON_BAT="0"
/etc/tlp.conf L0302: RUNTIME_PM_ON_AC="on"
/etc/tlp.conf L0303: RUNTIME_PM_ON_BAT="auto"
/etc/tlp.conf L0323: USB_AUTOSUSPEND="1"
/etc/tlp.conf L0342: USB_BLACKLIST_PHONE="0"
/etc/tlp.conf L0354: USB_BLACKLIST_WWAN="0"
/etc/tlp.conf L0374: RESTORE_DEVICE_STATE_ON_STARTUP="0"
/etc/tlp.conf L0442: NATACPI_ENABLE="1"
/etc/tlp.conf L0443: TPACPI_ENABLE="1"
/etc/tlp.conf L0444: TPSMAPI_ENABLE="1"
/etc/tlp.conf L0032: TLP_DEFAULT_MODE="AC"
/etc/tlp.conf L0076: CPU_SCALING_GOVERNOR_ON_AC="powersave"
/etc/tlp.conf L0077: CPU_SCALING_GOVERNOR_ON_BAT="powersave"
/etc/tlp.conf L0425: START_CHARGE_THRESH_BAT0="80"
/etc/tlp.conf L0426: STOP_CHARGE_THRESH_BAT0="90"
/etc/tlp.conf L0431: START_CHARGE_THRESH_BAT1="80"
/etc/tlp.conf L0432: STOP_CHARGE_THRESH_BAT1="90"

Εκτέλεση TLP

Αφού πραγματοποιήσετε τη ρύθμιση που θέλετε, το TLP είναι έτοιμο για εκτέλεση
sudo systemctl restart tlp
sudo tlp start #εκκίνηση tlp
sudo tlp-stat -s #προβολή κατάστασης tlp
sudo tlp-stat -c #για να δείτε ποια ρύθμιση εκτελείται

Υλικό ανάγνωσης:
https://www.tecmint.com/tlp-increase-and-optimize-linux-battery-life/

Πώς να κάνετε ερωτήσεις στο φόρουμ, στο facebook και γενικά όπου ζητάτε βοήθεια

Πώς να κάνετε ερωτήσεις στο facebook όταν ζητάτε βοήθεια

Πώς μπορώ να κάνω μια καλή ερώτηση σε ένα φόρουμ;

Παλιότερα τα φόρουμ ήταν τόπος επίλυσης πολλών προβλημάτων των χρηστών. Με την έλευση των μέσων κοινωνικής δικτύωσης, οι περισσότεροι ρωτούν σε ομάδες ειδικές για την εκάστοτε διανομή/πρόγραμμα, ώστε να έχουν γρηγορότερη απάντηση. Προσωπικά έχω λύσει αλλά μου έχουν λυθεί πολλές απορίες σε πολλά forum.
Ένα από τα αξιοσημείωτα forum είναι το Java Ranch. (http://www.coderanch.com/how-to/java/HowToAskQuestionsOnJavaRanch)

Γιατί σας αναφέρω το συγκεκριμένο forum; Επειδή έχουν μια καλή παράδοση να κάνουν καλή ερώτηση.

Το να περιγράψει κανείς επακριβώς το πρόβλημα που αντιμετωπίζει, φαίνεται να είναι κάτι που απουσιάζει σε πολλά forum. Όχι μόνο στην Ελλάδα αλλά και στο εξωτερικό. Βέβαια από την άλλη, υπάρχει η άποψη ότι "αν γνώριζα πως να κάνω μια αναλυτική ερώτηση, θα μπορούσα να βρώ και την λύση από μόνος μου". Δεν είναι ακριβώς έτσι. Θα μοιραστώ έναν μικρό οδηγό σχετικά με τον τρόπο υποβολής ερωτήσεων σε ένα forum που θα βοηθήσουν τους πεπειραμένους να σας δώσουν μια άμεση και γρήγορη απάντηση.

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

Ο πρώτος κανόνας για να λάβετε μια καλή απάντηση είναι

«Δείξτε κάποια προσπάθεια»

Να θυμάστε ότι τα μέλη του forum δεν πληρώνονται για να απαντήσουν στις ερωτήσεις σας. Θα αφιερώσουν το χρόνο τους σε εσάς, οπότε βεβαιωθείτε ότι έχετε καταβάλει τουλάχιστον τόση προσπάθεια στην ερώτηση όσο περιμένετε να σας δώσουν τα μέλη που θα ασχοληθούν. Μην υποθέτετε ότι ο χρόνος των άλλων ανθρώπων είναι λιγότερο πολύτιμος από τον δικό σας που έχετε τη δυνατότητα να κάνετε «τηλεγραφικές» ερωτήσεις ώστε να «κερδίσετε» χρόνο - πράγμα που αναγκάζει τα μέλη του forum να χρειαστεί σπαταλήσουν χρόνο για να καταλάβουν τι ζητάτε.

«Να είστε ακριβής»

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

«Πρώτα αναζήτηση»

Χρησιμοποιήστε το πεδίο αναζήτησης στο forum. Χρησιμοποιήστε το Google. Πείτε τι έχετε αναζητήσει και ίσως να σας δωθεί μια υπόδειξη για το τι να αναζητήσετε. Προσωπικά μισώ όταν μπορείτε να κάνετε αντιγραφή της απλής ερώτηση του θέματος που γράψατε στην ανάρτησή σας στο forum, και επικόληση στο Google και να λάβετε 10-15 καλές απαντήσεις. (Και ναι, ακόμη και αν χρησιμοποιήσετε παράθυρο ανώνυμης περιήγησης του Chrome). Μην προσβληθείτε εάν κάποιος δημοσιεύσει έναν σύνδεσμο https://lmgtfy.com.

«Ηρεμήστε»

Λοιπόν, βιάζεστε να λύσετε ένα πρόβλημα. Δεν βοηθά να γράψετε ΜΕ ΚΕΦΑΛΑΙΑ ΓΡΑΜΜΑΤΑ. Δεν βοηθά να γράψετε ΕΠΕΙΓΟΝ και ASAP (το γρηγορότερο δυνατό). Σε κανέναν δεν αρέσει όταν προσπαθείτε να του μεταφέρετε το άγχος σας. Αποκτήστε μια Rubber Duck. Είναι εκπληκτικό πόσο καλό είναι το Rubber Duck που λύνει προβλήματα. (Ψάξτε στο Google για Rubber Duck Debugging). Εάν είναι πραγματικά επείγουσα ερώτηση και κάποιος την δει μια ημέρα μετά την ανάρτησή της, νομίζω γενικά ότι θα λάβετε την απάντηση αργοπορημένα ούτως ή άλλως.

«Κάντε υπομονή»

Μην πηγαίνετε στην ανάρτησή σας στην κορυφή γράφοντας «Κάποιος;». Οι 24 ώρες δεν είναι πολύς χρόνος για να περιμένετε μια απάντηση. Ενώ περιμένετε, θα μπορούσατε να «Δείξετε κάποια προσπάθεια». Είναι εντάξει να γράψετε μια απάντηση στην ανάρτησή σας εάν έχετε νέες πληροφορίες όπως "Βρήκα αυτό το άρθρο, αλλά μπορεί κάποιος να μου εξηγήσει τι εννοούν με το Χ;".

«Γράψτε στο θέμα μια πρόταση που να βγάζει νόημα»

Αυτό έχει να κάνει πολύ με το «Έκανα μια προσπάθεια». Αυτός είναι ο τρόπος διαφήμισης της ερώτησής σας. Το "REACT ΠΡΟΒΛΗΜΑ" δεν είναι καλό θέμα. "Πού μπορώ να βρω εγχειρίδια για React;" είναι καλύτερο. Οι λάτρεις του φόρουμ αγαπούν μια πρόκληση, οπότε βεβαιωθείτε ότι το θέμα σας είναι «δύσκολο».

«Πείτε τις λεπτομέρειες»

Θέλουμε τις λεπτομέρειες, όλες τις λεπτομέρειες. Αν γράψετε ένα ξερό «Το πρόγραμμά μου εμφανίζει ένα σφάλμα» θα οδηγήσει στην ερώτηση «Ποιο σφάλμα;».
Αν πείτε «Το πρόγραμμά μου δίνει ένα NullPointerException στη γραμμή 13. Παρακάτω είναι ο κώδικας ...» είναι πολύ καλύτερο.

Πρέπει να είστε σε θέση να περιγράψετε:

Λεπτομερής περιγραφή του προβλήματος
  • τι κάνατε
  • τι περιμένατε να συμβεί
  • γιατί περιμένατε να συμβεί
  • γιατί το χρειάζεστε για να συμβεί
  • αυτό που συνέβη στην πραγματικότητα και γιατί αυτό που συνέβη είναι πρόβλημα για εσάς

Μήνυμα λάθους
  • Ηλεκτρονικός υπολογιστής (χαρακτηρηστικά του, σε περίπτωση ερώτησης σχετικά με το λειτουργικό σύστυμα)
  • Αριθμοί έκδοσης των σχετικών βιβλιοθηκών, JDK, εργαλεία, λειτουργικό σύστημα κ.λπ.
  • Αποσπάσματα κώδικα
  • Ίχνος στοίβας
  • Τι άλλο δοκιμάσατε / τι λειτούργησε / τι δεν λειτούργησε
99 φορές στα 100, έχω λύσει προσωπικό πρόβλημα όταν έχω απαντήσει στις ερωτήσεις.

«Χρησιμοποιήστε ολόκληρες λέξεις με προτάσεις»

Αν προσπαθείτε να γράψετε κάτι τηλεγραφικά όπως γράφετε ένα SMS, κάντε το με τους φίλους σας αν θέλετε. Το ίδιο με τη χρήση του "h4x0r353". Χρησιμοποιώντας κανονικές προτάσεις και λέξεις, βοηθάτε και τις μηχανές αναζήτησης αλλά και γενικά τις αναζητήσεις άλλων χρηστών με το ίδιο πρόβλημα.

«Αναφέρετε τις πηγές σας»

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

«Δημοσιεύστε κείμενο και όχι στιγμιότυπα οθόνης»

Κατά την ανάρτηση κώδικα, μηνυμάτων μεταγλωττιστή ή πραγματικά οτιδήποτε στα φόρουμ, δημοσιεύστε κείμενο χρησιμοποιώντας ετικέτες κώδικα αντί για συνημμένα στιγμιότυπα οθόνης. Εναλλακτικά χρησιμοποιήστε μια υπηρεσία όπως το pastebin dot com.
Όταν αφορά κώδικα, τα στιγμυότυπα οθόνης απαιτούν από τους χρήστες να τα κατεβάσουν στους υπολογιστές του (κάτι που είναι απρόθυμοι να το κάνουν), να ψάχνουν στις μηχανές αναζήτησης με λέξεις κλειδιά του κώδικά σας και στην χειρότερη να πρέπει να δακτυλογραφήσουν τον κώδικά σας σε αρχείο για να δοκιμάσουν. Αυτό τους ωθεί στο να μην σας βοηθήσουν καθόλου.
Τα στιγμιότυπα οθόνης είναι συμπληρωματικά. Σε περιπτώσεις κώδικα, προσθέστε και το στιγμιότυπο οθόνης γιατί μπορεί να έχετε κάνει κάποιο ορθογραφικό λάθος που να φαίνεται και στην φωτογραφία. Τώρα εάν αφορά κάποιο πρόβλημα του λειτουργικού συστήματος και κάποιας συσκευής, και εδώ θα βοηθήσει πολύ η φωτογραφία αλλά εάν σας ζητήσουν να δώσετε το αποτέλεσμα μιας εντολής, αυτό σίγουρα πρέπει να είναι σε κείμενο.

«Πείτε ευχαριστώ»

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

«Χρησιμοποιήστε το δικό σας όνομα»

Προτιμώ να απαντήσω σε μια ερώτηση του "Stathis Iosifidis" παρά στο "savra". Μου αρέσει να μιλάω σε ανθρώπους.

«Μην ουρλιάζετε»

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

«Δεν χρειάζεται να πείτε συγγνώμη»

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

EDIT: (Παραθέτω από το Facebook όπως σωστά επισήμανε η Ελένη Σακελλάρη)

«Διαβάζουμε ξανά το κείμενο της ερώτησης»

Είτε ρωτάμε, είτε απαντάμε, πριν πατήσουμε το send, ξαναδιαβάζουμε αυτό που γράψαμε. Γιατί;
  • α) μπορεί να το γράψαμε βιαστικά ή συγκεχυμένα όπως είναι στο μυαλό μας και να μην βγάζει νόημα αν το διαβάσει άλλος.
  • β) απευθυνόμαστε σε αγνώστους (με τους φίλους μας έχουμε άλλον κώδικα επικοινωνίας, μας ξέρουν. Πίσω από αυτό που τους γράφουμε βλέπουν ακόμα και τη γκριμάτσα μας ή ακούνε τη φωνή μας). Με τους αγνώστους είναι αλλιώς, οπότε καλό είναι να ξαναδιαβάσουμε τι γλώσσα, τόνο κλπ χρησιμοποιούμε.
Έτσι, ακόμα και για μια μικρή παραγραφούλα ακολουθούμε τον κανόνα της αρθρογραφίας: 40% σκέφτομαι - 20% γράφω - 40% ξαναδιαβάζω και διορθώνω.

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

Σχετικά με αυτό το θέμα μπορείτε να βρείτε στη πολλά στη διεύθυνση http://www.catb.org/~esr/faqs/smart-questions.html.

Επίσης δείτε και το παραπλήσιο άρθρο:
6+1 λάθος διατυπώσεις σε ερωτήσεις αναζήτησης βοήθειας

Το παρόν άρθρο είναι αντεγραμμένο με λίγες τροποποιήσεις από το https://forums.adobe.com/thread/2332684 + δευτερεύουσες τροποποιήσεις.

Γιατί να χρησιμοποιήσω openSUSE;

I love openSUSE


Ένα πράγμα που με ρωτάνε πολλοί, ξανά και ξανά, είναι «Γιατί openSUSE;». Η έννοια της ερώτησης δεν είναι πάντα η ίδια. Μπορεί να σημαίνει: «Γιατί να το χρησιμοποιήσω;», «Γιατί πρέπει να συνεισφέρω στο έργο openSUSE;», «Γιατί το χρησιμοποιείς εσύ;», «Γιατί να μην χρησιμοποιήσω [βάλτε το όνομα κάποιας άλλης διανομής];», αλλά η ερώτηση καταλήγει πάντα στο «Τι ιδιαίτερο έχει η openSUSE;».

Είναι μια καλή ερώτηση, και η δυσκολία στην απάντηση δεν οφείλεται στην έλλειψη καλών λόγων, αλλά στην αφθονία τους, σε συνδυασμό με μια γενική τάση στην κοινότητά openSUSE, που είναι πολύ μετριόφρων.

Εδώ είναι μια προσπάθειά να δούμε μερικούς λόγους για τους οποίους εσείς, ο αναγνώστης, πρέπει να συνεισφέρετε στο έργο openSUSE και να χρησιμοποιείτε το λογισμικό που αναπτύσσει η κοινότητα.


1ος Λόγος: Δεν είμαστε (απλώς) μια διανομή Linux


Κανονικά, το πρώτο πράγμα που σκέφτονται οι άνθρωποι όταν ακούνε το openSUSE είναι η «Τυπική έκδοση της διανομής», όπως το openSUSE Leap (Λήψη ΕΔΩ)

Ωστόσο, το έργο openSUSE παράγει πολλά περισσότερα.

Για αρχή, δεν έχουμε μία, αλλά τεχνικά ΔΥΟ άλλες διανομές Linux που διατηρούμε.

openSUSE Tumbleweed - η εκπληκτική κυλιόμενη έκδοση που καταφέρνει να προσφέρει στους χρήστες του σταθερό, εύχρηστο, λειτουργικό σύστημα Linux, με συνεχή ενημέρωση λογισμικού.
Ιδανικό όχι μόνο για προγραμματιστές, αλλά και για όσους θέλουν το πιο πρόσφατο και καλύτερο λογισμικό, κορυφαίοι ειδικοί του Linux, όπως ο Greg Kroah-Hartman, έχουν δηλώσει ότι οι κυλιόμενες κυκλοφορίες όπως το Tumbleweed αντιπροσωπεύουν το «μέλλον» των διανομών Linux. Το openSUSE είναι το καλύτερο (Διαβάστε το άρθρο Γιατί να χρησιμοποιείσετε openSUSE Tumbleweed) μεταξύ των κυλιόμενων διανομων.
Στην περίπτωσή μου, προτιμώ το Tumbleweed τόσο για την σταθερότητά του αλλά και διότι ως ενεργός μεταφραστής του GNOME, θέλω να έχω πάντα την τελευταία έκδοση του GNOME ώστε να διορθώνω σφάλματα μετάφρασης, έτσι ώστε να επωφελούνται άλλες διανομές που χρησιμοποιούν GNOME.
Αν θέλετε να το δείτε μόνοι σας, κατεβάστε από το ΕΔΩ

openSUSE Leap - Η openSUSE Leap είναι ένας "καινούργιος" τρόπος κατασκευής της openSUSE και είναι ένας νέος τύπος υβριδικής διανομής Linux. Η Leap χρησιμοποιεί την πηγή από την SUSE Linux Enterprise (SLE), η οποία δίνει στην Leap ένα επίπεδο σταθερότητας απαράμιλλο από άλλες διανομές Linux και το συνδυάζει με τις εξελίξεις της κοινότητας για να δώσει στους χρήστες, προγραμματιστές και sysadmins την καλύτερη διαθέσιμη σταθερή εμπειρία Linux.
Η πρώτη κυκλοφορία της Leap ήταν στις 4 Νοεμβρίου 2015, με την κυκλοφορία της openSUSE Leap 42.1. Η Leap θα έχει μικρές κυκλοφορίες και οι χρήστες αναμένεται να κάνουν αναβάθμιση στην τελευταία δευτερεύουσα κυκλοφορία εντός 6 μηνών από τη διαθεσιμότητά της, οδηγώντας σε κύκλο ζωής 18 μηνών συντήρησης και με ενημερώσεις ασφαλείας ανά δευτερεύουσα κυκλοφορία. Η σειρά Leap 15 αναμένεται να επιτύχει περίπου 36 μήνες ενημερώσεων συντήρησης και ασφάλειας.

openSUSE Kubic: Η openSUSE Kubic είναι ένα έργο που συντηρεί πολλές τεχνολογίες που σχετίζονται με container ως μέρος του openSUSE.

Αυτό επικεντρώνεται κυρίως στο openSUSE Kubic, μια παραλλαγή openSUSE Tumbleweed που επικεντρώνεται στη φιλοξενία υπηρεσιών container. Η openSUSE Kubic αποτελείται επί του παρόντος από δύο βασικά στοιχεία:

* openSUSE MicroOS - ένα λειτουργικό σύστημα που βασίζεται στο openSUSE που παρέχει ενημερώσεις Transactional (Atomic) σε ένα σύστημα αρχείων btrfs root μόνο για ανάγνωση, σχεδιασμένο να φιλοξενεί containers με αυτοματοποιημένη διαχείριση και ενημέρωση κώδικα.
* kubeadm - ένα εργαλείο εκκίνησης συστοιχίας Kubernetes ενσωματωμένο ως μέρος της openSUSE Kubic για εκτέλεση πάνω από την openSUSE MicroOS.
Ο πηγαίος κώδικας για μεγάλο μέρος των εργαλείων που σχετίζονται με το Kubic βρίσκεται στο GitHub Project.

Λοιπόν, η openSUSE δεν είναι μόνο ΜΙΑ διανομή Linux, αλλά περιμένετε, υπάρχουν περισσότερα!

Το έργο openSUSE φιλοξενεί έναν ολόκληρο σωρό άλλων έργων λογισμικού, πάντα Open Source, τα οποία χρησιμοποιούμε στην κοινότητα αλλά και ενθαρρύνουμε τους άλλους να χρησιμοποιούν και να συνεισφέρουν. Αυτά περιλαμβάνουν:

Open Build Service - το εργαλείο κατασκευής, το οποίο δημιουργεί όλα τα πακέτα μας, καθώς και αυτά για SUSE Linux Enterprise, Arch, Debian, Fedora, Scientific Linux, RHEL, CentOS, Ubuntu και πολλά άλλα.

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

YaST - Το καλύτερο και ολοκληρωμένο εργαλείο ρύθμισης και εγκατάστασης συστήματος Linux.

KIWI - Δημιουργεί εικόνες Linux σε πραγματικό υλικό, αλλά και για συστήματα container όπως το Docker ή το podman.

Snapper - Δημιουργία, διαχείρηση και επαναφορά στιγμιοτύπων συστήματος. Επαναφέρετε το σύστημά σας χωρίς ταλαιπωρία σε προηγούμενο στιγιότυπο όταν μετά από ενημέρωση καταλήξετε με κατεστραμμένο σύστημα (πιθανότατα να είναι δικό σας λάθος, το Snapper μπορεί να σας δείξει τι άλλαξε μεταξύ των στιγμιότυπων).

OSEM - Διαχείριση Εκδηλώσεων Ανοιχτού Κώδικα. Πολλά έργα ανοιχτού κώδικα έχουν τα δικά τους συνέδρια και άλλες εκδηλώσεις. Έχουμε το δικό μας εργαλείο για τη διαχείριση προτάσεων για παρουσιάσεις, την οργάνωση προγραμμάτων, τη λήψη εγγραφών κ.λπ.

Και πολλά άλλα, πολλά από τα οποία μπορείτε να βρείτε στη σελίδα του έργου μας στο GitHub.


2ος Λόγος: Κατασκευάζουμε και χρησιμοποιούμε τα καλύτερα εργαλεία


Ίσως έχετε παρατηρήσει ένα κοινό θέμα ανάμεσα σε πολλά από τα έργα λογισμικού που αναφέρονται παραπάνω. Είμαστε ένα έργο που ενδιαφέρεται πολύ για τη χρήση του σωστού εργαλείου για τη κατάλληλη δουλειά.
Σε πολλές περιπτώσεις αυτό σημαίνει τη χρήση πολλών από τα ίδια εργαλεία που χρησιμοποιούν άλλα έργα, όπως είναι IRC, Git & GitHub, Φόρουμ, Λίστες αλληλογραφίας κ.λπ. Δεν είμαστε το είδος του έργου που θέλει να εφεύρει ξανά τον τροχό μόνο και μόνο επειδή δεν το κάναμε πρώτοι, αλλά όταν τα εργαλεία που βρίσκονται εκεί έξω δεν κάνουν τη δουλειά αρκετά καλά, σηκώνουμε τα μανίκια μας και προσπαθούμε να δημιουργήσουμε το καλύτερο εργαλείο για αυτήν την κάθε εργασία.

Εργαζόμαστε επίσης πολύ σκληρά για να παράγουμε εργαλεία που μπορούν και πρέπει να υιοθετηθούν από ένα πολύ ευρύτερο κοινό και όχι μόνο από την «κοινότητα του openSUSE».
Αυτό πιθανότατα τονίζεται καλύτερα μιλώντας για δύο από τα καλύτερα εργαλεία μας, το Open Build Service και το openQA.

Open Build Service - Όπως ήδη αναφέρθηκε, το εργαλείο κατασκευής δημιουργεί όλα τα πακέτα διανομής openSUSE, τα ISO κλπ.
Δημιουργεί και φιλοξενεί αποθετήρια για αυτά τα πακέτα.
Κατασκευάστηκε πάντα ως εργαλείο για χρήση από όλες τις διανομές, το οποίο είναι σε θέση να δημιουργήσει πακέτα για SUSE Linux Enterprise, Arch, Debian, Fedora, Scientific Linux, RHEL, CentOS, Ubuntu και άλλα.
Υπάρχει μια γραφική διεπαφή (μπορείτε να δείτε και να το χρησιμοποιήσετε ΕΔΩ) αλλά και το εργαλείο γραμμής εντολών osc (τεκμηρίωση ΕΔΩ). Ακόμα και κάποιος που δεν έχει εμπειρία κατασκευής πακέτων μπορεί εύκολα να δει τα περιεχόμενα οποιουδήποτε πακέτου στο OBS, να καταλάβει πώς δημιουργούνται, να το διακλαδώσει (να το κάνει fork, για να χρησιμοποιήσουμε τον ισοδύναμο όρο του github) στο δικό του Έργο-Αποθετήριο και να το επεξεργαστεί όπως νομίζει.
Επιτρέπεται η χρήση του OBS του openSUSE από οποιονδήποτε χωρίς χρέωση, έτσι ώστε να μπορεί να κατασκευάσει και να φιλοξενήσει τα πακέτα του στην υποδομή του openSUSE, δωρεάν (αν και τουλάχιστον, θα θέλαμε ως αντάλλαγμα να βεβαιωθούν ότι τα πακέτα για openSUSE λειτουργούν αβασάνιστα ;-) )
Το OBS χρησιμοποιείται ήδη από άλλες εταιρείες και έργα όπως το VideoLAN, η Dell, το HipChat και το ownCloud, αλλά αν είστε στον κλάδο δημιουργίας λογισμικού για Linux, πρέπει πραγματικά να αναρωτηθείτε «Γιατί δεν χρησιμοποιώ το OBS για την κατασκευή τα πακέτα μου;»

openQA - Ένα άλλο κόσμημα. Το openQA είναι ένα εργαλείο δοκιμών που σας επιτρέπει να δημιουργήσετε δοκιμές για οποιοδήποτε λειτουργικό σύστημα ή εφαρμογή. Σε αντίθεση με σχεδόν κάθε άλλο εργαλείο δοκιμών, το openQA δοκιμάζει το λογισμικό με τον ίδιο τρόπο που το κάνουν οι χρήστες. Κοιτάζει στην οθόνη και διασφαλίζει ότι ο χρήστης θα δει τι περιμένετε να δει. Στη συνέχεια, θα πατήσει τα ίδια κουμπιά πληκτρολογίου και ποντικιού με τα οποία ένας χρήστης θα εργαζόταν μέσω της εφαρμογής. Μπορείτε να το δείτε στη δράση ΕΔΩ.
Το openSUSE χρησιμοποιεί εκτεταμένα το openQA για την κατασκευή του Tumbleweed. Ο προτεινόμενος κώδικας για το Tumbleweed δοκιμάζεται από το openQA πριν γίνει αποδεκτός και δοκιμαστεί ξανά META την αποδοχή του (για να βεβαιωθούμε ότι ενσωματώνεται καλά με όλα τα άλλα πακέτα που έχουν συγχωνευθεί πρόσφατα).
Με αυτόν τον τρόπο μπορούμε να προσφέρουμε το Tumbleweed ως μια «σταθερή» κυλιόμενη έκδοση, γιατί χάρη στο openQA γνωρίζουμε ότι η διανομή λειτουργεί πριν σταλούν οι ενημερώσεις στους υπολογιστές των χρηστών. Εάν κάτι δεν δουλέψει, το openQA σταματά την κυκλοφορία και οι χρήστες δεν παρατηρούν προβλήματα, εκτός από ίσως μια μικρή καθυστέρηση στη λήψη νέων ενημερώσεων. Με την (εξαιρετικά σπάνια) πιθανότητα κάτι να ξεφύγει από το openQA, γίνεται μια νέα δοκιμαστική υπόθεση, οπότε δεν γινεται ποτέ το ίδιο λάθος δύο φορές.
Το openQA χρησιμοποιείται επίσης από την SUSE για τη δοκιμή της SUSE Linux Enterprise και το έργο Fedora ξεκίνησε πρόσφατα να το χρησιμοποιεί. Θα θέλαμε να δούμε περισσότερες διανομές να το χρησιμοποιούν.

openSUSE Engineering

3ος Λόγος: Θέματα μηχανικής


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

Αυτό οδήγησε στο openSUSE να πρωτοστατεί με πολλές καινοτομίες σε τομείς όπως η διαχείριση πακέτων. Το zypper και το libsolv σημαίνουν ότι, σε αντίθεση με άλλες διανομές Linux που βασίζονται σε RPM, το «χάλι με τις εξαρτήσεις» είναι κάτι παρελθόν για εμάς και καταφέρνουμε να σταθούμε δίπλα-δίπλα με Debian και Ubuntu, να δούμε τους διαχειριστές πακέτων τους και να πούμε «ωραία, μπορούμε να το κάνουμε αυτό και πολλά περισσότερα».

Επίσης, δεν μας ενδιαφέρει να είμαστε ένα άλλο έργο ανοιχτού κώδικα που να παίρνει τα πάντα από δεκάδες έργα και είτε να σφραγίζουμε το λογότυπό μας και να το ονομάζουμε δικά μας, είτε να αλλάζουμε πολλά πράγματα και να μην επιστρέφουμε έργο στην κοινότητα.
Δουλεύουμε σε συνεργασία με όλα τα γνωστά έργα ανοικτού κώδικα, είτε ο πυρήνας, το GNOME, το KDE, οτιδήποτε άλλο, για να δώσουμε τα ανατροφοδότηση, να στείλουμε τις διορθώσεις στον κώδικα, για το όφελος όλων.

Συνέδριο Νυρεμβέργη 2019


4ος Λόγος: Κοινότητα, κοινότητα, κοινότητα


Η κοινότητα openSUSE είναι υπέροχη. Θα συνοψίσω μερικά πράγματα εδώ.

Πρώτον, λίγα λόγια για την SUSE. Η SUSE χρηματοδοτεί την κοινότητα openSUSE, και αποτελεί ένα σημαντικό μέρος της κοινότητας, απασχολώντας έναν μεγάλο αριθμό προγραμματιστών που συνεισφέρουν στο έργο openSUSE, συνεισφέρει δε στο έργο openSUSE τόσο με κώδικα, όσο και με προσωπικό αλλά και με χρήματα.
Από πολλές απόψεις είναι ο «προστάτης» του έργου openSUSE, έχοντας την εταιρία στην πλάτη μας όταν το χρειαζόμαστε, χωρίς όμως να σημαίνει ότι η εταιρία SUSE ελέγχει το έργο. Το έργο openSUSE είναι ανεξάρτητο, ελεύθερο να καθορίσει τη δική του κατεύθυνση.
Η SUSE βλέπει τον εαυτό της ως ίσο μέλος στην κοινότητα, συμμετέχοντας με τον ίδιο τρόπο όπως όλοι οι άλλοι, ενθαρρύνοντας τους μηχανικούς της να συμμετέχουν σε συζητήσεις και βοηθούν στον καθορισμό της κατεύθυνσης του έργου openSUSE μέσω υποβολής κώδικα, όπως όλοι οι άλλοι.
Ο ανοικτός κώδικας λειτουργεί καλύτερα όταν υπάρχει ελευθερία καινοτομίας, αυτή είναι η θέση στην οποία βρίσκεται το έργο openSUSE, η SUSE είναι μια εταιρεία που κατανοεί την βάση της - καθώς η τρέχουσα εκστρατεία της λέει ότι «Ο ανοικτός κώδικας είναι στα γονίδιά μας».

Αν λοιπόν η SUSE δεν είναι το «αφεντικό», τότε ποιος είναι; Προφανώς η κοινότητα. Αυτή αποφασίζει, και μάλιστα θέλουμε περισσότερα άτομα να μας βοηθήσουν να κάνουμε πολλά πράγματα! Είμαστε το είδος του έργου που είναι πολύ ανοιχτό σε όλους που θέλουν να συνεισφέρουν και προσπαθούμε σκληρά να διατηρήσουμε ένα πολύ χαμηλό «εμπόδιο» για την είσοδο.
Η κοινότητα openSUSE δεν είναι το είδος της κοινότητας που θα ορίσει να αποκτήσετε πολλές γνώσεις προτού σας επιτραπεί να κάνετε οτιδήποτε για το έργο openSUSE.
Εάν δείτε κάτι που χρειάζεται διόρθωση, μιλήστε με τα άτομα που εργάζονται στην επίλυση σφαλμάτων, διορθώστε το μαζί τους και υποβάλετε τις συνεισφορές σας. Αυτό ισχύει για τον κώδικα, τον ιστότοπο, το wiki, το μάρκετινγκ, οτιδήποτε και οπουδήποτε. Δεν είμαστε ένα έργο για το οποίο χρειάζεστε άδεια για να μπορέσετε να συμμετάσχετε.
Προσπαθούμε να διατηρήσουμε τις διαδικασίες μας λιτές, αλλά αυτές που έχουμε είναι στο Wiki μας, και όσον αφορά τη συνάντηση με υπάρχοντα μέλη που συνεισφέρουν, μπορείτε εύκολα να τους βρείτε στα κανάλια IRC και στις λίστες αλληλογραφίας μας.

Εάν είστε χρήστης και χρειάζεστε βοήθεια στην πραγματικότητα χρησιμοποιώντας το openSUSE αλλά δεν είστε έτοιμοι να εμπλακείτε με τη συνεισφορά στο έργο ακόμα, τότε έχουμε μια μεγάλη κοινότητα που βοηθούν τους ανθρώπους μέσω του IRC, του Φόρουμ και του Telegram (Αγγλικό) / Telegram (Ελληνικό).

Όταν όλοι ασχολούνται με όλα, δεν οδηγεί στο απόλυτο χάος; Οχι ακριβώς. Το μοντέλο ανοιχτού κώδικα λειτουργεί, με τις λίγες διαδικασίες που έχουμε στη διάθεσή μας να παρέχουν αρκετή δομή και ασφάλεια, ώστε οποιαδήποτε προβλήματα εμφανιστούν να αντιμετωπιστούν ως μέρος μιας διαδικασίας φυσικής ροής και μάθησης.
Όμως, δεν είναι ουτοπία, από καιρό σε καιρό φυσικά εμφανίζονται διάφορα και γι' αυτό το έργο openSUSE έχει το «Διοικητικό Συμβούλιο».
Η δουλειά του είναι να βοηθάει στη διατήρηση του έργου και της κοινότητας στο σωστό δρόμο, να μιλούν τα μέλη της κοινότητας μεταξύ τους, να επιλύει συγκρούσεις, και να είναι οι «τελευταίοι υπεύθυνοι λήψης αποφάσεων» εάν δεν υπάρχει κάποιος άλλος ικανός/κατάλληλος για να λάβει μια δύσκολη απόφαση που επηρεάζει το openSUSE.

Η δομή του «Διοικητικού Συμβουλίου» είναι επίσης μια ωραία αντανάκλαση του τρόπου δομής της υπόλοιπης κοινότητάς μας - από τις 5 εκλεγμένες έδρες του Διοικητικού Συμβουλίου, όχι περισσότερες από 2 θέσεις μπορούν να καταληφθούν από άτομα που απασχολούνται / ελέγχονται από τον ίδιο οργανισμό. Αυτό σημαίνει ότι καμία εταιρεία (ούτε καν SUSE) δεν μπορεί να έχει την πλειοψηφία των θέσεων στο Διοικητικό Συμβούλιο, διασφαλίζοντας ότι είναι υγιής και ισορροπημένη όπως και η υπόλοιπη κοινότητά μας.

Και τέλος, η κοινότητα openSUSE είναι απλώς μια μεγάλη ομάδα ανθρώπων. Ένα μεγάλο μέρος αυτής συναντιέται στα τακτικά συνέδρια του openSUSE. Στα συνέδρια γίνεται η συνδυασμός συναντήσεων των μελών της κοινότητας, συνομιλιών αλλά και διασκέδασης με πολλές πολλές μπύρες.

Και θυμηθείτε το σύνθημά μας...

Have a Lot of Fun!