Gestión de múltiples versiones de pyton en Ubuntu
– Paso previo, añadir software-properties-common y repositorio.
sudo apt install software-properties-common sudo add-apt-repository ppa:deadsnakes/ppa
– Instalación de las versiones de python: 3.10 y 2.7.
sudo apt install python3.10 python3.10 --version sudo apt install python2.7 python3.7 --version
– Configuración de ubuntu para facilitar el cambio de una version a otra.
//Creas enlaces simbolicos con update-alternatives sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 2 //Menu para seleccionar la version elegida sudo update-alternatives --config python //comprobar la versión activa python --version
JQ
JQ es una herramienta de consola que nos permite parsear ficheros json. Te permite buscar dentro de un json y mostrar los resultados formateados en lugar de en una sola línea.
Existe una herramienta online donde puedes practicar expresiones: https://jqplay.org/
En el post anterior donde extraiamos de un Json la información necesaria para la Git Action se utilizó con este ejemplo.
Documentación oficial: https://stedolan.github.io/jq/
Herramienta para formateo de json: https://jsonformatter.curiousconcept.com
Programa de audio para Raspberry pi (alsamixer)
Alsamixer es un programa de mezclado de audio para la arquitectura de sonido de Linux ALSA. Se utiliza para configurar el sonido y ajustar los volúmenes. Se ejecuta por consola.
Configuración
-h, -help Ayuda: muestra las opciones disponibles. -cSelecciona la placa de sonido a utilizar, si en el sistema existen más de una placa. Las placas se numeran desde 0 (por defecto). -D Selecciona el mezclador para el control. -g Cambia el uso de colores. -s Minimiza la ventana del mezclador -V Selecciona el modo de vista inicial, reproducción, captura o todos.
Reproductor multimedia para Raspberry Pi (Omxplayer)
Omxplayer es una aplicación que viene instalada por defecto en Raspbian. Este reproductor multimedia se ejecuta desde un terminal y nos permite controlarlo desde allí de forma sencilla mediante conexión ssh.
Ejemplo de uso… Supongamos que queremos reproducir el fichero videoclip.mp3
Bastaría simplemente con ejecutar en la consola: omxplayer -o hdmi videoclip.mp3
Eso sería la forma mas sencilla de utilizarlo, si por ejemplo quisiéramos utilizar un altavoz conectado por USB el comando seria: omxplayer -o alsa:hw:1,0 videoclip.mp3
Una vez lanzado podríamos interactuar con la reproducción utilizando nuestro teclado:
z – Mostrar información del vídeo 1 – Aumentar velocidad 2 – Reducir velocidad j – Cambiar al anterior canal de audio k – Cambiar al siguiente canal de audio i – Capitulo anterior o – Siguiente capítulo n – Anterior idioma de subtítulos m – Siguiente idioma de subtítulos s – Cambiar subtítulos d – Atrasar subtítulos 250 ms f – Adelantar subtítulos 250 ms q – Cerrar omxplayer Espacio / P – Pausar / reanudar – Bajar volumen + Subir volumen Flecha a la izquierda – Retorceder 30 segundos Flecha a la derecha – Avanzar 30 segundos Flecha abajo – Retroceder 600 segundos Flecha arriba – Avanzar 600 segundos
Automatizar tareas en cron
Paso 1/ Instalamos el gnome-schedule
sudo apt-get install gnome-schedule
Paso 2/ Editamos la tabla de tareas
crontab -e
# m h dom mon dow command # * * * * * command to execute # - - - - - # ¦ ¦ ¦ ¦ ¦ # ¦ ¦ ¦ ¦ ¦ # ¦ ¦ ¦ ¦ +----- day of week (0 - 7) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0) # ¦ ¦ ¦ +---------- month (1 - 12) # ¦ ¦ +--------------- day of month (1 - 31) # ¦ +-------------------- hour (0 - 23) # +------------------------- min (0 - 59)
0 0 * * * /home/pi/backup.sh
0 */3 * * * sudo service serv1 start
0 */4 * * * sudo service serv2 start
Paso 3/ Podemos listar las tareas con el comando
crontab -l
Nota: Despues de realizar modificaciones es necesario reiniciar el servicio.
sudo /etc/init.d/cron restart
Logrotate
Logrotate permite rotar a los archivos de LOG de nuestras aplicaciones. El logrotate se trata de un servicio que se ejecuta de forma autónoma, si queremos comprobar su funcionamiento basta con ejecutar la siguiente instrucción:
logrotate -vf /etc/logrotate.conf
Es en ese fichero donde se establece la configuración base para cualquier log que deseemos rotar. Vamos a poner un ejemplo de configuración para un aplicación de Node.js donde se utiliza Forever. Para ello:
Añadimos en /etc/logrotate.conf la configuración
/home/admin/.forever/*.log { daily # how often to rotate rotate 10 # max num of log files to keep missingok # don’t panic if the log file doesn’t exist notifempty # ignore empty files compress # compress rotated log file with gzip sharedscripts # no idea what it does, but it’s in all examples copytruncate # needed for forever to work properly dateext # adds date to filename dateformat %Y-%m-%d. }
Tras añadirlo iniciamos el logrotate
sudo logrotate -s /var/log/logstatus /etc/logrotate.conf
Podeis comprobar que los logs se están tratando asi:
tail -f /var/log/logstatus
Instalación RabbitMQ en Ubuntu
RabbitMQ se trata de un software de código abierto para la negociación de mensajes. Implementa el estándar Advanced Message Queuing Protocol (AMQP).
Nota: AMQP es un protocolo binario que destaca por su interoperabilidad y fiabilidad. Ofrece un amplio conjunto de funcionalidades como colas fiables basadas en mensajería P/S, enrutamiento flexible, seguridad, además de permitir un control en profundidad de colas, cabeceras,…
Para instalarlo en ubuntu se pueden seguir los siguientes pasos:
1 – Añadir el repositorio de rabbitmq al ubuntu
echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
2 – Instalarlo
sudo apt-get update sudo apt-get install rabbitmq-server
3 – Comandos para iniciar, parar,…
//inicio el servicio rabbitmq sudo service rabbitmq-server start //parar el servicio rabbitmq sudo service rabbitmq-server stop //reiniciar el servicio rabbitmq sudo service rabbitmq-server restart //ver el estado del servicio rabbitmq sudo service rabbitmq-server status
3 – Configuración
Por defecto trae creado el usuario: guest (la contraseña es la misma). Podriamos cambiar esa contraseña pero vamos a explicar como sería crear un usuario nuevo para luego borrar el de por defecto:
//creamos el usuario admin con la contraseña 123 sudo rabbitmqctl add_user admin 123 //al usuario admin le asignamos el rol de administrator sudo rabbitmqctl set_user_tags admin administrator //eliminamos el usuario por defecto (guest) sudo rabbitmqctl delete_user guest
Podemos crear ahora un virtual host con el nombre DISASTER. Un Virtual Host viene a ser el namespace sobre el que luego crearemos los distintos objetos que vamos a utilizar para el intercambio de mensajes (p.e. colas)
//se crear el virtual host sudo rabbitmqctl add_vhost DISASTER //asignamos permisos de configuración/lectura/escritura al usuario admin sudo rabbitmqctl set_permissions -p DISASTER admin ".*" ".*" ".*"
Una vez creado el virtual host ya podriamos crear en él los canales para realizar el intercambio de mensajes.
Todo esto lo podriamos haber hecho desde la consola que nos provee el propio rabbitmq. Para ello, tendriamos que habilitarla
sudo rabbitmq-plugins enable rabbitmq_management
Una vez habilitada podriamos acceder a ella así: http://localhost:15672/
Por defecto solo se puede acceder a la web desde localhost, por lo tanto tenemos dos opciones: o bien se cambia la configuracion o bien accedemos desde un tunel.
Para la configuración se debe abrir el fichero /etc/rabbitmq/rabbitmq.config y añadir los accesos que se deseen:
{tcp_listeners, [5672]}, {loopback_users, []}
4 – Logs
Por defecto en /var/log/rabbitmq
Máquinas virtuales de Bitmani para desarrollo web
Bitnami es una biblioteca de aplicaciones de servidor populares y entornos de desarrollo que se pueden instalar con un solo clic. Es tan sencillo como descargarse una máquina virtual ya preparada para VMware o Virtual Box con los servidores que deseemos. Además, luego le puedes ir añadiendo módulos que vayas necesitando.
A continuación se muestra una guía de comandos rápida de uso para montar un servidor Tomcat con java 1.7 y nodejs.
Arrancar y parar Tomcat ----------------------- Todos los servicios se arrancan y paran de la siguiente forma: sudo /opt/bitnami/ctlscript.sh status sudo /opt/bitnami/ctlscript.sh start tomcat sudo /opt/bitnami/ctlscript.sh stop tomcat sudo /opt/bitnami/ctlscript.sh restart tomcat Cambiar el teclado inglés ------------------------- Por defecto la máquina virtual viene configurada con teclado en inglés. Para cambiarlo sería: sudo dpkg-reconfigure keyboard-configuration Activar SSH ----------- Por defecto el servicio ssh viene desactivado. Se puede activar así: sudo mv /etc/init/ssh.conf.back /etc/init/ssh.conf sudo start ssh Configuración de red en VMware ------------------------------ Tarjetas de red con el VMware Bridge Protocol desactivado. Tarjetas de red con ip y dns automático. Network Adapter de la máquina virtual en modo brighed. Configurar la red manualmente. ------------------------------ Hay que editar el archivo interfaces, por ejemplo así: 1- Editamos la interface de la tarjeta de red. En este caso la eth0 vi /etc/network/interfaces Dentro del archivo debes buscar: auto eth0 iface eth0 inet dhcp y sustituirlo por lo que corresponda en cada caso: auto eth0 iface eth0 inet static address 192.168.1.40 netmask 255.255.255.0 gateway 192.168.1.1 network 192.168.1.0 broadcast 192.168.1.255 2- Ahora editamos los DNS: vi /etc/resolv.conf nameserver = 8.8.8.8 nameserver = 8.8.4.4 3- Por ultimo reiniciamos el servicio de red: /etc/init.d/networking restart Cambiar la jdk -------------- Descargar la deseada, en este caso queremos pasar de la 1.8 que nos traia la máquina a la 1.7 así que descargamos al 1.7 de aquí http://www.oracle.com/technetwork/es/java/javase/downloads/jre7-downloads-1880261.html Lo más rápido es reemplazar el directorio /opt/bitnami/java por el nuevo. Se puede hacer por consola tal que así: sudo mv /opt/bitnami/java /opt/bitnami/java8 sudo mv /tmp/java /opt/bitnami/java sudo chown -R root /opt/bitnami/java (cambiar el usuario) sudo chown -R :root /opt/bitnami/java (Cambiar el grupo) sudo chmod -R 777 /opt/bitnami/java Añadir un módulo nuevo (Ej: nodejs) ----------------------------------- Descargarse de la página el *.run https://bitnami.com/stack/nodejs/installer#linux Se puede utilizar para ello el comando wget si se quiere. wget https://bitnami.com/..................../bitnami-nodejs-5.4.0-0-linux.run Darle permisos: chmod 755 bitnami-nodejs-5.4.0-0-linux.run Ejecutarlo y seguir los pasos de instalación sudo /bitnami-nodejs-5.4.0-0-linux.run Apagar la máquina virtual ------------------------- sudo poweroff
DOC:
https://wiki.bitnami.com/Virtual_Appliances_Quick_Start_Guide
https://bitnami.com/stack/tomcat/virtual-machine
Instalar linux mediante memorias USB
Para instalar un Sistema Operativo Linux desde una memoria USB o pendrive se puede utilizar la herramienta: Universal USB Installer.
Universal USB Installer te permite escoger qué distribución Linux instalar. Para ello basta con descargar la ISO si no la tienes y crear un espacio en la memoria USB donde guardar tus documentos y archivos. Como ventajas se pueden resaltar:
– Es compatible con las principales versiones de Linux
– Es muy fácil de usar
– Es portable, no necesita instalación
XDK intel
Gracias a XDK intel podemos desarrollar aplicaciones en HTML 5 para luego generar aplicaciones para distintas plataformas:
Aplicaciones móviles: iOS, Android (nativo, Cordova, Crosswalk), Windows 8 Store, Windows Phone 8, Tizen, y Nook.
Aplicaciones web: Web, Chrome App, Fracebook App.
El XDK permite emular apps en dispositivos virtuales en distintos dispositivos (iPhone, Microsoft Surface, Google Nexus, …). Además, ofrece la capacidad de que los desarrolladores puedan almacenar su código en la nube de manera gratuita.
Video donde se puede ver la configuración de XDK y Demo de aplicativo
Making Native Mobile Apps with HTML5 Using the appMobi XDK
Write once and deploy to multiple platforms with HTML5 and Intel® XDK
Categorias
- adobe (2)
- agile (1)
- Alfresco (1)
- Android (26)
- Angular (6)
- angularjs (10)
- apache (1)
- axis (2)
- Bases de datos (14)
- Bootstrap (1)
- C# (3)
- Cámara (1)
- chrome (3)
- Codeigniter (2)
- Control de Versiones (2)
- CSS (25)
- CVS (1)
- Django (9)
- Django Rest Framework (1)
- DNS (1)
- Docker (3)
- dominio (1)
- eclipse (5)
- Entity Framework (2)
- ETL (1)
- Firefox (6)
- flash (1)
- freecad (1)
- Git (12)
- GitHub (4)
- gpg (2)
- Groovy (1)
- Handlebars (1)
- hibernate (4)
- hosting (1)
- HTML (50)
- HTML 5 (26)
- Impresión 3D (9)
- Inkscape (1)
- IOS (2)
- ireports (3)
- Java (44)
- Javascript (55)
- JBoss (5)
- JPA (2)
- JQuery (20)
- Json (7)
- JSP (6)
- Keycloak (1)
- Lamp (1)
- LDAP (2)
- lean (1)
- linkedin (1)
- LINQ (1)
- linux (13)
- Livecycle (1)
- log (1)
- microcontroladores (1)
- MongoDB (4)
- MySQL (8)
- Node.js (5)
- OC4J (1)
- Openshift (2)
- Oracle (6)
- Patrones de Diseño (1)
- Photoshop (2)
- php (20)
- PostgreSQL (1)
- python (19)
- rabbitmq (1)
- Raspberry PI (13)
- Raspherry PI (5)
- React (6)
- seguridad (3)
- Selenium (3)
- Sencha Touch (1)
- Sin categoría (29)
- Spring (17)
- spring-boot (3)
- SQL (7)
- SQLServer (1)
- SSO (1)
- struts (2)
- SVN (1)
- Talend (1)
- Tomcat (6)
- unity (3)
- Visual Studio Code (2)
- vmware (5)
- Web Services (11)
- windows (18)
- wordpress (10)
- Xiaomi (1)
- xml (2)
Trabajos Realizados
- App Android – Autoka Fr
- App Android – Cartelera Cántabra
- App Android – Gramática y Vocabulario Ingles
- App Android – Hoja de Gastos
- App Android – Hotel Torre Cristina
- App Android – OcioEnjoy
- App Android – Visor CardBoard
- App Firefox – Managapp
- DiamanteBomba – DisasterCode
- Generador de Partes de Trabajo
- GitHub – Android Web Generator
- GitHub – Dynamic Angular Gallery
- GitHub – Dynamic React Gallery
- GitHub – Sotilizator
- GitHub – SpringAngularJS
- GitHub – Swiper Dynamic Angular Gallery
- HazParejas – DisasterCode
- RompeCabezas – DisasterCode
- Unity Game – English Couple
- Unity Game – Kill Wasp
- WordPress – El Buen Apicultor
- WordPress – El Cajón de los Retales
- WordPress – El Vestidito Azul
- WordPress – Feuchas
- WordPress – Fragua de Navajas Ponce
- WordPress – Humor a las Tres
- WordPress – Photo Places