¡Yᴏᴜʀ Pʀᴏᴅᴜᴄᴛ ʜᴇʀᴇ!
Agregue un enlace a su empresa o proyecto aquí: compre un patrocinio de GitHub.
La lógica del mundo es anterior a toda verdad y falsedad.
—Ludwig Wittgenstein [1]
Una lista seleccionada de falsedades en las que creen los programadores. Una falsedad es una idea que inicialmente creías que era cierta , pero que en realidad se ha demostrado que es falsa .
Por ejemplo, una idea : la dirección de correo electrónico válida tiene exactamente un carácter @
. Por lo tanto, utilizará esta regla para implementar la lógica de validación del campo de correo electrónico. ¿Bien? ¡Equivocado! La realidad es que los correos electrónicos pueden tener varios caracteres @
. Por lo tanto, su implementación debería permitir esto. La idea inicial es una falsedad en la que creías.
Los artículos sobre falsedades que se enumeran a continuación tendrán una lista completa de aquellas creencias falsas que debe conocer para ayudarlo a convertirse en un mejor programador.
Contenido
- Meta
- Letras
- Negocio
- Criptomoneda
- Fechas y hora
- Educación
- Correos electrónicos
- Geografía
- Identidad humana
- Internacionalización
- Gestión
- Multimedia
- Redes
- Números de teléfono
- Direcciones postales
- Ciencia
- Sociedad
- Ingeniería de software
- Transporte
- Tipografía
- Juegos de vídeo
- Web
Meta
- Falsedades que creen los programadores: una breve lista de falsedades comunes. Una gran visión general y una rápida introducción al mundo de las falsedades.
- Falsedades sobre la programación: una lista divertida y humillante sobre la programación y los propios programadores.
- Falsedades sobre listas de falsedades: metacomentario sobre cómo no se deben manejar estas falsedades.
Letras
- Falsedades sobre la música: suposiciones falsas que se pueden hacer al codificar la música.
- Falsedades sobre el arte: conceptos erróneos comunes sobre el arte.
Negocio
- Falsedades sobre compras en línea: cubre precios, monedas e inventario.
- Falsedades sobre precios: cubre monedas, montos y localización.
- Falsedades sobre los IBAN: los números de cuentas bancarias internacionales no son internacionales.
- Falsedades sobre la economía - La economía no es simple ni racional.
- Error de punto decimal en el sistema de contabilidad de Etsy: la importancia de los tipos en el software de contabilidad: perder el punto decimal genera sobrecargos 100 veces mayores.
- Veinticinco mil dólares de dinero falso: el mismo error que el anterior en Google Ads, o el peligro de separar sus centavos de sus dólares, donde cupones internos de $250 se convirtieron en $25,000. Mi consejo: deshazte de los números enteros y flotantes para los valores monetarios. Usa decimales. O recurrir a cadenas y analizarlas, no validar.
- Los caracteres
<
y >
en los nombres de las empresas provocan ataques XSS: debido a que el Reino Unido permite que las empresas se registren con caracteres especiales, un pirata informático los aprovechó para registrar "><SCRIPT SRC=MJT.XSS.HT></SCRIPT> LTD
, pero también ; DROP TABLE "COMPANIES";-- LTD
BETTS & TWINE LTD
SAFDASD & SFSAF ' SFDAASF" LTD
- Minucias de los nombres de las empresas: cómo las reglas del estado de Delaware y el IRS no se cruzan.
- Definiciones de moneda CLDR: los rangos de fechas de validez de la moneda se superponen debido a revueltas, invasiones, nuevas constituciones y una lenta adopción planificada.
-
tax
: una biblioteca de gestión de impuestos PHP 5.4+.
Criptomoneda
- Falsedades sobre Bitcoin: una lista de perspectivas erróneas sobre Bitcoin.
- Falsedades sobre Ethereum: conceptos erróneos y errores comunes en la programación de contratos.
Fechas y hora
- Falsedades sobre el tiempo: artículo fundamental sobre fechas y horas.
- Más Falsedades sobre el Tiempo - Parte. 2 del artículo anterior.
- Falsedades sobre el tiempo y las zonas horarias: otro aborda las falsedades relacionadas con el tiempo, con énfasis en las zonas horarias.
- Crítica de falsedades sobre el tiempo: retoma el primer artículo anterior y proporciona una explicación de cada falsedad, con más contexto y recursos externos.
- Falsedades sobre Unix Time - ¡Cuidado con el segundo intercalar!
- Falsedades sobre las zonas horarias: tiene algunos puntos interesantes sobre los casos extremos de las transiciones de horario de verano.
- Su falacia calendárica es pensar…: lista que cubre la intercalación y la influencia cultural, elaborada por una comunidad de desarrolladores de iOS y macOS.
- Base de datos de zona horaria: códigos y datos que representan el historial de la hora local para muchas ubicaciones representativas de todo el mundo.
- La larga y dolorosa historia del tiempo: la mayoría de las idiosincrasias en el cronometraje pueden encontrar una explicación en la historia.
- Usted aboga por una reforma del calendario: su idea no funcionará. Este artículo te dice por qué.
- Entonces desea abolir las zonas horarias: abolir las zonas horarias puede parecer una buena idea, pero existen bastantes complicaciones que hacen que no lo sea.
- El problema con la hora y las zonas horarias: un vídeo sobre por qué nunca deberías lidiar con zonas horarias si puedes evitarlo.
- Cobro excesivo de $26,000 por parte del Departamento de Trabajo: la consecuencia de una contabilidad de calendario incorrecta.
- RFC-3339 vs ISO-8601: una lista gigante de formatos de los dos estándares, cómo se superponen y ejemplos en vivo.
- ISO-8601,
YYYY
, yyyy
y por qué su año puede ser incorrecto: el formato de cadena de fecha es difícil. - UTC es suficiente para todos, ¿verdad? - Hay casos extremos sobre fechas y horas (específicamente UTC) en los que probablemente no hayas pensado.
- Almacenar UTC no es una solución milagrosa: "Solo almacenar fechas en UTC" no siempre es el enfoque correcto.
- Cómo elegir entre UT1, TAI y UTC: depende de sus prioridades entre segundos SI, sincronización de la rotación de la Tierra y evitación de segundos intercalares.
- ¿Por qué restar estos dos tiempos (en 1927) da un resultado extraño? - Respuesta infame de Stack Overflow sobre zonas horarias históricas complicadas y cómo las versiones más nuevas de software pueden reinterpretar las fechas históricas.
- Fechas críticas y significativas: desde el año 2000 hasta el desbordamiento de segundos de 32 bits de la época Unix, una lista de fechas especiales a tener en cuenta según el sistema.
- "Voy a una comuna de Vermont y no me ocuparé de ninguna unidad de tiempo inferior a una temporada". - Es la nota dejada en su terminal por un ingeniero que renunció en los años 70, después de demasiado esfuerzo trabajando en cuestiones de tiempos inferiores a segundos. Fuente: El alma de una nueva máquina.
Educación
- Falsedades que los estudiantes de informática (todavía) creen al graduarse: una lista de cosas (no solo) que los estudiantes de informática tienden a creer erróneamente y, a veces, sorprendentemente, a pesar de que (probablemente) deberían saberlo mejor.
- Mitos posdoctorales: "Se dicen, escriben y creen muchas cosas sobre los investigadores posdoctorales que simplemente no son ciertas".
Correos electrónicos
- Falsedades sobre el correo electrónico: sobre direcciones, contenido y entrega.
- Sabía cómo validar una dirección de correo electrónico hasta que leí el RFC: proporciona ejemplos complejos de direcciones de correo electrónico válidas insospechadas según el RFC-822.
- Entonces cree que puede validar direcciones de correo electrónico (FOSDEM 2018): presentación de direcciones de correo electrónico extremas y por qué no debería usar expresiones regulares para analizarlas.
- Su lógica de validación de correo electrónico es incorrecta: un resumen de las diversas y sorprendentes cosas que se permiten en una dirección de correo electrónico.
-
libvldmail
: una biblioteca que implementa comprobaciones basadas en RFC para direcciones de correo electrónico.
Geografía
- Falsedades sobre Geografía - Recoge lugares, sus nombres y ubicaciones.
- Falsedades sobre Mapas - Abarca coordenadas, proyección y SIG.
- Odio los sistemas de coordenadas: una guía para profesionales geoespaciales sobre cómo diagnosticar y solucionar problemas comunes con los sistemas de coordenadas.
- Los 5 nombres de lugares en kanji más locos de Japón: "Hay un grupo especial de kanji que es difícil de leer incluso para los japoneses: los nombres de lugares".
Identidad humana
- Falsedades sobre nombres: el artículo que empezó todo.
- Falsedades sobre los nombres: con ejemplos: una versión revisada del artículo anterior, esta vez con explicaciones detalladas.
- Falsedades sobre la biometría: las huellas dactilares no son únicas.
- Falsedades sobre las familias: realmente no se puede definir una familia con reglas estrictas.
- Falsedades sobre el Género: #1 y #2 - El género es parte de la identidad humana y tiene sus propias sutilezas.
- Falsedades sobre mí: cuestiones en la intersección de nombres, género e internacionalización.
- Matrimonio homosexual: la perspectiva de la ingeniería de bases de datos: cómo almacenar un matrimonio en una base de datos y al mismo tiempo abordar la mayoría de las falsedades sobre género, nombres y relaciones.
- Nombres personales en todo el mundo: ¿En qué se diferencian los nombres de las personas en todo el mundo y cuáles son las implicaciones para la Web?
- XKCD #327: Las hazañas de una mamá: visión divertida de cómo la implementación de una falsedad puede generar agujeros de seguridad.
- Hola, soy el Sr. Null. Mi nombre me hace invisible para las computadoras: un ejemplo de la vida real sobre cómo la falsedad implementada tiene un impacto negativo en la vida de alguien.
- HL7 v3 RIM: un modelo de datos flexible para representar nombres humanos.
- Apple iOS
NSPersonNameComponentsFormatter
: representaciones localizadas de los componentes del nombre de una persona.
Internacionalización
Sobre codificación de caracteres, formato de cadenas, Unicode e internacionalización.
- Falsedades sobre el idioma: traducir un software del inglés no es tan sencillo como parece.
- Falsedades sobre el texto sin formato: el texto sin formato no es suficiente, lo que hace que Unicode sea aún más increíble por su capacidad para funcionar bien.
- Falsedades sobre el texto: un subconjunto de las falsedades anteriores, ilustradas con algunos ejemplos.
- Internationalis(z)ing Code: un vídeo sobre las cosas que debes tener en cuenta al internacionalizar tu código.
- Conocimiento mínimo sobre Unicode y conjuntos de caracteres: una buena introducción a Unicode, su contexto histórico y sus orígenes, seguida de una descripción general de su funcionamiento interno.
- Awesome Unicode: una lista seleccionada de interesantes curiosidades, paquetes y recursos de Unicode.
- Rincones oscuros de Unicode: Unicode es extenso, aquí hay dragones.
- Dejemos de atribuir significado a los puntos de código: profundiza en Unicode y disipa los mitos sobre los puntos de código.
- Conceptos erróneos de Unicode: una colección de falsedades sobre mayúsculas y minúsculas, codificaciones, longitud de cadenas y más.
- Rompiendo nuestras suposiciones
Latin-1
: la mayoría de los programadores pasan tanto tiempo con Latin-1
que se olvidan de las peculiaridades de los scripts de los demás. - Oda a una etiqueta de envío: la codificación de caracteres es difícil, más aún cuando cada capa rota de entrada de datos agrega su propio sabor.
- Fallo de localización: la temperatura es difícil: no se pueden localizar las diferencias de temperatura tal como están.
- Datos de prueba de i18n: recopilación de datos de nombres diversos e internacionales reales para pruebas unitarias y control de calidad.
- Gran lista de cadenas traviesas: un enorme corpus de cadenas que tienen una alta probabilidad de causar problemas cuando se utilizan como datos de entrada del usuario. Un conjunto imprescindible de casos extremos prácticos para probar su software.
Gestión
- Falsedades sobre los solicitantes de empleo: las suposiciones sobre los solicitantes de empleo y sus historiales laborales no son necesariamente ciertas.
Multimedia
- Falsedades sobre vídeo: cubra todo: decodificación y reproducción de vídeo, archivos, escalado de imágenes, espacios de color y conversión, visualizaciones y subtítulos.
- Casos extremos horribles a considerar cuando se trata de música: los datos de los catálogos de música están llenos de cosas locas.
- Esquema de base de datos MusicBrainz: un proyecto y una base de datos de código abierto que parece haber resuelto la complejidad de la gestión de catálogos de música.
- DDEX: el estándar de la industria para metadatos musicales, incluido el archivo, la grabación de sonido, los informes de ventas y uso, las regalías y los acuerdos de licencia.
- Guía de estilo de Apple Music: pautas de seguro de calidad para formatear música, arte y metadatos para aumentar la visibilidad.
Redes
- Falsedades sobre redes: cubre TCP, DHCP, DNS, VLAN e IPv4/v6.
- Falacias de la informática distribuida: suposiciones que invariablemente hacen los programadores nuevos en aplicaciones distribuidas.
- Hay más de una forma de escribir una dirección IP: algunas partes de la dirección son opcionales, tenga en cuenta las notaciones decimales y octales, y tampoco olvide IPv6.
- IDN es una locura: los caracteres internacionales en los nombres de dominio significan compatibilidad con homógrafos y heterógrafos.
-
hostname-validate
: un intento de validar nombres de host en Python.
Números de teléfono
- Falsedades sobre Números de Teléfono - Abarca los números de teléfono, su representación y significado.
-
libphonenumber
: biblioteca Java, C++ y JavaScript común de Google para analizar, formatear y validar números de teléfono internacionales. También disponible para C#, Objective-C, Python, Ruby y PHP.
Direcciones postales
- Falsedades sobre direcciones: cubre calles, códigos postales, edificios, ciudades y países.
- Falsedades sobre la residencia - No se trata sólo de la dirección en sí, sino de la relación entre una persona y su residencia.
- Carta entregada a pesar de no tener nombre ni dirección: la máxima falsedad sobre las direcciones postales: no necesita una.
- Rarezas de direcciones en el Reino Unido: peculiaridades extraídas de una lista de la mayoría de las ventas de propiedades residenciales en Inglaterra y Gales desde 1995.
- ¿Cuál es la dirección más mínima posible en el Reino Unido? - El truco consiste en confiar en los códigos postales, que en el Reino Unido son bastante específicos y “a menudo identifican uno o unos pocos edificios específicos, a diferencia de los países donde un código postal representa un vecindario completo”.
- El oso con su propio código postal: Smokey Bear tiene su propio código postal (
20252
) porque recibe mucho correo. - ¿Por qué Costa Rica no utiliza direcciones reales? - El costarricense utiliza un sistema idiosincrásico de direcciones que se basa en puntos de referencia, historia y bastantes conjeturas.
- Direcciones postales y expresiones regulares: por qué las expresiones regulares y las direcciones postales no se mezclan.
- Analizando el infame CSV postal japonés: "Vi muchos horrores, pero nunca había visto esta elección de formato en particular en ningún otro lugar".
- Estándares de direcciones postales de USPS: describe el contenido y los formatos de direcciones estandarizados.
-
libaddressinput
: biblioteca común de C++ y Java de Google para analizar, formatear y validar direcciones postales internacionales. -
addressing
: una biblioteca de direccionamiento PHP 5.4+, impulsada por el conjunto de datos de Google. -
postal-address
: módulo de Python para analizar, normalizar y representar direcciones postales. -
address
: vaya a la biblioteca para validar y formatear direcciones utilizando el conjunto de datos de Google.
Ciencia
- Falsedades sobre los sistemas de medida - Sobre el trabajo con sistemas de medida y la conversión entre ellos.
Sociedad
- Falsedades sobre nombramientos políticos: El diseño de sistemas electorales tiene sus propios trucos.
- Falsedades sobre las mujeres en la tecnología: mito sobre las mujeres en las industrias STEM (ciencia, tecnología, ingeniería, matemáticas).
Ingeniería de software
- Falsedades sobre las versiones: atribuir una identidad a una versión de software puede ser más difícil de lo que se pensaba.
- Falsedades sobre los sistemas de compilación: crear software es difícil. Crear software que cree software es más difícil.
- Falsedades sobre el comportamiento indefinido: invocar un comportamiento indefinido puede provocar que suceda cualquier cosa , para una definición de "cualquier cosa" mucho más amplia de lo que uno podría pensar.
- Falsedades sobre los CSV: si bien el RFC4180 existe, está lejos de ser definitivo y en gran medida se ignora.
- Falsedades sobre los administradores de paquetes: cubre los paquetes y sus administradores.
- Falsedades sobre las pruebas: un intento de establecer una lista de falsedades sobre las pruebas.
- Falsedades sobre la búsqueda: por qué la búsqueda (incluido el análisis, la tokenización y el resaltado) es engañosamente compleja.
- Lo que todo ingeniero de software debería saber sobre la búsqueda: un artículo con mejores fuentes sobre la dificultad de implementar motores de búsqueda.
- Falsedades sobre la paginación: por qué su algoritmo de paginación le está dando dolor de cabeza a alguien (posiblemente a usted).
- Falsedades sobre la recolección de basura: conceptos erróneos sobre la previsibilidad y el rendimiento de la recolección de basura.
- Mitos sobre las rutas de archivos: la diversidad de sistemas de archivos y sistemas operativos hace que las rutas de archivos sean un poco más difíciles de lo que podríamos imaginar.
- El extraño mundo de las rutas de archivos de Windows: “En cualquier sistema derivado de Unix, una ruta es algo admirablemente simple: si comienza con
/
, es una ruta. No es así en Windows”. - Mitos sobre los cachés de CPU: los conceptos erróneos sobre los cachés a menudo conducen a afirmaciones falsas, especialmente cuando se trata de simultaneidad y condiciones de carrera.
- Mitos sobre
/dev/urandom
- Hay algunas cosas sobre /dev/urandom
y /dev/random
que se repiten una y otra vez. Aún así son falsos. - Datos sobre las máquinas de estados: las máquinas de estados a menudo se malinterpretan y no se aplican lo suficiente.
- ¡Hola! Mi nombre es… - Esta charla podría haber sido denominada falsedades sobre nombres de usuario (y otros identificadores) .
- Conceptos erróneos populares sobre
mtime
: parte de una publicación sobre por qué la comparación mtime
de archivos podría considerarse dañina. - Reglas para autocompletar: no son falsedades per se , pero siguen siendo una excelente lista de buenas prácticas para implementar el autocompletado.
- Matemáticas de punto flotante: “Tu lenguaje no está roto, está haciendo cálculos de punto flotante. (…) Por eso, la mayoría de las veces,
0.1 + 0.2 != 0.3
”. - El documento yaml del infierno: YAML está lleno de complejidad oscura, como números accidentales y claves que no son cadenas.
- Estoy infinitamente fascinado con los sistemas de etiquetado de contenido: hay casos extremos incluso en sistemas de etiquetado que se supone que son básicos.
- Falsedades sobre la tecnología cuántica: conceptos erróneos comunes sobre la tecnología cuántica y las computadoras.
- Falsedades sobre los sistemas controlados por eventos: conceptos erróneos sobre los sistemas controlados por eventos y el paso de mensajes.
Transporte
- Falsedades sobre los automóviles: incluso algo tan común como definir un automóvil está lleno de trampas.
- Falsedades sobre los mapas de asientos de las aerolíneas: los mapas de asientos de las aerolíneas son mucho más complejos que simples filas y columnas de asientos.
- El enloquecedor lío de los códigos de aeropuerto: el hecho de que múltiples agencias nacionales e internacionales intenten conciliar la historia, la practicidad y la logística hace que los códigos sigan reglas arcanas.
- ¡Mi nombre causa un problema con cualquier reserva! - Los antiguos sistemas de reservas de aerolíneas consideran el sufijo
MR
como Mister
y lo eliminan.
Tipografía
- Falsedades sobre las fuentes: suposiciones sobre la tipografía en la web y en aplicaciones de escritorio.
- Verdades que los programadores deben saber sobre mayúsculas y minúsculas: un completo reverso del formato de falsedades, sobre el tema de mayúsculas y minúsculas (como en texto en mayúsculas y minúsculas).
Juegos de vídeo
- El problema de las puertas: todas las cosas que no has considerado implementar para tus puertas en los juegos.
Web
- Falsedades sobre HTML: “La Web es hermosa. La web es fea. La web es asombrosa. Una parte de este atractivo es HTML, con sus peculiaridades históricas”.
- Falsedades sobre las API REST: errores que se deben tener en cuenta al crear y documentar API.
- URL: Es complicado... - Hay muchos componentes en una URL y todos tienen su propia lógica.
- La complejidad oculta de descargar favicons, contada en más de 15 casos extremos: descargar ese pequeño ícono que ves en las pestañas de tu navegador debería ser un ejercicio simple. Resultó ser mucho más complicado de lo que piensas. Tenga cuidado de no afeitar a un yak.
Contribuyendo
¡Tus contribuciones siempre son bienvenidas! Primero, eche un vistazo a las pautas de contribución.
Notas a pie de página
Esta lista ganó cierta popularidad en las redes sociales en los últimos años. Véalo discutido y mencionado en otra parte.
La imagen del encabezado se basa en una fotografía modificada tomada en febrero de 2010 por Iza Bella, distribuida bajo una licencia Creative Commons BY-SA 2.0 del Reino Unido.
[1]: Cuadernos, 1914-1916 (Liveright, 2022) - fuente: página 14e. [ ↑ ]