24.5.05

Διαπλοκή v. 1.0

Για όσους ενδιαφέρονται.

Όπως βλέπετε η σπουδαιότερη τροποποίηση είναι ότι υποστηρίζονται και διευθύνσεις εκτός blogger, κατόπιν πάνδημου λαϊκού αιτήματος.



(η εικόνα είναι απλό demo, cut & pasted από μεγαλύτερη, μην περιμένετε να δείτε και πολλά, απλώς δείχνει ότι παίζουν πλέον και διευθύνσεις εκτός blogger).

Όσοι είναι σε θέση να το χρησιμοποιήσουν μπορούν εύκολα να βρουν και το e-mail μου για τυχόν απορίες.

On the plus side, με αυτό το προγραμματάκι έφτιαξα και μία ψιλοπλήρη λίστα των ελληνικών blog στο blogger.com (καθώς, πιθανότατα, και μερικών ξέμπαρκων ξένων blog), τραβώντας αυτόματα διευθύνσεις από τα πρωτοσέλιδα της Κουρούνας, του CrazyMonkey, της DiS και μερικών άλλων:

aardvarks-blog, accidentalkitty, aegeandisclosure, agripnia, akontrario, algio, analogio, apostatewindbag, araxtos, aris2290, arithmodeiktis, arkoudos, ascendotuum, aunderscorelive, basilikh, bereketis, beyondchaos, biliouraki, bizwriter, bliax, blogarismenh, blogmedia, bsdaemon, cluelessasalways, cristianvera, cunning-linguistics, cuzcar, czechout, dalani, damselinstress, datascape, dgalanis, diastaseis, differentday, digitalville, dogblogger, dontkissthefrog, draxisblogging, dreamprints, dystropoppygus, emotionalanaemia, enstaseis, e-roosters, erstaiou, estarian, etcetcetcetc, eureferendum, euroblogreview, europhobia, eu-serf, fakirhs, ffwood, footballholic, foreigncountry, freecinema, freepaper, friendshipthroughlanguage, gazikapllani, georgeisyourman, gglad, glossedbyaffection, gnosi, gousgounis, greekcartoon, grsport, halleyscomment, haralambides, harasevaggelio, headoverhell, histologion, histologion-gr, homocomix, houseofalma, humanboat, icrazymonkey, icrazymonkeydesign, ientao, i-fallos, inatheatrenearyou, insiters, ionarts, ioulita, jp2world, katerinaki, kathimerinopita, kfetok, koinosnous, kokkini-klosti, kourouna, krios3804, kuk, l-amda, lemmycautionblogs, lemon-without-dreams, leperiscope, lespritdelescalier, lessisapossibility, lessoucisgraves, libertatia, lilikamp, littleshotsofhappiness, logarithmos, loxias1, macgenie, mandy1971, manifestogr, manoloshoes, mariagr, marketingpro, miaparea, mikro, mindstripper, mitsakos, myriadfragments, mythoi-kai-thryloi, naftilos, nanakos, ndrandakis, news4news, newsosaur, nickthecreek, nidibou, niketasp, nivaland, nkour, noheathen, non-tibi-spiro, nootropia, occhiata, oidu, oikeioi-mythoi, old-boy, omadag, ombion, onlybackpages, openitnow, orthoumeni, ostracised, oyte, panos31, peanutsinyourhat, pelasgos, periergos, periglwssio, periodistas21, petsofafeather, pigasos, pitsirikos, psyxiatroz, qarcq, questionating, realhermes, realitywelcomesyou, right-brained, riverbendblog, rkoman, rtape, scarface17, serie-aire, sexisakillerwannadiehappy, sexymoments, singen-sang-gesungen, sminth, spoor-yitee, sraosha, starxidiamas, stavrosg, stinameriki, stinmpooka, streetchronicles, susanmernit, ta-eis-eafton, taflinel, tapscottscopydesk, tekmirio, telamonas, terrancecoyle, the6milliondollarstory, theideasfarm, thepeculiarone, thepopeblog, theredactor, tilltheblog, transilvanian, translationexchange, tsakthan, tuki8eblom, tylershadow, typosnyxterinos, urbus, vaguetourist, vanesssa, vangelakas, vathia, vermetel, vitamo, vjockey, vkhokhl, wanderlust-sha, wingnut-lib, wisssdom, womansown, wordsattack, xoirovoskos, xourxourw, xynoudi, yogicspells, zpiderland

update: κατόπιν παραδόξως αυξημένου ενδιαφέροντος, εξηγώ κάποια technicalities. Δεν είναι ρατσιστικό το θέμα με το blogger, απλώς τα blog που φιλοξενούνται στο blogspot.com έχουν μία κανονικότητα στις διευθύνσεις τους: όλα είναι της μορφής xxxx.blogspot.com. Η προηγούμενη (unreleased) έκδοση δούλευε αποκλειστικά εκμεταλλευόμενη αυτό το γεγονός, γι' αυτό και περιοριζόταν στο blogger. Αυτή η έκδοση, προκειμένου να υποστηρίζει οποιεσδήποτε διευθύνσεις, είναι λιγότερο έξυπνη. Tο ποια διεύθυνση θα θεωρηθεί διεύθυνση blog καθορίζεται από ένα βοηθητικό αρχείο κειμένου ("ΒΔ" στον κώδικα), τα περιεχόμενα του οποίου έχουν την εξής μορφή
DiS http://www.damselinstress.com/damsel/
histologion-gr http://histologion-gr.blogspot.com
[blog_id] [blog_url]


Ό,τι δεν υπάρχει σε αυτό το αρχείο, δε θεωρείται blog. (γι' αυτό και στο demo βλέπετε πολύ λιγότερα links απ' ό,τι θα περιμέναμε. Αυτό δεν είναι bug, αλλά feature, γιατί επιτρέπει στο χρήστη να ρυθμίσει ποιοι θα παίζουν στο γράφημά του. Ουσιαστικά έχουμε ένα πλήρες εργαλείο που μπορεί να σου ζωγραφίσει τις διασυνδέσεις ανάμεσα σε όποια url θέλεις.)

Τα (υποχρεωτικά και μοναδικά) id για διευθύνσεις εκτός blogger πρέπει να τα δώσει ο χρήστης. Για το blogger εξακολουθεί να ισχύει ότι για τη διεύθυνση xxxx.blogspot.com το id είναι xxxx. Το πρόγραμμα εξακολουθεί να εκμεταλλεύεται αυτήν την κανονικότητα, γιατί αν το καλέσεις με

$> perl diaploki.pl -e myfile.html db.txt
θα σαρώσει όλο το myfile.html για διευθύνσεις της μορφής xxxx.blogspot.com και θα προσθέσει αυτόματα τις διευθύνσεις και τα σχετικά id στο db.txt. Αυτό είναι απλά μια διευκόλυνση, για να μη χρειάζεται να καταχωρηθούν με το χέρι τα xxxx.blogspot.com.

Σαν ενδιαφέρον side-effect, στο db.txt μπορούμε πολύ γρήγορα (σαρώνοντας 5-6 πρωτοσέλιδα γεμάτα links) να έχουμε μια λίστα με πάρα πολλά blogs του blogger. Μιά τέτοια λίστα είναι η παραπάνω, την οποία έφτιαξα σε 1 λεπτό. Εν καιρώ θα μπει functionality για να αναγνωρίζονται και άλλα blogs (ας πούμε στο radio.weblogs.com, στο blogs.gr, στο pathfinder υπάρχει επίσης κανονικότητα στις διευθύνσεις). Δεν είναι ιδιαίτερα δύσκολο, αλλά βαριέμαι.

[το db.txt μετατρέπεται σε ready-to-paste html με ένα perl one-liner το οποίο αφήνω ως άσκηση
]

Σημαντική σημείωση: πολλά blogids δεν είναι έγκυρα σαν ονόματα μεταβλητών για το dot. Ας πούμε στο singen-sang-gesungen το dot θα χτυπήσει error γιατί δεν δέχεται παύλες στους identifiers. Η μόνη λύση για αυτό είναι για την ώρα το τελικό .dot αρχείο να διορθώνεται με το χέρι (ας πούμε να αντικαθιστώνται όλες οι παύλες με underscores). Τώρα που το σκέφτομαι, θα μπορούσε απλά το σκριπτάκι να κλείνει τα ids σε εισαγωγικά:
"histologion-gr"->"dontkissthefrog"
αντί για
histologion-gr->dontkissthefrog

Και λίγα ιστορικά: πρόκειται για major rewrite που έκανα όταν η ΘτΠ μου ζήτησε την προηγούμενη έκδοση και κοιτάζοντας τα σκριπτάκια που είχα φτιάξει μου πήρε (εμένα!) 2 ώρες να καταλάβω τι ακριβώς κάνει το καθένα. Παιδιά, μην γράφετε write-only κώδικα, θα το μετανοιώσετε :)

10 σχόλια:

ka8y είπε...

Μμμμμ....

Στα permissions στο αρχείο δώσε μας ένα +r others... :-)

J95 είπε...

Μπα, δεν ήταν αυτό, φαίνεται ότι ο server ενοχλούνταν από το .pl.gz για λόγους ασφαλείας. Το είχα υποψιαστεί ότι θα είχε πρόβλημα με το .pl γι' αυτό και το συμπίεσα, αλλά προφανώς δε μάσησε γιατί τα .gz μπορούν να αποσυμπιεστούν αυτόματα σε πολλά shells...

Το ξανανέβασα σε .zip και άλλαξα το link.

Lao είπε...

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

J95 είπε...

Άσε, αν δεν το καταλαβαίνεις καλύτερα να μη σου εξηγήσω. Είναι πολύ μυστήριο για μη προγραμματιστή. Πρόκειται για perl script και απαιτεί unix περιβάλλον με εγκατεστημένα τα graphviz και wget. Έχει πλήρεις οδηγίες στα σχόλια.

Εν καιρώ θα το βελτιώσω.

Έτσι κι αλλιώς θα ενδιαφέρει κυρίως... κυρίως... κανέναν.

Δεν ήθελα καν να γράψω αυτό, ήθελα να ξεχέσω τη φάση με τη Eurovision. Αλλά ξενέρωσα με το προηγούμενο και το έριξα στα αυτιστικά.

diafanos είπε...

Μας ενδιαφέρει - γράφε. Δε μορ δε μέριερ... καλή δουλειά - μπρβ

Oneiros είπε...

Excellent hack, φυσικά και μας ενδιαφέρει' εκτός από το ακαδημαϊκό ενδιαφέρον, κανείς δεν είναι immune στη ματαιοδοξία. Καλά κάνεις και δίνεις μόνο το script, η περιέργεια είναι το καλύτερο κίνητρο για μάθηση.

Για όσους ενδιαφέρονται, λοιπόν, το Cygwin είναι μιά σουίτα εφαρμογών Unix για Windows που περιέχει την Perl (καλό εφόδιο, έτσι κι αλλιώς) και το wget. Το graphviz υπάρχει και σε έκδοση για Windows, αν δεν απατώμαι.

jim_hellas είπε...

Δεν ήξερα ότι δεν επιτρέπει σελίδες εκτός blogger. Χμ.. Υποθέτω ότι μπορείς να βάλεις και το δικό μου blog στη λίστα σου... Αλήθεια, γιατί λείπει; Καλά, δεν πήγες και μια βόλτα από τα blogs του pathfinder.gr; Εχει και εκεί κόσμο που blogάρει

Γεώργιος Χοιροβοσκός είπε...

Εγω που ψάχνω Γιατρέ μου να βρώ κάποιον νεανίσκο ή και νεάνιδα που να γνωρίζει Visual Studio τι μπορώ να κάνω????

DiS είπε...

Βασικά το μόνο που βρήκα ιδιαιτέρως σοβαρό και άκρως ενδιαφέρον στο όλο post ήταν η αναφορά στο ΥΠΕΡΟΧΟΤΑΤΟ και ΚΑΡΑΓΑΜΑΤΟ blog μου. Ααααχ!

Επίσης, το γεγονός ότι η ΘτΠ θα σταματήσει να μου ζαλίζει τ' αρχίδια που δεν έχω με φράσεις όπως "α, σούπα; έγραψα στο Δημήτρη e-mail να τον ρωτήσω πως έχει φιάξει το προγραμματάκι .. δεν είναι φοβερά ενδιαφέρον;"

Άντε ν' απαντήσεις εσύ τώρα ...

Phantasmak είπε...

Εμείς με Windows και MS Office και MS OneNote και ΜSN Messenger μπορούμε να περιμένουμε το binary; To pdf αντί για ghostscript; ...όχι;