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.
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.
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.
Desde el 21/10/2009 el nuevo ‘release’ de CentOS -CentOS 5.4- está disponible.
A ver si tengo un rato y me pongo a ello. La verdad es que las últimas actualizaciones de kernel han hecho que haya tenido que recompilar e instalar cada vez el driver NVIDIA para Linux, que me permite aceleración gráfica hw, compiz etc, etc… Veremos qué pasa esta vez.
Saludos.
Carlos.
La primera de las consecuencias visibles de la adquisición de Sun por Oracle: Sun ORACLE DATABASE MACHINE.
Oracle ha reconstruído su HP ORACLE DATABASE MACHINE con tecnología (léase servidores) Sun: pasa de los servidores Exadata (con los HP Proliant) a los Exadata II
Hay varias cosas sorprendentes en este movimiento que le dejan a uno un tanto perplejo:
Y todo rebozado con gran cantidad de palabrejas, eslóganes, y demás parafernalia publicitaria. Y es que Larry es siempre Larry.
Saludos.
Carlos.
Uno de los conceptos más importantes en Teradata es el ‘skew factor‘ (que podríamos traducir algo así como ‘factor de sesgo’) en la distribución de los datos de las tablas entre los AMP’s.
Y es tan importante porque está directamente ligado al concepto de paralelismo y al funcionamiento de Teradata. Como hemos dicho otras veces, el paralelismo tiene sus -casi siempre- cosas buenas (muchos procesos trabajando a la vez) y sus -a veces- cosas malas (la tarea tarda tanto como el último de los procesos…). Es aquí donde entra el ‘skew factor‘ en la distribución de datos entre los AMP’s: si todos los AMP’s tienen un volumen de datos similar la tarea se realizará en paralelo de la forma más eficiente. Si por el contrario hay unos AMP’s que tienen poco volumen de datos y otros que tienen mucho volumen, estos últimos tendrán que hacer casi todo el trabajo y la tarea no terminará hasta que no acabe el último de ellos (aquí se abre un universo de metáforas con el mundo laboral y tal…)
Por ello hay quien define el ‘skew factor‘ como la función inversa de la ‘Parallel Efficiency‘ (eficiencia paralela): cuanto menor sea el ‘skew factor‘ mayor será la ‘Parallel Efficiency‘.
La fórmula para calcular el ‘skew factor‘ es:
100-((Media de CurrentPerm/Máximo de CurrentPerm) X 100).
Por regla general se considera aceptable un ‘skew factor‘ menor o igual que 10, mientras que si el ‘skew factor‘ es superior a 10 se recomienda revisar la definición del ‘primary index‘ para que el algoritmo ‘hash‘ distribuya los datos de la tabla de una forma más equitativa entre los AMP’s.
Otra cosa a tener en cuenta es que si la tabla es muy pequeña el ‘skew factor‘ deja de ser significativo.
BTEQ -- Enter your DBC/SQL request or BTEQ command:
SELECT TABLENAME,
SUM(CURRENTPERM) CURRENTPERM,
SUM(PEAKPERM) PEAKPERM,
CAST((100-(AVG(CURRENTPERM)/MAX(CURRENTPERM)*100)) AS DECIMAL(5,2))
"SKEWFACTOR(%)"
FROM DBC.TABLESIZE
WHERE DATABASENAME = 'MY_DB'
GROUP BY TABLENAME
ORDER BY TABLENAME
;
*** Query completed. 24 rows found. 4 columns returned.
*** Total elapsed time was 1 second.
TableName CURRENTPERM PEAKPERM SKEWFACTOR(%)
---------- ----------- ----------- -------------
TABLA01 3,911,680 3,911,680 6.60
TABLA02 61,952 61,952 24.38
TABLA03 467,456 467,456 10.49
TABLA04 3,987,968 3,987,968 7.49
TABLA05 1,980,928 1,980,928 7.00
TABLA06 38,400 38,400 6.25
TABLA07 913,920 913,920 7.03
TABLA08 21,504 21,504 30.00
TABLA09 76,800 76,800 31.82
TABLA10 1,320,448 1,320,448 7.23
TABLA11 557,056 557,056 12.26
TABLA12 748,032 748,032 7.53
TABLA13 1,263,616 1,263,616 7.22
TABLA14 128,400,896 128,400,896 8.71
TABLA15 121,289,728 121,289,728 13.52
TABLA16 23,704,064 23,704,064 7.52
TABLA17 67,391,488 67,391,488 8.35
TABLA18 34,304 34,304 16.25
TABLA19 748,032 748,032 9.81
TABLA20 76,288 76,288 17.22
TABLA21 72,192 72,192 21.67
TABLA22 55,808 55,808 9.17
TABLA23 35,840 35,840 12.50
TABLA24 860,672 860,672 4.49
BTEQ -- Enter your DBC/SQL request or BTEQ command:
Saludos.
Carlos.
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.
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).

Saludos.
Carlos.
Recientemente me ha llegado a mi ‘mail’ una duda sobre el mismo error (ORA-01031: privilegios insuficientes) al crear una vista materializada en otro esquema.
Tras remitirle aquí, el remitente me decía que persistía el error. Al ver el DDL de la creación de la vista materializada caí en la cuenta de que el problema era otro:era una vista materializada ‘REFRESH ON COMMIT’. Pues bien, para este tipo de vistas se necesita un privilegio específico:
ON COMMIT REFRESH create a refresh-on-commit materialized view on any table in the database
Y lo vemos aquí:
CARLOS@XE.localhost> CREATE MATERIALIZED VIEW MY_MV
2 NOCACHE
3 LOGGING
4 NOPARALLEL
5 BUILD IMMEDIATE
6 REFRESH ON COMMIT
7 AS
8 SELECT * FROM OTHERUSER.THE_TABLE;
SELECT * FROM OTHERUSER.THE_TABLE
*
ERROR en línea 8:
ORA-01031: privilegios insuficientes
CARLOS@XE.localhost> CREATE MATERIALIZED VIEW MY_MV
2 NOCACHE
3 LOGGING
4 NOPARALLEL
5 BUILD IMMEDIATE
6 -- REFRESH ON COMMIT
7 AS
8 SELECT * FROM OTHERUSER.THE_TABLE;
Vista materializada creada.
CARLOS@XE.localhost> DROP MATERIALIZED VIEW MY_MV;
Vista materializada borrada.
CARLOS@XE.localhost> GRANT ON COMMIT REFRESH TO CARLOS;
Concesión terminada correctamente.
CARLOS@XE.localhost> CREATE MATERIALIZED VIEW MY_MV
2 NOCACHE
3 LOGGING
4 NOPARALLEL
5 BUILD IMMEDIATE
6 REFRESH ON COMMIT
7 AS
8 SELECT * FROM OTHERUSER.THE_TABLE;
Vista materializada creada.
CARLOS@XE.localhost>
Saludos.
Carlos.
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
Saludos.
Carlos.
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.