Ir al contenido principal

Entradas

Mostrando entradas de 2020

I have been playing with pdb for debugging code (introductory level)

Well, this is time to talk about something I have been playing, the pdb standard module python provides. I'll talk in the context of py 3.7+ since there are differences that improve how to work with this. Well, first of all, as you should found in this field and coding experiences and challenges. You have to deal with bugs, unexpected errors, or even worst, unexpected behavior which sometimes is most difficult to trace. Here are some lights on how to use it, this is really useful if your life is coding :). Consider the following commands table. Command Description s Execute the current line and stop at the first possible occasion. n Continue the execution until the next line in the current function is reached or it returns. p Shows the values of variables in context code. ll List the whole source code for the current function or frame l In contrast to ll, this command shows a shorter snippet of code. l. If you pass the param . to this command, it will show you always 11 li

Finalmente me encontré con ella y desde el día #1, hemos disfrutado juntos...

Hace más de 4 años que nos mirábamos, pero nos ignorábamos, fue quizá por que no era el momento, yo tenía una relación más dinámica, más demandante, más intensa, sin embargo en ese lapso de 4 años si tuve 3 encuentros con la que hoy ahora comienzo a sentirme entregado: Yoga He hecho Crossfit por mucho tiempo, lo he amado, y me he entregado al 100%, ese ha sido mi receso del día en una vida adulta. En el lapso de los últimos 4 años, un amigo -colombiano por cierto- me invitó a su casa a hacer yoga, él en ese tiempo era maestro de yoga en un pequeño pueblo pegado al mar en las costas de Quintana Roo. Tomé 3 clases con él, y desde la primera, quedé enamorado, sabía que quería intentarlo pero estaba concentrado en un ejercicio de más alto impacto, supongo que la edad también juega un factor importante, al menos eso pienso. Hoy con el contexto que hemos estado viviendo, el encierro y aislamiento principalmente, nuestro reto más importante, toca reconfigurarse a si mismo, probar nuevos campo

Obturación, apertura e ISO, configuraciones que debes saber sobre tu cámara fotográfica

La fotografía es una de las actividades del segundo bloque de pasiones que más disfruto, el primer bloque, son las aventuras, los deportes de aventura y extremo, viajar y ejercitarme cuando no estoy programando. Bien, siempre he procurado conseguir las mejores tomas fotográficas, y sin saber, también siempre utilicé las funciones automáticas de las cámaras que he tenido, pensando que ella haría lo mejor por mis fotos, ¡que equivocación!, digo las configuraciones automáticas están hechas para sacar lo mejor posible del contexto de la foto, pero manejar la cámara manualmente es otro boleto, no lo digo por complicado, sino que cuando te das cuenta de la importancia de manejar solo estas 3 caracteristicas (quizá las más importantes) agradeces haber aprendido este triángulo de la configuración fotográfica, con ese conocimiento y con suerte... con cualquier cámara puedes sacar muy buenas fotografías. Reconozco que la única característica que siempre procuré al comprar una cámara fue el númer

¡Atardecer de ensueño!

Aunque vivo dentro de la ciudad, el bullicio y el exceso de luz en los alrededores, es también muy común (si eres observador), ver ciertos fenómenos y juegos de colores en el cielo, sobre todo al ponerse el sol. Dejo aquí algunas de las imágenes que logré captar una linda tarde de marzo 2020.

Eclipse lunar Prenumbral o La luna del Trueno 4 de julio 2020

Ayer 4 de julio intenté obtener algunas fotografías del eclipse lunar llamado Luna del Trueno, que según cálculos astrológicos se lograría observar en gran parte de Latinoamérica, incluido México. Logré tomar algunas fotos, no con mucho éxito pero es un comienzo.

Nuevos amigos, aunque de otra especie...

Hoy quiero compartir la gratitud que siento al recibir invitados de otras especies en casa, y en mucho esto se debe a los ajustes que realicé en mi patio trasero, que aunque no es muy grande, construí una pequeña jardinera en donde sembré algunas plantas y no solo me da  sombra tranquilidad fauna visitante aire fresco y una sensación de relajación También puedo convivir y gozar de otra de mis actividades favoritas, la fotografía. Esta vez me visitó una iguana, debo decir que son animales pacientes y si no haces movimientos bruscos hasta puedes acercarte a ellos tanto como a una distancia de 10 a 5 centímetros, ¡increíble!, incluso, abusando de su confianza, le alcancé a tocar la cola sin que se mostrara aterrada o violenta. Se dejó fotografiar, les dejo algunas imágenes que me encantaron.

Algoritmos en ciencias de la computación, parte 1: búsquedas binarias

En la práctica los algoritmos nos ayudan a resolver problemas en diferentes escalas de complejidad y para diferentes situaciones, es por ello que vale la pena revisar y sobre todo practicarlos regularmente, todo con la finalidad de fortalecer nuestro entendimiento y sobre todo nuestra habilidad de resolver problemas y también mejorar la calidad de nuestro código fuente, independientemente del lenguaje de programación que utilicemos. En esta ocasión revisaremos con detalle uno de los métodos de búsquedas más utilizados y estudiados en las ciencias de la computación. El método de búsquedas binarias se utiliza mucho en situaciones en donde requieres hacer búsquedas de manera eficiente y sobre todo rápidas, es por ello que analizaremos un ejemplo y correremos algunas pruebas (en mi caso utilizaré Python, sin embargo intentaré compartirles la versión en Java posteriormente). Imaginemos el siguiente ejemplo: Dada una lista de número aleatorios ordenados de forma ascendente: numbers: list[Any

Y por si fuera poco (+ out-of-topic) intentaré de nuevo mi huerto en casa

Hace muchos años (justificando no exponer mi edad), sembré algunas plantas que brindaban cosecha en casa, y se dieron bien... Ahora en 2020, ya con un poco más de espacio en general, pero con menos áreas verdes, hice algunos ajustes en mi patio trasero y monté un mini jardín, este se compone de una línea recta en paralelo al muro trasero. Se trata de una hilera bambúes japoneses con una envergadura de 3 metros cada uno. En fin, este es un tema que requiere una entrada única y exclusivamente para los bambúes y cómo es que llegué a ellos o ellos a mí. Regresando a la siembra, pues un año atrás compré dos sobres de semillas en el súper, en lo personal me encantan las espinacas y por lo regular no siempre se encuentran en el mejor estado. Y siempre pensé, deberían tener más cuidado para ponerlas a la venta o yo debería poder tener mis hortalizas en casa y cosecharlas yo mismo. Pues me compré las semillas de espinacas, pero no contento con eso, observé que también tenían semillas de chíchar

MongoDB, ¿cómo acceder a un campo array y filtrar cuando no sea vacío?

En mongo podemos hacer consultas extremadamente sencillas pero sobre todo ágiles. Por ejemplo, pensemos que dentro de nuestra colección miembros necesitamos traer todos los documentos que contengan dentro del campo email (un array) por lo menos un correo electrónico. Tendríamos que correr el siguiente query: > db.miembros.find({"email":  {$exists: true, $not: {$size: 0}} }, {}) Ahora bien, pensémos que por alguna razón desconocida, los datos en los documentos tienen alguna inconsistencia  como por ejemplo a alguien se le ocurrió guardarlos en la siguiente notación: email: ["","email@domain.com", "", ""] ¿Qué desastre verdad?, aún así, en el momento en que estas intentando sacar un conjunto de datos, lo que requieres es acceder al menos a las colecciones que por lo menos tiene 1 correo electrónico dentro. Entonces tendríamos que añadir lo siguiente al query anterior: > db.miembros.find({"email":  {$exists: true, $not: {

Estructura base de una clase en Python

Recuerdo cuando comencé a programar en Python, en ese tiempo utilizaba Zope, me encantaba programar en DTML, pocas veces en ZPT, y de vez en cuando utilizaba Python mediante el producto (hablando en términos Zopistas), External Methods . Eran tiempos de aprendizaje, recién egresaba de la carrera, tenía trabajo y había mucho que aprender pero ahora aplicado a un entorno real. Pues bien, programé de varias formas, con más de un método, y recuerdo que en una temporada me negué a la programación orientada a objetos, la causa principal, no entendía, me frustraba y me daba terror, sumándole que sentía que me estancaba en las cosas que tenía que desarrollar (error de principiante). Ahora, después de varios años, y habiendo experimentado, unos que otros lenguajes de programación, habiendo tenido que mantener, actualizar y evolucionar código, mío y de otros, el contexto me forzó a entender, aprender y utilizar OOP. Y heme aquí, compartiendo esta entrada: #$ vi  miclasepy.py #Este es u

Cómo dar acceso a una ip externa a postgresql y concediendo permiso desde iptables

Recientemente tuve la necesidad de aplicar un par de ajustes en nuestro SGDB  (postgresql) en uno de nuestros entornos de desarrollo. Escenario encontrado: No tenía acceso al usuario administrador de PG postgres Contaba con un usuario de sistema ( Linux ) sudoer PG no estaba preparado para permitir conexiones desde fuera El sistema operativo tenia activo iptables y el puerto 5432 no estaba habilitado para escuchar en el exterior en una ip específica. Me tocó leer un poco sobre cómo configurar PostgreSQL para permitir conexiones desde fuera y cómo configurar una regla en iptables que permitiera acceso al proveedor desde el exterior al puerto que necesitaba estuviera escuchando la ip del proveedor. Resumiré en las siguientes líneas las configuraciones más importantes para: Proveer acceso desde PG a un usuario externo. Permitir comunicación entre la ip del usuario externo y nuestro puerto en el servidor donde está nuestro PG . postgresql.conf Primero localiz

Ejercicios que te pondrán activo en esta cuarentena en casa: Reto COVID-19

Toma esto como un reto, y tu objetivo será lograr adoptar el hábito de ejercitarte incluso en casa, incluso cuando no hay gente a tu alrededor, incluso cuando no sientas la motivación de un instructor. ¡Lo único que necesitas es voluntad! , ¡anímate! Q4 (15mins) burpee 10 a 1 Pistols 1 a 10 Core (4 mins) 20 secs trabajo, 10 secs descanso plancha: Mano der plancha: Mano izq plancha: Pie der plancha: Pie izq plancha: Mano der, pie izq plancha: Mano izq, pie der plancha: Estrella mano der, pie y mano iz arriba plancha: Estrella mano izq, pie y mano der arriba /\-/\-\/-\/-\/-\/-\/-\/-\/-\/-\/ Q5 21, 18, 16, 14, 12, 10 (entre cada ronda 50 DU) 1: Push-press estricto (1 o 2 garrafones de agua según tu condición) 2: Peso muerto con 2 garrafones de agua /\-/\-\/-\/-\/-\/-\/-\/-\/-\/-\/ Q6 21, 15, 9 1: Sentadillas con dos garrafones 2: Hollowrock (40) 3: Swings (50) Core 4 sets de 15 bicicletas (cada pierna) /\-/\-\/-\/-\/-\/-\/-\/-\/-\/-\/ Q7 20mins amrap