2023-04-25

Taller de Computación Científica

source: freepik

En un trabajo conjunto entre la Universidad Libre - seccional Cali y la RUAV , en el mes de febrero 2023 realizamos el taller Introducción a la Computación Científica con Jupyter/Python.

A continuación comparto los videos, y en la descripción encuentran el cuaderno de la sesión:

  1. Sesión 1: Computación Científica, Ciencia Abierta, Cuadernos Jupyter y Markdown.
  2. Sesión 2: El Lenguaje de Programación Python.
  3. Sesión 3: Cálculo Numérico, Simbólico y Científico.
  4. Sesión 4: Gráficos y Mapas.
  5. Sesión 5: Análisis de Datos con Pandas.
Preguntas, comentarios y sugerencias son todas bienvenidas. 


2023-04-21

Sistema Operativo para Desarrollo


Linux, MacOS o Windows, la pregunta persiste entre los desarrolladores de software. En muchos aspectos el sistema operativo de escritorio se ha vuelto un commodity (cualquiera sirve para lo mismo). 

Herramientas comunes para desarrollar software desde el escritorio, están disponibles por igual para los sistemas operativos Linux, MacOS y Windows: 
  • IDEs: Eclipse, NetBeans, Visual Studio Code, Arduino, Android Studio, etc.
  • Lenguajes: Java, Python, PHP, Kotlin, C#, Ruby, C/C++, etc.
  • Bases de Datos: PostgreSQL, SQLite, MySQL, Oracle RDBMS, etc.
Sin embargo, el desarrollo de software cada vez más se realiza utilizando herramientas desde la línea de comandos, y ahí tanto Linux como MacOS tenían la ventaja, porque BASH fue por mucho tiempo la interfaz de línea de comando (o CLI) por excelencia.

Pero además de una CLI programable, los gestores de paquetes fueron los hicieron que muchos programadores abandonaran Windows se cambiaran a Linux, por la facilidad que implica automatizar tareas de instalación y configuración de ambientes de desarrollo. Otros se cambiaron a MacOS aprovechando gestores de paquetes como MacPorts y Brew que de alguna forma igualaban a sus contrapartes en Linux.

Para Windows también surgieron algunos gestores de paquetes como Chocolatey, y Microsoft terminó creando el suyo propio: Windows Package Manager.

Pero PowerShell no es BASH, ni WinGet es el gestor de paquetes que los programadores acostumbran a usar. Ofrecer nuevas herramientas para hacer lo que se hace igual en Linux y MacOS no resolvió el problema.

La solución para Microsoft fue recurrir a un antiguo componente de Windows llamado SFU: Services for Unix, y al hecho que el kernel de Windows siempre ha soportado POSIX (desde NT), y crear algo nuevo llamado WSL: Windows Services for Linux. Nota: solo de Windows 10 en adelante.

Con WSL se ejecuta un kernel de Linux en modo usuario de Windows, de esta forma los programadores de Windows ahora pueden tener un sistema Linux completo ejecutándose al mismo tiempo. Una CLI con Bash, el mismo gestor de paquetes y todos los demás programas a los que ya están acostumbrado a usar. 

Para instalar WSL solo es necesario abrir PowerShell y ejecutar: wsl --install, con eso es suficiente para tener un Ubuntu funcionando al lado de Windows.

2023-04-18

¿Cómo hacer preguntas inteligentes?


Una de las Leyes de Murphy indica que "Una Pregunta es una declaración implícita de Ignorancia", y cuando de un salón de clase se trata, usualmente significa además que alguien no leyó o no preparó la clase como debía, de lo contrario seguramente sabría lo que está preguntando.

Sin embargo, es claro que hacer preguntas es parte del proceso de aprendizaje, lo importante es saber hacer preguntas inteligentes.

Una pregunta inteligente es aquella que amerita ser respondida, que está bien formulada (en forma y esencia), que tiene cierto grado de dificultad, que justifica que una persona ocupada dedique algo de su tiempo libre para darle respuesta, y por lo tanto exige una respuesta inteligente.

Preguntas que se pueden responder con el acostumbrado RTFM no son preguntas inteligentes. Para dar algunos ejemplos, preguntas del tipo:
  • Donde encuentro X, o Y?
  • Mi aparato X, marca Y no funciona. Qué hago?
  • Instale X, Y o Z, por qué no funciona?
  • Este programa no funciona. Qué hago?
Estas son muy malas preguntas, poco inteligentes. Muestran que quien pregunta no sabe ni qué preguntar. Además de reflejan algunas cosas interesantes:
  • Suponer que quien responde conoce sitios secretos en Internet, pues quien pregunta no es capaz de encontrar una respuesta él mismo usando Bing, Google, ChatGPT o lo que sea que el resto del mundo usa cuando necesita una respuesta.
  • Suponer que quien responde tiene una máquina igualita, con la misma versión de software, y que falla de la misma forma (no dicha) que la máquina de quien pregunta.
  • Suponer que quien responde tiene poderes extrasensoriales y es capaz de adivinar por qué algo no funciona solo poniendo sus manos sobre la pantalla donde está la pregunta.
No es de extrañar que estas preguntas sean completamente ignoradas, no reciban ninguna respuesta útil, o solo reciban siglas como las mencionadas antes.

Si desea mejorar la posibilidad que alguien destine tiempo para responder sus preguntas, por favor tómese antes un momento para leer este artículo y aprenda a hacer preguntas inteligentes.