thek27's posterous

Quick fading two photo with jQuery

Αν θέλουμε να κάνουμε ένα γρήγορο fading μεταξύ δύο φωτογραφιών χρησιμοποιούμε ένα div με position relative και μέσα σε αυτό βάζουμε τα δύο img με position absolute. Αν θέλουμε να έχει και link αντί για div μπορούμε να βάλουμε a.

<a id="banners" href="#" class="position:relative">
<img style="position:absolute;top:0;left:0" src="banner1.jpg"/>
<img style="position:absolute;top:0;left:0;display:none" src="banner2.jpg"/>
</a>

Στην συνέχεια με ένα απλό interval κάνουμε το fading. Το trick εδώ είναι ότι χρησιμοποιούμε το visible και hidden attribute για να ξεχωρίσουμε τις δυο φωτογραφίες με τον ίδιο κώδικα. Έτσι την 1η φορά είναι η visible είναι η 1, ενώ την 2η φορά που θα τρέξει το interval η visible είναι η 2η.

$(document).ready(function() {
    setInterval(function() {
        var i1=$("#banners img:visible");
        var i2=$("#banners img:hidden");
        i2.fadeIn("normal",function() {
            i1.fadeOut("normal");
        });
    },5000);
});

Filed under  //   fade in   fade out   fading   jquery  

How to watch a php proccess (step by step)

Ο ποίο συνηθισμένος τρόπος για να παρακολουθήσουμε την εκτέλεση ενός php proccess είναι να γράφουμε σε ένα αρχείο τα στάδια του script ώστε μέσα από tail -f σε μια console να έχουμε τα αποτελέσματα.

Ένα εναλλακτικός τρόπος είναι να αλλάζουμε το όνομα του proccess ώστε με ένα watch να μπορούμε να παρακολουθούμε άμεσα:

1) Πρέπει να εγκαταστήσουμε το setproctitle αυτό γίνεται με pecl install proctitle ή pecl install channel://pecl.php.net/proctitle-0.1.1, πρέπει όμως να έχουμε εγκαταστήσει το php5-dev. (πχ. apt-get install php5-dev, port install php5-dev, yum install php-devel php-pear κτλ)

2) Ξεκινώντας το php script αλλάζουμε το proccess name, πχ. setproctitle('my_script_starting')

3) Στα σημεία που μας ενδιαφέρει αλλάζουμε ξανά το proccess name, κ.ο.κ. πχ. setproctitle('my_script_step1'), setproctitle('my_script_step2') ...

4) Η παρακολούθηση γίνεται με την εντολή watch -n 1 'ps ax | grep my_script | grep -v watch | grep -v grep'  σε μια νέα console, το grep -v watch | grep -v grep είναι για να μην εμφανίζει σκουπίδια.

5) Λίγο προσοχή με το όνομα, όπως βλέπουμε στα παραδείγματα κρατάμε ένα κομμάτι σταθερό (πχ my_script) ώστε να μπορεί να δουλέψει το grep σωστά.

 

Filed under  //   pecl   php   php script   php5   php5-dev   process   proctitle   setproctitle   tail   watch  
Posted July 5, 2011

Install mcrypt PHP module on Mac OS X

Στο προηγούμενο post Mac port failed to upgrade είδαμε πως αντιμετωπίζουμε προβλήματα που το αφορουν το mac ports project σε σχέση με κάποια php modules.

Ένα ακόμα σημαντικό php module είναι το mcrypt το οποίο, αν το κάνουμε install θα αποτύχει, χωρίς να μας δώσει το λόγο.

Thek:macports thek$ sudo port install php5-mcrypt +universal
Password:
--->  Computing dependencies for php5-mcrypt
--->  Configuring php5-mcrypt
Error: Target org.macports.configure returned: configure failure: shell command failed (see log for details)
Log for php5-mcrypt is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_php_php5-mcrypt/main.log
Error: Status 1 encountered during processing.

Αυτό που χρειάζεται είναι να στηθεί πρώτα το libmcrypt.

Thek:macports thek$ sudo port install libmcrypt
Password:
--->  Fetching libmcrypt
--->  Verifying checksum(s) for libmcrypt
--->  Extracting libmcrypt
--->  Configuring libmcrypt
--->  Building libmcrypt
--->  Staging libmcrypt into destroot
--->  Installing libmcrypt @2.5.8_1+universal
--->  Deactivating libmcrypt @2.5.8_1
--->  Activating libmcrypt @2.5.8_1+universal
--->  Cleaning libmcrypt


Thek:macports thek$ sudo port install php5-mcrypt +universal
--->  Computing dependencies for php5-mcrypt
--->  Configuring php5-mcrypt
--->  Building php5-mcrypt
--->  Staging php5-mcrypt into destroot
--->  Installing php5-mcrypt @5.3.6_0+universal
--->  Activating php5-mcrypt @5.3.6_0+universal
--->  Cleaning php5-mcrypt

Filed under  //   libmcrypt   macports   mcrypt   php   php module   php5   php5-mcrypt  
Posted June 14, 2011

Mac port failed to upgrade

Την τελευταία φορά που πήγα να κάνω "upgrade outdated" το mac ports project,
μόλις έφτανε στο netpbm, σταματούσε την διαδικασία με το παρακάτω μήνυμα:

Error: Target org.macports.build returned: shell command failed (see log for details)
Log for netpbm is at: /opt/local/var/macports/logs/_opt_local_var_macports_ sources_rsync.macports.org_release_ports_graphics_netpbm/main.log
Error: Problem while installing netpbm
To report a bug, see <ht tp://guide.macports.org/#project.tickets>

Μετά από ώρες search στο google, χωρίς όμως να βρίσκω μια direct λύση,
και πολλές δοκιμές κατέληξα στο ότι πρέπει να κάνω uninstall το jasper.

sudo port uninstall -f jasper

sudo port install netpbm

και μετά πάλι...

sudo port upgrade outdated

Η διαδικασία συνεχίστηκε κανονικά μέχρι που έκανε πάλι failed στο xbitmaps, και στο php5-mcrypt.

Για αυτά η διαδικασία είναι ποιο απλή, uninstall και μετά πάλι  upgrade. πχ.

sudo port uninstall -f xbitmaps

Υπάρχουν όμως 2 versions:

--->  The following versions of xbitmaps are currently installed:
--->      xbitmaps @1.1.0_1
--->      xbitmaps @1.1.1_0

οπότε:

sudo port uninstall -f xbitmaps@1.1.0_1

και

sudo port uninstall -f xbitmaps

 

 

Filed under  //   macports   port   upgrade outdated  
Posted June 8, 2011

How to replace git repo url

Αν θέλουμε να αλλάξουμε το git repo url χωρίς να ξανακάνουμε clone ένα project μπορούμε να εκτελέσουμε τις παρακάτω εντολές:

git remote rm origin

git remote add origin ssh://user @ ip:port/my.git

git config branch.master.remote origin

git config branch.master.merge refs/heads/master

Μετά από αυτό αν δούμε το αρχείο .git/config θα έχει μέσα το νέο repo url.

Filed under  //   git   repo   repository  

phpMyAdmin "Cannot start session without errors"

Αν καμιά φορά προσπαθήσετε να κάνετε login στο phpMyAdmin και σας εμφανίσει το παρακάτω μήνυμα λάθους :

Cannot start session without errors...

τότε δεν έχετε παρά να πάτε στο directory που σώζονται τα php session files και να τα διαγράψετε.

Σε ubuntu με default εγκατάσταση είναι στο "/var/lib/php5".

Filed under  //   php   phpmyadmin  

Install wordpress over plesk

Ένα πολύ χρήσιμο shell script που κάνει install το wordpress σε ένα domain σε ένα server με plesk (παίζει από console).

Αφού έχουμε πάει στο directory httpsdocs ενός domain εκτελούμε το παρακάτω script (το έχουμε σώσει σε ένα αρχείο).

Το script αφού κρατήσει τον owner από τον ftp user του domain, κατεβάζει την τελευταία έκδοση του wordpress, και σβήνει τα default αρχεία του plesk.

wordpress-install.sh

ls -al index.html | awk '{ print $3 }' > .chown
wget http://wordpress.org/latest.tar.gz
rm -rf css favicon.ico index.html picture_library test img
tar xvfz latest.tar.gz
mv wordpress/* .
rm -rf wordpress latest.tar.gz
chown `cat .chown`.psacln . -R
rm -f .chown

Filed under  //   plesk   shell   srcipt   wordpress  

Validate a Google Analytics UA Number

Ένα php validation με preg_match για το Google Analytics UA Number:

if ( preg_match( '/^UA-[0-9]+-[0-9]$/' , $UA )) echo 'UA is valid';

Filed under  //   UA number   google analytics   php   preg_match   validation  

Pretty display to an empty date

Ένα απλό php tip που δίνει σαν αποτέλεσμα μιά κενή παρουσίαση ενός date με μεταβλητή το format:

π.χ. --/--/---- --:--

$format='d/m/Y H:i';
echo preg_replace('~[0-9]~', '-', date($format));

 

Filed under  //   date   php  

Use simplexml_load_string to parse rss

Ένας γρήγορος τρόπος για parsing rss είναι με την simplexml_load_string (php function).

Το πρόβλημα εδώ είναι ότι η συγκεκριμένη function δεν επιστρέφει τα tags που έχουν τον χαρακτήρα ":".

Με ένα απλό replace το πρόβλημα λύνεται εύκολα:

$rss = simplexml_load_string( str_replace(':','_',$xml_string) );

Έτσι αν έχουμε ένα tag πχ. media:content μπορούμε να το προσπελάσουμε κάπως έτσι:

$rss->media_content

Filed under  //   php   rss   simplexml_load_string   xml