Hilos y multitarea en Go

Una de las cosas más llamativas de Go es la facilidad con que se aprovecha de forma nativa la multitarea, en la programación el procesamiento en hilos es la capacidad del lenguaje para ejecutar múltiples procesos o subprocesos a la vez en paralelo. En una aplicación multiproceso, los procesos y los hilos comparten los recursos de uno o varios núcleos.

Sigue leyendo

Publicado en Desarrollo, Go | Etiquetado , , , , | Deja un comentario

Instalando GO en Fedora/Debian/Ubuntu

Go es un lenguaje creado por Google con una sintaxis parecida a C, pero que incorpora funciones de lenguajes de alto nivel,  incorpora una sintaxis simplificada es bastante peculiar aunque aporta cosas interesantes , actualmente está disponible en formato binario para los sistemas operativos Windows, GNU/Linux, FreeBSD y Mac OS X

¿Qué ventajas tiene Go?

  • Es sencillo de aprender.
  • Es muy veloz, tiene un alto rendimiento.
  • Soporta miles de conexiones simultáneas.
  • Es eficiente con multitarea.

¿Para qué sirve Go?

Es un lenguaje que viene haciendo bastante ruido, Go sirve para muchos casos sin embargo donde más destaca es para Backend / APIs RESTful y Machine Learning por su alto rendimiento y capacidad para manejar grandes cantidades de conexiones simultáneas y maneja muy bien el tema de la multitarea además aprovecha al máximo los núcleos de CPU de una forma que ningún otro lenguaje popular hace.

Sigue leyendo

Publicado en Go | Etiquetado , , , | Deja un comentario

Tabla rápida de referencia expresiones regulares

No es intención de este post mostrar como funcionan o como utilizar una expresión regular, es para presentar una tabla de referencia rápida sobre los diferentes operadores que podemos utilizar:

Descripción
. Todo carácter
? Cero o una vez, también delimita los match haciéndolos mas restringidos.+?
* Cero o mas veces
+ Uno o mas veces
^ Para negación o para indicar comienzo de linea
$ Final de linea
\t Representa un tabulador.
\r Representa el “retorno de carro” o “regreso al inicio” o sea el lugar en que la línea vuelve a iniciar.
\n Representa la “nueva línea” el carácter por medio del cual una línea da inicio. Es necesario recordar que en Windows es necesaria una combinación de \r\n para comenzar una nueva línea, mientras que en Unix solamente se usa \n y en Mac_OS clásico se usa solamente \r.
\a Representa una “campana” o “beep” que se produce al imprimir este carácter.
\e Representa la tecla “Esc” o “Escape”H
\f Representa un salto de página
\v Representa un tabulador vertical
\x Se utiliza para representar caracteres ASCII o ANSI si conoce su código. De esta forma, si se busca el símbolo de derechos de autor y la fuente en la que se busca utiliza el conjunto de caracteres Latin-1 es posible encontrarlo utilizando “\xA9”.
\u Se utiliza para representar caracteres Unicode si se conoce su código. “\u00A2” representa el símbolo de centavos. No todos los motores de Expresiones Regulares soportan Unicode. El .Net Framework lo hace, pero el EditPad Pro no, por ejemplo.
\d Representa un dígito del 0 al 9.
\w Representa cualquier carácter alfanumérico.
\s Representa un espacio en blanco.
\D Representa cualquier carácter que no sea un dígito del 0 al 9.
\W Representa cualquier carácter no alfanumérico.
\S Representa cualquier carácter que no sea un espacio en blanco.
\A Representa el inicio de la cadena. No un carácter sino una posición.
\Z Representa el final de la cadena. No un carácter sino una posición.
\b Marca la posición de una palabra limitada por espacios en blanco, puntuación o el inicio/final de una cadena.
\B Marca la posición entre dos caracteres alfanuméricos o dos no-alfanuméricos.
Publicado en Varios | Etiquetado , | Deja un comentario

Agregar repositorios EPEL en CentOS6/CentOS7

EPEL es un proyecto de repositorio basado en una comunidad de código abierto y gratuito del equipo de Fedora que proporciona paquetes de software de alta calidad para la distribución de Linux, incluidos RHEL (Red Hat Enterprise Linux) y CentOS.

El proyecto Epel no es a parte de estas distros  aunque está diseñado para ellas, le proporcionan muchos paquetes de código abierto como redes, administración de sistemas, programación, monitoreo, etc.

La mayoría de los paquetes de epel son mantenidos por el repo de Fedora.

Para ver que version de CentOS/RHEL tenemos que hacef

Sigue leyendo

Publicado en Linux | Etiquetado , , | Deja un comentario

Ser Desarrollador de Software, Universidad si, Universidad no

 

Una pregunta bastante recurrente es si la Universidad sirve para algo o es una pérdida de tiempo y dinero cuando se trata de computación, que a diferencia de otra carreras como medicina o abogacía por ejemplo, para ejercer de analista, de programador o de ingeniero no se necesita título.

Es un tema sumamente sensible y que divide las aguas, además como este articulo puede puede herir el orgullo de mas de uno, para que lo dejes en los primeros párrafos o lo leas con los ojos llenos de ira te adelanto el final:

En mi opinión totalmente irrelevante, para ser profesional no se necesita ir a la Universidad, para ser un mejor profesional si

Sigue leyendo

Publicado en Opinion | Deja un comentario

Que me deja el 2018 y que espero del 2019

Nunca he sido de ponerme a revisar que paso durante el año o que espero del siguiente pero capas que por la edad me estoy poniendo un poco boludo reflexivo que de de costumbre. El 2018 fue un poco como el 2017 de muchos cambios en el aspecto laboral.

Sigue leyendo

Publicado en Varios | Deja un comentario

Instalando Laravel en Docker

Hoy vamos a ver como instalar Laravel partiendo de la imagen creada en Crear contenedor Docker con CentOS7/Nginx/MariaDB y MultiPHP que vimos hace un par de semanas. A partir de esa imagen vamos a instalar y configurar  un nuevo proyecto en Laravel dando de alta un host virtual en Nginx.

Sigue leyendo

Publicado en Desarrollo | Etiquetado , , | Deja un comentario

Lavado de cara del blog

Varias semanas y varios experimentos fallidos de prueba y error llegue a este diseño, un lavado de cara más que nada en cuanto a diseño.

Si bien aún me falta reformar la portada tal como quería para darle otro aspecto al sitio y no el de blog convencional las pruebas no me convencieron del todo por lo que continuó con el formato de blog por ahora.

Los principales cambios son el theme del sitios que ahora uso Shapely algo personalizado a mano, además me decise de varios plugins, el más visible de los que elimine fue SyntaxHighlighter Evolved para resaltado de código, plugin que me encanta pero que sin embargo tiene enormes problemas de optimización.

Luego había otros plugins en el backend que no eran tan visibles pero afectan la performance. Ademas se agrego un Footer personalizado con enlaces a mis redes sociales y repositorios como GitHub y Docker Hub.

Tampoco hay que olvidar la nueva Política de Privacidad del sitio que he redactado con mucho cariño 🙂 además también estoy trabajando en alguna sección más para agregar.

En cuanto a rendimiento si bien PageSpeed no es algo que me quite el sueño pero me lo tomé como desafío, antes andaba en 90 lo cual no estaba mal sin embargo me propuse mejorarlo y poder llegar al maximo de puntuacion posible, ahora este es el resultado:

Sigue leyendo

Publicado en Varios | Deja un comentario

Clonar un respositorio protegido con segundo factor de autentificacion 2FA

Una de las mejores medidas de seguridad que podemos adoptar es activar el segundo factor de autenticación, no solo en GitHub sino en cualquier sistema, la diferencia es que en GitHub cuando activamos la autentificación en dos pasos (2FA) luego no podremos clonar los repositorios desde consola, para poder hacerlo debemos crear un token que luego usaremos en lugar de la contraseña.

La creación del token no es algo tan intuitivo así que por eso aquí el artículo

Sigue leyendo

Publicado en Desarrollo, Seguridad | Etiquetado , | Deja un comentario

Gutenberg WordPress Editor Apesta!!!

Me gustan los cambios pero cuando son para mejorar y hacer las cosas más sencillas.  Si usas WordPress y ya has actualizado a la versión 5 te has encontrado con el espantoso nuevo editor llamado Gutenberg activado por defecto.

¿Porque cambiar algo que funciona perfecto? Encima a prepo sin dar a elegir. Cuando lo vi me sentí perdido, la interface es tan extraña como incomoda, lo primero que eché en falta por supuesto, es mi barra de herramientas y el área donde escribir. Luego la encontré, al área de escritura, no la barra.

Las opciones están, solo que ocultas y no están tan a mano como antes y hay que hacer varios click para llegar a ellas cuando antes bastaba con uno solo ¿Eso es mejora?.

En mi defensa quiero decir que no soy reticente al cambio, soy reticente a los cambios de mierda.

Por lo que estuve leyendo por ahí el nuevo editor pretende sustituir a plugins como Divi, Visual Composer o Elementor lo cual que verdad que sería algo positivo. Estos plugins si bien cumplen su tarea son extremadamente ineficientes en cuanto a rendimiento.

Buscaron simplificar la interfaz para facilitar el uso a usuarios menos experimentados lo cual está muy bien, solo que no estoy seguro que lo lograran. Lo que sí lograron sin embargo es que usuarios experimentados nos sintamos desorientados y con una pérdida de control y productividad.

Creo que es una buena idea solo que mal llevada a cabo,  Gutenberg debería estar aunque debería ser opcional, deberíamos tener la opcion de como queremos escribir. Es cierto hay un plugin sin embargo ¿porque tengo que recurir a un plugin? ¿Porque WordPress no me pregunta que quiero?.

Tal vez esta porqueria no sea tan mala sin embargo no voy a ser yo quien lo averigüe, capas que la termino usando pero no va a ser hoy y tampoco mañana.

Si quieren volver a tener un editor de siempre hagan lo siguiente

  1. Vayan al escritorio de WordPress
  2. Click en Plugins luego Añadir Nuevo
  3. En el cuadro de búsqueda coloquen  Classic Editor.
  4. Instalan Classic Editor y lo Activan.

Y listo, podran seguir escribiendo tal como antes.

 

Publicado en Editorial | Etiquetado , | 8 comentarios