-
LecciónEnvolviendo varios OutputStreams
Pequeño inciso: por supuesto que a un OutputStream que acepta otro OutputStream como parámetro, le puedes pasar como parámetro un OutputStream que acepta otro OutputStream como parámetro. Suena a trabalenguas, pero la cuestión es que puedes fabricar un FileOutputStream, pasarlo por dentro de un BufferedOutputStream, y pasarlo por dentro de... -
LecciónBufferedInputStream y rebobinado de streams
La idea de BufferedInputStream es que con una única llamada a read() podamos abarcar tanto como sea posible, para no tener que estar continuamente accediendo al stream que va por debajo. Lo importante es que con esto podemos usar métodos como mark() y reset() para poder rebobinar un stream -
LecciónInputStreamReader y OutputStreamWriter
Muchas clases de la biblioteca estandar de Java que generan streams, los hacen en modo byte, por lo que si vamos a querer leer o escribir en modo caracter, tendremos que pasar esos streams a través de InputStreamReader y de OutputStreamWriter, que son clases que sirven para hacer la traducción... -
LecciónPrintStream y PrintWriter
Cerramos con un par de clases interesantes, porque son impresoras. Permiten empujar, tanto a un stream de byte como a un stream de char, cadenas de caracteres de múltiples tipos. Puede que ya las hayas utilizado, porque System.out y System.err son PrintStreams. -
LecciónMake
Make es una herramienta muy habitual en sistemas UNIX como es el caso de GNU/Linux, con la que se puede orquestar la compilación de programas compuestos de múltiples archivos, en base a reglas. Este es un tutorial un poco breve para introducir al uso de Make allá donde haga falta,... -
LecciónTipos de datos opacos
Los tipos de datos opacos permiten crear punteros a estructuras de datos donde realmente no sabes lo que hay dentro de la estructura, porque todo lo que puedes ver es un puntero. Se trata de una característica avanzada de C que tiene uso principalmente en bibliotecas multiplataforma o en aquellos... -
LecciónSubmódulos (parte 2)
Ahora que han pasado varios días, podemos continuar grabando la segunda parte de este tutorial presentando los comandos para poner al día un submódulo acoplado a un repositorio, o para poner al día un repositorio con submódulos. -
LecciónSubmódulos (parte 1)
En esta primera parte (lógicamente, como no tengo máquina del tiempo, la segunda parte la tengo que grabar otro día), vamos a ver qué es un submódulo, cómo acoplar un submódulo a un repositorio, y cómo clonar un repo con submódulos. -
LecciónGit para la Bash
Un pequeño vídeo de regalo para quienes quieran configurar su prompt de Bash con los scripts de Git que permiten mostrar el nombre de la rama en Bash. La función __git_ps1 te permite mostrar la rama en la que estás, y es fácil de insertar en el PS1. Además, git-completion. -
Leccióngit-bisect
git-bisect es un comando de diagnóstico muy potente que permite identificar en un log de Git el momento exacto en el que se introduce un bug (o ya puestos, lo que sea que estemos buscando). Podemos iniciar un bisect con `git bisect start`, y luego ir etiquetando commits con el...