Διαπλοκή v. 1.0
Tuesday, May 24th, 2005Όπως βλέπετε η σπουδαιότερη τροποποίηση είναι ότι υποστηρίζονται και διευθύνσεις εκτός 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 κώδικα, θα το μετανοιώσετε ![]()
