Explore my side projects and work using this link

Upsidedown is a WordPress theme design that brings blog posts rising above inverted header and footer components.

GitHub Search: Necesitas saber esto

Written in

by

Necesitamos algo y lo programamos. Hay veces que, después de tantos cursos básicos, nos movemos con la metodología de hacerlo todo, pero no nos enseñan algo aún más simple: es 2024; todo ya existe… o al menos tu nueva idea creativa de cómo encender y apagar máquinas a distancia.

Este es el momento de dejar de reinventar la rueda e integrar lo que ya existe y deseas para ti.

https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExaGh2dGc1cmpsMzk0YmFub3d4amFhbmMweGU0OWE5bjEzZDdlOTg4ZiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/6C9CMGMFtzzbO/giphy.gif

Hay 4 tipos de programación:

  1. Programar para uno mismo.
  2. Integrar código de otros para uno mismo.
  3. Programar en el código de otros.
  4. Integrar códigos de otros en el código de otros.

La 4 es la mejor pero la mas dificil. No consiste en escribir mas rapido y reinventar la ruedad sino en saber buscar y para eso tenemos a GitHub.

Creo que al empoderarnos de la capacidad de búsqueda que ofrece GitHub Search (cuyo motor esta hecho en Rust, btw), podemos encontrar lo que teníamos en mente, algo diferente, pero que cumpla con nuestras necesidades. Sin embargo, ¿cómo distinguir entre los millones de repositorios disponibles? Ahí está el secreto:

path:**/go.mod

¡Exacto! path nos permite buscar en un archivo específico dentro de cada uno de los repositorios públicos que existen.

Aceptemos esto: muchos repositorios que hacen lo que tenemos en mente ni siquiera tienen una descripción de lo que hacen. Entonces, ¿cómo podemos saber que hacen lo que queremos? Buscando por las dependencias del proyecto y no buscando por palabras absurdamente como: Wake on lanPower offPower on, apagar, prender, discodeskpsutilgopsutilwakeonlan. Aunque, sin embargo, en algunos casos sería una buena opción.

Lo único que tienes que hacer es localizar el archivo de dependencias (go.mod, pom.xml, package.json)

Caso de ejemplo real: Quiero un programa que prenda y apague máquinas y que reporte información sobre el disco, la memoria, etc.

Ni pienses en hacerlo todo tú. Mejor ve a GitHub Search y pon lo siguiente:

Esto, hasta este momento, lista 3 repositorios (sí, solo tres repositorios que usan esos dos paquetes, ¡wow!). El último es, y hace exactamente lo que tenía en mente (¡wow x2!) y además es de alguien que trabaja en Amazon (¡WOW x3!).

Ahora, lo dificil

Bueno, te dije que había 4 tipos, sí, por niveles de dificultad, del 1 al 4: el último es el más difícil de hacer. Escribir código es fácil, usar una librería es fácil, modificar un proyecto de otro no lo es.

https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExZjQ0eG82bHNucmo0ZzYzcmUyYWViaWIzdHFuazZkdHhxY2tkb21taCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/5qoRdabXeT4GY/giphy.gif

Primero, no cambies nada. No modifiques el código. Lo primero que tienes que hacer es hacerlo andar tal cual. Sin embargo, aquí hay problemas que casi siempre se repiten:

  1. Cosas a instalar: CursierScala, blabla…
  2. Cosas que no funcionan en local.
  3. Cosas que hay que comentar para que funcionen.
  4. Cosas raras.
  5. Y aparte, estás solo en esto, a menos que me sigas. ¡Programemos juntos!

Pero tranquilo, al final lograrás hacerlo andar. Además, si quieres que comparta un how-to para solucionar estos problemas y más información en este tipo de enfoque de programación y búsqueda, ¡sígueme y comparte! ¡Muchas gracias!

Leave a Reply

Your email address will not be published. Required fields are marked *