En esta página:
Tanto en nuestro Ranking de Lenguajes de Programación del mes de Junio de 2021 y en nuestra lista de repositorios que fueron tendencia en GitHub en el mes de Junio de 2021, el Lenguaje de Programación Python ha marcado tendencia y en las consultas más populares en StackOverflow no ha sido la excepción, veamos las consultas sobre Python y las que fueron tendencia en el mes de Junio de 2021, vamos con ello.
Antes de continuar te invito a leer los siguientes artículos:
- Las 5 Consultas más Populares en Stack Overflow – Mes Mayo 2021
- Las 5 Consultas más Populares en Stack Overflow – Mes Abril 2021
- Las 5 Consultas más Populares en Stack Overflow – Mes Marzo 2021
- Las 5 Consultas más Populares en Stack Overflow – Mes Febrero 2021
- Las 5 Consultas más Populares en Stack Overflow – Mes Enero 2021
- Puedes leer más en la categoría Stack Overflow
Asimismo te invito a escuchar el Podcast: “Consejos Para Tener Más Tiempo Para Programar”:
Spotify: | Sound Cloud: | Apple Podcasts |
Bien ahora continuemos con el Post: Las 5 Consultas más Populares en Stack Overflow – Mes Junio 2021.
Como en otros artículos, para mantener un orden, voy a colocar el título de la consulta original, la versión traducida de la consulta, el Link de la consulta, el Lenguaje o Tecnología, una Descripción y una imagen de la consulta.
Puesto N° 5
Consulta Original: Refname is ambiguous
Consulta Traducida: Refname es ambiguo
Link: Visitar
Lenguaje(s) / Tecnología(s) / Herramienta(s): Git.
El usuario Daniel Kaplan menciona que creo un branch (rama) a partir de otra branch, hizo push y la fusiono con la rama master, comparte la siguiente línea de comandos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
$ history |less 8358 git co master 8359 commit # shortcut that adds all and commits 8360 push # shortcut that `git push`'s 8361 git lg # shortcut that logs my output 8362 git co 1600 8363 git co -b 1601 8364 npm run test 8365 npm run test 8366 npm run test 8367 npm run test 8368 npm run test 8369 npm run test 8370 npm run test 8371 npm run test 8372 npm run test 8373 npm run test 8374 npm run test 8375 npm run test 8376 npm run test 8377 ./release.sh 8378 ./release.sh 8379 commit 8380 push 8381 git push --set-upstream origin 1601 8382 git lg 8383 git co master 8384 git merge --no-ff - 8385 git st 8386 commit 8387 push |
Agrega otros detalles a su consulta, pero en un punto obtiene warning: refname ‘1601’ is ambiguous. El consulta, como se puede deshacer de ese error y como puede prevenirla en el futuro.
La respuesta viene del usuario jthill quien menciona que puede obtener ese error dando a una rama un nombre que coincida con el prefijo SH1 en un commit. Agrega otros detalles a su respuesta.
Si quieres saber más, puedes visitar el Link de la consulta en Stack Overflow.
Puesto N° 4
Consulta Original: Functional programming and decoupling
Consulta Traducida: Programación funcional y desacoplamiento
Link: Visitar
Lenguaje(s) / Tecnología(s) / Herramienta(s): C#, Programación Funcional.
El usuario Bjarke Sporring menciona que es un desarrollador POO (Programación orientada a objetos) clásico. Sin embargo, desde que descubrió los Lenguajes de Programación, puramente funcionales, siempre ha estado intrigado por el porqué, ya que POO parecía resolver la mayoría de los casos comerciales de manera razonable. Asimismo agrega otros detalles a su consulta y al fina hace las siguientes preguntas ¿Cómo se expone una API funcional sin vincular las firmas de tipo de función en tipos específicos de implementación? ¿Estoy pensando mal en esto?
El usuario Mark Seemann le responde mencionando que lucho con esa pregunta durante años antes de darse cuenta que estaba viendo las cosas de manera incorrecta, el agrega otros detalles a su respuesta, los cuales puedes encontrar en la página de la consulta en Stack Overflow.
Si quieres saber más, puedes visitar el Link de la consulta en Stack Overflow.
Puesto N° 3
Consulta Original: Understand Python swapping: why is a, b = b, a not always equivalent to b, a = a, b?
Consulta Traducida: Comprender el intercambio de Python: ¿por qué a, b = b, a no siempre es equivalente a b, a = a, b?
Link: Visitar
Lenguaje(s) / Tecnología(s) / Herramienta(s): Python.
El usuario Shaun Han menciona que como todos sabemos, la forma pitónica de intercambiar los valores de 2 elementos a y b es:
1 2 3 |
a, b = b, a |
Y debería ser equivalente a:
1 2 3 |
b, a = a, b |
Sin embargo, cuando el estaba trabajando en un código, descubrio accidentalmente que los siguientes dos intercambios dan resultados diferentes:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
nums = [1, 2, 4, 3] i = 2 nums[i], nums[nums[i]-1] = nums[nums[i]-1], nums[i] print(nums) # [1, 2, 4, 3] nums = [1, 2, 4, 3] i = 2 nums[nums[i]-1], nums[i] = nums[i], nums[nums[i]-1] print(nums) # [1, 2, 3, 4] |
Shaun Han menciona que esto es asombroso para el y requiere que alguien le explique que paso en el código, el pensó que en un intercambio de Python las 2 asignaciones ocurren simultáneamente e independientemente.
El usuario Silvio Mayolo le responde compartiendo un texto extraído de la página oficial de Python, en donde dice que la asignación de un objeto a una lista de objetivos, opcionalmente entre paréntesis o corchetes, se define de forma recursiva. De lo contrario: el objetivo debe ser iterable con el mismo número de elementos que los objetivos que hay en la lista de objetivos, y los elementos se asignan, de izquierda a derecha, a los objetivos correspondientes. Silvio Mayolo Agrega otros detalles a su respuesta.
Si quieres saber más, puedes visitar el Link de la consulta en Stack Overflow.
Puesto N° 2
Consulta Original: Why is Python recursion so expensive and what can we do about it?
Consulta Traducida: ¿Por qué la recursividad de Python es tan cara y qué podemos hacer al respecto?
Link: Visitar
Lenguaje(s) / Tecnología(s) / Herramienta(s): Python.
El usuario jtallk menciona que suponiendo que queremos calcular algunos números de Fibonacci, módulo 997. Porque n=500 en C++ podemos ejecutar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <iostream> #include <array> std::array<int, 2> fib(unsigned n) { if (!n) return {1, 1}; auto x = fib(n - 1); return {(x[0] + x[1]) % 997, (x[0] + 2 * x[1]) % 997}; } int main() { std::cout << fib(500)[0]; } |
Y en Python:
1 2 3 4 5 6 7 8 9 10 |
def fib(n): if n==1: return (1, 2) x=fib(n-1) return ((x[0]+x[1]) % 997, (x[0]+2*x[1]) % 997) if __name__=='__main__': print(fib(500)[0]) |
Asimismo menciona que ambos códigos encontrarán la respuesta 996 sin problemas. También menciona que se esta tomando módulos para mantener el tamaño razonable y usando pares para evitar ramificaciones exponenciales, entonces porque n=5000, el código C++ genera 783 y Python devuelve el error:
1 2 3 |
RecursionError: maximum recursion depth exceeded in comparison |
El usuario jtallk agrega otros detalles a su consulta los cuales puedes verlos en la página de la consulta en Stack Overflow.
La respuesta viene del usuario eerorika quien responde mencionando que el problema de Python es que tiene un límite interno en el número de llamadas a funciones recursivas, asimismo agrega otros conceptos teóricos a su respuesta.
Si quieres saber más, puedes visitar el Link de la consulta en Stack Overflow.
Puesto N° 1
Consulta Original: Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead [duplicate]
Consulta Traducida: La autenticación de contraseña está temporalmente deshabilitada como parte de un apagón. En su lugar, utilice un token de acceso personal [duplicada]
Link: Visitar
Lenguaje(s) / Tecnología(s) / Herramienta(s): Git, GitHub, GitHub API.
El usuario Shreyas Jadhav hace una consulta que el equipo de moderación de StackOverflow lo considera como duplicada, ya que esta ya fue hecha en este enlace. Pero ya que esta consuta igual tuvo respuestas, la compartiré. Shreyas Jadhav menciona que estaba usando la contraseña del nombre de usuario para pushear su código, esto le funciono durante muchos meses, pero de repente no puede hacerlo y le aparece el siguiente error:
1 2 3 4 5 6 |
Username for 'https://github.com': shreyas-jadhav Password for 'https://shreyas-jadhav@github.com': remote: Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead. remote: Please see https://github.blog/2020-07-30-token-authentication-requirements-for-api-and-git-operations/ for more information. |
La respuesta con mas puntos viene del usuario Kusal Shrestha quien le comparte 3 pasos que debe realizar para generar un nuevo token para developers en la configuración de GitHub como se menciona en su documentación.
Si quieres saber más, puedes visitar el Link de la consulta en Stack Overflow.
Bueno eso es todo por este mes, hasta aquí llegamos con las 5 consultas que marcaron tendencia en el mes de Junio de 2021 en la popular comunidad de Desarrolladores Stack Overflow, nos vemos a finales del siguiente mes con un nuevo Top de consultas.
Nota(s)
- No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.
- La cantidad de Respuestas, Vistas, Votos, etc. de las consultas pueden variar en Stack Overflow en el futuro, hasta la fecha de este artículo son las que presentamos en las imágenes.
- Si lees con atención las consultas y las respuestas vas aprender sobre el problema que tenia el usuario que realiza la consulta y puede que sea el problema que estas intentando solucionar, esto es importante para tu aprendizaje.
- La idea de este artículo es comentar y exponer los temas que son tendencia en el mes determinado, no intentamos dar una respuesta al problema ya que estos son resueltos por los usuarios de la comunidad Stack Overflow, que son grandes Desarrolladores y con mucha experiencia en el área o Lenguaje de Programación determinado.
- Algunos enlaces a otras páginas colocados en este artículo pueden dejar de existir o continuar en el futuro, esto no depende de nosotros si no de los usuarios o empresas que son dueños de los servidores en donde se encuentran alojados estos enlaces, hasta la fecha de este artículo estos enlaces aún están disponibles.
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.