Archive

Posts Tagged ‘DROP’

DROP 2.0: Ενσωμάτωση του παράθυρου εισαγωγής εγγράφων στο περιβάλλον του DROP

December 9th, 2009

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

Τεσπα. Αυτό που επικράτησε λοιπόν στο DROP, ήταν ένα ενιαίο περιβάλλον με ένα ειδικό dock με εικονίδια σε ρόλο menu. Πατώντας στα εικονίδια αυτά ανοίγουν οι διάφορες λειτουργίες της εφαρμογής. Και ανοίγουν σε παράθυρα μέσα στον browser, μέσα στο παράθυρο που δουλεύεις. Δηλαδή ούτε refresh γίνεται η σελίδα, ούτε σου ανοίγει νέα παράθυρα ή tabs του browser. Όλες οι λειτουργίες ήταν έτσι, εκτός από την κεντρική. Της εισαγωγής αρχείου. Μόνο σε αυτό, άνοιγε νέο παράθυρο του browser με την σχετική φόρμα.

Αυτό μέχρι χθες, αφού τώρα και αυτό ενσωματώθηκε μέσα στο ενιαίο περιβάλλον. Είχε αρκετό παίδεμα για να γίνει. Να ενωθούν CSS, βιβλιοθήκες, να ξεκαθαρίσουν divs, να αλλάξει ο τρόπος που γίνεται ο χειρισμός των φορμών και των data τους κτλ. Στην ουσία το παράθυρο εισαγωγής είναι μόνο του μια μικρή εφαρμογή με την πολυπλοκότητα που έχει. Από λειτουργικότητα είναι στο 90% εντάξει. Μένουν να διορθωθούν κανα-δυο bugs και να βελτιωθεί και ο κώδικας, αφού σε αυτό το κομμάτι δεν είχα κάνει το στρώσιμο που έκανα σε όλη την υπόλοιπη εφαρμογή.

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

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

Συμπέρασμα. Νομίζω πως μπορώ πλέον (αφού ξεφορτώθηκα τελείως την παλιά λογική) να βάλω ένα 2.0 δίπλα στην ονομασία της εφαρμογής… :-) Η 3.0 θα είναι και η τελική έκδοση που θα μπορεί να χρησιμοποιηθεί από τρίτους. Και η ώρα που θα γίνει αυτό είναι κοντά… :-)

kiranis Tech ,

DROP: Σύστημα αρχειοθέτησης εγγράφων πρακτικών συνεδριάσεων

December 3rd, 2009

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

kiranis Tech , , ,

Screencast για το DROP

September 24th, 2009

Έκανα ένα screencast με μια περιγραφή της εφαρμογής που φτιάχνω. Για να μην φαίνονται τα δεδομένα το έχω επίτηδες σε κακή ποιότητα εικόνας. Αλλά μια άποψη νομίζω την παίρνει κανείς για το πως περίπου δουλεύει…

kiranis Tech , , , ,

Δημιουργία αντιγράφων στο DROP και προσωπικά έγγραφα

July 21st, 2009

Μέχρι τώρα, στο DROP, αν και υπήρχε η έννοια των “προσωπικών εγγράφων προς ενέργεια”, με τον τρόπο που το δουλεύουν ακόμη οι χρήστες δεν έχει πρακτική σημασία. Όλα γίνονται κυρίως σε public φάση.  Πλέον όμως με την δυνατότητα δημιουργίας αντίγραφου κάποιου έγγραφου, τα προσωπικά έγγραφα αποκτούν και μια άλλη λογική. Όταν κάνει κάποιος αντίγραφο, του το πηγαίνει στα προσωπικά έγγραφα και μόνο αυτός μπορεί να το δει. Καταρχήν η δυνατότητα της δημιουργίας αντιγράφων προστέθηκε από την ανάγκη το ίδιο έγγραφο να αναφέρεται σε πάνω από ένα έργα (projects) ταυτόχρονα και ίσως και να γίνεται διαφορετικός χειρισμός. Ταυτόχρονα ίσως κάποιος θέλει να κρατήσει προσωπικά αντίγραφα για έγγραφα που έχουν μεγάλη σημασία γι’ αυτόν και δεν θέλει να ψάχνει κάθε φορά στο σύνολο των εγγράφων να τα βρει (χμμμ… νέο todo σκέφτηκα… μάλλον και η δυνατότητα για αγαπημένα θα ήταν καλή ιδέα). Κι εδώ λοιπόν έρχεται η νέα χρήση για τα προσωπικά έγγραφα.

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

kiranis Tech ,

Ενσωμάτωση Twitter Client στο DROP

July 15th, 2009

DROP Twitter ClientΈγραψα ήδη ότι χρησιμοποιώ το API του twitter. Πλέον όμως το κάνω πιο ολοκληρωμένα, αφού μέχρι τώρα εμφάνιζε μόνο τα tweets και δεν μπορούσες να κάνεις. Τώρα μπορείς να το κάνεις και αυτό. Σ’ ένα σχετικό παράθυρο εμφανίζονται τα 10 τελευταία tweets και πάνω-πάνω υπάρχει ένα text box για να γράφεις τα μηνύματα σου.  Την πρώτη φορά που θα γράψεις ένα tweet σου ζητάει το username και το password σου για το twitter. Δεν χρειάζεται να τα ξαναδόσεις, αφού αποθηκεύονται από την εφαρμογή. Υπάρχει η δυνατότητα τα τα διαγράψεις κιόλας.

Τελευταία έχω προσθέσει και ακόμη μία δυνατότητα της εφαρμογής στην χρήση του twitter. Πολλές φορές οι χρήστες θέλουν να δείξουν ένα έγγραφο σε κάποιον άλλο. Μέχρι τώρα του έλεγε το file id και πήγαινε στην αναζήτηση και το έψαχνε έτσι. Δεν είναι και ότι το καλύτερο. Πρόσθεσα λοιπόν την δυνατότητα υπενθύμισης εγγράφου. Δηλαδή πατώντας στο σχετικό εικονίδιο στο έγγραφο που θέλουμε, κάνει αυτόματα ένα tweet με τον τίτλο και το url του εγγράφου. Το tweet αυτό εμφανίζεται φυσικά στον ενσωματωμένο twitter client. Οπότε ο χρήστης πάει στον twitter client και πατάει απλά στο url, το οποίο του εμφανίζει το έγγραφο που ήθελε. Απλά και γρήγορα.

kiranis Tech , ,

Καθαρισμός κώδικα…

July 3rd, 2009

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

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

Επίσης προ-δημιουργούσε, μαζικά, στοιχεία για εμφάνιση, που στο τέλος φυσικά δεν χρειάζονταν όλα να εμφανιστούν.Τζάμπα resources και τζάμπα sql queries. Στο επίπεδο που δουλεύει τώρα η εφαρμογή δεν φαίνεται, αλλά σε μια πιο δυνατή και απαιτητική χρήση θα γονάτιζε.

Το έφτιαξα, λοιπόν, διαφορετικά το σκηνικό. Έτσι τώρα έχει αποκοπεί αυτό το κομμάτι κώδικα και καλείται σαν plugin μόνο όταν χρειάζεται και σε όποιο σημείο της εφαρμογής χρειάζεται. Το μειονέκτημα του παλιού τρόπου φαίνεται και στις αλλαγές που κάνω τώρα. Επειδή ήταν δεμένος ο κώδικας με όλο το υπόλοιπο κόλπο, “χτυπάει” σε διάφορα άσχετα σημεία. Αυτή την στιγμή έχω διορθώσει ότι bugs εμφανίστηκαν, αλλά χρειάζεται επιφυλακή μην εμφανιστούν και άλλα σε ειδικές συνθήκες.

kiranis Tech , ,

Error messages!

July 3rd, 2009

Μερικά από τα μηνύματα λάθους που εμφανίζει το DROP, όταν ο χρήστης δεν κάνει αυτά που πρέπει…. :-)

Error

Error

Error

kiranis Tech , , , ,

Χρήση του Twitter API στο DROP

June 29th, 2009

Μια ακόμη από τις τελευταίες προσθήκες που έχω κάνει είναι και η χρήση του Twitter API. Αυτό γίνεται καταρχήν σαν μέρος ενός πειραματισμού για χρήση του Twitter για ενδοεταιρική επικοινωνία. Με κλειδωμένα τα updates φυσικά.  Οι χρήστες με μικρά μηνύματα στο twitter μπορούν να επικοινωνούν μεταξύ τους εύκολα και γρήγορα, απ’ όπου κι αν βρίσκονται. Ταυτόχρονα, ο διαχειριστής του συστήματος μπορεί να τους ενημερώνει και για διάφορα τεχνικά ζητήματα/αλλαγές που γίνονται και τους αφορούν.

Οι χρήστες όμως, δύσκολα χρησιμοποιούν νέες τεχνολογίες. Οπότε έπρεπε να ενσωματωθεί κάπως στην ήδη υπάρχουσα τεχνολογία που χρησιμοποιούν. Γι’ αυτό το πρόσθεσα στο περιβάλλον του DROP. Σε ειδικό παράθυρο, στην κεντρική σελίδα, φαίνονται όλα τα updates που γίνονται στο twitter. Ενώ θα ενσωματώσω και την δυνατότητα να κάνουν tweets μέσα από το DROP.

Ταυτόχρονα το DROP κάνει αυτόματα ενημερωτικό tweet για κάθε νέο έγγραφο που προστίθεται στην βάση.

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

Edit: Τώρα που το σκέφτομαι, καλύτερα θα ήταν μία διασύνδεση ενός εσωτερικού συστήματος (ώστε να μην υπάρχει εξάρτηση) με το Twitter. Με 2 τριγώνια, έναν σμπάρο… :-)

kiranis Tech , , ,

Προτάσεις ετικετών

June 29th, 2009

Στο DROP έχω προσθέσει πρόσφατα ένα συστηματάκι (το ονόμασα “μάγο ετικετών” :-) ) για να σου προτείνει ετικέτες με βάση τον τίτλο και την περιγραφή που δίνεις σε ένα έγγραφο. Η λογική είναι απλή. Σπάει το κείμενο σε λέξεις και μετά ελέγχει κάθε λέξη από αυτές, αν υπάρχει στις ήδη υπάρχουσες ετικέτες. Αν υπάρχει την εμφανίζει σε μία λίστα, απ’ όπου με ένα κλικ μπορείς να την προσθέτεις στις ετικέτες του εγγράφου. Με αυτόν τον τρόπο, τουλάχιστον καταχωρείς τις ετικέτες με έναν συγκεκριμένο τρόπο και όχι κάθε φορά διαφορετικά. π.χ. άλλες φορές με κεφαλαία, με κάποια γράμματα κεφαλαία, με τόνους, χωρίς τόνους κτλ. Για να αποφύγω το πρόβλημα αυτό, μετατρέπω όλες τις λέξεις που ελέγχω μεταξύ τους, σε κεφαλαία και χωρίς τόνους.

Τα βήματα που γίνονται λοιπόν είναι:

  • Ένωση του κειμένου του τίτλου και της περιγραφής
  • Μετατροπή του κειμένου σε κεφαλαία.
  • Αφαίρεση των τόνων, όπου υπάρχουν.
  • Σπάσιμο του κειμένου αυτού σε πίνακα με τις λέξεις
  • Διάβασμα του table της βάσης με τα tags.
  • Για κάθε εγγραφή του table κάνουμε τον παρακάτω έλεγχο
  • Μετατροπή πρώτα της λέξης σε κεφαλαία και χωρίς τόνους
  • Έλεγχος (με την in_array() ) αν η λέξη αυτή υπάρχει στον πίνακα που δημιουργήσαμε στην αρχή.
  • Αν η λέξη υπάρχει την εμφανίζουμε.

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

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

kiranis Tech , ,