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

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

Εγκατάσταση 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> αν το τρέχουμε τοπικά.

Εισαγωγή στο maven (Σε Ubuntu Linux Πάντα)

To maven σύμφωνα με την πρόσφατη εμπειρία μου είναι κάτι αντίστοιχο του make για java που σου επιτρέπει να προσθέτεις έξτρα βιβλιοθήκες (αν χρειάζεται) και να κάνει compile με αυτές το πρόγραμμα σου σε java.

Σε ubuntu τo εγκαθιστάτε με την εντολή:

sudo apt-get install maven

Εφόσον το δημιουργήσαμε μπορούμε με την εντολή:

 mvn -B archetype:generate  -DarchetypeGroupId=org.apache.maven.archetypes  -DgroupId=<βασικό package>  -DartifactId=<όνομα project>

Να δημιουρήσεις ένα βασικό java application

Που στην ουσία θα δημιουργήσει έναν φάκελο <όνομα project> και μέσα σε αυτό θα δημιουργήσει:

  1. Τον φάκελο source που εμπεριέχει τα εξής:
    1. Τον path java/main που βάζεις τον κώδικα Java (εντός του φακέλου που αντιστοιχεί στο <βασικό package>) πχ. αν το βασικό package το λένε kouradoulis θα κάνει το path java/main/kouradoulis Δείτε στο παράδειγμα ποιο κάτω για καλύτερη κατανόηση.)
    2. Το path java/test που είναι για λόγους τεστ.
  2. Το αρχείο pom.xml που βάσεις τις ρύθμιση για compiling και packaging.

Παράδειγμα:Δημιουργία βασικού project με μια κλάση

Εφόσον έχουμε εγκαταστήσει το maven δίνουμε:

mvn -B archetype:generate  -DarchetypeGroupId=org.apache.maven.archetypes  -DgroupId=test -DartifactId=mvnf

Και δημιούργησε το project στον φάκελο mvn με αυτήν την δομή αρχείων:


mvnf
├── pom.xml
└── src
    ├── main
    │   └── java
    │       └── test
    │           └── App.java
    └── test
        └── java
            └── test
                └── AppTest.java

Όπως βλέπεται το βασικό Πακέτο test είναι στην διαδρομή: src/main/java έτσι εκεί βάζετε  όλο τον κώδικα java και τα πακέτα (Καμία σεση με τα πακέτα .deb ή .rpm του Linux).

Το pom.xml θα έχει το περιεχόμενο:


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>mvnf</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>mvnf</name>
<url>http://maven.apache.org</url>
<dependencies>
 <dependency>
   <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>3.8.1</version>
     <scope>test</scope>
  </dependency>
</dependencies>
</project>

Και προκειμένου να τρέξει Θα πρέπει να προσθέσουμε μερικά πραγματάκια:
A) Να του ορίσουμε main class
B) Να του ορίσουμε την έκδοση της java γιατί από προεπιλογή τρέχει σε 1.3 έτσι τα annotations του στυλ @Override της Java 1.5 και νεότερες εκδόσεις δεν τα παίζει.

Για το A το pom.xml γίνεται έτσι (Οι Αλλαγές είναι με μπλε):


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>mvnf</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>mvnf</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
 <build>
  <plugins>
    <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-jar-plugin</artifactId>
              <configuration>
                  <archive>
                      <manifest>
                          <addClasspath>true</addClasspath>
                          <mainClass>test.Application</mainClass>
                      </manifest>
                  </archive>
              </configuration>
          </plugin>
   </plugins>
 </build>
</project>

Σημείωση: Εκεί που λέει <mainClass> … </mainClass> ανάμεσα σε αυτά τα tags βάζουμε την κλάση (Με την πλήρη διαδρομή του πακέτου) Που εμπεριέχει την main μέθοδο

Για το B κάνουμε τις αντίστοιχες αλλαγές στο pom.xml


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>mvnf</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>mvnf</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
   <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
            <source>1.7</source>
            <target>1.7</target>
        </configuration>
    </plugin>
    <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-jar-plugin</artifactId>
       <configuration>
           <archive>
              <manifest>
                <addClasspath>true</addClasspath>
                 <mainClass>test.App</mainClass>
              </manifest>
            </archive>
        </configuration>
    </plugin>
</plugins>
</build>
</project>

Σε απλά Ελληνικά στις γραμμές <source></source> και <target></target> βάζουμε την έκδοση της java με την οποία θα γίνεται compile.

Πριν κάνουμε Compile ας δούμε τι έχει τι έχει το App.java που βρίσκεται στο ./src/main/java/test:


package test;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

Που σε απλά Ελληνικά Σημαίνει ότι θα εκτυπώνει Hello World! στην κονσολά.

Γενικά για compile δίνεις:

mvn compile

και για εκτέλεση:

mvn exec:java -Dexec.mainClass="<package>.<Κλάση με την main μέθοδο>"

Στο παράδειγμά μας δίνουμε:

mvn compile

Και για να το εκτελέσουμε:

mvn exec:java -Dexec.mainClass="test.App"

Που στο παράδειγμα αυτό στην θέση του package είναι το test και στην θέση της κλάσης με την main μέθοδο το App.
Στην δικιά σας περίπτωση μπορεί το πακέτο να έχει άλλη ονομασία πχ. den.antexw.allo.diavasma η org.intracom δηλαδή σε απλά Ελληνικά δίνεις όλη την διαδρομή του πακέτου και το τέλος την κλάση που έχει την main μέθοδο.

Ακόμη αν σας πετάξει ένα κάρο Κινέζικα μην παραξενευτείτε το μήνυμά σας θα είναι λίγε γραμμές πριν το BUILD SUCCESS. Πχ. όταν το έτρεξα εγώ μου έδωσε:


pcmagas@dimitris:~/Kwdikas/java/mvnf$ mvn exec:java -Dexec.mainClass="test.App"
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for test:mvnf:jar:1.0-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing. @ line 28, column 10
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building mvnf 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- exec-maven-plugin:1.3.2:java (default-cli) @ mvnf ---
[WARNING] Warning: killAfter is now deprecated. Do you need it ? Please comment on MEXEC-6.
Hello World!
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.328s
[INFO] Finished at: Sat Feb 14 07:47:22 EET 2015
[INFO] Final Memory: 8M/107M

Παρατηρήστε τα μπλέ γράμματα που είναι το μύνημα που θέλουμε να δούμε (δεν εκτυπώνονταν το μύνημα με μπλε γράμματα στην κονσόλα εγώ το έκανα για να είναι κατανοητό)

Για να κάνουμε πακέτο .jar δίνουμε:

mvn package

Και το αρχείο με κατάληξη .jar θα το βρείτε στο φάκελο target. Που μπορείτε να το εκτελέσετε με την εντολή:

java -jar ./target/όνομα_αρχείου_jar

Για το παράδειγμα αυτό έδωσα:

java -jar ./target/mvnf-1.0-SNAPSHOT.jar

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

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

Τέλος όπου σας δείχνει BUILD SUCESS τότε έχει εκτελεστεί με επιτυχία η εντολή ειδάλλως θα σας δείξει BUILD FAILED.

Πως έμαθα ότι δεν ήξερα από development

Με το που πήρα στα χέρια το λελεδόχαρτο (μια από τις σημαντικότερες στιγμές της ζωής ενός άντρα) είπα να πάω να ποισω εργασία. Όμως όπως αποδείχθηκε είχα έλλειψη σε frotnend τεχνολογίες όπως HTML/CSS, javascript, jquery, γι αυτό δεν πήρα την θέση εργασίας. Με το ενδεχόμενο επανάληψης του σεναρίου και σε επόμενο εργοδότη είπα να καθίσω και να τα μάθω.

Γι αυτό τον σκοπό μπήκα στο http://www.codeacademy.com που ωραία και διαδραστικά σου μαθαίνει javascript, jquery, HTML/CSS, Ruby, Php, Python κλπ κλπ. Και μετά δια μέσου learnyounode μιας εφαρμογής command line που σου μαθαίνει NodeJS έμαθα NodeJS. H εφαρμογή σε Ubuntu linux για να εγκατασταθεί δίνεται τις εντολές:

sudo apt-get install nodejs # Για εγκατάσταση του nodejs
sudo npm install learnyounode -g #Για εγκατάσταση της εφαρμογής

Και απλά τρέχουμε στο terminal:

learnyounode

Εφόσον τα έμαθα κάθισα και δούλεψα ένα php Framework. Πλέον είναι απαραίτητο για μια σύγχρονη εφαρμογή να παίζει πάνω από framework.Για αρχή είδα το yii και εκμεταλευόμενος το framework και τις γνώσεις της  javascript έκανα ένα γρήγορο project για δείγμα εργασίας. Ακόμη καλό είναι να κάνετε δικά σας μικρά project και να δείχνετε τον κώδικα στο github λόγο ότι μετράει θετικά, δείχνει ότι δεν φοβάσαι να δείξεις τον κώδικά σου συν ότι δείχνει έχεις δουλέψει πάνω σε τεχνολογίες και σε ποιες έχεις δουλέψει περισσότερο.

Εφόσον έκανα το project έστειλα ξανά στον ίδιο εργοδότη και με λίγη «πίεση» μου έδωσε ένα project για δοκιμαστικό. Ελπίζω σε αίσιο τέλος, όπως και να σας έδωσα 2-3 tips για τα πρώτα βήματά σας στην αγορά εργασίας.