lunes, 30 de octubre de 2023

Canon G2110 en Ubuntu 22+ compartida por CUPS imprime código XML basura en vez de imágenes y documentos

Recientemente compré una Canon G2110 para que trabaje en paralelo con mi Canon G2100 y me llevé una sorpresa.

La máquina imprimía correctamente desde Linux, y desde Windows, mientras estuviera conectada por cable USB.

Pero si quería imprimir desde Windows, con la máquina conectada a un servidor Linux, y compartida por CUPS, salía basura parecida a esto:

<?xml version="1.0" encoding="utf-8" ?><cmd
xmlns:ivec="http://www.canon.com/ns/cmd/2008/07/c
ommon/" cmlns:vcn="http://www.canon.com/ns/cmd/20
08/07/canon/">

jueves, 14 de abril de 2022

Desactivar Windows Update en Windows 10 (funcionando a abril de 2022)

En Windows 10 esto es todo un desafío.

El sistema operativo no colaborará con nosotros para nada.

He probado varios métodos para Windows 10.

Por un tiempo, el mejor fue usar el programa Win Update Stop. De quien volveremos a hablar. Pero actualmente ya no es gratuito, por lo que debí dejar de usarlo.

De todos los trucos que yo sabía para desactivar Windows Update en versiones anteriores de Windows, el único que todavía parece funcionar es "redirigir" Windows Update a través de una política de grupo.

Hay una política de grupo, que la herramienta GPEdit muestra en la ruta: Configuración de equipo->Plantillas administrativas->Componentes de Windows->Windows Update->Especificar la ubicación del servicio Windows Update en la intranet.

Si habilitamos esa política, y ponemos el protocolo y la dirección IP http://192.168.1.4, o cualquier otra realmente, conseguimos neutralizar Windows Update.

Nota: en realidad, no es usar cualquier IP aleatoria, les pido que al menos sea una IP de este lado del ruter.

Para los que tengan Windows 10 Home, y no puedan ejecutar gpedit porque sólo está disponible en versiones Pro de Windows 10, no se preocupen, les dejo comandos de terminal para desactivar y volver a activar Windows Update por medio de esta misma política. Las entradas del registro relacionadas con esta política, son honradas por un Windows Home, lo único que no está es la herramienta gráfica gpedit. Pero la política existe y la podemos configurar editando el registro.

jueves, 10 de diciembre de 2020

MonoDevelop en Ubuntu 20.04

Primero que nada decir que el soporte para 20.04 está muy verde todavía, y esa es la razón de que tengamos que hacer "ciertas cositas" extras a las que no estamos acostumbrados.

En realidad, puede que sea más simple instalar net-core desde Microsoft y usar Visual Studio Code, que ahora funciona sin problemas en Linux, pero en mi caso, yo necesitaba compilar un proyecto para Net 4.7, sin cambiarle nada, incluyendo la versión de Net objetivo, y da la casualidad de que MonoDevelop abre archivos sln creados con Visual Studio desde Windows.

Con mi instalación de Visual Studio Code ya tendría que cambiar el proyecto a Net 5. Por ejemplo.

En el pasado, MonoDevelop me ayudó con este tipo de situaciones.

viernes, 24 de abril de 2020

Canon Pixma E3110 - instalador correcto para Windows

Parece que la gente responsable del sitio web de Canon son seres humanos después de todo.

Al menos si cargas la versión del sitio para Latinoamérica. Si buscas el driver para la Canon Pixma E3110 la página a la que te direccionan sería la correcta, con la información de la impresora correcta, pero el driver que te dan es para la TS3110.

miércoles, 20 de marzo de 2019

Página web de Netflix con fondo blanco y perfiles como simples enlaces azules html sin estilo aplicado

Un caso muy raro que vale la pena registrar en mi blog.

Versión resumida: si se trata de un equipo Dell lo primero que deben intentar es desinstalar el "SmartByte".

Si eso no resulta o SmartByte no está instalado pueden probar también:

  • Desinstalar antivirus de terceros y cualquier otro tipo de software de seguridad de terceros y volver a lo integrado en Windows.
  • Desinstalar cualquier proxi o VPN.
  • Desinstalar cualquier extensión en su navegador web (las pueden reinstalar después)
  • Probar si su configuración de MTU es la ideal para ustedes (esto no lo voy a cubrir en detalle en esta entrada)

Anécdota

Una laptop Dell, y presten atención a la parte que dice Dell porque será importante más adelante.

Intentaban cargar Netflix. Y esta quedaba con fondo blanco y los nombres de los perfiles como simples enlaces html, de color azul, sin estilo ninguno aplicado. Y ahí quedaba.

Además, el problema era reproducible, el 100% de las veces, en cualquier navegador web, llámese Edge, Firefox, etc.

lunes, 18 de marzo de 2019

RPGs de la vieja escuela - estudio de estrategias de renderizado

Este es un estudio que hice acerca de cómo renderizan los gráficos, los juegos RPG de la vieja escuela, sobre todo los de origen japonés, al menos en la pantalla de exploración.

Trato de implementar las mismas características que observo que tenían los títulos que jugué durante mi niñez. Para así tratar de recrear las mismas técnicas, que incluyen las mismas limitaciones también, que tenían los motores de esos juegos.

Todo está basado en la observación. Siendo esos títulos de código cerrado, no se puede simplemente buscarlos en github y leerlos. Existen a día de hoy implementaciones de código abierto, pero nada nos garantiza que estas se parezcan a las comerciales.

En las implementaciones que vienen a continuación, usé muchos arrays dinámicos y listas, lo que estoy seguro no hacían los títulos que trato de analizar, debido a limitaciones del hardware de las viejas consolas de sobremesa como el SNES. Así que lo que importa es analizar la técnica, y no la implementación, que además no me tomo el trabajo de optimizar para velocidad de ejecución, aunque sí me preocupé por su legibilidad.

No les garantizo que los demos que vienen a continuación se reproducirán correctamente en smartphones. Si se reproducen no podrán controlar al personaje principal puesto que no implementé controles táctiles, y creo que no lo haré en el futuro tampoco. Celulares de generaciones anteriores seguramente ni podrán mostrar esta página correctamente. (Implementé controles táctiles crudos a último momento)

Me doy cuenta que extraer el código JavaScript del estudio es todo un desafío si está mezclado con todo el código de blogger.com. Por lo tanto dejo un enlace a una versión de todo el estudio que es mucho más fácil de analizar Descargar Aquí.

Empecemos.

sábado, 2 de marzo de 2019

MarioNet y Service Workers

Leo en zdnet.com acerca del nuevo MarioNet, un nuevo ataque que no requiere intervención del usuario, y esto es lo más importante, ni está basado en una falla de programación que pueda ser arreglada en el futuro. Más que estar basado en una falla, está basado en una característica, de haber algún fallo este estaría en las especificaciones mismas, ya que parece no haberse considerado la posibilidad de abusar de esta característica de esta manera.

MarioNet es un juego con la pronunciación de la palabra “marionette”, que es el inglés para “marioneta”. En efecto, durante el estudio se refiere a los integrantes de la botnet como “las marionetas”, y al atacante como “el titiritero” o “pupeteer”.

martes, 10 de julio de 2018

Instalando Ubuntu 18.04 - ubi-usersetup failed with exit code 141

No quiero ser "quejón" pero la confiabilidad del proceso de instalación de Ubuntu ha ido disminuyendo con cada nueva versión.

Ahora parece ser que el proceso de instalación no sabe qué hacer en caso de que queramos conservar una partición de una instalación anterior y montarla como /home. Por fortuna tiene una solución simple. Sólo espero que hayan buscado en Internet y llegado aquí antes de dar clic en el botón "Ignore/Ignorar" y no después.

domingo, 20 de mayo de 2018

Lanzar juegos de steam con prioridad de proceso alta

Los que tenemos equipos que apenas cumplen los requerimientos mínimos de los juegos estamos acostumbrados a subirle la prioridad al ejecutable del juego para obtener un poco más de rendimiento.

El nivel de prioridad "Tiempo real" está prohibido, pues deja sin recursos al resto del sistema, o a servicios críticos como el antivirus, pudiendo ocasionar cuelgues u otros mal funcionamientos. Por lo tanto el nivel de prioridad "Alta" es lo más arriba que podemos ir.

Ahora bien, ejecutar el administrador de tareas de Windows justo después de lanzar un juego, para subirle la prioridad al proceso, cada vez que queremos jugar, es bastante poco eficiente. Así que muchos creamos un bat que automatice todo el proceso, desde lanzar el ejecutable del juego, a subirle la prioridad después.

Pero si el juego vino de steam es diferente el asunto. Sobre todo si no tenemos acceso directo en el escritorio y lanzamos el juego desde clic derecho en el icono de steam en el área de notificación. ¿Cómo podríamos automatizar el que cada juego empiece con prioridad alta?

jueves, 10 de mayo de 2018

Google como motor de búsqueda por defecto en IE11 - año 2018

Como ya todos habrán notado, desde hace ya unos años, es imposible agregar motores de búsqueda a Internet Explorer 11 por el método "oficial", pues la página a la que nos lleva el botón de "Agregar" está caída.

La única forma confiable que encontré es editar el registro de Windows y agregar las urls necesarias donde corresponde. Para automizarlo se puede tener un archivo reg a mano. De ese modo sólo necesitamos hacer doble clic en el archivo reg y autorizar que se agregue la información al registro.

sábado, 31 de marzo de 2018

Gráfico de araña - Hexágono o polígono de habilidades

Este simple script explota las capacidades del objeto canvas, estándar a partir de html5, para dibujar un gráfico de araña configurable hasta cierto punto.

Para guardar el resultado como una imagen PNG sólo hay que hacer clic derecho y luego "Guardar imagen como".

lunes, 29 de enero de 2018

Samsung Galaxy J3 (2016) Verizon - ROM desbloqueado

ENLACES MUERTOS (ESTE TEXTO DESAPARECERÁ CUANDO VUELVAN A ESTAR VIVOS)

Me ocurrió recientemente que intentando revertir mi Samsung Galaxy J3 2016 de Verizon, de Android 7 a Android 6.0.1, terminé flasheando el ROM equivocado y bricando el celular. Después de mucho buscar di con el ROM correcto.

Este celular es refurbished (ya hablaremos de eso en otra entrada, para los que no estén familiarizados con el concepto). Y están a mejor precio que los nuevos. El problema, es que el ROM original de Verizon viene con bloqueo de operadora, y sólo puede ser activado con un SIM de esa telefónica. En ocasiones los vendedores incluyen en la caja el chip de la telefónica para poder realizar la primera activación, pero este vino sin el chip.

No obstante, existe un ROM que no pide código de desbloqueo para aceptar chips de otras operadoras. El celular refurbished es comercializado ya con este ROM. Lamentablemente tanto el Samsung Smart Switch como la herramienta de actualización de Verizon flashean el celular con el ROM que sí pide código de desbloqueo.

viernes, 4 de agosto de 2017

Los sectores defectuosos a la fuga

Para que se entienda lo que viene a continuación primero es necesaria una brevísima introducción a los sectores defectuosos.

¿Qué es un sector defectuoso? Forzosamente debo responder primero ¿qué es un sector?

Los dispositivos de almacenamiento, donde de forma persistente almacenamos nuestra preciosa información, deben organizar esa información de alguna manera, todavía no llegamos a los sistemas de archivo, vamos a hablar de algo que está por debajo del sistema de archivos.

En discos duros, cada sector está compuesto por la cabecera, el área de datos y el código de corrección de errores (ECC, del inglés error-correcting code). El tamaño de cada sector es fijo y está dado de fábrica. Tradicionalmente los sectores tenían 512 Bytes (y estos 512 no incluyen ni la cabecera ni el ECC, son 512 bytes para los datos de usuario).

Esto aplica a los discos de 512 de tamaño de sector. Ahora, cualquier disco fabricado hace unos años tendrá 4K de tamaño de sector

lunes, 31 de julio de 2017

Cómo surgió la idea del Simple SRT Parser

Primero que nada, decir que el formato SRT es un formato para subtítulos de video.

La idea es tener los subtítulos como texto, no mapas de bits como lo son los subtítulos estándar de los DVD de video. Pueden estar en un archivo a parte, con extensión .srt o incrustados en el contenedor como otro stream.

Las ventajas son, por ejemplo, que al ser texto podemos ejecutar búsquedas. O, como ya hace youtube, podemos usar algún traductor automático para cambiarles el idioma de manera rápida. Aunque, como creo que el lector sabe bien, las traducciones automáticas todavía no son perfectas.

Bien, ahora la anécdota de cómo tuve la idea de hacer el parser.

JH's Simple SRT Parser

Un simple procesador online de archivos SRT para facilitar tareas comunes. Ver entrada siguiente para la anécdota de cómo surgió esta idea.

lunes, 24 de octubre de 2016

El solver de la paradoja del reloj - para el juego Final Fantasy XIII-2

Hice este solver automático cuando llegué a la parte de la paradoja del reloj. Para quienes sólo quieren seguir con la historia y no dejar demasiado tiempo en este minijuego. Con esta herramienta lo pasarán en un segundo.

sábado, 2 de enero de 2016

Sysprep no se puede ejecutar en una computadora que ha sido actualizada...

El mensaje en inglés es: "sysprep cannot run on a computer that has been upgraded from a previous version..." y en español "Sysprep no se puede ejecutar en una computadora que ha sido actualizada..."

La solución es eliminar del registro de Windows el valor Upgrade cuya ruta completa es: HKLM\System\Setup\Upgrade

Actualización 24 de febrero de 2020: No deben intentar usar sysprep para cambiar un disco duro, con sistema operativo ya cargado, de placa base, como sí se podía hacer con seguridad en Windows 7. En 8, 8.1 y 10 dará problemas casi siempre. Sólo deben usar sysprep para preparar una imagen recién cargada para su generalización como es la intención del comando. El truco de usar sysprep para limpiar una imagen sin borrar los archivos y programas, y cambiar la placa base, ya no es seguro, terminarán formateando e instalando en limpio casi siempre. Por alguna razón que todavía no conozco, sobre todo en Windows 10, la generalización fallará siempre, dejándolos con un sistema corrupto o directamente no arrancable. Si lo que quieren es cambiar de placa base, y tienen Windows 10, sólo intenten hacer el traspaso sin querer generalizar, seguramente consiga iniciar con la nueva placa, y sólo tendrán que desinstalar los drivers de la vieja placa. En caso de que no quiera la nueva placa, sólo hagan instalación limpia, no es el fin del mundo (para quien tiene los recursos para respaldar los archivos, claro. Si no tienen los recursos para hacerlo bien, vayan con alguien que sí los tenga).

lunes, 1 de diciembre de 2014

sysprep, imagex y oscdimg errores no tan comunes pero no tan imposibles

El otro día necesité crear una imagen de Windows 7 con las actualizaciones integradas para poder reparar un sistema que quedó corrupto por apagarse durante una actualización (no podía, debido a esto, iniciar servicios tan básicos cono SENS o DHCP, por lo que no se conectaba a internet y muchos componentes del mismo Windows no funcionaban, incluyendo restaurar sistema y sfc).

Esta imagen la creé usando sysprep para generalizar una instalación limpia de Windows actualizada a la fecha. Luego imagex y oscdimg para capturar la imagen y generar un archivo iso que luego se puede quemar en un DVD. Este DVD fue usado después para reparar el otro sistema sin tener que formatear.

miércoles, 2 de julio de 2014

Windows 8 - Programador de tareas - ejecutar scripts al inicio del sistema

Recientemente hice algo que no se debería hacer. Instalé Windows 8 de 32 bits en un equipo con una placa base algo anticuada. Windows 8 reconocía la red y sonidos integrados, para tener un rendimiento gráfico decente tuve que poner una gráfica. Esta placa de la que hablo tiene ranura AGP x8 así que con eso les digo todo de qué generación es la placa base.

Algo curioso que le ocurre a Windows 8 con esta placa base es que si bien instala los drivers para el sonido y red integrados, ambos se comportan de una forma muy extraña. El sonido a menudo inicia mudo y para solucionarlo hay que estar cambiando entre estéreo y 5.1 constantemente. Y la red empieza sin acceso a internet (no es problema de cables) y hay que estar deshabilitando la conexión y volviéndola a habilitar. Ambos problemas los solucioné usando tarjetas PCI. Una tarjeta de sonido barata resolvió lo del audio, y una tarjeta de red barata resolvió lo que ocurre con la red integrada. Hace unos días a la tarjeta de red PCI se le dio por morirse y quedé con la red integrada hasta poder conseguir otra tarjeta de red PCI. Ahora bien, si bien anda correctamente vuelve ese pequeño problemita de que al encender el equipo hay que estar deshabilitando la conexión y volviéndola a habilitar para poder navegar por internet, ya que sin realizar este proceso no es posible usar la red. Entonces se me ocurrió la idea de usar un bat para automatizar esto de deshabilitar y habilitar. El código que el bat ejecuta es el siguiente:

netsh interface set interface name="Ethernet" admin=disabled
netsh interface set interface name="Ethernet" admin=enabled

miércoles, 22 de enero de 2014

LightDM webkit greeter en Ubuntu 13.04

Debido a un bug, que no termino de decidir si es del greeter mismo o de la forma en que se está iniciando, no se puede ejecutar correctamente en Ubuntu 13.04, si lo intentamos nos dejará sin greeter y no podremos llegar al escritorio.

Si nos encontramos en esta situación deberemos usar la terminal para iniciar sesión con interfaz de texto, y usaremos el editor vim para editar el archivo lightdm.conf y volver a poner el unity-greeter como el greeter en uso.