Minientrada

Magic Loops – programar sin programar

Seguro que hay alguna tarea repetitiva que necesitas hacer todos los días y que ya estás cansado de realizar. Pues os traigo una herramienta que puede ayudar a automatizar estas tareas: Magic Loops.

La idea es muy simple, solo tienes que escribir la tarea que quieras realizar en el PROMPT y te generará un flujo de los pasos que va a hacer. Si crees que todo está bien puedes pulsar sobre «Looks Good» y si no puedes indicarle lo que quieres modificar.

En caso de que tengas ya el resultado que esperabas, puedes generarlo y en unos segundos lo tendrás activo para que se repita todos los días que tu quieras y en el momento que desees. Además os indica un resumen de lo que va haciendo en cada paso.

En la web se describen de la siguiente forma:

Nuestra misión es dar a todos el superpoder de programar, sin tener que aprender a codificar.

Creemos que las herramientas sin código y de bajo código son demasiado limitadas, mientras que los IDE de código completo suelen ser demasiado complejos, incluso para estudiantes de informática.

Magic Loops cierra la brecha entre ambos extremos, combinados con el uso de IA generativa de última generación.

¡Esperamos que disfrutes usando Magic Loops!

Esquemas de Prompts para ChatGPT

Hoy os traigo unos ejemplos de PROMTS que funcionan muy bien para ChatGPT y con los que conseguirás una mejor respuesta.

Los promts son instrucciones o preguntas que se utilizan para interactuar con modelos de lenguaje, como ChatGPT. La importancia de los promts radica en que:

  1. Definen el Contexto: Establecen un tema de conversación, lo que ayuda al modelo a entender que tipo de respuesta se espera.
  2. Influencian la respuesta: Pueden orientar la conversación.
  3. Mejoran la precisión.
  4. Permiten la personalización: Permiten adaptarse a las necesidades y preferencias del usuario.
  5. Facilitan la creatividad: Para generar ideas nuevas y originales.
  6. Ayudan a evitar malentendidos.

R-T-F (Rol – Tarea – Formato)

  • Actúa como [Rol que quieras indicar]
  • Crea una [Tarea que quieres realizar]
  • Muestra el resultado en el siguiente formato: [Formato esperado]

T-A-O (Tarea – Acción – Objetivo)

  • Define la [Tarea]
  • Indica la [Acción]
  • Aclara el [Objetivo]

B-A-B (Antes – Después – Puente)

  • Explica el problema [Antes]
  • Indica el resultado [Después]
  • Pide el [Puente] solución

C-A-R-E (Contexto – Acción – Resultados – Ejemplos)

  • Da el [Contexto]
  • Describe la [Acción]
  • Aclara los [Resultados]
  • Da algunos [Ejemplos]
Minientrada

¡Truco! Entrar en la BIOS de tu PC

Entrar en la BIOS de un PC es algo que todos hemos hecho en alguna ocasión. Hacerlo es tan sencillo como presionar Supr o F2 (o alguna otra tecla, dependiendo de la placa) al encender o reiniciar el PC pero, ¿sabías que puedes hacerlo más fácil todavía?

  1. Haz clic con el botón derecho del ratón en cualquier espacio vacío de tu escritorio.
  2. Selecciona Nuevo.
  3. Pulsa sobre Acceso directo.
  4. En el cuadro que aparece, escribe «shutdown /r /fw /t 1»Acceso directo BIOS
  5. Asígnale el nombre que quieras y se habrá creado el acceso directo en el escritorio.
  6. Pulsa sobre este acceso directo que has creado con el botón derecho del ratón y luego pulsar sobre Propiedades.
  7. En la ventana que se abre pulsa sobre «Opciones avanzadas«.
  8. Ahí tendrás que marcar la opción «Ejecutar como administrador«.
  9. (Opcional) Puedes cambiar el icono para dejarlo más bonito.

¡Cuidado! Al indicar el /f, se va a forzar el cierre de todos los procesos que tengamos abiertos en ese momento.

Otra opción es ejecutarlo directamente sin tener un acceso en el escritorio (o cualquier otro directorio). Para ello los pasos son los siguientes:

  1. Abre el cuadro de ejecutar (Win + R).
  2. Escribe «shutdown /r /fw /t 1»
  3. ¡Listo! El PC reiniciará directo a la BIOS.

Finalmente indicar que solo entrará en la BIOS la primera vez. Luego, las siguientes veces que reinicies el PC arrancará Windows de forma normal, no irá siempre a la BIOS directamente.  Solo cuando pulséis en el icono o ejecuteis el comando.

 

Aplicación para tener conexión a internet en cualquier parte del mundo

Hoy les traigo una aplicación que promete ser nuestro salvavidas en esos momentos de desesperación cuando necesitamos conexión a Internet y no tenemos datos móviles. Su nombre es WiFi Map y nos ayuda a encontrar redes WiFi gratuitas y seguras en cualquier parte del mundo.

¿Qué es WiFi Map?

WiFi Map es una aplicación disponible para iOS y Android que te permite encontrar puntos de acceso WiFi gratuitos o de pago en tu zona o en cualquier lugar del mundo. La app tiene una base de datos colaborativa, lo que significa que los usuarios son los que agregan y actualizan la información sobre las redes WiFi. Además, ofrece detalles como la contraseña (si está disponible), la velocidad de conexión y la ubicación exacta.

Pros

  • Gratuita (con opciones Pro): La versión básica es completamente gratuita y ofrece muchas funcionalidades útiles.
  • Base de datos enorme: Tiene millones de puntos de acceso en todo el mundo.
  • Modo offline: Ideal para viajeros o para ahorrar datos móviles.
  • VPN integrada: Un extra de seguridad que agradecerás en redes públicas.

Contras

  • Precisión variable: Depende de la colaboración de los usuarios, por lo que algunas redes pueden estar desactualizadas (contraseñas incorrectas o redes que ya no existen).
  • Publicidad: La versión gratuita tiene anuncios, lo cual puede ser un poco molesto.
  • VPN limitada: La VPN solo está disponible en la versión Pro, que requiere una suscripción.

Recomendaciones

  • Utiliza la VPN integrada: Si opta por la versión Pro, activa siempre la VPN para cifrar el tráfico y proteger tus datos. En caso de no tener la versión Pro,  siempre es importante utilizar una VPN externa.
  • Evita redes desconocidas: Conéctate solo a redes confiables y evite realizar transacciones sensibles en redes públicas.
  • Verifica la autenticidad: Confirma la legitimidad de las redes antes de conectarse para evitar caer en trampas de hackers.

¿Vale la pena?

WiFi Map es una app increíblemente útil, especialmente si viajas mucho o si vives en una ciudad grande donde necesitas conexión a Internet constantemente. La versión gratuita es más que suficiente para la mayoría de los usuarios, pero si quieres acceder a la VPN y eliminar los anuncios, la versión Pro podría ser una buena inversión.

Eso sí, ten en cuenta que no todas las redes serán 100% confiables, así que úsala con precaución y siempre activa la VPN si decides conectarte a una red pública.

Control de Procesos en Linux – Guía Sencilla

Tanto si estás especializado en Linux como si eres un programador que necesita este SO para desplegar sus aplicaciones, seguro que en alguna ocasión  has tenido que localizar algun proceso que se está ejecutando. Hoy os traigo una guía para encontrar más sencilla y clara los procesos, tanto padres como hijos.

Comencemos explicando ‘pgrep‘, que nos permite hacer un grep entre los procesos.
Con ‘ps -ef‘ vemos todos los procesos del sistema. Le podemos añadir el flag ‘–forest‘ para que nos muestre el árbol de todos los procesos que se están ejecutanod.
También tenemos ‘pstree‘, que hace algo similar y nos permite ver los procesos de una forma bastante clara.

Todos estos comandos son muy útiles, pero tienen un problema: trabajan sobre una instantánea de los procesos que están corriendo en el momento de lanzar el comando. Es decir, una foto estática que puede mostrar procesos que al segundo siguiente ya no están en ejecución.

Para obtener los procesos en tiempo real tenemos ‘top‘ y ‘htop‘. Que lo que hace es ir recargando los valores a lo largo del tiempo para tener siempre una instantánea en tiempo real.
Además, nos muestra información de carga del sistema (procesador, memoria, swap…). Si no te interesa ver esa información «extra» puedes utilizar la combinación de teclas ‘altgr‘ + ‘#‘ y de esta forma solo ver los procesos. También puedes editar las columnas que no quieres que se muestren.
Finalmente, puedes eliminar los threads, que básicamente son subprocesos. Normalmente aparecen pintados en color verde. Se pueden eliminar con ‘shift‘ + ‘h‘.
Si pulsamos ‘F5‘ lo veremos en formato de árbol y con ‘F3‘ podemos buscar entre los procesos. Con la tecla ‘u‘ podemos filtrar procesos por usuario. También podemos realizar acciones (como matar un proceso) con ‘F9‘.

Los riesgos de los dispositivos conectados a Internet. Cómo comprometer por completo tu privacidad y seguridad

Recientemente, se ha publicado una noticia sobre el hackeo de un robot doméstico de los que se utilizan para limpiar el hogar.

No podemos dejar de insistir en que cualquier dispositivo conectado a Internet es vulnerable y corre el riesgo de ser atacado.

Cuando explicamos esto, la reacción más común de las personas es: «¿Por qué alguien querría atacarme? ¿Quién soy yo? ¡Ni que fuera una figura pública importante!»

Sin embargo, cualquier tipo de información personal tiene valor en el mercado de datos, imágenes y otros bienes digitales.

Si alguien logra acceder indebidamente a las imágenes de la cámara de vigilancia en tu hogar, a la webcam de tu ordenador o incluso a la cámara de un juguete inteligente, como un peluche con cámara y micrófono, es fácil imaginar las consecuencias que esto podría tener.

Algunos de los posibles fines de estos ataques incluyen:

  1. Obtener imágenes de tu hogar para evaluar la cantidad de objetos de valor presentes.
  2. Estudiar tus rutinas y las de tu familia para planificar un robo.
  3. Acceder a imágenes comprometedoras para extorsionarte o venderlas en mercados clandestinos.

Y estas son solo algunas de las posibilidades.

No se trata de evitar el uso de estos dispositivos, ya que la tecnología aporta múltiples beneficios. Sin embargo, es fundamental aprender a protegerlos de manera adecuada. A continuación, comparto algunas recomendaciones:

  1. Configura una red Wi-Fi separada exclusivamente para los dispositivos IoT. Si no sabes cómo hacerlo, existen tutoriales en plataformas como YouTube que te pueden guiar paso a paso.
  2. Mantén los dispositivos actualizados. Las actualizaciones de software, especialmente los parches de seguridad, actúan como vacunas contra las vulnerabilidades.
  3. Elige marcas confiables. No todas las marcas ofrecen el mismo nivel de seguridad. Además de considerar el precio, investiga si el fabricante garantiza medidas de seguridad robustas, como encriptación avanzada y soporte técnico confiable.
  4. Cambia las contraseñas predeterminadas. Asegúrate de establecer un PIN o contraseña única y segura para cada dispositivo.
  5. Desconecta los dispositivos cuando no los utilices. Reducir el tiempo que están conectados a Internet puede minimizar los riesgos.

La ciberseguridad no es opcional, especialmente en un mundo cada vez más interconectado. Es responsabilidad de cada usuario implementar las medidas necesarias para proteger su privacidad y la de su familia.

Minientrada

Frameworks Modernos para Desarrollo Web con Python

Seguro que alguna vez has querido crearte una web para un proyecto y te ha resultado tedioso tener que hacer todo el código HTML, CSS…

Hoy os traigo 3 frameworks que os ayudarán en el proceso para podáis dedicar más esfuerzo a la lógica de la aplicación.

FastHTML

Con FastHTML puedes crear aplicaciones web modernas y atractivas en Python puro y desplegarlas en minutos.  Puedes obtener más información y acceso a algunos ejemplos en su web: https://www.fastht.ml/.

FastAPI

Misma idea que la anterior pero esta vez centrada en crear una API. Te permitirá crear tus propias API con una sintaxis relativamente sencilla. Además, de forma automática te genera la documentación para que pueda ser consultada por internet.
Más información en su web: https://fastapi.tiangolo.com/.

Reflex

Si buscas algo tanto para frontend como para backend. Es personalizable, responsive y permite utilizar plantillas. Además, permite componentes.
Más información en su web: https://reflex.dev/

Minientrada

Alternativas gratuitas para alojar tus Bases de Datos

Primero de todo decir que ningún servicio es gratuito, es decir, si algo no te cuesta dinero es porque la empresa que proporciona ese servicio está ganando dinero de otra forma. Comento esto para aclarar que estas bases de datos pueden no servir para todos los proyectos y hay que revisar bien las condiciones de uso.

En primer lugar tenemos turso.tech, que nos oferece bases de datos SQLite. Con el plan gratuito tendrás 9GB, 500 bases de datos y tres localizaciones.

En segundo lugar traemos neon.tech, en donde podrás alojar bases de datos postgres SQL. Es útil para hacer pruebas en tus proyectos con su plan gratuito. Igual que la anterior dispone de una documentación muy completa.

Términos que todo programador debería conocer

  1. Variables: Espacios de memoria reservados para almacenar datos en un programa. Cada variable tiene asociado un nombre único y un valor.
  2. Tipos de datos: Determinan el tipo de información almacenado en una variable. Algunos tipos comunes son:
    1. Int: Números enteros.
    2. Float: Números decimales.
    3. String: Texto.
    4. Bool: Valores Booleanos (true o false).
  3. Estructuras de control: Mecanismos que permiten controlar el flujo en ejecución de un programa. Un ejemplo son los condicionales (if-else) y otro los bucles (for, while).
  4. Estructuras de datos: Formas de organizar y almacenar datos en memoria para un acceso eficiente, como arreglos, listas y diccionarios. Ofrecen diferentes formas de estructurar y manipular información.
  5. Algoritmos: Son secuencias de pasos definidos que resuelven problemas o realizan tareas específicas, siguiendo una lógica ordenada para alcanzar resultados precisos y eficientes.
  6. Debugging – Depuración: Proceso de identificar, analizar y corregir errores o fallos en el código de un programa.
  7. POO: Programación orientada a objetos, es un paradigma de programación que organiza el código en objetos que encapsulan datos y comportamientos, permitiendo la reutilización y extensión de funcionalidades a través de la herencia y composición.
  8. Operaciones lógicas: Aquellas aplicadas a valores booleanos. Son AND, OR, NOT…
  9. Operaciones matemáticas: Operaciones aritméticas básicas como la suma o la resta. Se aplican a valores numéricos y permiten realizar cálculos y manipulaciones de datos.
  10. Funciones: Bloques de código reutilizable que realizan una tarea específica. Permiten agrupar un conjunto de instrucciones bajo un nombre que facilita su llamada y ejecución desde diferentes partes del programa.
  11. Métodos: Funciones asociadas a objetos en la POO. Operan sobre los atributos y comportamientos del objeto y pueden acceder a sus datos internos.
  12. Asincronismo: En la programación asíncrona las operaciones no se ejecutan en orden secuencial, lo que permite que el programa funcione mientras se ejecutan tareas en segundo plano.

Listar los últimos archivos modificados de un sistema Linux

Hoy os traigo una forma de conocer los archivos que se han tocado últimamente en nuestro sistema.

Vamos a explicar el procedimiento paso a paso:

find . -type f

Con este comando vamos a mostrar un listado de todos los archivos que están en este directorio y sus subdirectorios.

Ahora vamos a formatear la salida del comando con printf

find . -type f -printf "\n%TF-%TH-%TM %p"

F – Para mostrar el año, mes y día.
H – Para mostrar la hora.
M – Para mostrar los minutos.
p – Para imprimir la ruta.

Ahora le metemos un pipe (tubería) para ordenar:

find . -type f -printf "\n%TF-%TH-%TM %p" | sort -nr -t"-" -k1,5

n – Ordenamiento numérico
r – Para ordenar al revés
t»-» – Se utiliza para indicar que el separador de campos es el guión.
k1,5 – Le indicamos que debe ordenar por los campos del 1 al 5, es decir, empieza por el año, después el mes y así hasta el minuto.

Finalmente recortamos la salida para que solo nos muestre las X primeras líneas, en este caso 20:

find . -type f -printf "\n%TF-%TH-%TM %p" | sort -nr -t"-" -k1,5 | head -20

También podemos ver solo el nombre del fichero en lugar de la ruta completa. Para ello usamos %f:

find . -type f -printf "\n%TF-%TH-%TM %f"

Y finalmente indicar que una buena práctica para limpiar la salida es enviar todos los errores a /dev/null:

find . -type f -printf "\n%TF-%TH-%TM %p" 2>/dev/null | sort -nr -t"-" -k1,5 | head -20

Y tambien podemos quitar todos los ficheros que empiecen por «.», es decir, todos aquellos ficheros ocultos que tenemos en el sistema:

find . -type f -printf "\n%TF-%TH-%TM %p" 2>/dev/null | sort -nr -t"-" -k1,5 | grep -Ev "\.\/\." | head -20

E – Expresiones regulares extendidas.
v – para descartar las líneas que coincidan con el patrón.

A partir de este grep puedes crear el que quieras para descartar también cualquier otro tipo de fichero que no sea interesante para tu búsqueda.

Para finalizar, puedes crear un alias que te permita llamar a este comando de una forma rápida. En este caso lo hemos llamado «lastmod»:

alias lastmod='find . -type f -printf "\n%TF-%TH-%TM %p" 2>/dev/null | sort -nr -t"-" -k1,5 | grep -Ev "\.\/\." | head -20'

Con el alias podrás buscar fácilmente los archivos modificados en el directorio en el que te encuentres.