Archive for the ‘Software Servidor’ Category

Mouse Fighter: controlar el ratolí amb el teclat

dilluns, agost 9th, 2010

No us ha passat alguna vegada que no teniu un ratolí a mà i necessiteu treballar amb l’ordinador?.

Pot ser en un armari rack ple de servidors, pot ser que s’us espatlli el ratolí o que s’espatlli el touchpad del portàtil.

Sigui com sigui aquest programa gratuït us serveix per a controlar la fletxa del ratolí amb les tecles cursores del teclat.

El funcionament és molt simple:

Amb la tecla Bloc Majúscules (Caps Lock) s’activa, llavors la fletxa del ratolí esdevé diferent per a que diferenciem com hi operem, i passem a controlar el ratolí amb les tecles cursores, i fem clic amb el botó esquerre amb la tecla A i amb el dret amb la tecla S.

Si volem passar a emprar el teclat normalment altra volta tornem a prémer Bloc Majúscules.

És compatible amb totes les versions de windows, de 32 i 64 bits.

El podeu descarregar de la seva web:

http://www.mousefighter.com/

Crear un procediment emmagatzemat en MySql que retorni paràmetres

dimarts, agost 3rd, 2010

Els procediments emmagatzemats (stored procedures) poden tenir paràmetres d’entrada IN i paràmetres de sortida OUT.

Per a definir aquest procediment empraríem un codi SQL com ara aquest:

CREATE PROCEDURE `codic_envia_mail`(IN `S_PLANTILLA` VARCHAR(50), IN `I_USUARI` INT, IN `S_TIPUS` VARCHAR(5), IN `I_CODI` INT, IN `S_PARAM1` VARCHAR(50), IN `S_PARAM2` VARCHAR(50), IN `S_PARAM3` VARCHAR(50), OUT `I_MAILPK` INT)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN

Els paràmetres d’entrada són les dades que li passem al procediment, i els paràmetres de sortida són els que ens permeten recuperar amb una altra comanda SELECT les dades que ha preparat el procediment.

En la imatge superior es passen 7 paràmetres d’entrada i un de sortida @I_MAILPK.

A nivell de codi PHP i ZendDb cridaríem el procediment i recuperaríem la variable de sortida amb un codi similar a aquest:

$s_variable_de_sortida = '@I_MAILPK';
try {
    $o_sel=dbHandler::getAdapter()
    ->query("CALL codic_envia_plantilla('{$s_plantilla}', {$i_usuari}, '{$s_tipus}', {$i_codi}, '{$s_parametre1}', '{$s_parametre2}', '{$s_parametre3}', {$s_variable_de_sortida})");
    // Recuperar la variable de sortida. Pe: @I_MAILPK
    $o_sel2=dbHandler::getAdapter()
        ->query("SELECT {$s_variable_de_sortida}");
    // Nota: Encara millor si feu servir la substitució amb ? ja que llavors és ZendDb qui filtra possibles caracters problemàtics
    $o_sql = "CALL codic_envia_plantilla(?, ?, ?, ?, ?, ?, ?, {$s_variable_de_sortida})";
    $o_sel=dbHandler::getAdapter()
	-->query($s_sql, array($s_plantilla, $i_usuari, $s_tipus, $i_codi, $s_parametre1, $s_parametre2, $s_parametre3));

    // Recuperar la variable de sortida. Pe: @I_MAILPK
    $o_sel2=dbHandler::getAdapter()
        ->query("SELECT {$s_variable_de_sortida}");

    if ($o_sel2->rowCount() > 0){
        $st_dades = $o_sel2->fetch();
        $i_resultat = $st_dades[$s_variable_de_sortida];
        return true;    // S'ha executat bé, sortim de la funció retornant true
    }
    else
    {
        // El procediment no ha retornat cap valor dins la variable
        // així que no ha anat bé
        return false;
    }
} catch (Exception $e) {
    // Hi ha hagut una excepció (Exception)
    throw new Exception('Excepció enviant el correu: '.$e->getMessage());
}

Els prefixes $s_ $i_ ens indiquen quin tipus de variable és:

$s_ string, cadena de caracters
$i_ integer, número sencer
$b_ boolean, valor booleà true/false >0 o 0/null/blanc
$st_ structure, estructura, com ara un array
$o_ object, objecte per exemple de base de dades

La variable de sortida a MySql porta l’ensaïmada o arrova davant.
Podem utilitzar altres notacions com $r_ per als arrays, etc.. però és important de cara a la llegibilitat del nostre codi sempre emprar la mateixa notació.
Emprar aquests prefixes ens estalviarà errors de programació, per exemple sumar cadenes amb números.

Un exemple de programació sense ZendDb i dos paràmetres de sortida:

mysql_query = "call sp_GetUsers('ProjectName',@ErrorNumber, @ErrorMessage)";
$result = mysql_query('select @ErrorNumber, @ErrorMessage');
$row = mysql_fetch_assoc($result);
print_r($row);

Com veieu sense indicar els prefixes resulta força menys intuitiu.

Per a més exemple de crides IN/OUT sense ZendDb podeu veure:

http://www.herongyang.com/jdbc/MySQL-CallableStatement-Procedure-Parameters.html

http://www.tek-tips.com/viewthread.cfm?qid=1441148&page=10

Servidors web IIS i Apache alhora en el mateix servidor windows 2003 server

dissabte, juliol 24th, 2010

windows té moltes coses que no m’agraden.

Mentre que a Linux, un cop l’has aprés, tot és clar i coherent, i les coses no canvien soles si no modifiques els arxius de configuració (que s’editen a mà), windows és un món multicolor on poden passar moltes coses no desitjades.

Si tenim un servidor microsoft windows 2003 amb més d’una adreça ip i instal·lem el servidor web Apache o qualsevol altre, descobrirem que windows no permet fer que Internet Information Services (IIS, el servidor de microsoft) utilitzi només una ip.

Malgrat que li indiquem que utilitzi només una, intentarà escoltar per totes, i l’Apache no podrà arrencar, o bé si aquest s’executa abans, IIS no podrà arrencar perquè Apache estarà escoltant per una de les adreces Ip.

Aquí us adjunto un truc per a poder fer que IIS només escolti per alguna de les adreces Ip i no per totes.

Es tracta d’editar el registre com mostren les imatges.

La clau que editarem o afegirem és:

My Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\ Services\HTTP\Parameters\ListenOnlyList

És important deixar una línia en blanc. Si us fixeu en el cursos s’ha premut enter després de la darrera adreça Ip.

Indicant-li aquestes adreces, aquestes seran les úniques per a les que escoltarà el servidor web de microsoft i podrem fer que l’Apache o un altre servidor Web escolti de la resta d’ips del servidor.

Alliberat Apache Tomcat 6.0.29 (estable)

dissabte, juliol 24th, 2010

El proppassat dia 22 s’alliberà Apache Tomcat, el servidor web per a Java programari lliure.

Soluciona alguns errors (bugs).

Podeu veure els canvis al changelog (històric de canvis entre versions).

Alliberat Zend Studio 7.2.1

dilluns, juliol 19th, 2010

Per a veure les novetats d’aquesta versió.

Sobretot soluciona molts bugs.

Alliberat Apache Tomcat 6.0.28

dijous, juliol 15th, 2010

El proppassat dia 9 s’alliberà la versió 6.0.28 (estable) d’Apache Tomcat.

Aquí totes les novetats:

http://tomcat.apache.org/tomcat-6.0-doc/changelog.html

Solució error MySql 1064 creant un procediment emmagatzemat (stored procedure)

divendres, juny 25th, 2010

L’error 1064 quan creem un procediment emmagatzemat és bastant molest i difícil de descobrir-ne el perquè puix que apunta la primera línia de codi, i aquesta no té cap error.

/* SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” at line 8 */

Aquest error és degut simplement a que MySql considera que on hi ha el punt i coma ; acaba la sentència.

Per tant es fa un embolic creient que acaba el procediment emmagatzemat (stored procedure).

La solució és tan simple com emprar DELIMITER.

Emprant davant de tot:

DELIMITER //

i al final:

END //
DELIMITER ;

S’acaba el problema.

Alliberat Subversion 1.6.12

dilluns, juny 21st, 2010

Fa uns minuts s’acaba d’alliberar la versió 1.6.12 del popular programari de control de versions Subversion.

A més de 65 errors solucionats ofereix nombroses novetats.

Podeu veure totes les novetats d’aquesta versió a la plana oficinal:

http://subversion.apache.org/docs/release-notes/1.6.html

Alliberat WordPress 3.0

divendres, juny 18th, 2010

WordPress alliberà ahir dia 17 la seva versió 3.0.

Entre les novetats que ofereix hi ha 1.217 canvis entre millores i solució d’errors.

Destaco la millora per als desenvolupadors amb unes llibreries (APIs) per a modificar fàcilment propietats dels temes com fons personalitzats, adreces curtes, menús, tipus de post i taxonomies.

La idea és que no calgui editar fitxers manualment.

Quelcom molt d’agrair quan apareixen noves versions de wordpress amb plantilles (templates) més potents.

També és molt destacable la instal·lació multi-lloc (multi-site) que permet disposar d’infinit número de blocs sobre la mateixa instal·lació base i adreça ip.

Podeu veure el vídeo oficial a continuació:

Via: WordPress bloc oficial

Alliberat HeidiSql 5.1.0.3372

divendres, juny 4th, 2010

Ahir es va alliberar la nova versió de HeidiSQL, la 5.1.0.3372.

Aquesta nova versió soluciona alguns errors (bugs) i presenta noves funcionalitats.

Podem editar valors de la graella de resultats d’una select, i també podem executar diverses consultes des del mateix quadre d’sql de cop, i s’obren cadascuna en una pestanya (tab).

Properament això s’implementarà també per als procediments emmagatzemats (stored procedures).

Una altra funcionalitat interessant és que a baix s’ofereixen unes quantes estadístiques de rendiment del servidor.