# error ? {gr}

Ήταν δίκαιο, το έκανα πράξη

Ήταν μακροχρόνιο αίτημα των… εκατομμυρίων χρηστών του Parrot Tunes. Το υποσχέθηκα στο προηγούμενο post, τώρα έγινε πράξη. Στις 28/12 υποσχόμαστε, στις 12/1 υλοποιούμε…

Είχα πει, λοιπόν, ότι στο επόμενο update πρέπει να δω την εμφάνιση της εφαρμογής. Οπότε, έκατσα και παρακολούθησα ένα μάθημα στο udemy για το bootstrap, ώστε να πάρω μια ιδέα. Να πω την αλήθεια με ψιλοτρόμαζε όλη η φάση. Δηλαδή το πως θα μετατρέψω το υπάρχον interface σε bootstrap. Η προηγούμενη δουλειά που είχα κάνει όμως στο CSS μου, που το είχα σπάσει σε κομμάτια και ακολουθούσα ένα μοντέλο, βοήθηκε πολύ. Ακόμη και στο να μπορέσω να κατανοήσω πιο εύκολα το πως δουλεύει το bootstrap.

Το μόνο πρόβλημα που αντιμετώπησα ήταν σε ένα σημείο που στο μάθημα χρησιμοποιούσε μια alpha έκδοση του bootstrap 4, ενώ εγώ χρησιμοποιώ την τρέχουσα beta. Κάτι που έπαιζε στην alpha, έχει αλλάξει στην beta κι εγώ προσπαθούσα να δω γιατί το παράδειγμα του μαθήματος δεν λειτουργεί σε μένα. Περισσότερο μπερδεύτηκα, γιατί για ώρες έψαχνα το σημείο στον δικό μου υπόλοιπο κώδικα, που υποτίθεται κάνει conflict με το bootstrap.

Το σημαντικότερο κομμάτι της εφαρμογής παίζει πλέον με bootstrap κι έχω ανεβάσει την έκδοση 0.17.0. Δηλαδή το βασικό layout και η βασική οθόνη. Απομένουν επιμέρους κομμάτια να αλλαχτούν, αλλά και να δω καλύτερα κάποιες λεπτομέρειες εμφάνισης. Το σημαντικότερο είναι ότι πλέον η εφαρμογή παίζει μια χαρά σε κινητό, όπως και σε οποιοδήποτε μέγεθος οθόνης.

Στο πρόγραμμα έχω πλέον το να κάτσω να μάθω laravel και ίσως κάποιο JS framework, ώστε να αρχίσω να φτιάχνω 2 projects που έχω στο μυαλό.

13/01/2018 Τεχνολογία, Programming

Parrot Tunes: Φτάσαμε στην 0.16.0 (I love Docker)

Το τελευταίο post εδώ το έκανα με την έκδοση 0.10.0. Από τότε πολύ νερό κύλησε. Μπήκαμε σε φάση beta και πάρα πολλές αλλαγές/διορθώσεις/βελτιώσεις γίνανε.

Πάμε να τα πιάσουμε με την σειρά.

Τον Σεπτέμβριο προστέθηκε η δυνατότητα να ανεβάζει ο χρήστης media αρχεία, απευθείας από το web περιβάλλον. Δεν χρειάζεται δηλαδή να αντιγράφει τα αρχεία σε κάποιον φάκελο και να πατάει μετά συγχρονισμό μέσα στην εφαρμογή. Ο συγχρονισμός παραμένει, αλλά στην ουσία είναι για την πρώτη φορά που πρέπει να περαστούν ακόμη και χιλιάδες αρχεία. Στην συνέχεια που ο χρήστης απλά περνάει μερικά αρχεία κάθε φορά, τα κάνει upload απαυθείας από τον browser του.

Με αυτή την προσθήκη η εφαρμογή μπήκε και σε φάση beta.

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

Εκεί όμως που του άλλαξα τα φώτα, του κώδικα, ήταν στο επόμενο update τον Οκτώβριο. Εκεί άλλαξε όλη η δομή στο πως καλούνται όλες οι κλήσεις AJAX, με χρήση routing. Ένα πρώτο δειλό τσαλαβούτημα στα νερά του MVC pattern.

Όλες αυτές οι αλλαγές όμως δεν ήταν αναίμακτες. Πολλά πράγματα σπάσανε, ειδικά όποια δεν δούλευα εγώ προσωπικά και δεν είχα προσέξει. Έτσι τον Νοέμβριο ανέβηκε το επόμενο update με πολλές διορθώσεις και μια προσπάθεια να παίζει η εφαρμογή και σε Lighttpd, εκτός από Apache.

Μέχρι που ήρθε ο Δεκέμβριος και άλλαξε ολόκληρη η οπτική μου, για τον δρόμο που θα πάρει η εφαρμογή. Μπήκα στον θαυμαστό κόσμο του Docker κι έτσι ελάχιστη προσοχή θα δίνω τώρα για το πως θα εγκαταστήσει κάποιος την εφαρμογή στον server του. Θεωρητικά μπορεί να το κάνει, αλλά δεν ξέρω τι μπορεί να σπάσει από εδώ και πέρα. Η εγκατάσταση της εφαρμογής προτείνεται πλέον να γίνεται σε Docker.

Αυτό σημαίνει ότι ο χρήστης (χοντρικά) εγκαταστεί το Docker (αν δεν το έχει ήδη), κατεβάζει τα αρχεία της εφαρμογής, τρέχει μια εντολή και όλα είναι έτοιμα, χωρίς να παιδεύεται με τις διάφορες απαιτήσεις που μπορεί να έχει η εφαρμογή. Αναλυτικές οδηγίες εγκατάστασεις, εδώ.

Έτσι η έκδοση 0.15.0 ήταν εξ ολοκλήρου αφιερωμένη στο Docker… και φυσικά σε διορθώσεις σφαλμάτων. Και ακολούθησαν και 2 μικρές εκδόσεις με… διορθώσεις σφαλμάτων.

Με το Docker βελτιώθηκε πολύ και ο τρόπος που δουλεύω γενικά πάνω σε εφαρμογές. Πολύ εύκολα ανοίγω μηχανές για Dev και μπορώ να μετακινούμε ακόμη και από μηχάνημα σε μηχάνημα πολύ εύκολα. Φυσικά μπορώ να σκέφτομαι από εδώ και πέρα ουσιαστικά για dekstop web εφαρμογές, χωρίς να περιορίζομαι με το πως ο χρήστης θα τις εγκαταστήσει σε server του κτλ

Η τελευταία έκδοση ήρθε να προσθέσει μια δυνατότητα που μπορεί να γλιτώσει χρήματα για τον χρήστη. Προσωπικά ακούω πολύ μουσική από το κινητό (στο ποδήλατο, στο αυτοκίνητο κτλ) κι έτσι η κατανάλωση mobile data γίνεται με το τσουβάλι. Σκεφτόμουν καιρό πως θα μπορούσα να μετατρέπω τα τραγούδια σε πραγματικό χρόνο, σε χαμηλότερο bitrate, ώστε να γλιτώνω bandwidth.

Τελικά η μετατροπή, όσο καλό μηχάνημα και να έχεις, χρειάζεται μερικά δευτερόλεπτα. Οπότε δεν μπορώ να μετατρέπω το τραγούδι την στιγμή που πάει να φορτώσει και να αρχίσει να παίζει. Πρέπει να γίνει όσο παίζει το προηγούμενο τραγούδι. Έτσι τώρα, την στιγμή που το τραγούδι που παίζει μπει σε κατάσταση played (by default στο 20% του χρόνου του. Μπορεί να το αλλάξει ο χρήστης αυτό), τότε η εφαρμογή ψάχνει να δει ποιο θα είναι το επόμενο τραγούδι που θα παίξει (Πριν αυτό γίνονταν στο τέλος του κάθε τραγουδιού). Αφού βρει το επόμενο, τότε αρχίζει και την μετατροπή του σε χαμηλότερο bitrate και το σώζει σε προσωρινό φακέλο. Έτσι όταν πάει να παίξει, θα παίξει αυτό το προσωρινό και όχι το original. By default το μετατρέπει στα 64k, αλλά και αυτό φυσικά μπορεί να το αλλάξει ο χρήστης στα options.

Αυτή την μετατροπή μπορεί ο χρήστης να την ενεργοποιεί/απενεργοποιεί όποτε θέλει, αφού έχει μπει σχετικό κουμπάκι στον player.Το επόμενο βήμα για το Parrot Tunes, μάλλον πρέπει να είναι ένα δυνατό update στην εμφάνιση, που γενικά την έχω παραμελήσει. Με ενδιέφερε απλά να παίζει με μια σχετική ευχρηστία. Και μάλλον πρέπει να μπω στα χωράφια του Bootstrap.

Αναλυτικά οι αλλαγές που έχουν γίνει από την αρχή στο Parrot Tunes.

 

 

 

 

 

28/12/2017 Τεχνολογία, Μουσική

Ανέβηκε το νέο update του Parrot Tunes

Ανέβηκε και το τελευταίο update (0.10.0) του Parrot Tunes. Αν και άργησα λίγο σε σχέση με το χρονοδιάγραμμα που είχα βάλει. Το τι έχει το νέο update μπορείτε να το δείτε εδώ, αλλά και στα changelogs.

Το επόμενο update θα γίνει λογικά μέσα στον Σεπτέμβριο και θα έχει να κάνει με την προσθήκη δυνατότητας uploading των αρχείων μέσω web interface. Ταυτόχρονα θα μπει και η εφαρμογή σε κατάσταση beta, αφού ολοκληρώνονται ουσιαστικά όλα τα βασικά χαρακτηριστικά της.

29/08/2017 Τεχνολογία, Programming ,