Wednesday, April 08, 2015

Η μεγάλη απόφαση... moving abroad : )

Το συγκεκριμένo post το έχω γράψει και σβήσει στο μυαλό μου αρκετές φορές να ξέρεις, τις πιο πολλες φορες ακόμα και η σκέψη για το θέμα μου έφερνε ένα κόμπο στην καρδιά και στο στομάχι. 

Τώρα δεν ξέρω πως θα μου βγει, αυτό το blog εδώ και μερικά χρόνια έχει χάσει λιγο το προσωπικό look and feel, αλλά είναι λογικό, μεγαλώνουμε και ωριμάζουμε. Γράφω λοιπον με την ελπίδα τις παρακάτω γραμμές να τις διαβάσει σε μερικά χρόνια το παιδί μου (οταν με το καλο αποκτήσω).
 
Όταν το 2004 ολοκληρωσα και το μεταπτυχιακό στην Αγγλία, μετα από 4+ χρόνια στο μεγάλο νησί, δεν το σκέφτηκα ούτε μια στιγμή, το μόνο που περίμενα ήταν να επιστρέψω σπίτι. Σε λιγότερο από ένα χρόνο επέστρεψα στην ελληνικη αγορά εργασίας, ειχα την τύχη να την γνωρίσω για 13 ολοκληρους μήνες κατά το placement year. Εκεί κατάλαβα ότι πράγματι το να προγραμματιζω είναι αυτό που θέλω να κάνω, και ότι πρέπει να προσπαθώ συνέχεια να γίνομαι καλύτερος. 

Λίγα χρονιά μετά, ένας Βέλγος θυμάμαι head hunter,  μου είχε προσφέρει ένα relocation package, και μια θέση σε ένα agency σε κάποιες από τις euro-jobs όπου τότε ήταν αρκετα booming. Πάλι αυτός ο κόμπος, ακόμα ενιωθα ότι δεν ειχα χορτάσει 'το σπίτι' και οι ευκαιρίες στην Ελλάδα ήταν ακόμα κάποιες (ποτέ δεν ηταν πολλές). Την επόμενη μέρα του απάντησα ότι δεν μπορώ να κάνω commit. 

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

Μετά  ξανά, ακόμα μια πρόταση πάλι απόρριψη, μετά συχνά πυκνά email, κάτι σαν Σειρήνες ενώ οσο περνούσαν τα χρόνια έκανα μάχη να τις αγνοώ. In the mean για να τις σταματήσω, επέλεξα να κάνω ένα μεταπτυχιακό ακόμα, ισως για να ξεδιψάσω ένα κομμάτι του εαυτού μου που ζήταγε και άλλα.Προφανέστα οι Σειρήνες δεν ήταν μόνο για μένα, ούτε ήμουν ο εκλεκτός για να μην παρεξηγηθώ, αλλά ήταν μια διαδικασία που με έβαζε συνέχεια σε σκέψεις. Πάντα επέλεγα το 'σπίτι'. Κάποια στιγμή αγόρασα και το δικό μου σπίτι ( χαιδαρι city for ever) , αμα το λες πολλές φορές το κάνεις ξέρεις. 

Κάπου όμως έκανα λάθος και το συνειδητοποίησα τώρα, σχεδόν 10 χρόνια μετά και με αρκετή σκληρή δουλειά για την οποία είμαι αρκετά περήφανος . Κάποιο άλλο ηταν το 'σπίτι' μου, κάτι που ζούσε μέσα μου από τοτε που συνειδητήποιησα πόσο σημαντικό είναι, και πως με ορίζει. Το λέει και το nickname μου, είμαι ένας javapapo. Ένα σπίτι που με νύχια και δόντια έκανα τα πάντα να το χτίσω, αλλά όχι στο καλύτερο μέρος. Το σπίτι αυτό ήταν η δουλειά μου και η αγάπη μου γι' αυτή. Η αγάπη μου για την τεχνολογία, η αγάπη μου για την οργάνωση, την απλότητα, το transparency, η αγάπη της ανελιξης μέσα από achievements μέσα από προσπάθεια. Η αγάπη για μάθηση που οσο περνάνε τα χρόνια δεν σταματάει, νιώθω ακόμα μεγαλύτερη ανάγκη να διαβάσω να ξενυχτήσω και να μάθω ακόμα και από τότε που ήμουν φοιτητής.

Γι' αυτό το λόγο λοιπόν, μαζί με την έταιρη και μεγαλύτερη μου αγάπη (γιατί δεν είμαστε μονο geek ) αποφασίσαμε να φύγουμε από την Ελλάδα και να αναζητήσουμε ένα καλύτερο μέλλον και για τους 2.  Σε χώρες και αγορές που ο πόθος και τα skill μας θέλουμε να ελπίζουμε θα έρθουν κοντά στά όνειρα και τις φιλοδοξίες μας.

Wish me luck, (αν διαβάζει κανείς ακόμα αυτό το blog) και κατι μου λέει ότι θα post-άρω πολυ πιο συχνά σύντομα. 

Sunday, April 05, 2015

DEV it Conference στην Θεσ/νικη...οργανωμένο από developers, για developers

Νομιζω ξεκινάει μια αρκετά καλή προσπάθεια στην Θεσ/νικη, για τα ελληνικά πλαίσια αλλά και την τωρινή κατάσταση της ελληνικής αγοράς πληροφορικής. Ακούει στο όνομα DevIt conference, και έχει ομιλητές από διάφορα τεχνικά battle ground. Παρολίγο να βρισκόμουν κι εγώ στην λίστα των ομιλιτών, ίσως την επόμενη χρονια. Έχετε 1,5 μήνα να το βάλετε στο ημερολογίο σας και να το κανονίσετε. Τόσα χρόνια που ασχολούμαι με τα κοινά της ελληνικής ΙΤ αγοράς, νομίζω ότι το DevIT είναι το πρώτο πραγματικό multi day developer συνέδριο (full fledged), δημιουργημένο από  developers!!

Όσοι έχετε την διάθεση αλλά και το ενδιαφέρον, η τιμή ειναι αρκετά ελκυστική (40,60) euro, και μπορείτε να το συνδιάσετε σαν εκδρομή μαζί με άλλους συναδέλφους. Σίγουρα και κάποιες εταιρίες  (λέω εγώ) θα μπορούσαν να πληρώσουν βενζίνη και έξοδα. 

Εξαιτίας υποχρεώσεων δεν θα μπορέσω να ανέβω στην Θεσ/νικη αλλά εύχομαι να μπορέσω να το κάνω την επόμενη χρονια, υπο πιο ήρεμες συνθήκες. Καλή επιτυχία στην ομάδα του DevIt και εύχομαι να δημιουργηθεί ένας θεσμός....DevIt-> μπουγάτσα με developers :P χεχε.

υγ) μην ξεχάσετε να δείτε την ομιλία του ex συναδέλφου K.Καπελώνη, που είναι είναι εδώ και χρόνια απο τους αγαπημένους μου presenter σε διάφορα meet-up και mini tech days.
 
Go DevIt!
 

 


Monday, March 02, 2015

Java EE7 and Maven project for newbies - part 8 - #js2.2 with @primefaces 5.1 setup on @WildflyAs 8.2 using #maven

Series

 

It's been a long time since my last post, for this series of  tutorials. Its time to resume and add new features on our simple project. As I have mentioned in previous posts, this series of posts is targeting mostly Maven and JavaEE7 newcomers, I welcome any questions or comments (and fixes) on the contents below. I promise I will try to keep up with the updates.

Git tag for this post?

The tag for this post, is this post8, and can be found on my bitbucket repo

What has changed from the previous post?

  • Some comments and fixes on the code from readers have already been integrated.Thank you very much all for your tome.
  • I have updated the Wildfly Application Server version from 8.1 to 8.2, so all the examples and code runs under the new server.
  • I have also updated the versions of the Arquillian BOM (s), to the latest version which is now 1.1.7.Final
  • I have also added a property under the sample-parent project that indicates the path that the various maven modules will download and use Wildfly server, automatically so that you don't have to download it on your own. The server will be automatically downloaded and extracted to the predefined path, as soon as you try to execute one of the unit tests from the previous posts (sample-services module)

Adding a JSF enabled war Maven Module on our ear

Eventually our project structure already featured a war (see sample-web) maven module. So there is no extra module introduced rather than changes on the existing pom.xml files of the parent and the module itself. 


Step 1  changes on web.xml

Our  application server is already bundled with the required libraries and settings in order to support applications that make use of the JSF 2.2 specification. Wildfly bundles Mojarra 2.2.8. What we have to do is just update some configuration descriptors (eventually only one). The most important is web.xml which now looks like this.

Step 2 Packaging of war and the skinny war issue

Our war module, is following a packaging scheme called skinny war. Please read the following page from the Apache maven war plugin. To cut a long story short, in order to reduce the overall size of our deploy able (ear), we package all the required libraries under a predefined folder on the ear level, usually is called \lib and we don't include libraries under the war's WEB-INF\lib folder. The only thing you need to do, is add those dependencies of your war to the ear level. Despite the fact that the overall 'hack' does not feel very maven like, it works if you follow the proposed configuration, but there are cases that skinny war packaging wont work. One of these is usually for JSF based JavaEE web applications where the implementation of the JSF widget engine should be packaged within the war's WEB-INF\lib. 

For our sample project, I am using the excellent and free Primefaces library, which I highly recommend for your next JSF based project. So I need to define a dependency on my war module for the primefaces jar but by pass the skinny war mechanism only for this jar, so that it is packaged in the right place. This is how we do it.


Step 3 Add some jsf love, a managed bean and an xhtml page with the appropriate tags.


Our code is just a small table, and a couple of tags from Primefaces. If you think that you need to read more about JSF 2.X please have a look on the following links

Step 4 Package and deploy to a running server.

Start your wildfly (you are expected to have one under your project-base dir and the subfolder servers

<wildfly-server-home>${project.basedir}/servers/</wildfly-server-home>
 
and then under the sample-parent project type.

mvn clean install -Ph2

You should have your demo JSF 2.2 enabled demo app, on http://localhost:8080/sample-web/ and see something like the following.



That's all, this will give you a simple start in order to expand on something more than a demo!

As always you will find the complete - example under tag post8 .