jueves, 14 de marzo de 2019

Instalar WORDPRESS en Debian 9


Página principal

Instalar

 WORDPRESS

en

 Debian 9


Hace un par de años había instalado WordPress en Debian 7, y me sorprendió por su diseño y facilidad de configurar.
Como había pasado tiempo y ya probado el Debian 9 durante bastante tiempo, se me ocurrió instalar WordPress en Debian 9.
Seguí las mismas instrucciones que use en su tiempo para Debian 7, pero no me funcionaba, había pasado el tiempo y seguro que habrían modificado bastantes configuraciones, por lo que me puse manos a la obra.
Para no complicarme mucho realicé todas la pruebas sobre maquinas virtuales en VirtualBox, facilitan mucho las cosas antes de instalar todo en una maquina física.

En la selección de programas he instalado un escritorio ligero LXDE.
Aunque no es necesario he seleccionado el servidor de impresión, SSH server, y las utilidades del sistema.

Dependiendo de la velocidad de nuestro ordenador y del lugar de donde se instale, ya sea CDROM o USB, tardará en instalar entre 12 y 20 minutos.
Una vez ya instalado todo y reiniciado el ordenador, entramos en el usuario creado durante la instalación y abrimos una consola.
Lo primero es instalar los programas que necesitamos para que funcione WordPress como puede ser PHP y MySQL (Ahora mariadb).
Consola y como root
apt-get install default-mysql-client
apt-get install default-mysql-server
apt-get install mysql-common
apt-get install php-common

apt-get install mariadb-client
apt-get install mariadb-client-core
apt-get install mariadb-common
apt-get install mariadb-server
apt-get install mariadb-server-core
apt-get install mysql-common
apt-get install rsync
apt-get install socat

apt-get galera-3
apt-get gawk


apt-get install libbs2b0
apt-get install libsdl2

service apache2 reload
Lo normal es que con los cuatro primeros paquetes sirva, los demás son dependencias de los anteriores.
Consola y como root
chown seta  /var/www/html/  -R
chmod g+w  /var/www/html/ -R
Cambiamos unos permisos para que el usuario seta (administrador de la WEB pueda copiar ficheros)

Tenemos que ir a la página oficial de WordPress y bajar la los ficheros de WordPress.
En nuestro caso es la versión : wordpress-4.1.25-es_ES.tar.gz

Lo descomprimimos con la orden:
    tar -xzf wordpress-4.1.25-es_ES.tar.gz -C  /var/www/html/


Y cambiamos los permisos:
    chmod ugo+rw /var/www/html/wordpress/wp-content
    chmod ugo+rw /var/www/html/wordpress

En cuanto a los permisos no lo tengo muy controlado, había veces que me funcionaba desde el usuario seta pero cuando entraba desde fuera del otro ordenador no funcionaba.
Con los permisos anteriormente puestos, funciona perfectamente.

Consola y como root
mysql -u root -p

Entramos en la consola MySQL

CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

    CREATE USER 'seta'@'localhost' identified by 'murcielago';

    GRANT ALL PRIVILEGES ON wordpress.* TO 'seta'@'localhost';

    exit;

service apache2 reload
Para que funcione el WordPress se necesita crear una base de datos donde se almacenen los datos.
Esta base de datos tiene que tener un usuario y su contraseña.
La base de datos es wordpress , usuario es  seta, y la contraseña es murcielago.
Ahora deberíamos tener todo configurado para que funcionase el WordPress.
He configurado mi IP del ordenador servidor web para que sea 192.168.1.50.
Desde otro ordenador, aunque puede ser el mismo teclear en el navegador:
192.168.1.50/wordpress
Seguimos lo pasos y rellenamos los campos requeridos.
Si todo funciona bien no mostrará:
Ya solo nos queda entrar como usuario.
Entramos en la configuración y la apariencia.
Creamos una página de prueba.
Mi primera página.

Espero que le sirva a alguien este tutorial.



Saludos
Juan

Bibliografía:

viernes, 1 de marzo de 2019

Arduino Digisparck - Luces de navidad - Luces intermitentes

Página principal


Arduino Digisparck
Luces de navidad
Luces intermitentes

Después de haber creado el montaje de Luces de navidad, se me pasó por la cabeza hacerlo funcionar con la placa Digisparck que utiliza el chip Attiny85.
Digisparck es básicamente un Attiny85 (alrededor de 1.15 €) con una interfaz programable sencilla a través de USB y regulador de voltaje en un solo chip. Tiene 6 pines de salida / entrada con los cuales puede conectar dispositivos I2C (con pines SDA un SCK), dispositivos de entrada analógica.





En el Entorno IDE de arduino 1.8.5.

Debemos en preferencias añadir un gestor adicional de tarjetas.
http://digistump.com/package_digistump_index.json

En menú herramientas ->placa -> Gestor de placas.
    Añadir  Digistump AVR Boards

Reiniciamos la IDE de arduino y en menú herramientas ->placa -> Digispark (default 16.5MHz)

Para Linux  que es mi caso Debian 9.5 debemos realizar una serie de cambios.
Como root creamos un fichero.

pluma /etc/udev/rules.d/digispark.rules

(el editor que utilizo es pluma, entorno MATE)

Insertamos el siguiente texto:

SUBSYSTEM=="usb", ATTR{idVendor}=="16d0", ATTR{idProduct}=="0753", MODE="0660", GROUP="dialout"

Guardamos y cerramos.

Compilamos el programa, y lo cargamos en el Digisparck, que no estará conectado.
Nos saldrá un mensaje que tenemos 60 segundos para insertar la tarjeta.
Insertamos la tarjeta, y si todo va bien nos cargará el programa.
Ahora nos falta desconectar la tarjeta Digisparck y volver a conectarla.
Después de unos segundos veremos nuestro programa funcionando en la  Digisparck.
Debemos tener desconectados todos los pin de la placa antes de programar desde el USB.


Mensaje de la consola de arduino.



Montaje alimentado desde una Power Bank


Montaje alimentado desde 3 pilas de 1,5V

El circuito se puede alimentar fácilmente mediante un POWER BANK, o a través de 3 pilas de 1.5V (4.5V) , el arduino funciona en la mayoría de las veces con tensiones de hasta 4V.


PROGRAMA

En mi opinión el Arduino Digisparck es una forma original de hacer un arduino. Pero debo decir que la diferencia de precio entre esta placa y un arduino nano o micro, no justifica su compra. Es difícil su programación eléctrica, debido a que tienes que conectar la placa para programarla. Solo se justifica la compra por lo diminuto de su tamaño, y la posibilidad de incorporar la placa en lugares donde no entraría los otros modelos.

Saludos.
Juan Galaz


Bibliografía:
https://www.luisllamas.es/programar-digispark-con-el-ide-de-arduino/
https://digistump.com/wiki/digispark/tutorials/basics
https://digistump.com/wiki/digispark/tutorials/connecting
http://janiserdmanis.org/blog/arduino-and-digispark
https://sunupradana.info/tkr/2017/07/

jueves, 21 de febrero de 2019

Arduino - Luces de navidad - Luces intermitentes


Página principal


Arduino
Luces de navidad
Luces intermitentes

Cuando empiezas a programar con arduino, lo primero que pruebas es el LED de luz intermitente que viene incorporado en el propio arduino.
Esta práctica  la he diseñado para principiantes que empiezan con arduino y quieren probar un poco de todo.
Seguro que en muchas casas tendréis las clásicas luces de navidad con un botón para cambiar el modo de parpadeo, esta práctica hace eso con arduino.
En mi caso tenía una tira de luces de LED bastante larga, por lo que decidí cortarla para hacer dos tiras y hacerlo mucho mas vistoso.
Las salidas de arduino pueden proporcionar como mucho 40mA, por lo que tenéis que ajustar el valor de las resistencias para que no superen este valor, en mi caso era de 100 ohmios, y como mucho superaba los 20mA.
Para cambiar el modo de parpadeo he utilizado un pulsador.

Esquema.

Diagrama de montaje.

El programa utiliza directivas del procesador como :
#define SALIDA1  9
Esto indica al preprocesador que si encuentra  la etiqueta SALIDA1 lo cambie por 9 antes de compilar.
Es fácil cambiar de un plumazo la puerta de salida en todo el programa.

Cuando se empieza a crear un programa es normal poner puntos de depuración para comprobar en cada momento lo que sucede.
Cuando se termina el programa sobran los puntos de depuración, pero no conviene quitarlos por si mas tarde se necesitan.
El caso que ocupan memoria y no sirven para nada. Esto se soluciona con las directivas de preprocesador: #if  y #endif  .
En mi programa he colocado una etiqueta con el nombre  #define DEBUG  0 .
Si cambiamos el 0 por el 1 , cambiamos entre el modo normal y el de depuración.
Cuando empiezo con un programa empleo la consola serie para ver distintos datos. Luego no me sirve para nada y ocupa memoria.
#if DEBUG==1
  Serial.begin(9600);
#endif 
Con esta instrucción compilo o no dependiendo del valor de DEBUG.
//Con consola serie 3898 bytes    
//Sin consola serie 2158 bytes
Además de ocupar menos memoria, es más rápido.

El programa utiliza varias técnicas:
Repartición de tiempo mediante contadores. tiempo0--;   tiempo2--;  tiempo3--;  tiempo4--;
Cambio de modo de parpadeo leyendo cada 10mS el pulsador.  HIGH==digitalRead(ENTRADA)
En muchas de las opciones se podría haber utilizado las salidas digitales normales con la orden digitalWrite(SALIDA1, LOW); , pero como debía utilizar salidas analógicas, he empleado para todo este método: analogWrite(SALIDA1, a);
Lecturas de secuencia de parpadeo desde una matriz de 10 elementos.
unsigned char secuenciaA1[10]={255,0,255,0,0,0,0,0,0,0};
unsigned char secuenciaB1[10]={0,0,0,255,255,255,255,0,0,0};

Pienso que esta práctica es sencilla y bastante vistosa.

Montaje.

El circuito se puede alimentar fácilmente mediante un POWER BANK, o a través de 3 pilas de 1.5V (4.5V) , el arduino funciona en la mayoría de las veces con tensiones de hasta 4V.

VIDEO

PROGRAMA

Saludos.
Juan Galaz


Bibliografía:

miércoles, 13 de febrero de 2019

Predicción meteorológica. Servidor wttr.in


Predicción meteorológica
Servidor wttr.in

Existen numerosas páginas de perdición del tiempo, pero el servidor wttr.in es de lo mas especial.
Este servidor proporciona la información en consola, web, o imagen png.
Si tecleamos desde consola curl wttr.in , nos devolverá la predicción de los próximos 3 días.



No es que sea demasiado vistosa, pero es práctica y rápida, además de no necesitar ningún programa añadido.
El programa busca por la IP la localización del lugar.
Si deseamos una localidad determinada tecleamos:     curl wttr.in/santander
Para que la información sea en español:    curl wttr.in/palencia?lang=es
También podemos consultarlo por aeropuertos:  curl wttr.in/MAD?lang=es
Los códigos de aeropuertos se pueden consultar en: codigos-de-los-aeropuertos-de-europa
Tipos de ubicación soportados:
    /paris                  # el nombre de una ciudad
    /~Eiffel+tower          # el nombre de cualquier sitio famoso
    /Москва                 # el nombre Unicode de cualquier sitio en cualquier idioma
    /muc                    # el código de un aeropuerto (3 letras)
    /@stackoverflow.com     # el nombre de un dominio web
    /94107                  # un código de area
    /-78.46,106.79          # coordenadas de GPS

Existe la posibilidad de que nos devuelva la información en forma de imagen:  curl wttr.in/Palencia.png?lang=es>palencia.png

Como todo el mundo no trabaja bajo consola, se puede hacer mediante el navegador.
En cualquier navegador escribir en la dirección: wttr.in ,y nos mostrará la información del lugar.
Podemos utilizar todas la opciones que se utilizan en la consola.

Recomiendo ir a la página del proyecto para ver todas la opciones.

https://github.com/chubin/wttr.in

Otras opciones:
curl wttr.in/Palencia?format="%l:%t:%w:%c:%m"
Palencia:+3°C:↖0 km/h:☀️:🌓

curl wttr.in/Palencia?1        Predicción del día actual.
curl wttr.in/Palencia?n        Predicción del día actual, pero sencilla, noche y día.



Saludos.
Juan Galaz


www.000webhost.com

viernes, 8 de febrero de 2019

Puzzle SDL

Puzzle
SDL

Un puzzle parecido había realizado hace años para XWIN , con la librería SDL es mas fácil programar, además de poderse compilar para Windows.
Este puzzle tiene 3 niveles dependiendo del tamaño de la cuadrícula.
Nivel 1. - 4x4
Nivel 2. - 6x6
Nivel 3. -10x10
Cada nivel tiene su propia tabla de puntos.
Empiezas con 1500 segundos que se irán disminuyendo según pase el tiempo.
Con el botón derecho del ratón se mueven las piezas.
Con el botón central nos muestra las piezas mal colocadas.
Con el botón derecho te muestra la imagen  original.
Está realizado bajo Linux, pero también está compilado para Windows, es la ventaja de utilizar la librería SDL.
Durante el juego, pulsando F2 pasamos a pantalla completa.



PROGRAMA

Saludos.
Juan Galaz
www.000webhost.com

martes, 5 de febrero de 2019

Come cocos - PacMan - SDL



Come cocos
PacMan
SDL

Desde mis comienzos en esto de la programación con el Spectrum, en cada ordenador que tuve, siempre hacia dos programas, el de la pelota rebotando en un muro de ladrillos, y el Come Cocos (PacMan).
En está ocasión programo el Come Cocos. Te obliga hacer una matriz de datos a modo de mapa, he implica tener varios personajes moviéndose por el mapa.
El mapa es de 25x29, y la matriz creada para ese mapa es de 25x32.
El ComeCocos y los fantasmas necesitan 3 movimientos para pasar de un lugar a otro.
En esta ocasión se ha pulido la velocidad respecto al anterior programa (El cocinero loco).
No se repinta todo el mapa, solo donde ha pasado cada personaje, lo que ahorra mucho tiempo.
Puliendo cada parte del código, he llegado a conseguir que el porcentaje de CPU usado este en el 6%
Está realizado bajo Linux, pero también está compilado para Windows, es la ventaja de utilizar la librería SDL.
Durante el juego, pulsando F2 pasamos a pantalla completa.



PROGRAMA

Saludos.
Juan Galaz

Cocinero loco - SDL

Hacía tiempo que no realizaba ningún juego, hay veces que necesita tu mente jugar, es humano, desde que somos pequeños aprendemos jugando.
Este juego se realiza mediante la librería SDL, es una librería que esta creada para realizar juegos, aunque se puede utilizar para otro tipo de programas.
El programa es simple, tienes que recoger diferentes alimentos, pero tienes que tener cuidado, te persiguen cuatro fantasmas.
Es un juego al estilo ComeCocos pero con 3 pantallas.
Está realizado bajo Linux, pero también está compilado para Windows, es la ventaja de utilizar la librería SDL.


PROGRAMA

Saludos.
Juan Galaz