¿Cuáles son algunos proyectos de programación que has hecho para que te diviertas mientras practicas tus habilidades de codificación?

Cuando probé Erlang, quería probar la función de actor y escribí un algoritmo genético y lo probé en un problema de vendedor ambulante. Solo quería monitorear cómo los actores se comunican entre sí y cómo la solución se involucra dentro de estos trabajadores (por ejemplo, cómo comparten buenas soluciones entre ellos).

Cuando probé Clojure durante un hachthon interno de la compañía, probé Clojure en lo que respecta al rendimiento para una solución de pronóstico. Era solo una prueba de concepto, pero la velocidad de cálculo era más que suficiente.

También a menudo escribo pequeños servicios que ofrecen un conjunto bajo de características cuando evalúo webframeworks. Probé mockiweb para Erlang y probé varias bibliotecas, escribí un sitio web i Elixir para probar el marco de Phoenix.

También suelo hacer algunas cosas de matemáticas cuando pruebo nuevos idiomas, ya que esta es mi zona de confort.

Hace un tiempo quería un proyecto simple para aprender sobre inteligencia artificial, particularmente heurística. Entonces, enganché el código para el juego 2048 y comencé a jugar. Aquí hay un video de mi código en el trabajo:

Básicamente, tenía el código que estaba esperando la entrada para llamar a mi código lógico, que luego enviaría una acción (como presionar una tecla de dirección), que activaría todo el proceso nuevamente. También eliminé el código para mostrar el cuadro de diálogo “Ganaste” para que el juego continuara.

Este video es de una versión anterior. Más tarde, me integré en las técnicas de aprendizaje de refuerzo que aprendí durante el curso de IA de Berkeley disponible en edX. Esto permitiría que el juego se juegue varias veces … mejorando cada vez.

Después de buscar en mis diversas computadoras dónde puse el código, encontré una versión que funcionaba. Reinicio el juego después de una pérdida. Utiliza un poco de aprendizaje de refuerzo. Aunque recientemente aprendí sobre un factor de “impulso” que podría usarse para minimizar las oscilaciones en los cálculos. Todavía no lo he implementado, pero si alguien quiere mejorar lo que he hecho, probablemente sea un buen lugar para comenzar. shbeeb / ai_2048

El archivo AutoPlay.js tiene la mayor parte de la lógica. Hay un montón de heurísticas allí que han sido comentadas. Mezcla y combina para obtener mejores resultados.

Tengo algunos, algunos que necesitaba para el trabajo que estaba haciendo y otros solo por diversión. De mi Github:

  • Cuchillo: una receta de Kali Live-Build
  • Escrito por diversión, este debe actualizarse a Kali 2.0
  • SOCKS-Scan: escanee un rango de IP para SOCKS4 / 5 proxies
    • Escrito por diversión, experimentando con el descubrimiento de proxy SOCKS abierto
  • Buffer Ruby: una joya de Buffer para cualquier persona, lo que facilita la programación de publicaciones en Twitter, Facebook, Google+, LinkedIn y Pinterest
    • Escrito porque mi amigo estaba buscando usar Buffer con Rails, y no me gustó su Gema, así que escribí el mío
  • Asciifier: convierta cualquier imagen en arte ascii con jQuery en Crossrider como una extensión de navegador multiplataforma
    • Escrito cuando estaba haciendo trabajo de visión por computadora, tratando de escribir un motor de contraste
  • Discoverizer: analizador de descubrimiento de usuarios StumbleUpon
    • Escrito cuando me di cuenta de que no podía descubrir cuántas vistas tenían mis descubrimientos en StumbleUpon
  • PyDOS: una herramienta simple de Python que cierra una URL
    • Escrito como una simple herramienta de prueba de carga después de que no pude encontrar una que pudiera hacer rutas HTTP completas e incluir una carga útil
  • Filterest: extensión del navegador para filtrar Pinterest ™
    • Escribí este para mi esposa, que estaba cansada de ver ciertas cosas en Pinterest
  • DirT-Scan: Escáner web transversal de directorio
    • Escrito por diversión

    Aquí hay algunos proyectos que hice como principiante:

    • Juego de Tetris basado en texto hecho usando C++ y la biblioteca ncurses .
    • CaptainDaVinci / Tetris
  • Juegos basados ​​en texto de Minesweeper, mastermind y Tic-Tac-Toe (un jugador y multijugador) usando C++ .
    • CaptainDaVinci / Minesweeper, CaptainDaVinci / Mastermind, CaptainDaVinci / Tic-Tac-Toe
  • Un script básico de Python para descargar música de buena calidad.
    • CaptainDaVinci / Python-Scripts
  • Una aplicación de Android equivalente para descargar música, CaptainDaVinci / Music-Downloader
  • Tengo un montón de ellos en mi cuenta de Github. Por ejemplo:

    • hook_lying_syncer fue un experimento para mantener method_missing y respond_to_missing? en sincronía, según sea necesario (bueno, al menos muy recomendable) para hacer metaprogramación en Ruby. Las cosas que aprendí incluyeron algunos casos extremos en el acceso al miembro de datos del objeto Ruby.
    • thedecider fue una de mis primeras aplicaciones de Toy Rails. Las cosas que aprendí incluyeron, bueno, muchas cosas sobre Rails y algunas sobre Ruby.
    • Mapctr fue algo que escribí para aprender la API de Google Maps. Por supuesto, aprendí todo sobre eso, ¡además de cuántas personas podrían encontrar un pequeño juguete tonto como ese muy útil! (Sin embargo, lo he descuidado durante tanto tiempo que Google ha cambiado su API para que ya no funcione).
    • Del mismo modo, goal_charter fue un ejercicio para aprender la API de Google Charts, aprendí principalmente sobre eso y ya no funciona.
    • fireworks_applet fue un juguete que escribí para aprender Java. Más tarde aprendí lo malas que eran algunas de las ideas que utilicé, ya que era mucho antes de que tuviera mucho control sobre OO. (Tenía muchos años de C procesal en mi haber para entonces, no mucho C ++, y todavía no había otro OO hasta donde puedo recordar. OO como tal todavía no se había enseñado en la escuela cuando me gradué).
    • multi_species_life fue algo que escribí originalmente para agudizar mis habilidades de C ++ no muy utilizadas, y luego lo convertí en un proyecto Rational Rose (que data bastante bien de ese proyecto) para agudizar eso.
    • toastmaster_timer fue en parte un experimento de aprendizaje de JavaScript, y aprendí mucho sobre la programación basada en eventos (y qué dolor en el trasero es).
    • dardos fue en parte un experimento de aprendizaje DOM (Modelo de objetos de documento), y aprendí mucho sobre cómo construir lo que ahora se llama una aplicación de una sola página, aunque lo hice antes de eso fue genial. 😉
    • kdl fue un experimento de aprendizaje de Ruby, y aprendí mucho sobre Ruby y las pruebas.

    ¿Cuáles son algunos proyectos de programación que has hecho para que te diviertas mientras practicas tus habilidades de codificación?

    Una de las primeras cosas que escribí fue un libro de “Elige tu propia aventura” en BASIC. Prácticamente solo un gran conjunto de GOTOs e IMPRESIONES.

    Escribí un programa de pintura súper básico. Una calculadora que te permitiría hacer cosas de dados (como 10d6 para “tirar 10 dados de 6 lados y sumarlos) así como operaciones matemáticas normales. Hubo un simple juego por turnos donde todo está en una cuadrícula y los malos podrían toparse entre sí para hacer una pila de basura (una estafa de una estafa hasta el punto en que ni siquiera sé cuál es el original). Un laberinto aleatorio que puedes jugar en el teclado numérico. Un programa que copiaría música desde una lista de reproducción hasta una ubicación de archivo dada. Un protector de pantalla. Una figura de palo animada. Un programa que genera fractales. Un programa que estaba destinado a reproducir música pero solo hacía una frecuencia a la vez y sonaba terrible. Un programa para interrogarme sobre preguntas con una respuesta exactamente coincidente requerida.

    Ingeniero de software de día y un geek de noche, he realizado no pocos proyectos utilizando varios lenguajes de programación, principalmente Java y JS).

    Aquí hay una lista no exhaustiva de mis proyectos públicos:

    • DhubS, una aplicación nativa de Android que facilita la búsqueda de imágenes de Docker dentro de Docker Hub; palabras clave: Android, api.ai, okhttp, retrolambda, picasso .. DhubS – Aplicaciones de Android en Google Play
    • DockBot, un chatbot de Facebook para aprender docker; palabras clave: Node.js, machine learning, docker …
    • TactileAnwhere, una aplicación de escritorio que hace que cualquier superficie de su hogar sea táctil mediante cámaras y visión por computadora; palabras clave: opencv, socket, java …

    Seguiré actualizando mi respuesta para agregar más proyectos 🙂

    La informática es increíble cuando amas y crees en lo que haces 😉

    Sé algo que se divirtió mucho construyendo una galería de fotos alternativa para Android (A + Gallery Photos & Videos), durante el proceso aprendió mucho más sobre programación (guayaba, rx y mucha escala), y sobre cómo ganar usuarios, un / b test, aso, etc. Ha sido una experiencia realmente gratificante para él.

    Un poco más de bonificación, su aplicación acaba de cruzar 2 millones de descargas.