Saltar al contenido

Etiqueta: github

Entrevista a Linus Torvalds por los 20 años de GIT

Esta semana me topé con una entrevista a Linus Torvalds publicada en el canal oficial de GitHub. Sí, GitHub, esa empresa que todos usamos para subir proyectos, colaborar con otros desarrolladores y —desde hace unos años— propiedad de nada más y nada menos que Microsoft.

Eso ya de por sí es loquísimo. Porque si llevas algunos años en este mundo, recordarás que Microsoft y Linux eran enemigos jurados. No era secreto que Microsoft quería eliminar a Linux del mapa (y no lo digo yo, lo decían ellos: Linux is a cancer, ¿recuerdan?). Y ahora, GitHub, una empresa de Microsoft, entrevista tranquilamente al creador del kernel de Linux y también de Git. Cosas que hace una buena estrategia de relaciones públicas y una industria que cambia.

Sobre la entrevista a Linus Torvald

La entrevista a Linus Torvalds no es técnica ni larga, pero tiene esos momentos que uno agradece como dev. Uno de los que más me llamó la atención fue cuando comentó que a su hija cuando preguntan por su padre, les dicen que es el creador de GIT y rara vez le comentan que es creador de Linux.

Y sí, qué fuerte. Porque aunque Linus haya creado el kernel que está en Android, servidores, supercomputadoras, y hasta en mi router, la nueva generación lo ubican más por esa herramienta que usamos todos los días para hacer git commit -m "arreglo urgente".

Eso nos dice algo: la tecnología evoluciona, y con ella también lo que recordamos. Para muchos, Git se volvió el punto de entrada al mundo del desarrollo, y GitHub su cara más visible. Así que no es raro que la nueva generación relacione más a Linus con el control de versiones que con el sistema operativo que revolucionó todo.

En la entrevista a Linus Torvalds, también hay reflexiones sobre cómo trabaja, cómo piensa, y sobre esa extraña contradicción de ser el líder de un proyecto de millones de personas… pero sin querer hablar mucho con ellas. Directo, al grano, sin adornos: puro Linus.

Two decades of Git: A conversation with creator Linus Torvalds

Si tienes unos minutos, te recomiendo ver el video completo. Es corto, relajado, y te deja con esa sensación de que estamos viviendo una época que hace 10 años era impensable: Microsoft abrazando el open source, GitHub entrevistando a Linus, y Linux siendo más relevante que nunca, aunque algunos solo lo recuerden por Git.

¿Ya viste la entrevista? ¿Qué opinas tú? ¿Conocías más a Linus por Git o por Linux? Déjame tu comentario, me encantaría saberlo.

Gracias por leer hasta el final.
Happy Hacking! 🐧💻

Deja un comentario

Github Copilot: ¿el reemplazo de los programadores?

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.

Deja un comentario

Cómo migrar los issues de Bitbucket a Github

Hace unos días en la organización donde trabajo, nos tocó migrar de Bitbucket a Github y principalmente nuestra necesidad era migrar el código (obviamente) y la lista de issues junto con los datos asociados a ellos.

El código fuente fue sencillo pues Github tiene un asistente que permite clonar cualquier repositorio GIT y almacenarlo en el proyecto seleccionado, luego el siguiente paso fue ejecutar los siguientes comandos para cambiar el repositorio origen:


git remote set-url origin git@github.com:USUARIO/REPOSITORIO.git

Para migrar los issues, encontré un script de python para migrar los issues desde Bitbucket a Github y su uso es sencillo, sin embargo tuve problemas al ejecutarlo y me salió el error:
EOF occurred in violation of protocol

Luego de encontrar una solución en StackOverflow agregué el siguiente código luego de importar la librería SSL:

import ssl
from functools import wraps
def sslwrap(func):
@wraps(func)
def bar(*args, **kw):
kw['ssl_version'] = ssl.PROTOCOL_TLSv1
return func(*args, **kw)
return bar

ssl.wrap_socket = sslwrap(ssl.wrap_socket)

Finalmente pude ejecutar el programa tal como lo dice su archivo README.md y en pocos segundos tuve todos los issues recreados en Github junto con los milestones y etiquetas utilizadas.

Nota: El repositorio debe ponerse temporalmente público para poder realizar la migración.

1 comentario