martes, septiembre 30, 2008

calculadora rápida I



Je Je, se me ocurre cada tontería. Pero es que estoy enfermo (catarrillo otoñal) y hoy no ha pasado nada especial en el trabajo.

Bueno, el otro día mencioné lo práctico que puede ser tener perl preinstalado en Windows. Supongamos que queremos hacer una suma y pasamos bastante de andar con el ratón. Bueno, pues para eso está Perl, que como cualquier lenguaje sirve también de calculadora.

Abrimos sesión en modo comando y ejecutamos:

Perl -e "print 3+8"
11

Ah, muy práctico ¿no?

Pero puede que seamos un poco nostálgicos y no hace falta que utilicemos un lenguaje tan moderno. Cualquier lenguaje interpretado nos sirve. ¿Recordais el antiguo gwbasic?

Hay gente en Internet que reivindica que es el mejor lenguaje nunca inventado, así que ¿por qué no utilizarlo?

Primero los enlaces que están muy bien:
1-De aquí me he descargado el viejo gwbasic.
2-Aquí una guía de uso.
3-Este opina que gwbasic es lo más.

Bueno, pues no se hable más. Colocamos el gwbasic.exe en la carpeta de perl que está en el path o en c:\windows, o c:\windows\system,...

Y ya podemos hacer...
1.-teclear gwbasic para entrar en el entorno.
2.-print 3+8
 11
OK

Arriba una imagen con el entorno de trabajo de gwbasic.

Saludos.

lunes, septiembre 29, 2008

Bugs Oracle



Si, los mejores productos también tienen sus fallos y muchas veces perduran durante mucho tiempo. Un bug puede convertirse en un auténtico quebradero de cabeza para un técnico de sistemas y además suele provocar las sonrisas de los de desarrollo (una vez solucionado el problema, claro está).

Suelen decir algo así como "no decían los de Oracle que mis SQL no estaban optimizadas, pues anda que su base de datos..."

Estamos probando todas nuestras aplicaciones en una versión Oracle superior a la que queremos migrar el entorno de producción (producción es Oracle 9.2 y el entorno de pruebas 10.2.0.3). En este entorno que ahora mismo es de pruebas, hace unos días hicimos un intento de migración a la 10.2.0.4 para solucionar un bug. Al final decidimos no migrar ya que se en la documentación de Oracle pedían como prerrequisito instalar dos parches del sistema operativo (HP-UX). Los parches se han instalado hoy y la migración Oracle será mañana.

El bug era para volverse loco. 
Una sentencia SQL perfectamente válida y que funcionaba en Oracle 9.2 ya no funcionaba en el nuevo entorno que se va a poner en producción en las próximas semanas.

SELECT '09',
DECODE (GROUPING (TH), 1, '00', TH) AS TH,
DEF04 AS DEF04,
DECODE (GROUPING (SEXO), 1,'10', SEXO) AS SEXOSUM (VALOR) AS VALOR
FROM VISTA9_2_DEFS
GROUP BY cube (TH, DEF04, SEXO)
HAVING DEF04 IS NOT NULL;

No voy a poner el script CREATE OR REPLACE VIEW de la vista, pero hay que remarcar que tiene una particularidad. En la Select que construye la vista hay una llamada a una función. En principio todo está bien construido.

Esta sentencia SQL pertenece a un PL-SQL que ejecuta una aplicación. En producción (Oracle 9.2) funciona sin problemas, pero en las pruebas de migración (Oracle 10.2.0.3) devuelve el siguiente error Oracle: ORA03001: Unimplemented Feature.

Sabíamos que la sentencia era correcta porque funcionaba correctamente en versiones anteriores de Oracle. Esto era un síntoma de tratarse de un bug. En esta situación pueden ocurrir tres cosas:
1.-El bug es conocido y existe un parche, 2.-el bug es conocido pero no hay parche que valga, o 3.-nadie sabe siquiera de su existencia.

En estos casos es necesario tener al menos el soporte básico que hasta ahora se llamaba "Metalink" y este mismo mes han cambiado la denominación por "My Oracle Support”. En ese sitio web oficial hay un enlace denominado “Bug Database”.

Buscando en el bug database, encuentras que el bug se conoce y tiene solución. El código del bug  es 5847881. Se trata de un bug que se puede producir cuando en la sentencia se utilizan funciones analíticas, lecturas de vistas y funciones pl/sql en la construcción de la vista. 

If a select query includes,

1. analytical function

2. view

3. pl/sql function within view

and  the select query  results with ora-3001  unimplemented feature during  unparsing  of  the pl/sql  function  then probably  you are hitting this bug.

En la incidencia que se encuentra documentada en el "bug database", el bug lo encontró un cliente al migrar de la versión 9.2 de Oracle a la 10.2.0.1.

En nuestro caso particular nos ha aparecido en las pruebas de migración de la 9.2 a la 10.2.0.3. Nos han informado desde Oracle que el problema se ha solucionado en la versión 10.2.0.4. Por eso mañana vamos a intentar la migración de la 10.2.0.3 a la 10.2.0.4.

Saludos.


viernes, septiembre 26, 2008

Estar preparado con las herramientas adecuadas



En todas las organizaciones hay un super jefe. Normalmente habrá llegado a super jefe porque no es tonto y siempre sabe a quien recurrir para cada tipo de problema diferente.

Hay un tema que no se les escapa y es la informática. Puede que alguna vez te haya preguntado por un móvil porque tampoco ven clara la diferencia, pero esta claro que cuando van a comprar un ordenador para casa piden consejo a alguien en la organización. Sólo por eso ya es importante estar al tanto de las últimas tendencias en procesadores. Si INTEL ha adelantado a AMD o ahora toca al revés por ejemplo.

Bueno, pues también hay que estar preparado para cuando el super jefe tiene un apuro. Me ha pasado esta mañana. Ya se sabe que las cosas de palacio van despacio y en mi trabajo Office 2003 es el estándar.

Me llama y me dice:

-Me han enviado un fichero con extensión .docx y no puedo abrirlo, es muy urgente.
-Pásamelo. Doble click en ficherito. Guardar como .doc y devolver por correo.
-Gracias macho. Nos vemos.

FileFormatConverters es la utilidad mágica que te va a permitir abrir ficheros Word, Excel y PowerPoint de forma transparente en tu Office 2003. Microsoft te la da gratis.

2-Se instala.
3-Se reinicia.

Hay que estar preparado. No esperes a que ocurra.

Saludos.

jueves, septiembre 25, 2008

Mejora tu propio Sistema Operativo



Hola chic@s,

Son las 00:00. Estoy agotadísimo, pero quiero publicar algo útil hecho con un lenguaje muy divertido y fácil para iniciarse como es Perl.

Además de los muchos usos que tiene Perl quiero darle otro enfoque. Es un lenguaje ideal para darle mayor potencia a tu Windows (por supuesto también a cualquier otro S.O.).

SI, has oído bien. Desde ActiveState puedes descargarte el Perl para Window. En enlace exacto aquí.

A ver que chorrada se me ocurre…

Supongamos que trabajamos en un sindicato agrario. Tenemos una aplicación donde metemos la superficie de los cultivos medidos en perfecto sistema decimal. Por ejemplo en metros cuadrados.

Supongamos también que nuestros asociados nos dan los datos muchas veces en fanegas

Esto sería un poco engorroso para hacer a mano porque una fanega son 6459,6 metros cuadrados.  Además seguramente te has equivocado un montón de veces con la calculadora gráfica de Windows.

¿Como nos puede ayudar Perl?

Instalamos Perl en c:\Perl por ejemplo. Siel programa de instalación no lo hace, añadimos a la variable de entorno PATH la ruta c:\perl\bin.

En c:\perl\bin editamos un fichero de texto llamado fan2met.pl (fanegas to metros) que contenga el siguiente script de tres líneas:



printf "\n $ARGV[0] fanegas son ";
printf $ARGV[0] * 6459;
printf " metros\n\n";


Se invoca con el nombre del fichero y se le pasa como parámetro el total de fanegas. El resultado en la imagen del encabezado.

Saludos, y recordad, para cosas sencillas soluciones sencillas.

miércoles, septiembre 24, 2008

Una buena ayuda Oracle y algo más.



Como sabéis Oracle es el lider de las bases de datos relacionales en el mundo empresarial al menos. Tiene una política de descargas bastante amigable cuyo lema es: "free download, free to learn, unlimited evaluation".

Sin embargo cuando el entorno está en producción las condiciones cambian bastante. Las licencias y el soporte hay que renovarlos anualmente y el coste es bastante elevado.

Para los que no puedan optar al soporte oficial hay recursos como este sitio donde expertos Oracle responden tus dudas sin ánimo de lucro.  Entre otras cosas están poniendo en marcha también un Oracle wiki que puede ayudarnos en algún momento.

Pero esto no era lo que quería contar. Hoy sólo quería anunciar que Oracle ha lanzado la nueva versión de RDA (Remote Diagnostic Agent) 4.13 de Oracle. Las mejoras de cada versión de esta herramienta se encuentran documentadas en la nota Oracle 414970.1

Cuando llamas al soporte oficial (lo que hasta este mismo mes se llamaba Metalink) lo primero que necesita saber el técnico que te atiende es tu configuración. Por eso, si no disponen de ella te piden que ejecutes el RDA y les envíes el Output.

Te conviene descargarte la herramienta y ejecutarla antes de que tengas que hacer uso del soporte Oracle. Por una parte ese output constituye una buena documentación de tu instalación, y por otra parte, la resolución de un caso de soporte va a ser más rápido en el futuro.

Saludos.

Sobre la polémica decisión de la Universidad de Sevilla

Hay un blog que visitio diariamente y hoy planteaba un tema que ha generado bastante polémica en algunos sitios.

Se refiere al contrato de "Suministro de equipos portátiles a los Estudiantes de nuevo ingreso" de la Universidad de Sevilla.

El tema se publicó en el BOE del 1 de agosto, y la polémica se debe a la exigencia de que cada portátil venga provisto de una licencia de "Windows Vista Business".

Acabo de dar mi opinión en forma de comentario. Es bastante largo y con un montón de enlaces. Lo mejor es que lo reproduzca aquí por si tiene algún interés.

Blogger mikelats dijo...

Hola amig@s,
Hay una cosa que es bastante clara y creo que Javier Salinas ha dado en el clavo.

Una cosa es la buena intención que haya podido tener la Universidad de Sevilla y ello se puede ver por haber exigido drivers para Linux. 

Creo que han pensado algo así: el que quiera GNU/Linux lo va a poder instalar, y el que quiera Windows lo va a poder utilizar como viene.

Lo que pasa es que lamentablemente, al margen de lo que consideremos "bueno", hay que cumplir rigurosamente la Ley.

La Universidad de Sevilla es una Institución de Derecho Público. Lo dice el artículo 1 de sus Estatutos. Lo podéis ver 
aquí haciendo clic en Estatutos.

Según el artículo 3 de la 
Ley de Contratos del Sector Público, las Universidades Públicas se consideran "Administraciones Públicas" y por lo tanto están obligadas por dicha Ley.

El artículo 101 de la misma Ley establece las "Reglas para el establecimiento de prescripciones técnicas".

La Regla número 2 establece que "Las prescripciones técnicas deberán permitir el acceso en condiciones de igualdad de los licitadores, sin que puedan tener por efecto la creación de obstáculos injustificados a la apertura de los contratos públicos a la competencia".

La regla número 8 dice que "Salvo que lo justifique el objeto del contrato, las especificaciones técnicas no podrán mencionar una fabricación o una procedencia determinada o un procedimiento concreto, ni hacer referencia a una marca, a una patente o a un tipo, a un origen o a una producción determinados con la finalidad de favorecer o descartar ciertas empresas o ciertos productos. Tal mención o referencia se autorizará, con carácter excepcional, en el caso en que no sea posible hacer una descripción lo bastante precisa e inteligible del objeto del contrato en aplicación de los apartados 3 y 4 de este artículo y deberá ir acompañada de la mención -o equivalente-".

En el 
pliego de prescripciones técnicas se exige para cada portátil una "Licencia de Sistema Operativo Windows Vista Business".

No aparece el término "o equivalente".

No se justifica por el objeto del contrato que se encuentra en el punto número 2 del 
Pliego de Clausulas Administrativas Particulares

Además del tema de la Ley de Contratos que ya es de por si bastante grave, se incumple la "
Recomendación de la Junta Consultiva de Contratación Administrativa de 26 de mayo de 2008 sobre la aplicación de marcas comerciales en la definición de las especificaciones técnicas en los contratos de cuyo objeto es la compra o el arrendamiento de ordenadores y demás equipos informáticos".

En ese documento se pone de manifiesto como hay un procedimiento de infracción contra el Reino de España por vulnerar las normas... O sea, que llueve sobre mojado y la Universidad de Sevilla se ha columpiado.

¿Que se puede hacer?

Si echamos un vistazo en estos momentos 
no se ha Resuelto definitivamente (está en adjudicación provisional) por lo que está en fase de Recurso.

Por el artículo 37.7 de la Ley de Contratos, "Si el acto es el de adjudicación provisional, quedará en suspenso la tramitación del expediente de contratación hasta que se resuelva expresamente el recurso..."

Según el artículo 37.2 se pueden recurrir los pliegos reguladores de la licitación y los que establezcan las características de la prestación.

¿Quien puede recurrir?
Artículo 37.3: Las personas físicas y jurídicas cuyos derecho o intereses legítimos se hayan visto perjudicados o puedan resultar afectados por las decisiones objeto de recurso y, en todo caso, por los licitadores.

Por ejemplo, un usuario linux que se matricule en la universidad de Sevilla que prefiere linux preinstalado o tal vez las asociaciones de GNU/Linux.

Está claro que Apple podría Recurrir con bastantes garantías de éxito.

Bueno, ahora lo interesante. Si alguien quiere saber 
quien ha ganado que pinche aquí.


lunes, septiembre 22, 2008

Para matar procesos...pskill

He tenido un pequeño problema con el servidor Legato para backups a cinta. Se trata de un servidor Windows 2000. Si, alguno dirá que ya estamos en el 2008, pero es que las cosas estables, que funcionan y que son críticas no pueden ser migradas continuamente. No se trata sólo de actualizar el S.O.

Como el servidor accede a la librería de cintas por medio de fibra habría que instalar los drivers de las tarjetas. Hay, podría haber problemas ya que los drivers tienen que ir bien con el firmware de la propia tarjeta, y el firmware de la tarjeta con el firmware de los switches y con el firmware de la propia librería. A su vez el firmware de los switches tienen que ir en concordancia con el firmware de las controladoras de las cabinas de discos. O sea, un problema de dependencias bastante grave. Y esos servidores y las cabinas, no puede dejar funcionar ni un solo minuto.

El software Legato Networker si que está siendo actualizado con regularidad y eso sí es importante.

El caso es que a veces ocurre un problema que a más de uno le habrá ocurrido en su PC. Hay un proceso en ejecución y no puedes matarlo. Si, normalmente rebotas el servidor y te deja. Y si no es así, seguro que en el modo a prueba de fallos te lo cargas. Pero eso no debería ser así y hay servidores que no pueden reiniciarse con tanta alegría.

En otras ocasiones lo que ocurre es que necesitamos poder matar procesos desde la línea de comandos y no nos sirve la forma gráfica. Típico script de Administrador.

En el Kit de Recursos de Windows 2000 tenemos el ejecutable pskill que permite matar procesos desde la línea de comandos. 

Mark Russinovich de SysInternals nos proporciona otras herramientas relacionadas junto con el pskill. Además es un pskill mejorado que puede utilizarse sobre servidores remotos y no requiere de instalación en ese servidor remoto.

El pskill se encuentra dentro de un paquete de nombre pstools con otras herramientas muy útiles que veremos otro día.

El enlace a pstools: http://technet.microsoft.com/en-us/sysinternals/bb896683.aspx 

Saludos.


domingo, septiembre 21, 2008

Pequeño fracaso

El intento de poner en marcha Wifi se ha quedado en eso. Un triste intento. No se si va a merecer la pena seguir pegándose con ello. Yo lo que quiero es funcionar cuanto antes y si ahora hay problemas con los drivers wifi-usb ya se solucionarán más adelante. Si hay tiempo, mañana tiramos un cable al router y a ver si hay más suerte.

Para contribuir un poco a la causa, aquí dejo un enlace a una entrevista que hicieron a Richard Stallman hace poco más de un año. En ella habla de Linus Torvalds, las patentes del software, open source, software libre, Microsoft, Novell, etc.

Saludos.

viernes, septiembre 19, 2008

Y ahora a probar Kubuntu

No se que le pasaba ayer a blogger que no dejaba guardar ningún post. Ahora ya va, así que aprovecho antes de ir al tajo para explicar lo que voy a hacer con el PC muerto (ver post anterior).

Ayer me descargué Kubuntu, la versión de Ubuntu con KDE en lugar de Gnome. Tenía un viejo disco duro dando vueltas por ahí sin utilizar. Se lo puse al PC y dejé la instalación lanzada. Cuando volví sobre el PC ya había terminado y sólo quedaba que reiniciar. Hasta aquí todo fácil :-)

La primera misión es conseguir que funcione el dichoso USB-Wifi. Esta noche el primer intento.

Saludos.

miércoles, septiembre 17, 2008

Menudo día...



Ayer no podía enterder lo que ocurría :-(

Tenía un ordenador (y digo tenía porque ahora por no tener no tiene ni disco duro), decía que hasta ayer tenía un ordenador con dos particiones. En una el XP que comparto con otra persona y en la otra Ubuntu.

Resulta que me dicen, oye, que el ordenador no arranca. Voy y efectivamente. Se carga el Grub, seleccionamos Windows XP, y pantallazo negro antes de iniciarse Windows. Nada responde. Diría que en lugar de pantallazo negro es más bien gris oscuro. Bueno, avería hardware pienso, se habrá fastidiado la placa, el disco, ¡que se yo!

Se me ocurre hacer otra prueba. Pruebo a elegir Ubuntu, y arranca perfectamente. Pienso que es coincidencia. Que no puede ser. Hago un montón de intentos y Ubuntu siempre corre sin problemas y XP nunca. Bueno por lo menos el disco está bien.

Digo, bueno, se habrá fastidiado el XP, aunque el pantallazo realmente aparece antes de empezar a cargarlo. Tal vez sea algo de la partición. Meto el CD de arranque de XP y sorpresa otra vez. Pantallazo negro. Meto el ERD Commander a ver si se puede hacer algo y pantallazo negro. Pongo el CD de Ubuntu (que es live CD también) y se inicia bien.

¿Qué es lo que pasa? Me conecto a Internet y aunque cuesta encontrarlo, veo dos casos iguales con dos distribuciones diferentes. Los dos describen lo mismo. GNU/Linux arranca sin problemas y XP pantallazo negro. Por supuesto nadie da ninguna luz.

Como no tengo más live CD-s en casa cojo el de Ubuntu con la esperanza de poder solucionar el problema que parece de la partición Windows. Entro en Ubuntu desde el CD y después pantallazo negro. Ya nunca más arranca ni Windows ni Ubuntu.

Como siempre lo importante son los datos. Por eso hoy he ido a la tienda de abajo de casa. Por 23 euros he comprado una caja externa para disco duro, lo he conectado al portátil y a correr. Ya sólo quedaba un problema. Mi compañera utiliza "Mis documentos" y no puede acceder a los datos. Arrancada del ERD Commander y solucionado.

Saludos y recordad que más vale prevenir que curar.

P.D. De paso le he preguntado al de la tienda cuanto vale un PC nuevo. Poco más que 220 euros me dice. Por supuesto sin S.O. Así que lo he podido comprobar: en mi pueblo SÍ se puede comprar sin sistema operativo. Y por catálogo también. Hoy mismo he tenido que pedir urgentemente un portátil con 4 Gigas de RAM y 350 de disco duro que cuesta ... ¡600 euros! (Sin S.O.).




lunes, septiembre 15, 2008

Más sobre el cambio de nombre en HP-UX



En un post anterior
explicaba como cambiar el nombre a un servidor HP-UX.

Después ha habido un comentario de alexav8 y creo que conviene darle la razón y mejorar algo la explicación.

Tal y como explica el man, hostname sirve para "set or display name of current host system".
Si hacemos hostname nombre todo solucionado. Lo mismo podriamos hacer con uname -S nombre. Lo que ocurre es que si hacemos eso, al arrancar el sistema volverá a coger el antiguo nombre. Por eso conviene modificar el fichero /etc/rc.config.d/netconf. De esta forma el cambio es permanente.

En ese mismo fichero de configuración, puede aparecer o no una variable llamada NODENAME.
Si no existe o no tiene ningún valor asignado entonces perfecto.
Si tiene un valor asignado, también habrá que modificarlo para dejarlo igual que el HOSTNAME.

¿Que sentido tiene que haya dos variables para lo mismo?

Por una parte hay un tema de compatibilidad ya que mucho antes que hostnames había nodenames. Hace mucho tiempo, en una galaxias muy muy lejana no había redes Ethernet ni protocolos TCP/IP y el mecanismo para transferencia de ficheros y login remoto era uucp (Unix to Unix copy) utilizando conexiones series o modems. Para estas cosillas se usaba el nodename. 
Debido a ello, hay diferentes llamadas al sistema relacionadas (getuname, setuname) y (gethostname, sethostname) que se relacionan con esos dos nombres diferentes. Normalmente tendrán el mismo valor.

Para entender la relación entre los dos nombres podemos fijarnos en el script hostname que se ejecuta en el arranque.

Básicamente hace un hostname $HOSTNAME, y luego mira si hay $NODENAME.
Si hay $NODENAME, entonces hace uname -S $NODENAME.
Si no lo hay entonces uname -S $HOSTNAME.

Saludos y gracias por el comentario alexav8.

#!/sbin/sh
#
# @(#)B11.23_LR 
#
# NOTE:    This script is not configurable!  Any changes made to this
#          scipt will be overwritten when you upgrade to the next
#          release of HP-UX.
#
# WARNING: Changing this script in any way may lead to a system that
#          is unbootable.  Do not modify this script.
#

#
# Set hostname
#
PATH=/sbin:/usr/sbin:/usr/bin
export PATH

rval=0
set_return() {
x=$?
if [ $x -ne 0 ]; then
echo "EXIT CODE: $x"
rval=1
fi
}

case $1 in
start_msg)
echo "Setting hostname"
;;

start)
if [ -f /etc/rc.config ] ; then
. /etc/rc.config
else
echo "ERROR: /etc/rc.config defaults file MISSING"
fi
hostname $HOSTNAME
set_return

if [ -z "$NODENAME" ] ; then
  uname -S ${HOSTNAME%%.*}
else
  uname -S $NODENAME
fi
set_return

# JAGae29563 ( uname(1) is displaying -t as the OS name )
# Adding a condition to check OPERATING_SYSTEM, before sending it to
# setuname. previously setuname was called as "setuname -s
# $OPERATING_SYSTEM -t". If OPERATING_SYSTEM is not set, then -t
# is taken as argument to -s and OPERATING_SYSTEM is set to -t.
# The manpage of setuname clearly says, -s needs an argument.

if [ -z "$OPERATING_SYSTEM" ]; then
echo "WARNING: OPERATING_SYSTEM is not set."
echo "         using default value of HP-UX"
OPERATING_SYSTEM=HP-UX
fi
        setuname -t -s $OPERATING_SYSTEM
        set_return
;;

*)
echo "usage: $0 {start}"
;;
esac

exit $rval

sábado, septiembre 13, 2008

Mejora tu blog

He dedicado unos minutos a mejorar un poquito este blog tan mediocre.

Tenía ganas de quitar la forma tan fea que tenía de mostrar las etiquetas.
Si quieres hacer una nube de etiquetas (tag cloud) te recomiendo este post que explica muy bien como hacerlo fácilmente.

Saludos.

jueves, septiembre 11, 2008

La historia de Mel



La historia de Mel es una bonita historia que forma parte de la cultura de Internet. Otros dicen cultura hacker de Internet. Habla en primera persona sobre un programador de la época en la que ni siquiera había compiladores. Hablamos de antes del nacimiento del lenguaje ensamblador y del FORTRAN. Cuando programar era un trabajo duro que requería de gran dedicación e ingenio.

Hay multitud de referencias en Internet. En esta nos explican quien fue el creador (lo podéis ver en la fotografía), cuando y como se difundió la historia, y también podemos leer la versión más extendida (en inglés).

También hay quien la ha traducido con mayor o menor fortuna. Si queremos leerlo en castellano aquí tenemos una traducción.

En este otro sitio situan la historia en 1980 y aunque mantienen el mismo autor el cuento ha sido reducido: http://mohamed-mohab.blogspot.com/2006/05/hackers-folklore-story-of-mel.html

Aquí esta la web del autor original, aunque no menciona para nada la historia de Mel: autor. Por cierto, parece que es astrónomo.

En esta página además de la historia hay una tira de Dilbert: http://www.wizzy.com/andyr/Mel.html

Bueno, ¿que os parece la historia? ¿Bonita no?