Published 25 Mar 2017
by Pablo Estrada
¿Alguna vez has desarrollado un sistema web? Por ejemplo, una página con PHP-MySQL,
Django-Postgress, o Node-MongoDB? ¿Tu sistema tiene cuentas de usuario con passwords
guardados en la base de datos? Y… le pusiste sal a tus passwords?
Published 27 Feb 2017
by Pablo Estrada
Como usuarios, e incluso como programadores, estamos acostumbrados a utilizar
nuestras computadoras y que funcionen. Dependemos de capas y capas concéntricas
de abstracción que permiten ocultar la complejidad de las capas anteriores. Sin
embargo, para un buen programador es importante ser consciente de estas capas,
de las implicaciones y de las mejores maneras de utilizarlas.
Published 07 Nov 2016
by Pablo Estrada
Ya tiene muchos años que nuestras computadoras personales incluyen
microprocesadores con más de un núcleo. Esto le permite a nuestros programas
ejecutar varias tareas en paralelo. Diversos lenguajes de programación permiten
explotar este modelo a través del uso de multiprocesamiento. Ejemplos muy bien
conocidos son la librería de Threads de Java y los hilos POSIX en C.
Published 22 Oct 2016
by Pablo Estrada
En Marzo de 2016 recibí una de las noticias más importantes de mi vida: Una
oferta de trabajo de Google. Dos semanas después acepté la oferta, y para
Septiembre del mismo año me uní a la empresa. Ésta es la historia de mi primera
demana en el gigante de Mountain View.
Published 15 Oct 2016
by Pablo Estrada
Uno de mis temas favoritos en análisis de datos es el análisis de Redes
Complejas. El estudio de relaciones entre múltiples agentes nos permite
entender características interesantísimas de los sistemas en que se
desenvuelven. Vamos a estudiar algunas visualizaciones y ejemplos reales de
redes sociales, y de información que nos han ayudado a descubrir y entender el
mundo que nos rodea.
Published 06 Oct 2016
by Pablo Estrada
¿Qué es Big Data? Todo mundo habla de Big Data de una manera difusa y poco
concreta. Todas las empresas quieren ‘entrarle al Big Data’, pero ¿qué significa eso?
En este post vamos a platicar de manera sencila sobre a qué nos referimos con
el término Big Data, y vamos a hacer un pequeño ejemplo en Python que permita
demostrar cuándo y porqué es necesario utilizar herramientas de Big Data.
Published 29 Sep 2016
by Pablo Estrada
Este post va a ser bastante sencillo. Les voy a contar de una herramienta
de desarrollo en Python llamada virtualenv
; que te permite crear entornos
aislados para probar y desarrollar proyectos en Python. La ventaja de
virtualenv
es que te permite tener varias instalaciones funcionales de
Python en una misma máquina.
Published 17 Jul 2016
by Pablo Estrada
En los últimos años, hemos escuchado por aquí y por allá sobre criptomonedas. Al principio eran los bitcoins, y después fueron los dogecoins, coinye, y una larga lista de ejemplos. Estas monedas digitales se convirtieron en interesantes iniciativas que buscan crear sistemas monetarios que no dependan de bancos, gobiernos o entidades centralizadas.
Published 11 Jul 2016
by Ricardo Zavaleta
En esta ocasión hablaremos de una estructura de datos muy interesante. Se trata de las Hash Tables (en español a veces se les conoce como tabla hash, matriz asociativa, mapa hash, tabla de dispersión o tabla fragmentada (1), en este post nos apegaremos a los nombres usados en inglés puesto que son más estándar y porque así podrán saber qué términos buscar si desean investigar más por su cuenta).
Published 09 Jul 2016
by Pablo Estrada
En los últimos años, Big Data se ha convertido en una de las expresiones favoritas del mundo de la computación. Empresas grandes y pequeñas han buscado ‘adoptar’ el Big Data, y muchas otras han decidido ‘enseñarlo’. El campo es un poquito confuso y no es fácil encontrar un buen resumen de qué es big data, y cómo funciona. Así que aquí te lo vamos a platicar! Antes de tomar un curso, o rendirte, checa este post para darte una idea de qué onda con el Big Data!
Published 05 Jul 2016
by Pablo Estrada
Algunos algoritmos de la ciencia de la computación que son importantísimos son los algoritmos de encripción. Estos algoritmos permiten esconder información para transmitirla en medios públicos, y son la abse de muchísimos servicios del internet.
Published 03 Jul 2016
by Pablo Estrada
Software is eating the world, dicen muchos. En los últimos años, la industria del software ha vivido una increíble explosión en tamaño, ventas y atención de medios. El mundo hispanohablante no es la excepción, y en especial México, que se ha convertido en una fuente de talento para Silicon Valley.
Published 19 Jun 2016
by Pablo Estrada
En un post anterior aprendimos cómo comprimir datos utilizando el algoritmo de Huffman,
que es un algoritmo que permite obtener códigos óptimos para un conjunto de bits. En ese mismo post publicamos
un programa en Python que dado un archivo de texto, genera dos archivos: Un diccionario en JSON, y un archivo
binario que contiene los datos comprimidos del archivo de entrada. Sin embargo, no publicamos el programa
para descomprimir datos.
Published 03 May 2016
by Pablo Estrada
Python es un lenguaje súper fácil de usar. Se ha vuelto muy popular en escuelas, investigación, y para “Data Science”. Éste es un post sobre ‘buenas prácticas’ con tu códgo de Python.
Published 27 Apr 2016
by Pablo Estrada
Éste es el primer post en una serie de post sobre modelos de programación. En esta serie vamos a estudiar algunos lenguajes de programación interesantes, y cómo funcionan sus modelos de ejecución. En esta ocasión vamos a hablar de JavaScript.
Published 28 Mar 2016
by Pablo Estrada
Hoy vamos a platicar sobre cómo hacer un pequeño programa para comprimir datos de un archivo de texto. Nuestro programa va a funcional con un algoritmo de compresión bastante famoso: El algoritmo de Huffman. Con él vamos a utilizar menos bits para guardar la misma cantidad de información.
Published 22 Mar 2016
by Pablo Estrada
El software libre está presente en todas nuestras actividades tecnológicas. Desde el sistema Android en nuestros celulares, el sitema Linux en la mayor parte de los servidores del mundo, y la librería OpenSSL que ayuda a encriptar tus comunicaciones. Es software muy importante, y grandes desarrolladores han empezado sus carreras con software libre (e.g. Miguel de Icaza y Linus Torvalds); sin embargo, también es un entorno desconocido y donde es difícil adentrarse.
Published 17 Mar 2016
by Pablo Estrada
Hace unos días ocurrió un evento que sorprendió a la comunidad de inteligencia artificial en todo el mundo. Investigadores en DeepMind (una compañía de Inteligencia Artificial que le pertenece a Google) desarrollaron software que tras ser entrenado, logró vencer a el campeón mundial del juego de mesa Go, llamado Sedol Lee. El duelo fue de 5 juegos, donde la puntuación final fue de 4 a 1, a favor de la máquina.
Published 03 Mar 2016
by Pablo Estrada
El día de hoy toca hablar de redes neuronales. Las redes neuronales han estado empujando el horizonte de lo que se creía posible en la inteligencia artificial, y casi cada semana hay noticias nuevas de un sistema inteligente basado en redes neuronales. Hoy vamos a programar una red neuronal muuuy sencilla.
Published 31 Dec 2015
by Pablo Estrada
JavaScript es uno de los lenguajes de programación más utilizados en el mundo; y la función Math.random()
es la función estándar de JavaScript para obtener números pseudoaleatorios. ¿Me creerían si les dijera que hasta hace unos días, la función Math.random()
en uno de los motores de JavaScript más usados en el mundo era medio mala?
Published 22 Dec 2015
by Pablo Estrada
Hace unas semanas encontré un mapa en TopoJSON de México, y decidí utilizar información que obtuve del sitio web del INEGI para hacer una pequeña visualización de Producción bruta total, y población en el territorio Mexicano. Aquí la pueden ver:
Published 20 Dec 2015
by Pablo Estrada
Hace un poco más de dos meses, el mundo de los algoritmos fue sacudido con un nuevo resultado en Isomorfismo de Grafos. El profesor Lázló Babai de la Universidad de Chicago es un brillante académico de ciencia de la computación y matemáticas. De origen Húngaro, el profesor Lázló realiza investigación en la Teoría de la Complejidad, matemáticas discretas y algoritmos. Hace un par de meses, el profesor Lázló (conocido entre sus amigos como Laci) anunció que había descubierto un algoritmo cuasi-polinomial que permite resolver el el problema de Isomorfismo de Grafos. Vamos a ver qué significa todo esto…
Published 20 Nov 2015
by Pablo Estrada
Recientemente, investigadores de la Universidad de Fribourg en Suiza han estado trabajando en
un nuevo artículo donde estudian el profundamente el algoritmo
de PageRank. Particularmente, este estudio se centra en el comportamiento de PageRank caundo es
utilizado para analizar redes (también conocidas como grafos) que crecen con el tiempo. El artículo fue
mencionado en la lista ‘Emerging Technology from the ArXiv’,
de MIT Technology Review: Una lista semanal donde se seleccionan artículos novedosos e interesantes. Acabo de leer
el artículo (en parte porque tengo que presentarlo en la escuela:P) y decidí escribir un pequeño post al respecto,
dado que PageRank es un algoritmo famoso e importante.
Published 12 Nov 2015
by Pablo Estrada
Hace poco descargué una base de datos con información de negocios de “manufactura” del sitio web del INEGI. La información está disponible para todos, y hay
muchas cosas interesantes. Me puse a jugar con esos datos, y decidí hacer mi primera visualización de mapa con
la información de los negocios y algunos datos extra.
Published 25 Oct 2015
by Pablo Estrada