BlueSimplex https://bluesimplex.com/ Mi rincón personal en la web en-us Sun, 30 Sep 2018 00:00:00 -0500 https://bluesimplex.com/2018/09/30/vectores_velocidad_y_aceleración_nc2.html https://bluesimplex.com/2018/09/30/vectores_velocidad_y_aceleración_nc2.html <![CDATA[Vectores, Velocidad, y Aceleración (NC2)]]> Vectores, Velocidad, y Aceleración (NC2)

Esta es la segunda entrada en la serie de artículos sobre el libro The Nature of Code. No es una traducción, sino una discusión breve sobre las ideas y una reimplementación de los algoritmos. En vez de usar Java usaré Javsascript con la librería p5.js.

El primer capítulo trata sobre vectores y cómo utilizarlos en animaciones. Normalmente uno representa por medio de vectores la posición, velocidad, y aceleración de un objeto.

Read more...

]]>
Sun, 30 Sep 2018 00:00:00 -0500
https://bluesimplex.com/2018/09/22/caminantes_aleatorios_nc1.html https://bluesimplex.com/2018/09/22/caminantes_aleatorios_nc1.html <![CDATA[Caminantes Aleatorios (NC1)]]> Caminantes Aleatorios (NC1)

Desde hace unos años he tenido la intención de leer el libro The nature of code escrito por Daniel Shiffman. Es un libro que se enfoca en crear animaciones para simular de forma aproximada cosas como movimiento, inercia y fuerzas actuando sobre un cuerpo. Lo que más me gusta del libro es lo gratificante que resulta el ver tu código «vivo» en la pantalla.

En esta serie de artículos hablaré un sobre las ideas presentadas en el libro conforme lo vaya leyendo. Implementaré los ejercicios y ejemplos en Javascript, por medio de p5.js. En el libro Shiffman trabaja con Processing, un dialecto de Java que corre en su propio interprete.

En esta entrada revisaré la introducción del libro, que trata sobre caminantes aleatorios y distribuciones de probabilidad.

Read more...

]]>
Sat, 22 Sep 2018 00:00:00 -0500
https://bluesimplex.com/2018/08/13/semillas_en_espirales.html https://bluesimplex.com/2018/08/13/semillas_en_espirales.html <![CDATA[Semillas en espirales]]> Semillas en espirales

Uno de los ejemplos más populares en matemática divulgativa es el crecimiento en espiral de algunos elementos en la naturaleza. Las semillas de girasol son tal vez el caso más común. Se nos dice que la espiral de alguna manera está relacionada con la razón dorada y la sucesión de Fibonacci.

Por supuesto hay muchos otros ejemplo de plantas y hojas que crecen en un patrón similar. Pero, ¿por qué?.

Read more...

]]>
Mon, 13 Aug 2018 00:00:00 -0500
https://bluesimplex.com/2018/07/29/fizzbuzz_recursivo.html https://bluesimplex.com/2018/07/29/fizzbuzz_recursivo.html <![CDATA[FizzBuzz recursivo]]> FizzBuzz recursivo

El problema de FizzBuzz es un problema clásico que se usa como pregunta en entrevistas para programadores. Por la naturaleza del problema, aún cuando un programador tenga algo de experiencia escribiendo código puede ser que se le complique implementar la solución correctamente.

El problema es muy simple, se basa en un ejercicio de aritmética elemental que ayuda a los niños a practicar la división.

La idea básica es decir (o imprimir) los números del 1 al 100 excepto en tres casos:

  • Cuando alguno de los números sea divisible entre 3 debes decir la palabra «Fizz».
  • Cuando el número sea múltiplo de 5, debes decir la palabra «Buzz».
  • Finalmente, cuando el número es múltiplo de ambos, 5 y 3, debes decir la palabra «FizzBuzz».

Read more...

]]>
Sun, 29 Jul 2018 00:00:00 -0500
https://bluesimplex.com/2018/07/29/recursive_fizzbuzz.html https://bluesimplex.com/2018/07/29/recursive_fizzbuzz.html <![CDATA[Recursive FizzBuzz]]> Recursive FizzBuzz

The FizzBuzz problem is a classical interview question used to quickly discard candidates that want to work as programmers but can’t actually write code. It is very simple and is based on an old mental exercise to help kids practice division.

The idea is to say (or print) the numbers from 1 to 100, except in three special cases:

  • If the number is divisible by 3, then you must say «Fizz».
  • If the number is divisible by 5, then you have to say «Buzz».
  • Finally, if the number happens to be a multiple of both 5 and 3, then the word to say is «FizzBuzz».

Read more...

]]>
Sun, 29 Jul 2018 00:00:00 -0500
https://bluesimplex.com/2017/08/10/the_classic_snake_with_a_twist.html https://bluesimplex.com/2017/08/10/the_classic_snake_with_a_twist.html <![CDATA[The classic Snake with a twist]]> The classic Snake with a twist

I had the idea for this minigame a long time ago, when I played Yoshi Island on my cousin’s Gameboy Advanced. I finally have a chance to do it.

Read more...

]]>
Thu, 10 Aug 2017 00:00:00 -0500
https://bluesimplex.com/2017/08/07/algoritmo_para_generar_laberintos.html https://bluesimplex.com/2017/08/07/algoritmo_para_generar_laberintos.html <![CDATA[Algoritmo para generar laberintos]]> Algoritmo para generar laberintos

En términos muy generales, un algoritmo para generar laberintos inicia con un grafo plano en el que cada arista representa una pared, y el objetivo final de dicho algoritmo es encontrar un subgrafo. Dependiendo del grafo inicial y el algoritmo empleado el subgrafo final puede ser un laberinto muy intrincado o uno muy simple.

Read more...

]]>
Mon, 07 Aug 2017 00:00:00 -0500
https://bluesimplex.com/2017/07/30/conjuntos_de_julia.html https://bluesimplex.com/2017/07/30/conjuntos_de_julia.html <![CDATA[Conjuntos de Julia]]> Conjuntos de Julia

Los conjuntos de Julia, nombrados así en honor al matemático Gaston Julia, son una familia de fractales que se obtienen al estudiar los conjuntos invariantes bajo iteraciones de una función compleja. Al complemento de un conjunto de Julia se le llama conjunto de Fatou en honor al matemático Pierre Fatou.

En términos muy generales se puede decir que el conjunto de Julia de una función racional compleja son aquellos puntos cuyo comportamiento es caótico, es decir que pequeñas perturbaciones provocan cambios drásticos. Mientras que el conjunto de Fatou contiene aquellos puntos cuyo comportamiento es regular.

Read more...

]]>
Sun, 30 Jul 2017 00:00:00 -0500
https://bluesimplex.com/2017/07/02/estructuras_de_datos_en_r.html https://bluesimplex.com/2017/07/02/estructuras_de_datos_en_r.html <![CDATA[Estructuras de datos en R]]> Estructuras de datos en R

En R como en cualquier otro lenguaje existen diversas estructuras de Datos, pero a diferencia de otros lenguajes en R la estructura básica son los vectores. Incluso los números y las cadenas de texto se de hecho vectores de un solo elemento. En este artículo explicaré algunas estructuras de datos y como manipularlas.

Read more...

]]>
Sun, 02 Jul 2017 00:00:00 -0500
https://bluesimplex.com/2017/06/30/introducción_a_r.html https://bluesimplex.com/2017/06/30/introducción_a_r.html <![CDATA[Introducción a R]]> Introducción a R

R es un popular lenguaje de programación especialmente útil para análisis estadístico. Este artículo explican algunos conceptos básicos para empezar a usar R.

Read more...

]]>
Fri, 30 Jun 2017 00:00:00 -0500
https://bluesimplex.com/2017/06/30/datasets_en_r.html https://bluesimplex.com/2017/06/30/datasets_en_r.html <![CDATA[Dataframes en R]]> Dataframes en R

La estructura de datos más común en R son los dataframes. La mayoría de los paquetes en R contienen rutinas para manipular dicha estructura de datos. Este artículo explica algunas de sus funcionalidades básicas.

Read more...

]]>
Fri, 30 Jun 2017 00:00:00 -0500
https://bluesimplex.com/2017/06/29/usar_google_drive_desde_una_terminal_en_linux.html https://bluesimplex.com/2017/06/29/usar_google_drive_desde_una_terminal_en_linux.html <![CDATA[Usar Google Drive desde una terminal en linux]]> Usar Google Drive desde una terminal en linux

En esta entrada voy a hablar sobre drive, un programa que permite usar Google Drive desde una terminal. El programa fue credo por Jaana B. Dogan quien trabajaba como parte del equipo a cargo de Google Drive, así que hay la garantía de que el código fue escrito por alguien que conoce a la perfección el servicio.

Este cliente permite hacer pulls y pushes de archivos muy parecido a lo que se hace con un repositorio en GitHub, la analogía va más allá, hay la posibilidad de crear un archivo .driveignore que cumple la misma función que .gitignore, permitiendo omitir archivos o directorios a partir de una lista de nombres o expresiones regulares.

Drive no tiene la intención de ser un cliente que automáticamente sincroniza tus archivos, la programadora que lo creó lo hizo intencionalmente porque «la sincronización automática no es para todos». Por supuesto uno puede escribir un script para sincronizar automáticamente o usar crontab para hacer respaldos periódicos. Este repositorio que contiene algunos scripts para dichos escenarios, pero no los he probado.

Read more...

]]>
Thu, 29 Jun 2017 00:00:00 -0500
https://bluesimplex.com/2017/05/31/crear_una_máquina_virtual_base_centos_para_vagrant.html https://bluesimplex.com/2017/05/31/crear_una_máquina_virtual_base_centos_para_vagrant.html <![CDATA[Crear una máquina virtual base CentOS para Vagrant]]> Crear una máquina virtual base CentOS para Vagrant

Vagrant es un software que permite manejar máquinas virtuales desde la linea de comandos. Muy útil cuando uno necesita un entorno aislado para probar software o correr un servicio. Por ejemplo un servidor LDAP o html.

En esta entrada explico en términos generales como crear una máquina base para Vagrant. Dicha máquina se usa posteriormente para crear rápidamente una nueva máquina virtual cuando se necesite.

Asumiré que se tiene ya cierta experiencia usando Vagrant. La mayor parte del proceso que aquí se describe es desde una terminal. Crearemos una máquina virtual con CentOS 7.

Read more...

]]>
Wed, 31 May 2017 00:00:00 -0500
https://bluesimplex.com/2017/05/25/descargar_información_bibliográfica_automáticamente_desde_mathscinet.html https://bluesimplex.com/2017/05/25/descargar_información_bibliográfica_automáticamente_desde_mathscinet.html <![CDATA[Descargar información bibliográfica automáticamente desde MathSciNet]]> Descargar información bibliográfica automáticamente desde MathSciNet

MathSciNet es una base de datos que contiene información bibliográfica y reseñas sobre casi cualquiér publicación matemática. Escribí un pequeño script para shell (Linux/Mac) que automáticamente añade entradas bibliográficas a un archivo .bib usando los números MR de matscinet. Mostraré dos ejemplos, uno que usa natbib y otro con biblatex

Para que el código funcione se requiere acceso a MathSciNet. Muchas universidades tienen una suscripción que permite a todos sus alumnos acceder al sitio, así que sólo hay que conectarse a internet desde la red universitaria.

Read more...

]]>
Thu, 25 May 2017 00:00:00 -0500
https://bluesimplex.com/2017/05/22/tema_cuerna_para_beamer.html https://bluesimplex.com/2017/05/22/tema_cuerna_para_beamer.html <![CDATA[Tema Cuerna para beamer]]> Tema Cuerna para beamer

LaTeX Beamer es un paquete diseñado para facilitar el crear presentaciones que incluyen fórmulas matemáticas. Dichas presentaciones se pueden personalizar combinando temas y paletas de colores, muchos de los cuales se incluyen por defecto en la distribución de LaTeX. El problema principal es que todos los temas se parecen.

El tema Cuerna para beamer un tema personalizado que escribí para diversificar las opciones cuando se trata de hacer una presentación que sea visualmente agradable. Así es como luce:

Beamer theme cuerna

La forma más sencilla de usarlo es a partir de una plantilla en línea en algún editor como ShareLaTeX o Overleaf. También es posible descargar el código fuente desde Github o instalarlo desde CTAN usando el gestor de paquetes de tu distribución de TeX.

Read more...

]]>
Mon, 22 May 2017 00:00:00 -0500
https://bluesimplex.com/2017/05/21/netflix_y_youtube_en_ventanas_sin_bordes_en_ubuntu.html https://bluesimplex.com/2017/05/21/netflix_y_youtube_en_ventanas_sin_bordes_en_ubuntu.html <![CDATA[Netflix y Youtube en ventanas sin bordes en Ubuntu]]> Netflix y Youtube en ventanas sin bordes en Ubuntu

Este post muestra dos scripts en lua para establecer un tamaño específico y deshacernos de las decoraciones de ventana cuando vemos youtube o netflix en chrome. Adicionalmente agregaré las configuraciones que uso para mi terminal.

Para ello usaremos Devilspie2. Devilspie2 es una herramienta de scripting que permite manipular ventanas, cambiando el tamaño, la posición y la decoración por medio de scripts en Lua.

Read more...

]]>
Sun, 21 May 2017 00:00:00 -0500
https://bluesimplex.com/2017/02/24/borderless_netflix_and_youtube_windows_on_ubuntu.html https://bluesimplex.com/2017/02/24/borderless_netflix_and_youtube_windows_on_ubuntu.html <![CDATA[Borderless Netflix and YouTube windows on Ubuntu]]> Borderless Netflix and YouTube windows on Ubuntu

This post shows two lua scripts to set a specific window size and get rid of the window decorations for youtube and netflix. As an extra I will also include the configurations I use for my terminal.

To perform the tasks described above we are going to use Devilspie2. Devilspie2 is a scripting tool that allows to manipulate the windows, changing the size, the window decoration and the position using Lua scripts.

Read more...

]]>
Fri, 24 Feb 2017 00:00:00 -0600
https://bluesimplex.com/2017/02/23/automatically_download_latex_bibliographies_from_mathscinet.html https://bluesimplex.com/2017/02/23/automatically_download_latex_bibliographies_from_mathscinet.html <![CDATA[Automatically download LaTeX bibliographies from MathSciNet]]> Automatically download LaTeX bibliographies from MathSciNet

MathSciNet is a big database that has bibliographic information and reviews about most mathematical publications out there. I created a Shell script that automatically adds bibliography entries to a .bib files using the mathscinet MR numbers. This post explains how to use the script. 2 examples will be shown, one that uses natbib and the second with biblatex.

Notice you must have access to MathSciNet. Many universities already have a subscription so you can just go to the site from your university network.

Read more...

]]>
Thu, 23 Feb 2017 00:00:00 -0600
https://bluesimplex.com/2017/02/04/installing_mayavi_with_python_3.html https://bluesimplex.com/2017/02/04/installing_mayavi_with_python_3.html <![CDATA[Installing Mayavi with Python 3]]> Installing Mayavi with Python 3

After a few hours I finally managed to install Mayavi in a virtual conda environment, so now I’m able to use it with Jupyter.

Installing Mayavi on a Python 2 environment only takes a simple

pip install mayavi

But unfortunately this is still not supported in Python 3, so we have to figure out a workaround.

This post is really geeky, we are going to compile some code from a terminal and install a few dependencies. If you follow it step by step it should work, but it’s better if you understand what you are doing.

Shout out to the Vegan and Depressed guy whose blog post was the main source for this how-to.

Read more...

]]>
Sat, 04 Feb 2017 00:00:00 -0600
https://bluesimplex.com/2017/02/01/cuerna_beamer_template.html https://bluesimplex.com/2017/02/01/cuerna_beamer_template.html <![CDATA[Beamer Theme Cuerna]]> Beamer Theme Cuerna

LaTeX Beamer is a package designed to make it easier to create slides with a lot of mathematical formulas. It can be customized using themes and color themes, many of these are shipped with the default LaTeX distribution and can be combined. The main problem is that they look more or less the same.

The beamer theme Cuerna is a customized theme created by me to diversify the options when it comes to making a beamer presentation visually pleasing. It looks like this:

../../../_images/default.png

The simplest way to use it is from a template on an online editor like ShareLaTeX or Overleaf. You can also browse the source code on Github or download it with your LaTeX distribution package manager from CTAN.

Read more...

]]>
Wed, 01 Feb 2017 00:00:00 -0600
https://bluesimplex.com/2017/05/20/hola_mundo.html https://bluesimplex.com/2017/05/20/hola_mundo.html <![CDATA[Hola Mundo]]> Hola Mundo

Probando como funciona, parece que correctamente. Me gusta.

]]>
Sat, 20 May 2017 00:00:00 -0500