TOP

Πως επιλέγω το κατάλληλο Implementation για το Collection μου

Java Collections Cheat Sheet

Συχνά στους junior programmers έρχομαι αντιμέτωπος με το πρόβλημα του να χρησιμοποιούν ένα  collection implementation, συνήθως  ArrayList ή HashSet, επειδή απλά αυτό βλέπουν συχνά χωρίς να ξέρουν τις ιδιαιτερότητές του με αποτέλεσμα διάφορα προβλήματα όπως να χάνεται η σειρά ενώ τη χρειάζονται, να χάνονται διπλές εγγραφές κλπ.

Οπότε αποφάσισα να γράψω αυτόν τον οδηγό για την κατάλληλη επιλογή του

(περισσότερα…)

TOP

Συνέδριο JavaOne 2016 – Live Streaming

c82-javaone-keynote-img01-23137881

Για άλλη μια χρονιά το Java One παραμένει η κορυφή στα συνέδρια γύρω απο τη Java!

Όταν πας στο Σαν Φρανσίσκο ξέρεις ότι  θα συναντήσεις τα καλύτερα μυαλά γύρω απο τη java και θα φύγεις απο εκεί καλύτερος προγραμματιστής.

Στον εκθεσιακό χώρο του Java One εχουν συγκεντρώσει τις πιο καινοτόμες εταιρείες που χρησιμοποιούν Java σήμερα-και αυτοί που διαμορφώνουν το μέλλον.

Για του άτυχους που δεν είναι εκεί υπάρχει live streaming που θα το δείτε εδώ http://www.oracle.com/javaone/live/index.html

TOP

Netbeans in moving to Apache Foundation!

Αυτό που καιρό όλοι μας περιμέναμε επιτέλους ήρθε! κατατέθικε η επίσημη πρόταση για την μεταφορά του Netbeans στον Apache incubator.

Θα βρείτε τη πρόταση εδώ https://wiki.apache.org/incubator/NetBeansProposal

TOP

[video] Lightweight JEE7 with JAX RS

Είχα την τύχη να παρακολουθήσω φέτος το εκπληκτικό συνέδριο JCrete μετά απο πρόσκληση για εκδήλωση ενδιαφέροντος του Java Champion και συνδιοργανωτή Dr Heinz Kabutz . Εκεί λοιπόν σε μια παρουσίαση του Java Champion Sebastian Daschner με αντίστοιχο θέμα είδα τη δυνατότητα με χρήση JEE χωρίς να κατασκευάζεις τεράστιες και «βαριές» εφαρμογές της δημιουργίας μικρών web εφαρμογών που γρήγορα σου δίνουν RESTfull endpoint exposure οπότε αποφάσισα να φτιάξω το παρακάτω βίντεο.

Όλος ο κώδικας του παρακάτω βίντεο είναι στο Github https://github.com/diakogiannis/LightJee7WithJaxRS

Σύντομα θα βγάλω και δεύτερο μέρος που να περιλαμβάνει persistence κλπ.

TOP

[JavaSpecialists] Summer Special – Writing My Name Into a Plank with Java

Ελληνική μετάφραση του Java(tm) Specialists’ Newsletter

Καλησπέρα απο το The Java(tm) Specialists’ Newsletter,

Ελπίζω να απολαμβάνετε τον Αύγούστο όσο εγώ! Ξεκίνησε την 1η Αυγούστου, το #JCrete, που ήταν το καλύτερο απο τα τελευταία 6 που έγιναν. Απίστευτοι συμμετέχοντες και έντονες συζητήσεις.

Ένα από τα παιχνίδια που απέκτησα πρόσφατα είναι ένα Carbide 3D Nomad Pro 883. Πρόκειται για μια φρέζα CNC που μπορείτε να ελέγξετε μέσα από Java. Τελικά κατάλαβα πώς να μιλήσουμε με αυτό. Ο κώδικάς μου χρειάζεται ακόμη κάποιες βελτιώσεις, αλλά είναι ήδη αρκετά καλό ότι θα μπορούσα να γράψω το όνομά μου σε ένα κομμάτι ξύλου και να σχεδιάσω ένα Java Duke.

Κινηματογράφισα τον εαυτό μου να κάνει μια πρόχειρη επίδειξη χρησιμοποιώντας Periscope. Χρειάστηκε κάποιος χρόνος για να δουλέψει το λογισμικό, χάρη σε ένα ενοχλητικό «χαρακτηριστικό» στη Java 9 με την υποτιθέμενη  locale-sensitive String.format () συνάρτηση. Με την μόνη διαφορά οτι την έχουν φτιάξει λάθος. Στον υπολογιστή μου έχω δημιουργήσει το δεκαδικό σημείο στήξης να είναι ένα «.» και το πήρε ως «,» αντ ‘αυτού. Κατα τη γνώμη μου, είναι λάθος να αλλάξει η String.format () και να αναγνωρίζει locale. Θα υπάρξει πολλής κώδικας εκεί έξω που αναμένει να εξάγει το δεκαδικό σαν μια τελεία. Επειδή έγραφα κώδικα με το ένα χέρι και με το άλλο κράταγα το κινητό τηλέφωνο στο άλλο, έκανα μερικά λάθη. Αν είστε ανυπόμονοι, ίσως να θέλετε να παρακάμψετε μέσα από τα πρώτα 20 λεπτά, όπου προσπαθώ να κάνω πάρει το demo να ξεκινήσει.

https://www.periscope.tv/heinzkabutz/1nAKEbpOoDbGL

(περισσότερα…)

TOP

Βγήκε το NetBeans Spring Boot plugin για το Spring Boot v1.4.

Κυκλοφόρισε το NetBeans Spring Boot plugin για το Spring Boot v1.4.

Το plugin ειναι διαθέσιμο στο Plugin Manager του NetBeans IDE 8.1 και στο NetBeans Plugin Portal:

http://plugins.netbeans.org/plugin/67888/nb-springboot
(περισσότερα…)

TOP

NetBeans Day Athens 2016

WHEN 

WHERE INNOVATHENS – Kόμβος Καινοτομίας και Επιχειρηματικότητας της Τεχνόπολης του Δήμου Αθηναίων Τεχνόπολη Δήμου Αθηναίων – Κτίριο Αεριοφυλάκιο 2 – Πειραιώς 100, 11854 Γκάζι –View Map

Book Now for free: https://www.eventbrite.com/e/netbeans-day-athens-2016-tickets-24919688459

NetBeans Days is an international event that takes places in various countries around the world, since JavaOne 2014, where the idea was conceived. It is about the NetBeans IDE and Rich Client Platform as well as up to date information of the Java programming language (and also other languages that are supported by NetBeans).

The NetBeans Community, in collaboration with the Hub of Innovation & Entrepreneurship of Technopolis City of Athens is proud to invite you to a free event, on Friday 26 August, regarding the NetBeans IDE and Rich Client Platform. Take the opportunity to learn about the latest tips and tricks of the NetBeans IDE and the NetBeans platform by experts on the subject. (περισσότερα…)

TOP

Utilizing Spring Data JPA to simplify the Data Access Infrastructure

Παρακατω θα μιλήσουμε για τις δυνατοτητες του Spring Data και πως μπορουμε να τις εφαρμοσουμε σε υπαρχοντες μηχανισμους επικοινωνιας με την Βαση Δεδομενων με την χρηση του JPA programming Interface.

Λιγα λογια για το Java Persistence API.
To spring Data ειναι ενα σχετικα νεο project που στοχο εχει να απλοποιησει την διαδικασια ανταλλαγης δεδομενων με την Βαση Δεδομενων που χρησιμοποιουμε, το λεγομενο data access layer δηλαδη.
Πιο συγκεκριμενα θα δουμε στην πραξη το subproject Spring Data JPA που απλοποιει σημαντικα τις διαδικασιες ανταλλαγης δεδομενων μας στο repository layer οταν χρησιμοποιουμε JPA annotated Pojos(Plain old Java classes). Πρακτικα δηλαδη ειναι οι γνωστες java κλασεις που υλοποιουν την συμβαση που οριζει το Java Persistence API (JPA). Η συμβαση αυτη οριζει οτι πρεπει να τοποθετησουμε ορισμενα annotations τοσο στην κλαση μας οσο και στις μεταβλητες που περιλαμβανει αυτη η κλαση.
Τα annotations αυτα στην ουσια υλοποιουν το γνωστο ORM(Object Relational Mapping) ή πιο απλα την συνδεση κλασεων και tables μιας βασης δεδομενων.
Ειναι δηλαδη τα annotations αυτα καποια extra πληροφορια, συμφωνη με τον τροπο που οριζει το JPA interface , και υλοποιησιμη απο τον μηχανισμο που επεκτεινει το JPA interface και επικοινωνει πραγματικα με την Βαση Δεδομενων. To πλεον διαδεδομενο Framework που υλοποιει το JPA interface και τα JPA annotations προκειμενου να συνδεσει τις κλασεις με τα tables της Βασης Δεδομενων ειναι το Hibernate.
Πριν περασουμε στις ευκολιες που παρεχει το Spring Data JPA Και στο πως αυτο μπορει να εφαρμοστει στο project μας, Θα δουμε αρχικα ενα πραγματικο παραδειγμα επικοινωνιας με την βαση με τον «παραδοσιακο τροπο».
(περισσότερα…)

TOP

Consuming a RESTful Web Service

Σε αυτό το άρθρο θα μάθουμε πως μπορούμε με το Spring να καλέσουμε και να «καταναλώσουμε» ένα RESTful Web Service με τη χρήση του RestTemplate.

Η ανταλαγή μηνυμάτων JSON με χρήση AJAX στο Web είναι ίσως το δυνατότερο και ευκολότερο εργαλείο ενώς προγραμματιστή. Το spring εκεί με τα @ResponseBody και με τη χρήση του Jackson έχει απλοποιήσει εκπληκτικά τα πράγματα στην ανταλαγή μηνυμάτων. Περισσότερες πληροφορίες γι’ αυτό θα βρείτε εδώ Building a RESTful Web Service. Τι γίνεται στην περίπτωση όμως που θέλουμε να καλέσουμε μια RESTful μεθοδο ενώς άλλου WS μέσα απο μια δικιά μας μέθοδο και να κάνουμε map τα αποτελέσματά της? Το Spring το κάνει επίσης πάρα πολύ εύκολο. Ξεκινάμε…

(περισσότερα…)

TOP

Create a JNDI Datasource with Tomcat 7

Μια multi-user εφαρμογή που χρησημοποιεί κάποια database δεν μπορεί να είναι αξιόπιστη αν δεν χρησημοποιεί connection pooling. Ο Tomcat 7 αντικατέστησε την απο προεπιλογή common-dbcp βιβλιοθήκη του με το Tomcat JDBC. Μπορειτε να δειτε εδώ http://www.tomcatexpert.com/blog/2012/01/24/using-tomcat-7-jdbc-connection-pool-production και εδώ http://www.tomcatexpert.com/blog/2010/04/01/configuring-jdbc-pool-high-concurrency μερικά άρθρα γι αυτό το ζήτημα.

Έστωσαν οτι θέλουμε να φτιάξουμε ενα τέτοιο pool σε εναν Tomcat 7 για μια MySQL βάση δεδομένων. Ισοδύναμα βήματα γίνονται για ολες τις αλλες βάσεις. Τα βήματα που κάνουμε είναι τα εξής.
(περισσότερα…)