{ 2 comments }
From the category archives:
Programación
Debo reconocer que los libros que estoy poniendo en este post están tan obsoletos que seguramente no tengan otro lugar que la basura. Sin embargo, son libros que quiero mucho y conservo con cariño porque en su época me enseñaron muchas cosas interesantes o incluso con su ayuda pude salir bien librado en mis trabajos.
|
Lenguaje de Máquina del Dragon
Con este libro aprendí mis rudimentos de lenguaje ensamblador por el año de 1985. Estaba orientado a usuarios domésticos por lo que realmente fue muy iluminador a mis 14 años. Otra cosa muy interesante que es digna de mencionar de este libro, es que incluye un útil desensamblador escrito en BASIC en uno de sus apéndices. |
|
Network Programming in C
Este libro lo quiero muchísimo porque en 1994 hizo realidad uno de mis sueños: hacer un programa que comunicara dos computadoras. Explicaba a detalle los protocolos IPX, SPX y NetBIOS que eran los básicos en aquellos tiempos. El libro incluía un diskette con aplicaciones, entre ellas un interesante programa de correo electrónico. |
|
The TTL Data Book
Este libro realmente no sé si está obsoleto, pero si es muy viejo (1978) y ya no lo uso. Era de mi papá y yo lo empecé a consultar desde 1986 y durante los siguientes 10 años no paré de buscar en él los diagramas de los circuitos integrados para mis proyectos de electrónica. Sin duda, uno de los libros que más he usado. |
{ 0 comments }
En este post, iré poniendo mis libros favoritos que traten sobre programación y computadoras. Desafortunadamente, muchos de ellos se irán haciendo obsoletos con el paso del tiempo. Los trataré de mantener conforme sigan vigentes.
|
Sistemas Emergentes
Este libro de Steven Johnson nos explica como la naturaleza se organiza para crear comportamientos inteligentes en sus elementos primitivos y los más "evolucionados" como el hombre. Se discute como se emergen conductas inteligentes ya sea con los individuos de una especie o millones de ellos en comunidad; lo que antes se conocía como "inteligencia colectiva" y que se aprecia ya sea en un hormiguero o en metrópolis como la Ciudad de México. Por supuesto que este entendimiento es aplicable a la informática y nos explica como es posible que dentro del caos del Internet, sitios como la Wikipedia que esta dispuesta al libre albedrío de los internautas sea ahora una de nuestras fuentes de conocimiento más valiosa y fracasen esfuerzos como su contra-parte Encarta. Hay otros ejemplos como el Internet vs MSN ¿A la larga pasará lo mismo con aplicaciones cerradas con el surgimiento del software libre? Las aplicaciones son tremendas en video-juegos y han funcionado para recomendar libros en sitios como Amazon. Además el libro tiene mucha historia de personajes claves como Turing. Altamente recomendado. |
|
Gödel, Escher, Bach - Una eterna trenza dorada
Este libro lo conocí gracias a mi hermano, que lo estaba leyendo él cuando estudiaba en la universidad. Me intrigó y lo leí. Conforme pasaba las hojas, descubría muchas cosas que ya intuía de la naturaleza y otras que modificaron mi forma de ver el mundo desde esos días. Con él comprendí los alcances de la ciencia y los paralelismos de las leyes de la naturaleza en campos tan distantes como matemáticas, budismo zen, música, programación e Inteligencia Artificial. Desafortunadamente, el tiempo no pasa en vano y ya hay muchos avances tecnológicos que por obvias razones no se tocan y algunos de los conocimientos se sienten un poco atrasados para los nuevos lectores. Aún así lo considero un excelente libro. |
|
Los tres pilares del zen
Este libro no es propiamente de programación, pero si de una filosofía que tiene métodos de entrenamiento que pueden ser muy útiles para las personas que necesitan abstraer la esencia de las cosas o que necesitan acallar los pensamientos que distraen y conseguir así una mente ordenada. Philip Kapleau logra con éxito explicar e introducirnos al zen a nosotros los profanos, sin desviarnos de lo que realmente es y sin dar falsas imágenes eruditas o seudocientíficas. Debo confesar que además de las técnicas de concentración, su filosofía me gusta mucho porque tiene muchas coincidencias con mi propia cosmovisión. |
|
Sistemas Operativos
La primera edición de este libro la leí aproximadamente en el año de 1992 y me permitió entender como funcionaba la multitarea y los sistemas de manejo de memoria como la paginación. Afortunadamente ya había visto estos conceptos en acción desde 1988 con mi Color Computer porque el MS-DOS que use después no llegaba a tanto. Hice algunos pequeños experimentos con el procesador Z80 que usaba en aquella época para probar algunos de los conocimientos adquiridos. Desafortunadamente, este libro ya no esta a la venta y es una verdadera pena porque el autor explica los conceptos de una manera sencilla. Quizás las nuevas técnicas para construir kernels lo opacarían hoy en día, pero tengo mis dudas porque estoy seguro que su valor sigue siendo vigente para entender los conceptos y para el uso de micro-controladores que no requieren hacer un Linux desde cero. |
|
Computer Organization and Design
Otro libro para conocer los adentros de las estas máquinitas que cambiaron al mundo. Es un excelente libro introductorio y contiene toda la información necesaria no sólo para entender los partes de las computadoras sino también para diseñarlas. Gracias a este libro yo construí mi propio microprocesador. Incluye apéndices y un CD con mucha información extra de igual valor a la de este excelente libro. |
|
The C++ Programing Language
Sin duda, este es uno de los mejores libros para comprender al lenguaje C++. Aunque no sea propiamente para principiantes; el mismo creador del lenguaje nos explica su filosofía y las razones detrás de su diseño con justificaciones y ejemplos. Sólo por esto, vale la pena su lectura. Además es un excelente manual donde se puede consultar hasta el aspecto más oscuro o extraño que se le pueda ocurrir al programador más inquieto. |
|
Data Structures with C++ using STL
A estas alturas del partido, este libro ya está algo obsoleto, no es propiamente de STL y quizás el estilo de programación de los autores no sea el mejor. Pero, es un tutorial que nos enseña los principios de las estructuras de datos y al mismo tiempo tiene los ejemplos más comunes de la STL. Yo a la fecha, siempre lo tengo en mi escritorio y no es raro que lo este consultando constantemente. |
{ 5 comments }
Ciudad Konec-t fué uno de los proyectos en el cual participé por mi paso por Interalia (8 años). Fue muy divertido colaborar en la programación de la parte del servidor y hacer que soportara a más de 2600 usuarios simultáneos con tan solo dos maquinitas.
Las imagenes anteriores son de la primera versión. Después le cambiaron los fondos a un diseño más actual y más 3D.
Actualización
Fue una campaña publicitaria muy exitosa, duró desde octubre de 2004 a finales de Diciembre de 2009 y se extendio a varios paises latinoamericanos.
{ 2 comments }
Una clase "quick and dirty" para crear hilos en cajas windows.
Encabezado:
#include <windows.h>
class CThread {
public:
// Constructor por defecto:
CThread(void);
// Destructor virtual
virtual ~CThread(void);
// Esta función inicia el hilo:
bool start();
// Esta función se debe sobrecargar con lo que tiene que hacer el hilo:
virtual void run() = 0;
// Esta función espera a que el hilo se detenga. Se debe llamar en el destructor de la clase derivada.
void join();
private:
unsigned long id;
void *threadHandle;
static DWORD WINAPI entryPoint( void *pthis );
};
Archivo cpp:
#include "thread.h"
CThread::CThread(void) : threadHandle( NULL ) {
MessageBox( NULL, "CThread::CThread", "Aviso", MB_OK );
}
DWORD WINAPI CThread::entryPoint( void *pthis ) {
CThread *pt = ( CThread * ) pthis;
pt -> run();
return 0;
}
bool CThread::start() {
threadHandle = CreateThread( NULL, 0, ( LPTHREAD_START_ROUTINE ) entryPoint, this, 0, &id );
return true;
}
void CThread::join() {
if ( threadHandle != NULL )
WaitForSingleObject( threadHandle, INFINITE );
}
CThread::~CThread(void) {
MessageBox( NULL, "CThread::~CThread", "Aviso", MB_OK );
if ( threadHandle != NULL )
CloseHandle( threadHandle );
}
Como se dislumbra de los comentarios, para utilizarla es necesario crear una clase que herede de Cthrean y sobrecargar la función run con lo que debe hacer nuestro hilo.
{ 0 comments }

