Pregunta

Sólo por curiosidad, me pregunto lo que todo lo experimentado o programadores novatos (como yo) por ahí lo han hecho. Entonces, ¿cuál es el más duro programa más complicado que has escrito?

¿Fue útil?

Solución

La aplicación que creé en 2005/6 permite a las personas crear visualizaciones de sus casas / coches, etc. pintadas de diferentes colores. Ahora que sin duda se puede hacer en Photoshop, pero no era mucho, mucho más a él.

Viresol previsualización de salida

Otros consejos

un compilador

El que yo no quería, o divertirse, escribiendo.

Una vez tuve que escribir un algoritmo de compresión que utiliza BWT (Burrows Wheeler Transform) y hay un paso en el algoritmo en el que tiene que crear una matriz enorme. Tenía problemas con problemas de memoria y velocidad porque la matriz era tan grande. Y al final, hay un algoritmo muy simple que yo podría haber evitado utilizado y la matriz del todo.

También tenía que escribir un sistema operativo simple en ASM y que era bastante complicado.

Una vez hice un software de procesamiento de vídeo de múltiples cámaras en tiempo real, haciendo la detección de movimiento y la magia histográfica acumulada, todo en procesadores de 33 MHz y 640 MB de RAM. La parte difícil estaba haciendo esto vaya rápido; cantidades copiosas de hash, los bits de desplazamiento, el engaño, jurando y horas de la noche con la pizza y ephiphanies por cerca de 4 años. Ah, y lo hice una versión de tratar con el color también. Ah, y un módulo que podría ver la diferencia entre el vapor y el humo blanco en habitaciones grandes (como los reactores nucleares, por así decirlo). Hah, que acaba de probarlo! Usted no encontrará ejemplos de tales en cualquier libro de texto. :)

Una biblioteca para resolver ecuaciones Differenential parciales no lineales. Lo usamos en un grupo de física teórica para resolver una adaptación no lineal de la ecuación Schrodinger que se produce en ambientes muy especiales de baja temperatura.

Era relativamente fácil conseguir un solucionador de trabajo sencillo, pero la generalización de que y por lo que es rápido fue un reto.

En la actualidad es de código abierto de Google Code: FDTL

Una aplicación que compila y se corrió en ambos -. Windows y Mac con una base de código

Cualquier cosa que ver con el cifrado y la seguridad es siempre un 1000% más difícil de lo que parece!

Un conductor en general módem propósito para un servicio en línea escamosa. También tuvo que soportar 30 tipos de módem (antes Hayes módems). Todos ellos tenían diferentes características de tiempo.

Se tuvo que ser escrita tanto en 8086 y Z80 ensamblador para las versiones de CP / M y DOS de nuestros productos. Todavía tengo pesadillas sobre un determinado módem semidúplex ...

Automatización con COM, la ejecución a través de la Red

Una clase de streaming de video patentada mediante la API de ffmpeg - a nivel de manejo de paquetes y la visualización de fotogramas en el momento adecuado, la sincronización con el audio. No es tan difícil como algunos de los otros en la lista, pero una patada mi trasero durante muchas semanas!

Probablemente hay un empate: un solucionador de problemas para la toma de configuraciones satisfacibilidad modulo teorías y un proceso de cooperación programador en C / ASM que corría en la parte superior de un sistema operativo UNIX. El primero de ellos era simplemente difícil - que nunca se había hecho antes con tecnología SMT y traducir el documento altamente teórica en una aplicación real en un contexto diferente era difícil. El segundo implicado excavación para a estructuras de datos del sistema operativo para entender, a continuación, la sustitución de partes y piezas para saltar hacia atrás y adelante entre las funciones en el programa como si estuvieran hilos programados por separado.

un depurador

biblioteca de gráficos vectoriales empecé a escribir en 1998 que hizo un amplio uso de subdivisión jerárquica para proporcionar muchas de las operaciones en O (log n) y teselaciones anisotrópicas memoized en las listas de visualización OpenGL para mantener altas tasas de trama en escenas dinámicas. En particular, se puede hacer zoom en complicados gráficos vectoriales de forma fluida, ya que les descompone en los árboles y los sacrificados de manera eficiente. Durante muchos años, era, con mucho, el más rápido a nivel de consumidor procesador de gráficos vectoriales en el mundo.

La versión original fue 200kLOC de C ++, pero los problemas teóricos que formaron la base de su diseño me llevó 2 años para resolver.

2 cosas:

1) Un compilador. El nombre de la lengua era "3-bolas" (homenaje a un amigo que tenía él ha operado bolas)

2) Un programa de montaje de Windows sin una sola macro, todo fue empujado a la pila y la dirección eran todos relativa. Funciona en todos los Windows (sin dirección harcoded). Básicamente se trata de una simple ventana con algunos botones y etiquetas. Pero lo bueno es que, desde el objeto y archivos ejecutables, extraje los códigos de operación y ha generado un código shell de ella. Así que podría explotar cualquier tampón en un programa y, literalmente, crear mi propia aplicación se ejecuta por encima del uno! Agradable para mostrar una pantalla en un equipo remoto, y el equipo remoto se ejecutará un programa que no existe en su ordenador, que envió literalmente el programa a ejecutar en el equipo remoto.

Por supuesto, esto es demasiado headcache para nada ... pero vale la pena todos los bytes que he escrito!

He escrito varias piezas de código que pueden hacer de modelo en múltiples dimensiones espaciales (desde 3 hasta un máximo de alrededor de 7 dimensiones.) Los problemas se vuelven más difíciles cuando se trabaja en algo que no se puede realmente representar o incluso visualizar.

Pero, en realidad, como alguien que ha pasado la mayor parte de mis juegos de herramientas de construcción de tiempo para que otros lo utilizan en su trabajo, yo diría que los programas más complejos que he hecho en realidad eran cajas de herramientas, juegos de herramientas hechas para trabajar con cada uno otro de una manera consistente. Debido a que todas están hechas para trabajar juntos, se puede argumentar que varias docenas de utilidades funcionan realmente como de hecho una sola herramienta. (Por supuesto, cualquier código modular es similar en este sentido.) También en este caso, lo que se estuvieron herramientas de modelado en general, hizo para resolver los problemas de gestión del color.

Me hicieron esta misma pregunta en una entrevista hace un par de semanas (todavía no hemos oído si me dieron el trabajo).

Para mí fue varias asignaciones en mi primera clase de programación después de las clases básicas de introducción. Fue la primera vez que un curso de diseño web se ofrecía en mi universidad. Desde que era nuevo, varios estudiantes del último año se inscribieron y comprendían aproximadamente la mitad de la clase. El instructor se utilizó para dar clases de alto nivel, y ya conocía a muchos de los de la clase. Básicamente lo enseñó a su nivel, en lugar de la otra mitad de la clase que eran bastante inexperto.

Probablemente la tarea más difícil estaba escribiendo un navegador de sólo texto. Tenía problemas con el análisis de las diversas etiquetas y pedí ayuda. El instructor dijo: Bueno, si hubiera tenido la compiladores supuesto, usted podría simplemente escribir un sencillo. En ese momento 'compilador' era un cuadro negro que hizo cosas mágicas antes dirigió el programa. Yo realmente no sabía lo que era, ni mucho menos fui capaz de escribir uno.

Lo que hizo difícil fue no tener las herramientas necesarias para hacer el trabajo, para incluir la comprensión de los resultados que obtuve cuando busqué en Google. (Las páginas man y APIs son grandes si usted ya entiende lo que está buscando, pero no para enseñar a un novato.) En mis experiencias co-op que he aprendido más cuando tuve un mentor que dijo, si estás atascado más de un par de horas, que me haga saber para que pueda obtener se despegan y se mueve a lo largo. Mucho mejor que los que no quieren saber de mí, si cada semana o así.

Estoy trabajando en otro marco de PHP, que ha sido un viaje divertido hasta ahora.

Actualmente estoy escribiendo una aplicación de iPhone. Es sin duda el programa más difícil que he escrito. No porque el idioma es difícil, el código es difícil o cualquier otra razón, sino porque todo en el dispositivo tiene que ser tan fluida.

Todo tiene que verse y sentirse natural. Como yo soy un programador real (con conocimiento nulo de la fluidez, suavidad o el diseño .. por lo que parece) esto hace que sea muy difícil para mí. funciona el programa, el código sabia, pero la interfaz de usuario inteligente que tendrá un tiempo mucho más difícil hacer las cosas.

también roscas chupar; -)

Nada especial, sino una función que podría dibujar una "esfera" con triángulos, con puntos de N x N y interpolado los triángulos betweeen dos colores (lo que la entrada era el radio, el número de subdivisiones, color1, color2). Era difícil pero muy divertido en el que funcionaba:)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top