Το bucket3 (θα) είναι ένα blog engine γραμμένο σε python που παράγει στατικές σελίδες. Είναι ακόμη σε πολύ πρώιμο στάδιο, κατεβάστε το μόνο αν έχετε ώρα για χάσιμο και γνωρίζετε python.
Οι αρχές του:
- να δημιουργήσει ένα “περιβάλλον” για blogging που θα θυμίζει το modularity του unix: πολλά απλά εργαλεία που συνδυάζονται με εύκολους τρόπους για να καλύψουν κάθε περίεργη ανάγκη.
- το blog που παράγεται να είναι σε μία μορφή (βλ. static html) εύκολη να αντιγραφεί και να αρχειοθετηθεί, χωρίς να χρειάζονται πολύπλοκα εργαλεία.
- να είναι ένας “κουβάς” στον οποίο εγώ (ή άλλα προγράμματα, bots κ.λ.) ρίχνω πληροφορία (π.χ. κείμενα, εικόνες, audio) και αυτόματα μετατρέπονται σε blog posts.
Το συγκεκριμένο project με διάφορες μορφές γυρνάει εδώ και χρόνια στο μυαλό μου. (όσοι θυμούνται τα “audionotes” μου, ίσως να διακρίνουν μία μακρινή σχέση, αν και νομίζω ότι δεν είχα κάνει public τα scripts που είχα φτιάξει για αυτό τον σκοπό). Πηγές έμπνευσης, με περίεργους τρόπους: amazon s3, drop.io, jekyll…
Θα με χαρακτήριζα python newbie. Κάθε διόρθωση στον (άσχημο!) κώδικα του bucket3 είναι ευπρόσδεκτη από python developers με μεγαλύτερη εμπειρία.
Nick Raptis and Vagelis Korakas liked it.

11 Comments
(δελεαστική πρόταση: έλα τα Χριστούγεννα κι από Σικάγο και θα κάτσουμε οι 3 μας να δουλέψουμε το bucket3 — o David Beazley θα ναι ο τρίτος της παρέας).
1. Γιατί blog platform; ‘Εχεις σκοπό να ρίξεις το matt απο το θρόνο του;
2. Γιατί δεν χρησιμοποιείς το django;
3. Δεν κατάλαβα τη χρήσιμότητα των static pages.
αυτά. Μέχρι να πάρω τις απαντήσεις μου…
git clone git://github.com/vrypan/bucket3.git
:)
1. Γιατί αυτό χρειάζομαι ;-)
2. Too complex, σε αυτή την κατηγορία είναι και το WP με το οποίο είμαι μία χαρά.
3. http://vrypan.net/weblog/2009/08/09/4792/
Γενικά: το filesystem μου αρέσει ως DB και ως interface. Π.χ. με το bucket3 μπορείς χωρίς να γνωρίζεις καθόλου python να γράψεις ένα script (σε bash, σε όποια άλλη γλώσσα θες) στον server σου που να τραβάει κάθε μέρα τα twitter favorites σου, να τα βάζει σε ένα text file (.markdown) και να δημιουργεί ένα νέο post. Άσε που μπορείς να κάνεις ένα grep -R σε όλα τα post σου -ή ένα find … exec .. replace για να αλλάξεις παντού του παλιό σου email με το νέο…
Για να σερβιριστεί ένα static page απαιτείται περίπου το 1/10 του χρόνου CPU και της μνήμης σε σχέση με το dynamic. Όταν έχεις εκατομμύρια hits την ημέρα το static μπορεί να κάνει τη διαφορά ανάμεσα στον server των 300 ευρώ το μήνα και στο server των 3000 ευρώ το μήνα.
Αλλά είπαμε: όπως το unix. Θα μπορούσε να υπάρχει κάποια στιγμή ένα open source σύστημα όπως το disqus που π.χ. να το εγκαθιστά κανείς στον server του ή στο AppEngine. Ή θα μπορούσε να υπάρχει ένα web interface που θα παίρνει το νέο σχόλιο και θα το σώζει στο filesystem σαν αρχείο.
Πολλά από αυτά που λέω, τα κάνει ήδη το blogspot.com που “σερβίρει” στατικές σελίδες.
1) Αν και διάβασα το wiki page περί SQLite, δεν κατάλαβα γιατί την χρειάζεσαι στο generation των στατικών αρχείων.
2) Δοκίμασες κάποιο από τα πολλά διαθέσιμα projects που υπάρχουν γι’ αυτό το σκοπό και δε σε κάλυψε, ή απλά θες να φτιάξεις κάτι δικό σου;
Καλή αρχή! :-)
1) Ο parser (bucket3.py) σώζει προσωρινά τα στοιχεία των posts σε μία db ώστε να μπορεί εύκολα να κάνει τα queries που θα χρειαστούν για να δημιουργηθούν π.χ. οι index pages ή το rss feed (δεν υπάρχουν ακόμη, αλλά στο μέλλον). Θα μπορούσαν όλα αυτά να κρατιούνται στην ram σε κάποιο structure, αλλά νομίζω ότι η sqlite είναι καλύτερη λύση, που δεν θα έχει και πρόβλημα με χιλιάδες posts.
Όμως στην db δεν σώζεται τίποτα που να μην υπάρχει στην δομή του filesystem. Μπορείς άνετα να την διαγράψεις, να ξανατρέξεις τον parser και θα δημιουργήσει ακριβώς το ίδιο blog -απλά ίσως να κάνει λίγο περισσότερο χρόνο.
2) έχω ψάξει τα παρόμοια projects και τα έχω αναφέρει σε posts στο παρελθόν (π.χ. webby, jekyll, hyde, pyblosxom). Δεν με κάλυψαν :-)
One Trackback
[...] vrypan|net|weblog χωρίς πρόγραμμα, από ένα προγραμματιστή… « bucket3 [...]