Sálvese quien pueda, Vista se hunde…

Actualizado el miércoles 13/08/2008 a las 23:15

Ha sido una manera un tanto brusca de empezar la semana. Después de un finde tranquilo casi sin tocar un ordenador y desconectado del mundo, me entero de que ha sido descubierto un gravísimo error de diseño en Windows Vista que hace que todos sus elementos de seguridad no sirvan de nada y que nos obliga a volver a nuestros viejos XP o migrar a Linux. ¡Oh, cielos! En Kriptópolis, Fernando Acero llegaba a decir «Por ahora, por asombroso que parezca, la única solución para protegerte de esto, es instalarte un Linux y no usar Windows Vista para abrir ningún archivo».

Ea, bonita manera de empezar el lunes.
Seguir leyendo «Sálvese quien pueda, Vista se hunde…»

A vueltas con el TableAdapterManager

Llevo algo más de una semana programando en Visual Basic 2008, ya que, de momento, no hay nada que hacer en CNC. Por como es la aplicación y porque no quiero complicarme la vida (si quisiera, no usaría VB) he tirado de TableAdapterManager en un par de ocasiones. En una, igual que comenté en la entrada anterior dedicada a este componente, dejaba que él abriera y cerrara la conexión. Sin embargo, en la segunda tenía otros accesos a la base de datos, justo antes y justo después a la operación de UpdateAll del TableAdapterManager. En este caso, me venía mejor pararle al «bicho» la conexión ya abierta y que me la dejara abierta una vez terminara. Es imposible, intenta volver a abrir la conexión y se produce el error.

Seguir leyendo «A vueltas con el TableAdapterManager»

No me gustan los panfletos

Excepto si los reparte la propia empresa que distribuye/fabrica el producto. Entonces no tengo nada en contra de ese tipo de publicidad. Ya sé que me están contando sólo los puntos buenos de sus productos, o contándome medias verdades o, directamente, mintiéndome. Incluso puedo tolerar este tipo de folletos en organismos oficiales cuando me hablan da algo que (se supone) hacen ellos, como un panfleto sobre lo bien que está la sanidad pública editado por tal o cual.

Sin embargo, encontrarme, vía Menéame, con un panfleto de propaganda barata en una página de la web de la Consejería de Educación de la Comunidad de Murcia… en fin, me da igual el tema que trate; en este caso son las ventajas de Linux; podría haber sido sobre las ventajas de Windows, o sobre la ventaja de las naranjas de cierta comarca sobre las de otra. Tanto da. No deja de ser un panfleto propagandístico y, además, malo.

Seguir leyendo «No me gustan los panfletos»

Hay días así

Tengo un problema persistente y puñetero en una aplicación que estoy haciendo en el trabajo. La aplicación es muy simple. Gestiona una base de datos de clientes (tiendas) y las visitas de nuestros comerciales. Ambas tablas, clientes y visitas, se muestran en el mismo formulario, en forma de maestro-detalle, con las visitas en un DataGridView. Vamos, de tutorial de acceso a datos.

El problema es el siguiente: si cancelo una modificación o alta de una visita, se me selecciona el último cliente. Esto se produce si cancelo la operación sin hacer nada o si un control DateTimePicker que tiene la sección de visitas tiene el foco. Si he cambiado a cualquier otro control o bien he modificado/introducido algún dato, al cancelar el alta o modificación se me queda seleccionado el cliente actual.

Ejecutando paso a paso la aplicación no se produce el fallo.

Después de un día rompiéndome la cabeza con ello, he decidido dejarlo de momento. Todavía me quedan otro par de tablas por gestionar en el formulario (productos nuestros en exposición y consumo anual) y es posible que se reproduzca el problema y me dé pistas de por qué ocurre.

Por una parte me gusta programar. Lo encuentro divertido y estimulante. Por otra, me alegro de no dedicarme profesionalmente a esto.

Impedir el cambiar de pestaña en un TabControl

Tengo la costumbre, inculcada por un profesor, de que, en una aplicación con acceso a datos, cuando se ven los datos no se pueden modificar y cuando estamos modificándolos (altas, edición) sólo podemos modificarlos (nada de abrir otra ventana, nada de cambiar de registro…). Estoy haciendo ahora una aplicacioncilla para el trabajo donde he preferido usar un único formulario que muestra los datos en distintas pestañas de un TabControl. De momento, clientes en una pestaña y las visitas de nuestros comerciales a esos clientes en otra pestaña (el resto, con calma). Así pues, y aplicando la filosofía antes mencionada (que se resumen en «el usuario es un manazas»), la idea es que el usuario no pueda cambiar de pestaña si está añadiendo o modificando un cliente o una visita.

En un principio pensé en hacerlo controlando el evento SelectedIndexChanged, pero no queda bien: se produce un molesto parpadeo cuando cambiamos de pestaña y el programa nos vuelve a mandar a la que estábamos. Así que me puse a revisar otros eventos que pudieran servir y encontré Selecting. De la referencia de Visual Studio:

«Se produce antes de que se seleccione una ficha, permitiendo que un controlador cancele el cambio de ficha.»

Efectivamente, sólo hay que indicar un e.Cancel = True para impedir el cambio de pestaña. En mi caso, si no estoy en modo «Ver Datos», impido este cambio.

En fin, por lo menos he sacado algo útil en el día de hoy. Estoy tan espeso que casi todo el día llevo arreglando destrozos que yo mismo he hecho en partes que ya funcionaban.

Spectra go home!

Resulta que el ayuntamiento de Don Benito (Badajoz), al lado de casa, como quien dice, ha firmado un acuerdo con Spectra, convirtiéndose en el primer centro Certificador de Spectra en Extremadura, en principio pensando en cursos de ofimática y tal. Tengo curiosidad por saber cómo empieza y sigue el tema, así que a vuelta de vacaciones pienso informarme mejor al respecto. A medio-largo plazo estaría bien disponer de cursos más completos para certificaciones más ambiciosas, que del Donoso y el Claret salimos unos cuantos FP de informática cada año.

En fin, a lo que iba. La noticia ha aparecido en la prensa regional (por ejemplo, el Hoy) y ha sido enviada a Menéame. Esto ha provocado, por supuesto, que todos los ardientes defensores del Software Libre, poseedores de la Verdad Absoluta hayan puesto el grito en el cielo por tamaña desvergüenza del ayuntamiento de esta ciudad que, no lo olvidemos, está enclavada en mitad de Extremadura, comunidad cuyo gobierno regional apuesta fuertemente por el uso de software libre en la administración con la distro regional de Linex (empezó la cosa en educación y parece que, poco a poco, la están metiendo en más consejerías). Según leo comentarios, hay gente que preferiría que la formación fuera en otras materias (supongo que las distintas herramientas de OpenOffice.org) y, directamente, hay quien propone que el dinero que el ayuntamiento se gaste en esto debería ir a promocionar Linux en lugar de facilitar el acceso a formación a trabajadores y desempleados.

Seguir leyendo «Spectra go home!»

Dos malditos días

Dos días completos me ha llevado dejar mi ordenador del curro listo para el trabajo, de nuevo. Llevaba tiempo ya haciendo cosas raras (tenía mucha basura cuando lo heredé, y entre el Visual Studio, el SQL Server 2005 Express, el VB 2008 Express, y algún software adicional para pruebas, pues andaba pesado y tontorrón. Así que el viernes decidí darle una limpia. Hasta el martes por la tarde no lo tuve plenamente operativo otra vez. Y no hubo problemas: instalar XP, meterle el SP3, los drivers, aplicaciones de seguridad, el Office, la máquina virtual de Java, el SQL Server, VS, VB, la copia del programa de gestión/contabilidad que tengo para cacharrear, otros programas que tengo también para cacharrear, volver a configurar la red, meterlo en dominio, configurar el Outlook, ir a imprimir, no imprime, instalar las impresoras…

Dos malditos días.

¿Cómo hay gente que gusta de formatear cada dos o tres meses? Además, a pelo, sin usar una imagen inicial del sistema con todo instalado, y en casa, donde añade reproductores, códecs, etc. al cóctel.

Ella y sus caprichos

Entiendo por qué los marinos tratan a la Mar de ella. En mi caso, la máquina de control numérico definitivamente también queda como ella. Caprichosa, voluble, desesperante…

La última ha sido con el armario de los nuevos dormitorios. Los costados tienen taladros en el canto, para poder unirlos a la base y al techo. El taladro para estos menesteres es bastante voluminoso y hay que bajarlo unos diez centímetros más allá del borde de la pieza, para que no roce.

Para que me sigáis, la bancada de la máquina mide unos tres metros de largo (eje X) por uno y pico de ancho (eje Y). El centro está en la esquina del fondo izquierda y es ahí, contra unos topes, donde acodamos las piezas que vamos a mecanizar. Los costados del armario miden dos metros de largo por algo más de 50 centímetros de ancho y los taladros horizontales se hacen en el lado corto. A la derecha no hay problemas, ya que queda algo más de un metro de bancada, pero a la izquierda toca trabajar con cotas negativas. El problema es que a la mínima nos podemos salir de los márgenes de la máquina y saltar un error de límites de ejes. Con una pieza de la cómoda, que casi cubría todo el eje Y, tuve problemas para sacar una herramienta especialmente voluminosa, ya que se salía de límites.

Hechas las presentaciones, ahora el problema: para posicionar el taladro horizontal en el lado izquierdo programo un movimiento rectilíneo rápido hasta la cota X-50 mediante la orden G00 (o sea, G00 X-50 Y-60). Lo siguiente es bajar el brazo, meter, sacar y repetir las veces necesarias. La máquina dice que no, que se sale de límites. Guay. Compruebo las coordenadas con las que usé en los costados de la mesita, la cómoda y el sinfonier. La cota de X-50 es correcta y funcionó entonces. Mal vamos.

Reviso línea a línea, teniendo especial cuidado en evitar órdenes incompatibles, de esas que ni siquiera vienen en el manual. Nada, aparentemente todo correcto. Sencillamente no quiere hacerlo. El manual no me da pistas.

Finalmente, tras día y medio de romperme la cabeza, me acuerdo de Naruto y lo intento aplicando pensamiento lateral. ¿Que no quiere ir a X-50? Pues que no vaya. Primero la mando a X100, digamos, y luego a X-50 (milímetros, claro). Vamos, que donde ponía:

G00 X-50

Ahora pone

G00 X100

G00 X-50

Y solucionado. Ya funciona. Si alguien sabe por qué, ruego me lo diga.

Aero sí, Aero no

En toda lista de supuestos trucos para agilizar Windows Vista está la de desactivar Aero. Yo no sé (aunque mis ideas tengo, carezco de pruebas) si es por mala fe o bien es que sacas a estos supuestos «expertos en trucos» de Windows XP y, si acaso, de Ubuntu y se encuentran más perdidos que Naruto en un examen teórico. Digo esto porque en Vista tenemos la misma opción para ajustar los efectos visuales con múltiples opciones desde el «todo arriba» al «todo quitado». De igual modo que en XP, si nuestro ordenador anda algo justito es una de las primeras opciones para darle un poquito más de alegría. Sin embargo, esta opción es extrañamente desconocida por los «expertos».

Seguir leyendo «Aero sí, Aero no»

Organización de la producción (II)

Seguimos con el armario…

El techo y la base del armario se sujetan a los costados mediante unos herrajes que necesitan, en los costados, de un taladro de 30mm de diámetro. Este herraje es la primera vez que se va a usar y ya están encargados.

Con los planos del armario ya hechos y los programas a medio crear, bajo a anotar qué herramienta me permite hacer ese taladro (vale, diréis algunos, una broca de 30; a mí eso me da, en principio, igual: yo necesito saber su número de herramienta y número de corrector). No hay, sólo de 25mm. Bueno, pues el taladro no podrá hacerse en la máquina de control numérico. Voy a preguntar quién va a hacer entonces el taladro.

La respuesta me deja frío: no hay broca de 30 en toda la fábrica, porque nunca ha hecho falta (los herrajes que siempre se han usado necesitaban una cazoleta de 25mm).

Respuesta del jefe: hazla de momento de 25mm.