En esta página:
En este mes de Abril de 2021 hay 1 Lenguaje de Programación que tienen 2 consultas con más tendencia en GitHub, hablo de C++ y hay consultas como en la mayoría de casos técnicas a nivel de programación, pero también hay otro Lenguaje de Programación que cuenta con 2 consultas en la popular comunidad de desarrolladores StackOverflow, en este Post te cuento más detalles, vamos con ello.
Antes de continuar te invito a leer los siguientes artículos:
- 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
- Las 5 Consultas más Populares en Stack Overflow – Mes Diciembre 2020
- Las 5 Consultas más Populares en Stack Overflow – Mes Noviembre 2020
- Puedes leer más en la categoría Stack Overflow
Asimismo te invito a escuchar el Podcast: “Con Que Lenguaje De Programación Comenzar Para El Desarrollo Web”:
Spotify: | Sound Cloud: | Apple Podcasts |
Bien ahora continuemos con el Post: Las 5 Consultas más Populares en Stack Overflow – Mes Abril 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: I need a way in a C preprocessor #if to test if a value will create a 0-size array
Consulta Traducida: Necesito una forma en un preprocesador de C #if para probar si un valor creará una matriz de tamaño 0
Link: Visitar
Lenguaje(s) / Tecnología(s) / Herramienta(s): C.
El usuario RD Florida tiene una estructura que debe acolcharse a 64K para encajar perfectamente en un proyecto incrustado, de modo que llene un bloque de flash. Entonces hay un #define que suma los elementos en la estructura usando siseof() y determina que tan grande debe ser el pad [] al final para que el tamaño sea 64K.
1 2 3 4 5 6 7 8 9 10 |
#define SIZE_OF_MY_PAD (0x10000 - (sizeof(uint16_t) + sizeof(uint8_t)*32 + ... )) typedef struct { uint16_t firstElement; uint8_t secondElementArray[32]; ... uint8_t pad[SIZE_OF_MY_PAD]; }; |
RD Florida menciona que esto siempre le ha funcionado bien durante mucho tiempo hasta que, de repente, ya no necesitamos un pad en absoluto en ciertas configuraciones de compilación porque ya es exactamente 64K, pero esto hace que el código falle porque su compilador (no GCC) no permite pad[0], asimismo menciona que ha intentado varias formas de crear un valor de preprocesador que puede usar en una instrucción #if cuando se detecta, pero siempre falla porque aunque sizeof() es legal en #define, no es legal en #if.
El usuario tstanisl le ofrece una respuesta la cual es única que hay, al menos hasta la fecha de este Post lo es, tstanisl le responde diciendo que ese problema se puede resolver sin necesidad de un preprocesador con la ayuda de estructuras anónimas introducidad en C 11, asimismo agrega otros detalles técnicos con código incluido en su respuesta.
Si quieres saber más, puedes visitar el Link de la consulta en Stack Overflow.
Puesto N° 4
Consulta Original: Why does std::bit_width return 0 for the value 0, shouldn’t it return 1?
Consulta Traducida: ¿Por qué std :: bit_width devuelve 0 para el valor 0, no debería devolver 1?
Link: Visitar
Lenguaje(s) / Tecnología(s) / Herramienta(s): C++
El usuario rohitt menciona que std::bit_width encuentra los bits mínimos requeridos para representar un número entero x como 1+floor(log(x)) y pregunta ¿ porque std::bit_width devuelve 0 para el valor 0 ?, asimismo menciona que cree que 1 en la fórmula es una compensación.
La respuesta a su consulta viene de parte del usuario Nicol Bolas quien escribe hay un poco de historia extraña con la función bit_width que en un principio era log2, como parte de una propuesta que agrega funciones de potencia de dos enteras, agrega otros detalles a su respuesta.
Si quieres saber más, puedes visitar el Link de la consulta en Stack Overflow.
Puesto N° 3
Consulta Original: Why does Python return [15] for [0xfor x in (1, 2, 3)]? [duplicate]
Consulta Traducida: ¿Por qué Python devuelve [15] para [0xfor x in (1, 2, 3)]? [duplicada]
Link: Visitar
Lenguaje(s) / Tecnología(s) / Herramienta(s): Python.
Esta pregunta es duplicada, pero ya que obtuvo respuestas, la compartiremos. El usuario Infinity menciona que al ejecutar la siguiente línea:
1 2 3 4 |
// Código Python >>> [0xfor x in (1, 2, 3)] |
Esperaba que Python le devuelva un error, en su lugar obtiene [15]. El pregunta ¿ Cual puede ser la razón de esto ?
El mismo usuario Infinity se responde a su consulta de manera muy detallada, menciona que Python lee la expresión como [0xf or (x in (1, 2, 3))] por 2 elementos importantes, estos son el tokenizador de Python y la Precedencia del operador. Asimismo agrega otros detalles técnicos a su respuesta.
Si quieres saber más, puedes visitar el Link de la consulta en Stack Overflow.
Puesto N° 2
Consulta Original: “WARNING: Value for scheme.data does not match” when I try to update pip or install packages
Consulta Traducida: “ADVERTENCIA: el valor de schema.data no coincide” cuando intento actualizar pip o instalar paquetes
Link: Visitar
Lenguaje(s) / Tecnología(s) / Herramienta(s): Python.
En este penúltimo lugar el usuario daquezada menciona que esta trabajando con una computadora Mac M11 y acaba de notar que cuando intento actualizar el gestor de paquetes pip o instalar algún paquete, recibe una serie de advertencias:
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 34 35 36 37 38 39 40 41 42 43 44 45 |
user@mac01 ~ $python3 -m pip install --upgrade pip WARNING: Value for scheme.platlib does not match. Please report this to <https://github.com/pypa/pip/issues/9617> distutils: /opt/homebrew/lib/python3.9/site-packages sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages WARNING: Value for scheme.purelib does not match. Please report this to <https://github.com/pypa/pip/issues/9617> distutils: /opt/homebrew/lib/python3.9/site-packages sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617> distutils: /opt/homebrew/include/python3.9/UNKNOWN sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/include/python3.9 WARNING: Value for scheme.scripts does not match. Please report this to <https://github.com/pypa/pip/issues/9617> distutils: /opt/homebrew/bin sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/bin WARNING: Value for scheme.data does not match. Please report this to <https://github.com/pypa/pip/issues/9617> distutils: /opt/homebrew sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9 WARNING: Additional context: user = False home = None root = None prefix = None Requirement already satisfied: pip in /opt/homebrew/lib/python3.9/site-packages (21.1) WARNING: Value for scheme.platlib does not match. Please report this to <https://github.com/pypa/pip/issues/9617> distutils: /opt/homebrew/lib/python3.9/site-packages sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages WARNING: Value for scheme.purelib does not match. Please report this to <https://github.com/pypa/pip/issues/9617> distutils: /opt/homebrew/lib/python3.9/site-packages sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617> distutils: /opt/homebrew/include/python3.9/UNKNOWN sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/include/python3.9 WARNING: Value for scheme.scripts does not match. Please report this to <https://github.com/pypa/pip/issues/9617> distutils: /opt/homebrew/bin sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/bin WARNING: Value for scheme.data does not match. Please report this to <https://github.com/pypa/pip/issues/9617> distutils: /opt/homebrew sysconfig: /opt/homebrew/opt/python@3.9/Frameworks/Python.framework/Versions/3.9 WARNING: Additional context: user = False home = None root = None prefix = None user@mac01 ~ $ |
La respuesta con mas puntaje viene del usuario pradyunsg quien menciona que se ha lanzando la versión de pip 21.1.1 en donde se ha corregido el problema, reduciendo el nivel de registro de el mensaje de “WARNING” a “DEBUG”, también menciona que solo será visible para los usuarios que ejecuten pip con la flag –verbose. Asimismo agrega otros detalles a su respuesta.
Si quieres saber más, puedes visitar el Link de la consulta en Stack Overflow.
Puesto N° 1
Consulta Original: How can I make my class immune to the “auto value = copy of proxy” landmine in C++?
Consulta Traducida: ¿Cómo puedo hacer que mi clase sea inmune a la mina terrestre “valor automático = copia de proxy” en C ++?
Link: Visitar
Lenguaje(s) / Tecnología(s) / Herramienta(s): Python.
Y en el primer lugar el usuario Ash nos cuenta que tiene una librería matemática bastante compleja en la que está trabajando y ha descubierto un error desagradable cuando el código del cliente usa auto. A la mitad de la creación de un caso reproductivo mínimo para hacer una pregunta al respecto, el se ha dado cuenta de que puede reproducir algo similar utilizando solo la librería estándar en el siguiente caso simple de prueba:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <vector> #include <assert.h> int main() { std::vector<bool> allTheData = {true, false, true}; auto boolValue = allTheData[1]; // This should be false - we just declared it. assert(boolValue == false); boolValue = !boolValue; assert(boolValue == true); assert(allTheData[1] == false); // Huh? But we never changed the source data! Only our local copy. } |
Asimismo agrega varios otros detalles a su consulta.
La respuesta se la brinda el mismo usuario Ash, quien menciona que le tomo mucho experimentar, pero finalmente encontró una manera de mitigar el caso más común del problema, esto lo ajusta para que aún pueda copiar el proxy, pero una vez que lo haya copiado en una variable de stack o pila, no puede modificar y corromper inadvertidamente el contenedor de origen. Ash agrega otros detalles a su respuesta.
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 Abril 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.