Το 2005 η Id Software έκανε open source τον κώδικα του Quake 3. Σε αυτόν υπάρχει μία εκπληκτική function που υπολογίζει πολύ πιο γρήγορα, το αντίστροφο της τετραγωνικής ρίζας ενός αριθμού. Δηλαδή το απλό 1/sqrt(x) που θα έκανε ένας κοινός θνητός.
Στον κώδικα, εκμεταλλεύεται το πρότυπο αναπαράστασης αριθμών κινητής υποδιαστολής IEEE 754, κάνει bit shifting και χρησιμοποιεί την παράγωγο συνάρτησης. Δεν θα μπω στον κόπο να εξηγήσω… γιατί δεν μπορώ 🙂
Μπορείτε να δείτε το παρακάτω βίντεο να καταλάβετε ακριβώς τι κάνει.
Υπάρχουν εκεί έξω αρκετές υπηρεσίες cloud που μπορεί να χρησιμοποιήσει κανείς, με σκοπό τον συγχρονισμό των αρχείων του, μεταξύ διαφόρων PC. Ή ακόμη και σε εταιρικό περιβάλλον, για συνεργασία των εργαζόμενων μεταξύ τους.
Μπορεί κάποιος να χρησιμοποιήσει Dropbox, Google Drive, Onedrive κοκ. Αλλά πάντα υπάρχει το θέμα του κόστους και ίσως και το θέμα της ασφάλειας. Να μην θέλει να ανεβάζει τα αρχεία του στο cloud κάποιας εταιρείας.
Υπάρχει λοιπόν και η εναλλακτική του OwnCloud, που είναι είναι Open Source και δωρεάν. Μπορεί όποιος θέλει να το εγκαταστήσει σε δικό του server (τοπικά ή απομακρυσμένα) και να συγχρονίζει τα αρχεία του χωρίς κανένα όριο (εκτός από το όριο του δίσκου του φυσικά)
Παρακάτω θα δείξω τον τρόπο που μπορεί να γίνει πολύ εύκολα και για extra να εγκατασταθεί το OnlyOffice, ώστε να μπορεί να γίνεται online editing (στον browser) των office εγγράφων (word, excel, powerpoint).
Θα χρειαστούμε το Docker για να γίνει πολύ απλά και γρήγορα η εγκατάσταση. Οπότε θεωρώ ότι κάποιος γνωρίζει ήδη τα βασικά περί Docker ή έστω μπορεί να το εγκαταστήσει. Επίσης εξηγώ την διαδικασία για Linux. Αλλά πάνω-κάτω η διαδικασία είναι παρόμοια, είτε σε Mac OS, είτε σε Windows. Εξάλλου το Docker τρέχει παντού.
Αναλυτικές οδηγίες για εγκατάσταση του OwnCloud σε Docker υπάρχουν εδώ. Εγώ θα πω τα πολύ βασικά.
Δημιουργούμε έναν φάκελο, μέσα στον οποίο θα γίνει η εγκατάσταση του OwnCloud
mkdir owncloud-docker-server
cd owncloud-docker-server
Κατεβάζουμε το docker-compose.yml αρχείο που περιέχει όλες τις οδηγίες για να δημιουργηθούν τα Docker Containers που χρειάζεται η εφαρμογή.
wget https://raw.githubusercontent.com/owncloud/docs/master/modules/admin_manual/examples/installation/docker/docker-compose.yml
Δημιουργούμε ένα αρχείο .env και βάζουμε μέσα σε αυτό τα παρακάτω
OWNCLOUD_VERSION=latest
OWNCLOUD_DOMAIN=localhost
ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin
HTTP_PORT=8080
Αντί για το latest στο version μπορούμε να βάλουμε κάποια συγκεκριμένη έκδοση του OwnCloud. Τα username και password είναι αυτά που θα δημιουργήσει για αρχικό χρήστη. Μπορούν να αλλαχτούν ;έτσι κι αλλιώς αργότερα, μέσα από την εφαρμογή. Επίσης για port βάζουμε όποιο θέλουμε και στο οποίο θα “απαντάει” η εφαρμογή. π.χ. http//localhost:8080
Θεωρητικά αυτό ήτανε. Αν τρέξουμε docker-compose up -d, θα δημιουργηθούν και θα τρέξουν τα containers μας και η εφαρμογή θα είναι online.
Αλλά πρέπει να προσέξουμε κάτι. By default, όπως τα έχει το συγκεκριμένο docker-compose.yml αρχείο, όλα τα αρχεία μας θα τα βάζει μέσα σε ένα docker volume.
volumes:
files:
driver: local
mysql:
driver: local
backup:
driver: local
redis:
driver: local
Λογικά δεν θέλουμε να γίνεται αυτό, τουλάχιστον για τα αρχεία που θα ανεβάζουμε. π.χ. θα θέλουμε να τα σώζει σε κάποιον άλλο δίσκο που έχει αρκετό χώρο και άνεση. Ας υποθέσουμε ότι θέλει να τα σώζει μέσα στον φάκελο που δημιουργήσαμε παραπάνω (owncloud-docker-server) για να εγκατασταθεί το OwnCloud.
Κάνουμε edit στο docker-compose.yml και πάμε στο παρακάτω τμήμα του owncloud service
volumes:
- files:/mnt/data
Το files είναι το docker volume που χρησιμοποιείται. Αντί γι’ αυτό επιλέγουμε οποιοδήποτε path του συστήματος μας. Κάπως έτσι:
- ./myFiles:/mnt/data
Με αυτό θα σωθούν στον φάκελο owncloud-docker-server/myFiles. Δηλαδή μέσα στον φάκελο που βρισκόμαστε ήδη θα δημιουργήσει έναν φάκελο myFiles και θα σώζει εκεί τα αρχεία.
Το ίδιο μπορούμε να κάνουμε και στην mysql.
volumes:
- mysql:/var/lib/mysql
- backup:/var/lib/backup
Βάζουμε κάτι τέτοιο:
- ./mysql:/var/lib/mysql
- ./backup:/var/lib/backup
Έτσι σώζονται στους αντίστοιχους φακέλους, αντί μέσα στα docker volumes.
Για το redis δεν νομίζω να χρειαστεί να απασχολήσει κάποιον. Είναι για caching.
Πλέον είμαστε έτοιμοι να κάνουμε build και να ξεκινήσουμε την εφαρμογή. Τρέχουμε:
docker-compose up -d
Περιμένουμε αρκετή ώρα να κατεβάσει τα απαραίτητα images και να δημιουργήσει τα containers. Αφού τελειώσει, μπορούμε να μπούμε στον browser, στην διεύθυνση της εφαρμογής. http//localhost:8080
Κάνουμε login με admin:admin (αυτά που βάλαμε στο .env). Μπορούμε να κατεβάσουμε τώρα και την desktop εφαρμογή (έχει και mobile), ώστε να συγχρονίζουμε τα τοπικά μας αρχεία (όπως κάνουμε π.χ. με το Dropbox). Στην desktop εφαρμογή θα δώσουμε πάλι την διεύθυνση του server (http//localhost:8080) και θα κάνουμε login με τα παραπάνω στοιχεία.
Ας δούμε τώρα όμως πως θα εγκαταστήσουμε και το OnlyOffice για να μπορούμε μέσα από τον browser να κάνουμε edit στα office έγγραφά μας.
Θα το κάνουμε πάλι με Docker. Θα εγκαταστήσουμε τον απαραίτητο server, τον οποίο θα χρησιμοποιεί το OwnCloud, όταν πάμε να ανοίξουμε ένα έγγραφο office.
Αναλυτικές οδηγίες εγκατάστασης του OnlyOffice server υπάρχουν εδώ. Αλλά ας το πάμε με τον σύντομο τρόπο. Απλά τρέχουμε αυτή την εντολή.
docker run -i -t -d -p 8081:80 onlyoffice/documentserver
Αντί για 8081 μπορούμε να επιλέξουμε όποιο άλλο port θέλουμε, στο οποίο θα “απαντάει” ο server.
Περιμένουμε αρκετή ώρα πάλι μέχρι να κατέβει το image και να κάνει build το container. Αφού τελειώσει πάμε πάλι στο web interface του OwnCloud.
Πάνω αριστερά, στο “hamburger” εικονίδιο, αν πατήσουμε, έχει επιλογή Market. Εκεί έχει διάφορα extensions που μπορεί να εγκαταστήσει κάποιος στο OwnCloud. Μας ενδιαφέρει το OnlyOffice. Το επιλέγουμε και κάνουμε install.
Πάνω δεξιά επιλέγουμε το username μας (π.χ. admin) και μετά Settings. Κάτω-κάτω στην sidebar θα μας έχει μια επιλογή Additional. Πατώντας θα μας εμφανιστούν τα settings του OnlyOffice. Στο πρώτο πεδίο βάζουμε την διεύθυνση του OnlyOffice server. Αυτόν που εγκαταστήσαμε πιο πάνω δηλαδή (π.χ. http://localhost:8081). Τσεκάρουμε και το “Disable certificate verification (insecure)“.
Αυτό ήταν. Αν πάμε στα αρχεία μας τώρα (στον browser) και πατήσουμε πάνω σε ένα office έγγραφο, θα το ανοίξει σε άλλο tab για editing.
Όλη η παραπάνω διαδικασία είναι ενδεικτική για γρήγορη εγκατάσταση και να αρχίσει κάποιος να χρησιμοποιεί την εφαρμογή. Φυσικά μετά μπορεί να ασχοληθεί και να το κάνει όλο αυτό πιο ασφαλές. π.χ. να τα εγκαταστήσει όλα σε https. Μπορείτε να διαβάσετε και τις υπόλοιπες οδηγίες για οποιαδήποτε παραμετροποίηση, που θα ταιριάζει σε εσάς.
Την επίσημη έκδοση της Vue 3, με την κωδική ονομασία “One Piece” ανακοίνωσε σήμερα ο Evan You.
Χρειάστηκαν 2 χρόνια ανάπτυξης, έχει πάνω από 30 RFCs, γίνανε πάνω από 2600 commits και 628 pull requests, από 99 contributors.
Μπορείτε να δείτε τα release notes εδώ και το documentation εδώ
Στο παρακάτω βίντεο είναι η παρουσίαση που έκανε πριν λίγες ώρες ο Evan Vue