Esta semana Microsoft anunció Github Copilot, un servicio que utiliza el motor de inteligencia artificial GPT-3 qué según Wikipedia, es un modelo de lenguaje autorregresivo que emplea aprendizaje profundo para producir textos que simulan la redacción humana. Es decir, utiliza Inteligencia Artificial para crear contenido que parece ser escrito por personas.

Github Copilot lo que hace es escribir código de programación como si fuese un desarrollador con tan solo definir qué es lo que se desea hacer. Por ejemplo, si haces una función llamada ordernarAlfabeticamente(), se generará código para ordenar alfabéticamente un arreglo. Esto es posible gracias a que se alimenta del código fuente de muchos proyectos de código abierto hospedados en Github. Como mi tesis de pregrado fue un generador de código de PHP/PostgreSQL me llamó mucho la atención.

Al ser una tecnología innovadora que permite crear código sin ayuda de un programador. Muchos programadores les causó un miedo y piensa que pronto remplazará a los programadores.

Ejemplo de Github Copilot generado una función para crear una dirección de envío
Ejemplo de Github Copilot generado una función para crear una dirección de envío

¿Github Copilot reemplazará a los programadores?

Si no quieres leer el artículo completo, mi respuesta es NO. Ahora si quieres leer mi opinión, siento que va a ser otra herramienta que permitirá acelerar el desarrollo y mejorar la productividad de los programadores.

Si vemos la historia de la programación, al principio la gente programaba en lenguaje ensamblador, es decir, directamente en el lenguaje del hardware donde se ejecutaban los programas. Luego surgieron los compiladores y lenguajes de programación que permitieron ahorrarnos tiempo al abstraernos muchas cosas del hardware. Los programadores de ASM no desaparecieron sino que migraron a usar estas herramientas para ahorrar tiempo.

Luego surgieron herramientas RAD (Rapid Application Development) donde con tan solo arrastrar algunas cosas teníamos aplicaciones de escritorio en poco tiempo y también herramientas para chequear errores en el código en tiempo real y sin tener que compilar. Todas ellas vinieron a mejorar el ecosistema de programadores y no remplazarlos.

Recordemos que Github Copilot lo que hace es generar código, muchas veces como programadores nuestro primer paso es revisar si hay algo existente, buscar en Internet, copiar el pedazo y adaptarlo o mejorarlo. Pues Github Copilot viene a automatizar ese proceso, en vez de perder tiempo investigando y cambiando al navegador y luego al editor, podemos buscar el código que necesitamos desde el mismo editor. Ya el diseño de la arquitectura, como resolver el problema del negocio, la ingeniería de software y demás procesos seguirán haciéndose por una persona.

¿Cuál será su uso e implicaciones en el futuro?

Yo creo que Github Copilot se utilizará bastante para que no nos preocupemos de cosas triviales de la programación y dedicarnos mas a resolver los problemas del negocio. Es decir lo que el software busca solucionar en la vida diaria. Por ejemplo, ayer en mi jornada laboral tuve que dedicar unas horas para validar 2 campos de forma simultánea en Vuetify porque no es algo directo de hacer. Con Github Copilot lo podría haber hecho mas rápido e invertir ese tiempo en mejorar la solución de software del cliente.

Me parece que esta es una herramienta muy revolucionaria, aparte de automatizar parte de la generación de código. Creo que también será interesante la parte de licenciamiento del código. Si la I.A. genera código desde un proyecto GPL teóricamente afecta donde lo incrustemos. O si pertenece a otro equipo por ejemplo, de un competidor, sería correcto ponerlo en nuestro programa. Creo que se abrirá un debate sobre el licenciamiento de estos códigos generadores y de los proyectos de los cuales Github Copilot aprende.

Ésta herramienta es la primera de muchas, otras vendrán y nos acostumbraremos a esta nueva realidad. Los programadores no seremos reemplazados (al menos por este tipo de herramienta) pero si ahorraremos tiempo al momento de crear código. No te asustes que no vienen a sustituirte…todavía faltan años para eso jejee.

La entrada Github Copilot: ¿el reemplazo de los programadores? se publicó primero en El blog de Skatox.

Hace unas semanas tuve la oportunidad de participar en una edición de FullStapps. Una comunidad para hacer crecer a desarrolladores brindando contenido de alta calidad. En ese episodio fui entrevistado por el Ing. Henry Bravo para hablar principalmente de 3 temas:

  • WebAssembly: breve introducción sobre esta gran tecnología que nos permite ejecutar aplicaciones de alto rendimiento en la web; qué es eso y para que sirve en tus aplicaciones.
  • ¿PHP ha muerto? Comento sobre cómo el lenguaje esta muy vivo, es usado ampliamente y tiene gran oferta laboral. Desmiento algunos mitos y por qué puedes aprender este lenguaje en el 2001.
  • ¿Universidad? Mi opinión sobre si debes estudiar una carrera de Ingeniería de la computación, informática o sistemas.

También comento de otros temas y un poco de mí. Por lo que te invito a escuchar o ver el episodio.

Episodio de Fullstapps

Así que si la quieres ver, a continuación puedes ver el episodio de Fullstapps donde tuve la oportunidad de participar y compartir conocimientos. Fue una excelente experiencia y la entrevista la sentí diferente a las démas. El hecho de hablar sobre varios temas me gustó.

Si les gustó no duden en compartirlo en redes sociales y suscribirse a FullStapps para que crezcan como desarrolladores. Si tienes algún comentario que añadir, expresar un desacuerdo o solicitar mas información, no dejes de comentar al final de la entrada.

La entrada Mi participación en Fullstapps se publicó primero en El blog de Skatox.

The truth is that the digital age has its pros and cons. As pros we can obviously count the speed with which the information is distributed and how easy it can be read by anyone, but when we look at the cons, it is very easy to create news that seems real and distribute them. It here where we can perform a couple of verifications to check if a new is real or not, and what better way to explain it than with an example … lets go!

Context

A few days ago my mother-in-law sent a link for a natural medicine that seemed to have everything she needed, and she asked us what we thought about it and if we could buy it.

Suspicious Links

First thing we saw is that this link was obviously not coming from any known news portal, it doesn’t even has a name to make us believe such a thing. And not just that, if we click on the link itself, it gives us a 404 error, so they didn’t even put some effort into making a front-page.

Additionally, the logo of the so-called “newspaper” is also not clickable, which indicates that you can’t even see if they have any other articles. We realize immediately that this article was hand-made.

Finally we realize that the url includes a flow_hash that is nothing more than an algorithm for data collection, which sends a lot of your data for analysis once you click it and that they are probably monetizing this link (either charging for advertising or PPC)

Fake Doctor

They speak about a certain Miguel Suarez, who is part of the Department of Vascular Surgery at the National University of Medicine. practicing neurosurgeon, honored physician from Colombia. And here we realize of the scam, because in the article they do not call him “Doctor” but “Sr” … Did you notice?

In addition to this, it should be noted that they added a fabulous photo of Mr. Suarez to get along with the article, but there is a very easy way to verify if this photo is actually from who they talk about. All we have to do is this:

  • Download the image by right clicking and saving to your computer.
  • Go to google.images and press the camera icon in the search box.
  • Add the picture and search.

This will perform a search based on images and not on content where you can see which portals are using the same photo. The logical thing would be to find many photos of this Suarez in different articles endorsing the news of this new medicine, but truth is, we found anything related.

Instead, we found that this was a stock photo, a photo produced in a studio to be sold on gallery portals so that this content is used by people who do not have photos to fill their articles… It’s a Catfish.

At least one of the links where we verified the information had the decency to put that they got the pic from istock.

Special sell or single seller

Finally, to kill my curiosity, the article indicates that this medicine can only be purchased through this website since pharmacies stopped selling it due to its effectiveness. However, if you look for the product at mercadolibre (like ebay for LATAM), you realize that they also sell it there … BUT BEWARE … absolutely all sellers have the same photo of the product and there are no “real” photos of this product…

Of the 11 articles that offered this medicine, all were linked to only 3 sellers in total, all selling from the same location and almost with the same name… come on, if this were a revolutionary medicine, everyone would want to sell it. Right? Anyway, and to make the story short, when reviewing comments in detail we found the icing on the cake lost in a sea of false comments. “They sell counterfeit product.

Just out of curiosity I searched at mercadolibre different countries website (it’s country located), and this medicine didn’t even exist. I also asked pharmacies if they had ever sold it, and neither… Verdict… it’s a Scam.

The point of this article is not to discredit the medicine itself, if you consume it and it does you good, fabulous, leave me a comment and that’s it. But the topic here is that’s it’s awful to share information about miraculous medicines that surpass a real medical evaluation, offering themselves as salvation in the middle of a pandemic where many are looking for an angel in the middle of their journey.

Have you found links like this? Tell me about! now you now know how to verify if this is a real or fake news.


This post has a nicer formatting that can be seen at it's original source at tatica.org , so feel free to hit the link and read better version!

A pesar de que mi trabajo es realizar, actualizar, mantener aplicaciones y sitios web. Había estado tan ocupado que no había podido dedicar tiempo a mi blog, que al igual que todo sistema informático requiere mantenimiento cada cierto tiempo.

Desde que inicié este blog en el 2005. He tenido un diseño y paleta de colores similar, pero cada cierto tiempo debo cambiar la plantilla de WordPress porque la han dejado de mantener o debo adaptarla a las nuevas tecnologías. La última vez que lo hice fue en el 2019 (lee para conocer mi experiencia en ese entonces) pero el diseño era exactamente igual al de la modificación del 2014.

Principales cambios de mi blog

Cambios a la plantilla

Primero fue actualizar la plantilla, pues la que utilizaba fue descontinuada y no soportaba muchas características de personalización de WordPress. Utilicé una llamada Autor por recomendación de Richzendy, que era similar al diseño anterior pero con la barra a la izquierda (que es mejor para nuestro idioma).

Cambios a los diseño

Luego fue actualizar el fondo y el Skatux (mi logo del pingüino Tux). El diseño lo llevaba usando desde el 2010, en el 2014-2015 usé uno con un teléfono de Firefox OS en la mano y una gorra con colores de Mozilla, pero luego de volver al original y mirarlo en el 2021 me di cuenta que ya no representa mi actual yo.

El primer cambio fue la gorra, ya no la uso para atrás como en mi adolescencia; quité la muñequera de punk y le puse una deportiva por la misma razón; decidí cambiar el color a vino tinto por el equipo de fútbol de Venezuela; mantuve el logo de Arch y la patineta porque sigo usándolos. Finalmente cambié el teléfono por uno con iOS porque es lo que uso desde hace varios años y en vez de tener auriculares le puse unos AirPods (esto me dio risa porque en el 2010 ese tipo de audífonos no existían)

Skatux del 2010
Skatux del 2010
Skatux del 2021
Skatux del 2021

Otro cambio realizado fue el fondo, ésta vez iba a hacer la 3ra iteración del mismo. Lo primero que hice fue actualizar la imagen del PS4 por un PS5. Quité tecnologías y aplicaciones que ya no uso, agregué de nuevas que uso como VueJS, PHPStorm, WebAssembly, entre otros. Los fondos me han permitido ver mi evolución a lo largo de estos años.

Fondo de Skatox.com del 2010
Fondo del 2010
Fondo de Skatox.com del 2014
Fondo del 2014
Fondo de Skatox.com del 2021
Fondo del 2021

Me llamó la atención realizar estos cambios, porque pude ver cómo he avanzado en la pasada década y como la tecnología avanza. Ya con estos cambios puedo dar una imagen mas renovada para la próxima década.

Cambios técnicos

Respecto a los cambios técnicos, la plantilla del blog es usa un tema hijo desde el inicio (antes hacía hacks al tema original), se aumentó la versión de PHP 7.2 a 7.4. Actualicé todos los plugins. Revisé que el tema tenga buena usabilidad para las personas con discapacidades visuales y demás.

Fue una grata experiencia actualizar todo el sitio después de varios años y no hacer modificaciones menores, siento que ahora la página vuelve a ser más mi imagen y espero seguir retomando publicación de artículo.

La entrada Actualización del diseño de mi Blog luego de 7 años se publicó primero en El blog de Skatox.

El pasado noviembre del 2020 tuve la oportunidad de participar en el JSConf México para dar una breve charla titulada: ¿Por qué WebAssembly? En ella comento las razones de su existencia, cómo viene ayudar a Javascript a solucionar los problemas que ese lenguaje no permite hacer (o al menos de forma óptima).

Estaba muy emocionado por participar en este evento por muchas razones. Principalmente era volver a México luego de muchos años y compartir con la gente de allá. Pasar unos días allá, pero debido al COVID-19 se tuvo que retrasar y posteriormente hacerla virtual.

¿Por qué WebAssembly?

Esta charla es una variación de las anteriores que he dado, porque ya WebAssembly es usado cada día y no es tecnología del futuro, sino del presente. Ya hoy en día puedes usarlas sin problemas y entonces cambio el enfoque de la charla a por qué usarla.

En fin, si deseas verla totalmente en español puedes hacerlo a continuación. Una vez finalizada, me gustaría conocer tus opiniones, dudas o recomendaciones respecto al tema.

Why WebAssembly?

Me pareció muy chévere como el audio mi charla fue traducida a inglés. Agradezco al equipo de JSConf México 2020 por realizar esa labor. Gracias a ello, mi mensaje puede llegar a más personas y puedan aprender sobre ésta tecnología. Si prefieres escuchar el audio en inglés, a continuación te comparto esa versión del video.

Fue una gran experiencia participar en mi 2do JSConf, lamentablemente tuvo que ser virtual. Hubiese querido estar allá y regresar a México luego de muchos años (me encanta la comida mexicana real). Compartir tiempo con varios amigos de México como Yuliana y Luis Sanchez y disfrutar de la hermosa cultura del país.

Recuerda compartir este artículo si te gusta o deja tu comentario si deseas preguntar o complementar la información.

La entrada ¿Por qué WebAssembly? Mi charla del JSConf México 2020 se publicó primero en El blog de Skatox.

I’ve owned a TaoTronic TT-BH22 headphones with noise cancellation for a while ago, and I can tell you that despite being quite cheap have worked perfectly for me. Battery life is fantastic (around 40 hours) and noise cancelling, even if it’s not 100% perfect as the professional ones, is more than acceptable.

However, then I bought those I didn’t realize that they had an integrated microphone, and I think that during the first year of use I left this feature forgotten and unused since my SO didn’t recognized it right away. Sad thing is, it wasn’t until my husband tried them on his laptop and his SO recognized the microphone, that we knew about this.

And even sadder than that? We both use the same SO… so it was time to work around this and figure out why it was working on his laptop and not on mine, so if anyone has encountered an issue like this, here’s a solution that should work with every headphone with a built in microphone just like mine.

All problem was this: Like this headphones have a high fidelity sound  (Hi-Fi)  my system didn’t recognized them as regular headphones and “assumed” they didn’t had a microphone, that was it…

Now it was just time to configure correctly the headphone type, however, KDE’s Bluetooth config app is too simple and doesn’t allow more advanced settings, so I installed blueman, which is Gnome’s Bluetooth settings app and allowed me to configure easily my little gadget without going to the terminal. So lets install blueman as root:

[root@libro ]# dnf -y install blueman

And with this app we can configure our Bluetooth devices better. when we open the app the first thing we see is the list of recent devices.

  • We will locate our headphones on this list and right-click it to see the menu.
  • Will select the option “audio profile” .
  • And finally select the option Headset Head Unit (HSP/HFP).

And that’s it, you should be able to see your microphone between the audio device list and select it.

Now this happy girl can walk around the house while makes herself a coffee in between the million meetings we have now during this pandemic.

Let me know if this worked for you, and specially, which headphones did you configured so I can add them to this list.

  • TaoTronics TT-BH22

This post has a nicer formatting that can be seen at it's original source at tatica.org , so feel free to hit the link and read better version!

When we are creating a book that will be published at Amazon Kindle Store and we want it to be printed as well as digital, we need to have some important considerations when comes to create the cover.

It’s not just about having an attractive cover that encourage readers to buy, but it also has to be functional when comes to content, paper type and even the thickness of the book itself. Anyway, the idea is to have a working cover that won’t ve rejected by the automated verification process that Amazon holds.

When comes to select our book properties, we not just have a wide sizes variety, but also we have to decide is it will be printed on black/white or color. Besides, we will have to choose the thickness and quality of the paper, so we can begin to estimate the size and cost of our book.

For this example, we will assume we are creating a cover for a 6″x 9″ (15.24 x 22.86 cm) book

The most important when comes to create a book cover are the dimensions, since it won’t matter to have a fantastic cover that crops, is unreadable or is misplaced and not aligned correctly. This is why we will use an online service that will help us run the necessary calculus to save time and effort:

Lets asume we have a 100 pages book, and we will use a White paper for color impressions.

This type of paper has a thickness of 0.002347″ (0.00596138cm)

This web allows us to play with several options that include pre-formats to start writing our books, generate the ISBN bar code, but the option we really need is the KDP Cover Template Generator. So click on it

On this form, we will have to fill the data requested on each field just as follows:

  • Width: 6
  • Height: 9
  • Page count: 100
  • Paper type: select white colour
  • OPTIONAL ISBN-13:Leave this in blank
  • OPTIONAL Price Barcode: Just leave this in blank
  • Formats: Select the ones that I put on bold, which are usually already marked
    • PDF
    • PNG
    • IDML (InDesign)
    • SLA (Scribus)
    • ODG (OpenOffice)
  • Your email address : hi@gmail.com
  • Your email address (again): hi@gmail.com
  • Consent to email: Check this last field to consent that you want them to send you an email.

Finally click on the “Email Cover Template” button and this will display a popup with the option to leave a donation. Remember to always leave a tip if you can since this services don’t have funds beyond their own users.

If you can’t make a donation, then simply select the first option that says “No thanks, just email me the template” .

Either you make a donation or not, you will finish the process with this donation page again, but this time with a success message that ask you to check your email and download your guides. Just do so and download either the png or pdf with the desired layout. I’m gonna open it with inkscape to start designing my cover.

We add the image with our layout to inkscape and adjust the size of the canva to the one at the image (the outside). This will allow our design to already include the cut margins or bleeds that always give us a headache.

We will design our cover following the guide lines and respecting the margins, only writing our content on the white parts of the layout. We will include our title, images, description but remember to leave the space for the ISBN since Amazon will add it automatically in case you don’t have one.

It’s important to mention that the section we usually forget is the name at the book mold. Make sure that this text is within the white line at the very center of the layout without touching the red border so it pass the Amazon KDP filters.

To work more comfortably, I set the layout image to a 60% opacity and put it on top of everything, that way I was able to see every element below the layout and move them better. But this is just a personal recommendation.

Once happy with your design, just delete the layout image, export your cover at 300DPI and you will be set to upload it at Amazon KDP.

Let me know if this tutorial was useful and if you created your book cover easily with this tips!


This post has a nicer formatting that can be seen at it's original source at tatica.org , so feel free to hit the link and read better version!