Προς το περιεχόμενο

ULTRA Suggest - Extension για το ALPHA CMS (Reversed Engineered Google Maps A.P.I)


h4ck3r

Προτεινόμενες αναρτήσεις

Ωφείλω να ζητήσω συγγνώμη για το θέμα του API, καθώς δεν πρόσεξα ότι καλείς το 'https://maps-api-ssl...om/maps/suggest', και όχι το 'http://maps.google.com/maps/api/js'. Συνεπώς, όντως δεν φορτώνεις το API, απλά καλείς μια υπηρεσία της Google, η οποία επιστρέφει τις περιοχές που ματσάρουν με το query του χρήστη. Βέβαια, εσύ επιμένεις πως δεν κάνεις κανένα call στην Google, και, επίσης, πως δεν χρειάζεται κανένα key (που ούτως ή άλλως το Google Maps δεν απαιτεί κανένα key).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 43
  • Δημ.
  • Τελ. απάντηση

Πολύ ωραία όλα αυτά αλλά κάνω χρήση της υπηρεσίας και τσιμπάω τα αποτελέσματα "as-is" και μετά με reverse engineering κάνω χρήση και διαχωρισμό των αποτελεσμάτων χωρίς να έχω γνώση και χρήση του A.P.I!

 

Άρα δεν κάνω κανένα A.P.I call στο Google, δεν είναι call το request στο link, και τέλος δεν γνώριζα ότι το νέο version του Google Maps και τα σχετικά δεν χρειάζεται πλέον keys ή οτιδήποτε άλλο μιας και δεν έκανα ποτέ τον κόπο να τα μάθω γιατί δε χρειάστηκα χάρτες!

 

Πιστεύω ότι καταλαβαίνεις τώρα πως το μόνο που παρέχω είναι μια καθαρή υλοποίηση με reverse engineering του συστήματος της Google, τουλάχιστον ένα μέρος του για την ώρα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δε λέμε να το αποφύγουμε, όχι πάντα τουλάχιστον.

 

Προσωπικά το βλέπω μόνο και μόνο απο θέμα μεγέθους, ταχύτητας και εγωϊσμού το να μπορώ να κάνω χρήση μέρους του συστήματος άμεσα και όχι όλου και χωρίς να κάτσω να διαβάσω κάποιο A.P.I.

 

Αυτά είναι τα ωραία!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Βέβαια!

Μικρό μέγεθος, μεγαλύτερη ταχύτητα και φυσικά ευχρηστία,

γιατί δε καλείς κάποιο A.P.I ή κάτι άλλο και έχεις ένα έτοιμο αυτόνομο εργαλείο!

 

Το βάζεις στο site σου και απλά παίζει....

 

Τί άλλο θες?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

 

Μικρό μέγεθος, μεγαλύτερη ταχύτητα και φυσικά ευχρηστία,

 

 

 

Μα αυτά θεωρούνται δεδομένα σε οτιδήποτε φτιάχνεις εσύ !

Ειδικά η ευχρηστία είναι πιστεύω το σήμα κατατεθεν σου (μετά την ασφάλεια βέβαια).

Τιποτα άλλο δεν προσφέρει ??? :(

(Μας έχεις καλομάθει και έχουμε απαιτήσεις!)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

αλλιώς αν θες να αποδείξεις κάτι κάνε κάτι καλύτερο και μετά έλα να με κρίνεις.

 

Είμαι σαφής.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το βάζεις στο site σου και απλά παίζει....

Αυτό ελέγχεται.. Έχει προαπαιτήσεις τις οποίες δε λες να παραδεχτείς...

Ας πάρουμε για παράδειγμα αυτή τη γραμμή:

>url = '/ultra_suggest.php';

εάν δε βάλω όλα τα αρχεία στον root φάκελο, καταλαβαίνεις ότι απλώς γυρνάει σφάλμα, έτσι δεν είναι;

 

Βέβαια!

έχεις ένα έτοιμο αυτόνομο εργαλείο!

... το οποίο επί της ουσίας δε κάνει τίποτα! Ωραία, βρήκα όλες τις "athens" του πλανήτη.. και μετά; Πως μπορεί να χρησιμοποιηθεί για παράδειγμα σε αυτό το θέμα;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Απλά το βάζει το παλικάρι στο φάκελο και το κάνει χρήση....

Το μόνο που δε λαμβάνει υπόψιν όμως το συγκεκριμένο tool είναι τα μήκη και πλάτη. Εάν τον ενδιαφέρει όμως μόνο το auto-complete είναι ΟΚ!

 

Όσο γι αυτό url = '/ultra_suggest.php';, είναι λογικό βέβαια να μπορείς να το αλλάξεις.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτό είναι δική σου άποψη,

 

Για την ακρίβεια είναι η άποψη των τεσσάρων απο τους πέντε που έχουν ποστάρει σε αυτό το τόπικ (και ο πέμπτος είσαι εσύ!)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Απλά το βάζει το παλικάρι στο φάκελο και το κάνει χρήση....

Το μόνο που δε λαμβάνει υπόψιν όμως το συγκεκριμένο tool είναι τα μήκη και πλάτη. Εάν τον ενδιαφέρει όμως μόνο το auto-complete είναι ΟΚ!

 

Όσο γι αυτό url = '/ultra_suggest.php';, είναι λογικό βέβαια να μπορείς να το αλλάξεις.

Όπως βλέπεις όμως, το παλικάρι γράφει ότι γενικότερα δεν το "κατέχει". Με το να του δώσεις αυτό το ημιτελές extension με όλα αυτά τα προβλήματα που σου αναφέραμε και τη παντελή έλλειψη βοήθειας (ή έστω σχολίων στον κώδικα) απλώς ακυρώνεις όλη τη προσπάθειά σου. Φτιάξε κάτι πιο ολοκληρωμένο και ουσιώδες (σαν κι αυτό), άσε τους βαρύγδουπους τίτλους ("Reversed Engineered Google Maps A.P.I." - σιγά, χαλάρωσε λίγο!), βάλε κάνα σχόλιο στον κώδικά σου, φτιάξε ένα βασικό troubleshooting, προέβλεψε βασικά λάθη του χρήστη, κάνε και κάνα τεστάρισμα σε διαφορετικά μηχανήματα και εγκαταστάσεις και θα αφήσουμε κι εμείς το κράξιμο και την (επί μονίμου βάσεως αρνητική) κριτική

 

BTW, ακόμα ένα λάθος λογικής:

 

>// Initialize an AJAX object

function AJAX_Init()

{


var xmlHttp = null;

   

// Firefox, Opera, Safari, Chrome

try

{

   

   	xmlHttp = new XMLHttpRequest();

   

}

   

catch(any_error)

{

   

   	// Internet Explorer

   	try

   	{

       

       	xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');

       

   	}

       

   	catch(ie_error)

   	{

       

       	try

       	{

           

           	xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');

           

       	}

           

       	catch(no_error)

       	{

           

           	alert('Your browser does not support AJAX!');

           

       	}

       

   	}

   

}

   

return xmlHttp;


}


// Initialize global XML HTTP objects

global_xml_http[0] = AJAX_Init();

global_xml_http[1] = AJAX_Init();

global_xml_http[2] = AJAX_Init();

global_xml_http[3] = AJAX_Init();

global_xml_http[4] = AJAX_Init();

global_xml_http[5] = AJAX_Init();

global_xml_http[6] = AJAX_Init();

global_xml_http[7] = AJAX_Init();

 

εάν όντως ο browser δεν υποστηρίζει ajax, θα τρέξει 7 φορές την

>alert('Your browser does not support AJAX!');

και θα φάω στη μάπα ισάριθμα μηνύματα λάθους...

 

Επιπλέον, γιατί τόσες κενές γραμμές; Είπαμε, readability, αλλά αυτό καταντάει γελοίο...

 

και τέλος, γιατί όλο αυτό:

 

>if (ajax_session == 1)

       {

       

           global_xml_http[0].onreadystatechange = __State_Changed_1;

           global_xml_http[0].open('POST', url, true);

           global_xml_http[0].setRequestHeader ('Accept-encoding', 'UTF-8');

           global_xml_http[0].setRequestHeader ('Content-type', 'application/x-www-form-urlencoded');

           global_xml_http[0].setRequestHeader ('Content-length', data.length);

           global_xml_http[0].setRequestHeader ('Connection', 'close');

           global_xml_http[0].send(data);

       

       }

       

       if (ajax_session == 2)

       {

       

           global_xml_http[1].onreadystatechange = __State_Changed_2;

           global_xml_http[1].open('POST', url, true);

           global_xml_http[1].setRequestHeader ('Accept-encoding', 'UTF-8');

           global_xml_http[1].setRequestHeader ('Content-type', 'application/x-www-form-urlencoded');

           global_xml_http[1].setRequestHeader ('Content-length', data.length);

           global_xml_http[1].setRequestHeader ('Connection', 'close');

           global_xml_http[1].send(data);

       

       }

       

       if (ajax_session == 3)

       {

       

           global_xml_http[2].onreadystatechange = __State_Changed_3;

           global_xml_http[2].open('POST', url, true);

           global_xml_http[2].setRequestHeader ('Accept-encoding', 'UTF-8');

           global_xml_http[2].setRequestHeader ('Content-type', 'application/x-www-form-urlencoded');

           global_xml_http[2].setRequestHeader ('Content-length', data.length);

           global_xml_http[2].setRequestHeader ('Connection', 'close');

           global_xml_http[2].send(data);

       

       }

       

       if (ajax_session == 4)

       {

       

           global_xml_http[3].onreadystatechange = __State_Changed_4;

           global_xml_http[3].open('POST', url, true);

           global_xml_http[3].setRequestHeader ('Accept-encoding', 'UTF-8');

           global_xml_http[3].setRequestHeader ('Content-type', 'application/x-www-form-urlencoded');

           global_xml_http[3].setRequestHeader ('Content-length', data.length);

           global_xml_http[3].setRequestHeader ('Connection', 'close');

           global_xml_http[3].send(data);

       

       }

       

       if (ajax_session == 5)

       {

       

           global_xml_http[4].onreadystatechange = __State_Changed_5;

           global_xml_http[4].open('POST', url, true);

           global_xml_http[4].setRequestHeader ('Accept-encoding', 'UTF-8');

           global_xml_http[4].setRequestHeader ('Content-type', 'application/x-www-form-urlencoded');

           global_xml_http[4].setRequestHeader ('Content-length', data.length);

           global_xml_http[4].setRequestHeader ('Connection', 'close');

           global_xml_http[4].send(data);

       

       }

 

δε γράφτηκε απλά σαν:

 

>global_xml_http[ajax_session].onreadystatechange = __State_Changed_(ajax_session); 
global_xml_http[ajax_session-1].open('POST', url, true); 
global_xml_http[ajax_session-1].setRequestHeader ('Accept-encoding', 'UTF-8'); 
global_xml_http[ajax_session-1].setRequestHeader ('Content-type', 'application/x-www-form-urlencoded'); 
global_xml_http[ajax_session-1].setRequestHeader ('Content-length', data.length); 
global_xml_http[ajax_session-1].setRequestHeader ('Connection', 'close'); 
global_xml_http[ajax_session-1].send(data); 

 

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Όντως....Good point!

 

Απλώς το search που μου έδωσες σαν παράδειγμα κάνει χρήση του Google A.P.I.

Εμένα δε μου κάνει.

 

 

Όσο γι' αυτό;

"βαρύγδουπους τίτλους ("Reversed Engineered Google Maps A.P.I." - σιγά, χαλάρωσε λίγο!"

 

που είναι το υπερβολικό? λέω απλά τι έκανα με την ορολογία που διέπει την τεχνική.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ευχαριστώ πολύ, αυτή είναι η δουλειά μου. Τα γνωρίζω πολύ καλά και ξέρω πολύ καλά τι λέω.

Δεν κάνω κανένα parsing δεν φτιάχνω κανένα compiler αλλά έκανα reverse engineering στο προτώκολλο επικοινωνίας.

Πως λοιπόν κάνεις χρήση του A.P.I χωρίς να το καλείς. Αυτό ονομάζεται χρήση με αντίστροφη μηχανική (Βλέπε σαν παράδειγμα WINE)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

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

Επισκέπτης
Αυτό το θέμα είναι πλέον κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...