Mon, Jul 05, 2021

Εγκατάσταση GitKraken, ότι πιο εύκολο για διαχείριση αποθετηρίων Git

GitKraken

ΠΡΟΒΛΗΜΑ

Την σήμερον ημέρα το ερώτημα που πλανάται είναι, για να είσαι influencer, πόσους ακόλουθους πρέπει να έχεις στα social media; Στον κόσμο των προγραμματιστών, μέτρο σύγκρισης είναι το Gihub/Gitlab. Πόσους ακόλουθους έχεις; Πόσα αποθετήρια; Πόσα από αυτά είναι επισημασμένα; Πόσα contributions είχες τελευταία; Πόσο πράσινος (ή μπλε) είναι ο πίνακας με την συνεισφορά σου; Όλα αυτά τα ερωτήματα είναι τα αντίστοιχα των influencers που αφορούν τους προγραμματιστές. Αυτά αποτελεούν ουσιαστικά το βιογραφικό τους (άντε μαζί με το προφίλ τους στο Linkedin). Με αυτά μπορούν να ζητήσουν εργασία (ή να τους ζητήσουν recruiters).

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

ΛΥΣΗ

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

Στο παρόν άρθρο θα δούμε πως μπορείτε να εγκαταστήσετε το GitKraken. Σε επόμενα άρθρα θα δούμε πως μπορείτε να το χρησιμοποιήσετε αποδοτικά, θα δούμε κάποια κολπάκια κλπ.

ΕΓΚΑΤΑΣΤΑΣΗ

Πολλοί είναι οι τρόποι εγκατάστασης.

ΑΡΧΕΙΑ deb/rpm

Κατεβάστε το πρόγραμμα:

Για Ubuntu LTS 16.04+, Debian 9+
deb

Για RHEL 7+, CentOS 7+, Fedora 31+
rpm

Οι παραπάνω τρόποι, δεν χρειάζονται ιδιαίτερη ανάλυση. Κατεβάζετε το αρχείο και με διπλό κλικ θα ανοίξει ο εγκαταστάτης πακέτων της διανομής σας. Με απλό Next>Next>Finish θα εγκατασταθεί το πρόγραμμα.

FLATPAK

Αφού έχετε εγκαταστήσει το Flatpak στον υπολογιστή σας, μπορείτε να το εγκαταστήσετε εύκολα με την εντολή:
flatpak install com.axosoft.GitKraken

Αν παλι είστε οπτικοί τύποι, μπορείτε να το εγκαταστήσετε από το αποθετήριο του flathub (εδώ). Πατήστε απλά Install και θα εγκατασταθεί (αφού έχετε εγκαταστήσει το flatpak μαζί με το αποθετήριο στον υπολογιστή σας).

SNAP

Αφορά κυρίως την διανομή Ubuntu αλλά και όσες διανομές έχουν ενεργοποιημένη την τεχνολογία SNAPS.
Επισκεφθείτε το snapcraft (εδώ) και πατήστε το κουμπί Install. Θα ανοίξει ο εγκαταστάτης του υπολογιστή σας και θα το εγκαταστήσετε πολύ απλά.

ΕΓΓΡΑΦΗ

Για την καλύτερη λειτουργία και για να αποκομίσετε τα μέγιστα από το πρόγραμμα, πρέπει να κάνετε λογαριασμό. Επισκεφθείτε την ιστοσελίδα του GitKraken και δημιουργήστε τον λογαριασμό σας. Χρησιμοποιόντας τον παραπάνω σύνδεσμο, θα μπείτε και σε κλήρωση για δωροκάρτα των 100€ από την AMAZON.

ΣΚΟΝΑΚΙ

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

Κατεβάστε το σκονάκι

Δείτε πόσο εύκολη είναι η χρήση (θα ακολουθήσουν και άλλα tips).



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

Sat, May 15, 2021

Πλήρης οδηγός εγκατάστασης και χρήσης 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, ενημερώστε τον για τις παραπάνω διαδικασίες.

Wed, Mar 03, 2021

Μετατροπή αρχείου 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 ενώ το θέλει, ενημερώστε τον για τις παραπάνω διαδικασίες.

Tue, Feb 23, 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 που θέλετε να τα μοιραστείτε;

Wed, Feb 17, 2021

Ένωση πολλών εικόνων σε ένα .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. Θα του σώσετε αρκετό χρόνο.

Tue, Feb 09, 2021

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

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

ΤΟ ΠΡΟΒΛΗΜΑ

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

Η ΛΥΣΗ

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

ΛΥΣΗ 1:

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

#Σε 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-tools

#Σε 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.

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

Wed, Nov 11, 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) αλλά και το παράθυρο.

Wed, Nov 04, 2020

Εγκατάσταση Μαθηματικού Λογισμικού 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


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

Sat, Oct 24, 2020

Όρια φόρτισης μπαταρίας και διαχείριση ισχύος στο 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/

Tue, Sep 22, 2020

Πώς να κάνετε ερωτήσεις στο φόρουμ, στο 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 + δευτερεύουσες τροποποιήσεις.