Μετατροπή Δυναμικού Site Σε Στατικό Με Wget

Ένας τρόπος για να μετατρέψετε ένα δυναμικό site σε στατικό, είναι να «κατεβάσετε» τοπικά ολόκληρο το site με τη βοήθεια της εντολής wget:

Επεξήγηση:

  • ––recursive: κατεβάζει ολόκληρο το site
  • ––no-clobber: δεν κάνει overwrite αρχεία που ήδη έχετε κατεβάσει
  • ––page-requisites: κατεβάζει όλα τα αρχεία που συνθέτουν κάθε σελίδα (εικόνες, CSS, JS κλπ)
  • ––html-extension: αποθηκεύει τα αρχεία ως .html
  • ––wait=3: περιμένει πχ «3» δευτερόλεπτα ανάμεσα σε κάθε αίτημα για κατέβασμα αρχείου
  • ––limit-rate: βάζει όριο στον ρυθμό κατεβάσματος αρχείων. π.χ. 60K είναι 60 kilobytes/second που ισούται με 480Kbps
  • ––convert-links: μετατρέπει τα links ώστε να δουλεύει το site τοπικά (offline)
  • ––restrict-file-names=windows: μετέτρεψε τα αρχεία ώστε να λειτουργούν σωστά και σε Windows
  • ––domains example.com: δίνει εντολή να μην κατεβούν αρχεία που δεν ανήκουν στο domain example.com

Διαβάστε το υπόλοιπο άρθρο »

Διόρθωση Σειράς Ταξινόμησης Directories Σε Ubuntu

Μια κοινή πρακτική είναι να χρησιμοποιούμε directories που ξεκινούν με _ (underscore) προκειμένου αυτά να εμφανίζονται πρώτα στη λίστα του Files ή στο terminal. Εντούτοις, σε Ubuntu, τα directories που ξεκινούν με underscore δεν εμφανίζονται πρώτα στη λίστα με τα αρχεία/φάκελους.

Σύμφωνα με μια σελίδα βοήθειας του Ubuntu υπεύθυνη για το «πρόβλημα» αυτό είναι η ρύθμιση LC_COLLATE.  Αν πληκτρολογήσουμε locale στο terminal θα επιστρέψει τα εξής:

Βλέπουμε ότι η ρύθμιση LC_COLLATE έχει τιμή «en_GB.UTF-8» ή «en_US.UTF-8» και θα πρέπει να την αλλάξουμε σε C ή POSIX με τον εξής τρόπο:

Μετά κάνουμε logout και όταν κάνουμε πάλι login τα αρχεία και οι φάκελοι θα εμφανίζονται με αυτά που ξεκινούν με _ (underscore) πρώτα στη λίστα.

 

Βοήθημα Για Κατασκευή Responsive Ιστοσελίδας

Όταν κατασκευάζουμε μια ιστοσελίδα είναι απαραίτητο να φροντίζουμε ώστε αυτή να είναι ‘responsive’, δηλαδή να έχει σωστή εμφάνιση σε όλες τις συσκευές (κινητό τηλέφωνο, tablet και υπολογιστή).  Ένα αναγκαίο «κακό» κατά τη διάρκεια κατασκευής responsive ιστοσελίδας είναι ότι πρέπει συνεχώς να αλλάζουμε το μέγεθος του browser προκειμένου να βλέπουμε πως αποκρίνεται η ιστοσελίδα στα διάφορα πλάτη του browser.

Δημιούργησα λοιπόν ένα μικρό οπτικό βοήθημα – εργαλείο που ανά πάσα στιγμή δείχνει στο κάτω αριστερό μέρος της ιστοσελίδας, σε ποιο media query ‘βρισκόμαστε’ και έχει την εξής εμφάνιση:

Για να το χρησιμοποιήσετε κι εσείς, προσθέστε τον παρακάτω κώδικα προς το τέλος της ‘index/home’ σελίδας σας (π.χ. λίγο πριν το κλείσιμο του <body>):

Διαβάστε το υπόλοιπο άρθρο »

Ρύθμιση Git Για Να Αγνοεί Αλλαγές Σε Permissions

Όταν αλλάζετε τα permissions αρχείων με chmod τότε το git θα θεωρήσει ότι έχουν γίνει αλλαγές στα αρχεία αυτά και το git diff θα δείχνει ότι αυτά τα αρχεία (των οποίων τον κώδικα δεν έχετε αλλάξει) έχουν αλλαγές.

Αν θέλετε το git να αγνοεί όποιες αλλαγές γίνονται με chmod (αλλαγή permissions), τότε χρησιμοποιήστε το εξής:

Απενεργοποίηση Cache Σε Drupal 8

Όταν δημιουργείτε μια νέα ιστοσελίδα ή εφαρμογή με Drupal 8, μία από τις πιο εκνευριστικές και χρονοβόρες διαδικασίες είναι ότι για κάθε αλλαγή σε κώδικα, θα πρέπει να κάνετε εκκαθάριση της cache.

Για να εξοικονομήσετε χρόνο, κάντε τα εξής:

1. Δημιουργήστε ένα αντίγραφο του settings.php με το όνομα settings.local.php.

2. Στο τέλος του αρχείου `/sites/default/settings.php θα βρείτε τις γραμμές:

Διαγράψτε τα # προκειμένου το Drupal να χρησιμοποιεί τοπικά το αρχείο /sites/default/settings.local.php.

3. Στο αρχείο settings.local.php βρείτε τη γραμμή:

και αφαιρέστε το #. Αν η γραμμή δεν υπάρχει, προσθέστε τη χωρίς το #.

Διαβάστε το υπόλοιπο άρθρο »

Εγκατάσταση Scala Σε Mac Μέσω Terminal

Θα εγκαταστήσουμε τη γλώσσα προγραμματισμού Scala σε Mac χωρίς τη χρήση Homebrew αλλά μέσω terminal.

Πηγαίνουμε στη σελίδα www.scala-lang.org/download κάνουμε κλικ στο «Download» και κατεβάζουμε το τελευταίο binary (2.11.2). Μεταφέρουμε το ζιπαρισμένο αρχείο του binary στο directory /usr/bin και εκεί αποσυμπιέζουμε το αρχείο. Πλέον το full path του directory είναι: /usr/bin/scala-2.11.2

Ανοίγουμε το αρχείο paths με την εντολή:

και προσθέτουμε το /usr/bin/scala-2.11.2/bin στο $PATH variable του shell πληκτρολογώντας τη γραμμή:

Με Ctrl+O κάνουμε overwrite (απαντάμε Yes) και με Ctrl+X βγαίνουμε από την οθόνη του nano editor.

Κάνουμε επανεκκίνηση του terminal και πληκτρολογούμε scala. Τότε θα εμφανιστεί το command prompt της Scala:

Αντιγραφή Δεδομένων Από Μια Βάση Δεδομένων Σε Άλλη

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

Κατά τη διαδικασία ανάπτυξης, τυχαίνει να μεταβληθούν δεδομένα μόνο από ορισμένα tables της βάσης. Όταν έρθει η στιγμή να ενσωματώσουμε τα δεδομένα της development βάσης δεδομένων στην ενεργή database, τότε θα μεταφέρουμε μόνο τα δεδομένα του ή των table που έχουν αλλαγές.

Για το σκοπό αυτό, χρησιμοποιούμε τον παρακάτω κώδικα:

Ο παραπάνω κώδικας κάνει «update» τα δεδομένα στο «table1» της ενεργής βάσης «livedb» με αυτά στο «table2» της «developmentdb» βάσης δεδομένων που χρησιμοποιήθηκαν για την ανάπτυξη του web project. Για το update, στο WHERE clause θέτουμε ότι τα IDs των δύο tables είναι τα ίδια.

 

Leverage Browser Caching

Αν χρησιμοποιείτε διαφημίσεις AdSense, θα έχετε δει τη λεγόμενη ‘Scorecard’ όπου δείχνει την απόδοση του site σας με τα περισσότερα pageviews ή κέρδη. Η scorecard δίνει περιληπτικά πληροφορίες για τις διαφημίσεις, τις ιστοσελίδες και το περιεχόμενό σας σε σύγκριση με αυτές άλλων AdSense Publishers.

Μία από τις κατηγορίες της scorecard είναι το ‘Site health’ που αναλύει την ιστοσελίδα σας και υπολογίζει την απόδοση βασισμένη στο PageSpeed Insights.

Στο άρθρο αυτό θα σας δείξουμε πως περνάμε με επιτυχία ένα από τα τεστ του PageSpeed Insights, το ‘Leverage Browser Caching’.

Το τεστ αυτό, για να το περάσουμε επιτυχώς, θα πρέπει να ορίσουμε πότε ο browser θα κατεβάζει τα αρχεία της ιστοσελίδας μας από τον server ή θα χρησιμοποιεί αυτά που είναι αποθηκευμένα (από παλαιότερη επίσκεψη) στην cache, προκειμένου να φορτώνει ταχύτερα η ιστοσελίδα.

Θα ορίσουμε λοιπόν, μέσα στο αρχείο .htaccess την «ημερομηνία λήξης» (expiry date) διαφόρων τύπων αρχείων (εικόνες, javascript, css κλπ). Όταν επισκέπτεται κάποιος την ιστοσελίδα μας, ο browser θα ελέγξει κατά πόσο το κάθε αρχείο της ιστοσελίδας έχει «λήξει» ή όχι. Αν έχει «λήξει» από την προηγούμενη επίσκεψη στην ιστοσελίδα, τότε ο browser θα κατεβάσει το αρχείο από τον server ενώ αν δεν έχει περάσει το expiry date, θα χρησιμοποιήσει το τοπικό αρχείο από την cache.

Διαβάστε το υπόλοιπο άρθρο »

Δημιουργία Αντιγράφων Ασφαλείας Πολλών Βάσεων Δεδομένων

Σε περίπτωση που διαχειρίζεστε server με πολλές βάσεις δεδομένων, θα έχετε πιθανότατα έρθει αντιμέτωποι με το πρόβλημα της δημιουργίας αντίγραφων ασφαλείας.

Αν έχετε 2-3 βάσεις δεδομένων μπορείτε να χρησιμοποιήσετε το phpMyAdmin, να κάνετε κλικ στο όνομα της κάθε βάσης δεδομένων, μετά κλικ στο «Export» tab και μετά να κατεβάσετε στον σκληρό σας δίσκο την database. Αν όμως έχετε 10, 20, 30 ή και παραπάνω βάσεις δεδομένων, αυτή η διαδικασία είναι πολύ χρονοβόρα.

Εναλλακτικά, μπορείτε να δημιουργήσετε ένα αρχείο κειμένου (.txt document) μέσα στο οποίο θα αποθηκεύσετε τον ακόλουθο κώδικα:

Η εντολή mysqldump δημιουργεί ένα αντίγραφο της βάσης δεδομένων (vasi_dedomenwn_1, vasi_dedomenwn_2 κλπ) και το αποθηκεύει ως αρχείο .sql (vasi_dedomenwn_1.sql, vasi_dedomenwn_2.sql κλπ).

Για αρχή λοιπόν, δημιουργήστε ένα .txt αρχείο στο οποίο σε κάθε σειρά θα έχετε την κάθε βάση του server σας που θέλετε να αποθηκεύσετε. Αυτό το αρχείο θα το χρησιμοποιήσουμε στην πορεία.

Διαβάστε το υπόλοιπο άρθρο »

Hello world (Γεια σου κόσμε)

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

Αν θέλετε να αναδημοσιεύσετε κάποιο από τα άρθρα μου, θα το εκτιμούσα πολύ αν αναφέρατε την πηγή με σύνδεσμο προς το DevBlog.gr. Όπως λένε οι Άγγλοι, «It’s nice to be nice». 🙂