Libros Filosofía del Software Libre

Libros Filosofía del Software Libre

Bueno dejo por aquí unos libros que tratran sobre la Filosofía del Software Libre, son un poco antiguos pero vitales.

Richard Stallman, Sofware Libre para una Sociedad Libre.

Compendio de artículos de Richard Stallman en una traducción al español. Descarga en epub y pdf.

Grupo de Sistemas y Comunicaciones, Sobre Software Libre.

Compendio de artículos de diferente índole sobre obviamente software libre que abarcan temas variados desde propiedad intelectual hasta cuestiones económicas y sociales. Descarga en pdf.


Eric S. Raymond, La Catedral y El Bazar.

Traducción del Artículo The Cathedral and the Bazaar, de uno de los fundadores del movimiento Open Source. Descarga en pdf (me olvidaba disculparán la etiqueta de edición añadida) y el original en pdf también.


Convertir un archivo a un String en base64 y viceversa - Objective C

Convertir un archivo a un String en base64 y viceversa - Snippet Objective C

Bueno se que este tópico no viene mucho al caso en este blog, cuyo objetivo inicial fue otro. Pero ya que no encontraba donde colocarlo pues ni modo.

Como lo referencia el título de la entrada esta corresponde con un Snippet para Objective C, mediante el cual podemos codificar un archivo de cualquier tipo de extensión en un String en Base64, y posteriormente mediante el mismo String codificado recrear de nuevo el mismo archivo.

Bueno sin más que acotar, les dejo con los métodos creados para esta tarea:

El primer método "fileToBase64StringFromPath" recibirá un path del archivo a crear mediante NSData procesara el archivo y lo codificara en Base64 para retornarlo como NSString.
/**
 *  Generar un string en base64 a partir de un archivo
 *  @Param filePath NSString que indica el path del archivo a ser usado
 *  @Returns NSString devuelve una cadena de strings en formato base64 del archivo
 */
- (NSString *)fileToBase64StringFromPath:(NSString *)filePath {
    NSData* contentDataFile = [[NSData alloc] initWithContentsOfFile:filePath];
    NSString* base64String = [contentDataFile base64EncodedStringWithOptions:0];
    return base64String;
}
El segundo método "fileFromBase64String" recibirá el String en Base64 y el path o ruta del archivo a generar y de manera similar a la anterior mediante NSData creamos el archivo respectivo, retornando si la tarea fue completada o no usando un Bool.
/**
 * Generar un archivo a partir de un string en base64
 * @Param base64String NSString que contiene el string en base64
 * @Param filePath NSString que indica el path del archivo a ser creado
 * @Returns Bool devuelve si el archivo fue creado o no
 */
- (BOOL)fileFromBase64String:(NSString *)base64String filePath: (NSString *)filePath{
    NSData* contentDataFile = [[NSData alloc] initWithBase64EncodedString:base64String options:0];
    return [contentDataFile writeToFile:filePath atomically:YES];
}
Aclarando un tema para el siguiente código, este proyecto fue probado sobre una aplicación móvil por lo que para la invocación a los métodos creamos el path respectivo a la carpeta Documents de la app para posteriormente añadir los nombres de los archivos a ser procesados.
NSString *fileName = @"archivo.pdf";
NSString *fileNameCopy = @"archivocopy.pdf";
NSString* documentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *base64String = [self fileToBase64StringFromPath:[[documentsDir stringByAppendingString:@"/"]stringByAppendingString:fileName]];
[self fileFromBase64String:base64String filePath:[[documentsDir stringByAppendingString:@"/"]stringByAppendingString:fileNameCopy]];
PD: No olvidar colocar el archivo en la ruta respectiva para que pueda ser procesado a Base64. Pueden imprimir el Path del mismo con:
NSLog(@"Directorio: %@", documentsDir);