Μαρκάρετε την παρακάτω ημερομηνία στο ημερολόγιo σας:
10.10.09
Ημέρα Σάββατο στους 5 δρόμους στα εξάρχεια κανονίζουμε μία συνάντηση για μπύρες, (to know us better).
Το συζητάμε εδώ,
αλλά αφορμή ψάχνουμε για να μαζευτούμε παρέα και να πιούμε μια μπύρα.
Η πρόσκληση είναι ανοιχτή για όσους διαβάζουν αυτό το post
(εάν τυπώσετε αυτό το post - τα νερά θα είναι κερασμένα)
http://ftp.otenet.gr/www/linuxgazette
cool εεεε ?
Κάτι το οποίο με ταλαιπώρησε αρκετά σήμερα ήταν το γεγονός ότι ο dovecot-lda: /usr/local/libexec/dovecot/deliver δεν είχε την δυνατότητα να παραδώσει τα emails που δεχόταν από τον smtp daemon.
Οπότε τροποποίησα το configuration αρχείο για να καταγράφει όσο το δυνατόν περισσότερα μηνύματα και τελικά βρήκα στα logs το εξής:
==> dovecot-local-deliver.log <==
deliver(dovecot): Sep 22 22:25:52 Fatal: setgid(1000(dovecot)) failed with euid=1000(dovecot), gid=12(mail), egid=12(mail): Operation not permitted
Μετά από μερικά λεπτά διαλογισμού ήρθε η θεία επιφοίτηση ως δια μαγείας:
chgrp mail /usr/local/libexec/dovecot/deliver
chmod 04750 !$
όλα τέλεια πλέον ;)
Αυτά τα μικρά πραγματάκια είναι που σε στέλνουν!
16:15 εγκατάσταση postfix από sources
17:35 1st log entry - attempt for spam (open relay)
1 ώρα και 20 λεπτά !
NOQUEUE: reject: RCPT from mout3.freenet.de[195.4.92.93]:
Τον τελευταίο καιρό προσπαθώ να θυμηθώ βασικές αρχές προγραμματισμού από τον καιρό που ήμουν φοιτητής. Δεν θεωρώ τον εαυτό του σε καμία περίπτωση προγραμματιστή. Μάλιστα οι κόποι μου αποτελούν μικρά patches (diffs) στην δουλειά που κάνουν ήδη άλλοι (hacks) και πιο ειδικά στο xfce.
Όμως απογοητεύτηκα αρκετά από τους προγραμματιστές της isc. Προσπαθώντας να εγκαταστήσω ένα dhcp server για τις ανάγκες ενός μικρού lan από τον πηγαίο κώδικα, διαπίστωσα ότι κατά το compilation που επέστρεφε ένα όχι και τόσο συνηθισμένο σφάλμα:
packet.c:139: error: ‘ip’ is used uninitialized in this function
Οκ προφανώς κάτι μου λείπει;
Αυτό δεν σκέφτεστε όλοι;
Κι όμως ….
Η έκδοση που χρησιμοποιώ είναι η current stable: DHCP 4.1.0p1 και μετά από αρκετό διάβασμα του κώδικα τελικά κατάφερα να βρω γιατί επιστρέφει το συγκεκριμένο μήνυμα.
Ο dhcp προσπαθεί by-default να υποστηρίξει IPV6. Οκ μέχρι εδώ όλα καλά.
Δυστυχώς όμως οι προγραμματιστές ΔΕΝ έχουν βάλει ένα IF-THEN-ELSE κατά την περίπτωση που το linux-box ΔΕΝ έχει ipv6!!! και για αυτό “σκάει” το compilation με το παραπάνω μήνυμα.
Η λύση είναι εξαιρετικά απλή: Πρέπει να απενεργοποιηθεί η υποστήριξη για IPV6
./configure --disable-dhcpv6; make; make install
Αλλά μέχρι να το βρεις από ξυρισμένος κόντρα, καταλήγεις σαν τον stallman
Κατά καιρούς (και μέχρι να μάθω από regular expressions) ένα από τα προβλήματα που με έχει ταλαιπωρήσει αρκετά ήταν το εξής:
Ήθελα σε άπειρα εις το τετράγωνο αρχεία που βρίσκονται κάτω από άπειρους καταλόγους να τροποποιήσω ένα και μόνο αλφαριθμητικό. Στο google θα βρείτε αρκετά προγράμματα κ.λ.π. - κ.λ.π., αλλά μπορεί να γίνει πανεύκολα με μία και μόνο εντολή:
find ΑΡΧΙΚΟΣ_ΚΑΤΑΛΟΓΟΣ -type f -name “ΤΟ ΜΟΤΙΒΟ ΤΩΝ ΑΡΧΕΙΩΝ” -exec sed -r -i ’s/ΑΛΦΑΡΙΘΜΗΤΙΚΟ/ΤΟ_ΝΕΟ_ΑΛΦΑΡΙΘΜΗΤΙΚΟ’ {} \;
και δίνω ένα παράδειγμα για να γίνω πιο κατανοητός:
find /www -type f -name "*.php" -exec sed -r -i 's/ebal/Evaggelos Balaskas/' {} \;
Εάν για παράδειγμα θέλετε να αντικαταστήσετε παραπάνω από ένα αλφαριθμητικό τότε μπορεί κανείς να χρησιμοποιήσει κάτι τέτοιο (έστω ότι θέλω να αλλάξω τις λέξεις ebal ή ebalaskas με το Evaggelos Balaskas):
find /www -type f -name "*.php" -exec sed -r -i 's/(ebal|ebalaskas)/Evaggelos Balaskas/' {} \;
ΥΓ: Την 1η φορά που κατάφερα να κάνω μία υπερβολικά περίπλοκη εργασία σε μερικά δευτερόλεπτα ένιωσα έτσι: i know regular expressions !!!
Την προηγούμενη εβδομάδα εγκατέστησα ένα centos 5.3 μέσω netinstall.
Επέλεξα να κάνω μία minimal installation αλλά να ακολουθήσω τις προτάσεις του centos.
Μία από αυτές λοιπόν ήταν η χρήση lvm σε δύο δίσκους (η 1η επιλογή).
To centos δημιουργεί 3 partition: /boot / & swap.
Όλα καλά κι όλα ωραία, το μηχάνημα είχε ελάχιστο cpu load παραπάνω (ειδικά σε μεγάλα rsync > 65GB) αλλά φαινόταν οκ. Μέχρι εχθές.
Ένα προγραμματισμένο reboot για να ελέγξω ότι όλα τα services και τα iptables λειτουργούν άψογα για να μπορώ να εξασφαλίσω την εύρυθμη λειτουργία του συστήματος.
Και ξαφνικά το grub δεν βρίσκει τπτ απολύτως.
Διατηρώ ένα usb stick με SystemRescueCd και διαπιστώνω με μεγάλη μου θλίψη ότι ΔΕΝ μπορώ να διαβάσω καν τα lvm partitions !!!
lvm sucks
Ευτυχώς που είχα και δεύτερο server όπου ανέλαβε από passive να γίνει active
Στις 30 Αυγούστου 2009 ο David Rosal, δημοσίευσε την νέα έκδοση του paco: 2.0.7.
Αυτή η έκδοση δεν έχει να προσθέσει νέα χαρακτηριστικά, αλλά να βελτιστοποιήσει κυρίως το gpaco (gtk based GUI)
Βρήκα όμως σήμερα την αφορμή για να το εγκαταστήσω εκ νέου και να κάνω ένα review στο Paco Mini How To που διατηρώ για το paco (και έχει προσθέσει στα links και ο David στο project - είναι αυτό με την ελληνική σημαία: http://paco.sourceforge.net/doc.html)
Διαβάζοντας λοιπόν το man 8 paco, πρόσεξα το εξής option:
-o, --configure-options
το οποίο μου είχε διαφύγει στο παρελθόν. Μπορείς να δεις με τι options είχες εγκαταστήσει ένα πρόγραμμα:
paco -o pidgin
–disable-screensaver –disable-vv –disable-meanwhile –disable-nm –disable-tcl
Πολύ εντυπωσιακό έτσι;
Επίσης στα scripts, πρόσθεσε και ένα αρχείο για bash_completion.d:
cp scripts/paco_bash_completion /etc/bash_completion.d/paco
Για όσους ασχολούνται με source compilation ας μην το προσπεράσουν.
Το paco είναι από τα καλύτερα προγράμματα που έχω δουλέψει κι ελπίζω το παραπάνω mini how to που έχω γράψει να σας βοηθήσει.
Σε προηγούμενο μου post είχα αναφέρει κάποια ενδιαφέροντα δρώμενα που συμβαίνουν γύρω από το xfce.
Πλέον η μεταφορά όλων των έργων σε git έχει ολοκληρωθεί, και πολύ σημαντικό είναι ότι ολοκληρώθηκε και η εγκατάσταση ενός instance του transifex για την διαδικασία των μεταφράσεων.
Τα στατιστικά μας για τα κύρια προγράμματα είναι τα εξής:
Xfce: 78% (2007/27/537)
Applications: 65% (2435/159/1151)
Panel Plugins: 42% (601/31/784)
Thunar Plugins: 19% (62/0/262)
Οι δύο (2) συνήθεις ύποπτοι είναι οι εξής:
Σταύρος Γιαννούρης κι εγώ (Ευάγγελος Μπαλάσκας).
Κατά την προσωπική μου άποψη χρειαζόμαστε τουλάχιστον τέσσερα (4) actions που πρέπει να γίνουν και σχετικά γρήγορα.
a. QA στις μεταφράσεις που έχουμε ανεβάσει (θέλει πολύ δουλίτσα αυτό)
b. Φυσικά να 100% τουλάχιστον το xfce (δεν είναι ΠΑΡΑ πολύ δύσκολο αυτό)
c. Να βρούμε ανθρώπους που χρησιμοποιούν το xfce στα ελληνικά και να μας προτείνουν διορθώσεις
d. Να βρούμε ανθρώπους που θα βοηθήσουν στις μεταφράσεις του xfce.
Το QA στις ήδη υπάρχουσες μεταφράσεις είναι σχετικά δύσκολο.
Όσο κι εάν προσπαθούμε με τον Σταύρο να έχουμε ένα “κοινό” μεταφραστικό στυλ, αυτό συνήθως χάνεται με τον καιρό ή γινόμαστε πιο έμπειροι (τουλάχιστον εγώ) και βλέπω λάθη στην απόδοση των όρων.
Δυστυχώς ο χρόνος μας (σίγουρα ο δικός μου - πιστεύω και του Σταύρου) μειώνεται μέρα με την μέρα και όσο περνάει ο καιρός κάποια πράγματα μένουν αρκετά πίσω. Για αυτό λοιπόν όπως ενδιαφέρεται να βοηθήσει με τις μεταφράσεις του xfce ας κάνει ένα βήμα μπροστά. Το μόνο που χρειάζεται είναι λίγο μεράκι παραπάνω και αρκετή υπομονή.