domingo, 11 de enero de 2009

Capturar parte de la pantalla

Muchos saben que apretando el boton Impr Pant se puede hacer una captura de pantalla para posteriormente tratarla en un editor de imagenes. Luego de eso se puede cortar una region de la pantalla. Pero, todo eso lleva algun tiempo en realizar. Es mejor una herramienta que permita hacer eso en menos pasos.

Buscando esa herramienta encontre un addons para Firefox que permite hacer eso y mas. Se trata de Fireshot que permite ademas de capturar una region de la pantalla:

- subirla a un hosting
- guardarla al disco (en formatos PNG, GIF, JPEG, BMP)
- imprimirla
- copiarla al guardapapeles
- enviarla por e-mail
- configurar un editor externo para editarla.

lamentablemente no esta disponible para Linux.

Actualizado 22/07/2009

Pero en Ubuntu puedes hacer lo siguiente:
- ir a Aplicaciones
- Accesorios
- Capturar pantalla

En Windows se puede capturar la ventana activa presionando ALT + Imp Pant

Buscar un archivo en Linux desde consola

Estoy haciendo un plug in para Zen Cart, y necesito ubicar el archivo tpl_product_info_display.php, y con solo ver el arbol de directorio del proyecto ya me imagino el tiempo que me va a tomar saber donde esta el archivo. Necesito ubicarlo rapidamente. Pero como.

En una consola puedes escribir lo siguiente:
Locate Nombre_Archivo

y obtendras la ubicación de los archivos que responden al nombre que haz ingresado.

Lanzar una terminal desde una carpeta

Necesitas dar permisos a la carpeta que esta en /var/www/proyecto/modulo/plugin/... etc. Por lo que tienes que darte la lata de abrir una terminal, escribir o copiar y pegar el path para llegar a esa ruta en tu Linux. Y hechas de menos un elemento en el menu del botón derecho que te diga Abrir en un terminal, y que al hacer clic te deje posicionado en esa carpeta. Que alivio si eso existiera. Bueno, existe en el navegador de archivos Nautilus por lo que haz lo siguiente ahora mismo:

Abre un terminal
Escribe sudo apt-get install nautilus-open-terminal
Luego killall nautilus
Abre nautilis navega a una carpeta, da clic en el botón derecho y encontraras un elemento que dice Abrir en un terminal.

martes, 6 de enero de 2009

Como saber la estructura de una tabla en MySQL

La verdad es que estoy mas acostumbrado a trabajar en MS SQL que en MySQL. Por ejemplo, cuando quiero saber cual es la estructura de una tabla en MS SQL desde un cliente coloco la siguiente consulta:

sp_help nombre_tabla

en MySQL es distinto, para saber la estructura de una tabla se debe ingresar lo siguiente:

show columns from nombre_tabla;

Consultar control de otra página con Javascript

Tengo una página (index.php), que recibe un parámetro por la url (categoria). Y dentro de la página index.php tengo un iframe que carga la página upload.php. La cual (upload.php) sube un archivo y al mismo tiempo tiene que guardar en una tabla de base de datos el nombre del archivo y la categoria. El cuento es ¿Como accedo al valor categoría desde la página upload.php?

La solución que encontre fue guardar el valor de categoría en un campo oculto en la página principal:

<input type="hidden" name="categoria" id="categoria" value="<?php echo $categoria; ?>">

Y luego desde el iframe consulto el valor del campo oculto de la siguiente manera:

var categoria = parent.document.getElementById("categoria").value;

Si alguien necesita el código completo, lo puede solicitar al siguiente e-mail: mdonoso2007@gmail.com

viernes, 2 de enero de 2009

Cannot resolve collation conflict for equal to operation

Estaba pasando a producción un sistema .Net con SQL Server y tube algunos problemas. Entre ellos, que en producción (servidorPro) aparentemente no tenía todos los procedimientos que debian estar. Por lo que me surgio la necesidad de hacer una comparación de lo que tenía en ambos servidores. No tenia ninguna herramienta a mano, por lo que hice una consulta a las bases involucradas cada una en un servidor distinto.

Hice una consulta a la tabla sysojects de ambos servidores que devolviera todos los procedimientos (type='P') de la base con diferencia.

En ambiente de testing estoy parado sobre la base que estoy comparando. Ejecute el siguiente script:

select a.name, b.name
from sysobjects a
left outer join servidorPro.basePro.dbo.sysobjects b
on a.name=b.name
where a.type='P'
order by a.name

lo cual me dio el siguiente error:
Cannot resolve collation conflict for equal to operation

Por lo que al averiguar que collate tenian las bases:
SELECT DATABASEPROPERTYEX('basePro','Collation')

me di cuenta que habian diferencias, una de ellas tiene: Modern_Spanish_CI_AS y la otra Latin1_General_BIN. De modo que a mi script anterior agregue la linea
COLLATE Latin1_General_BIN en la linea donde comparo los campos.

select a.name, b.name
from sysobjects a
left outer join servidorPro.basePro.dbo.sysobjects b
on a.name=b.name COLLATE Latin1_General_BIN
where a.type='P'
and b.name is null

¿Y que retorna este script?
Retorna todos los procedimientos de cada base y cuando uno de ellos no tiene coincidencia osea no se encuentra me retorna un NULL, con eso se que procedimiento me falta en que base de datos.