Web Scraping With Python and BeautifulSoup Library

Standard

apython

Some time ago i wrote a post about web crawling using google´s api (See here). However, it lacks of HTML labels recognition support and it becomes tedious to find key components on web pages.

In this post, i will try to show you how to successfully recognize web page’s key HTML labels such as title, div, etc using a library named BeautifulSoup using the programming language Python. For this reason, we need to have basic HTML and python knowledge. For experiment purposes i will be using the native python installation on OSX 10.11.5 “El Capitan”. Continue reading

Aprender a Programar Jugando

Standard

Hola a todos, en mi post anterior nos pusimos serios revisando los tipos de competencias que un buen programador debe de contar en su arsenal de conocimientos y habilidades. En este post vamos a enfocarnos en el aprendizaje continuo, pero jugando. 😃

Habiendo actualmente tantos recursos donde aprender como:

  • Libros.
  • Blogs.
  • Tutoriales.
  • Videos.
  • MOOC (Massive Online Open Courses)
  • Degrees y Nanodegrees. (De estos dos últimos hablaré en algún post a futuro).
  • otros…
Destaca uno en particular que son los juegos, que te ayudan a reforzar los conceptos de programación, inteligencia artificial (AI)  o herramientas, tratan de hacerlo divertido en el proceso y promueven que aprendas “ensuciandote las manos”.
Les voy a compartir tres juegos que he usado y estoy usando actualmente en tres plataformas y herramientas diferentes: VIM, R y Ruby.
zelda-nes
Zelda NES Screenshot (tomada de http://www.EmuParadse.me)

Continue reading

4 Métodos científicamente comprobados para dejar de procrastinar

Standard

Tienes una fecha limite y se esta convirtiendo en una pesada carga para tus hombros, sabes que solo tiene que comenzar pero la dejas para después. En vez de eso contestas correos electrónicos pendientes, limpias tu escritorio, llamas a un viejo amigo por teléfono o prefieres navegar otros cinco minutos en Facebook, haces todo lo posible para retrasar ese proyecto de enormes proporciones un poco más (como yo con este blog).

Cara-Menghadapi-Deadline

Obviamente, este es el método de productividad, particularmente es cuando realmente solo tienes que tomar al toro por los cueros y conquistar esa tarea temida, misma que ha estado volando por fuera de la lista de tareas todas las semanas.

Pero, ¿Qué se puede hacer para inspirarnos a empezar a hacer progresos en los proyectos que parecen completamente abrumadores? Resulta que la ciencia tiene algunas respuestas.

Continue reading

Quemar bootloader de arduino en microcontrolador ATMEGA328P

Standard

Que tal amigos lectores, es un placer para mí redactar nuevamente. Esta ocasión traigo ante ustedes algo muy interesante y orientado a beginners makers con afinidad al diseño electrónico. Este tipo de personas suelen ser aquellas que prefieren desarrollar sus propias placas con el objetivo que realicen una labor específica. Esto difiere de las placas de desarrollo tradicionales, las cuales son fabricadas para un propósito general. La ventaja que representa el diseñar tu propia tarjeta electrónica es que se logran optimizar las dimensiones. Lo que acabo de explicar, se aprecia en la siguiente imagen:

13901871_10153827781923634_1741285343_o

Lo que acaban de observar son 2 tarjetas que utilizan la plataforma open-source Arduino para el desarrollo de software. A la izquierda se aprecia la tarjeta oficial Arduino UNO con la cual podemos desarrollar tantos proyectos, como lo permita su capacidad. A la derecha, tenemos una tarjeta que diseñamos en esta compañía en la cual su microcontrolador es el ATMEGA328P, el mismo chip que tiene Arduino UNO. Sin embargo, el circuito de la derecha, lo diseñamos con el único propósito de tomar lecturas de algunos sensores. En el fondo estamos hablando de lo mismo, pero el diseñar tu propia placa genera limpieza, estética y se aprecia como un trabajo más profesional. Continue reading

Teoria de Grafos I

Standard

Hola a todos espero y tengan un buen día, el día de hoy en esta primera parte de este blog vamos a empaparnos un poco acerca de a teoría grafos, espero y les sea útil, bien pues comencemos.

¿Que es un grafo?

Pues un grafo es una colección finita de vértices o nodos(nodes) y aristas (edges).Seguramente se preguntaran, ¿lo usamos en nuestra vida diaria?. Vamos a poner un ejemplo: Facebook. La inmensa red social que seguramente usamos casi a diario, es considerada un grafo social (social graph). En este grafo, cada persona es considerada un nodo del grafo y cada arista es la encargada de relacionar a dos personas. En facebook un amigo tuyo es una relación bi-direccional. Ejemplo A es amigo de B => B es amigo de A, entonces estamos hablando de un grafo no­-dirigido.

Cada arista de un grafo es representado como un par ordenado (u,v) donde (u,v) indica que existe una arista del vértice u al vértice v. Las aristas es posible que contengan un costo(cost), un peso (weight) o longitud (length). La valencia de un vértice es es el numero de aristas que conectan a este mismo. Continue reading

Hablemos de API’s (Parte 1)

Standard

Hola que tal, espero se encuentren muy bien! Hace algún tiempo que no escribía en el blog, espero que este tema sea de su interés y que lo disfruten.

En esta ocasión, abordaremos un tema de moda desde hace algún tiempo, en el cual he tenido la oportunidad de involucrarme desde hace algunos proyectos: Las API’s

Las API (Application Programming Interface, por sus siglas en ingles), son interfaces que nos permiten interactuar con un sistema de una manera mas practica y escalable, sin necesariamente saber que sucede detrás. Desde métodos para realizar acciones de un CRUD, hasta solo mandar una cantidad mínima de datos y que la API nos resuelva todo un proceso que seria extremadamente complejo o tardaríamos una eternidad en completar por nuestra cuenta. Nos permiten encapsular y separar los componentes de un sistema para poder compartirlos con otros usuarios (personas o sistemas). Si lo ponemos en términos mas simples, una API son una serie de acuerdos y requisitos de como una aplicación se comunicara con otra. Continue reading