(Just Like) Starting Over

20 Diciembre 2009

Como los que lean esto a menudo habrán sospechado, esta entrada no tiene nada que ver con la Canción de Lennon.

Ya había dicho que el equipo familiar con el Windows XP llevaba una larga temporada dando problemas y más problemas. Bastante a menudo, el equipo se colgaba y la luz del disco duro se quedaba fija.

Bien, la historia de este equipo comenzó hace tres años, cuando lo compré -a muy buen precio- en un periodo en el que creí que iba a tener un año sabático… que luego no llegó ni a un mes. Iba a ser un laboratorio Linux, y lo fue. Pero luego pasó a ser el PC familiar cuando instalé el XP. Su configuración original traía un disco duro Seagate de 80 GB. Con el tiempo, compré otro, también Seagate, de 300 GB. También amplié la memoria y cambié la tarjeta gráfica, que tantos problemas me dio. Pero el caso es que el viejo disco de 80 GB quedó como disco principal.

Por otra parte, llevaba mucho tiempo diciéndome a mí mismo “Hay que hacer un ‘backup’”. Teniendo como tenía instalado el Paragon Drive Backup era cosa de nada, pero lo he ido dejando y dejando…  luego pasa lo que pasa: que Murphy está ahí esperando su oportunidad.

El caso es que el jueves pasado dijo que no arrancaba más. La BIOS a veces veía el disco, a veces no. Y cuando lo veia, no arrancaba. He actualizado la versión de la BIOS dos veces, por si la cosa mejoraba. Pero nasti de plasti, que dicen -decimos- los castizos.

Probé todo: la consola de recuperación, FIXMBR, FIXBOOT, CHKDSK /R… pero no hubo forma. El disco estaba muerto y bien muerto. Así que recurrí -como ya hiciera en el pasado- al liveCD de Ubuntu y recuperé todo el disco secundario en un disco duro USB. Pero el principal, el C:, el viejo Seagate de 80 GB, ni se veía.

La opción -aparte de lamentarse, una vez más, por no haber hecho ‘backups’- pasó por reinstalar todo de nuevo. Pero en el disco de 300 GB, que pasó a ser el principal, y dejar el viejo como secundario, con todas las prevenciones del mundo.

La secuencia incluyó volver a particionar y formatear ambos discos y reinstalar todo el software, incluyendo el Sistema Operativo (XP) y todos los service packs y parches, así como el Office con los suyos. Más un montón de aplicaciones de las que no puedo prescindir. Dicho sea de paso, al equipo le ha venido bien adelgazar en ’software’, porque tenía instaladas aplicaciones de las que ni yo mismo sabía que estaban instaladas.

Después de casi tres días, tengo el equipo funcionando, y mucho más rápido que antes (por el adelgazamiento).

Lo malo es que con el disco duro se fueron todos los juegos de coches con los que juego con el Bicho Nº 1, y que habrá que ir reinstalando poco a poco. Eso sí: todos los logros y avances adquiridos se han ido al garete: hay que empezar de cero en todos y cada uno de ellos.

Dos cosas más:

1.- Esto lo estoy escribiendo en un nuevo equipo que compré el verano pasado… ¡con Windows Vista! y que está llamado a ser el futuro PC familiar, aunque de momento lo uso para familiarizarme con el Vista (cosa bastante ilógica, con el Windows 7 ya en la calle).

2.- Aunque después de particionar y formatear el disco de 80 GB el XP veía perfectamente la nueva unidad, acabo de echar un vistazo y no aparece la unidad ‘D:’ ‘Datos’.

¿Alguien conoce algún punto limpio en Madrid?

Saludos.

Carlos.


¿Dónde está la tabla DUAL en Teradata?

10 Diciembre 2009

Todo aquél que llega a Teradata procedente de entornos Oracle pregunta lo mismo ‘¿Aquí no hay tabla DUAL?’. La respuesta suele ser ‘No. No hace falta.’.

En efecto: en Teradata un ‘SELECT’ no tiene por qué tener un ‘FROM’:

 BTEQ -- Enter your DBC/SQL request or BTEQ command:
SELECT DATE;

 *** Query completed. One row found. One column returned.
 *** Total elapsed time was 1 second.

    Date
--------
09/12/10

 BTEQ -- Enter your DBC/SQL request or BTEQ command:
SELECT 1 DUMMY;

 *** Query completed. One row found. One column returned.
 *** Total elapsed time was 1 second.

DUMMY
-----
    1

Esto al principio le deja a uno un poco ‘a cuadros’, acostumbrado a años y años de ‘SELECT SYSDATE FROM DUAL’ (‘OK. Me adapto y ya está.’).

Entonces uno se acuerda de esto:

SQL*Plus: Release 10.2.0.1.0 - Production on Jue Dic 10 20:21:08 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Introduzca el nombre de usuario: carlos@XE.localhost
Introduzca la contraseña:

Conectado a:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

CARLOS@XE.localhost> SELECT *
  2    FROM ( SELECT 1 FROM DUAL
  3           UNION ALL
  4           SELECT 2 FROM DUAL
  5           UNION ALL
  6           SELECT 3 FROM DUAL );

         1
----------
         1
         2
         3

… e intenta hacer algo como esto:

 BTEQ -- Enter your DBC/SQL request or BTEQ command:
SELECT *
  FROM ( SELECT 1
         UNION ALL
         SELECT 2
         UNION ALL
         SELECT 3 );

 *** Failure 3707 Syntax error, expected something like a name or a Unicode
 delimited identifier or an 'UDFCALLNAME' keyword between ')' and ';'.
                Statement# 1, Info =108
 *** Total elapsed time was 1 second.

‘¡Ah!, es que en Terdata todas las SUBSELECTs deben llevar alias’:

SELECT *
  FROM ( SELECT 1
         UNION ALL
         SELECT 2
         UNION ALL
         SELECT 3 ) a;

SELECT *
$
 *** Failure 3706 Syntax error: All expressions in a derived table must
have an explicit name.
                Statement# 1, Info =0
 *** Total elapsed time was 1 second.

‘¡Ah!, es que en Terdata todas las columnas deben llevar nombre’.

Pero entonces ocurre lo siguiente:

 BTEQ -- Enter your DBC/SQL request or BTEQ command:
SELECT *
  FROM ( SELECT 1 DUMMY
         UNION ALL
         SELECT 2 DUMMY
         UNION ALL
         SELECT 3 DUMMY
       ) a
;

 *** Failure 3888 A SELECT for a UNION,INTERSECT or MINUS must
reference a table.
                Statement# 1, Info =0
 *** Total elapsed time was 1 second.

¿Pero, no habíamos quedado en que en Teradata no hacía falta un ‘FROM’? Ya. Pero parece que en las UNION, INTERSECT o MINUS sí.

¿Entonces, qué hacemos sin nuestra tabla DUAL?

Aquí hay gente que decide recurrir a cualquier tabla de utilidad:

 BTEQ -- Enter your DBC/SQL request or BTEQ command:
SELECT *
  FROM ( SELECT 1 DUMMY
           FROM SYS_CALENDAR.CALENDAR
          WHERE DAY_OF_CALENDAR = 1
         UNION ALL
         SELECT 2 DUMMY
           FROM SYS_CALENDAR.CALENDAR
          WHERE DAY_OF_CALENDAR = 1
         UNION ALL
         SELECT 3 DUMMY
           FROM SYS_CALENDAR.CALENDAR
          WHERE DAY_OF_CALENDAR = 1
       ) a;

 *** Query completed. 3 rows found. One column returned.
 *** Total elapsed time was 1 second.

DUMMY
-----
    1
    2
    3

Pero, en el fondo, no es más que un rodeo (‘workaround‘, lo llaman los anglosajones) para soslayar el problema de la falta de tabla DUAL.

Otra solución es crearnos nuestra propia tabla DUAL, con una única columna ‘DUMMY’ y una única fila ‘X’ -a imagen y semejanza de la añorada DUAL de Oracle-. Otro rodeo.

Pero lo que queremos no es rodear el problema. Queremos resolverlo. ¿Cómo crear tablas sobre la marcha con ‘UNION’ en Teradata?

Teniendo en cuenta lo que hemos dicho arriba sobre la obligatorieded de alias y nombres para tablas y columnas, la solución es más fácil de lo que parece:

 BTEQ -- Enter your DBC/SQL request or BTEQ command:
SELECT *
  FROM ( SELECT 1 COL FROM ( SELECT 'X' DUMMY ) a
         UNION ALL
         SELECT 2 FROM ( SELECT 'X' DUMMY ) b
         UNION ALL
         SELECT 3 FROM ( SELECT 'X' DUMMY ) c
       ) d
;

 *** Query completed. 3 rows found. One column returned.
 *** Total elapsed time was 1 second.

 COL
----
   1
   2
   3

Una cosa más para los nostálgicos: no utilicéis ‘DUAL’ como alias de tabla, ya que en TERADATA DUAL es una palabra reservada:

SELECT *
  FROM ( SELECT 1 COL FROM ( SELECT 'X' DUMMY ) DUAL
         UNION ALL
         SELECT 2 FROM ( SELECT 'X' DUMMY ) DUAL
         UNION ALL
         SELECT 3 FROM ( SELECT 'X' DUMMY ) DUAL
       ) d
;

         UNION ALL
$
 *** Failure 3707 Syntax error, expected something like a name or a Unicode delimited identifier
 or an 'UDFCALLNAME' keyword between ')' and the 'DUAL' keyword.
                Statement# 1, Info =63
 *** Total elapsed time was 1 second.

Cualquier otra valdrá:

 BTEQ -- Enter your DBC/SQL request or BTEQ command:
SELECT *
  FROM ( SELECT 1 COL FROM ( SELECT 'X' DUMMY ) MY_DUAL
         UNION ALL
         SELECT 2 FROM ( SELECT 'X' DUMMY ) MY_DUAL
         UNION ALL
         SELECT 3 FROM ( SELECT 'X' DUMMY ) MY_DUAL
       ) d
;

 *** Query completed. 3 rows found. One column returned.
 *** Total elapsed time was 1 second.

 COL
----
   1
   2
   3

Saludos.

Carlos.


VMWare Player 3.0

4 Diciembre 2009

VMWare acaba de sacar VMWare Player 3.0. Y no es sólo otra versión del VMWare Player de toda la vida, que sólo podía correr máquinas virtuales, no crearlas (para eso se necesitaba la versión Workstation -de pago-, la versión Server, etc…)

Pues sí: la nueva versión Player 3.0 sigue siendo gratis y además permite crear máquinas virtuales. ¿Y entonces, qué pasa con la versión ‘Workstation’? Pues lo mismo que pasaba con relación al VMWare Server: Workstation te permite funcionalidades avanzadas que el nuevo Player no presenta: (Snapshots, Clones, Virtual Rights). No obstante, para un usuario medio lo que ofrece el nuevo Player parece más que suficiente.

Editado más tarde: Una de las cosas que no aparecen en esta versión es la herramienta de configuración de redes virtuales. Tras jugar un rato, he  echado de menos todas las posibilidades de configuración de las mismas de la versión  ‘Workstation’.

Con esto VMWare cierra el círculo de productos gratuítos comenzado con el VMWare Server (muy bueno el 1,5, no tanto el 2.0…) y el ESXi server. Este producto orientado a ‘desktops’ (o ‘workstations’, si se quiere) es una respuesta a la gran cantidad de productos de virtualización gratuítos que han aparecido recientemente, con VirtualBox a la cabeza.

Por otra parte, tambien merece la pena echarle un vistazo al VMWare vCenter Converter, heredero de los VMware p2v y VMware Converter, que son herramientas “p2v” (physical to virtual) que convierten máquinas físicas en máquinas virtuales.

Finalmente, VMWare tiene otro producto en el que ha puesto muchas esperanzas: el VMWare View. Este producto -no es gratis- quiere introducir la virtualización de ‘desktops’: los ‘desktops’ son virtualizados, almacenados y distribuidos en un servidor y se corren en las máquinas físicas como máquinas virtuales. Tu llegas a la oficina, te sientas en cualquier equipo, te conectas al servidor y te bajas tu ‘desktop’ con todas tus aplicaciones, configuraciones, etc… es como tener un portátil virtual, pero sin el soporte físico (el propio portátil).

En fin: nuevos juguetes para jugar estas navidades…

Saludos.

Carlos.


El Ratoncito Pérez.

9 Noviembre 2009

Hoy se le ha caído su primer diente al Bicho Nº1. Está todo emocionado porque esta noche vendrá el Ratoncito Pérez, se llevará su diente de debajo de la almohada y dejará una moneda a cambio.

Estos críos…

Saludos.

Carlos.


Revo Uninstaller

30 Octubre 2009

Recientemente, a consecuencia de la imposibilidad de desinstalar la Sun VirtualBox 2.0 para así poder instalar la última versión Sun VirtualBox 3.0.10 mediante las desinstalaciones Windows ‘estándar’ (el programa de desinstalación era incapaz y la actualización 2.0 -> 3.0 era imposible), he descubierto una pequeña y útil aplicación llamada Revo Uninstaller que es capaz de lidiar con los problemas de las desinstalaciones, generalmente consecuencia de errores en el ‘registry‘ y de entradas y ficheros desaparecidos.

Tras bajarme la versión ‘portable’, lo ejecuté y lo que parecía una ‘imposible desinstalación’ se convirtió en un fácil proceso, que además limpió el ‘registry‘ y los archivos ‘basura’ que quedaban por allí.

Saludos.

Carlos.


Business as usual…

15 Septiembre 2009

Aquí estamos otra vez, después de unas semanas de (merecidas) vacaciones. Tiempo para descansar, leer, dormir, nadar, correr… y sin tocar un ordernador.

Lecturas: La ‘Autobiografía’ sin censurar de Charles Darwin, ‘Cinco Semanas En Globo’ de Julio Verne y ‘Asesinos Sin Rostro’ de Henning Mankell (Wallander le da más de mil vueltas a Salander).

Coche: Fiat Punto. Tranquilo, familiar, espartano.

He aquí unas cuantas reflexiones que se me han ocurrido mientras mi mente divagaba bajo el sol entre cervecita y cervecita:

·La Gran Clavada: El precio del alquiler del mismo coche, por el mismo tiempo, en las mismas fechas entre 2008 y 2009 ha subido como un 120%. Y luego dicen que el IPC está bajando. Según parece, la escasez de créditos de los bancos hacen que las compañías no tengan liquidez para comprar coches con los que renovar las flotas. Esto disminuye la oferta para una (casi) igual demanda, con lo que los precios suben desmesuradamente (a esto creo que técnicamente se le llama ‘economía de mercado’. A mí me parece simplemente un atraco en el que alguien está haciendo su agosto -nunca mejor dicho-)

·La Gran Cagada: Encontré una oferta muy buena para unas New Balance 767. Llevado por la emoción del momento, me las probé demasiado deprisa con el resultado de que las compré medio número pequeñas. He intentado correr con ellas para ver si podía ‘domarlas’, pero me hacen daño en la parte externa de los dedos gordos de los pies.

·La Gran Putada: El entusiasmo de las vacaciones me llevó a hacer burradas: tirar niños a la piscina, subirlos a los hombros, hacer el bestia… con el resultado de una lumbalgia que traté primero con pomada de ibuprofeno -sin resultado- y con calmantes, antiinflamatorios y relajantes musculares después. Total: cuatro o cinco días jodido de verdad.

·La Gran Guarrada: Los fumadores deben de pensar que la playa es una especie de cenicero gigante en el que apagar y dejar las colillas de sus cigarrillos. Es asqueroso intentar hacer un castillo de arena con el Bicho nº1 y el Bicho nº2 y encontrar colillas y más colillas. ¿Acaso hacen lo mismo en sus casas? ¿Dejan tiradas las colillas por el suelo?

·La Gran ‘Bacalada’: Mi Timex Ironman Triathlon 100-Lap dice que aguanta 100 metros de profundidad. Pues después de un chapuzón en la playa apareció una burbuja bajo el cristal principal, que se convirtió en una pequeña multitud de gotitas de agua. Más tarde, dejaron de funcionar varias barras de los dígitos de la pantalla haciendo casi imposible leer la hora. Tampoco funciona la iluminación ‘indiglo’. Quizá abriéndolo y limpiándolo vuelva a funcionar correctamente, pero eso de ‘WR 100 M’ es una ‘bacalá’ de mucho cuidado.

·La Gran Gozada: Cómo se lo han pasado el Bicho nº1 y el Bicho nº2. La felicidad que ves en los niños felices es la felicidad más absoluta.

¡Ah! Y mientras tanto Oracle ha sacado la versión 11gR2 (‘R2′: esa sí la instalaría yo).

Saludos.

Carlos.


UltraEdit 32

20 Agosto 2009

Allá por el año 1999 -o quizá el 2000- un compañero me habló de un magnífico editor de texto para programadores llamado UltraEdit. Yo llevaba mucho, pero que mucho tiempo programando con el Norton Editor y no había oído hablar del editor en cuestión, con lo que al principio lo miraba con escepticismo. Siempre he sido muy crítico con las herramientas ‘GUI’ que tienen multitud de botoncitos, ventanitas, colores, opciones… (soy acérrimo del sql*plus en Oracle y del bteq en Teradata) pero tras un primer vistazo, me di cuenta de que el diseño e interfaz era lo bastante sobrio para que pasase mis ‘filtros anti GUI’.

Así pues me bajé una versión ‘trial‘ (creo que de 30 días) y poco a poco, y casi sin darme cuenta, me fui haciendo adicto a él. Total, que el ‘trial‘ expiró y me compré la licencia (la versión del momento era la 7.20). Desde entonces nos hemos hecho inseparables y en todos los trabajos y en todos los ordenadores con los que he trabajado (si Windows) he instalado este editor con el que me siento como en casa (prácticamente conozco de memoria todos los ‘shortcuts‘ de teclado).

Su simplicidad, su efectividad, su modo de edición en columna, la edición hexadecimal…

Tiene ciertas carencias: mi versión no soporta conexión SSH/SFTP (aunque se puede hacer a través de FileZilla) y a veces tiene problemas con el UNICODE y los BOM, pero no lo cambio por nada.

A través de los años he probado otros editores, y me han ofrecido versiones más modernas (y todo hay que decirlo, casi todas piratas) del UltraEdit, con nuevas ‘features‘ y más ‘buzzs and bells‘, pero yo sigo fiel a mi UltraEdit versión 7.20, compañera en mil batallas, con la que he escrito miles y miles de líneas de código, ya sea SQL, shell scripts, HTML, java, C/C++, PL/SQL, Visual Basic scripts… y con la que espero escribir aun muchas líneas más.

Porque no necesito otra cosa.

(Dedicado a La Parte Contraria).

UltraEdit 7.20

Saludos.

Carlos.


El Bicho y el Gran Pez

31 Julio 2009

La foto no es un montaje. La figura pequeña de la parte inferior izquierda de la imagen es el Bicho Nº 1. La grande no necesita explicación: es un ¿mero? gigantesco. Observad y comparad los tamaños de los dos ‘bichos’:

El Bicho y el Gran Pez

El Bicho y el Gran Pez

Saludos.

Carlos.


Alone again

17 Julio 2009

Esta entrada no es acerca de la famosa canción de Gilbert O’Sullivan, sino del hecho de que otra vez ando solo por casa.

La Parte Contraria y El Bicho Nº 1 están a 8567 kilómetros (eso es lo que dice el magnífico Wolfram|Alfa); mientras que El Bicho Nº 2 está (sólo) a 65.

Saludos.

Carlos.


De ‘hardware’, ’software’, ‘drivers’ e incompatibilidades.

16 Junio 2009

Llevábamos (el Bicho nº1 y yo) una temporada con problemas con los gráficos: los juegos se colgaban, algunos vídeos también, ‘reboots‘ sin ton ni son cuando había gran ‘actividad gráfica’… y la sospechosa era la tarjeta gráfica: una ATI X550XE de 128 Mb de esas que toman memoria RAM del sistema si la necesitan (de hecho, el Windows decía que tenía 512Mb).

Así que un buen día me acerqué a la tienda y me pillé una ATI Radeon HD 4670 512 DDR3 pensando que todo sería coser y cantar. Con la tarjeta bajo el brazo, me fui para casa y la instalé en la máquina. Me dispuse a instalar los ‘drivers‘ que venían en el CD de la caja. Todo OK.

La cosa se empezó a poner chunga cuando tras la instalación hice el ‘reboot‘ correspondiente y el Windows XP Service Pack 3 se quedaba congelado en el arranque, con los tres cuadraditos azules parados dentro del ‘ascensor’ horizontal de la pantalla de inicio. Siguiente paso, el lógico: arrancar a modo de fallos y bajarme los últimos ‘drivers’ de www.ati.com. Desinstalar los viejos (borrando todo rastro de cualquier cosa que diga “ATI” en el disco duro) e instalar estos últimos. Resultado: exactamente el mismo. Los tres cuadraditos azules quietos como muertos.

Otra vez arranque a prueba de fallos, desinstalación de ‘drivers‘ y sólo ‘modo VGA’ con los gráficos arrastrándose por la pantalla.

Nota al servicio de soporte de ATI que me contesta que… ¡haga una desinstalación e instale los últimos drivers de la web!. Cuando les contesto que eso es justo lo que acabo de hacer no vuelvo a tener noticias de ellos.

Leo por ahí que debería desinstalar (no ‘pararlo’, desinstalarlo) el antivirus. No me lo creo mucho, pero pruebo por si acaso. Como era de esperar: nada de nada.

A todo esto empiezo a pensar que puede ser la fuente de alimentación, ya que tengo dos discos duros SATA, un lector DVD, un grabador DVD y un grabador CD y la tarjeta de marras recomienda 500W en sus instrucciones. Vuelta a la tienda y fuente de alimentación nueva de 600W (y unos cuantos €).

La instalación de la nueva fuente me lleva un ratillo, pero confío en que una nueva instalacion de los ‘drivers‘ va a eliminar todos los problemas… Iluso de mí. Todo sigue exactamente igual.

Así que prosigue la busca y captura de información por internet. Miro sobre todo en los foros ATI de los ‘jugones’. Empiezo a tener noticias de una -al parecer muy conocida- incompatibilidad entre los ‘drivers‘ de ATI y el Service Pack 3 de XP. Por lo visto es ‘vox populi’, pero ni Microsoft ni ATI (ni por supuesto su servicio técnico) dicen una palabra.

El caso es que ya he preparado un ‘backup’ de mis discos duros y me planteo el reformateo total y la instalación del Windows ‘from scratch‘.

Me doy una última oportunidad: desinstalar el Service Pack 3 y ver qué pasa. Pero claro, la cosa no iba a ser tan fácil: te vas a ‘Agregar y quitar programas’ y marcas ‘Mostrar actualizaciones’… para ver que el Service Pack 3 no tiene el botón ‘Quitar’. Afortunadamente encuentro un visor/desinstalador de Updates de Windows: WinUpdatesList v1.23 (http://www.nirsoft.net) y con él consigo desinstalar el dichoso SP3. (Aunque inmediatamente después hay que volver a instalar muchas actualizaciones con el ‘Windows Update‘).

La prueba definitiva: instalación -una vez más- de los ‘drivers‘ y… ¡FUNCIONA! El Windows ve la tarjeta, tengo aceleración hardware y toda la pesca… ¡Increíble!

Así que, aviso para navegantes: los ‘drivers’ de ATI SON INCOMPATIBLES CON EL SERVICE PACK 3 de Windows XP.

Saludos.

Carlos.