Category Archives: Προγραμματισμός

Κώδικες και λοιπά…..

Εγκατάσταση Βιβλιοθήκης GDAL για εφαρμογές γεωπληροφορικής

Η βιβλιοθήκη GDAL είναι το Α και το Ω στον τομέα της Γεωοληροφορικής. Όμως πως την εγκαθιστούμε στο Ubuntu GNU/Linux μηχάνημα μας; Απλά ακολουθήστε τα βήματα.

Κατ αρχάς θα πρέπει να εγκαταστήσουμε τις εξαρτήσεις:


sudo apt-get install gcc g++ make python-pip

Μετά θα κατεβάσουμε τον πηγαίο κώδικα της βιβλιοθήκης και θα τον μεταγλωτήσουμε.Όλες οι εκδόσεις της βιβλιοθήκης είναι στο https://trac.osgeo.org/gdal/wiki/DownloadSource. Συνήθως βολεύει το url της μορφής:

http://download.osgeo.org/gdal/X.X.X/gdal-X.X.X.tag.gz

Που όπου ‘Χ.X.X’ αντικαθιστάτε με τον κατάλληλο αριθμό έκδοσης πχ. 2.1.0. Στο άρθρο όπου δείτε Χ.Χ.Χ το αντικαθιστάτε με την θεμιτή έκδοση.

Έτσι στο τερματικό μας εκτελούμε:

wget http://download.osgeo.org/gdal/X.X.X/gdal-X.X.X.tag.gz

Και το αποσυμπιέζουμε το αρχείο με την εντολή:

tar -xvf gdal-X.X.X.tar.gz

Και μεταβάινουμε στον φάκελο:

cd gdal-X.X.X

Και εκτελούμε την γνωστή τριάδα για την μεταγλώττιση και εγκατάσταση της βιβλιοθήκης:

./configure
make
sudo make install

Εφόσον δεν μας πετάξει κάποιο σφάλμα τότε εκτελούμε την παρακάτω εντολή για να εγκαταστήσουμε τις εξαρτήσεις (bindings) για την python:

pip install GDAL==X.X.X

Αργότερα τρέχεις:

export LD_LIBRARY_PATH="/usr/local/lib/:/usr/lib"

Προκειμένου η python να εντοπίσει την βιβλιοθήκη.

Σε περίπτωση που χρησιμοποιείτε σαν IDE το Pycharm κάντε τα εξής βήματα:

  1. Επίλεγετε «Run» -> «Edit Configurations» (βλ εικόνα)
  2. Στο Παράθυρο που μας ανοίγει επίλεξτε το κουμπί «…» εκεί που λέει «Enviromental Variables»
  3. Μετά κάντε κλικ στο κουμπί «+» και μετά Ορίστε σαν name «LD_LIBRARY_PATH» και σαν τιμή «/usr/local/lib/:/usr/lib» χωρίς τα «
  4. Πλέον πατήστε «οκ» σε όλα τα ανοικτά υπο-παράθυρα και πατήστε τo κουμπί Run προκειμένου να τρέξει το πρόγραμμα

Για μονιμότερο ορισμός της μεταβλητής παραμέτρου (enviromental variable) μπορείτε να βάλετε την εντολή:

export LD_LIBRARY_PATH="/usr/local/lib/:/usr/lib"

είτε στο τέλος του αρχείου «~/.profile» για να είναι ρυθμισμένο μόνο στον χρήστη σου είτε στο τέλος του αρχείου «/etc/profile» προκειμένου να είναι ορισμένη για όλους τους χρήστες του συστήματος.

Μετάφραση custom wordpress θέματος με την χρήση του poedit.

Πολλές φορές θέλουμε πολυγλωσσική υποστήριξη από το υπάρχων wordpress θέμα μας. Ο ποιο ασφαλής τρόπος να γίνει αυτό είναι με την χρήση αρχείων .po ή .pot που υποστηρίζει το GNU gettext. Δε ο τρόπος αυτός ενδείκνυται και σε ανάπτυξη μη-wordpress σελίδων και εφαρμογών.  Στο άρθρο αυτό θα σας δείξουμε βήμα – βήμα πως να μεταφράσετε το το ήδη υπάρχων θέμα που μόλις δημιουργήσατε.

Κατ αρχάς θα πρέπει να εγκαταστήσουμε το poedit σε Ubuntu GNU/Linux γίνετε με την εντολή:

sudo apt-get install poedit

Για τις υπόλοιπες διανομές GNU/Linux κοιτάξτε στα εκάστοτε αποθετήρια εάν δεν υπάρχει η τρέχετε windows μπορείτε να το κατεβάσετε και να το εγκαταστήσετε από το https://poedit.net/download . Δε για wordpress παρόλο που ΔΕΝ είναι απαραίτητο υπάρχει η επί πληρωμή έκδοση του poedit που έχει καλύτερη υποστήριξη.

Εφόσον το εγκαταστήσετε θα πρέπει να εκτελέσετε τα εξής όπως φαίνεται στο παρακάτω παράδειγμα. Για τις ανάγκες του παραδείγματος θα σας δείξω πως μετέφρασα το testTheme θέμα που ανέπτυξα για εκπαιδευτικούς σκοπούς.

Κατ’ αρχάς θα πρέπει τα αρχικά προς μετάφραση strings στον php & html κώδικα του θέματος να είναι στα αγγλικά. Δε να περικλείονται από tags και να έχουν την εξής μορφή _e(‘Untranslated string’). Πχ. Ας πούμε πως κάπου στα php αρχεία του θέματός μας έχουμε:

<h1>Goodmorning</h1>

Θα πρέπει να γίνει:

<h1><?=_e('Goodmorning')? ></h1>

Εφόσον το κάνουμε αυτό ΓΙΑ ΟΛΑ τα string που θέλουμε να μεταφράσουμε τότε εκτελoύμε το poedit. Θα μας εμφανιστεί το εξής παράθυρο (περιβάλλον στα Ελληνικά)

Τότε από το μενού επιλέγουμε Αρχείο -> Νέο

Και στο παράθυρο που μας ανοίγετε επιλέγουμε την γλώσσα που επιθυμούμε για Ελληνικά επιλέγουμε «Ελληνικά (Ελλάδα)» όπως βλέπετε στην παρακάτω εικόνα.

Και μετά κάνουμε κλίκ στο «Αποθήκευση».  Στο παράθυρο που μας ανοίγετε επιλέγουμε την διαδρομη «^εκεί που είναι εγκατεστημένο το wordpress^/wp-content/languages/themes/όνομα_theme-el.po»  πχ στην περίπτωσή μου το wordpress είναι εγκατεστημένο στον φάκελο «/home/pcmagas/Kwdikas/php/htdocs/wordpress» έτσι η μετάφραση του θέματος μου θα είναι στην διαδρομή «/home/pcmagas/Kwdikas/php/htdocs/wordpress/wp-content/languages/themes/testTheme-el.po»

Μετέπειτα θα πρέπει να ρυθμίσουμε το που θα είναι τα αρχεία κειμένου που θα θέλουμε να μεταφράσουμε. Αυτό γίνετε κάνοντας κλίκ στο κουμπί όπως βλέπετε στην παρακάτω εικόνα:

Αργότερα κάνουμε κλίκ στα εξής όπως δείχνει η παρακάτω εικόνα, το θέμα μας θα είναι σε έναν στον φάκελο «^εκεί που είναι εγκατεστημένο το wordpress^/wp-content/themes/^όνομα_θέματος^» πχ. στην περίπτωσή μου είναι το «/home/pcmagas/Kwdikas/php/htdocs/wordpress/wp-content/themes/testTheme» . Σημείωση να επιλέξουμε την καρτέλα «Λέξεις-κλειδιά των πηγών» μετά την επιλογή του φακέλου που είναι το θέμα μας:

Στην Καρτέλα «Λέξεις-κλειδιά των πηγών»  κάνουμε κλικ στο κουμπί που μας δείχνει η παρακάτω εικόνα και στο πεδίο που μας υποδεικνύει πληκτρολογούμε «_e» (χωρίς τα εισαγωγικά) Μετά πατάμε το κουμπί «Εντάξει». Πλέον το παράθυρό μας έχει την εξής μορφή, στην παρακάτω εικόνα σας επεξηγώ τα ποιο χρήσιμα πεδία και κουμπιά του UI:

Πλέον μπορείτε να ορίσετε μετάφραση για τα εκάστοτε κείμενα που θέλετε να εμφανίζονται πολυγγλωσικά.

Τα παραπάνω βήματα δοκιμάστικαν στην έκδοση Poedit 1.8.7.1 σε Ubuntu GNU\Linux 16.04.

Εγκατάσταση Ionic Framework για ανάπτυξη υβριδικών mobile εφαρμογών σε Windows και Ubuntu GNU/Linux.

To ionic framework είναι ένα framework (σώπα σας είπα κάτι νέο) που συνδιάζει Angular.js και Apache cordova  προκειμένου μέσω javascript να μπορείς να δημιουργείς mobile εφαρμογές για IOS και Android.

Για να παίξει το εν λόγο framework θέλουμε την node.js, για windows την κατεβάζουμε από το https://nodejs.org/en/ και απλά πατάμε next next next ενώ σε Ubuntu linux δίνουμε:

sudo apt-get install nodejs npm

Μετά θα χρειαστούμε το git σε windows το κατεβάζουμε από την σελίδα http://www.git-scm.com/download/win ενώ σε linux δίνουμε στο τερματικό (Σε windows είναι σημαντικό να επιλέξετε να σας εγκαταστήσει και το bash κέλυφος (απλά πατήστε next next next) next next next):

sudo apt-get install git

Μετά σε windows ανοίγουμε το git-bash ενώ σε gnu/linux έχουμε ανοικτό το τερματικό μας.

Σημείωσεις:

  1. Σε Windows από εδώ και στο εξής οι εντολές θα τρέχουν από το git-bash.
  2. Σε Windows στις εντολές που αρχίζουν με sudo ΔΕΝ το βάζουμε.
    πχ. Η εντολή:

    sudo npm install -g ionic cordova

    Στο git-bash σε Windows θα την τρέξετε έτσι:

    npm install -g ionic cordova

Τώρα είτε στο terminal είτε στο git-bash δίνουμε τις εξής εντολή :

sudo npm install -g ionic cordova

Τώρα έχουμε 2 επιλογές:

  1. Να δημιουργήσουμε την δικιά μας εφαρμογή.
  2. Να συνεισφέρουμε στην ανάπτυξη ήδη υπάρχουσας εφαρμογής από το github.

Επιλογή 1:

Δίνουμε:

ionic start ^όνομα app^ tabs

Για το στυλ tabs του ionic:
Application with tabs generated by Ionic
ή

ionic start ^όνομα app^ sidemenu

Για να δημιουργία του στυλ με πλαινό μενού του ionic:
Application with sidebar generated by Ionic
(Δεν σας δείχνω την επιλογή bare διότι δεν βολεύει αν θέλετε να αρχίσετε μια νέα εφαρμογή η αν μαθένετε το framework)

Όπου ^ονομα app^ είναι πως θέλετε να ονομάσετε μια την εφαρμογή σας. Σας επισημαίνω ότι θα δημιουργηθεί ένας φάκελος στον τρέχων φάκελο που είστε στο τερματικό η στο git bash (που ουσιαστικά είναι το bash κέλυφος που χρησιμοποιεί το gnu/linux σε windows περιβάλλον)

Όταν μας ρωτήσει «Create an ionic.io account to send Push Notifications and use the Ionix View app» πορς το παρόν δίνουμε n. (Ειδάλλως y αν το χρειάζεστε για κάτι άλλο προσωπικά ΔΕΝ το έχω χρησιμοποιήσει.)

πχ. Αν δώσω την εντολή:

ionic start sample tabs

Θα δημιουργήσει τον φάκελο sample και θα βάλει μέσα σε αυτό τα κατάλληλα αρχεία για να δημιουργήσει ένα βασικό σκελετό εφαρμογής με tabs.

Θα το δούμε ότι δημιουργήθηκε ο φάκελος δίνοντας:

ls

Και εντοπίζοντας με το μάτι τον φάκελο που δημιουργήθηκε.

Μετά δίνουμε:

cd ^όνομα app^

Και μετά:

ionic serve

Για να το δοκιμάσετε στον browser σας. Αν πάτε πίσω στην κονσόλα (η στο git bash) και πατήσετε q και μετά enter θα κλείσει η «υποτυπώδης» web server που σας δείχνει την εφαρμογή.

Σημείωση: Η παραπάνω εντολή ενδεχομένως να σας βγάλει επιλογή δικτύου επιλέγουμε το 2 (localhost). Ακόμη
Τα windows θα σας βγάλει ένα μήνυμα για το εάν επιτρέπετε αυτήν την εφαρμογή να τρέχει στο δίκτυο όπου σαφώς λέμε ότι το επιτρέπουμε.

Για την Επιλογή 2:

Για την επιλογή αυτή θα υποθέσουμε ότι έχουμε ένα αποθετήριο στο github και θέλουμε να το κάνουμε clone.

Δημιουργούμε έναν φάκελο με την εντολή:

mkdir ^όνομα φακέλου^

Και μετά δίνουμε:

cd ^όνομα φακέλου^

Και μετά κάνουμε clone το github αποθετήριo:

git clone ^repo_name^ .

Σημείωση: μην ξέχάσετε την . στο τέλος.

Όπου ^όνομα φακέλου^ ένα χαρακτηριστικό όνομα για τον φάκελο που θα φιλοξενήσει το project.
Όπου ^repo_name^ copy paste από το github ή bitbucket. (Για github βλ. τα βελάκια στην παρακάτω εικόνα)
Field fto copy the repo

Πχ. Πως να κατεβάσετε τον κώδικα του faster (μιας εφαρμογής που δημιουργήθηκε από στο #crownpolicy #transport hackathon):

Έστω τον φάκελο που θέλουμε να αποθηκεύσουμε την εφαρμογή ονομάζεται faster έτσι θα δώσουμε (είτε στο τερματικό του gnu/linux είτε στο git bash):

mkdir faster
cd faster
git clone git@github.com:kawai-developers/faster.git .

Και για να δούμε πως παίζει δίνουμε:

ionic serve

Φόρτωση σελίδας JSP από Servlet

Ο τρόπος που κάνουμε render ένα περιεχόμενο σε Servlet δεν είναι βολικός. Ειδικά για Desighners ποιο βολικό είναι να δίνει στεγνή HTML και ο Developer να βάζει 2-3 προσθήκες κώδικα για functionality. Ειδικά σε One (Single)-page applications αυτό δεν είναι καθόλου βολικό. Γι αυτό δύνεται η δυνατότητα να φορτώνεις μια σελίδα JSP εντός ενός servlet.
Συνέχεια

Εισαγωγή Παραμέτρων από φόρμα ή URL από Java Servlets σε κωδικοποίηση UTF-8

Πολλάκις έχουμε χρειαστεί να εισάγουμε μια φόρμα με δεδομένα. Αποτελεί εδώ και δεκαετίες πλέον ένα αναπόσπαστο μέρος του web, έτσω και για τις βασικές πληροφορίες login ακόμα και σε administration επίπεδο. Οι δημοφιλέστεροι τρόποι για να λαμβάνουμε δεδομένα είναι ή μέσω GET ή μέσω POST.
Σημείωση:
Αν δεν ξέρετε πως να κάνετε servlets μπορείτε να δείτε τα παρακάτω άρθρα:

Όπως και σε αυτό το άρθρο .

Για την μέθοδο GET πρέπει να υλοποιήσετε αυτήν την μέθοδο:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

Ενώ για την μέθοδο POST την παρακάτω μέθοδο:


public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

Εφόσον υλοποιήσαμε τις μεθόδους εντός αυτές πρέπει να καλέσετε την εξής μέθοδο προκειμένου να πάρετε το αποτέλεσμα:
Συνέχεια

Δημιουργία web εφαρμογών σε java (servlet) με Maven

Έχουμε δει το πως να στήνεις σε πολύ απλά τον tomcat σε ubuntu και τα τρέχεις ένα αρχείο .war σε αυτόν (βλ. εδώ) και πως σε maven να κάνεις μια απλή java εφαρμογή (βλ. εδώ). Σήμερα θα δούμε την web πλευρά της java και πως μπορείς σχετικά εύκολα να κάνεις servlets με maven.

Συνέχεια

Δημιουργία και τρέξιμο web εφαρμογών μέσω Maven και Tomcat σε Ubuntu (Quick ‘n’ Dirty)

Mε την Java μπορείς να κάνεις εφαρμογές που είτε τρέχουν μέσω του Browser (αν και λόγο ότι προσφέρει πολλά κενά ασφαλείας αυτή η μέθοδος δεν χρησιμοποιείται και καλό είναι να έχετε ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΑ τα applet από τον Browser σας) είτε μέσω του επονομαζόμενου application server.

Υπάρχουν πολλές επιλογές, σε ubuntu linux μέσω αποθετηρίων μπορείτε να βάλετε έναν από τους 2:

  1. Jboss
  2. Tomcat

Εμείς σε αυτό το άρθρο θα ασχοληθούμε το πως να στήσετε τον tomcat και να τρέχετε εφαρμογές με την χρήση war αρχείων. (Αντίστοιχά των αρχείων .jar αλλά για web εφαρμογές)

Κατ’ αρχάς εγκαθιστούμε τον tomcat

sudo apt-get install tomcat7 tomcat7-admin

Και μπορούμε να την ξεκινήσουμε με την εντολή:

sudo service tomcat7 start

Ομοίως τον σταματάμε με την εντολή:

sudo service tomcat7 stop

Μετά θα δημιουργήσουμε έναν χρήστη με τον οποίο θα μπορούμε να ανεβάσουμε την εφαρμογή μας:
Κατ’ αρχάς ανοίγουμε με τον αγαπημένο μας editor το αρχείο /etc/tomcat7/tomcat-users.xml για το παράδειγμά μας θα χρησιμοποιήσουμε τον nano:

sudo nano /etc/tomcat7/tomcat-users.xml

Και στο αρχείο που θα μας ανοίξει ανάμεσα Στο βάζουμε μια εγραφή της εξής μορφής:

 <user username="%username%" password="%password%" roles="manager-gui,admin-gui" />

Όπου %username% (χωρίς τα %) ένα usernane και %password% (χωρίς τα %) ένα password (Που ΔΕΝ κρυπτογραφείτε από τον tomcat).

Μετά δίνουμε:

sudo service tomcat7 force-reload

Μετά ανοιγουμε έναν browser και δίνουμε http://127.0.0.1:8080/manager ή http://<url_server&gt;:8080/manager αν τον έχουμε εγκαταστήσει σε έναν server με url <url_server>

Θα σας βγάλει ένα παράθυρο που θα σας πει ότι πρέπει να δώσετε ένα username και ένα password. Εσείς δώστε το username και το password που βάλατε στο /etc/tomcat7/tomcat-users.xml και θα σας βγάλει σε μια οθόνη που θα μοιάζει έτσι:
Στιγμιότυπο από 2015-02-28 17:38:32

Εμάς μας ενδιαφέρει η φόρμα που θα είναι όπως αυτή στην παρακάτω εικόνα:
upload_war

Που θέλει ένα αρχείο .war που το βάζουμε εκεί και το κάνουμε Upload και αυτό στην συνέχεια τρέχει την εφαρμογή μας.

Εναλλακτικά τα αρχεία .war μπορείτε να τα βάλετε και στο /var/lib/tomcat7/webapps για να τρέξουν.

Αν έχετε την εφαρμογή σε αρχείο .war τότε δεν χρειάζεται τα παρακάτω.

Για να κάνουμε ένα αρχείο .war θα χρησιμοποιήσουμε το maven. Έχουμε κάνει γι αυτό ένα άρθρο λίιιγο παλαιότερα από τότε που γράφτηκε αυτό το άρθρο.

Τα βήματα είναι τα ίδια με το άρθρο στο προηγούμενο link την εξαίρεση ότι το application αρχικοποιείται με την εντολή (Απλά αν εκτελέσετε την εντολή θα το έχετε έτοιμο δεν χρειάζεται τίποτε παραπάνω):


mvn -B archetype:generate  -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=<basiko package>  -DartifactId=<onoma project>

Όπου <basiko package>,<onoma project> είναι ότι εξηγεί και το άρθρο για το maven. Ίσως ασχοληθούμε αργότερα, σε άλλο άρθρο για το πως θα κάνουμε την δικιά μας web εφαρμογή σε tomcat.

Εφόσον εκτελέσαμε την εντολή με την εντολή:

cd <onoma project> 

Πάμε στον φάκελο του project που κάναμε και με τη εντολή

mvn package

Κάνουμε ένα αρχείο .war που θα βρίσκεται στο path: <onoma project>/target/<onoma project>.war

Αυτό το αρχείο το επιλέγουμε και το κάνουμε upload στην φόρμα αυτή. (Αν το έχουμε ήδη κάνει upload μπορούμε είτε να του αλλάξουμε όνομα είτε να κάνουμε unload το εν λόγο αρχείο και Ξανά upload)

Μετά μπορούμε να δούμε την εφαρμογή μας να τρέχει στο url: http://:8080/<onoma project> ή στο http://localhost:8080/<onoma project> αν το τρέχουμε τοπικά.