Αρχείο κατηγορίας web development

NetBeans Day Athens 2016

Στις 26 Αυγούστου θα πραγματοποιηθεί στην Αθήνα ημερίδα σχετικά με το NetBeans.

Για όσους δε γνωρίζουν, το NetBeans είναι ένα φανταστικό IDE, αρχικά για Java, αλλά αργότερα έγινε εξαιρετική επιλογή και για Web Development – είναι ένα πολύ δυνατό εργαλείο για προγραμματισμό σε PHP, αλλά και javascript, html5 κλπ.  Υποστηρίζει όλες τις σύγχρονες βιβλιοθήκες, έχει ένα μεγάλο οικοσύστημα με plugins για συνεργασία με εξωτερικά εργαλεία (Bug trackers, version control systems, continuous integration systems κλπ) και φυσικά είναι open source.

Προφανώς θα είμαι εκεί, είναι μια ευκαιρία μεταξύ των άλλων για γνωριμία με ανθρώπους που μιλάμε εδώ και κάποια χρόνια στην κοινότητα του Netbeans (εδώ και κάποια χρόνια συμμετέχω σταθερά στην ομάδα NetCat που κάνει όλο το testing του NetBeans).

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

Οι ημερίδες NetBeans λαμβάνουν χώρα σε διάφορες χώρες ανά τον κόσμο, από το JavaOne2014, όπου συνελήφθη η ιδέα. Πρόκειται για θέματα που αφορούν το NetBeans IDE και την πλατφόρμα NetBeans Rich Client, καθώς και τη γλώσσα προγραμματισμού Java (αλλά και άλλες γλώσσες που υποστηρίζονται από το NetBeans).

Η Κοινότητα του NetBeans σε συνεργασία με τον Κόμβο Καινοτομίας και Επιχειρηματικότητας της Τεχνόπολης Δήμου Αθηναίων, σας προσκαλούν στις 26 Αυγούστου σε μια ελεύθερη εκδήλωση σχετικά με το NetBeans IDE και την πλατφόρμα NetBeans Rich Client. Θα έχετε την ευκαιρία να ενημερωθείτε για τις τελευταίες εξελίξεις σχετικά με το NetBeans IDE και την πλατφόρμα NetBeans από ειδικούς του χώρου.

Ημερήσια διάταξη:

9:00-9:30: Εγγραφές, καφές

9:30-10:00: Welcome and NetBeans roadmap (Geertjan Wielenga: NetBeans Product Manager, Oracle)

10:00-11:30: Oracle JET – workshop (Geertjan Wielenga: NetBeans Product Manager, Oracle)

11:30-12:00: NetBeans and Java 9 support (Geertjan Wielenga)

12:00-13:00: Μεσημεριανό διάλειμμα

13:00-14:30: Developing mixed Java/Groovy projects with Gradle using Netbeans – workshop (Κώστας Σαϊδής: Niovity)

14:30-15:15: WildFly and Openshift plugins for NetBeans – workshop (Emmanuel Hugonnet: RedHat)

15:15-15:30: Διάλειμμα

15:30-16:15: Othelo game using NetBeans, Swing and Artificial Intelligence (ΔημήτριοςΜενδρινός)

16:15-17:00: Converting a Swing application to JavaFX and Dukescript – workshop (ΓιάννηςΚωστάρας)

16:45-17:30: NetBeans for PHP developers; real world examples (Αλέξης Διακογιάννης)

pcre.backtrack_limit

Σε ένα από τα project που δουλεύω, έχω φτιάξει ένα μικρό parser για τα templates. Ουσιαστικά έχει διάφορα conditions (π.χ. ISHOME αν είναι η αρχική σελίδα, REGISTERED αν ο χρήστης έχει κάνει login κλπ). Αυτά τρέχουν με regular expressions απλά και γρήγορα.

Όλα δούλευαν ρολόι, μέχρι που σε κάποιο template ένα από τα regular expression σταμάτησε να δουλεύει, χωρίς όμως κάποιο notice, warning ή error. Μάλιστα αυτό γίνονταν μόνο στο laptop μου και όχι στον desktop υπολογιστή.

Μετά από λίγο σκάλισμα, αποφάσισα να τρέξω την preg_last_error() ώστε να δω αν υπάρχει κάποιο λάθος που για κάποιο λόγο δεν εμφανίζεται στα warnings της php. Και είχα δίκιο, η εντολή μου επέστρεφε την τιμή 2 που ισούται με το PREG_BACKTRACK_LIMIT_ERROR, κάτι που δεν μου είχε ξανατύχει.

Ψάχνοντας λίγο ακόμα, βρήκα την ρύθμιση pcre.backtrack_limit που υπάρχει από την PHP 5.2, και στις τελευταίες εκδόσεις η προεπιλογή είναι 1000000, αλλά πριν την 5.3.7 ήταν το ένα δέκατο (100000).

Στο συγκεκριμένο template που έτρεχα, είχα ένα πολύ μεγάλο κομμάτι html κώδικα μέσα σε ένα tag [ISHOME][/ISHOME]. Επειδή ήταν πολύ μεγάλο, αυτό το συγκεκριμένο όριο χτυπούσε και σταματούσε την εκτέλεση του regular expression, χωρίς όμως να χτυπάει ο υπόλοιπος κώδικας. Και ο λόγος που γίνονταν μόνο στο laptop είναι ότι έτρεχα πιο παλιά έκδοση της php.

Η λύση βέβαια ήταν κάτι τόσο απλό:

ini_set('pcre.backtrack_limit', '1000000');

και για να έχω και τη συνείδηση μου ήσυχη, το έκανα τελικά κάπως έτσι:

$backtrack_limit = ini_get('pcre.backtrack_limit');
 if ($backtrack_limit < 1000000){
 ini_set('pcre.backtrack_limit', '1000000'); 
 }
// εδώ μπήκε ο κώδικας με τα regular expressions
ini_set('pcre.backtrack_limit', $backtrack_limit);

Αν ποτέ αντιμετωπίσετε κάτι ανάλογο, αυτή είναι μια λύση.

PHP Tips – Freestuff Tutorial

FreeStuff.grΣε όλα τα site για προγραμματιστές είναι δημοφιλή τα άρθρα του τύπου «10 συμβουλές για να κάνετε τον κώδικα σας πιο γρήγορο / πιο ασφαλή» κ.λ.π. Σκέφτηκα να κάνω κάτι τέτοιο για το freestuff.gr, με απλά tips που μπορεί να φανούν χρήσιμα σε κάποιους. Έτσι μάζεψα μερικές συμβουλές που έρχονται κυρίως από προσωπική εμπειρία, πιθανόν σε κάποια από αυτά να υπάρχει και αντίλογος, αλλά ακόμα και έτσι μπορεί να γίνουν αφορμή για συζήτηση.

Διαβάστε το βοήθημα στο  Freestuff.gr: PHP Tips.

Ανταλλαγές σχολικών βιβλίων

Πριν από μερικές μέρες, όσο ήμουν ακόμα στις διακοπές μου, διάβαζα στα blogs σχετικά με όλο το χαμό που έχει γίνει με τα βιβλία του ΟΕΔΒ (τα σχολικά βιβλία δηλαδή). Μεταξύ των άλλων, το πιο σωστό πράγμα που διάβασα ήταν αυτό το άρθρο, καθώς πιάνει την πρακτική μεριά του πράγματος και προτείνει μια λύση στους γονείς, έστω και προσωρινή.

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

Το πρότεινα στα παιδιά του CaptainBook.gr, καθώς εκτός από φίλοι, είναι άτομα τα οποία ξέρω ότι θα έδειχναν ενδιαφέρον και θα ήταν διαθέσιμοι να καλύψουν και το όποιο πιθανό κόστος, χωρίς να επιδιώκουν το κέρδος, αλλά το να πετύχει η κίνηση.

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

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

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

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

Επίσης, είμαστε ανοιχτοί σε νέες ιδέες και προτάσεις για βελτίωση – όσο βέβαια μας επιτρέπει και ο χρόνος μας.

Δείτε το στη διεύθυνση: http://www.captainbook.gr/schoolbooks

LustDecade.com

Lust Decade
Είμαστε σε beta!

Τις τελευταίες μέρες δούλεψα σε ένα αρκετά πρωτότυπο για τα ελληνικά δεδομένα project, το LustDecade.com.

Με μια γρήγορη ματιά, είναι ένα ηλεκτρονικό κατάστημα το οποίο πουλάει t-shirts.  Η πρωτοτυπία του όμως είναι το ποιος σχεδιάζει αυτά τα μπλουζάκια: Εσείς!

Με λίγα λόγια, όποιος θέλει μπορεί να υποβάλει ένα σχέδιο για t-shirt το οποίο θεωρεί ότι είναι πρωτότυπο και θα αρέσει σε κόσμο. Αυτό μπαίνει στην ειδική ενότητα που έχουμε ετοιμάσει: Vote For Design, όπου παραμένει για ένα μήνα. Στο τέλος του μήνα, τυπώνονται τα μπλουζάκια τα οποία έχουν συγκεντρώσει την μεγαλύτερη βαθμολογία!

Με αυτό τον τρόπο, το κατάστημα θα έχει πάντα φρέσκα σχέδια, τα οποία τα έχει επιλέξει ο κόσμος. Ουσιαστικά δημιουργούμε αυτό που λέει και το tagline του site: A designers collective!

Εγώ ανέλαβα το Development και όλα τα mods που δημιουργήσαμε για το Zen Cart (τα οποία θα κυκλοφορήσουν αργότερα ως Open Source, μόλις καθαρίσω λίγο τον κώδικα), ενώ το σχεδιασμό τον έκανε η Media Designers.

Μπείτε και πείτε μας τη γνώμη σας, με το μαλακό όμως, αφού είναι ακόμα work-in-progress.

PHP Tutorial: Ένα πολύ απλό honeypot για την προστασία του site σας

Ανέβασα άλλο ένα tutorial στο freestuff.gr. Είναι, με πολύ απλό τρόπο, η δημιουργία ενός honeypot μέσω της php και μερικών αλλαγών στο .htaccess.

Τα honeypots είναι απλές παγίδες για επίδοξους hacker (ή μάλλον για script kiddies), που ουσιαστικά τους παραπλανούν ότι έχουν βρει κάποια αδυναμία ή έχουν αποκτήσει πρόσβαση στη διαχείριση, ενώ στην ουσία βλέπουν κάτι ψεύτικο που καταγράφει τις κινήσεις τους και δίνει αναφορά στον sysadmin 😉

Διαβάστε το εδώ: Ένα πολύ απλό honeypot για την προστασία του site σας.