-
LecciónLos peligros de Serializable
Serializable tiene una serie de problemas que hacen que, aunque nos intenten sugerir lo contrario, no deberíamos utilizarlo como método de almacenamiento primario a largo plazo de nuestros programas. El principal problema de Serializable es que no está pensado para almacenar a largo plazo y que cualquier atisbo de corrupción... -
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ónReader, FileReader y BufferedReader
Del mismo modo, con Reader tenemos la posibilidad de leer del mundo exterior en forma de caracter o stream de texto. Por ejemplo, con FileReader se puede leer el texto de un archivo. Sin embargo, poca utilidad tendrá sin la ayuda de BufferedReader, para poder disponer de métodos más prácticos... -
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ó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... -
Leccióngit merge --squash
El botón squash de las interfaces web está bien, pero ¿cómo haríamos un squash desde la línea de comandos usando nuestro propio cliente de Git? El squash es un flag del comando git-merge, por lo que para hacer un squash tenemos que solicitar esta estrategia al realizar un merge. -
LecciónMerge octopus (advanced)
Merge octopus es un tipo de merge (el del pulpo) que se hace cuando se intenta hacer un merge de más de dos ramas a la vez. Es un tipo de merge que puede ser útil en casos en los cuales haya varias ramas a integrar, para hacerlo de un... -
LecciónEl flag --patch
Con la opción --patch es posible que ciertos comandos como git-add, git-checkout o git-restore hagan sus cambios sobre trozos concretos de archivos en vez de sobre un archivo completo. Lo podemos usar para meter hunks concretos en un commit o para deshacer parcialmente el contenido de un archivo.