Τρίτη 23 Αυγούστου 2011

Απόρριψη κρατημένου μηνύματος στο mailman από console

Μια και στο Snow Leopard Server το Web Interface του mailman είναι προβληματικό και δεν λειτουργεί σωστά ώστε να απορρίπτει τα μηνύματα που αναμένουν έγκριση όταν ο χρήστης επιλέγει να τα απορρίψει η δουλειά αυτή πρέπει να γίνει από console.

Στο OS X Snow Leopard τα κρατημένα μηνύματα φυλάσσονται στο /var/mailman/data με ονομασία heldmsg-listname-#.pck όπου listname το όνομα της λίστας σας, και # ένας αύξων αριθμός. Με την εντολή /usr/share/mailman/bin/discard και την πλήρη διαδρομή του μηνύματος που θέλουμε να απορρίψουμε το απορρίπτουμε.

Π.χ. αν θέλουμε να διαγράψουμε το μήνυμα 8 της λίστας mylist:

/usr/share/mailman/bin/discard /var/mailman/data/heldmsg-mylist-8.pck

Τρίτη 16 Αυγούστου 2011

F: ConnectServerAndOpenDatabase Can not initialize automation server\Program returned error

Αν μετά την εγκατάσταση Navision Aplication Server και ορισμού του ως LS Retail Scheduler σας εμφανίζεται το μήνυμα που βλέπετε στον τίτλο της ανάρτησης στα logs του Scheduler τότε υπάρχει μια απλή λύση την οποία δεν μπόρεσα να βρω όσο κι αν έψαξα στο Internet.

Πρέπει να πάτε στο Administrative Tools -> Component Services ->DCOM Config και να βρείτε το PlusCFrontSrv.Application, να κάνετε δεξί κλίκ και properties και στο Security να επιλέξετε Customize και Edit για το Launch and Activation Permissions. Εκεί απλά προσθέστε το χρήστη του με το λογαριασμό του οποίου τρέχει το NAS και δώστε του permissions για Local Launch και Local Activation.

Θα μπορούσε να παίξει ακόμα και απλά ορίζοντας τον χρήστη ως Administrator αλλά δεν μπορώ να τονίσω αρκετά πόσο λάθος είναι κάτι τέτοιο αν όχι και βλακώδες.


If after installing Navision Application Server and setting it up as an LS Retail Scheduler you find the error message you see on this post's title there is a simple solution that I could not find on the Internet no matter how I tried.

You have to go to Administrative Tools -> Component Services ->DCOM Config and find the entry PlusCFrontSrv.Application, right click on it and select properties and then at the Security tab choose Customize and Edit for the Launch and Activation Permissions and just add the user under which you are running NAS and give him the permissions Local Launch and Local Activation.

It could also work by simply setting the user account that NAS runs under as Administrator but I cannot stress enough how wrong this is if not outright stupid to do so.

Σάββατο 23 Ιουλίου 2011

Building MySQL client programs on Mac OS X

Προσπαθώντας να κάνω build το SNORT σε MAC OS X Snow Leopard κι αφού ταλαιπωρήθηκα λίγο με τα Header files της MySQL που εγκαθιστώνται μέσω MacPorts αποφάσισα να το ψάξω λίγο παραπάνω. Έτσι με μία αναζήτηση του Google έπεσα σε αυτή τη σελίδα Mac OS X Server v10.6: MySQL libraries available for download που περιλαμβάνει όλα τα απαραίτητα καθώς και οι οδηγίες για να γίνουν extract.

Δευτέρα 6 Ιουνίου 2011

Χρώμα στο Terminal.app

Έχοντας χρησιμοποιήσει Linux από πολύ παλιά, ένα από τα αγαπημένα μου features είναι ο χρωματισμός των αρχείων, φακέλων κλπ από το bash shell.

Μετά από 3 περίπου χρόνια που χρησιμοποιώ μόνιμα Mac OS X, μια και χρειάστηκε να κάνω εκτεταμένη χρήση του τερματικού, αποφάσισα να ενεργοποιήσω το χρωματισμό.

Για το σκοπό αυτό έκανα μια γρήγορη αναζήτηση στο Internet όπου βρήκα διάφορες δημοσιεύσεις σε blogs οι οποία ασχολούνται με το θέμα και οι οποίες πρότειναν διάφορες λύσεις. Εδώ σας παραθέτω τι δούλεψε στο δικό μου σύστημα.

Κατ’ αρχήν ανοίγουμε το Terminal.app. Εκτός απροόπτου το Terminal.app ξεκινάει από το home directory. Εκτελούμε
nano .bashrc


Αν το αρχείο αυτό υπάρχει ήδη θα το ανοίξει εμφανίζοντάς μας τα περιεχόμενά του, αν δεν υπάρχει θα το δημιουργήσει όταν το αποθηκεύσουμε. Προσθέτουμε στο .bashrc τις ακόλουθες εγγραφές:

export CLICOLOR='Yes'
export TERM=xterm-color

και στη συνέχεια πατάμε Ctrl + X και στη συνέχεια y και enter για αποθήκευση. Μόλις ανοίξουμε ένα νέο παράθυρο (ή νέο Tab) Terminal και κάνοντας ls θα δούμε αμέσως τα χρώματα.

Σάββατο 4 Ιουνίου 2011

Προσθήκη διαδρομής στη μεταβλητή PATH σε Snow Leopard

Όσοι έχουν δουλέψει έστω και λίγο με Unix-οειδή λειτουργικά (αλλά και αρκετοί power users του DOS σίγουρα γνωρίζουν τη μεταβλητή PATH που δηλώνει διαδρομές φακέλων (ή καταλόγων για τους πιο παραδοσιακούς) στις οποίες το λειτουργικό σύστημα θα αναζητά εκτελέσιμα προγράμματα.

Στο Snow Leopard όταν θέλουμε να προσθέσουμε μια τέτοια διαδρομή στο PATH αρκεί να εκτελέσουμε την ακόλουθη εντολή από ένα παράθυρο τερματικού (π.χ. από το Terminal.app)

echo "/path/to/files" >> /etc/paths.d/filename

Όπου αντικαθιστούμε το /path/to/files με τη διαδρομή που θέλουμε (π.χ. /opt/local/bin) και το filename με κάτι περιγραφικό για τη διαδρομή αυτή π.χ. MacPorts

Το όνομα του αρχείου δεν έχει ιδιαίτερη σημασία αλλά με το να χρησιμοποιήσουμε μια περιγραφή της διαδρομής θα κάνουμε τη ζωή μας πιο εύκολη όταν μετά από καιρό ίσως χρειαστεί να βγάλουμε άκρη με το PATH μας.

Καλό θα είναι πριν εκτελέσουμε αυτή την εντολή να ελέγξουμε κατά πόσον υπάρχει ήδη κάποιο αρχείο στο φάκελο /etc/paths.d με το όνομα που επιθυμούμε να χρησιμοποίησουμε για να μην το αντικαταστήσουμε κατά λάθος με το νέο.

Στη συνέχεια αφού βγούμε και ξαναμπούμε στο τερματικό θα διαπιστώσουμε ότι λειτουργεί.


Τρίτη 24 Μαΐου 2011

iPhone personal hotspot and iPad tethering

Πριν ένα μήνα περίπου, είχα διαβάσει σε ένα άρθρο του The Unofficial Apple Weblog με τίτλο Does iPhone 4 Personal Hotspot add GPS to Wi-Fi only iPads.

Σήμερα είπα να το δοκιμάσω, έτσι ενεργοποιησα το Personal Hotspot στο iPhone 4 που έχω και συνεδεσα σε αυτό το πρώτης γενιάς iPad wifi που έχω. Ξεκινώντας από τη δουλειά και επιστρέφοντας στο σπίτι παρατήρησα ότι πράγματι το iPad έπαιρνε, ίσως και σε πραγματικό χρόνο, το στίγμα μου απο το iPhone 4.

Συνεπώς μια και το GPS ήταν για μένα ο μόνος λόγος που, έχοντας ήδη iPhone, θα έπαιρνα iPad me 3G θεωρώ ότι μια έκδοση του iPad με μεγαλύτερη χωρητικότητα προσφέρει περισσότερη αξία στα ίδια χρήματα.





Τρίτη 10 Μαΐου 2011

OS X Snow Leopard mail server: επαναφορά email μαρκαρισμένου ως spam

Έχοντας κατεβάσει τους απαιτούμενους βαθμούς για μαρκάρισμα ενός email ως spam στο 7, παρατήρησα το πρώτο false positive. Για να παραδωθεί το email αυτό στον παραλήπτη χρειάζεται να τρέξουμε μια εντολή που θα υποδείξει στο amavis να το παραδώσει. Η εντολή αυτή είναι η amavis-release και ως παράμετρο περνάμε το όνομα του gz αρχείου με το οποίο έχει αρχειοθετηθεί και το email του χρήστη στον οποίο θέλουμε να παραδωθεί.

Το όνομα του αρχείου περιλαμβάνεται στο email που μας ειδοποίησε για τη μη παράδωση του αρχικού email και η μορφή του είναι ως ακολούθως:

The message has been quarantined as: spam-9ZMNKOAKrb4Y.gz

Το όνομα ξεκινάει με spam- και ακολουθείται από τυχαίους χαρακτήρες ενώ έχει την επέκταση .gz

Η εντολή που θα εκτελούσαμε λοιπόν για το εν λόγω email θα ήταν η ακόλουθη:

Amavis-release spam-9ZMNKOAKrb4Y.gz user@domain.tld

Όπου στη θέση user@domain.tld βάζουμε το email του παραλήπτη

- Posted using BlogPress from my iPhone

Δευτέρα 18 Απριλίου 2011

Android Cisco IPSec VPN

Μια και χάλασε το iPhone 4 που έχω και θα το έστελνα για service εντώς εγγύησης αποφάσισα να αγοράσω ένα οικονομικό κινητό Android μέχρι να έρθει το iPhone 4 πίσω. Αυτό θα μου παρείχε τη δυνατότητα να μπορώ να συνδέομαι ανά πάσα στιγμή στα συστήματα που διαχειρίζομαι (POS/Servers/Routers/Switches) όπως έκανα και με το iPhone (κάτι που λόγω δουλειάς είναι αναγκαίο μια και είμαι on call όλη τη μέρα, κάθε μέρα)

Οι ανάγκες μου είναι σχετικά απλές, να συνδέομαι μέσω IPSec VPN στο γραφείο και μετά με να μπορώ να χρησιμοποιώ VNC/SSH/RDP clients.

Εκ πρώτης όψεως δεν ήταν και κάτι τραγικό και το Android θα υποστήριζε εγγενώς το IPSec VPN ενώ τα clients υπήρχαν άλλα προς αγορά και άλλα δωρεάν στο Android Market. Έτσι τελικά κατέληξα στη συσκευή Samsung Galaxy Mini S5570.

Αφού συγρόνισα τις επαφές κι έκανα τις αρχικές ρυθμίσεις στο κινητό προσπάθησα να αγοράσω το RealVNC Viewer και το iTap RDP τα οποία έχω και στο iPhone, μάταια. Έμαθα ότι τελικά η Google ΔΕΝ έχει προς πώληση εφαρμογές στην Ελλάδα και στην Κύπρο και για να αγοράσει κανείς πρέπει να χρησιμοποιήσει το πρόγραμμα Market Enabler με το οποίο στην ουσία κάνεις spoof τον carrier σε κάποιον από χώρα όπου δραστηριοποιείται το Android Market διαφορετικά περιορίζεσαι μόνο στις δωρεάν εφαρμογές.

Για να τρέξει το Market Enabler πρέπει να έχεις κάνει root το κινητό σου κάτι για το S5570 μπορεί να γίνει με το πρόγραμμα Superoneclick το οποίο, αφού κάνει root το κινητό, εγκαθιστά το πρόγραμμα Superuser το οποίο στη συνέχεια καλείται από όποιο πρόγραμμα χρειάζεται πρόσβαση super user (το γνωστό su για τους φίλους του Unix/Linux).

Έτσι, με το Market Enabler, κατάφερα να αποκτήσω το RealVNC που χρειαζόμουν. To iTap RDP δεν ήταν δυστοιχώς διαθέσιμο στο ιταλικό Android Market, και όπως παρατήρησα μετά δεν μου επέτρεπε να αλλάξω εκ νέου σε Android Market άλλης χώρας.

Στη συνέχεια δοκίμασα να ρυθμίσω το VPN όμως διαπίστωσα ότι εργοστασιακά το Android ΔΕΝ είναι συμβατό με IPSec VPN συμβατό με Cisco. Υποστηρίζει PPTP το οποίο όμως είναι μη ασφαλές και εκτός αυτού το μπλοκάρει και MTN Κύπρου με αποτέλεσμα να μην είναι εφικτό με αυτό να συνδεθείς μέσω 3G ή EDGE. Επίσης υποστηρίζει L2TP VPN, ένα ασφαλές πρωτόκολο VPN το οποίο όμως δεν είναι υλοποιημένο στο δίκτυό μου και δεν άξιζε τον κόπο για 2 - 3 εβδομάδες που θα έχω το Android να ασχοληθώ με αυτό.

Ευτυχώς, όντας το Android μια ανοιχτή πλατφόρμα, υπάρχουν χρήστες που έχουν δημιουργήσει οι ίδιοι μια εφαρμογή με όνομα VPN Connections η οποία επιτρέπει τη δημιουργία IPSec στο Android η οποία όμως για να λειτουργήσει χρειάζεται ένα tunneling module (tun.ko) το οποίο δεν είναι παρόν στην υλοποίηση Android στο Samsung Galaxy Mini S5570 (και σε αρκετά άλλα κινητά Android όπως διαπίστωσα).

Κατά συνέπεια, και αφού δεν βρήκα το tun.ko αναγκάστηκα να κατεβάσω το Android SDK, το source code για τον πυρήνα του Linux για το S5570 από τη Samsung, να τραβήξω ένα config file από το κινητό, να τροποποιήσω το .config και Makefile για να κάνω enable το αντίστοιχο module και να δηλώσω που βρήσκεται ο compiler κλπ κλπ και να κάνω compile τα modules.
(Για τους χρήστες Mac όπως εγώ πρέπει να γίνουν εγκατάσταση και οι βιβλιοθήκες libelf μέσω του port install)

Μετά έκανα mount το /system στη συσκευή μου με read-write access, δημιούργησα στο /system/lib το φάκελο modules που δεν υπήρχε και ανέβασα το tun.ko σε αυτόν. Από console έτρεξα το insmod /system/lib/modules/tun.ko και αφού δεν ανέφερε σφάλμα δοκίμασα το VPN Connections το οποίο και δούλεψε τελικά.

Κατά τη γνώμη μου είναι μεγάλη παράβλεψη που το Android δεν υποστηρίζει εγγενώς το IPSec της Cisco και η διαδικασία παράκαμψης αυτής της έλλειψης είναι μια αρκετά μεγάλη πρόκληση ακόμα και για έμπειρους χρήστες. Έχοντας εμπειρία σε Linux από το 1999 περίπου κι έχοντας περάσει από αρκετά Kernel compilations για να ενεργοποιήσω κάρτες δικτύου ή κάρτες ήχου ξόδεψα περίπου 20 ώρες για να βρώ τις απαραίτητες πληροφορίες, να κατεβάσω τα απαραίτητα προγράμματα και τον πηγαίο κώδικα για να προσθέσω αυτή τη δυνατότητα στο κινητό μου. Πλέον όντας επαγγελματίας κι όχι φοιτητής είμαι της λογικής ότι τα πράγματα πρέπει να είναι απλά και να δουλεύουν. Δεν θέλω να χάνω άλλο το χρόνο μου προσπαθώντας να τα κάνω να δουλέψουν αλλά αξιοποιώντας τις λειτουργίες τους κι εκεί είναι που η Apple με κερδίζει...

Επειδή ίσως να φανεί χρήσιμο και σε κάποιον άλλο:
Πατήστε εδώ για λήψη του tun.ko για Samsung Galaxy Mini S5570
Πατήστε εδώ για οδηγίες για compiling του module tun.ko σε HTC Hero τις οποίες χρησιμοποίησα ως βάση για να κάνω την αντίστοιχη διαδικασία για το S5570
Πατήστε εδώ για το Site της Samsung όπου δημοσιεύει τον Open Source Κώδικα για όλες τις συσκεύες της και φιλτράρετε το μοντέλο σας.