Archivos Mensuales: julio 2010

[La nota del día] Lenguaje de señas para bebés

Es interesante leer algunos artículos donde se apoyan movimientos por una completa reforma educacional, buscando que a los recien nacidos a partir incluso del segundo mes de nacido se le comience a enseñar lenguaje de señas; algo que nunca cuajó de los experimentos con simios en los años 80 (enseñarle señas a los chimpancés) es la idea de que por encima de las palabras, todos los primates entendemos lenguaje de señas desde casi el nacimiento.

Ahora, lo que no estaba bien entendido, es la capacidad del lenguaje de señas de ayudar al desarrollo de ambos hemisferios del cerebro (el izquierdo lógico y el derecho creativo), lo cual ayuda enormemente al desarrollo intelectual del bebé.

Antes de los 8 meses, es una época donde el bebé no puede ni siquiera fisiológicamente comunicarse verbalmente, pero puede entender de 6 a 8 señas distintas, lo ideal de esto es la comprensión de que el llanto es una forma de expresar frustración por su imposibilidad de comunicarse y de que sean satisfechas sus necesidades; si un bebé de manera temprana puede comunicar que tiene hambre (según muestra el estudio) o antes de dormir indicar que desea ir al baño o incluso dormir con la luz encendida, entonces sus llantos se reducirán notablemente.

Esta es una forma completamente distinta de ver el lenguaje de señas, como una forma real de comunicación, universal y que además, ayuda a fomentar el desarrollo temprano de la inteligencia y ambos lados del cerebro.

Es un futuro donde el lenguaje de señas podría hacerse universal y donde las personas ya no serían tan ajenas …

Activando Wacom Tablet PC en Trisquel/Ubuntu

Como lo dije en un artículo anterior, he cambiado de Debian Squeeze a GNU/Linux Trisquel y han cambiado algunas cosas como se configura todo (se nota que es hijo de Ubuntu, nieto de Debian), entre ellas como configurar correctamente la Wacom Tablet PC.

Habilitando opciones de la Wacom en Ubuntu y GNU/Linux Trisquel

Aunque los dispositivos wacom son detectados y habilitados en Ubuntu y Trisquel, no todas las opciones son habilitadas, sin embargo, la receta tradicional “Debian” de colocar un archivo xorg.conf ya no es útil.

Esto es debido a que en nuevas versiones de Debian (squeeze), Ubuntu y derivados (ej. Trisquel) se recomienda que se utilice el directorio /usr/lib/X11 para todo lo que tenga que ver con configuración del sistema X.
Dentro, encontraremos un directorio llamado xorg.conf.d/ donde siguiendo las reglas de carga de muchas configuraciones, (números más bajos cargan primero).
Una lista del directorio:

-rw-r--r-- 1 root root  946 2010-03-31 01:59 05-evdev.conf
-rw-r--r-- 1 root root  766 2010-04-15 17:07 10-synaptics.conf
-rw-r--r-- 1 root root  139 2010-04-22 10:44 10-vmmouse.conf
-rw-r--r-- 1 root root 3201 2010-07-03 20:46 10-wacom.conf

10-screen.conf y 10-wacom.conf fueron creados para configurar la tarjeta de video y el dispositivo wacom respectivamente (aunque podria ser 15-wacom, ya que debería ser configurado luego de evdev (teclado/ratón) del synaptic y de la tarjeta de video).

el archivo 10-wacom.conf contiene:

#clase que identifica a todos los dispositivos wacom
Section "InputClass"
 Identifier "Wacom class"
 MatchProduct "Wacom|WACOM"
 MatchDevicePath "/dev/input/event*"
 Driver "wacom"
EndSection

# N-Trig Duosense Electromagnetic Digitizer
Section "InputClass"
 Identifier "Wacom N-Trig class"
 MatchProduct "HID 1b96:0001"
 MatchDevicePath "/dev/input/event*"
 Driver "wacom"
EndSection

Section "InputClass"
 Identifier "Wacom serial class"
 MatchProduct "Serial Wacom Tablet"
 Driver "wacom"
 Option       "ForceDevice"   "ISDV4"
 Option       "USB"            "on"
 Option       "Button1"        "1"  # El click con el stylus sera boton primario de raton
 Option       "Button2"        "2"  # El boton del lapiz es el click central
 Option       "Button3"        "3"  # El borrador hara de boton derecho
 Option       "TopX"           "27"
 Option       "TopY"           "-21"
 Option       "BottomX"        "24641"
 Option       "BottomY"        "18504"
 Option       "tilt"           "on"  # add this if your tablet supports tilt
 Option       "Threshold"      "5"   # the official linuxwacom howto advises this line
EndSection

#esta seccion permite que la wacom se comporte como cursor
Section "InputDevice"
 Driver        "wacom"
 Identifier    "cursor"
 Option        "Device"        "/dev/ttyS0"
 Option        "Type"          "cursor"
 Option        "ForceDevice"   "ISDV4"
 Option        "Mode"          "Absolute"
EndSection

Luego de creado el archivo, reiniciamos las X o simplemente reiniciamos el equipo.

Luego de reiniciadas las X, encontraremos en el archivo log /var/log/Xorg.0.log información sobre la carga de la wacom:

(II) config/udev: Adding input device Serial Wacom Tablet (/dev/ttyS0)
(**) Serial Wacom Tablet: Applying InputClass "Wacom serial class"
(II) LoadModule: "wacom"
(II) Loading /usr/lib/xorg/modules/input/wacom_drv.so
(II) Module wacom: vendor="X.Org Foundation"
 compiled for 1.7.6, module version = 0.10.5
 Module class: X.Org XInput Driver
 ABI class: X.Org XInput driver, version 7.0
(**) Option "Device" "/dev/ttyS0"
(II) Serial Wacom Tablet: type not specified, assuming 'stylus'.
(II) Serial Wacom Tablet: other types will be automatically added.
(**) Serial Wacom Tablet: always reports core events
(**) Option "TopX" "27"
(**) Option "TopY" "-21"
(**) Option "BottomX" "24641"
(**) Option "BottomY" "18504"
(**) Option "Button1" "1"
(**) Option "Button2" "2"
(**) Option "Button3" "3"
(II) Serial Wacom Tablet: hotplugging dependent devices.
(**) Option "Device" "/dev/ttyS0"
(**) Serial Wacom Tablet eraser: always reports core events
(**) Option "TopX" "27"
(**) Option "TopY" "-21"
(**) Option "BottomX" "24641"
(**) Option "BottomY" "18504"
(**) Option "Button1" "1"
(**) Option "Button2" "2"
(**) Option "Button3" "3"
(II) XINPUT: Adding extended input device "Serial Wacom Tablet eraser" (type: ERASER)
(**) Option "StopBits" "1"
(**) Option "DataBits" "8"
(**) Option "Parity" "None"
(**) Option "Vmin" "1"
(**) Option "Vtime" "10"
(**) Option "FlowControl" "Xoff"
(WW) Serial Wacom Tablet eraser: Waited too long for answer (failed after 3 tries).
(WW) Serial Wacom Tablet eraser: Waited too long for answer (failed after 3 tries).
(II) Serial Wacom Tablet eraser: serial tablet id 0x90.
(--) Serial Wacom Tablet eraser: using pressure threshold of 7 for button 1
(--) Serial Wacom Tablet eraser: Wacom General ISDV4 tablet speed=38400 maxX=24576 maxY=18432 maxZ=127 resX=2540 resY=2540  tilt=disabled
(--) Serial Wacom Tablet eraser: top X=27 top Y=-21 bottom X=24641 bottom Y=18504 resol X=2540 resol Y=2540
(II) Serial Wacom Tablet: hotplugging completed.
(II) XINPUT: Adding extended input device "Serial Wacom Tablet" (type: STYLUS)
(--) Serial Wacom Tablet: top X=27 top Y=-21 bottom X=24641 bottom Y=18504 resol X=2540 resol Y=2540
Nota: (**) es tomado de un archivo de configuración, (–) es asumido por el controlador, (WW) es una advertencia y (II) es una sección informativa.

Tomen en cuenta que en archivo Xorg.0.log, una línea que empieza en (**) indica que fué tomada de un archivo de configuración, con eso sabemos que nuestro archivo funciona correctamente.

El comando xsetwacom y la configuración de la tablet

Aunque por lo general los comandos de configuración agregados al xorg.conf.d son permanentes, podemos por ejemplo, cambiar el threshold, la sensilibidad de presión al click u otras opciones (incluso, rotar la posición de los botones) sin necesidad de cambiar las X, simplemente usando el comando xsetwacom.

El comando xsetwacom tiene la siguiente sintaxis:

xsetwacom set "DEVICE" option "value"

El nombre del dispositivo lo podemos descubrir con:

> xsetwacom --list

La respuesta sería:

Serial Wacom Tablet eraser ERASER
Serial Wacom Tablet STYLUS    

Esto muestra que tenemos un ERASER (borrador) llamado “Serial Wacom Tablet eraser” y un STYLUS (apuntador) llamado “Serial Wacom Tablet”

Con ambos valores, construimos nuestro archivo xinitrc (uno por usuario)

/~.xinitrc

En mi caso, el archivo estará en /home/jesuslara/.xinitrc

xsetwacom set "Serial Wacom Tablet eraser" Suppress "2"
xsetwacom set "Serial Wacom Tablet eraser" RawSample "4"
xsetwacom set "Serial Wacom Tablet eraser" ClickForce "6"
xsetwacom set "Serial Wacom Tablet eraser" PressCurve "0 0 100 100"
xsetwacom set "Serial Wacom Tablet" TPCButton "on"
xsetwacom set "Serial Wacom Tablet" Button3 "Button 3"
xsetwacom set "Serial Wacom Tablet" Button2 "Button 3"
xsetwacom set "Serial Wacom Tablet" Button1 "Button 1"
xsetwacom set "Serial Wacom Tablet" Suppress "2"
xsetwacom set "Serial Wacom Tablet" RawSample "4"
xsetwacom set "Serial Wacom Tablet" ClickForce "6"
xsetwacom set "Serial Wacom Tablet" PressCurve "0 0 100 100"
xsetwacom set "Serial Wacom Tablet eraser" bottomy "18504"
xsetwacom set "Serial Wacom Tablet eraser" bottomx "24641"
xsetwacom set "Serial Wacom Tablet eraser" topy "-21"
xsetwacom set "Serial Wacom Tablet eraser" topx "27"
xsetwacom set "Serial Wacom Tablet" bottomy "18504"
xsetwacom set "Serial Wacom Tablet" bottomx "24641"
xsetwacom set "Serial Wacom Tablet" topy "-21"
xsetwacom set "Serial Wacom Tablet" topx "27"
# run the primary system script
. /etc/X11/xinit/xinitrc

Tenemos opciones como:

ClickForce: fuerza del click, menos presión y se considerará una selección, más y se considerará un click
PressCurve: depende obviamente de los niveles de sensibilidad, una Wacom Intuos o Bamboo tienen 256 niveles de presión, mi tablet solo tiene 100 niveles de presión
topy – topx – bottomy . bottomx : coordenadas en pixeles que permiten cuadrar el dispositivo (las obtuve con una herramienta de calibración que compilé para wacom)

Hay muchisimas más opciones, aunque realmente mi tablet pc no tiene tantas como una Wacom Intuos o una Wacom Bamboo.

Usando myPaint

myPaint (www.mypaint.info) es una herramienta completamente libre y multi-plataforma, para dibujo usando una tableta digitalizadora, posee una gran colección de pinceles, brochas y efectos, que pueden ser personalizados y guardados en paletas diferentes, muy útil para artistas, ya que de hecho, son artistas como Martin Renold y Artis Rozentāls quienes dieron origen al proyecto, como una versión “libre” de Corel Painter.

Un screenshot:

Es una interfaz bastante sencilla, soporta capas, múltiples pinceles, patrones y brochas, permite guardar varios bocetos en un mismo archivo y recuperarlos y a diferencia de GIMP, tiene un especial reconocimiento a la sensibilidad de presión, recorrido, velocidad y actividad de la tableta digitalizadora.

Usando "Lapiz" en myPaint

Otro punto a favor de myPaint es que reconoce cuando el borrador está sobre el lienzo y me permite borrar de manera natural.

Incluso hay un grupo en Flickr de dibujantes y diseñadores con la herramienta.

[Nota del día] GRAPE-DR: El super sistema de cómputo más eficiente, corre Linux

El Sistema de super-cómputo GRAPE-DR del Instituto de Astrofísica de la Universidad de Tokio, es actualmente considerado como uno de los más “eficientes” en consumo de energía por unidad de procesamiento (FLOPS) según la famosa lista The Green500 list.

Lo que poco documentan es que el gran super-sistema de cómputo, basado en microprocesadores Intel Core i7, corre una versión modificada para Clusters de GNU/Linux Centos.

Con una potencia eficiente de 815 MFLOPS/Watt, con una red basada en 100Gbps y un Network throughput sobre los 40Gbps, se le considera uno de los supercomputadores más eficientes en consumo de energía, puesto que cada nodo del cluster consta de 64 pares de microprocesadores Intel core i7 y 4 chips GPU de aceleración diseñados por el mismo instituto, que soportan 200 GFLOPS con un consumo de energía de apenas 50W (semejante a una bombilla incandescente regular).

En total, la supercomputadora soporta cálculo paralelizado masivo de 2 PetaFLOPS y es usada intensamente para análisis genómico, astrofísica, cálculo de fluidos, comparación de proteínas y análisis en los secuenciamientos de ADN.

Este corre un Linux CentOS con 1TB (1024Gb) de RAM y usa infiniband para la interconexión de los nodos del cluster.

El Anterior, que está en la Universidad de Varsovia (Polonia), utiliza Suse Enterprise Linux 9 y se encuentra en el Instituto Interdisciplinario de Matemáticas y modelado computacional.

Para acotar; la considerada la computadora más potente según la TOP500 List, la del Laboratorio Oak Ridge en USA y gestionada por el departamento de Energía corre un sistema Cray XT-HE basado en Amd64 usando GNU/Linux Debian.

¿Sigues pensando en MS Windows para servidores? jajaja

Cambiando de Debian a Trisquel: Consejos

Preámbulo

Luego de experimentar algunos problemas en Debian Squeeze y bajo la experimentación de algo más “amigable al usuario” pero aún así libre, he cambiado mi distribución de escritorio (de uso regular) de Debian Squeeze a GNU/Linux Trisquel, una versión basada en Ubuntu pero sin binarios privativos en el Kernel y sin aplicaciones no-libres.

A pesar de lo que la gente piense, la distribución funciona “bastante bien” en mi portatil, incluso se nota que es una distribución para “usuario final” puesto que tiene algunas ventajas sobre Debian Squeeze:

Kernel realtime

* Kernel Realtime con parche de tickless Kernel: todo ese palabrerío loco significa que el soporte a actividades en “tiempo real” y el parche para un kernel sin “tiempos muertos” es agregado Por defecto dentro del kernel libre de Trisquel, esto trae como consecuencia que las actividades de usuario (acceso a dispositivos, sonido, recursos en userspace) se haga en tiempo real (y no cada 300 mhz como ocurre con el kernel oficial de Debian Squeeze), ¿ventajas de esto?:

  • Gózenla!: El equipo levanta en solamente 12 segundos, no el minuto y algo más que ya estaba tardando mi Debian Squeeze.
  • Soporte para PulseAudio y Jackd en tiempo real, gestiono mi radio por Internet de Radio GNU por ahí (es como tener Ubuntu Studio, pero libre)
  • El acceso a dispositivos es rápido, la digitalizadora Wacom de la tablet PC funciona que es una maravilla.

Ningún soporte a Binarios privativos

No se crean que podrán “ensuciar” este kernel, un script “de-BLOBber” remueve toda posibilidad de inclusión de binarios dentro del kernel, esto hace que por ejemplo, el módulo del kernel “iwlagn” que levanta la inalámbrica, aún cuando el firmware se encuentre en /lib/firmware, fallará con un error “module [deblobbed], don’t load device” y pues, estoy sin tarjeta inalámbrica en GNU/Linux Trisquel.

Esto es una ventaja aunque no lo crean, ver que la mayoría de los fabricantes han hecho un equipo (en mi caso un Lenovo X61 tablet PC) que *casi* no necesita binarios privativos, todo funciona:

  • Bluetooth funciona por defecto y “out of the box” en trisquel
  • El módulo SDHCI levanta perfectamente la lectora de memorias SD
  • El Firewire funciona, lo probé con una camara de video Samsung que tengo.
  • La Wacom funcionó al terminar de instalar, faltó configurar algunas cosas
  • Thinkpad buttons funcionan, ya asocié el Thinkvantage button para que abra un Nautilus
  • La aceleración 3D la detecta en modo UXA, la he cambiado a modo EXA para soportar AIGLX para compiz
  • La salida de video funciona dual y correctamente

Solamente faltó probar el infrarrojo, el modem 56K y el lector de huellas dactilares, pero recuerdo que ninguno requería binarios privativos.

Mientras, buscaré una tarjeta inalámbrica mini-PCI-express que me permita usarla sin binarios, como por ejemplo, las atheros o las realtek.

Como Ubuntu, pero sin Ubuntu …

Realmente Trisquel es un Ubuntu completamente libre, como gNewSense, hay gente que pensaría que al no permitir cosas “multiverse” privativas o “non-free” quedaríamos “mochos” y sería peor que usar Debian Squeeze; pero admito que estaba equivocado, cosas que encontraremos interesantes:

  • Reemplazo de gnome-audio por PulseAudio: el gestor de pulseaudio es mucho más óptimo que el que usa Debian por defecto (al menos hasta squeeze), alguien acá pondría que podrías tener pulseAudio en Debian, claro, pero acá viene por defecto y ya configurado.
  • BlueMon carga por defecto: si detecta bluetooth, carga por defecto, en mi Debian Squeeze me tocó montarlo y además, encender la antena bluetooth con un cat “enable” al /proc del device, algo “no muy intuitivo” y “user-friendly”
  • Levante más rápido: claro, a lo Debian/Ubuntu, si esto fuera un Arch Linux, los servicios no levantarían a menos que uno lo solicitara; pero al menos prelink y preload vienen “por defecto” por lo que el arranque de ejecutables y el “levante” de librerías es más rápido.
  • Uso de ext4 por defecto en el root; al igual que en Ubuntu, soporta ext4 para usarlo en root; en Debian había que crearla como ext3 y *luego* convertirla a ext4.
  • La ausencia de Java-Sun ha hecho que algunos módulos de Eclipse (como el Eclipse-Mercurial) no funcionen correctamente, espero ver como corrijo el problema.

Conclusiones

Es más que obvio que Debian Lenny y Squeeze seguirán en una partición en mi disco, más que todo por mis experimentos en Servidores, otras plataformas, Directorio Libre y una gran cantidad de proyectos, pero para cosas como la Radio Libre de RadioGNU, mi escritorio de usual, jugar y el resto de cosas “que la gente común hace” entonces seré un usuario Trisquel.

Y … ¿Por qué no?

Arch: Arch Linux es una distro por demás interesante, te lleva a conocer más de linux que otras distribuciones, *realmente* debes saber el por qué de los problemas, leer configuraciones, es como Gentoo pero más “comunitario” y con posibilidades como AUR que permiten tener paquetes desde casi cualquier lado. Arch definitivamente es una distribución por la que cualquier fanático Linux debería pasar. Pero ya yo pasé por eso.

Fedora: Fedora siempre me ha parecido extremandamente fácil, útil y es una de mis favoritas, pero ya sabemos que servidores y distribuciones personalizadas (como Canaima) nacen de Debian, por lo que otro perder tiempo en otro LSB (Linux Standard Base: organización de los directorios, archivos de configuración y aplicaciones), otro sistema de empaquetamiento (RPM: aunque es más fácil empaquetar en RPM que el suplicio de DEB, ¿qué vamos a hacer?, Debian es más popular en muchos ámbitos), incluso con el único mirror Debian+Trisquel que tengo, puedo suministrar paquetes a Canaima, a Ubuntu y a otras distribuciones.

Ubuntu: El problema con Ubuntu no es la distribución en sí sino los usuarios, muchos de ellos niegan decirle a la gente que no es una distribución libre; el que los repositorios non-free y multiverse vengan “por defecto” activados y muchos binarios sean por defecto instalados, hace que uno piense ¿realmente esta es mi computadora?, ni siquiera Fedora instala codecs privativos, como mp3 o AC3, pero en Ubuntu todos se montan por defecto.

Gentoo: Gentoo es como el Everest, como el Kilimanjaro, es un lugar interesante para ir, donde aprenderás muchas cosas, pero definitivamente no es algo para “vivir” ahí.

Nota del día: Apple iphone 4 y su solución al problema de la antena …

¿Qué tu propio cuerpo circuitea las antenas y se corta la señal si lo agarras mal?

¿Qué no tienes cobertura?

¿Gastaste 600 dólares (y acá capaz y lo vendan en 10 mil Bs.) y sirve para todo, menos para llamar?

Entonces tu solución es un práctico artilugio apple que te sacará del problema …

Usando Debmirror para crear un mirrors (Trisquel,Debian,Multimedia)

Mirror (o realmente “repositorio local”) es la posibilidad de contener de manera local todos los paquetes de una distribución específica para ahorrar Internet y ancho de banda.

Aunque es algo que uno hace casi todos los días, a veces uno olvida compartir estos comandos y scripts con la comunidad; en este caso, como crear un mirror de GNU/Linux Trisquel (una versión de Ubuntu completamente libre, sin paquetes privativos).

Un mirror para Trisquel

En la página oficial de Trisquel, indican que se puede usar rsync para crear un mirror de Trisquel (este medirá en su totalidad 229Gb), sin embargo, podemos usar debmirror para crear un mirror “personalizado” de Trisquel.

Creando el mirror

Para empezar, debemos conocer que los valores principales de debmirror cambian con lo que deseamos hacer, en mi caso:

  • Arquitectura: i386,amd64 (arm para Debian, algunos experimentos)
  • Distribuciones: Debian (lenny,squeeze), Trisquel (Taranis)
  • Secciones: Debian (main,contrib,non-free), Trisquel (main,extras)

Adicionalmente, un mirror para i386 de debian-multimedia.

El Debmirror necesario para crear un mirror Debian como el destrito es:

debmirror --host=http.us.debian.org --root=debian --cleanup --nosource --ignore-missing-release --progress --ignore-release-gpg \
--arch=i386,amd64,arm --dist=lenny,squeeze --method=http --section=main,contrib,non-free local_path

Donde nuestro host es el repositorio desde donde se realizarán las copias (uso el oficial)

local_path es la ruta en disco donde crearemos el mirror (en mi caso, un disco USB)

Para crear el mirror Debian-Multimedia ejecutamos:

debmirror local_path --host=www.debian-multimedia.org --ignore-small-errors --dist=testing --arch=i386 --root=/ --method=http --section=main,non-free \
--nosource --ignore-missing-release --progress --ignore-release-gpg

Y para crear el mirror de Trisquel (Version Taranis, la que estoy usando, basada en Ubuntu Maverick) se ejecuta:

debmirror local_path --host=mirror.fsf.org --root=trisquel --ignore-small-errors --method=http --nosource --ignore-missing-release --progress --ignore-release-gpg \
--dist=taranis,taranis-backports --section=main,extras --arch=i386,amd64

Donde podemos usar como hosts a archive.trisquel.info o a mirror.fsf.org

Recordemos que la versión anterior de Trisquel (basada en Lucid) es Awen.

Usando Rsync

Crear mirrors usando debmirror y rysnc es muchisimo más rápido que usando HTTP convencional, esto es porque con rsync se puede lograr multi-threaded downloads, que aunque hace la descarga mucho más rápida, te consumirás casi todo el ancho de banda de tu conexión.

Para crear un mirror de Trisquel Taranis, usando Debmirror+rsync ejecutamos:

debmirror --host=archive.trisquel.info --pdiff=none --getcontents \
--method=rsync --root=":packages" --rsync-options "-rplthi --delete-after \
--stats --partial" --nosource --ignore-missing-release --progress \
--ignore-release-gpg --ignore-small-errors \
--dist=taranis,taranis-backports --section=main,extras --arch=i386,amd64 \
local_path

De hecho, si ejecutamos:

 rsync -avn archive.trisquel.info::

Podremos ver que “modulos” posee este mirror, en este caso:

:iso (cd images)

:packages (repository)

Es por eso que –root apunta a :packages (en Debian, apuntaría a :debian)

Determinando el mirror más “rapido”

Podemos usar el paquete netselect-apt para determinar cual es el mirror más “rápido” para una distribución específica de Debian, para ello instalamos el paquete:

aptitude install netselect-apt

Y luego ejecutamos:

Para lenny:

netselect-apt -n -s stable

Para Squeeze:

netselect-apt -n -s testing

Para mi configuración, conexión, etc, ha determinado que:

The fastest server seems to be:
 http://204.152.191.39/debian/
Writing sources.list.
Done.
A %d blogueros les gusta esto: