1 Enlaces de utilidad general

1.1 Editores/IDEs, tipos de letra, esquemas de colores.

  1. Lite-xl.
  2. VSCode. Si te gusta la privacidad deberías echar un vistazo a vscodium.
  3. SublimeText.
  4. Code::Blocks.
  5. Geany.
  6. Gnome Builder.
  7. GNU Emacs.
    • Existen distribuciones de Emacs que facilitan su configuración, las dos más conocidas son Spacemacs y Doom-Emacs.
    • Aquí tienes unos tutoriales para principiantes: 1, 2 y 3.
    • Y aquí un listado de usuarios famosos en el ámbito de la informática que usan Emacs.
  8. Vi es, junto a Emacs, otro clásico editor de textos de los S.O. de la familia UNIX. Con el tiempo han ido apareciendo versiones mejoradas del mismo como Vim y Neovim.
  9. Cuida tus ojos, para programar es mejor emplear tipos de letra mono-espaciados en lugar de proporcionales.
    • Usa un tamaño de letra apropiado, evita tamaños muy pequeños.

    • Aquí tienes ejemplos de tipos de letra apropiados para programar.

    • Y aquí algunos criterios para elegir un tipo de letra mono-espaciado.

    • Elige un esquema de color que no te produzca fatiga visual. Dos de los esquemas de colores que más tratan de conseguir esto son:

      1. Solarized.

      2. Modus Themes.

  10. Unicode y UTF-8/16/32. Aquí, aquí y aquí tienes más información. La página web del proyecto. Si vas a usar Unicode desde programas consulta estas bibliotecas.

2 Enlaces relacionados con la asignatura

2.1 Despliegue y organización de equipos

  1. Deployment Tips.
  2. Despliegue de Software.
  3. Software Development and Deployment.
  4. Organizing for Successful Software Development.
  5. Rolling stable kernels charla impartida por Sasha Levin, uno de los mantenedores de las versiones estables del núcleo Linux.

2.2 Construcción de proyectos de forma eficiente

  1. Distcc. Distcc en la wikipedia.
  2. Ccache.
  3. Una pequeña ayuda para escribir Makefiles no-recursivos: subdirmk.
  4. Ninja.
  5. Make.

2.3 Seguimiento de fallos

  1. Trac. Trac en la wikipedia.
  2. Bugzilla.
  3. En clase hablamos del fallo en una de las misiones de la Nasa a Marte. Aquí lo tienes mas detallado junto a otros errores relacionados con el uso mezclado de distintos tipos de unidades.
  4. No pertenece exactamente a este tema pero está relacionado con él. Repasa los distintos modelos de error empleados en los lenguajes de programación así como las ventajas e inconvenientes de cada uno de ellos.

2.4 Empaquetado

  1. How To Package For Debian.
  2. Debian maintainer guide: build.
  3. Cómo crear paquetes RPM.

2.5 Internacionalización

  1. Gettext en la wikipedia. Página del proyecto gettext.
  2. How Translation Works in GNOME.

2.6 Control de versiones

2.6.1 Git

  1. How to Learn Git in Simple Words.
  2. Git.
  3. Libro Pro Git.
  4. Gitmagic.
  5. Gitready.
  6. Gitflow: A successful Git branching model.
  7. Tutorial sobre Gitflow. How to Write a Git Commit Message.
  8. Git no está pensado para gestionar ficheros grandes. Existen soluciones que te pueden ayudar en este sentido, p.e.: Git LFS y Git annex.
  9. Ordenes de bajo nivel ( plumbing ) en git.
  10. Git soporta el uso de submódulos.
  11. Si quieres conocer más sobre cómo git guarda su información entonces consulta estos artículos:

2.6.2 Otros

  1. Monotone.
  2. Mercurial. Mercurial en la wikipedia.
  3. Darcs. Darcs en la wikipedia.

2.7 Tests

  1. Boost Tests.
  2. CppUnit.
  3. JUnit en la wikipedia. JUnit.
  4. GLib Testing.

2.8 Configuración de proyectos

  1. Autoconf.
  2. Automake.
  3. CMake:
  4. Meson: configuración y construcción de proyectos.

2.9 Diseño por contrato

  1. Design by contract.
  2. Diseño por contrato en el lenguaje D.
  3. Diseño por contrato en el lenguaje Vala.
  4. Diseño por contrato en C#.

2.10 Varios

  1. The Impact of AI on Computer Science Education. No dejes de leer este artículo.
  2. Doxygen: generador de documentación a partir de comentarios.
  3. Learn X in Y minutes.
  4. Computer Languages History.
  5. Uncrustify: Source Code Beautifier.
  6. C++ on Mars: Incorporating C++ into Mars Rover Flight Software. Destacar los minutos 4:27 (tests), 1:09:00 (valgrind/purify) y 1:10:07 (equipos de desarrollo y test separados).