martes, 3 de mayo de 2011

UNa impresora de red puede conectarse con linea de comandos

PAra añadir una impresora de red por medio de linea de comando se usa el script prnmngr.vbs: que viene con Windows.

Digamos que se quiere instalar la impresora HP laser jet p1005 que previamente se compartió con el nombre de HP1005. (Aunque pudo ser un mejor nombre como: "Impresora facturación primer piso"), que esta conectada al equipo FACTURACION.  Entonces usaríamos la siguiente linea:

CSCRIPT %windir%\system32\prnmngr.vbs -ac -p "\\FACTURACION\HP1005"
Lo anterior aplica apra Windows XP, en windows vista, 7 y server 2008, la ubicación del prnmngr.vbs cambia y se encuentra en: C:\Windows\System32\Printing_Admin_Scripts\es-Es
por lo cual el comando cambiaría a:
CSCRIPT %windir%\system32\Printing_Admin_Scripts\es-Es\prnmngr.vbs -ac -p "\\FACTURACION\HP1005"
Ahora bien es posible que el equipo que tiene la impresora exija algún tipo de autenticación. Si dispone de un usaurio y contraseña, puede especificarlos añadiendo al final de la linea:

-u nombredeusuario -w contraseña
Para mayor informcaion pueden consultar el sitio de Microsoft

http://technet.microsoft.com/es-mx/library/cc725868(WS.10).aspx

sábado, 16 de abril de 2011

cómo buscar los registros que empiecen por un número

Hasta ahora no he encontrado ningún metodo directo en Cakephp,  asi que la mejor solucion es usar una funcion de my sql por ejemplo:


SUBSTRING(LOWER(Modelo.campo),1,1) BETWEEN '0' AND '9'

Ahora bien simplemente se pasa la cadena completa como un array entre comillas dobles como argumento de paginate. Esto es importante ya que no se pueden escapar las comillas sencillas ya que la cadena es pasada tal cual a la clausula WHERE de la consulta SQL.


                      $this->set('modelo',$this->paginate(array("SUBSTRING(LOWER(Tercero.razon_social),1,1) BETWEEN '0' AND '9'")));
 y Voila! Muy útil para usar cualquier función MySQL.
                     

El símbolo # no es un parámetro valido como argumento en Cakephp

Y de hecho en ninguna otro framework php o aplicación web ya que es el símbolo que hace referencia a la misma pagina o a algún marcador en la misma.

Así que: el código:

$this->Html->link('#', array('action'=>'index'));

Realmente no dispara la acción index del controlador sino que te lleva a inicio de la pagina, nada más.

martes, 12 de abril de 2011

No debo cambiar los nombre de un archivo bajo subversion

Bueno realmente los nombres si se pueden cambiar si son diferentes.

El problema radica en que si por ejemplo cambias un archivo, digamos: Opcion.php a opcion.php,
Subversion asumirá que se borro Opcion.php y se creo opcion.php, realmente no habria problema con esto a menos que este en Windows pues como el S.O. no es caso sensitivo asumira que se trata del mismo archivo y generara un error al tratar de hacer update o commit al proyecto.

Yo tuve que borrar alguna de las copias directamente en el repositorio y quitar el directorio que las contenía y hacer nuevamente check out.

sábado, 2 de abril de 2011

De las primeras cosas a revisar cunado fala un servicio en linux es el espacio en disco.

Ya varias veces me ha ocurrido que cuando servicios  como el squid, apache o mySQL fallan, se trata de poco espacio en disco que impide que se modifique o creen archivos temporales que se requieren para el funcionamiento.

Y aunque uno supondria que al tratar de ejecutar la aplicación esta debería avisar con algo como: "Error tal y tal, me quedé sin espacio en disco, Pilas! muchas veces simplemente sale un "Error".

Verificar lo es fácil en sistemas Linux. (y en Windows si que más).

# df -h

Donde df viene de disk-free y el -h viene de "human" es decir que los tamaños puedan ser leídos por humano, osea en Kb, Mb y Gb según el caso.

miércoles, 23 de marzo de 2011

Los inputs maracados como "disabled" no son enviados con el formulario.

Hoy estuve dando vueltas un par de horas tratando de averiguar porqué no se me estaba guardado correctamente la información de un formulario que recién el día de ayer parecía funcionar a las mil maravillas.

La repuesta, muy sencilla: había marcado una etiqueta html input tipo texto con la propiedad disabled="disabled", lo que hace que esta no pueda ser editada por el usuario, pero tampoco sea enviado como datos del formulario.

Desde la perspectiva del HTML tiene sentido este comportamiento, ya que si el valor no puede der modificado por el usuario, yo ya sé el contenido y no tiene sentido enbviarlo conlos datos del formulario; pero desde un punto "dinámico" del asunto es posible que ese valor sea generado por el servidor y quiero mostrarlo o bien quiero bloquearlos después de hacer cálculos en el Cliente.

¿Solución? Crear un campo tipo "hidden" que copie el valor del campo deshabilitado y procesarlo en lugar de este.

Asi de sencillo.