Pages

Wednesday, October 13, 2010

C++ 101: The Basics

Θα ξεφύγω λίγο από php/js κλπ και θα ασχοληθώ λίγο με τη C++ και την αντικειμενοστρέφεια γενικότερα.


Η έννοια της αντικειμενοστρέφειας έχει καλυφτεί και σε παλιότερο post και είναι η ίδια, αλλά θα τα αναφέρω κι εγώ just to make sure.


Στην C υπήρχαν τα structs τα οποία ήταν μια "ομάδα" μεταβλητών.
Μπορούμε ας πούμε να κάνουμε μια δομή Person στο οποίο θα περιέχεται ένα string για το όνομά του και ένας ακέραιος για την ηλικία του.
Με αυτό τον τρόπο μπορούμε να δημιουργήσουμε μια μεταβλητή τύπου Person και να κρατάμε αυτά τα στοιχεία μαζί.

Thursday, October 7, 2010

Pagination (Σελιδοποίηση) με την PHP

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

Έστω ότι έχουμε ένα κατάστημα, και σε κάθε κατηγορία έχουμε πολλά προϊόντα.
Μπορούμε να τα εμφανίσουμε όλα μαζί σε μια σελίδα, το οποίο ειναι και το πιο εύκολο, ή μπορούμε να το κάνουμε να εμφανίζει 10-15-20 προϊόντα κάθε φορά, το οποίο είναι λίγο πιο περίπλοκο αλλά ταυτόχρονα και το πιο σωστό και χρηστικό.

Για να γίνει αυτό θα χρησιμοποιήσουμε τον τελεστή LIMIT της mysql.

Αυτός ο τελεστής μπορεί να πάρει 1 ή 2 ορίσματα, και λειτουργεί ως εξής:

Sunday, September 26, 2010

Ajax Search

Photobucket

Σε προηγούμενο ποστ είχα δείξει έναν τρόπο για αναζήτηση-κατά-την-πληκτρολόγηση.

Ο τρόπος εκείνος φόρτωνε εξ' αρχής όλα τα αποτελέσματα και μετά η αναζήτηση γινόταν τοπικά.

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

Saturday, September 18, 2010

Αλγόριθμοι - Binary Search

Ο αλγόριθμος Binary Search είναι ένας δημοφιλής, αποτελεσματικός και γρήγορος αλγόριθμος αναζήτησης.
Ο αλγόριθμος είναι σχετικά απλός αλλά προαπαιτεί ο πίνακας στον οποίον εφαρμόζεται να είναι ταξινομημένος.
Εφόσον έχουμε δώσει το στοιχείο που ψάχνουμε ξεκινάει ο αλγόριθμος :

1. Επιλέγουμε το μεσαίο στοιχείο του πίνακα και ελέγχουμε αν είναι το στοιχείο που ψάχνουμε.
2.1. Αν είναι το στοιχείο που ψάχνουμε η αναζήτηση τελειώνει.
2.2 Αν το στοιχείο που ψάχνουμε είναι μικρότερο από το μεσαίο στοιχείο του πίνακα τότε επαναπροσδιορίζουμε τον πίνακα ώστε η επόμενη αναζήτηση να γίνει στο μισό του πίνακα με τις μικρότερες τιμές.
2.3 Το αντίστοιχο γίνεται και αν το στοιχείο που ψάχνουμε είναι μεγαλύτερο από το μεσαίο στοιχείο του πίνακα.
3. Επαναλαμβάνουμε την ίδια διαδικασία ξεκινώντας από το βήμα 1. Μετά από λίγες μόνο επαναλήψεις και εφόσον το στοιχείο υπάρχει στο πίνακα, θα βρεθεί.

Θα υλοποιήσουμε ένα παράδειγμα με ένα πίνακα ακεραίων 1024 θέσεων.
Για να γίνει αυτό χρειάζονται μερικές βοηθητικές μεταβλητές :

Friday, September 17, 2010

Προβολή/απόκρυψη στοιχείων βάσει γράμματος με τη Javascript

Επειδή ο τίτλος δεν βοηθάει και ιδιαίτερα, τι εννοώ:

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

To είδα λοιπόν, μου άρεσε, το χρησιμοποίησα σε ένα project και εδώ είναι ένα παράδειγμα για το πώς να το χρησιμοποιήσετε κι εσείς.

Κάπου εδώ να επισημάνω ότι όπως και με το live search, έτσι κι εδώ, πρώτα φορτώνω όλα τα στοιχεία που με ενδιαφέρουν και μετά κάνω την όποια επιλογή. ΔΕΝ γίνεται χρήση Ajax.

Η λογική πίσω από το script είναι ιδιαίτερα απλή και μοιάζει κατά κάποιον τρόπο με το live search:

Sunday, September 12, 2010

Αυτόματη (και μη) εναλλαγή εικόνων με τη JavaScript

Εκεί που καθόμασταν και μιλούσαμε,  πρότεινε ένας φίλος μου να κάνω ένα script-άκι για εναλλαγές εικόνων γιατί ήθελε να το χρησιμοποιήσει.

Μιας που έχουμε εξεταστική, δεν είχα τι να κάνω, οπότε είπα "wtf, ας το κάνω...", άνοιξα μια μπύρα (beer programming ντε! ) και ξεκίνησα....

Πώς λειτουργεί το όλο πράμα:

Έχουμε ένα img και 3 κουμπιά: previous, auto, next. 

Tuesday, September 7, 2010

Java Common Mistakes - == String Comparison

Ένα από τα κλασσικά λάθη των αρχάριων στη Java.

Η σύγκριση Strings με τον τελεστή ==.

Τα Java Strings είναι αντικείμενα της κλάσης java.lang.String. Ο τελεστής == όταν χρησιμοποιείται σε αντικείμενα δε κάνει τίποτα παραπάνω από το να ελέγχει εαν τα δύο αντικείμενα "δείχνουνε" στην ουσία στην ίδια θέση μνήμης.

Οπότε με αυτό το τρόπο δεν συγκρίνουμε τα περιεχόμενα των δύο Strings, άρα παίρνουμε πιθανώς και λάθος αποτελέσματα.