Ejecutar cura en un ordenador obsoleto

Hablamos de Cura un software que se encarga de la comunicación con la impresora y el slicing ( laminado)  de nuestros  ficheros stl pudiendo por tanto gestionar con un único programa todos los pasos necesarios para pasar de un modelo 3D a un objeto real. Este programa puede tener problemas para ejecutarse en ordenadores antiguos por lo que proponemos rehusar un viejo portatil para este función.


Cura     es  uno de los  famosos  programas  para impresión 3d  desarrollado por Ultimaker .Este clásico software   de corte  prepara  su modelo para la impresión 3D tanto  para los que se inician el el mundo de la impresión 3d como para los  usuarios  avanzados, siendo por tanto  una de las mejores opciones  a la hora de seleccionar un programa de laminado e impresión en 3d   hasta tal punto que supera el sw propietario de otros fabricantes  como por ejemplo el del  Geetech  ( Easyprint) entre otros.

En efecto ,para los principiantes en impresión  de objetos 3D , este programa hace que sea fácil obtener resultados aceptables,  dada la gran complejidad  de los procesos de impresión 3d y ,asimismo  para los usuarios más expertos también les permite mejorar sus  impresiones, pues hay más de 200 ajustes  en el modo avanzado  que podrán adaptarse a las necesidades de cada modelo, los   cuales sin duda ayudaran  a mejorar la calidad de impresión en 3d del objeto que se desea imprimir en 3d.

La fama de este programa   no es en  vano  pues porque ademas de ser gratuito ,   es un programa “Open Source ” lo que significa  que tras este  sw hay  toda una comunidad  para intentar mejorarlo o corregir deficiencias o funcionalidades en este.

Dado que Cura es un excelente sw de impresión 3d , lo suyo es que le intentemos  dedicar un pc en exclusiva conectado   a nuestra  impresora 3d,  sobre todo si contamos con algún equipo  obsoleto que ya no usemos. Ahora bien , el problema  viene cuando intentamos instalar el sw de Cura  en  un  ordenador antiguo con Windows  desde este enlace https://ultimaker.com/es/software/ultimaker-cura

 

Bien,  en el mejor de los casos quizá  pueda  instalarse  con el enlace anterior pero  si el ordenador  tiene unos años   y cuenta con windows   quizás no  pueda instalarse con dicho instalador  nativo    fundamentalmente por el soporte de requisitos  gráficos ( opengl) que no este actualizado para su tarjeta grafica porque el fabricante haya decidido dejar de dar soporte.

Incluso   si cuenta con Linux    en muchas  ocasiones   desde la propia tienda de sw de Lubuntu   tampoco  se podrá instalar  Cura fácilmente,  pero  no se preocupe pues hay una solución sencilla: instalar una versión de Linux de 64 bits   y luego instalar manualmente el sw de Cura  para después personalizar la instalación , lo cual vamos a ver  a continuación , suponiendo que nuestro ordenador cuente con al menos con un núcleo de 64 bits.

 

 

 

Instalación de Ubuntu 64 bits

Ubuntu es un sistema operativo libre y gratuito,perteneciente a la familia Linux y patrocinado por la compañía Canonical. Cada seis meses está disponible una nueva versión, que se identifica por su fecha de lanzamiento: así, “Ubuntu 18.04” hace referencia a la versión del año 2018 publicada en abrile (mes 4).

Cada dos años la actualización presenta la característica de ser LTS, lo que significa que tendrá un soporte técnico de al menos cinco años.

Para  instalar Ubuntu de 64 bits  en primer lugar habrá que descargar la imagen de Linux  18.04  , instalar esta en nuestro equipo    y sobre este ,ya  podremos después  instalar  el programa Cura.

 

Para   descargar esta versión de 64 bits  ( siempre que  el procesador del ordenador  al menos tenga dos nucleos de 64bits )   nos iremos a    https://ubuntu.com/download/desktop  y haciendo clic  abrirá una ventana en la que escogeremos la opción de guardar el archivo.

Éste  fichero tiene la extensión “.iso” con  un tamaño de alrededor de mas de 1GB, por lo que puede tardar un rato en descargarse, dependiendo de la velocidad de nuestra conexión a Internet.

Una vez descargada la imagen ISO en nuestro ordenador hay que grabar esta  en un dvd     autoarrancable , misión que se puede  hacer con la propia   herramientas nativa  del    propio SO como es la  propia grabadora de DVD incluida en W10.

El primer paso es introducir un DVD grabable en la grabadora del PC, lo cual hará que salte una ventana de aviso:pulse Cancelar.

A continuación, haremos clic con el botón derecho del ratón en el archivo ISO para que se abra el menú contextual y en él elijiremos Grabar imagen de disco.

La grabadora de imágenes de Windows  solo tiene una única opción de si queremos comprobar el disco después de grabar o no,la cual  tomará más tiempo pero le asegurará que el disco se ha grabado correctamente. Para  grabar  la imagen pulsaremos Grabar para que empiece el proceso y no necesitemos hacer ya nada más salvo esperar a que termine la grabación. No es recomendable que realice tareas que usen muchos recursos mientras se graba, pues podría hacer que la grabación se maologre dejando inservible el dvd.

También  es posible grabar  la imagen ISO de  Ubuntu  en una unidad usb  autoarrancable, utilizando para ello alguna de las posibilidades que nos ofrezca nuestro actual sistema operativo:

      • Para grabar en entornos Microsoft Windows se puede usar, entre otros, un programa como “Windows USB/DVD Download Tool”, que se puede obtener en el sitio web http://wudt.codeplex.com/ o también en http://descargar.cnet.com/Windows-USB-DVD-Download-Tool/3000-18513_4-10972600.html
      • Para crear la memoria USB en equipos con Linux hay que localizar la aplicación de grabación instalada en el sistema  ( en Ubuntu es nativa  ) o  como alternativa usar otros paquetes disponibles en el Centro de Software: k3b, gnomebaker, bonfire, imagewriter, usb-creator-gtk,unetbootin,…

En todo caso una vez tengamos el DVD o USB ya grabado , lo introduciremos en el PC  y modificaremos desde la  BIOS la opcion de arranque desde USB o DVD según proceda

Una vez arrancada la maquina nos aparecerá un menú que permitirá probar el SO sin instalarlo en el sistema

Suponiendo que después de haber probado Ubuntu nos hemos decidido a instalarlo en nuestro disco duro interno, en sustitución de nuestro anterior sistema operativo, la primera precaución debe ser hacer una copia de seguridad de todos los documentos actuales que deseemos conservar (textos,fotos, música, vídeos, presentaciones,…) aunque obviamente, este paso no resulta necesario si vamos a ejecutar la instalación en un disco duro nuevo o recién formateado.

Después de haber puesto a salvo nuestros documentos, comenzaremos el proceso de instalación una vez  lleguemos a la pantalla inicial de Ubuntu. A partir de aquí disponemos de dos formas de iniciar la instalación:(a) usar las flechas de desplazamiento para seleccionar la opción “InstallUbuntu” y pulsar “Enter” (lógicamente, si antes usamos la tecla “F2” para cambiar a nuestro idioma, el mensaje sería “Instalar Ubuntu”) y seguiremos el asistente  con las preguntas de distribución de teclado , zona horaria  o usuario , claves  y opciones de inicio   hasta finalizar por completo momento en el cual nos pedira que reiniciemos   para  hacer efectivos los cambios

Instalación de Cura

Una vez tengamos Ubuntu de 64 bits instalado,podríamos descargar el software de Cura   desde su página oficial pero también podremos instalar la última versión de este software en Ubuntu 16.04 desde el repositorio de turno.

Antes de proceder a la instalación  ya que Cura depende de python 3.x.  tenemos qeu a satisfacer las dependencias en primer lugar para que todo vaya correctamente

1
sudo apt-get install python3 python3-dev python3-sip

A continuación, es el momento de agregar el repositorio que nos proporcionará el paquete para la instalación.

1
sudo add-apt-repository ppa:thopiekar/cura

Para terminar, solo nos queda actualizar los paquetes nuestra lista e instalar cura.

1
sudo apt-get update && sudo apt-get install cura

Después de esto ya tendremos que ser capaces de ejecutar Cura. Bien sea con el comando “cura” desde la terminal o buscando el lanzador del programa en el Dash de nuestro sistema operativo.

 

Personalización de Cura

Cura al  haberlo creado un fabricante como ultimaker no dispone de todos los modelos  de impresoras  3d del mercado , asi qeu si disponemos del perfil de esta  o nos lo  facilita el fabricante , lo ideal es copiar este perfil  en nuestro viejo pc

Si nos vamos al fabricante Geetech, el nos permite descargar un fichero  comprimido con algunos de los contenidos del directorio resources :

        • Definitions
        • Extruders
        • Meshes

Lo interesante es copiar por ejemplo con el gstor de archivos  estos recursos al directorio correspondiente del Cura de nuestro equipo ,por lo que en primer lugar lo copiaremos a nuestro home ( en nuestro ejemplo /home/usuario/Descargas/ )  , descomprimiermos  despues su contenido ( deberia llevar al menos esas tres carpertas mencionadas)y finalmente copiaremos este contenido a las carpeta del Cura

Para copiar los recursos  al directorio de instalacion   por tema de permisos no lo vamos a poder copiar directamente desde el gestor de archivos  por lo que lo haremos desde una consola de terminal

Para copiar   estos tres contenidos seguiremos lso siguintes pasos

En primer podemos copiar el contenido de la carpeta extruders

1
cd /home/usuario/Descargas/resources/extruders/
2
ls
3
sudo cp -f  *.*  /usr/share/cura/resources/extruders/

Despues  podemos copiar la carpeta definitions

1
cd /home/usuario/Descargas/resources/definitions/
2
ls
3
sudo cp -f *.* /usr/share/cura/resources/definitions/

Y finalmente lo mismo con la carpeta meshes

1
cd /home/usuario/Descargas/resources/meshes/
2
ls
3
sudo cp -f *.* /usr/share/cura/resources/meshes/

Una vez concluido este proceso si reiniciamos Cura deberíamos poder acceder  a dicho perfil    lo cual sin duda nos permitira ahorrar mucho tiempo a la hora configurar este estupendo programa

Retropie en Debian / Ubuntu / Mint

Una guía para construir la configuración de RetroPie en Ubuntu (16.04 LTS o posterior) x86 y distribuciones basadas en Debian.


No es tarea sencilla actualmente  conseguir imagenes de  Retropie para otras placas clónicas de  Raspberry Pi  como Orange Pi o Banana Po, pero si lo es conseguir imágenes basadas en Ubuntu como por ejemplo Lubuntu 16.04 , asi que si partimos de  una  imagen con Lubuntu instalada , podemos a partir de ahi instalarle Retropie  por consola  siguiendo  unos pocos pasos

 

 

En primer lugar   deberíamos tener instalada Ubuntu (16.04 LTS o posterior) o una distribución basada en Debian relacionada, como Linux Mint 18 / 19. 

Armbian es una distribución ligera basada en Debian o Ubuntu especializada para placas de desarrollo ARM. Compilado desde cero, contando con poderosas herramientas, desarrollo de software, y una comunidad vibrante.Otras placas ARM pueden ser las Raspberry PI, Odroid, Cubieboard… cada una de un fabricante distinto y luchando por hacerse con su espacio

Si parte de una Orange Pi   que tiene un chip  ARM , en este post se explica  como  instalar ARMbian  

Para ejecutar RetroPie-Setup, debe ser miembro del grupo root / admin.

 

Instalacion Retropie

Para descargar RetroPie, actualice  los paquetes APT existentes:

sudo apt-get update && sudo apt-get upgrade

Instale los paquetes necesarios para el script de instalación de RetroPie:

sudo apt-get install -y git dialog unzip xmlstarlet

NOTA: si recibe algún error sobre un paquete que no se encuentra y está utilizando Ubuntu, asegúrese de que el repositorio universeAPT se haya agregado y habilitado en el sistema al ejecutarlo sudo add-apt-repository universey luego comenzar de nuevo con el paso anterior.

Descargue el último script de configuración de RetroPie:

git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git

Ingrese la carpeta con el script de configuración:

cd RetroPie-Setup

El script se ejecuta con:

sudo ./retropie_setup.sh

La pantalla debería verse / similar en este punto:

script de configuración de retropie 4-0-2

 

Instalación Básica

Esto instalará los paquetes principales que son equivalentes a los que se proporcionan con la imagen RetroPie SD. Tenga en cuenta que esta será la versión de 32 bits de RetroPie  lo que significa que algunos emuladores como Daphne (Dragon’s Lair) no funcionarán de fábrica en esta versión pues Daphne y algunos otros emuladores solo tienen una versión de 64 bits lanzada para su uso, mientras que esta instalación es para la familia de CPU de 32 bits.

Ahora, debe copiar sus archivos rom en los directorios rom correctos asociados. Si siguió los pasos anteriores, el directorio principal para todas las roms es ~/RetroPie/roms(o /home/pi/RetroPie/roms, que es lo mismo aquí). En este directorio hay un subdirectorio para cada sistema emulado compatible, por ejemplo, NES, SNES, Sega Megadrive, etc.

Se debe prestar atención a las extensiones de los archivos rom pues algunos emuladores usan .zip mientras que otros usan una extensión de archivo personalizada asociada con el emulador en cuestión. Por ejemplo, el emulador Atari 2600 puede usar .a26, .bin y .rom.

Configurar RetroPie

EmulationStation se puede ejecutar desde el terminal escribiendo emulationstationel terminal.

Puede ir a Configuración / Configuración y habilitar el inicio automático a su gusto.

 

 

Algunos problemas 

La estación de emulación se cuelga si se seleccionó apagar / reiniciar

No es posible reiniciar / apagar si un sudo solicita una contraseña. Para deshabilitar la solicitud de contraseña de sudo, agregue la línea

<user> ALL=(ALL) NOPASSWD:ALL

al final de /etc/sudoers. Reemplace <usuario> con el nombre de su usuario actual.

No se puede instalar el controlador de PS3

Ubuntu tiene un controlador bluetooth PS3 incorporado. No hay necesidad de instalar sixad. Haga que su dongle bluetooth sea reconocible. Conecte su controlador a través de usb. Ahora abra “configuración del sistema bluetooth / agregar dispositivo”. Seleccione el controlador PS3 y haga clic en Aceptar. Su controlador debería emparejarse ahora si presiona el botón PS.

Pantalla en blanco después de algunos minutos

Abra el menú de configuración del sistema Ubuntu, desactive el protector de pantalla y los tiempos de espera de bloqueo de pantalla.

Ubuntu no se inicia automáticamente

Abra el menú de configuración del sistema Ubuntu y seleccione cuentas de usuario. Habilitar el inicio de sesión automático para el usuario actual.

Cómo configurar una pantalla de bienvenida

Use Plymouth para configurar una pantalla de bienvenida. Vea el wiki de Plymouth Ubuntu o use este sencillo tema de ES .

 

Mas info en https://retropie.org.uk/docs/Debian/

 

Linux Mint para reciclar un viejo ordenador

En una encuesta en línea en 2012 en Lifehacker, Linux Mint fue votada como la mejor distribución tras Ubuntu, con alrededor del 16% de los votos y en el número 162, Linux Format nombró a Mint como la mejor distro para 2012, es por esto que LinixMint puede ser una buenisimas opción para instalar en un viejo ordenador para darle una nueva oportunidad.


A día de hoy  Linux se considera el tercer S.O. más popular  de las plataformas de PC, junto con Windows y MacOS . Quizás una razón de peso  por el que  sea una opción a valorar es que el kernel de Linux (núcleo) y la mayoría de las distribuciones son completamente gratuitos, lo que es un punto importante a la hora de elegir este  sistema operativo en comparación con Windows y MacOS.

 Además de su coste,  Linux podría describirse mejor como el más personalizable de los tres, lo cual  es ayudado  por las  docenas de diferentes distribuciones creadas por comunidades únicas para diferentes usos. . Ya sea que esté buscando un sistema operativo que se adapte a escritorios, portátiles, estaciones de trabajo, servidores, edición A/V o juegos, seguridad ,IoT , etc  hay una distribución por ahí para casi todos los usos que se nos pueda ocurrir.

Y por  cierto, hace mucho tiempo que precisamente gracias  a las distribuciones  dejó de ser complejo instalar  Linux  asimilandose bastante el proceso el del este al de la instalación de un SO comercial ,como por ejemplo un Windows ,lo cual lo hace ideal  para  reciclar un viejo ordenador cuya licencia haya caducado o  este obsoleta

Puede instalar estas distribuciones en un Chromebook, PC o Mac como reemplazo de su sistema operativo actual, usar las dos opciones en un escenario de arranque dual o usarlas junto con una de las mejores máquinas virtuales que existen.

Una de las opciones actualmente más interesantes es Linux Mint, el cual según el sitio web del sistema operativo, Linux Mint es ahora la distribución líder de Linux, superando a Ubuntu y todas las demás distribuciones para convertirse en la principal competencia contra Windows y Mac OS

No obstante no debemos olvidar que existen otras opciones  populares como Ubuntu (tambien Lubuntu) ,Fedora,Opensuse,Debian o Manjaro  así como otras opciones más específicas como Antergos,Solus o Zorin 

 

Linux Mint

Linux Mint tiene un origen franco-irlandes concebido por Clément Lefèbvre y  desarrollado por el Equipo de Linux Team y la comunidad .Es una distribución de GNU/Linux comunitaria basada en Debian y Ubuntu que tiene por objeto proveer “un sistema operativo moderno, elegante y cómodo que sea tanto poderoso como fácil de usar” soportando multimedia al incluir software propietario y empaquetado con una variedad de aplicaciones gratuitas y de código abierto. En 2012, Linux Mint superó a Ubuntu como la distribución más vista en DistroWatch.

Esta distribución gratuita de código abierto se instala rápida y fácilmente desde un USB o DVD en blanco, y ofrece soporte multimedia completo desde el punto de vista.

Linux Mint hace un esfuerzo para establecer la línea entre la estabilidad y la potencia no siendo demasiado intensivo en recursos. Respecto a las actualizaciones,l hay pocas posibilidades de instalar una actualización rota o inestable que requerirá regresiones tediosas del sistema gracias al uso de un administrador de actualizaciones

Otro punto fuerte ,es admitir muchos entornos de escritorio populares como Cinnamon (con diferencia, la versión más popular de Linux Mint), Mate, LMDE y KDE, así como soporte nativo para una larga lista de Aplicaciones.

 

Instalación

En el pasado, Linux Mint se podía ejecutar sin necesidad de instalación de un Live CD pero a partir de 2014, debido la limitación del tamaño de  los CD, solo están disponibles los Live DVD .. Asimismo se puede arrancar y ejecutar desde una unidad flash USB en cualquier ordenador que sea capaz de arrancar desde una unidad USB, con la opción de guardar los ajustes de la unidad flash (persistencia, como en Ubuntu)..Lógicamente también se puede instalar en un ordenador desde el DVD/USB  para una mejora significativa del rendimiento, una vez confirmada la compatibilidad, utilizando para ello el instalador Ubiquity.

Como mínimo se recomiendan 1 GB de RAM para ejecutar el LiveCD, aunque ya instalado correrá bien con 512 MiB. El espacio necesario para la instalación en el disco duro es de 2.5 GB, que están comprimidas en un CD de 700 MiB. En el caso de utilizar el instalador para Windows mint4win – Que está disponible a partir de la versión 6.0, y está basado en Wubi -, se recomienda como mínimo 512 Mb.

  Cinnamon MATE Xfce KDE LMDE (v. 201403)
Procesador (x86) 700 MHz 700 MHz 700 MHz 700 MHz 700 MHz
Memoria 512 MB 512 MB 512 MB 2 GB 1 GB
Disco duro (espacio libre) 8.6 GB 5 GB 10 GB 10 GB 5 GB
Monitor (Resolución de pantalla) 800×600 800×600 800×600 1024×768 800×600

 

Si contamos con CPU, memoria  y disco suficiente , lo más sencillo si vamos a instalar este SO  en un ordenador antiguo  es crear una imagen en DVD  a partir del sitio oficial e   instalarla en nuestro equipo.

Estos son los pasos a seguir:

1-Nos iremos al site oficial  https://linuxmint.com/download.php   donde tendremos los enlaces a lasiamagnes ISO en fucnion de la version  y el tipo de procesador del equipo donde vayamos a instalar : 

Si su ordenador es bastante antiguo  la versión con MATE es la recomendada, pero si puede lo ideal  es probar el escritorio Cinnamon, que ha llegado a la versión 3.2 con mejoras evidentes en el “tiling”, la posibilidad de repartir la pantalla entre las diversas aplicaciones abiertas como queramos.

2-Una vez obtengamos descargada la imagen  ISO, lo siguiente es grabarla en un DVD . Si el  equipo donde descargo la imagen es un  W10 este automaticamente reconocera que  es una imagen de disco de   arranque  si pulsamos con el botón derecho sobre el fichero  y tan solo bastará con insertar un DVD en blanco   y  pulsar “grabar imágen de disco”  

 

 

 

3-Una vez obtenido el disco, lo insertaremos en el lector del equipo a actualizar  y reiniciaremos este. En caso de que nos pregunte si queremos que arranque sobre medios extraíbles diremos que si , pero en caso de que no nos aparezca esta opción, deberemos   cambiar la secuencia de arranque de la BIOS  normalmente pulsando F2 o F10  en el arranque    yéndonos al menú BOOT ORDER  y cambiando el orden de HDD  a DVD

4-Una vez arranque el DVD   tenemos la opción de eliminar el contenido del disco o  mantenerlo y a partir de ese momento comenzará la instalación de LinuxMint 

 

 

Si tiene problemas ( en el hipotetico problema que los tenga ) con la instalacion,  este enlace  de infromacion en español  sin duda  le ayudara  a resolverlos https://linuxmint-installation-guide.readthedocs.io/es/latest/

 

El Asistente de Migración para Microsoft Windows se puede utilizar para importar los marcadores, fondo de escritorio (papel tapiz), así como diversos ajustes de una instalación existente de Windows en una nueva instalación de Linux Mint.

El instalador de Windows “Mint4Win” permite que Linux Mint se instale desde dentro de Microsoft Windows, al igual que el instalador Wubi de Ubuntu. El sistema operativo se puede retirar, al igual que con otros programas de Windows, utilizando el Panel de control de Windows. Este método por tanto no requiere la partición del disco duro siendo sólo  útil para los usuarios de Windows,  no siendo adecuado  para instalaciones permanentes, ya que incurre en una ligera pérdida de rendimiento. Este instalador se incluyó en el DVD Live hasta Linux Mint 16, pero se retiró en la versión 16 “Petra” Linux Mint, porque el tamaño de las imágenes de DVD Live habría superado lo que el software puede manejar de forma fiable.

La instalación soporta un gestor de volúmenes lógicos (Logical Volume Manager-LVM) con sólo el particionamiento automático, y el cifrado de disco desde Linux Mint 15.

 

 

 

MintSoftware

Linux Mint viene con su propio juego de aplicaciones (Mint tools) con el objetivo de hacer más sencilla la experiencia del usuario.

MintUpdate:Diseñado especialmente para principiantes Linux Mint, y desarrollado para los usuarios que instalan actualizaciones prescindibles o que requieren un nivel de conocimiento para configurarlas apropiadamente. MintUpdate asigna a cada actualización un nivel de seguridad (que va de 1 a 5), basado en la estabilidad y necesidad de la actualización, según el criterio de los desarrolladores líderes. Esta herramienta se incluye por primera vez en la edición 4.0 Daryna                   .

MintInstall:Sirve para descargar programas desde los catálogos de archivos .mint que están alojados en el Portal de Software de Linux Mint. Un archivo .mint no contiene el programa, pero sí contiene toda su información y recursos desde los cuales será descargado.

MintDesktop:Usado para la configuración del escritorio. MintDesktop ha recibido una mejora significativa en la versión 4.0.

MintConfig:Un centro de control personalizable, que facilita la configuración del sistema.

MintAssistant:Un asistente personalizable que aparece durante el primer acceso (login) del usuario, guiándole por varias preguntas para personalizar la base de Mint de acuerdo con el nivel de conocimiento del usuario y su comodidad con varios componentes de Linux.

MintUpload:Un cliente FTP, integrado al menú contextual de Nautilus, con el fin de facilitar la compartir archivos de forma sencilla y rápida. Básicamente, el archivo es alojado en un servidor FTP, con capacidad limitada a 1 Gigabyte por usuario (ampliable al comprar el servicio Mint-space). Para compartir el archivo basta con posicionarse sobre él, hacer clic derecho y elegir la opción “upload”, luego aparecerá una ventana desde la cual se elige el perfil “Default” y se hace clic en el botón “upload”. Finalmente se espera a que el archivo sea subido. Cuando se haya completado el alojamiento, en la parte inferior de la ventana de mintupload aparecerá el hiperenlace de descarga del archivo.

MintMenu:Es un menú escrito en python que permite plena personalización de textos, iconos colores. Mantiene un aspecto similar al menú de openSUSE 10.3

MintBackup:Programa que facilita el respaldo y posterior restauración tanto de archivos de usuario como de software del sistema.

MintNanny:Es un programa que permite restringir el acceso a ciertas páginas de Internet definidas por el usuario.

 

 

 

Otras opciones 

  • Ubuntu :Ubuntu sigue siendo una de las distribuciones de Linux más populares a pesar de que se introdujo por primera vez hace más de una década siendo  la distribución más utilizada hasta la fecha como alternativa a Windows. También puede instalarse a través de la tienda integrada de Microsoft para Windows 10.  Tiene una famosa facilidad de uso e instalación  siendos un gran sistema operativo para los recién llegados y los entusiastas de Linux por igual. 

Ubuntu tiene siete  opciones disponibles,, que vienen con sus propios programas, entornos de escritorio y características. Por ejemplo, Ubuntu MATE  ofrece varias aplicaciones importantes, incluyendo Firefox,Thunderbird, LibreOffice,Rythmbox, Shotwell, VLC y Steam basandose en el entorno de escritorio MATE,que proporciona su propio conjunto de herramientas sobre una presentación intuitiva y atractiva.

  • Opensuse:openSUSE es otra distribución popular, principalmente debido a su flexibilidad de interfaz y la simple instalación de archivos. Uutiliza un programa llamado YaST, que es esencialmente un portal a través del cual puedes gestionar su ordenador y ajustar la configuración a tu gusto facilitando la instalación de un gran número de interfaces de escritorio populares, desde KDE y LXDE, hasta Gnome, Mate y varias otras. Estas interfaces pueden incluso ser instaladas simultáneamente a través de YaST, y conmutadas entre sí sobre la marcha.YaST también hace que la adición de aplicaciones de terceros sea fácil con instalaciones rápidas con un solo clic. Por último, openSUSE incluye una función llamada Tumbleweed, que actualiza el sistema y las aplicaciones automáticamente para que el sistema esté siempre actualizado. openSUSE se puede descargar de forma gratuita, pero hay una adición física de pago que incluye soporte de instalación de 90 días.
  • Fedora:No deje que el nombre tonto de esta distribución le engañe; es un sistema operativo flexible con tres opciones separadas dependiendo de sus necesidades. Una estación de trabajo, un servidor y una versión centrada en la nube están disponibles, y la versión de la estación de trabajo tiene más bifurcaciones para necesidades específicas como juegos, diseño e incluso robótica, entre otras. Fedora utiliza principalmente la interfaz GNOME, pero las versiones que utilizan diferentes entornos de escritorio están disponibles.Fedora es conocido por tener actualizaciones frecuentes de versiones, a veces con semanas o meses de diferencia, integrando los últimos programas y características disponibles para sistemas Linux. Esto hace que la distribución sea menos confiable para aquellos que prueban nuevos productos debido al ciclo corto entre versiones, y aumenta el riesgo de compilaciones inestables. Sin embargo, es ideal para aquellos que quieren estar a la vanguardia del desarrollo de Linux.
  • Debian:es una de las distribuciones de Linux más longevas pues se lanzó por primera vez en 1996 y desde entonces, ha servido como marco para muchas otras distribuciones, a saber, Ubuntu y Mint, que posteriormente han pasado a inspirar e informar a numerosos otros distros, haciendo de Debian algo así como un “abuelo” del desarrollo de la distribución actual. La versión moderna de Debian ofrece versiones con diferentes entornos de escritorio integrados en él, aunque GNOME es la interfaz principalmente soportada.Debian es una gran opción tanto para estaciones de trabajo como para sistemas de servidor. La versión de estación de trabajo viene con programas preinstalados como la alternativa de Photoshop, GIMP; Navegador de Internet Iceweasel; Procesador de textos LibreOffice; y reproductor multimedia VLC. Debian tiene tres ramas disponibles, “estable”, “pruebas” e “inestables”, dependiendo de la cantidad de mantenimiento y/o pruebas que desee poner en su sistema operativo.
  • Manjaro: se basa en otra distribución de Linux llamada Arch. Ambos tienen como objetivo proporcionar software de “borde sangrante” sin empantanar su PC, pero la plataforma de Arco para padres está afinada para usuarios avanzados y expertos en tecnología . En su lugar, el software se centra en la facilidad de uso y la amabilidad para los recién llegados y los usuarios avanzados por igual, sin quitar todas las cosas buenas que hacen arch grande.Además, Manjaro cuenta con la capacidad de detectar automáticamente el hardware de su sistema e instalar el software adecuado al igual que una máquina basada en Windows. También está respaldado por un gran repositorio de software desarrollado específicamente para esta distribución, y una comunidad que con mucho gusto ayudará tanto a los recién llegados como a los usuarios avanzados. Manjaro incluso ofrece tres sabores “oficiales”: la EDICión XFCE que es rápida y ligera, la más pesada KDE Edition que es más centrada en los medios y visualmente atractiva, y la GNOME Edition con una interfaz de usuario altamente personalizable.
  • Antergos:El lema con esta distribución es que siempre está fresco, y nunca congelado. Eso significa que está en un ciclo de desarrollo de “lanzamiento rodante”, por lo que no se ve obligado a descargar e instalar nuevas compilaciones cuando estén disponibles. Esto también incluye todas las aplicaciones que vienen empaquetadas con Antergos, por lo que no está trabajando con software obsoleto. Antergos es otra bifurcación de Arch Linux, que pretende ser potente pero amigable y elegante.Fuera de la caja, Antergos proporciona un sistema listo para usar, para que pueda escuchar música rápidamente, recorrer la web y mucho más. Y al igual que Manjaro, proporciona diferentes “sabores” para elegir, sin embargo, tienes seis en este caso, cada uno diseñado para una preferencia visual diferente (GNOME, Cinnamon, KDE, XFCE, MATE y Openbox). Antergos es conocido por ser una de las distribuciones “más bonitas” basadas en Linux, y es otro buen lugar para comenzar si eres un recién llegado a Linux.
  • Solus:Lanzado a finales de 2015, Solus es una distribución de Linux diseñada para todo el mundo. Fue construido desde cero con el usuario general del dispositivo en mente, y ha pasado a convertirse en una de las distribuciones más utilizadas en el transcurso de los últimos dos años. Puede elegir entre tres interfaces de escritorio :Budgie, GNOME, MATE y aprovechar Firefox, Thunderbird y otro software que ya utiliza en su máquina basada en Windows. Incluso es una gran solución de juego, ya que es compatible con una serie de gamepads y controladores directamente fuera de la caja.
  • Zorin:Aquí hay otra distribución de Linux creada para reemplazar Windows y MacOS. De hecho, a pesar de que está basado en Ubuntu, Zorin proporciona interfaces visuales que imitan esos sistemas operativos específicos, por lo que no se siente como si se está aventurando en territorio desconocido. El software está diseñado para facilitar su transición de Windows y MacOS, que, francamente, es su mayor punto de venta. Afortunadamente, la distribución también proporciona todos los beneficios de Linux, incluyendo un entorno seguro y una experiencia informática de alto rendimiento.

6 herramientas de domótica de código abierto

Construya un hogar más inteligente con estas soluciones de software de código abierto.


El Internet de las cosas no es sólo una palabra de moda, es una realidad que se ha expandido rápidamente desde la última vez que publicamos un artículo de revisión sobre las herramientas de domótica en 2016. En 2017, el 26,5% de los hogares estadounidenses ya tenían algún tipo de tecnología para hogares inteligentes en uso; en un plazo de cinco años, se espera que ese porcentaje se duplique.

Con un número cada vez mayor de dispositivos disponibles para ayudarle a automatizar, proteger y monitorear su hogar, nunca ha sido más fácil ni más tentador probar su mano en la automatización del hogar. Ya sea que esté buscando controlar su sistema HVAC de forma remota, integrar un cine en casa, proteger su hogar de robos, incendios u otras amenazas, reducir su consumo de energía o simplemente controlar algunas luces, hay innumerables dispositivos disponibles a su disposición.

Pero al mismo tiempo, muchos usuarios se preocupan por las implicaciones de seguridad y privacidad de traer nuevos dispositivos a sus hogares, una consideración muy real y seria. Quieren controlar quién tiene acceso a los sistemas vitales que controlan sus aparatos y registran cada momento de su vida cotidiana. Y es comprensible que en una época en la que incluso su refrigerador ahora sea un dispositivo inteligente, ¿no quiere saber si su refrigerador está llamando a casa? ¿No querría sin dudar en ello de que, incluso si concede permiso a un dispositivo para comunicarse externamente, solo es accesible para aquellos que están autorizados explícitamente?

Las preocupaciones de seguridad son algunas de las muchas razones por las que el código abierto será crítico para nuestro futuro con los dispositivos conectados. Ser capaz de comprender completamente los programas que controlan su hogar significa que puede ver, y si es necesario modificar, el código fuente que se ejecuta en los propios dispositivos.

Si bien los dispositivos conectados a menudo contienen componentes propietarios, un buen primer paso para incorporar código abierto a su sistema de domótica es asegurarse de que el dispositivo que une sus dispositivos y le presenta una interfaz para ellos (el “hub”) está abierto Fuente. Afortunadamente, hay muchas opciones por ahí, con opciones para ejecutar en todo, desde su computadora personal siempre activa a una Raspberry Pi.

Estos son solo algunos ejemplos de plataformas disponibles

 

 

Calaos

Calaos es una solución completa para domótica. Primero fue un sistema desarrollado por una empresa francesa del mismo nombre. Cuando la compañía fue cerrada durante 2013, toda la base de código fue de código abierto y lanzado como GPL. Una pequeña comunidad comenzó en torno al proyecto para continuar el desarrollo. La comunidad está creciendo cada día, el wiki y el foro están aquí para compartir información y buenas idea

Calaos está diseñado como una plataforma de domótica de pila completa, que incluye una aplicación de servidor, interfaz de pantalla táctil, aplicación web, aplicaciones móviles nativas para iOS y Android, y un sistema operativo Linux preconfigurado para funcionar debajo. El proyecto Calaos surgió de una empresa francesa, por lo que sus foros de apoyo están principalmente en francés, aunque la mayor parte del material instructivo y la documentación han sido traducidos al inglés.

Algunos ejemplos de lo que se puede hacer:

  • Bienvenido a casa! Después de un largo día de trabajo, ¡relájese! Cuando se vaya a casa, Calaos preparará un ambiente dulce. Las persianas están cerradas, las luces atenuadas, la música favorita comienza a reproducirse.
  • Controla su música.Comparta toda Su música en toda la casa. No mire donde lo tiene, no  transfieras más, simplemente presionE play en la habitación que debe escuchar Sus listas de reproducción favoritas.
  • Crear escenario: Todos los artículos vinculados a Calaos se pueden automatizar por tiempo, ambiente o estado de ánimo. Su hogar se vuelve inteligente a partir de hoy. La creación de un escenario se realiza en unos pocos clics en la pantalla táctil.
  • Configurar :Tiene herramientas escritas que le permiten configurar fácilmente su casa directamente desde su computadora. ¿Desea agregar más elementos a su sistema? Sólo tiene que instalar Calaos Installer.

Calaos está licenciado bajo la versión 3 de la GPL y puede ver su fuente en GitHub.

 

Domoticz

Domoticz es un sistema domótico con una biblioteca bastante amplia de dispositivos compatibles, que van desde estaciones meteorológicas hasta detectores de humo y controles remotos, y un gran número de integraciones adicionales de terceros se documentan en el sitio web del proyecto. Está diseñado con un front-end HTML5, por lo que es accesible desde los navegadores de escritorio y la mayoría de los teléfonos inteligentes modernos, y es ligero, se ejecuta en muchos dispositivos de baja potencia como raspberry Pi.

 

Es libre  y Open Source   y ademas esta diseñado para funcionar en varios sistemas operativos(es compatible con dispositivos Linux ,windows   embebidos ). La interfaz de usuario es un front-end web HTML5 escalable y se adapta automáticamente para dispositivos de escritorio y móviles.
Es compatible con todos los navegadores aunque  para los usuarios de Internet Explorer se necesita la versión 10+.

Algunas características destacables:

  • Hardware: Transceptor RFXCOM, Z-Wave, P1 Smart Meter, YouLess Meter, Contadores de pulsos, 1-Wire, EnOcean, y mucho más….
  • Registro extendido
  • Notificaciones push de iPhone / Android
  • Sensores/interruptores de aprendizaje automático
  • Creación manual de códigos de conmutación
  • Compartir / Usar dispositivos externos
  • Diseñado para la simplicidad

Domoticz está escrito principalmente en C/C++ bajo la GPLv3, y su código fuente se puede examinar en GitHub.

 

Home Assistant

Home Assistant es una plataforma de domótica de código abierto diseñada para implementarse fácilmente en casi cualquier máquina que pueda ejecutar Python 3, desde una Raspberry Pi hasta un dispositivo de almacenamiento conectado a la red (NAS), e incluso se suministra con un contenedor Docker para realizar la implementación en otros sistemas una brisa. Se integra con un gran número de ofertas comerciales y de código abierto, lo que le permite vincular, por ejemplo, IFTTT, información meteorológica o su dispositivo Amazon Echo, para controlar el hardware desde bloqueos hasta luces.

 

Home Assistant se publica bajo una licencia mIT,y su fuente se puede descargar desde GitHub.

 

 

 

Misterhouse

MisterHouse ha ganado mucho terreno desde 2016, cuando era “otra opción a considerar” en esta lista. Utiliza scripts Perl para monitorear cualquier cosa que pueda ser consultada por un ordenador o controlar cualquier cosa capaz de ser controlada a distancia.

Responde a los comandos de voz, hora del día, clima, ubicación y otros eventos para encender las luces, despertarte, grabar tu programa de televisión favorito, anunciar a las personas que llaman, advertir que tu puerta principal está abierta, reportar cuánto tiempo ha estado tu hijo en línea, te dicen si tu el coche de su hija está acelerando, y mucho más. Se ejecuta en ordenadores Linux, macOS y Windows y puede leer/escribir desde una amplia variedad de dispositivos, incluidos sistemas de seguridad, estaciones meteorológicas, identificador de llamadas, enrutadores, sistemas de ubicación de vehículos y más

MisterHouse está licenciado bajo la GPLv2 y puede ver su código fuente en GitHub.

OpenHAB

OpenHAB (abreviatura de Open Home Automation Bus) es una de las herramientas de domótica más conocidas entre los entusiastas del código abierto, con una gran comunidad de usuarios y un buen número de dispositivos e integraciones compatibles.

Escrito en Java, openHAB es portátil en la mayoría de los principales sistemas operativos e incluso funciona muy bien en Raspberry Pi. Compatible con cientos de dispositivos, openHAB está diseñado para ser independiente del dispositivo, al tiempo que facilita a los desarrolladores agregar sus propios dispositivos o plugins al sistema. OpenHAB también incluye aplicaciones iOS y Android para el control de dispositivos, así como herramientas de diseño para que pueda crear su propia interfaz de usuario para su sistema doméstico.

Con su arquitectura conectable openHAB soporta más de 200 diferentes tecnologías y sistemas y miles de dispositivos permitiendo además  automatice con facilidad . POr ejemplo puede utilizar un motor potente y flexible para diseñar reglas,con disparadores basados en tiempo y eventos, scripts, acciones, notificaciones y control de voz.

El sw puede  correr  en todas partes :Linux, macOS, Windows, Raspberry Pi, PINE64, Docker, Synology… accediendo a él con aplicaciones para la web, iOS, Android y otros.

Por cierto openHAB se ejecuta en su hardware, no requiere ningún servicio en la nube para funcionar, mantiene sus datos de forma privada en casa y habla directamente con sus dispositivos locales siempre que sea posible. En el centro de sua filosofía es que siempre el usuario tiene el control  aunque es amigable con la nube pues las integraciones están disponibles para las plataformas de hogar inteligente basadas en la nube más populares, como Google Assistant, Amazon Alexa, Apple HomeKit e IFTTT. Utilice el conector openHAB Cloud con el servicio de myopenhab.org gratuito o hospede el suyo propio

 
Una opción deseable es probar  la imagen openHAB  proporcionada para Raspberry Pi, una opción de hardware ampliamente utilizada y recomendada. Flashee una tarjeta SD, arranque y disfrute de su configuración openHAB actualizada con ajustes del sistema y software convenientemente preconfigurados como Samba, Grafana y Eclipse Mosquitto.

Puede encontrar el código fuente de openHAB en GitHub con licencia bajo la licencia pública Eclipse.

OpenMotics

OpenMotics es un sistema domótico con hardware y software bajo licencias de código abierto. Está diseñado para proporcionar un sistema completo para controlar dispositivos, en lugar de unir muchos dispositivos de diferentes proveedores. A diferencia de muchos de los otros sistemas diseñados principalmente para un fácil reacondicionamiento, OpenMotics se centra en una solución cableada. 

La plataforma de OpenMotics combina hardware de código abierto asequible con soluciones modernas en la nube. La plataforma intuitiva aprende de su comportamiento y puede expandirse a sus necesidades personales suscribiéndose a servicios adicionales.

Tambien openMotics  esta disponible para profesionales :Smart Homes ofrece beneficios significativos durante las fases de planificación, diseño y construcción de cualquier nuevo hogar, oficina u otro edificio.

El código fuente de OpenMotics está licenciado bajo la GPLv2 y está disponible para su descarga en GitHub.

 

 


Estas no son las únicas opciones disponibles, por supuesto. Muchos entusiastas de la domótica van con una solución diferente, o incluso deciden rodar la suya propia. Otros usuarios eligen utilizar dispositivos domésticos inteligentes individuales sin integrarlos en un único sistema integral.

Si las soluciones anteriores no satisfacen sus necesidades, estas son algunas alternativas potenciales a tener en cuenta:

  • EventGhost es una herramienta de automatización de cine en casa de código abierto (GPL v2) que funciona solo en equipos Microsoft Windows. Permite a los usuarios controlar los EQUIPOS multimedia y el hardware adjunto mediante el uso de plugins que activan macros o mediante la escritura de scripts de Python personalizados.
  • ioBroker es una plataforma IoT basada en JavaScript que puede controlar luces, cerraduras, termostatos, medios, webcams y más. Se ejecutará en cualquier hardware que ejecute Node.js, incluidos Windows, Linux y macOS, y sea de código abierto bajo la licencia MIT.
  • Jeedom es una plataforma de domótica compuesta por software de código abierto (GPL v2) para controlar luces, cerraduras, medios y más. Incluye una aplicación móvil (Android e iOS) y funciona en PC Linux; la compañía también vende centros que, según según él, proporcionan una solución lista para usar para configurar la automatización del hogar.
  • LinuxMCE se presenta a sí mismo como el “pegamento digital” entre sus medios y todos sus aparatos eléctricos.” Se ejecuta en Linux (incluyendo Raspberry Pi), se lanza bajo la licenciade código abierto Pluto, y se puede utilizar para la seguridad del hogar, telecomunicaciones (VoIP y correo de voz), equipos audiovisuales, domótica, y, de forma única, para jugar videojuegos.
  • OpenNetHome,al igual que las otras soluciones de esta categoría, es un software de código abierto para el control de luces, alarmas, electrodomésticos, etc. Se basa en Java y Apache Maven, funciona en Windows, macOS y Linux, incluyendo Raspberry Pi, y se lanza bajo GPLv3.
  • Smarthomatic es un marco de domótica de código abierto que se concentra en dispositivos de hardware y software, en lugar de interfaces de usuario. Licenciado bajo GPLv3,se utiliza para cosas como controlar luces, electrodomésticos y humedad del aire, medir la temperatura ambiente y recordar regar sus plantas.

 

 

 

 

 

Ahora es su turno: ¿Ya tiene un sistema de domótica de código abierto en su lugar? O tal vez usted está investigando las opciones para crear uno. ¿Qué consejo tendría para un recién llegado a la domótica y qué sistema o sistemas recomendaría?

¿Que se puede hacer para mejorar el rendimiento de las consultas en Oracle 11?

Para mejorar las consultas en oracle nos ayudamos de los indices, los cuales serán mas útil cuanto mas rápido podamos encontrar un registro en él respecto buscarlo en la tabla padre; de aquí se deduce fácilmente que todos los índices que podemos crear no son igual de efectivos, además de que conforme evolucionan los datos dentro de la tabla y por tanto dentro de sus índices, dicha efectividad puede cambiar con el tiempo. Por otro lado, hay ocasiones en los que sale a cuenta mirar directamente la tabla en lugar de pasar antes por el índice.


Tradicionalmente para mejorar el rendimiento de las consultas en SQL contra una BBDD Oracle , una vez optimizada la consulta con técnicas  de Tuneling ( por ejemplo usando Hints si procede) ,   siempre pasamos a dos técnicas clásicas :

  • Reconstruyendo los  índices existente en base de datos ,para lo cual previamente comprobaremos si esos índices deberían de ser reconstruidos  
  • Actualizando estadísticas sobre las tablas que realizamos las consultas.

Veamos mas despacio de que estamos hablando: 

 

Reconstrucción de indices

El índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones, permitiendo un rápido acceso a los registros de una tabla por lo que se suelen usar sobre aquellos campos sobre los cuales se vayan a realizar búsquedas frecuentes dado que su  funcionamiento es similar al índice de un libro: guardando duplas de elemento que se desea indexar junyo a su posición en la base de datos, de modo que para buscar un elemento que esté indexado, sólo necesitamos que buscar en el índice de dicho elemento para, una vez encontrado, devolver el registro que se encuentre en la posición marcada por el índice.

Los índices pueden ser creados usando una o más columnas, preparando la base de datos tanto para búsquedas rápidas al azar como para ordenaciones eficientes de los registros.

Los índices son construidos sobre árboles B, B+, B* o sobre una mezcla de ellos, funciones de cálculo u otros métodos.

El espacio en disco requerido para almacenar el índice es típicamente menor que el espacio de almacenamiento de la tabla (puesto que los índices generalmente contienen solamente los campos clave de acuerdo con los que la tabla será ordenada, y excluyen el resto de los detalles de la tabla), lo que da la posibilidad de almacenar en memoria los índices de tablas que no cabrían en ella. En una base de datos relacional un índice es una copia de parte de una tabla.

La siguiente consulta SQL mostrará el tamaño en megabytes de un índice determinado, en nuestro caso del índice PK_FACTURACION_CODIGO perteneciente a la tabla FACTURACION y el campo CODIGO del ejemplo. La consulta SQL para mostrar el tamaño ocupado por un índice es la siguiente:

select segment_name, sum(bytes)/1024/1024 MB
from dba_extents
where segment_name = ‘INDICE DE EJEMPLO’
group by segment_name

 

 

Es importante periódicamente examinar y determinar qué índices son susceptibles de ser reconstruidos. Cuando un índice está descompensado puede ser porque algunas partes de éste han sido accedidas con mayor frecuencia que otras dando como resultado problemas de contención de disco o cuellos de botella en el sistema.

Normalmente reconstruimos un índice con el comando ALTER INDEX  (esta sentencia se utiliza para cambiar o reconstruir un índice existente en la base de datos).

Para poder ejecutar este comando el índice debe de estar en el propio esquema donde intentes ejecutarlo o deberías de tener el privilegio alter any index. También tenemos que tener en cuenta que para realizar la reconstrucción de un índice deberíamos de tener cuota suficiente sobre el tablespace que lo lanzamos.

Para reconstruir un índice bastaría con lazar la siguiente sentencia

ALTER INDEX <index_name> REBUILD;

Para reconstruir una partición de un índice podríamos hacer lo siguiente

ALTER INDEX <index_name> REBUILD PARTITION <nb_partition> NOLOGGING;

Nota: En algunos casos cuando alguno de los índices tiene algún tipo de corrupción no es posible reconstruirlo. La solución en este caso es borrar el índice y recrearlo

 

 

 

Actualización de estadísticas

Cuando una base de datos Oracle recibe una sentencia “SQL” para resolver una consulta, se llevan a cabo diversas acciones para lograr la entrega del resultado.

Dentro de los diversos pasos uno de los más importantes es el llevado a cabo por el optimizador basado en costos “Cost Based Optimizer o CBO”. Para que el “CBO” pueda determinar de forma exacta el plan de ejecución de para un “SQL Query” debe disponer de la información de las estadísticas de las tablas e índices que participan en el “SQL Query”, esta información comúnmente es conocida como “Optimizer statistics” “Estadisticas del optimizador”, la misma describe como esta compuesto y distribuido internamente el objeto.

Estas estadísticas son utilizadas por el optimizador para elegir el mejor plan de ejecución para cada instrucción SQL.

El tiempo necesario para colectar las estadísticas en algunos casos puede ser de gran medida. En el manejador se pueden utilizar diversos métodos para tratar de reducir el tiempo de esta tarea en la mayor proporción posible.

 

Es importante tener por tanto actualizadas las estadísticas de la base de datos. Para saber si las estadísticas se están lanzando correctamente podemos hacer una consulta sobre la tabla ALL_INDEXES en oracle 11  (en Oracle 10  es  dba_indexes )y ver el campo last_analyzed para observar cuando se ejecutaron sobre ese índice las estadísticas.

Nota: la columna “LAST_ANALYZED” la cual puede ser encontrada en vistas tales como: “DBA_TABLES”, “DBA_INDEXES”, “DBA_TAB_COL_STATISTICS” indica la fecha en que fue calculada la estadística para dicho objeto por ultima vez.

 

Como ejemplo  , si queremos  saber cuando fue la ultima vez que se ejecutaron estadísticas sobre todas las tablas perteneciente a un determinado esquema de BBDD  lanzaremos la siguiente consulta:

SELECT LAST_ANALYZED,table_name FROM ALL_INDEXES ;

 

 

Como vemos con las fechas podemos  hacernos una idea , de lo actualizado que están las estadisticas   sobre cada tabla   

Para actualizar las estadísticas de forma global para  un  esquema de BBDD,  podemos utilizar  el paquete DBM_STATS  de la la siguiente forma:

Execute DBMS_STATS.gather_schema_stats(‘Esquema’);

 

Una vez actualizadas las estadísticas de los índices de la base de datos lanzamos la siguiente consulta:

SELECT LAST_ANALYZED,table_name FROM ALL_INDEXES ;
SELECT index_name, blevel,
DECODE(blevel,0,'OK BLEVEL',1,'OK BLEVEL',2,
'OK BLEVEL',3,'OK BLEVEL',4,'OK BLEVEL','BLEVEL HIGH') OK
FROM dba_indexes where table_owner='DBPROD08';

 

Con esta sentencia obtendremos el nombre nombre del índice, el blevel y si es correcto este indice.

Los índices que deberíamos de reconstruir son los que en la columna ok aparecen como BLEVEL HIGH.

Blevel (branch level) es parte del formato del B-tree del índice e indica el número de veces que ORACLE ha tenido que reducir la búsqueda en ese índice. Si este valor está por encima de 4 el índice debería de ser reconstruido.

.

Controlando placas de IoT desde javascript

Vamos a ver como es posible controlar un ARDUINO ( y por supuesto todas su extensiones de E/S) desde javascript usando node.js,


Node.js framework  fue  creado por Bocoup para controlar placas de desarrollo en una configuración de host-cliente   aunque   realmente su uso mayoritario sea como plataforma web   siendo    Johnny-Five la plataforma open  source de Robótica e IoT de JavaScript 

En realidad existen diferentes  plataformas donde se puede ejecutar el programa Johnny-Five :

  • En un entorno Linux a bordo: beagleBone Black,Chip,Intel Galileo gen 1,Intel Galileo Gen 2,Intel Edison Arduino,Intel Edison Mini, SparkFun Edison GPIO Block,SparkFun Arduino Block, Intel Joule 570x (Carrier Board),Linino One,pcDuino3 Dev Board,Raspberry Pi 3 Model B, Raspberry Pi 2 Model B. Raspberry Pi Zero,Raspberry Pi Model A Plus,Raspberry Pi Model B Plus, Raspberry Pi Model B Rev 1, Raspberry Pi Model B Rev 2, Tessel 2
  • En una máquina host conectada (a través de Serial USB o Ethernet) a un cliente.: Arduino Uno,SparkFun RedBoard, On a host machine communicating over Bluetooth to the client. Arduino Uno,Arduino Leonardo, Arduino Mega, Arduino Fio,Arduino Micro,Arduino Mini,arduino Nano,Arduino pro Mini,Boatduino,chipKit uno32,Spider robot Controller,DfRobot Romeo,Teensy 3,
  • En una máquina host que se comunica por wifi al cliente: Electric Imp April, pinoccio Scout, Particle Core ( Spark Core) ,Particle Photon, Sparkfun Photon RedBoard
  • En una máquina host que se comunica a través de Bluetooth al cliente :Blend Micro v1.0,LightBlue bean,

Johnny-Five como vemos hacer un énfasis especial en la robótica, pero tambien puede hacer muchas cosas diferentes con el software.De hecho ha existido durante hacer  más tiempo que la mayoría de los marcos de JavaScript para hardware . Ademas iene una API clara  y “fresca” ,ambas cosas ideales para los principiantes de hardware.

Lanzado porBocoup en 2012, Johnny-Five esta mantenido por una comunidad de desarrolladores de software apasionados e ingenieros de hardware. De hecho más de 75 desarrolladores han hecho contribuciones para construir un ecosistema robusto, extensible y muy versatil.

 

Hola Mundo! 

A los microcontroladores y las plataformas SoC nos gusta decir “Hola mundo” con un simple LED parpadeante, así  que veamos en primer lugar un ejemplo como lo hariamos  usando el Ide clásico  de Arduino

Como vemos en la imagen ,conectaremos un led entre el pin 13  y masa , respetando la polaridad (el ánodo al pin13 y el cátodo o pin corto a masa )

Para  hacer destellear el citado led,  estos son los pasos básicos  que tenemos que seguir en nuestro sketch  programandolo desde el IDE de Arduino:

  1. Configurar el pin 13 (con LED incorporado) como una SALIDA
  2. Establecer el pin 13 ALTO para encender el LED
  3. Esperamos 500 ms (medio segundo)
  4. Establecer el pin 13 BAJO para apagar el LED

Y este es el código completo para ejecutar desde el Ide de Arduino:

void setup() {
pinMode(13, OUTPUT);    
}
void loop() {
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);  
delay(500);
}

Y ahora vamos a ver el mismo ejemplo , pero ejecutandolo en Javascript por medio de node-js,

Desgraciadamente  si usamos un Arduino o alguno de sus variantes (Arduino Uno,SparkFun RedBoard, On a host machine communicating over Bluetooth to the client. Arduino Uno,Arduino Leonardo, Arduino Mega, Arduino Fio,Arduino Micro,Arduino Mini,arduino Nano,Arduino pro Mini,Boatduino,chipKit uno32,Spider robot Controller,DfRobot Romeo,Teensy 3,)   necesitaremos que el programa JavaScript se ejecute en una máquina host que ejecute Node.js. de modo que el programa transmitirá instrucciones básicas de E / S a la placa a través de una interfaz  serie USB , que actuara como un cliente ligero .

El método host-cliente implica la comunicación a través de una API común entre el host y el cliente. El marco Node.js usado con Arduino y placas similares , Johnny-Five, se comunica (de forma predeterminada) con las placas  utilizando un protocolo llamado Firmata, protocolo que permite que los hosts (computadoras) y los clientes (microcontroladores) intercambien mensajes de ida y vuelta en un formato basado en mensajes MIDI. El protocolo Firmata especifica cómo deben ser esos mensajes de comando y datos. La implementación de Firmata de Arduino proporciona el firmware real que puede poner en su tablero para hacer que “hable” Firmata. Toma la forma de un boceto de Arduino que sube al tablero.

Firmata es lo suficientemente popular como para que los bocetos de Firmata que necesita vengan empaquetados con el IDE de Arduino asi que bastara con subir este a Arduino una única vez  ya que  el código javascript  correra en el host usando node.js.

Puede seguir estos pasos para cargar el interfaz correcto de Firmata en su Arduino  para que se pueda utilizar como cliente en una configuración de host-cliente:

Resumidamente estos son los pasos previos para ejecutar el   mismo  ejemplo del led parpadeante  que hemos visto pero   en  javascript en una placa Arduino;

  • En primer lugar  conectar  su Arduino  mediante USB a  su ordenador
  • Lanzar el IDE de Arduino.
  • Asegurarse que esta configurada la version de su placa,  así como el puerto COM  virtual al que esta conectado
  • Acceda al menú Archivo> Ejemplos> Firmata
  • Seleccione StandardFirmataPlus de la lista y despliegue este sw sobre su Arduino

  • Ahora Instale Node.js   en su pc . Funciona  con ultima version 11.3.0  de  64 bit que incluye  npm 6.4 (no olvidar de chequear que se instalen  otros componentes )Este es el link de descarga https://nodejs.org/en/download/ 
  • En la instalación de Node.js, repetimo  no debemos olvidar de chequear que se instalen  otros componentes  pues  con ellos se   instalara automáticamente
    • Python 2.7.3 (http://www.python.org/getit/releases/2.7.3/)
    • Visual Studio Express 2010 de 32 bits (con  las dependencias de C ++)
    • El comando npm
    • Alternativamente si dispusiésemos de npm podríamos instalar ambos entornos  con  npm --add-python-to-path install --global --production windows-build-tools
  • Este pasos anterior ( instalacion de componentes ) es  innecesario  si chequeamos en la instalación  de node.js  pues se instalaran  esos componentes  automáticamente
  • Ahora instalar node-gyp  medianete  el comando  npm install -g node-gyp (esto instalará node-gyp globalmente)                          
  • Ya puede  crear su primer proyecto Johnny-Five, por lo que en primer lugar cree un directorio para él e instale el paquete framework npm, como se muestra en la siguiente lista:
    • < mkdir hello-world
    • < cd hello-world
    • < npm install johnny-five
  • Ejecute  el comando “npm install johnny-five” desde la carpeta del proyecto
  • Ya por fin podemos crear el fichero javascript  con su editor de texto  que contendrá el código en javascript  . 

Realmente estos son los pasos  que tenemos que seguir:

  1. Requerir el paquete johnny-five
  2. Inicializar un nuevo objeto Board que represente a su placa .
  3. Esperar a que el tablero dispare el evento listo
  4. Crear una instancia de un objeto LED en el pin 13 (el pin LED incorporado de Uno)
  5.  Hacer que el LED parpadee cada 500 ms

Este es el código en js :


const five = require(‘johnny-five’);
const board = new five.Board();
board.on(‘ready’, () => {
 const led = new five.Led(13);
   led.blink(500);
});


Guarde el archivo como hello-world.js  y  conecte su Arduino  a un puerto USB en su ordenador  si aún no está conectado.

En una terminal  de windows  vaya al directorio del proyecto y ejecute este comando:

<node hello-world.js


Verá una salida como la siguiente en su terminal ejecutando hello-world.js en una terminal

 

 

Si el LED incorporado parpadea ,!enhorabuena !  !acaba de controlar una placa Arduino con JavaScript!  ¿a que es realmente sencillo?.

Aunque en el caso de la familia Arduino tiene la innegable penalización de necesitar un host para operar , la ventajas de este  modelo son evidentes pues no tenemos que estar constantemente compilando  y  subiendo el sketch con el ide de Arduino ya que el programa corre en host . Ademas  podemos usar un simple editor de texto para cambiar el código en javascript fácilmente

Asimismo el lenguaje javascript ha ido evolucionando hasta un ritmo que no podemos imaginar   incluyendo muchas características que no son soportadas de forma directa desde Arduino

Por ultimo mencionar la autentica potabilidad del código , pues el código que hemos visto en el ejemplo podremos usarlos  en múltiples plataformas  tan diferentes como Raspberry pi, Intel Edison , etc usando siempre el mismo código fuente aun siendo soportado por placas muy diferentes ¿ a que es interesante?

 

 

Placas soportadas

Johnny-Five ha sido probado con una variedad de tableros compatibles con Arduino . 

Para los proyectos que no están basados ​​en Arduino, los complementos de IO específicos de la plataforma están disponibles. Los complementos IO permiten que el código Johnny-Five se comunique con cualquier hardware en cualquier idioma que la plataforma hable.

Como comentábamos   existen diferentes  formas de   ejecutar  el programa Johnny-Five  segun la placa:

  • En un entorno Linux a bordo: beagleBone Black,Chip,Intel Galileo gen 1,Intel Galileo Gen 2,Intel Edison Arduino,Intel Edison Mini, SparkFun Edison GPIO Block,SparkFun Arduino Block, Intel Joule 570x (Carrier Board),Linino One,pcDuino3 Dev Board,Raspberry Pi 3 Model B, Raspberry Pi 2 Model B. Raspberry Pi Zero,Raspberry Pi Model A Plus,Raspberry Pi Model B Plus, Raspberry Pi Model B Rev 1, Raspberry Pi Model B Rev 2, Tessel 2) ,   Es  facil adivinar qeu este es el mabiente ideal   pues dentro de la placa se oprtan tanto el host como el cliente  por lo qeu no ncesitamos conectarnos con otro dispositivo
  • En una máquina host conectada (a través de Serial USB o Ethernet) a un cliente.: Arduino Uno,SparkFun RedBoard, On a host machine communicating over Bluetooth to the client. Arduino Uno,Arduino Leonardo, Arduino Mega, Arduino Fio,Arduino Micro,Arduino Mini,arduino Nano,Arduino pro Mini,Boatduino,chipKit uno32,Spider robot Controller,DfRobot Romeo,Teensy 3,
  • En una máquina host que se comunica por wifi al cliente.: Electric Imp April, pinoccio Scout, Particle Core ( Spark Core) ,Particle Photon, Sparkfun Photon RedBoard
  • En una máquina host que se comunica a través de Bluetooth al cliente :Blend Micro v1.0,LightBlue bean,

Veamos  ahora cada  caso en concreto;

Arduino Uno 

Ambiente 

  • Firmware / Runtime: : StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

SparkFun RedBoard 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

ping

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

 

Arduino leonardo 

Ambiente 

  • Firmware / Runtime:  StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

Arduino Mega 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
ping

Arduino Fio 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

Arduino Micro 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire no
Paso a paso no
Serial / UART
Dac no
Ping

Arduino Mini 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire no
Paso a paso no
Serial / UART
Dac no
Ping

Arduino Nano 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Ping

Arduino Pro Mini 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire no
Paso a paso no
Serial / UART
Dac no
ping

BotBoarduino 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere amarre.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
ping

chipkit uno32 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire
Paso a paso
Serial / UART
Dac no
ping

Spider Robot Controller 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere  tetehering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
ping

DFRobot Romeo 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere amarre.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

Teensy 3 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere amarre.
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART no
Dac no
ping

BeagleBone Black 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

CHIP 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo no
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Ping no

Blend Micro v1.0 

Ambiente 

  • Complemento IO: BlendMicro-IO ( instrucciones adicionales )
  • Firmware / Runtime: BLEFirmata
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a través de Bluetooth a la placa, que actúa como un cliente ligero .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Ping no

 Electric Imp  April 

Ambiente 

Plataforma específica 

  • Requiere una conexión WiFi conectada a Internet y está sujeto a la limitación de la tasa de solicitud por parte del servidor de Electric Imp API.
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C no
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Intel Galileo Gen 1 

Ambiente 

Plataforma específica 

  • Las compilaciones que no son IoTKit ya no son compatibles.
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Intel Galileo Gen 2 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Silbido no

Intel Edison Arduino 

Ambiente 

Plataforma específica 

  • El hardware es capaz de soportar solo 4 salidas PWM. Como resultado, los enlaces nativos no admiten PWM en los pines 10 y 11.
  • Aunque Galileo-io / Edison-io / Joule-io todavía no admite comunicaciones en serie, puede enlazar a / dev / ttyFMD1 en la placa Edison Arduino usando el módulo serialport .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Silbido no

Intel Edison Mini 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Silbido no

SparkFun Edison GPIO Block 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

SparkFun Arduino Block

Ambiente 

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART no
Dac no
ping no

Intel Joule 570x (Carrier Board) 

Ambiente 

Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

LightBlue Bean

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Linino uno 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

pcDuino3 Dev Board 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo no
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Pinoccio Scout 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C no
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Raspberry Pi 3 Modelo B 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no

Raspberry Pi 2 Modelo B 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Silbido no

Raspberry Pi Zero 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no

Raspberry Pi Model A Plus 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no

Frambuesa Pi Modelo B Plus 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Silbido no

Raspberry Pi Modelo B Rev 1 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Ping no

Raspberry Pi Modelo B Rev 2 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no


Particle Core (Spark Core)

Ambiente 

Plataforma específica 

  • Los temporizadores se comparten en grupos: Temporizador 2: A0 , A1 , Temporizador 3: A4 , A5 , A6 , A7 , Temporizador 4: D0 , D1
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping


Particle Photon

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
ping no
Silbido

Sparkfun Photon RedBoard 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping

Tessel 2 

Ambiente 

Plataforma específica 

  • El soporte de servo se proporciona a través de componentes I2C (por ejemplo, PCA9685 )
  • DAC está limitado a Puerto B, Pin 7
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac
ping no

Mas información en  http://johnny-five.io/platform-support/

Error splicing file:file too large

Veremos como superar el problema “Error splicing file:file too large” al copiar ficheros grandes desde Linux.


En efecto en un ordenador con sistema operativo Linux  en cualquier de sus variantes como Ubuntu, Lubuntu ,Fedora, etc.  puede  que copiando archivos  grandes hacia una unidad extraible USB termine dando error con el típico mensaje   “Error splicing file:file too large“.

Afortunadamente entender el motivo  del error es sencillo ,pues generalmente el problema se debe a que el disco de destino (es decir en la unidad extraible en el que desea copiar el archivo) está formateado con el sistema de fichero FAT32 , el cual  tiene un límite de tamaño de archivo de aproximadamente 4GB, por lo que efectivamente Linux cuando intenta copiar sobre una unidad destino formateada en fat32 el so. empieza copiando hasta que llega  aproximadamente a los 4GB , momento en el cual no puede continuar, pues el sistema de ficheros no lo permite, terminando dando error y abortándose la copia.

Curiosamente según el tipo de fichero que sea ,es posible que incluso abortando la copia con el mensaje Error splicing file:file too large , en caso de copias de ficheros de vídeo ( por ejemplo en formato mkv) , a pesar de esto, incluso con el error puedan ser reproducibles parcialmente ( es decir, sin poder reproducirse hasta su totalidad).

Afortunadamente para resolver este problema, la solución es bien sencilla pues bastara en volver a  formatear su disco de destino a EXT3, EXT4 o NTFS.

Mientras que FAT, FAT32 y exFAT se utilizan en memorias USB y tarjetas SD , NTFS es   utilizado sobre todo por discos duros, lo cual no significa  que ntfs no  deba usarse también en unidades extraibles USB: todo lo contrario ,pues por las razones que vamos a ver , ntfs tambien deberia ser  la mejor opción para unidades  extraibles usb.

NTFS (New Technology File System) es el sistema de archivos que Windows utiliza por defecto,  (de hecho windows sólo puede ser instalado en una unidad con este sistema),Su adaptación no es casual pues , ntfs  conlleva  múltiples ventajas:

  • Como hemos comentado su límite de tamaño de archivos es de 16 TB,  ( los volúmenes pueden llegar a tener 264 TB cada uno)
  • Se pueden configurar los permisos de acceso a un archivo (vital para un sistema operativo).
  • Permite cifrar archivos.
  • Permite nombres de archivos largos.
  • Se recupera más fácilmente de errores si el ordenador se cuelga

Vemos pues para soslayar el problema “Error splicing file:file too large”  y la unidad destino esta formateada en otro formato ,  tendremos  que  formatear en NTFS  pues así no habrá problemas  a  la hora de copiar estos ficheros.

 

FORMATEO DESDE WINDOWS

En realidad formatear en NTFS un unidad USB con Windows 10 es muy fácil:

  • Pinche con el botón DERECHO del ratón en el menú Inicio de Windows y elige Explorador de archivos.
  • En la ventana que se abre haga clic a la izquierda en Este equipo.
  • A la derecha verá las unidades de disco duro, particiones, discos o pendrives USB o CD/DVD que tenga tu PC. Seleccione la unidad que quiere formatear pinchando en ella con el botón izquierdo. Luego haz clic encima con el botón DERECHO y elige Formatear. (!IMPORTANTE !: -Es obvio que debe elegir con mucho cuidado la unidad pues formatearla borrará por completo todo lo que haya en ella.
  • Al elegir la opción de formateo se abre su ventana de propiedades.Defina así las opciones siguientes que incluye:
      • Sistema de archivos:Pincha en la lista desplegable de abajo y elija  NTFS.
      • Tamaño de unidad de asignación. Lo normal es que deba mantener el tamaño que te indique por defecto la ventana de formateo.
      • Etiqueta del volumen :Escriba un nombre que describa lo que hay o habrá en ese disco o USB. No es una opción obligatoria pero sí recomendable.
      • Opciones de formato:Desactive la casilla de Formato rápido haciendo clic en ella. Así obligara a que Windows chequee el disco o USB e intente reparar de forma automática posibles errores que tenga por lo que puede ahorrarle problemas futuros o hasta pérdidas de datos. Por cierto mantener el formato rápido acelera el proceso pero se salta la comprobación del disco o USB.
  • Finalmente pulse Iniciar cuando acabes de configurar esas opciones. Confirme con Aceptar el aviso de que se borrará todo lo que haya en esa unidad.
  • El formateo tardara más o menos dependiendo del tamaño de la unidad seleccionada, la velocidad de su PC y si ha elegido o no la opción rápida. Acepte y cierra la ventana cuando termine.

 

FORMATEO DESDE LINUX

Ahora veremos como  soslayar el problema ” Error splicing file:file too large”  y la unidad destino esta formateada en otro formato ,   formateando  en NTFS  desde el propio Linux  para que no haya problemas  a  la hora de copiar ficheros de mas de 4GB

Lo primero que tenemos que tener claro a la hora de formatear una unidad es la ruta en la que se encuentra en el sistema.

Para ver que dispositivo es el que vamos a usar escribimos en Terminal (Abrir Terminal presionando Ctrl + Alt + T) :

Para eso, solo tendremos que escribir en el Terminal el comando:

df

Este comando nos mostrará todos las particiones y discos que tiene actualmente el ordenador conectados al sistema. Como podremos observar, los sistemas basados en Ubuntu 16.04 asignan cómo nombre de partición de la siguiente forma sdaX donde la X es un número de partición, por lo que si tenemos una unidad USB  conectado , el nombre será muy similar a sdaX ( por e ejemplo sdb3).

Una vez hayamos encontrado la memoria USB desde el terminal, tenemos que desmontarlo del sistema para que podamos formatearlo. Para realizar esta tarea tendremos que ejecutar el siguiente comando:

sudo umount /dev/sdb3

Ahora ya lo tenemos preparado para formatear. Por lo que tendremos que escribir la siguiente línea de código en el terminal.

sudo mkfs.vfat -F 32 -n "Nombre_pendrive" /dev/sdb3

Quizá no entiendas nada de lo que hemos puesto en esa parte de código, pero aquí estamos para resolver estas dudas:

  • mkfs.vfat: Es el programa de ejecución de la herramienta del terminal para formatear unidades del sistema.

  • -F 32: Esto le indica al sistema que el formato ha de realizarse con el sistema de archivos de Fat32.

  • -n “Nombre_pendrive”: Este será el nombre que aparecerá cada vez que conectemos el USB al ordenador.

  • /dev/sdb3: Esta tiene que ser la ruta completa donde se sitúa la memoria USB que queremos formatear.

 

Es posible formatear   en diferentes formatos:

  • Formatear USB con Extended File System (Ext) :Este es el sistema de archivos preferido por Linux.

<pre “>

sudo mkfs.ext4 /dev/sdb3

  • Formatear USB con FAT (File Allocation Table) 
 sudo mkfs.vfat /dev/sdb3 
  • Formato de formato USB con NTFS (Sistema de archivos de nueva tecnología)
 sudo mkfs.ntfs /dev/sdb3 

Por ultimo, salimos de Terminal con:

exit

Esta es la salida de la ejecución de estos comandos:

[email protected]:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 214372 0 214372 0% /dev
tmpfs 47028 2948 44080 7% /run
/dev/sda1 38192692 11567744 24655132 32% /
tmpfs 235132 0 235132 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 235132 0 235132 0% /sys/fs/cgroup
tmpfs 47024 12 47012 1% /run/user/1000
/dev/sdb1 15108880 41156 15067724 1% /media/carlos/KINGSTON16G

[email protected]:~$ sudo umount /dev/sdb1
[sudo] password for carlos:

[email protected]:~$ sudo mkfs.ntfs /dev/sdb1
Cluster size has been automatically set to 4096 bytes.
Initializing device with zeroes: 41%100% – Done.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.
[email protected]:~$

 

No esta de mas recordar que debe cambiar la identificación del dispositivo USB en los comandos anteriores o desde el interfaz grafico ,En el  ejemplo en un viejo portatil hp con Lubuntu se ha usado sdb3 , pero no necesariamente sera el mismo identificador que tengan sus unidades.

Como puedes observar, es un proceso muy sencillo pero tiene las complicaciones de saber que es lo que hace cada cosa y cual es la dirección correcta que queremos formatear, ya que si nos equivocamos puede ser fatal para nuestro sistema operativo.