Al no tener estudios universitarios porque la escuela nunca fue lo mio (larga historia para otro post), mi carrera se ha formado por 3 cosas: Libros, Vídeos y Side projects. Durante los últimos 9 años he leído decenas de libros técnicos o de ciencia ficción, pero básicamente todo lo que pasaba por mis manos eran libros técnicos y nunca le dedique tiempo a la lectura de otro tipo de temas, este 2016 mi propósito fue leer 24 libros no técnicos, en total leí 38 libros y los pueden ver en mi cuenta de Goodreads,y los siguientes 6 son mis favoritos: Creativity, Inc.: Overcoming the Unseen Forces That Stand in the Way of True Inspiration Creativity, Inc se ha convertido en[…]

Hoy en día casi todos los servicios o productos que consumimos en linea como Spotify, Netflix, Audiable, etc… requieren de una tarjeta de crédito si queremos consumirlos de manera “premium” (sin publicidad o con acceso a mas features) ya sea para pagar la suscripción mes con mes o para pagar el servicio que consumimos una vez como en Uber o productos en Amazon. Así que tarde o temprano como desarrollador tendremos la necesidad de implementar procesamiento de pagos ya sea en nuestra propia startup o lo que sea que estemos desarrollando, es aquí donde entra Stripe. Stripe esta hecho por desarrolladores para desarrolladores y tratan de hacer sus API’s con las mejores practicas para que nos sea muy fácil implementarlo.[…]

¿Recuerdan a Watson?. Watson es la computadora que venció a los campeones de Jeopardy hace unos años y el día de hoy haremos uso de una de sus API’s, son muchas las API’s a las que podemos acceder, pero el día de hoy solo veremos Visual Recognition. Para obtener acceso a las API’s debemos de dar de alta una cuenta aquí: https://console.ng.bluemix.net/registration/ Una vez que tengamos la cuenta debemos dar de alta cada una de las API’s y solo tendremos 30 días de uso gratuito, así que aprovechen esos días. Para acceder a ellas usaremos Python aunque también puedes usar Java, Node o hacer peticiones directas con curl. Para Python solo se instala el paquete con pip: pip install watson-developer-cloud IBM[…]

Todo comenzó con un mensaje de texto a mi numero de celular “privado” el 31 de mayo del 2016, el mensaje era el siguiente: Como ven es el clásico mensaje de texto donde te dicen que te ganaste un premio y al final resulta siendo una estafa (Hay mucha gente que sigue cayendo en este tipo de cosas), como tenia un tiempo libre decidí “reclamar” mi premio y le mande un correo a premiowin@gmail.com: El día 2 de junio me contesta desde otro correo (ganado.premio@hotmail.com) lo siguiente: A lo que decidí crear un personaje que entrara en el perfil del tipo de personas que cree este tipo de cosas y cree a Miguel, un taxista de 63 años que vive en Tamaulipas[…]

Problema: A non-empty zero-indexed array A consisting of N integers is given. A pair of integers (P, Q), such that 0 ≤ P < Q < N, is called a slice of array A (notice that the slice contains at least two elements). The average of a slice (P, Q) is the sum of A[P] + A[P + 1] + … + A[Q] divided by the length of the slice. To be precise, the average equals (A[P] + A[P + 1] + … + A[Q]) / (Q − P + 1). For example, array A such that: A[0] = 4 A[1] = 2 A[2] = 2 A[3] = 5 A[4] = 1 A[5] = 5 A[6] = 8 contains the[…]

Hoy les vengo a presentar una pequeña web app que programe hace un mes, se llama guardalo y es simplemente una app de bookmarks. Por lo menos yo guardo demasiados links de vídeos, tutoriales, artículos de wikipedia, etc… Todo lo guardaba en los bookmarks de Google Chrome por que se sincronizaban con mi cuenta de Google pero como empece a usar Vivaldi y a veces uso otros exploradores tenia que volver abrir Chrome que consume mucha memoria solo para sacar algún link que tenia guardado en mis bookmarks. Para ver tus bookmarks solo entras a guardalo.co: Y para guardar un bookmark no necesitas instalar ninguna extensión o plugin en tu explorador solo escribes guardalo.co/ antes de la url de donde te encuentras[…]

Problema: A non-empty zero-indexed array A consisting of N integers is given. The consecutive elements of array A represent consecutive cars on a road. Array A contains only 0s and/or 1s: 0 represents a car traveling east, 1 represents a car traveling west. The goal is to count passing cars. We say that a pair of cars (P, Q), where 0 ≤ P < Q < N, is passing when P is traveling to the east and Q is traveling to the west. For example, consider array A such that: A[0] = 0 A[1] = 1 A[2] = 0 A[3] = 1 A[4] = 1 We have five pairs of passing cars: (0, 1), (0, 3), (0, 4), (2, 3),[…]

El día de hoy les vengo a hablar de la palabra del señor de Python bytecode y un poco del proceso de compilado e interpretado de este lenguaje. Primero que nada hay que entender que en Python todo es un objeto por lo tanto variables, funciones, clases, etc… tienen propiedades y podemos hacer cosas como asignar una función a un nombre, ejemplo: o podemos pasar una función como parámetro a otra función: O podemos invocar la función si hacer uso de ella: También podemos ver sus atributos: Entre estos atributos podemos ver uno en particular que es func_code: func_code, contiene el code object de esta función y tiene diferentes propiedades con las cual podemos mostrar ciertas partes del código: Por[…]

Últimamente he tratado de utilizar mi tiempo con mas eficiencia y utilizarlo en las cosas verdaderamente necesarias, en este proceso de ir optimizando mi tiempo me di cuenta que puedo usar tiempo que regularmente pierdo como por ejemplo: El camino a la oficina, mas o menos me toma 1 hora diaria en transportarme (casa-oficina oficina-casa). También hay días en los que me duelen mucho los ojos o la cabeza por pasar todo el día a la computadora y en esos días lo que hago es acostarme y dormirme o escuchar música o simplemente no hacer nada. Otro tiempo muerto es cuando en la oficina estoy esperando algo de alguien mas para poder continuar mi trabajo y pues pierdo el tiempo en[…]

Problema: Write a function: def solution(A, B, K) that, given three integers A, B and K, returns the number of integers within the range [A..B] that are divisible by K, i.e.: { i : A ≤ i ≤ B, i mod K = 0 } For example, for A = 6, B = 11 and K = 2, your function should return 3, because there are three numbers divisible by 2 within the range [6..11], namely 6, 8 and 10. Assume that: A and B are integers within the range [0..2,000,000,000]; K is an integer within the range [1..2,000,000,000]; A ≤ B. Complexity: expected worst-case time complexity is O(1); expected worst-case space complexity is O(1). Solución: Ok este problema esta fácil, lo[…]