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[…]

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[…]

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[…]

Hace unas semanas tuve una entrevista de trabajo para una posición como desarrollador Python en la empresa x, esta empresa necesitaba alguien que supiera de algoritmos, optimizacion y un conocimiento aceptable de Python. La segunda entrevista fue técnica sobre Python en la cual falle por que no esperaba tales preguntas, llevo aproximadamente unos 3 años usando Python para proyectos pequeños pero nunca lo aprendí formalmente, simplemente lo empece a usar como cualquier otro lenguaje y aprendí lo que iba necesitando. La primera pregunta fue sobre los objetos mutables e inmutables en Python. En Python TODO es un objeto, pero unos son mutables y otros no, la diferencia entre uno y el otro es simplemente que uno puede ser alterado (mutable) y el otro[…]

Problema: You are given N counters, initially set to 0, and you have two possible operations on them: increase(X) − counter X is increased by 1, max counter − all counters are set to the maximum value of any counter. A non-empty zero-indexed array A of M integers is given. This array represents consecutive operations: if A[K] = X, such that 1 ≤ X ≤ N, then operation K is increase(X), if A[K] = N + 1 then operation K is max counter. For example, given integer N = 5 and array A such that: A[0] = 3 A[1] = 4 A[2] = 4 A[3] = 6 A[4] = 1 A[5] = 4 A[6] = 4the values of the counters[…]

Problema: Write a function: def solution(A) that, given a non-empty zero-indexed array A of N integers, returns the minimal positive integer (greater than 0) that does not occur in A. For example, given: A[0] = 1 A[1] = 3 A[2] = 6 A[3] = 4 A[4] = 1 A[5] = 2 the function should return 5. Assume that: N is an integer within the range [1..100,000]; each element of array A is an integer within the range [−2,147,483,648..2,147,483,647]. Complexity: expected worst-case time complexity is O(N); expected worst-case space complexity is O(N), beyond input storage (not counting the storage required for input arguments). Elements of input arrays can be modified. Solución: El problema nos dice que dado un array de N[…]