lunes, 15 de agosto de 2011

Easy print genera problemas para imprimir, como deshabilitar easy print de terminal server


Si ha usado sesiones de terminal server o escritorio remoto, debe saber que es posible ejecutar una aplicacion en el servidor remoto e imprimir enla impresora local gracias al redireccionamiento de impresora.

Para esto debe estar el controlador correspondiente a la impresora tanto el el servidor como en el equipo cliente.  (este controlador debe ser el indicado para cada sistema operativo.)

Aún así es posible que presente problemas de impresión. Una de las razones más comunes para esto es que antes que nada el servidor intenta usar el driver: Terminal Server Easy Print que no siempre es compatible con la impresoras. 



Generalmente esta predeterminado y un usuario sin privilegios no puede cambiar esta configuración.
¿Qué hacer entonces?

La forma mas sencilla es precisamente deshabilitar este comportamiento desde las directivas de grupo de los usuarios en el servidor, justo como se ve en la imagen inferior.
(Entrar a la consola de políticas de equipo: Ejecutar: "gpedit.msc")
"Configuración del Equipo -> Plantillas Administrativas -> Componentes de windows ->"Terminal  services -> Terminal Server.



Después de esto ejecute el comando "gpupdate". Cierre la sesión del cliente he ingrese nuevamemte y si todo quedo bien, en las propiedades de la impresora ya debe aparecer el driver de la impresora tal cual debería estar y podrá imprimir sin dificultades-

miércoles, 15 de junio de 2011

Es mejor usar funciones de mysql para calcular un cunpleaños

El problema es sencillo:
Se desea mostrar de una lista de empleados el empleado que cumpla años el día de hoy.

Como primera opción se pensó en recorrer toda la lista de empleados en la vista haciendo explode() de la fecha y comparando el día y mes. Pero esta opción además de ser tediosa agregaría mucho código en la vista que no seria solo para mostrar los datos sino para calcular un resultado lo caual iría en contra de la filosofía MVC.

Asi que la mejor opción, al menos para mi, fue obtener desde el controlador un arrglo con los empledos que cumplieran años en el día actual.

El código seria más o menos asi:

$this->set('cumplen', $this->Empleado->find('all', array('conditions'=>array('date_format(fecha_nacimiento,\'%m%d\') = date_format(now(),\'%m%d\')'))));
De esta manera se estrían comparando cadenas como '0615' para junio 15 de cualquier año.

También podrían combinarse con opciones como field o containable para traer solo los datos que sean necearios.

sábado, 4 de junio de 2011

Para instalar una genius tvgo A03 iptv en windows 7 64bits

 De hecho ya existe una solucion oficial en la direccion:
http://download.geniusnet.com/2007/Video/How_to_install_TVGo_A03_MCE_%20under%20WinVista.pdf

En resumidas cuentas te dice que debes escoger el controlador para que el dispositivo quede como TV box y no como TV tuner u otra casa.

El controlador para Windows 7 se puede descargar desde aca:
http://download.geniusnet.com/video/TVGo-A03-IPTV_W7.zip

¿Ahora bien donde están los controladores? Esta pregunta viene a lugar porque el archivo solo contiene un ejecutable que no es extraible.

Los controladores en cuestión deberian estar en la ruta:
C:\Program Files (x86)\TVGo A03-IPTV\Drivers\vista64bit

notese que son los de Vista ya que no están oficialmente los de Windows 7

miércoles, 11 de mayo de 2011

Para cada nueva caracteristica en un desarrollo de software debria...

Por cada nueva característica nesecito (en el siguiente orden):
1. Decir que no. 2. Fuerzar  a la nueva característica a de demostrar su valor. 3. Si lo anterior resulta en "no" nuevamente, termino aquí. Si "sí", continúo ... 4. Bosquejo de la pantalla (s) / ui.  (papel o balsamiq mockup).5. Diseño de la pantalla (s) / ui.  (html o en lo que este programando)6. Codificar la característica. 7-15. Probar, ajustar, probar, ajustar, probar, ajustar, probar, ajustar ... 

16. Compruebe si el texto de ayuda tiene que ser modificado. (manuales, ayuda en linea, sitio web.)17. Actualizar el tour del producto (si es necesario). 18. Actualizar la copia de la comercialización (si es necesario). 19. Actualización de los términos del servicio (si es necesario). 20. Comprobar si las promesas se rompieron. 21. Comprobar si la estructura de precios se ve afectada. 22. Lanzamiento. 23. Aguantar la respiración.


Lo anterior lo tome de "Getting Real de 37 Signals". Aunque especificamente aplica para aplicaciones web como productos , tiene sentido para cualquier otro desarrollo.



viernes, 6 de mayo de 2011

Excel tiene la opcion de filtro avanzado (y es una maravilla)

En general Excel y demás aplicaciones de hoja de calculo, tienen un montón de funciones que no usamos, si acaso un 5% se usa habitualmente y el otro 95% no se usa no porque no se necesite si no por desconocimiento..

Seguramente muchos saben usar la opción de auto filtro que está bajo el menú dialogo. Opción muy util para organizar los datos y por supuesto filtrarlos según lo que se requiera.

Pero que onda Con filtro Avanzado? su uso no es muy intuitivo. Y si les paso como a mi, que me da pereza leer la documentación de ayuda, quizá lo hayan dejado de lado.

Hace poco me pidieron la lista de los datos de los clientes que saldrían en la facturación del mes. Un trabajo sencllo bajo el administrador de base de dados, si tuviera acceso a el; pero lo único que disponía era 2 libros de excel: uno con 2000 clientes y otro con 220.

¿"select * FROM Libro1 WHERE Libro1.cliente = Libro2.cliente"?
Una solución genial si tan solo se pudiera hacer en Excel. (o si se puede que alguien me diga cómo).

Mmmm, quizá importando los libros como tablas de SQL, ejecutar la consulta y exportar nuevamente a Excel. Factible pero debería haber una solución mas elegante: "Filtro avanzado".

Para no repetir como se usa dejo el link de un completísimo y claro tutorial de como hacerlo.
Por cierto hecar a una vista a los demás artículos de ese blog seguro le salvará la vida a más de uno que use Excel en su trbajo.

http://jldexcelsp.blogspot.com/2007/03/usando-filtro-avanzado-en-excel.html

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.