En 2023 me saque el titulo de Desarrollador Web y desde entonces he participado en la creación, desarollo y optimización de varias páginas webs.
Javascript, PHP, Java, HTML, CSS, Wordpress, Python, MySQL, SQL
Python, Redes
Java, XML, SQLiteOpenHelper, Android Studio
Canva, Pixlr E
Programador / Analista, entrenador y evaluador de modelos de inteligencia artificial.
DataAnnotation « Ver pagina
Desarollador Web / Diseñador Gráfico
Magisterio « Ver pagina
Desarollador Web / Diseñador Gráfico
Horno San José « Ver pagina
Desarollador Web / Diseñador Gráfico
Hipica el Pedregal « Ver pagina
Desarollador Web / Diseñador Gráfico
Academia ADOS « Ver pagina
Grado superior en Desarollador de Aplicaciones Web
IES Juan De Garay
Bachillerato de Ciencias
Escolapios Carniceros
Educación Secundaria Obligatoria
Escolapios Carniceros
En este emocionante juego de lógica y vocabulario, tendrás que poner a prueba tu ingenio para descubrir la palabra oculta.
Cada vez que intentes adivinar la palabra, las letras cambiarán de color según su precisión:
Rojo: La letra no está en la palabra oculta.
Amarillo: La letra está en la palabra, pero en una posición diferente.
Verde: La letra está en la palabra y en la posición correcta.
El juego soporta tanto el español como el inglés, utilizando palabras diferentes en cada idioma.
JugarIdeal para empresas pequeñas que se quieran modernizar con una página web para aumentar su radio de clientes.
Ideal para personas que ya tienen una página web y necesitan actualizarla o implementar nuevos cambios en ella.
Ideal para personas que necesiten revisiones constantes, implementar nuevas funciones, soporte, SEO, etc.
Ideal para aquellos que buscan mejorar su imagen de marca con diseños únicos y creativos, como logotipos, tarjetas de visita, folletos, etc.
Ideal para aquellos que necesitan una presencia activa y efectiva en plataformas como Facebook, Instagram, Twitter, etc.
Adaptación y optimización de páginas web existentes para dispositivos móviles.
Mi interés en la ciberseguridad y las redes ha crecido a lo largo del tiempo, impulsado por la curiosidad y el aprendizaje autodidacta. Aunque mi formación principal es en desarrollo web, he dedicado un tiempo considerable a comprender los fundamentos de ciberseguridad y redes, aplicando este conocimiento en proyectos prácticos. Un ejemplo notable es el desarrollo de un sistema cliente-servidor en Python que permite una conexión remota segura mediante técnicas como el port forwarding. Este proyecto me ha permitido explorar y entender los desafíos de comunicación en redes y la importancia de implementar prácticas de seguridad adecuadas, acercándome a la ciberseguridad desde una perspectiva práctica.
El servidor abre un puerto y permanece a la espera de que los clientes se autentiquen mediante una contraseña. Una vez autenticados, los clientes entran en un estado de espera. La conexión con cada cliente se incia unicamente cuando el servidor emite el comando connect [IP del cliente], permitiendo así al servidor conectarse al equipo deseado y gestionar la comunicación de forma segura.
Cuando la autenticación se realiza correctamente, se envía automáticamente un correo notificando que el equipo está encendido, ya que la aplicación se inicia de forma automática al encender el sistema. Al establecer la conexión, se envía un segundo correo informando que la conexión se ha realizado con éxito.
El servidor se comunica con el cliente mediante comandos que se ejecutan directamente en el lado del cliente.
Estos comandos permiten navegar tanto dentro del equipo del cliente como en sus pendrives y discos duros. La ruta actual se actualiza automáticamente para evitar la necesidad de utilizar rutas absolutas.
Estos comandos permiten interactuar con los archivos del sistema, incluyendo la creación de carpetas, la lectura y creación de documentos de texto, el renombrado de archivos y su eliminación.
Estos comandos representan las funciones más peligrosas, convirtiendo al cliente.exe en un malware. A través de ellos, se pueden enviar archivos del equipo cliente al correo del atacante, activar o desactivar un keylogger (un programa capaz de registrar todas las teclas que el cliente presiona), ocultar y encriptar archivos, ejecutar archivos .exe, cerrar aplicaciones, entre otras acciones maliciosas.
Además, con el comando admin, se abre un nuevo menú que nos permite dejar de interactuar con el equipo del cliente y comenzar a gestionar el nuestro. Desde este menú, podemos subir archivos de nuestro equipo a GitHub y, a continuación, proceder a instalarlos en el equipo del cliente en segundo plano.
Estos comandos son de bajo riesgo y no representan una amenaza significativa para el equipo.
Cuando el servidor desea desconectarse del equipo, puede hacerlo mediante el comando disconnect, lo cual desconectará al servidor del equipo cliente. Sin embargo, el cliente continuará en espera, listo para aceptar una nueva conexión en caso de que el servidor envíe nuevamente la señal de conexión.
El uso de redes en este proyecto es fundamental para lograr una comunicación efectiva entre el cliente y el servidor.
Uno de los aspectos cruciales fue comprender cómo funcionan las IP públicas y privadas, ya que ambas desempeñan roles diferentes en las conexiones de red.
La IP pública es la dirección visible externamente y la que permite que otros dispositivos en internet se comuniquen con nuestra red.
En cambio, la IP privada es asignada a cada dispositivo dentro de la red local y permite que estos dispositivos se comuniquen entre sí sin exponerse directamente a internet. En la mayoría de los casos, tanto la IP pública como la privada suelen ser dinámicas, es decir, cambian cada cierto tiempo. Esto es gestionado por el proveedor de internet (ISP) para optimizar su propio uso de direcciones IP y reducir costos. Sin embargo, las IP dinámicas pueden causar problemas para establecer conexiones consistentes a lo largo del tiempo, ya que la dirección puede variar y hacer que las configuraciones se desajusten.
Para habilitar la comunicación cliente-servidor en este proyecto, fue necesario habilitar port forwarding (redireccionamiento de puertos) en el router.
El port forwarding es una técnica que permite redirigir el tráfico que llega a la IP pública hacia una dirección IP privada específica en la red local, en este caso, hacia el dispositivo que ejecuta el servidor. Al activar el port forwarding, especifiqué el puerto que el servidor necesita para recibir conexiones y la IP privada del dispositivo donde está alojado. Esta configuración asegura que cualquier solicitud enviada a la IP pública desde el exterior pueda llegar al servidor en la red local.
Otro aspecto relevante fue el firewall, que actúa como una barrera de seguridad en la red. Los firewalls, tanto en el router como en el sistema operativo del dispositivo, pueden bloquear el tráfico hacia ciertos puertos por motivos de seguridad. Para permitir la conexión en mi proyecto, fue necesario ajustar el firewall y crear reglas específicas que habiliten el puerto requerido. Sin estos ajustes, las solicitudes de conexión quedarían bloqueadas, impidiendo que el cliente se conecte al servidor.
Al trabajar con puertos, es importante asegurarse de que están abiertos y accesibles. Para verificar esto, utilicé herramientas en línea, como YouGetSignal, que permite comprobar si un puerto específico está abierto y, por lo tanto, accesible desde fuera de la red local. Esta verificación fue clave, ya que a veces, incluso después de configurar el port forwarding y ajustar el firewall, el puerto puede permanecer cerrado debido a restricciones adicionales del ISP.
Sin embargo, en este proceso me enfrenté a dos desafíos significativos.
En primer lugar, tanto mi IP pública como mi IP privada son dinámicas, lo que significa que cambian cada cierto tiempo, lo cual puede desconectar las configuraciones de red y hacer que el acceso se vuelva inestable.
Además, descubrí que mi ISP bloquea el port forwarding en ciertas circunstancias, lo cual impedía que las solicitudes entrantes llegaran al puerto del servidor a pesar de haber configurado todo correctamente. Debido a estos obstáculos, decidí utilizar una VPN (Red Privada Virtual).
Las VPN ofrecen una solución eficaz en estos casos, ya que, al conectarse a una VPN, el servicio proporciona una IP pública fija y, en muchos casos, un puerto abierto. Esto facilita la conexión, ya que la IP permanece estable y evita el bloqueo del port forwarding por parte del ISP. Además, la VPN proporciona una capa adicional de seguridad, ya que cifra el tráfico entre el cliente y el servidor, minimizando el riesgo de interceptación de datos.
En resumen, establecer la conexión cliente-servidor en este proyecto requirió una serie de configuraciones específicas en la red, el router y el firewall. Cada paso en el proceso fue fundamental para garantizar una comunicación fluida y segura, y la elección de la VPN como solución final permitió superar las limitaciones impuestas por la red y el ISP, asegurando que el servidor estuviera accesible de forma estable y segura.
En un mundo donde las personas están cada vez más atrapadas por el uso excesivo del móvil, dedicando horas y horas diarias a sus pantallas, los efectos negativos de esta adicción son cada vez más evidentes.
Problemas físicos como fatiga visual, dolores de cuello y espalda, y trastornos del sueño, así como consecuencias mentales como ansiedad, depresión y una disminución en la capacidad de concentración, están directamente relacionados con este hábito.
Count Hours nace como una solución para ayudar a las personas a recuperar el control de su tiempo y disminuir su dependencia del móvil.
Esta innovadora aplicación registra y almacena automáticamente el tiempo que pasas utilizando tu teléfono y las aplicaciones específicas que usas a lo largo del día.
Además, cuenta con una función de Control Parental, diseñada para que los padres puedan monitorear y limitar el uso del móvil de sus hijos, bloqueando el acceso total al movil tras un tiempo predefinido.
Puedes visualizar de manera clara y detallada tus patrones de uso diario, semanal, mensual e incluso anual, permitiéndote ver con tus propios ojos cuánto tiempo realmente dedicas a tu móvil.
La meta de la aplicación es generar conciencia y motivar a los usuarios a tomar decisiones informadas para equilibrar su vida digital con su bienestar físico y mental.
El botón History te lleva a un calendario interactivo donde podrás explorar detalladamente las estadísticas de uso de tu móvil. Podrás consultar el tiempo total dedicado cada día o mes, así como un desglose específico de las aplicaciones que utilizaste en cualquier día del año. Además, ofrece un registro mensual con estadísticas como el tiempo total mensual y un listado con el Top 10 de las aplicaciones más utilizadas
El botón Goal te permite establecer un límite de tiempo diario para el uso del móvil, ayudándote a gestionar mejor tu tiempo. A medida que te acerques a ese límite, recibirás notificaciones que te recordarán que estás cerca de alcanzar tu objetivo. Esta función está diseñada especialmente para personas que buscan reducir su dependencia del móvil y tomar el control de su tiempo de manera más consciente y efectiva.
El botón Parental abre la sección de control parental, diseñada para ayudar a los padres a gestionar el uso del móvil de sus hijos de manera efectiva. Esta función permite bloquear el móvil automáticamente una vez que se alcanza una hora específica del día o después de que el dispositivo se haya utilizado durante un tiempo determinado. Los padres configuran una contraseña que será requerida para desbloquear el movil.
Tras hacer clic en el botón History, se abre un calendario interactivo que muestra el mes actual, permitiéndote explorar tus estadísticas de uso de manera detallada y organizada.
Puedes navegar fácilmente entre meses y años para consultar registros pasados, sin importar cuánto tiempo haya pasado, ya que todos los datos se almacenan de forma permanente.
En el calendario, los días se resaltan en colores: verde para los días en los que hay estadísticas registradas y rojo para aquellos sin datos disponibles.
Al seleccionar un día en verde, se despliega una vista detallada que incluye:
Además, en la esquina superior derecha del calendario, encontrarás un botón adicional que permite acceder a un resumen mensual.
Este informe incluye:
Este diseño interactivo y detallado facilita que los usuarios comprendan sus hábitos digitales, promoviendo un mejor control de su tiempo y fomentando un uso más consciente del dispositivo.
La sección Parental está diseñada para ofrecer a los padres herramientas efectivas para gestionar el uso del móvil de sus hijos, promoviendo un equilibrio saludable entre el tiempo frente a la pantalla y otras actividades. A través de esta función, los padres tienen el control total sobre el tiempo que sus hijos pasan utilizando el dispositivo.
Esta funcionalidad está especialmente diseñada para ofrecer a los padres la capacidad de supervisar y regular el tiempo de uso del móvil, ayudando a los niños a desarrollar hábitos digitales responsables y saludables.
El objetivo es fomentar un ambiente digital equilibrado, donde el uso del móvil no interfiera con las actividades diarias importantes, como el estudio, el descanso y el tiempo en familia.