Mon, Nov 01, 2021

ΠΛΗΡΗΣ ΟΔΗΓΟΣ εγκατάστασης και ρυθμίσεων του Visual Studio Code σε Linux, για τις γλώσσες python, C και java

Visual Studio Code

ΠΡΟΛΟΓΟΣ

Έχουμε δει σε προηγούμενο άρθρο την Εγκατάσταση του Visual Studio Code σε openSUSE. Σε αυτό το άρθρο θα δείξουμε λίγο πιο ολοκληρωμένες ενέργειες. Αφορμή της συγγραφής του άρθρου αυτού ήταν η αποτυχία ρύθμισης και χρήσης του Visual Studio Code με τις γλώσσες προγραμματισμού Python, C και Java. Η αρχική εγκατάσταση έγινε μέσω flatpak (θα το δουμε παρακάτω) αλλά δεν μπορούσε να γίνει ρύθμιση με Java. Είχα ψάξει στα γρήγορα τι είναι καλύτερο για το VSCode, το flatpak ή το αρχείο deb/rpm και βρήκα αυτό στο reddit. Σίγουρα υπάρχουν και άλλα αποτελέσματα. Εδώ κάποιος ανέφερε ότι στο flatpak υπάρχουν κάποια θέματα debugging οπότε αποφάσισα και εγώ να κάνω εγκατάσταση από deb/rpm. Όμως έπρεπε να κρατήσω και τα extensions που έχω εγκατεστημένα (για να μην ψάχνω). Βρήκα και τρόπο γι'αυτό. Οπότε εδώ θα προσπαθήσω να τα αναφέρω όλα.

ΕΓΚΑΤΑΣΤΑΣΗ Visual Studio Code

Θα δούμε τους πιο γνωστούς τρόπους εγκατάστασης του Visual Studio Code.

ΕΓΚΑΤΑΣΤΑΣΗ με αρχεία deb/rpm

Για διανομές όπως είναι η openSUSE, Fedora, Red Hat, Ubuntu, Debian και παράγωγά τους, μπορείτε να κατεβάσετε το αντίστοιχο αρχείο για τη διανομή σας (rpm για τις 3 πρώτες και deb για τις άλλες 2). Κάντε την λήψη των αρχείων από εδώ:
Η εγκατάσταση είναι απλή. Μπορείτε με διπλό κλικ πάνω στο αρχείο, οπότε θα ανοίξει ο διαχειριστής αρχείων εγκατάστασης της διανομής σας και στη συνεχεια θα πατήσετε το κουμπί εγκατάστασης. Εναλλακτικά μπορείτε να το εγκαταστήσετε με τερματικό με τις εντολές:
Για Ubuntu, Debian:
sudo dpkg -i code*.deb

Για Fedora, Red Hat, openSUSE:
sudo rpm -i code*.rpm

Σε Arch Linux θα βρείτε πολλές εκδόσεις. Προτιμήστε την έκδοση visual-studio-code-bin που θα την βρείτε από το αποθετήριο AUR (ανάλογα με ποιον AUR helper χρησιμοποιείτε, αλλάξτε την εντολή).
yay -S visual-studio-code-bin

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

ΕΓΚΑΤΑΣΤΑΣΗ με flatpak

Εάν έχετε εγκατεστημένο το flatpak στον υπολογιστή σας (δείτε πως γίνεται αυτό), μπορείτε να εγκαταστήσετε το Visual Studio Code με την παρακάτω εντολή:
flatpak install com.visualstudio.code

Αν και έχει άλλες δυο εκδόσεις του Visual Studio Code (vscodium και code-OSS), επιλέξτε την παραπάνω έκδοση.

ΕΓΚΑΤΑΣΤΑΣΗ με snap

Οι διανομές που χρησιμοποιούν τα πακέτα snap (Ubuntu κυρίως), μπορείτε να το εγκαταστήσετε είτε από την σελίδα snapcraft είτε με την παρακάτω εντολή:
sudo snap install --classic code

Εάν δεν έχετε snap εγκατεστημένο, δείτε στην διανομή σας πως εγκαθίσταται. Παράδειγμα, δείτε στην openSUSE εδώ.

ΕΓΚΑΤΑΣΤΑΣΗ προσθέτων για το λειτουργικό


ΕΓΚΑΤΑΣΤΑΣΗ για Python

Για την εγκατάσταση της Python δεν θα χρειαστεί να κάνουμε κάτι γιατί είναι ήδη εγκατεστημένη στο σύστημα. Συνήθως είναι και κάποια έκδοση 2.x και κάποια έκδοση 3.x. Δείτε τις εκδόσεις με τις εντολές:
Για python 2:
python --version

Για python 3:
python3 --version

Ενώ μπορείτε να κάνετε αναβάθμιση του pip με την εντολή:
pip install --upgrade pip

Ενώ για αναβάθμιση όλων των πακέτων που έχετε εγκατεστημένα, μπορείτε να εισάγετε την εντολή:
pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U


ΕΓΚΑΤΑΣΤΑΣΗ για C

Και εδώ δεν θα χρειαστούν πολλά γιατί είναι ήδη εγκατεστημένη στον υπολογιστή σας. Πρέπει να είναι εγκατεστημένο το πακέτο gcc. Αυτό βρίσκεται στο build-essential
Για Ubuntu/Debian:
sudo apt install build-essential

Για openSUSE:
sudo zypper in gcc

Για Arch Linux:
sudo packam -S gcc

Για να δείτε ποιά έκδοση μεταγλωττιστή έχετε, μπορείτε να χρησιμοποιήσετε την εντολή:
gcc --version

Δοκιμάστε το κλασικό Hello world. Γράψτε στο τερματικό nano hello.c και εισάγετε τον κώδικα για την C. Στη συνέχεια εκτελέστε τις εντολές:
$ gcc -o hello hello.c $ ./hello


ΕΓΚΑΤΑΣΤΑΣΗ για Java

Πριν ξεκινήσουμε την εγκατάσταση, ας δούμε τις διαφορές μεταξύ JRE, OpenJDK και Oracle JDK.
  • JRE (Java Runtime Environment) είναι αυτό που χρειάζεται για να εκτελεστεί μια εφαρμογή που βασίζεται σε Java. Αυτό είναι το μόνο που χρειάζεστε εάν δεν είστε προγραμματιστής.
  • JDK (Java Development Kit) είναι αυτό που πρέπει να αναπτύξετε λογισμικό που σχετίζεται με την Java.
  • H OpenJDK είναι υλοποίηση ανοικτού κώδικα του Java Development Kit ενώ το Oracle JDK είναι η επίσημη έκδοση Oracle του Java Development Kit. Ενώ το OpenJDK είναι αρκετό για τις περισσότερες περιπτώσεις, ορισμένα προγράμματα όπως το Android Studio προτείνει τη χρήση του Oracle JDK για αποφυγή ζητήματος διεπαφής χρήστη.
Εδώ θα χρειαστεί να γίνουν κάποιες εγκαταστάσεις-ρυθμίσεις.

Για αρχή δείτε τι έκδοση java έχετε.
java -version

Εάν έχετε εγκατεστημένη την java, τότε σε ένα σύστημα Ubuntu θα δείτε τα παρακάτω:
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)

Ενώ σε ένα σύστημα που δεν έχει εγκατεστημένη την java, θα δείτε ένα αποτέλεσμα του τύπου:
The program ‘java’ can be found in the following packages:
* default-jre
* gcj-4.6-jre-headless
* openjdk-6-jre-headless
* gcj-4.5-jre-headless
* openjdk-7-jre-headless
Try: sudo apt-get install

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

Για εγκατάσταση του Java Runtime Environment
sudo apt install default-jre

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

Για εγκατάσταση του OpenJDK
sudo apt install default-jdk

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

Στο openSUSE να έχετε εγκατεστημένα τα παρακάτω:
sudo zypper in java-11-openjdk-devel java-11-openjdk java-11-openjdk-headless

Εγκατάσταση Oracle JDK

Για εγκατάσταση του Oracle JDK, κατεβάστε και εγκαταστείστε το αντίστοιχο αρχείο για την διανομή σας.

Εναλλακτικά σε Ubuntu based διανομές, μπορείτε να εισάγετε το αποθετήριο:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

Και στη συνέχεια για την java έκδοση 16 (αυτή κυκλοφορεί τελευταία. Αν θέλετε να αλλάξετε έκδοση, απλά αλλάξτε το νούμερο), μπορείτε να την εγκαταστήσετε με τις παρακάτω εντολές:
sudo apt install oracle-java16-installer
sudo apt install oracle-java16-set-default

Για openSUSE, υπάρχει διαθέσιμη τεκμηρίωση.

Για Arch Linux, υπάρχει και τεκμηρίωση στο wiki.

ΡΥΘΜΙΣΕΙΣ Visual Studio Code

Εγκαταστάσεις extensions

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

ΕΓΚΑΤΑΣΤΑΣΗ για Python

Για την Python χρειάζεται το πρόσθετο που μπορείτε να βρείτε στο Market place.

Ανοίξτε το VS Code Quick Open (με τα πλήκτρα Ctrl+P) και επικολήστε την εντολή:
ext install ms-python.python

Εναλλακτικά ανοίξτε την μηχανή αναζήτησης των extensions και αναζητήστε Python. Θα σας εμφανίσει πολλά. Εσείς επιλέξτε εκδότη την Microsoft (μπορείτε να επιλέξετε ότι άλλο θέλετε αλλά αυτό εφαρμόζει καλύτερα στο πρόγραμμα Visual Studio Code).

Καλό είναι να εγκαταστήσετε και το Jupyter, το Visual Studio IntelliCode και το Pylance.

Ανοίξτε το VS Code Quick Open (με τα πλήκτρα Ctrl+P) και επικολήστε την εντολή:
Jupyter:
ext install ms-toolsai.jupyter

Visual Studio IntelliCode:
ext install VisualStudioExptTeam.vscodeintellicode

Pylance:
ext install ms-python.vscode-pylance


Δείτε περισσότερα στην τεκμηρίωση στην σελίδα του Visual Studio Code.

ΕΓΚΑΤΑΣΤΑΣΗ για C

Για την C χρειάζεται το πρόσθετο που μπορείτε να βρείτε στο Market place.

Ανοίξτε το VS Code Quick Open (με τα πλήκτρα Ctrl+P) και επικολήστε την εντολή:
ext install ms-vscode.cpptools

Εναλλακτικά ανοίξτε την μηχανή αναζήτησης των extensions και αναζητήστε C/C++. Θα σας εμφανίσει πολλά. Εσείς επιλέξτε εκδότη την Microsoft (μπορείτε να επιλέξετε ότι άλλο θέλετε αλλά αυτό εφαρμόζει καλύτερα στο πρόγραμμα Visual Studio Code).

C/C++


Δείτε περισσότερα στην τεκμηρίωση στην σελίδα του Visual Studio Code.

ΕΓΚΑΤΑΣΤΑΣΗ για Java

Για την Java χρειάζεται το πρόσθετο που μπορείτε να βρείτε στο Market place.

Ανοίξτε το VS Code Quick Open (με τα πλήκτρα Ctrl+P) και επικολήστε την εντολή:
ext install vscjava.vscode-java-pack

To Extension Pack for Java, περιέχει τα παρακάτω:

Δείτε περισσότερα στην τεκμηρίωση στην σελίδα του Visual Studio Code.

Μεταφορά extensions

Αφού έγινε η εγκατάσταση, τώρα έπρεπε να μεταφέρω και τα extensions που είχα στην προηγούμενη εγκατάσταση (ή αν θέλετε να συγχρονίσετε δυο συστήματα να έχουν τα ίδια extensions). Υπάρχουν 2-3 τρόποι. Θα γράψω κάποιους.
Καταρχήν ανοίξτε το VSCode και ανοίξτε το τερματικό. Εκεί δώστε την παρακάτω εντολή:
code --list-extensions | xargs -L 1 echo code --install-extension

Εμένα μου έβγαλε την παρακάτω λίστα.
code --install-extension formulahendry.code-runner
code --install-extension ms-python.python
code --install-extension ms-python.vscode-pylance
code --install-extension ms-toolsai.jupyter
code --install-extension ms-vscode.cmake-tools
code --install-extension ms-vscode.cpptools
code --install-extension redhat.java
code --install-extension twxs.cmake
code --install-extension VisualStudioExptTeam.vscodeintellicode
code --install-extension vscjava.vscode-java-debug
code --install-extension vscjava.vscode-java-dependency
code --install-extension vscjava.vscode-java-pack
code --install-extension vscjava.vscode-java-test
code --install-extension vscjava.vscode-maven

Την αντέγραψα σε ένα αρχείο txt και μετά την νέα εγκατάσταση, εκτέλεσα μια προς μια τις εντολές.

Εναλλακτικά υπάρχουν και πιο αυτοματοποιημένοι τρόποι. Δηλαδή θα φτιάξετε ένα αρχείο με τα extensions που έχετε εγκατεστημένα με την παρακάτω εντολή:
code --list-extensions > vscode-extensions.list

Μεταφέρετε το αρχείο vscode-extensions.list στο νέο σύστημα και μετά με την παρακάτω εντολή θα εγκατασταθούν.
cat vscode-extensions.list | xargs -L 1 code --install-extension


Διάφορες ρυθμίσεις

Μια ρύθμιση που την είχα κάνει στην εγκατάσταση με flatpak και δεν θυμόμουν ήταν αυτή με την οποία όταν εκτελούσα ένα πρόγραμμα σε C, άνοιγε το ενσωματωμένο τερματικό και εκεί έβλεπα τα αποτελέσματα. Βρήκα το How to run a C program in Visual Studio Code? όπου μας λέει όλα αυτά που ανέφερα παραπάνω (με την προσθήκη πως γίνεται και σε Windows). Σε ένα σημείο λέει ότι όταν εκτελείται ο κώδικας, τότε έχουμε ως έξοδο ένα Read-Only αποτέλεσμα χωρίς τη δυνατότητα να εισάγει ο χρήστης δεδομένα.
Read-Only Output
Οπότε λέει να προβούμε στην παρακάτω ρύθμιση.

* Ανοίγουμε Αρχείο>Επιλογές>Ρυθμίσεις (File>Preferences>Settings)
* Και αφού ανοίξει, κάντε κλικ στο Extensions για να καθορίσουμε τις ρυθμίσεις για τον C Compiler.
Extensions
* Μετακινηθείτε προς τα κάτω μέχρι να βρείτε το Run Code Configuration.
Run Code Configuration
* Μετακινηθείτε προς τα κάτω και κάντε κλικ στην επιλογή Run In Terminal.
Run In Terminal
Κλείστε και ανοίξτε ξανά το πρόγραμμα για να πάρει τις ρυθμίσεις. Τώρα όταν εκτελείτε ένα πρόγραμμα C, θα υπάρχει αλληλεπόδραση χρήστη με τον υπολογιστή.

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

Πηγές:
Visual Studio Code on Linux

Wed, Oct 13, 2021

Εγκατάσταση Eclipse στο Linux

Eclipse Logo

ΠΡΟΛΟΓΟΣ

Η συγγραφή κώδικα μπορεί να γίνει με πολλούς τρόπους. Υπάρχουν οι hardcore προγραμματιστές που χρησιμοποιούν vim, nano ή gedit (κάποιον επεξεργαστή κειμένου δηλαδή). Υπάρχουν και αυτοί που βρίσκονται στο στάδιο της εκμάθησης, οπότε καλό είναι να μάθουν να χρησιμοποιούν τα εργαλεία, τα IDE που παρέχει η κάθε γλώσσα προγραμματισμού. Βέβαια όταν μάθουν όλους τους αυτοματισμούς και ευκολίες που προσφέρουν, δύσκολα θα μετακινηθούν σε κειμενογράφους τύπου vim (άσχετα αν είναι πολύ δυνατό εργαλείο με πολλές δυνατότητες). Προσωπικά προτιμώ το Visual Studio Code για την συγγραφή κώδικα αλλά υπάρχουν και άλλα IDE, ανάλογα με την γλώσσα προγραμματισμού που δουλεύει ο καθένας. Εμείς εδώ θα δούμε την εγκατάσταση και ρύθμιση του Eclipse για χρήση με την γλώσσα Java.

ΕΓΚΑΤΑΣΤΑΣΗ

Θα δούμε τους τρόπους εγκατάστασης του Eclipse.

FLATPAK

Τελευταία, όλο και πιο πολύ διαδίδονται οι εγκαταστάσεις μέσω λύσεων flatpak/snap. Προσωπικά προτιμώ το flatpak. Στην λύση αυτή βλέπουμε να κατεβαίνει η έκδοση java που θα συνεργαστεί με το Eclipse. Δεν θα χρειαστεί να ρυθμίσετε τίποτα. Μπορείτε να βρείτε περισσότερα στην ιστοσελίδα.

Η εγκατάσταση γίνεται με την παρακάτω εντολή:
flatpak install flathub org.eclipse.Java

Σε Ubuntu 20.04.x, η έκδοση Flatpak είναι παλιά και δεν μπορείτε να εγκαταστήσετε το Eclipse. Οπότε πρέπει να το αναβαθμίσετε, προσθέτοντας το παρακάτω αποθετήριο.
sudo add-apt-repository ppa:alexlarsson/flatpak

sudo apt-get update

Είστε έτοιμοι. Απλά ανοίξτε το Eclipse και χρησιμοποιήστε το.

SNAP

Άλλη μια επιλογή, native για Ubuntu είναι η εγκατάσταση snap πακέτου. Για περισσότερες πληροφορίες, δείτε στην ιστοσελίδα.

Η εγκατάσταση γίνεται με την παρακάτω εντολή:
sudo snap install eclipse --classic

Είστε έτοιμοι. Απλά ανοίξτε το Eclipse και χρησιμοποιήστε το.

ΛΗΨΗ ΑΠΟ ΙΣΤΟΣΕΛΙΔΑ

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

ΕΓΚΑΤΑΣΤΑΣΗ Java

Πριν ξεκινήσουμε την εγκατάσταση, ας δούμε τις διαφορές μεταξύ JRE, OpenJDK και Oracle JDK.
  • JRE (Java Runtime Environment) είναι αυτό που χρειάζεται για να εκτελεστεί μια εφαρμογή που βασίζεται σε Java. Αυτό είναι το μόνο που χρειάζεστε εάν δεν είστε προγραμματιστής.
  • JDK (Java Development Kit) είναι αυτό που πρέπει να αναπτύξετε λογισμικό που σχετίζεται με την Java.
  • H OpenJDK είναι υλοποίηση ανοικτού κώδικα του Java Development Kit ενώ το Oracle JDK είναι η επίσημη έκδοση Oracle του Java Development Kit. Ενώ το OpenJDK είναι αρκετό για τις περισσότερες περιπτώσεις, ορισμένα προγράμματα όπως το Android Studio προτείνει τη χρήση του Oracle JDK για αποφυγή ζητήματος διεπαφής χρήστη.
Για αρχή δείτε τι έκδοση java έχετε.
java -version

Εάν έχετε εγκατεστημένη την java, τότε σε ένα σύστημα Ubuntu θα δείτε τα παρακάτω:
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)

Έκδοση java σε openSUSE
Ενώ σε ένα σύστημα που δεν έχει εγκατεστημένη την java, θα δείτε ένα αποτέλεσμα του τύπου:
The program ‘java’ can be found in the following packages:
* default-jre
* gcj-4.6-jre-headless
* openjdk-6-jre-headless
* gcj-4.5-jre-headless
* openjdk-7-jre-headless
Try: sudo apt-get install

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

Για εγκατάσταση του Java Runtime Environment
sudo apt install default-jre

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

Για εγκατάσταση του OpenJDK
sudo apt install default-jdk

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

Στο openSUSE να έχετε εγκατεστημένα τα παρακάτω (έκδοση Java 11):
sudo zypper in java-11-openjdk-devel java-11-openjdk java-11-openjdk-headless

Εγκατάσταση Oracle JDK

Για εγκατάσταση του Oracle JDK, κατεβάστε και εγκαταστείστε το αντίστοιχο αρχείο για την διανομή σας.

Εναλλακτικά σε Ubuntu based διανομές, μπορείτε να εισάγετε το αποθετήριο:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

Και στη συνέχεια για την java έκδοση 16 (αυτή κυκλοφορεί τελευταία. Αν θέλετε να αλλάξετε έκδοση, απλά αλλάξτε το νούμερο), μπορείτε να την εγκαταστήσετε με τις παρακάτω εντολές:
sudo apt install oracle-java16-installer
sudo apt install oracle-java16-set-default

Γενικά σε openSUSE, υπάρχει διαθέσιμη τεκμηρίωση.

Για Arch Linux, υπάρχει και τεκμηρίωση στο wiki.

ΕΓΚΑΤΑΣΤΑΣΗ Eclipse

Η εγκατάσταση του Eclipse ακολουθεί. Μετακινηθείτε στην ιστοσελίδα των λήψεων. Πατήστε το Download x86_64 και θα κατέβει ένα αρχείο με το όνομα eclipse-inst-jre-linux64.tar.gz.

Αποσυμπιέστε το και μετακινηθείτε στον φάκελο. Εκεί πατήστε διπλό κλικ στο eclipse-inst.

Στο παράθυρο που θα ανοίξει, επιλέξτε Eclipse IDE for Java Developers.
Eclipse IDE for Java Developers

Στο παράθυρο αυτό, δεν φαινόταν τα γράμματα στο πεδίο Java 11+ VM. Μπορεί να φταίει το θέμα από το γραφικό περιβάλλον. Όπως και να έχει, πατήστε στο βελάκι και θα εμφανιστεί η διαδρομή της Java. Αν δεν βλέπετε τίποτα, τότε μάλλον πρέπει να τσεκάρετε πάλι εάν είναι εγκατεστημένη η Java.
Διαδρομή Java 11+ VM

Επιλέξτε και εάν θέλετε να προστεθεί εκκινητής στο μενού αλλά και στην επιφάνεια εργασίας. Πατήστε Install και περιμένετε.
Το Eclipse είναι έτοιμο για εγκατάσταση

Αναμένετε να ολοκληρωθεί η εγκατάσταση.
Εγκατάσταση Eclipse

Αφού ολοκληρωθεί η εγκατάσταση, πατήστε στο Launch για να εκκινήσει το πρόγραμμα.
Εκκίνηση του Eclipse

Θα σας ρωτήσει ποιον φάκελο θέλετε να χρησιμοποιήσετε ως φάκελο για να αποθηκεύετε τα αρχεία που θα φτάχνετε. Μπορείτε να αφήσετε τον φάκελο ως έχει. Πατήστε Launch και περιμένετε.
Eclipse workspace

Αναμένετε μέχρι να τελειώσει το άνοιγμα του Eclipse.
Άνοιγμα Eclipse

Αφού ανοίξει, μπορούμε να γράψουμε και το πρώτο πρόγραμμα Hello world για να δούμε εάν δουλεύει.

Και πλέον είμαστε έτοιμοι για να γράψουμε τα προγράμματά μας στην γλώσσα Java.

Περισσότερες πληροφορίες δείτε στην σελίδα https://wiki.eclipse.org/Eclipse/Installation

Tue, Sep 07, 2021

Απενεργοποίηση ήχου κάμερας κατά την λήψη screenshot

Camera

ΠΡΟΒΛΗΜΑ

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

ΛΥΣΗ

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

Για αρχή μετονομάστε τον ήχο για να το έχετε σε περίπτωση που θέλετε να τον επαναφέρετε. Αυτό γίνεται με την εντολή (μία γραμμή):
sudo mv /usr/share/sounds/freedesktop/stereo/camera-shutter.oga /usr/share/sounds/freedesktop/stereo/camera-shutter-backup.oga

Αντικαταστήστε το με ένα κενό ήχο (μία γραμμή).
sudo ffmpeg -f lavfi -i anullsrc -t 0.5 -c:a libvorbis /usr/share/sounds/freedesktop/stereo/camera-shutter.oga

Σε περίπτωση που θέλετε να επαναφέρετε τον ήχο της κάμερας, απλά δώστε την εντολή (μία γραμμή):
sudo mv /usr/share/sounds/freedesktop/stereo/camera-shutter-backup.oga /usr/share/sounds/freedesktop/stereo/camera-shutter.oga

Αν έχετε βρει κάποιον άλλο τρόπο, αφήστε τον στα σχόλια.

Tue, Aug 17, 2021

Ποια είναι η ροή μετάφρασης στο GNOME

GNOME Logo

ΠΡΟΒΛΗΜΑ

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

ΠΡΟΛΟΓΟΣ

Εδώ θα δούμε πως μεταφράζουμε στο GNOME. Υπάρχουν αναλυτκές οδηγίες στην ιστοσελίδα του GNOME. Το GNOME χρησιμοποιεί μια διαδικτυακή εφαρμογή που ονομάζεται Damned Lies (DL) για να διαχειριστεί τη ροή της μεταφραστικής εργασίας και να παράγει στατιστικά στοιχεία για να παρακολουθεί την πρόοδο της μετάφρασης. Το DL προορίζεται ειδικά για χρήση στο GNOME. Παλαιότερα υπήρχε ένα ξεχωριστό εργαλείο που ονομαζόταν Vertimus αλλά έχει συγχωνευτεί σε DL. Οι συμμετέχοντες στη μετάφραση του GNOME ανήκουν σε ομάδες μετάφρασης, μία για κάθε γλώσσα στην οποία μεταφράζεται το GNOME και μπορούν να έχουν έναν από τους τρεις ρόλους: translator, reviewer και committer.

Ρόλοι μετάφρασης

1. Translators (μεταφραστές)

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

2. Reviewer (ελεγκτές)

Οι ελεγκτές είναι μεταφραστές του GNOME στους οποίους ανέθεσε ο συντονιστής της ομάδας να ελέγξουν τις πρόσφατα προτεινόμενες μεταφράσεις (από τους μεταφραστές). Έχουν πρόσβαση σε όλες τις ενέργειες που είναι διαθέσιμες σε μεταφραστές με την προσθήκη κάποιας εργασίας ανασκόπησης (κλειδώνουν ένα αρχείο μετάφρασης για να το διορθώσουν και το επισημαίνουν ως έτοιμο να συμπεριληφθεί-υποβληθεί στο GNOME).

3. Committer (καταχωριστές)

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

Η ροή μετάφρασης

Η ροή εργασίας που χρησιμοποιείται για τη διαχείριση των μεταφράσεων ονομάζεται Vertimus Workflow. Περιγράφει τις διάφορες καταστάσεις και ενέργειες που είναι διαθέσιμες κατά τη διαδικασία μετάφρασης μιας ενότητας. Την ροή μπορείτε να την δείτε στην παρακάτω φωτογραφία.
Vertimus Workflow

Αφού μάθαμε τον κάθε ρόλο, θα δούμε λίγο την διαδικασία.
Η Ελληνική κοινότητα, μεταφράζει εδώ.

  • Η βασική κατάσταση μιας ενότητας είναι Καμία τρέχουσα ενέργεια, η οποία εμφανίζεται ως «Ανενεργή» στο Damned lies.
  • Ένας μεταφραστής μπορεί στη συνέχεια να αποφασίσει να εργαστεί σε μια ενότητα, οπότε θα κάνει Ανάληψη για μετάφραση που αλλάζει την κατάσταση από Καμία τρέχουσα ενέργεια -> Ανάληψη για μετάφραση.
  • Ένα άλλο μονοπάτι που δίνει τη δυνατότητα σε κάποιον να κάνει Ανάληψη για μετάφραση είναι όταν το αρχείο μετακινείται από την κατάσταση Ανασκόπησης -> Μεταφράσεων. Αυτό συμβαίνει όταν μια ενότητα δεν έχει μεταφραστεί σωστά.
  • Όταν ολοκληρωθεί η μετάφραση, ο μεταφραστής μπορεί στη συνέχεια να ανεβάσει τη νέα μετάφραση, και έτσι αλλάζει την κατάσταση από τη Μετάφραση -> Μεταφρασμένο.
  • Και πάλι, εάν μια ενότητα χρειάζεται να βελτιωθεί μετά τη μετάφραση, μετακινείται από το Μεταφρασμένο -> Μετάφραση.
  • Λάβετε υπόψη ότι οι μεταφραστές μπορούν να προσθέσουν σχόλια σε οποιοδήποτε σημείο για να δώσουν περισσότερο περιεχόμενο στη δουλειά τους.
  • Αφού έχει μεταφραστεί από τον μεταφραστή, έχει ελεγχθεί για λάθη στη μετάφραση, τότε είναι έτοιμο να καταχωρηθεί από τον καταχωριστή στο αποθετήριο του GNOME.
    ΣΗΜΕΙΩΣΗ: Οι μεταφραστές πρέπει να έχουν εισάγει πλήρως το όνομά τους ώστε να μπορέσει να γίνει καταχώρηση του αρχείου. Αλλιώς θα πρέπει ο συντονιστής να επικοινωνήσει με τον μεταφραστή, να το συμπληρώσει για να μπορέσει να γίνει καταχώρηση σωστά. Όμως επειδή είμαστε εθελοντές και ο χρόνος του καθενός είναι πολύτιμος, υπάρχει περίπτωση απλά να γίνει καταχώρηση με χρήση όνομα άλλου μεταφραστή.

ΠΗΓΕΣ/ΠΕΡΙΣΣΟΤΕΡΗ ΑΝΑΓΝΩΣΗ

Fri, Jul 23, 2021

Μοντέλα ανάπτυξης και συνεργασίας openSUSE και SLE

openSUSE

Τύποι διανομών Linux

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

Πρώτα λοιπόν, υπάρχουν τρεις βασικοί τύποι διανομών Linux που καθορίζονται από τους κύκλους κυκλοφορίας τους και, συνεπώς, από το κοινό τους:

Κυλιόμενη Έκδοση:

  • Τελευταία λέξη της τεχνολογίας
  • Κυκλοφορία το συντομότερο δυνατό (CI / CD)
  • Παραδείγματα: openSUSE Tumbleweed, ArchLinux, Manjaro, Gentoo

Τακτική Έκδοση:

  • Κυκλοφορία από μια έως δύο φορές το χρόνο
  • Ενημερώνει ολόκληρη τη διανομή σε κάθε κυκλοφορία
  • Παραδείγματα: Ubuntu, Fedora, Debian

Έκδοση μακροπρόθεσμης υποστήριξης / Εκδόσεις για επιχειρήσεις:

  • Αργός ρυθμός "ανάπτυξης" (περίπου κυκλοφορεί ετησίως)
  • Ελάχιστα προγράμματα αναβαθμίζονται μεταξύ των δευτερευουσών κυκλοφοριών. Μόνο η κύρια κυκλοφορία φέρνει μεγάλες αλλαγές
  • Παραδείγματα: openSUSE Leap, Ubuntu LTS, SUSE Linux Enterprise Server, SUSE Linux Enterprise Desktop, RHEL

Αυτή είναι η βάση για την κατανόηση των σχέσεων μεταξύ SUSE Linux Enterprise και το openSUSE. Όπως θα δούμε στην επόμενη ενότητα, τα openSUSE Tumbleweed, openSUSE Leap και SUSE Linux Enterprise συνδέονται μεταξύ τους.

Κοινή ανάπτυξη openSUSE & SLE

Ακολουθεί μια απλή εικόνα που περιγράφει τη σχέση μεταξύ του openSUSE & SLE από την ημερομηνία κυκλοφορίας του Leap 15.0 (25 Μαΐου 2018):
Κοινή ανάπτυξη openSUSE & SLE

Το Factory Project είναι το αποθετήριο για ανάπτυξη κώδικα όπου βασίζονται όλες οι διανομές SUSE και openSUSE, ΔΕΝ είναι διανομή Linux! Είναι η άμεση πηγή για το openSUSE Tumbleweed και τελικά καταλήγει στις διανομές openSUSE Leap και SUSE Linux Enterprise. Με απλά λόγια, το Factory είναι το αποθετήριο ανάπτυξης για το openSUSE και το SUSE!

Τώρα ίσως αναρωτιέστε ποια είναι η σχέση Factory and openSUSE Tumbleweed; Είναι πολύ απλό! Το Factory λαμβάνει μια συνεχή ροή κώδικα χωρίς καμία σωστή Διασφάλιση Ποιότητας εκτός από κάποια ανασκόπηση κώδικα (κυρίως από bots), οπότε η κοινότητα του openSUSE δημιουργεί στιγμιότυπα του Factory που έχουν δοκιμαστεί με το openQA. Όταν ένα στιγμιότυπο είναι απαλαγμένο από σφάλματα, αποτελεί ενημέρωση για το openSUSE Tumbleweed, ως εκ τούτου χαρακτηρίζεται ως κυλιόμενη έκδοση.

Στη συνέχεια πιο κάτω στην εικόνα είναι η σχέση μεταξύ openSUSE Tumbleweed, openSUSE Leap και SUSE Linux Enterprise.

Με βάση το κοινό πρόγραμμα, το openSUSE Leap και το SLE έχουν ένα προβλέψιμο χρονικό πλαίσιο κυκλοφορίας: μια κυκλοφορία κάθε 12 μήνες και μια επικάλυψη υποστήριξης 6 μηνών για την προηγούμενη και τη νέα κυκλοφορία. Επομένως έρθει η στιγμή, γίνεται ένα στιγμιότυπο του openSUSE Tumbleweed και οι διανομές openSUSE Leap και SLE θα χρησιμοποιήσουν αυτό το στιγμιότυπο για να δημιουργηθούν οι επόμενες εκδόσεις των διανομών.

Με αυτήν την εικόνα, βλέπουμε ότι είναι μόνο μια ομάδα πηγών πακέτων που θα χρησιμοποιήθούν για την κατασκευή της αντίστοιχης διανομής. Αλλά προτού δούμε πως χτίζεται, σημειώστε ότι είναι μια απλοποιημένη προβολή επειδή υπάρχει πάντα εναλλαγή μεταξύ openSUSE Leap / SLE και openSUSE Tumbleweed. Δεν είναι συγχρονισμός πακέτων προς μια κατεύθυνση, επειδή κατά τη φάση ανάπτυξης των διανομών, εντοπίζονται σφάλματα και φυσικά οι διορθώσεις υποβάλλονται πίσω στο Factory, έτσι ώστε το openSUSE Tumbleweed να λαμβάνει επίσης διορθώσεις από τη διαδικασία.

Στην εταιρία SUSE, ο ανοικτός κώδικας είναι στα γονίδια των υπαλλήλων, οπότε πάντα συνεισφέρουν στο openSUSE, αλλά από το 2017, η υπεύθυνη ομάδα για την κυκλοφορία της SUSE είχε επιβάλει έναν κανόνα που ονομάζεται «Factory First Policy», ο οποίος αναγκάζει τις υποβολές κώδικα για το SLE να προωθηθούν πρώτα στο Factory πριν εισαχθούν στην διανομή SLE. Αυτή είναι η συνέχεια της αρχής «Upstream First» στο επίπεδο διανομής. Με αυτό τον τρόπο, μειώνεται η προσπάθεια συντήρησης και αξιοποιείται η κοινότητα.

Όταν γίνεται μια υποβολή κώδικα από υπάλληλο της SUSE για την ενσωμάτωση στην SLE15, ένας αυτοματοποιημένος έλεγχος θα διασφαλίσει ότι έγινε παρόμοια υποβολή στο αποθετήριο Factory. Εάν δεν έγινε, η υποβολή θα απορριφθεί αυτόματα και θα απαιτήσει από την υπεύθυνη ομάδα για την κυκλοφορία της SUSE να ρίξει μια πιο προσεκτική ματιά και να ζητήσει την υποβολή κώδικα στο αποθετήριο Factory. Με αυτήν την πολιτική «Factory First Policy», διασφαλίζεται ότι οποιαδήποτε ανάπτυξη της SLE ωθείται και στο openSUSE ακόμη και πριν γίνει δεκτή στην SLE!

Πώς «χτιζόταν» οι openSUSE & SLE μέχρι τώρα

Ας δούμε λίγο τεχνικά πώς δημιουργήθηκαν οι διανομές openSUSE & SLE μέχρι την έκδοση openSUSE Leap 15.2 και την SUSE Linux Enterprise 15 Service Pack 2.
Πώς «χτίζονται» οι openSUSE & SLE μέχρι τώρα

Η κορυφή της εικόνας αναφέρθηκε στο προηγούμενο τμήμα του άρθρου. Γίνεται χρήση της ίδιας ομάδας πηγών πακέτων για τη δημιουργία της openSUSE Leap και της SUSE Linux Enterprise Server.

Αυτό συμβαίνει επειδή το openSUSE Leap και το SLE ήθελαν
  • να μοιράζονται άμεσα μια βασική σειρά πακέτων (πράσινο σκούρο διαμάντι στην κορυφή)
  • να έχουν «επιπλέον» πακέτα (πράσινα ανοικτό σχήμα «V») που μπορούν να ενημερώνονται πιο συχνά ή να έχουν διαφορετικό επίπεδο υποστήριξης

Για την openSUSE είναι πολύ απλό, το μεγαλύτερο διαμάντι (πράσινο σκούρο + πράσινο ανοικτό) αντιπροσωπεύει ολόκληρη τη διανομή του openSUSE Leap με όλα τα επίσημα πακέτα.

Για την SUSE Linux Enterprise, οι επίσημες διανομές και πακέτα είναι μόνο το πράσινο σκούρο διαμάντι στην κορυφή! Αλλά το υπόλοιπο πράσινο ανοικτό "V" θα είναι διαθέσιμο στο Package Hub. Το Package Hub είναι το αποθετήριο κοινότητας που δημιουργήθηκε από την κοινότητά για τις SUSE Linux Enterprise Server και Desktop, αλλά φυσικά το SUSE δεν υποστηρίζει άμεσα αυτά τα πακέτα, αλλά υποστηρίζονται από την κοινότητα.

Το σημαντικό εδώ είναι ότι η openSUSE Leap 15.2 και η SLE 15 SP2 χρησιμοποιούν τις ίδιες πηγές πακέτων και μοιράζονται τις ίδιες λίστες πακέτων, αλλά δεν χρησιμοποιούν τα ίδια εκτελέσιμα (binaries) rpm!

openSUSE & SLE στο μέλλον

Μόλις είδαμε τη «περίεργη συμβίωση», αλλά πώς μπορεί να γίνει καλύτερη; Είναι εύκολη, απλοποιώντας τη μεγάλη εικόνα:
openSUSE & SLE στο μέλλον

Στην προηγούμενη ενότητα (Πώς «χτιζόταν» οι openSUSE & SLE μέχρι τώρα) η διαδικασία χρησιμοποιήθηκε από τουλάχιστον τις 3 τελευταίες κυκλοφορίες, αλλά η SUSE πίστεψε ότι θα μπορούσε να κάνει περισσότερα, οπότε έκανε την πρόταση Closing the Leap Gap (Κλείσιμο του χάσματος με την Leap) στην κοιντότητα openSUSE, κατά τη φάση ανάπτυξης της SLE 15 SP2. Για να συντομεύσουμε την ιστορία, η πρόταση ήταν να συμπεριληφθούν τα προκατασκευασμένα αρχεία binaries από το SLE, εκτός από τα πηγαία binaries που ήδη παρέχονται, για να αυξηθεί η συμβατότητα. Για περισσότερες λεπτομέρειες σχετικά με όλες τις πτυχές αυτής της πρότασης, δείτε την σελίδα openSUSE FAQ.

Οι αλλαγές έγιναν επειδή για ομαλότερη μετανάστευσης μεταξύ των SLE και openSUSE Leap αλλά και για μια πιο άμεση συνεργασία με την κοινότητα openSUSE. Επομένως, η SUSE διευκολύνει την κοινότητα να συνεισφέρει απευθείας στο openSUSE και το SLE μέσω νέων αποκλειστικών καναλιών. Έτσι, η κοινότητα εξακολουθεί να είναι σε θέση να διαμορφώσει και να υποβάλει αλλαγές στην επόμενη έκδοση διανομής με αυτήν το νέο τρόπο.

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

Όπως μπορείτε να δείτε, η σχέση μεταξύ του openSUSE και του SLE δεν είναι από μόνη της περίπλοκη, αλλά είναι αλήθεια ότι επιλέχθηκε η συμβίωση που επιτρέπει τη δημιουργία ορίων μεταξύ μιας κοινοτικής διανομής κυλιόμενης κυκλοφορίας (openSUSE Tumbleweed), μιας κοινοτικής διανομής LTS (openSUSE Leap) και μιας εταιρική διανομή (SLE). Με την πρόταση Closing the Leap Gap, αυτό που θέλει η SUSE να επιτύχει είναι να συνεχίσει να βελτιώνει την αποτελεσματικότητα της συνεισφοράς από και προς την κοινότητα και την εταιρική πλευρά.

Μοιραζόμαστε περισσότερα από τον κώδικα

Τέλος, η κοινότητα openSUSE και το SUSE μοιράζονται κάτι περισσότερο από απλώς κώδικα! Αλλά αν σταθούμε καθαρά στην ανάπτυξης λογισμικού, πρέπει να μιλήσουμε για το πώς τα openSUSE και SLE δημιουργούνται και δοκιμάζονται κατά τη φάση της συνδεδεμένης ανάπτυξής τους.

Στη συνέχεια, θα μιλήσουμε για μερικές από τις υποκείμενες διαδικασίες που συνδέουν τα πάντα μαζί, αλλά και για τα εξαιρετικά εργαλείο που χρησιμοποιούμε: Open Build Service (build) και openQA (test).

Περαιτέρω αναγνώσεις / βίντεο: ΠΗΓΗ:
https://www.suse.com/c/how-suse-builds-its-enterprise-linux-distribution-part-5/ (τροποποιημένο)

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.2.4-0-installer.run).

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

3. Στη συνέχεια εισάγετε την παρακάτω εντολή, ώστε να εκκινήσει η εγκατάσταση:
sudo ./xampp-linux-x64-*-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-x64.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. cd /opt/lampp

2. sudo ./uninstall

3. sudo rm-rf /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. Θα του σώσετε αρκετό χρόνο.