R you ready for R?

Standard

Hello folks, today I’ll share with you my experience using R for the past few weeks. The problem was that I had to analyze different time series resulted from gathering a sensors output. I needed to load the data and see its behavior A.S.A.P.! I talked with my advisor and his recommendation was: start with R. You can follow his advice too and download R.

What is R?

So first things first, according with R’s official site, this tool is a complete environment that includes a programming language, a high quality graph generator, a statistical and machine learning back-end. One more attribute or R is its extensibility to link programs written in C, C++ or even Fortran programming language. I read a little more and turns out R has amazing capabilities share data between different database management systems like Hadoop, PostgreSQL or MySQL. Also R has a community that’s growing fast with a ton of functions (or packages) for any kind of data analysis you want to do. Continue reading

Putting some magic into PostgreSQL (part 1/3)

Standard

PostgreSQL is a relational database management system created by the almighty Michael Stonebraker, the 2015-Turing-award-winner-creator-of-all-that-is-good-and-awesome. The same person that create HP Vertica. Long story short, PostgreSQL is a great data management tool.

PostgreSQL is a magical place where gnomes and elfs live in harmony and true happiness. These magical creatures are quite awesome and they know their place in the Universe. Moreover, the PostgreSQL environment is aimed to include new beings in his magic Zen forest. This is more evident when looking at the ton of PostgreSQL’s data types such as network address, figures (polygons) and geo-data. But what’s insane is its features to develop and use User Defined Functions (a.k.a. UDFs).

Continue reading

ANSI C Pointers 101

Standard

Hi, I believe that Pizza and The C Programming Language are two of the most awesome things in the Universe. Also, I have a thesis:  The Universe was created by Morgan Freeman using just ANSI C code and Pizza, think about it! (I’m quite sure that Neil deGrasse Tyson has already done it). Celebrating this spiritual belief I’ll explain some very essential rules that govern our reality (#SpoilerAlert: I’ll talk about Pointers in C) in a basic but really different way.

The key concepts served in this post are:

  1. The use of pointers to manipulate variables.
  2. The use of pointers to access the elements of an array.
  3. The use of pointers to cast data across different data types.

As you might already imagine I’ll dish up these ideas with the magic of a crispy crust, tomato sauce and a lot of cheese (#OhYeah). But before we begin, I’ll expect from you a basic knowledge about C (mainly data types, variables and functions). O.K. lets go!

Continue reading

Evaluación de PostgreSQL y HP Vertica

Standard

Los Sistemas Gestores de Base de Datos (SGBD), permiten almacenar y manipular datos, evitando que los usuarios se preocupen por detalles de implementación (e.g. directorio de datos, mecanismos de consulta, estructura para almacenar los datos en disco). En el mercado existen diferentes propuestas de sistemas gestores (e.g. basados en grafos, basados en relaciones matemáticas, basadas en objetos). Cada una de las propuestas de los gestores poseen distintos enfoques. En esta ocasión, les comparto una evaluación de dos sistemas gestores, realizada en Hunabsys R&D. Nuestro objetivo es determinar el gestor con mejor desempeño, basados en el tiempo de cómputo que le toma al gestor resolver una consulta.

¿Qué y por qué?

En este trabajo evaluamos dos gestores: PostgreSQL y HP Vertica. Elegimos PostgreSQL porque contamos con experiencia utilizando este gestor. Además, incluimos al gestor HP Vertica, una herramienta de consulta que está siendo reconocida por su desempeño para manejar grandes volúmenes de datos. Una característica en común de PostgreSQL y HP Vertica es su (asombrosa) capacidad para extender la funcionalidad del gestor a través de Funciones Definidas por el Usuario (UDFs por sus siglas en Inglés, diría el buen Palomino). Otra característica que comparten estas herramientas es que involucran al Sr. Dr. M. Stonebraker ¡Tipazo, Genio y Premio Turing!. Continue reading

Una herramienta para exportar código en SQL

Standard

Hola, mi nombre es Daniel López. Soy desarrollador de software e investigador (a.k.a Auror) en Hunabsys R&D. Tengo trabajando en la empresa desde Octubre del 2014 y ha sido toda una experiencia. En el viaje, me he topado con varios retos de programación, hoy les pienso compartir uno de ellos. Mi experiencia hablando Pársel, o como los muggles lo llaman: programando en Python (¡Así es Victor! Hice una publicación al respecto, maldito sangre sucia).

¿Qué y por qué?

En un enunciado: La idea fue pasar un modelo de base de datos en SQL a su versión en SQLite en Android. Si desconoces de SQLite y como integrar una base de datos en esta tecnología con Android, te encuentras en donde yo estaba. En caso contrario, quizá pienses: Fácil!, ¿cierto? ¡No tanto! Como bien dicen, el diablo está en los detalles y el detalle de este problema es cómo y qué tan fácil puede crecer el archivo SQL. Antes de empezar esta trágica historia de un programador en su viaje para encontrar la sabiduría y la iluminación, recapitulemos. Una base de datos es el componente que permite almacenar y consultar información en una aplicación. Debido a que estas operaciones son frecuentes, se opta por utilizar una herramienta conocida como magia! O si eres de Gryffindor la conoces como sistemas gestores de base de datos (SGBD). Los SGBDs representan la información como tablas. Existen diferentes SGBDs (como MySQL y SQLite), así como herramientas para el diseño de estos gestores. Nosotros en Hunabsys utilizamos MySQL Workbench para el diseño de la base de datos. Por último, si has vivido en las cavernas del banco de Gringotts,  Android un sistema operativo que permite la administración de un dispositivo móvil y otros electrónicos (TV, tablets, refrigeradores y uno que otro tejón mutante). Continue reading