Recent Posts

In this changing world…

In this changing world…

Song: Nakareyuku Sekai no Naka de feat. MONGOL800By: Tokyo Ska Paradise Orchestra ALBUM Nakareyuku Sekai no Naka de feat. MONGOL800 Yawaraka na hizashi no naka de jikan wo wasureteMayotta koto mo kidzukazu ni aruki tsudzuketaKotoba mo jama shinai basho de futari wa shizuka niDare ni 

Amoretti LXXV: One Day I Wrote her Name

Amoretti LXXV: One Day I Wrote her Name

What a way to become immortal… One day I wrote her name upon the strand, But came the waves and washed it away: Again I wrote it with a second hand, But came the tide, and made my pains his prey. “Vain man,” said she, 

A Life Without Music

A Life Without Music

I just found out this from last.fm

… what a year

Calidad de código en Python

Calidad de código en Python

Hoy decidí hacer un post sobre Flake, Black y Pre-Commit. ¿Existe alguna relación? ¿Me sirven para algo en particular? ¿Debería comenzar a usar estas herramientas en mis proyectos? Hace un buen rato había querido investigar un poco más al respecto de esto y bueno, este 

Linux Sucks

Linux Sucks

Some years ago a coworker (Julian E.) shared this video with us, unfortunately I lost the link, weeks ago I was trying to find it because I find it interesting and I share some ideas with its author (Bryan Lunduke), but I could not find 

Ventajas y desventajas de Python

Ventajas y desventajas de Python

Siempre es bueno conocer por qué utilizar un lenguaje de programación, hoy estaré comentando un par de cosas respecto a python.

Ventajas

Fácil aprendizaje

He visto que muchas personas, blogs, escuelas y universidades manifiestan lo fácil que es aprender python, personalmente tambien considero a python un lenguaje de fácil aprendizaje. Revisando en stackoverflow, veo que en la encuesta de tecnologías más populares python se encuentra en el cuarto lugar, https://insights.stackoverflow.com/survey/2019#technology.

Open Source

Una de las grandes ventajas del lenguaje es que es de código abierto (open source), esto implica que es transparente de cara a usuarios y que es posible saber “cómo funciona por dentro”, puedes echar un vistazo por acá: https://github.com/python

Versátil

Existe una gran cantidad de frameworks/micro-frameworks los cuales permiten desarrollar en diferentes ámbitos, acá algunos de los misa conocidos:

Tipado del lenguaje

Python es un lenguaje fuertemente tipado y de tipado dinámico. ¿Qué significa esto? 

  • Tipado débil: Significa que el lenguaje permite cambiar el tipo de dato por otro tipo de dato de forma “automática”. Podría verse como que “el lenguaje permite combinar tipos de datos”, por ejemplo:

  • Tipado fuerte:  Significa que el lenguaje no permite operaciones entre tipos de datos diferentes. Si intentamos realizar la operación anterior en Python, generará un error, tal y como se puede ver aquí:
> 'bla' + 3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: must be str, not int
  • Tipado dinámico: Generalmente se refiere a que una variable puede ser de diferente tipo, por ejemplo, ser inicializada como entero, pero luego cambiar a string. Ejemplo: Python. Sólo hasta cuando se ejecuta el código se puede conocer el tipo de dato que una variable tiene. Aquí un ejemplo en python:
>>> name = 'Manre'
>>> print(name)
Manre
>>> print(name.__class__)
<class 'str'>
>>> name = 1
>>> print(name)
1
>>> print(name.__class__)
<class 'int'>
  • Tipado estático: Generalmente implica que el tipo de dato almacenado en la variable, no puede ser cambiado. Ejemplo: Java.

String s = “bla”;
System.out.println(s);
s = 1;
System.out.println(s);
Main.java:5: error: incompatible types: int cannot be converted to String
    s = 1;
        ^
1 error
compiler exit status 1

Decir que es una ventaja o desventaja depende mucho de la persona quien lo esta evaluando, personalmente considero que es una ventaja, pero algunas personas y autores lo consideran desventaja.

Desventajas

Lenguaje Interpretado

Python es un lenguaje interpretado, ¿qué significa esto?

Un lenguaje interpretado (Python, Javascript) es convertido a lenguaje máquina a medida que es ejecutado.

Un lenguaje compilado(C, C++), necesita de un paso intermedio para poder ser ejecutado, es decir, es necesario compilarlo, luego de la compilación, es posible ejecutarlo.

En temas de rendimiento, esta es una razón por la cual se considera una desventaja.

Manejo de memoria

En comparación con otros lenguajes, Python consume gran cantidad de memoria RAM, esto es debido a cómo funciona su GB (Garbage Collector), sugiero el siguiente artículo el cual describe cómo funciona con mayor claridad, https://rushter.com/blog/python-garbage-collector/

 

Map, Reduce y Filter en Python 3

Map, Reduce y Filter en Python 3

Map ¿Para qué puede servir? R:/ Realizar una operación a cada elemento de una lista Ejemplo: Reduce ¿Para qué puede servir? R:/ Obtener un resultado de una lista de elementos Ejemplo: Filter ¿Para qué puede servir? R:/ Seleccionar elementos de una lista Ejemplo:

Online Coding Tools

Online Coding Tools

Need to code something and you do not have an IDE? Try these few online coding tools, I’m sure they will help you from your rush. Repl.it One of the most useful tools, it allows you to code without an IDE, here are a few 

¿Qué apps instalar en MacOS?

¿Qué apps instalar en MacOS?

En aquellos días donde todo era felicidad, un día me pidieron ayuda para configurar un Mac nuevo y casi me quedé en blanco porque no sabía qué instalarle, por acá comparto un par de aplicaciones que considero son esenciales.

Navegadores: Chrome, Firefox, Opera

Siempre es bueno tener otro navegador, personalmente intento utilizar siempre Safari ya que es mucho más eficiente con los recursos en OSX.

SMCFan Control

Usualmente prefiero manejar manualmente los ventiladores del Mac, por alguna razón la configuración normal de los Mac siempre hace que se calienten demasiado.

Evernote

Para aquellos que necesitan tomar notas, Evernote siempre será una buena alternativa.

Dropbox

No creo que necesite mucha presentación.

f.lux

A pesar que OSX hace un par de años agregó Night Shift, yo sigo prefiriendo manejar el color de la pantalla con f.lux.

Spotify

Otro que no necesita mucha presentación.

FruitJuice

Existen muchos blogs y artículos que hablan de cómo cuidar la batería de los portátiles, después de mucho leer y experimentar, me pareció que la mejor forma de cuidar la batería es mediante una app que le informe a uno, cuándo debe desconectar/conectar el cargador, esa app es FruitJuice.

AppCleaner

Una pequeña pero muy útil aplicación que nos ayuda a borrar cualquier rastro de las aplicaciones instaladas en nuestro mac.

4K Video Downloader

¿Necesitas descargar un video de Youtube, Facebook, Vimeo u otro? Esta aplicación te gustará mucho.

SSH + screen + RPi

SSH + screen + RPi

Hello, long time no see! Recently I had a situation in which I needed to have two processes running on a docker container, and this docker container was running on my RPi. So… I solved my situation using screen. What is screen? It is an