¿Cuál es el código más interesante que has escrito?

Para mí, encuentro belleza no solo en la presentación frontal de mi código, sino también en la estructura algorítmica que contiene.

El código más interesante que he escrito representa el concepto de algo que se llama un casco convexo. Esencialmente, un casco convexo representa los puntos más externos de un conjunto, y cuando se conecta con segmentos de línea, se forma una estructura en forma de anillo:

Siempre he estado fascinado con algunos de los impresionantes diseños se pueden crear con la triangulación, un concepto matemático que subyace en cuyo precursor de conocimiento es aprender a código de un casco convexo (o eso me dijeron).

Creyendo que necesitaría comprender los conceptos de un casco convexo antes de proceder a la triangulación (y también ser un imbécil para la web creativa), decidí codificar no solo una versión estática del casco, sino una que animaría, reajustaría el anillo exterior en tiempo real basado en qué puntos eran más lejos en el conjunto:

La clasificación de los puntos, la conexión de los más externos, la aparición y el empalme de índices de las matrices, fueron parte del desafío. Había un algoritmo específico a seguir para el casco, pero lograr que se alineara con una animación que se viera bien probablemente fue la parte más difícil. Publiqué el código, mis recursos de aprendizaje y el pseudocódigo en CodePen para cualquier persona interesada en ver cómo se combinó todo. ¡Disfrutar!

——————-

Si disfrutaste pasar un tiempo con mi respuesta, también puedes disfrutar de mi canal de YouTube sobre desarrollo web: Chris Courses

Más bien basta con ver el código detrás de mis visualizaciones? Tengo todo cubierto: Christopher Lis en CodePen

Advertencia: Lo que es interesante para mí puede no ser interesante para usted.

Teníamos un sistema de red de PC temprano con más de 100 programas distintos alrededor de 1989 que usaba una base de datos propietaria (principios de BTrieve) y estaba escrito en Pascal.

Los programadores originales no conocían bien a Pascal, la base de datos, ni tenían el beneficio de saber qué tan grande crecería el sistema (para esos días).

Los datos tenían que cargarse (sin compresión) a un mainframe cada noche y tardaban más y más.

Los programas tenían problemas para almacenar los datos en cada PC (piense 286 con 640k de memoria).

El sistema fue lento a los datos de carga y almacenamiento (10 discos duros megabyte.)

Los programadores habían hecho que todos los campos de caracteres tuvieran un tamaño fijo de 255 bytes “solo para estar seguros” ya que no sabían cuánto espacio se necesitaría.

Entonces, descubrí cómo escribir una función que permitiera que los datos se redujeran al tamaño real, almacenados en la base de datos solo según sea necesario en campos de longitud variable.

La clave aquí fue que NADA más cambiaría: los programas no tuvieron que reescribirse y solo tuve que cargar y restaurar los datos una vez para usar el nuevo formato.

Funcionó, la primera vez.

Funcionó unas 5 veces más rápido y se almacenó en aproximadamente una décima parte del espacio; la mejor parte fue que “simplemente funcionó”.

Ese fue bastante bueno, pero tal vez el proceso de automatización de la fuerza de ventas que optimicé de 3 horas a 10 minutos fue mejor.

Fue escrito en Hypercard (para las primeras computadoras portátiles Mac en el campo) utilizaba viejas líneas de acceso telefónico a Internet pre-público (red GE, creo), y cargaba todos los datos a una unidad central a través del marcado de hotel en mal estado cada noche.

Los programadores de la hipercard cometieron un error de diseño (el archivo se leyó desde el principio para CADA línea del archivo), por lo que probaron con archivos pequeños y funcionó bien, pero con más de 1000 archivos y más grandes, les llevó una hora preparar los datos.

Tomó otra hora de enviar todo lo que una línea a la vez a la unidad central.

El mainframe estaba ejecutando un programa CICS (instancia separada de a) para cada línea del archivo; tardó una hora.

Que podría haber eliminado cualquiera de los 3 y todavía habría tomado dos horas.

Las probabilidades de que esas líneas pálidas y duras se mantuvieran estables incluso durante una hora eran bastante bajas, por lo que en la mayoría de los casos, ni siquiera terminaría en tres horas.

Fijar la hypercard (un par de minutos), lote del envío de la red (un par de minutos) y ejecutarlo a través de un único programa Cobal en el mainframe para otro par de minutos.

10 minutos o menos en total y, que yo sepa, prácticamente nunca fallaron en el camino, y nunca dos veces seguidas a menos que la línea real del hotel fuera totalmente inutilizable.

Historia divertida (para mí): los llamé cuando salía de la empresa para asegurarme de que todo estaba bien:

Yo: “¿Cómo te va?”

Cliente; “genial”

Yo: “¿Cuánto tiempo lleva ahora?”

Cliente: “Aproximadamente 45 minutos”.

Yo: “¿Por qué tanto tiempo?”

Cliente: “Funciona tan bien que no solo hacemos un distrito a la vez, sino que lo ejecutamos para toda la región”.

¡Lo disfruto!”

En uno de mis trabajos anteriores, escribí un sistema de informes de prueba a gran escala que, cuando salí de la compañía, estaba siendo utilizado por más de la mitad de la compañía. (Esta es una compañía con más de 20,000 empleados). Fue diseñada para reemplazar un sistema antiguo que frecuentemente se descomponía bajo la enorme cantidad de carga que tenía que soportar.

Escribí sobre el 90% del código de este sistema, incluyendo la mayor parte de sus pruebas y documentación. Me dio la oportunidad de resolver algunos problemas verdaderos de Big Data, y cuando lo tuve más o menos terminado, pude comparar (“diff”) más de medio millón de resultados de prueba en diez ejecuciones de prueba y generar una paginada informe para ellos, priorizados por orden de “más a menos interesante” (por ejemplo, casos de prueba que comenzaron a fallar recientemente, frente a casos de prueba que siempre pasaron o siempre fallaron), en una sola llamada de servicio de menos de 3 segundos . Estaba ingiriendo y dando sentido a cientos de millones de resultados de pruebas cada día, y que yo sepa todavía se está ejecutando.

Dado que este código es propiedad de la empresa propietaria, no puedo divulgar detalles sobre cómo resolví este problema, pero estoy muy orgulloso de ese trabajo y desearía poder patentarlo. 🙂

Efecto Matrix Hacker: varias ventanas

Este código no es mío. Lo vi en youtube … Crea efecto como a continuación

Cómo simular un código de matriz de hackers en varias ventanas

Como estudiante de secundaria, no he trabajado en las principales compañías de programación (todavía), pero mi programa favorito que escribí fue una clase que tomó un pedido de restaurante y usó la entrada del usuario como variables de instancia para el objeto “Pedido”. Simple, pero divertido de programar, y definitivamente un hito importante en mi carrera de programación.

En realidad para mí cuando era principiante, fue muy interesante imprimir mi nombre en la pantalla de la computadora una y otra vez.