Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.

Nombre de usuario/Email:
  

Contraseña
  





Buscar en los foros

(Búsqueda avanzada)

Estadísticas del foro
» Miembros: 17
» Último miembro: Swadm
» Temas del foro: 46
» Mensajes del foro: 63

Estadísticas totales

Usuarios en línea
Actualmente hay 1 usuario en línea.
» 0 miembro(s) | 1 invitado(s)

Últimos temas
Herramientas libres
Foro: Charla
Último mensaje por: chujalt
14-01-2019, 23:37
» Respuestas: 5
» Vistas: 28
Me presento
Foro: Presentaciones
Último mensaje por: chujalt
22-12-2018, 20:55
» Respuestas: 1
» Vistas: 59
Hola compae !!
Foro: Presentaciones
Último mensaje por: chujalt
27-10-2018, 19:12
» Respuestas: 3
» Vistas: 1,479
Instalar micropython en W...
Foro: Wemos
Último mensaje por: chujalt
23-10-2018, 16:48
» Respuestas: 0
» Vistas: 137
Instalar micropython en N...
Foro: Nodemcu
Último mensaje por: chujalt
22-10-2018, 18:38
» Respuestas: 0
» Vistas: 134
Recuperar GRUB después de...
Foro: Linux
Último mensaje por: chujalt
25-09-2018, 17:35
» Respuestas: 0
» Vistas: 146
Nodemcu, controlar encend...
Foro: Nodemcu
Último mensaje por: chujalt
24-09-2018, 17:30
» Respuestas: 2
» Vistas: 3,132
Hola, a tod@s!!!
Foro: Presentaciones
Último mensaje por: chujalt
27-10-2017, 18:15
» Respuestas: 1
» Vistas: 844
Adaptar pagina web en cod...
Foro: Arduino
Último mensaje por: chujalt
07-08-2017, 12:28
» Respuestas: 0
» Vistas: 743
Saber nuestra IP publica....
Foro: PHP
Último mensaje por: chujalt
03-05-2017, 21:40
» Respuestas: 2
» Vistas: 1,522

 
  Herramientas libres
Enviado por: Swadm - 11-01-2019, 03:32 - Foro: Charla - Respuestas (5)

Hola a todos,

Aún no he tenido tiempo para aportar, sin embargo, quería conocer un poco sobre las herramientas libres que utilizan.

Actualmente me he adentrado en administración de servidores (gnu/linux) y estoy migrando máquinas virtuales KVM a PROXMOX. Ésto me ha parecido ventajoso en el sentido de que se puede formar un cluster y mover las máquinas virtuales (incluso contenedores LXC) en caliente sin tanta preocupación. La administración se convierte algo más sencilla de realizar, incluso a la hora de extender volúmenes lógicos.

También, he estado utilizando mucho docker en microservicios para independizarme del servicio en sí y obtener de manera persistente la configuración y volúmenes.

Me encantaría conocer qué herramientas libres utilizan, qué perspectivas tienen sobre las mencionadas y espero que puedan cuestionar mi visión sobre las mismas.

Saludos!

Imprimir

  Me presento
Enviado por: Swadm - 21-12-2018, 00:43 - Foro: Presentaciones - Respuestas (1)

Hola,
llegué a esta pequeña comunidad mientras estaba investigando y decidí quedarme. En cuanto a mi persona, puedo decir que mi placer se encuentra en probar software libre y adquirir nuevos conocimientos.
Espero compartir algunos conocimientos que pueden ser útiles y debatir sobre temas relacionados al mundo de la informática.

Saludos!  Sonrisa
Swadm

Imprimir

  Instalar micropython en Wemos Mini
Enviado por: chujalt - 23-10-2018, 16:48 - Foro: Wemos - Sin respuestas

Saludos.

Vamos a explicar como instalar una versión de micropython en nuestro Wemos Mini. Este tutorial está explicado para hacerlo en un sistema operativo LINUX.

Yo he utilizado un Wemos Mini D1.

[Imagen: wemosmini.jpg]


En primer lugar tenemos que bajarnos una herramienta que se llama esptool mediante el comando pip. Abrimos un terminal y escribimos:

sudo pip install esptool

En muchos sitios de internet pone que esta herramienta funciona bajo python 2.7, pero eran las versiones antiguas, ahora funciona en cualquier versión de python, yo trabajo con la 3.5

Una vez instalado esptool conectamos nuestro Wemos Mini al PC y tecleamos:

sudo esptool.py flash_id


[Imagen: micropython_1.png]

Como veis, sale varia información, entre ellas el tamaño de la memoria y el puerto serie al que está conectado, en mi caso /dev/ttyUSB0

Opcionalmente le doy permisos a ese puerto serie para luego no estar logeándome como sudo en todos los pasos siguientes:

sudo chmod 777 /dev/ttyUSB0

Vamos a bajarnos la versión de micropython de la siguiente dirección http://micropython.org/download#esp8266, yo me bajé la que pone entre paréntesis latest, que es la última.

Ahora vamos a flashear la memoria del Wemos Mini, tecleamos:

esptool.py --port /dev/ttyUSB0 erase_flash

Si todo ha ido bien no os dará ningún mensaje de error y os informará que la memoria ha sido flasheada. El proceso dura poco, unos 10 segundos.

Seguidamente cargamos micropython en nuestro Wemos Mini (el archivo que nos hemos bajado antes) tecleamos:

esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 /home/chujalt/esp8266-20180511-v1.9.4.bin

Lógicamente cambiar la ruta donde tenéis vuestro archivo. OJO este comando es el que sale en la página oficial de micropython, si carga correctamente, pero luego, a la hora de comprobar por consola si funcionaba micropython (último paso de este tutorial), no sale nada, volved a flashear la memoria y probad con estos comandos:

esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_mode=dout --flash_size=detect 0 /home/chujalt/esp8266-20180511-v1.9.4.bin

Si no os da errores os dirá que ya está cargado micropython.

Ahora toca comprobar que funciona correctamente, hay varios programas para comunicarnos con el puerto serie, screen, minicom, picocom..... Yo he utilizado screen. Si no lo tenéis instalado:

sudo apt install screen

 
Una vez instalado, tecleamos:
screen /dev/ttyUSB0 115200

Se quedará la pantalla en negro, pulsamos el botón reset de nuestro Wemos Mini para que se reseté, y si todo ha ido bien nos saldrá el promt de micropyton.

[Imagen: micropython_2.png]

Bueno, ya está, espero que le sirva a alguien.
Saludos.

Imprimir

  Instalar micropython en Nodemcu
Enviado por: chujalt - 22-10-2018, 18:38 - Foro: Nodemcu - Sin respuestas

Saludos.

Vamos a explicar como instalar una versión de micropython en nuestro Nodemcu. Este tutorial está explicado para hacerlo en un sistema operativo LINUX.

Yo he utilizado un Nodemcu V2.


[Imagen: nodemcu.jpg]
En primer lugar tenemos que bajarnos una herramienta que se llama esptool mediante el comando pip. Abrimos un terminal y escribimos:

sudo pip install esptool

En muchos sitios de internet pone que esta herramienta funciona bajo python 2.7, pero eran las versiones antiguas, ahora funciona en cualquier versión de python, yo trabajo con la 3.5

Una vez instalado esptool conectamos nuestro nodemcu al PC y tecleamos:

sudo esptool.py flash_id


[Imagen: micropython_1.png]

Como veis, sale varia información, entre ellas el tamaño de la memoria y el puerto serie al que está conectado, en mi caso /dev/ttyUSB0

Opcionalmente le doy permisos a ese puerto serie para luego no estar logeándome como sudo en todos los pasos siguientes:

sudo chmod 777 /dev/ttyUSB0

Vamos a bajarnos la versión de micropython de la siguiente dirección http://micropython.org/download#esp8266, yo me bajé la que pone entre paréntesis latest, que es la última.

Ahora vamos a flashear la memoria del nodemcu, tecleamos:

esptool.py --port /dev/ttyUSB0 erase_flash

Si todo ha ido bien no os dará ningún mensaje de error y os informará que la memoria ha sido flasheada. El proceso dura poco, unos 10 segundos.

Seguidamente cargamos micropython en nuestro nodemcu (el archivo que nos hemos bajado antes) tecleamos:

esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 /home/chujalt/esp8266-20180511-v1.9.4.bin

Lógicamente cambiar la ruta donde tenéis vuestro archivo. OJO este comando es el que sale en la página oficial de micropython, me cargaba correctamente, pero luego, a la hora de comprobar por consola si funcionaba micropython (último paso de este tutorial), no salía nada. Si es así, volver a flashear la memoria y probad con estos comandos:

esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_mode=dout --flash_size=detect 0 /home/chujalt/esp8266-20180511-v1.9.4.bin

Si no os da errores os dirá que ya está cargado micropython.

Ahora toca comprobar que funciona correctamente, hay varios programas para comunicarnos con el puerto serie, screen, minicom, picocom..... Yo he utilizado screen. Si no lo tenéis instalado:

sudo apt install screen

 
Una vez instalado, tecleamos:
screen /dev/ttyUSB0 115200

Se quedará la pantalla en negro, pulsamos el botón reset de nuestro Nodemcu para que se reseté, y si todo ha ido bien nos saldrá el promt de micropyton.

[Imagen: micropython_2.png]

Bueno, ya está, espero que le sirva a alguien.
Saludos.

Imprimir

Información Recuperar GRUB después de actualización de Windows 10
Enviado por: chujalt - 25-09-2018, 17:35 - Foro: Linux - Sin respuestas

Saludos.

OJO, este método funciona a los que tienen la bios EFI, en las bios antiguas no funcionará.

De vez en cuando Windows 10 hace una actualización importante y los que también tenemos instalados Linux nos llevamos la mala sorpresa que al reiniciar el ordenador arranca Windows directamente, el GRUB a desaparecido.

Tranquilos, hay una rápida y fácil solución.

Una vez Windows abierto ejecutamos como administrador su consola de comandos y escribimos la siguiente línea:

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

Reiniciamos y nos volverá a salir el GRUB.

Saludos.

Imprimir

  Hola, a tod@s!!!
Enviado por: jaad34 - 27-10-2017, 14:01 - Foro: Presentaciones - Respuestas (1)

Buenas, ciertamente no soy un mozalbete, pero siempre he sido curioso, y el mundo de las tecnologías me pierde..... Soy 100% autodidacta y siempre abierto a aprender, sobre todo ahora que he iniciado mis andaduras en Android.....

Salu2 pa'tod@s!!!!

Imprimir

  Adaptar pagina web en codigo de Arduino
Enviado por: chujalt - 07-08-2017, 12:28 - Foro: Arduino - Sin respuestas

Saludos.

Si vamos a utilizar nuestro Arduino como un servidor de una página web tenemos que introducir el código de la página dentro del código de Arduino. Esto es, cada linea de código html debe ir dentro de:

client.println("Aquí código html");

Esto se puede convertir en un trabajo muy cansado si la página es amplia y, además, si el código html tiene comillas doble tendremos que "escaparlas" con una barra invertida.

Para los que trabajamos con linux he creado tres lineas de código bash que nos facilitan enormemente la tarea.

Vamos a suponer que tenemos la siguiente página, la cual la llamamos 1.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Portal básico - aprenderaprogramar.com</title>
</head>
<body>
<div id="page">
<div id="header">
Portal (Tutorial básico del programador web: HTML desde cero) - aprenderaprogramar.com
</div>
<!-- contenedor -->
<br />
<br />
<br />
<div id="wrapper">
<!-- menu -->
<div id="menu">
<div>Menú</div>
<hr style="color:red; background-color:red; width:50%;" />
<ul>
<li><a href="#">Portada</a></li>
<li>
<a href="http://www.aprenderaprogramar.com">aprenderaprogramar.com</a>
</li>
</ul>
</div>
<!-- fin menu -->
<!-- cuerpo -->
<div id="body">
<form method="get" action="accion.html">
Nombre: <input type="text" name="nombre" /><br />
Apellidos: <input type="text" name="apellidos" /><br />
Dirección: <input type="text" name="direccion" /><br />
Correo electrónico: <input type="text" name="correo" /><br />
Teléfono: <input type="text" name="telefono" /><br />
</form>
</div>
<!-- fin cuerpo -->
</div>
<!-- fin contenedor -->
<br /> <br /> <br />
<div id="footer">
Copyright 2006-2012 aprenderaprogramar.com
</div>
</div>
</body>
</html>

El script bash creará un archivo llamado 2.txt para nuestro código en Arduino.

Las lineas bash a ejecutar una por una serían:

sed -e 's/\"/\/"/g' 1.html > 2.txt

sed -i "s|^|client.println(\"|g" 2.txt

sed -i "s|$|\");|g" 2.txt


y el resultado final listo para introducir en nuestro código para Arduino es:

client.println("<!DOCTYPE html>");
client.println("<html>");
client.println("<head>");
client.println("<meta charset=/"utf-8/">");
client.println("<title>Portal básico - aprenderaprogramar.com</title>");
client.println("</head>");
client.println("<body>");
client.println("<div id=/"page/">");
client.println("<div id=/"header/">");
client.println("Portal (Tutorial básico del programador web: HTML desde cero) - aprenderaprogramar.com");
client.println("</div>");
client.println("<!-- contenedor -->");
client.println("<br />");
client.println("<br />");
client.println("<br />");
client.println("<div id=/"wrapper/">");
client.println("<!-- menu -->");
client.println("<div id=/"menu/">");
client.println("<div>Menú</div>");
client.println("<hr style=/"color:red; background-color:red; width:50%;/" />");
client.println("<ul>");
client.println("<li><a href=/"#/">Portada</a></li>");
client.println("<li>");
client.println("<a href=/"http://www.aprenderaprogramar.com/">aprenderaprogramar.com</a>");
client.println("</li>");
client.println("</ul>");
client.println("</div>");
client.println("<!-- fin menu -->");
client.println("<!-- cuerpo -->");
client.println("<div id=/"body/">");
client.println("<form method=/"get/" action=/"accion.html/">");
client.println("Nombre: <input type=/"text/" name=/"nombre/" /><br />");
client.println("Apellidos: <input type=/"text/" name=/"apellidos/" /><br />");
client.println("Dirección: <input type=/"text/" name=/"direccion/" /><br />");
client.println("Correo electrónico: <input type=/"text/" name=/"correo/" /><br />");
client.println("Teléfono: <input type=/"text/" name=/"telefono/" /><br />");
client.println("</form>");
client.println("</div>");
client.println("<!-- fin cuerpo -->");
client.println("</div>");
client.println("<!-- fin contenedor -->");
client.println("<br /> <br /> <br />");
client.println("<div id=/"footer/">");
client.println("Copyright 2006-2012 aprenderaprogramar.com");
client.println("</div>");
client.println("</div>");
client.println("</body>");
client.println("</html>");


Bueno, como veréis es fácil y puede ahorrarnos mucho trabajo.

Saludos

Imprimir

  Saber nuestra IP publica. Servicio tipo no-ip o DynDNS
Enviado por: chujalt - 29-04-2017, 20:10 - Foro: PHP - Respuestas (2)

Saludos amigos.

Si tenemos un servidor montado en casa y nuestro proveedor de internet no nos facilita una IP fija tendremos la necesidad de saber en todo momento nuestra IP pública. Vamos a montar un servicio tipo no-ip o DynDNS.

El servicio consta de dos partes, una en nuestro ordenador y por otra parte necesitaremos un servidor de internet, por ejemplo, si no tenemos un servicio de hosting, https://www.hostinger.es/ , nos ofrece de forma gratuita todo lo que necesitamos, 2 GB de almacenamiento, php y bases de datos MySQL. 



EN NUESTRO ORDENADOR

Tengo que aclarar que lo que explico a continuación lo he hecho bajo un sistema linux.

En  primer lugar crearemos un directorio en el servidor de nuestro pc, yo lo he llamado curl, la ruta sería /var/www/html/curl.

Abrimos nuestro editor de texto favorito y escribimos

#!/bin/bash
curl -d "value1=pepico" http://midominio.com/curl/index.php


Lo guardamos con el nombre 1.sh, por ejemplo, y le damos permisos de ejecución. En la última linea cambiar midominio.com por el de nuestro servidor de hosting, también, donde vemos value1=pepico. cambiamos el nombre por el que queramos.

Este script lo que hace es enviar el nombre de usuario a nuestra página index.php del servidor de hosting mediante el método post.

Ahora vamos a editar crontab para que nuestro script se ejecute cada dos horas. Abrimos un terminal y escribimos 

sudo gedit /etc/crontab


y en crontab añadimos esta línea

0 */2    * * *    root    /var/www/html/curl/1.sh


guardamos y cerramos. Como hemos dicho, ésto hará que nuestro script se ejecute cada dos horas.

Ya hemos terminado en nuestro PC, ahora iremos a nuestro servidor de hosting.



EN NUESTRO SERVIDOR DE HOSTING 

Deberemos crear una base de datos MySQL con nombre curl, con una tabla llamada datos y 4 columnas, id (int, primary key, auto_increment), nombre (varchar 50), ip (varchar 50) y fecha (timestamp, CURRENT_TIMESTAMP)

Ahora vamos a crear la página index que recogerá los datos que le hemos enviado antes por el script bash y los introducirá en nuestra base de datos. Paso previo es crear también una página conex.

conex.php

Código PHP: (Seleccionar todo)
<?php
// hostname o ip del servidor de Base Datos
$bd_host='localhost';
 
// nombre de usuario 
$bd_usuario='usuario';
 
// la contraseña para la BBDD  
$bd_password='contraseña';
 
// nombre del BBDD
$bd_base='curl';
$conexion = new mysqli($bd_host$bd_usuario$bd_password$bd_base);
 
if (
$conexion->connect_errno
{
 
   echo "No se pudo conectar a la Base Datos: (" $mysqli->connect_errno ") " $mysqli->connect_error;
}
?>


index.php 

Código PHP: (Seleccionar todo)
<?php

include("conex.php");
if(
$_POST)
 
     {
 
        $queryInsert "INSERT INTO datos (nombre, ip) VALUES ('".$_POST['value1']."', '".$_SERVER['REMOTE_ADDR']."');";
 
 
        $resultInsert mysqli_query($conexion$queryInsert); 
 
 
        if($resultInsert)
 
        {
 
           echo "<strong>Se ingresaron los registros con exito</strong>. <br>";
 
        }
 
        else
 
        {
 
           echo "No se ingresaron los registros. <br>";
 
        }
 
 
     }
?>


Con esto ya tenemos nuestra última ip metida en la base de datos.

Ahora vamos a crear dos sencillas páginas para saber cual es nuestra actual ip pública de nuestro PC, buscar.php y encontrado.php.

buscar.php

Código PHP: (Seleccionar todo)
<html>
<
head>
<
title>Entrada de enlaces</title>
<
meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</
head>

<
body>
<
form action="encontrado.php" method="post">
 
 Nombre:<br>
 
 <input type="text" name="nombre"><br><br>
 
 <input type="submit" value="Submit">
</
form>
</
body>
</
html


Nos mostrará un sencillo formulario donde debemos poner nuestro nombre de usuario que está en el script bash.

encontrado.php 

Código PHP: (Seleccionar todo)
<html>
<
head>
<
title>Entrada de enlaces</title>
<
meta charset="UTF-8">
</
head>
<
body>
<?
php
include("conex.php");
$consulta "SELECT nombre, ip, DATE_FORMAT(fecha, 'Con fecha: %d/%m/%y y hora: %H:%i:%s') AS fecha FROM datos WHERE nombre = '" $_POST["nombre"] . "' ORDER BY id  DESC LIMIT 1";
$resultado $conexion -> query($consulta);
echo 
"<span style='color: blue;'>Extracción de último dato ...</span> <br><br>";
while(
$fila $resultado -> fetch_array())
{
echo 
"Usuario: " $fila["nombre"] . "<br>";
echo 
"Última IP asignada: " $fila["ip"] . "<br>";
echo 
"" $fila["fecha"] . "<br><hr>";
}
mysqli_free_result($resultado);
mysqli_close($conexion);
?>
</body>
</html> 


Nos mostrará la última ip pública que tenemos asignada y a que fecha y hora se captó.

Cita:Extracción de último dato ... 

Usuario: pepico
Última IP asignada: 11.111.11.111
Con fecha: 29/04/17 y hora: 18:00:02



Todo esto está bien, pero queremos algo mas, no tener que ir a un formulario para saber nuestra ip, lo que queremos es poner en el navegador una dirección y que nos redireccione a nuestro servidor local, una dirección tipo "midominio.com/pepico". Recordad que pepico era nuestro usuario con el que se guardaban las ip de nuestro servidor local.

Bien, como al poner esa dirección en el navegador, el directorio pepico no existe, el servidor nos enviará un error 404, página no encontrada. Vamos a crear una página de error 404 tuneada por nosotros.

Antes de nada vamos a tener que tocar el archivo .htaccess para que cuando se de el error 404 nos muestre nuestra página 404. Abrimos el archivo .htaccess y añadimos la linea

ErrorDocument 404 /404.php
 
Con esto le decimos que cuando se produzca el error 404 nos muestre la página 404.php.

Ahora vamos a crear la página 404.php, que a continuación diré lo que hace.

404.php

Código PHP: (Seleccionar todo)
<html>
<
head>
<
title>Entrada de enlaces</title>
<
meta charset="UTF-8">
<
script language="JavaScript">
function 
enviar()
{
document.form.submit();
}
</
script>
</
head>
<
body onload="enviar()">
<?
php
$url 
 "{$_SERVER['REQUEST_URI']}";
$resultado str_replace("/"""$url);
?>
<form method="POST" action="curl/redireccionar.php" name="form">
<p><input type="text" value="<?php echo $resultado?>" name="nombre"></p>
<p><input type="submit" value="Enviar" name="B1"></p>
</form>
</body>
</html> 


Esta página lo que hace es eliminar de la dirección web todo lo que vaya antes de la barra "/", en nuestro caso quedaría pepico y lo envía directamente a otra página que luego vamos a crear, redireccionar.php, la cual estará dentro del directorio curl.

redireccionar.php

Código PHP: (Seleccionar todo)
<html>
<
head>
<
title>Entrada de enlaces</title>
<
meta charset="ISO-8859-1" />
</
head>
<
body>
<?
php
include("conex.php");
$consulta "SELECT nombre, ip, DATE_FORMAT(fecha, 'Con fecha: %d/%m/%y y hora: %H:%i:%s') AS fecha FROM datos WHERE nombre = '" $_POST["nombre"] . "' ORDER BY id  DESC LIMIT 1";
$resultado $conexion -> query($consulta);
 
if (
$fila $resultado -> fetch_array())

echo 
"<script language=\"javascript\">window.location.href=\"http://" $fila["ip"] . "\";</script>";
}
else {
echo 
"NO encontrado";
}
mysqli_free_result($resultado);
mysqli_close($conexion);


?>
</body>
</html> 


Esta página lo que hace es buscar en la base de datos la última ip registrada del usuario que queremos, en este caso pepico , y nos redirecciona directamente a esa ip. Si ese usuario no existe o nos equivocamos al escribir la dirección, la página actuará como una página 404 y nos mostrará un mensaje de "no encontrada".

Todo el proceso, desde que pones la dirección en el navegador hasta que te redirecciona a la ip de tu servidor local es limpio y automático.


Bueno, espero que le sirva a alguien de ayuda.

Saludos.

Imprimir