Razo Duke12

Thursday, April 20, 2006

Una rápidas para Mysql

A veces uno va utilizando instrucciones q merecen el recuerdo por su buen funcionamiento jejeje,,, ire colocando las q he investigado o q me han recomendado para realizar ciertas tareas en Mysql.

Para crear dumps de bases de datos Mysql:

#Toda la base de datos : estructura y datos.
mysqldump -u root - p nom_base > data_biz.sql

#solo datos solo las tablas q necesites
mysqldump -u root nom_base tab1 tab2 tab3 tab4 tab5 -t --no-create-info > data_biz.sql

#solo estructura solo las tablas q necesites
mysqldump -u root nom_base tab1 tab2 tab3 tab4 tab5 -d --no-data > struct.sql

Dar permisos al usuario esclavo en la replicacion:

GRANT REPLICATION SLAVE ON *.* TO repl@192.168.15.251 IDENTIFIED BY 'repl_pass

Cargar scripts de sql desde consola
mysql -u root -p -D isy_inv_2 < script.sql

Para seleccionar los clientes que no tiene info en sales con esta consulta podemos obtener algo parecido a select not in ( ) en las versiones de Mysql que no lo soportan.

SELECT table1.*
FROM table1 LEFT JOIN table2 ON table1.field1 = table2.field
WHERE table2.field2 IS NULL;

Este query: SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.field1 WHERE fielddate > now()-interval 600 second;

EQUIVALE A

select * from table1 where field1 in (select field1 FROM table2 where fielddate > now()-interval 600 second group by field1)

Seguiremo colocando instrucciones....................

Tareas Cronianas

Estamos en la busqueda de ejecutar un proceso automatizado mediante el demonio Cron, para ejecutar un script php cada cierto tiempo, veamos q encontramos:

http://linuca.org/pipermail/linuxcantabria/2004-January/003571.html

http://linuca.org/body.phtml?nIdNoticia=256

Aki encontramos algo como:

El paquete Cron provee dos utilidades, el demonio croncrontab, que es la herramienta que más nos interesa. propiamente dicho y el editor de tareas,

Crontab (crontab -e)es un script que lanza nuestro editor favorito y abre un fichero donde se almacenan todos los trabajos que se lanzan periódicamente. Este fichero tiene un formato específico que veremos a continuación; una vez editado, crontab se encarga de integrarlo en el sistema.

El formato de este fichero es el siguiente:
minutos horas dia mes diadelasemana comando

NOTA: Es muy importante especificar siempre la hora a la que queramos que se ejecuten los comandos, por que si ponemos un * se ejecutarán una vez por hora en el caso de las horas, y una vez por minuto en el caso de los minutos ;-)

Para ejecutar un php desde consola sería de la siguiente manera "php /ruta/del/script/llama_enviar.php"

Prueba con browsers modo texto. El comando sería

lynx --dump http://TU URL AQUI 1>/dev/null 2>/dev/null
links --dump http://TU URL AQUI 1>/dev/null 2>/dev/null

o redireccionas el standar output y standar error a donde tu quieras.
Al final utilize esta opcion, para que se ejeucte diario a las 2 am:

0 2 * * * lynx --dump http://localhost/script.php >> /home/duke12/log_cron.log

Una de Subversion

Planteamiento:
cuando kiero ver el status de los archivos locales del svn ejecuto svn st pero me sale una listota y pues de preferencia me gustaria no tomar en cuenta al templates_c que son lo compilados de Smarty.

Respuesta:
Encontre una buena opcion:

http://svnbook.red-bean.com/nightly/es/svn-ch-7-sect-2.html#svn-ch-7-sect-2.3.3

svn propedit svn:ignore templates_c/

Editas el archivo y escribes la linea

*.tpl.php

y salvas el archivo y lo commiteas (svn ci)

duke12@beto:/var/www/isy_inv$ svn st
? pass_new.sql
A fileset.php
? templates/reports.tpl
? templates/test.tpl
M search.php
? templates/oscript.tpl
? templates/index2.tpl

De esta forma ignora los compilados de Smarty en templates_c..........asi puedes visualizar los archivos que no has versionado para que te acuerdes cuales te faltan agregar al repositorio, sin revisar una mega lista desplegada.

Wednesday, April 19, 2006

HoTxt, el Skype de los SMS entre móviles

Esta nota es muy buena referente a servicios de envío de mensajes de texto a moviles....echenle ojo

http://www.genbeta.com/archivos/2006/04/09-hotxt-el-skype-de-los-sms-ent.php

Ayuda de Gmail para PDF con candados

Esta nota me pareció muy atractiva....para poder copiar texto de un pdf cuando este tiene candados...puede ser buena opcion...

http://www.genbeta.com/archivos/2006/04/18-rompiendo-el-drm-de-los-pdf-co.php

Tuesday, April 18, 2006

FireFoXito


Pa desaburrir mi desktop buské un wallpaper de FireFox nomas pa tenerlo de recuerdo aki lo dejo.................

Friday, April 07, 2006

Detectar cierre de navegador

En las aplicaciones donde necesitas registrar los movimientos que realizan los usuarios que se logean a tu sistema web, a veces es necesario trackear
los tiempos que se mantuvieron en el sitio, lo ideal sería detectar cuando el usuario cierra la ventana del explorador para que tu puedas registrar
la fecha:hora de terminación de la sesión u otros procesos a la misma acción. La onda es tratar de activar algun proceso "listener" que envie una señal
al server cuando se cierra el explorador y realice las operaciones necesarias. En mi caso yo necesitaba registrar la fecha de salida para entregar un reporte de
sesiones de usuarios.

¿Como lo logre?

Utilizando:
*** una función sencilla por medio de Dojo (Ajax) que me funcionó como listener, esta funcion avienta una señal al script "salir.php" al momento de cerrar la ventana.

OJO SUSTITUIR # por las llaves para tags mayor o menor que,,, jejej

#script type="text/javascript" src="dojo/dojo.js"##/script#
#script type="text/javascript"#
dojo.require("dojo.io.*");
dojo.require("dojo.event.*");
dojo.require("dojo.html");
dojo.require("dojo.fx.*");

listener = function(e){
var part = false;
var meth = "GET";
var kw = {
url: "salir.php?fin=si",
formNode: dojo.byId("frmlo"),
load: function(type, data) { window.close(); },
error: function(type, error) { alert(String(type) + "\n" + String(error)); },
method: meth,
multipart: part
};
dojo.io.bind(kw);
}

#/script#


*** Use también el evento OnBeforeUnload de los navegadores.
Este evento se activa cuando antes de que la pagina se descargue de memoria ya sea al ir a otra pagina mediante un link o la barra de dirección,
recargar la pagina con F5 o Refresh del menu contextual o barra de menu. En el body se activan las funciones listener(), se deshabilita el click
derecho del ratón y se activa tambien una funcion que desactiva la tecla F5.

Es importante comentar que esta ventana se tuvo que abrir en tipo popup con el window.open('url','win_name','menu=no,location=no')
para deshabilitar barras de menu, de navegacion, de dirección para evitar que se active el evento OnBeforeUnload, solo cuando se
cierre el explorador que es lo q importa en esta caso.

#body onBeforeUnload = "listener()" oncontextmenu="return false" onload="setEventListener(disableKey); " #

Pro: puedes registrar la fecha:hora en que se cerro el navegador en alguna base de datos.

Contra: Deshabilitar muchas cosas, la navegabilidad se la tienes que dar con tu aplicación, con links.

Monday, April 03, 2006

Función Resta Horas

Para obtener diferencia de tiempo en H:M:S entre dos timestamps se ocupa la función timediff (SELECT *, min(timestamp) as mins, max(timestamp) as maxs, timediff(max(timestamp), ..........) en mi local tengo mysql 5, y jalo todo bien pero en el server teniamos mysql 4.0"!!!! y nomas no jaló ya que timediff solo se soporta de mysql 4.1 en adelante, encontrando por ahi una función de PHP para realizar esta operación, aun que solo fue temporal ya que actualizando a mysql 4.1 se resolvio la onda...::::


function mktcls_diff($time1, $time2) {
$time_diff = strtotime($time2) - strtotime($time1);
$hours = floor($time_diff / 3600);
$minutes = floor(($time_diff % 3600) / 60);

// Just returning the string...
// can change this if you like so that
// it returns an array of the hours/minutes, etc...
return("$hours:$minutes");
}
function mktopn_diff($time1, $time3) {
$time_diff = strtotime($time3) - strtotime($time1);
$hours = floor($time_diff / 3600);
$minutes = floor(($time_diff % 3600) / 60);

// Just returning the string...
// can change this if you like so that
// it returns an array of the hours/minutes, etc...
return("$hours:$minutes");
}


$max = $rspubs->fields['maxhrs'];
$min = $rspubs->fields['minhrs'];
$diff= mktcls_diff( $min, $max);