From the monthly archives:

September 2008

Día y noche en Canadá

by Jorge Machin on September 29, 2008 · 0 comments

in Personal, Viajes, videos

Así es como se veía el paisaje desde el hotel cuando fuí a Canada en el 2004.

Algunas fotos las podemos ver aquí.

{ 0 comments }

Snapshot: Hilos en C++ (Windows)

by Jorge Machin on September 26, 2008 · 0 comments

in C/C++, Programación, Snapshots, Windows

Una clase "quick and dirty" para crear hilos en cajas windows.

Encabezado:

#pragma once

#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 "StdAfx.h"
#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 }

Snapshot: Obteniendo archivos HTTP en C++

by Jorge Machin on September 25, 2008 · 0 comments

in C/C++, Programación, Snapshots

Ya es común para un programador, no solamente el tener que leer archivos del disco duro local, sino también leerlos desde un sitio web; Ya sea un web service, una imagen o un XML. Afortunadamente la libreria libcurl resuelve el problema con muy pocas líneas de código.

En este post, pongo un pequeño ejemplo de como se usaría en C++ para pequeños programas de apoyo:

#include <string>
#include <iostream>

#include "curl/curl.h" 

class URLFile {

   public:

      std::string get( const std::string &URL ) {

         // Inicialización:

         CURL *curl = curl_easy_init();
         curl_easy_setopt( curl, CURLOPT_URL, URL.c_str() );
         curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION, &URLImage::write_data);
         curl_easy_setopt( curl, CURLOPT_WRITEDATA, &data);

         // Obtén el archivo:
                       
         CURLcode result = curl_easy_perform(curl)

         // Al final hay que limpiar todo:

         curl_easy_cleanup(curl);

         if (result != CURLE_OK)  {

            return "";

         }

         return data;

      }

   private:
 
      // Variable que usamos para guardar el contenido del archivo:

      std::string data;

      // Callback que utiliza curl:

      static size_t write_data( char *buffer, size_t size, size_t nmemb, void *userp ) {

         int len = size * nmemb;
 
         if ( buffer != NULL ) 

            ( ( std::string * )  userp )->append( buffer, len )

         return len;

      }
 
};

int main() {

   URLFile file;

   std::string test = file.get( "www.machin.com.mx" );

   std::cout <<"Test:" <<std::endl <<test <<std::endl;

   return 0;

}

{ 0 comments }

Siluetas en el cielo

by Jorge Machin on September 16, 2008 · 0 comments

in Fotografías, Personal



Últimamente he visto volar a algunos de ellos fuera del 16 de septiembre.

{ 0 comments }

Mis películas sobre gastronomía

by Jorge Machin on September 1, 2008 · 10 comments

in Gastronomía, Películas, Personal

Bueno, no sólo gastronomía, también vinos, chocolates, repostería, arte culinario y todo lo que tenga que ver con el buen y mal comer.


Willy Wonka y la fabrica de chocolate - 1971
Willy Wonka y la fabrica de chocolate - 1971The Big Feast - 1973Tampopo - 1985El festín de Babette -1989El cocinero, el ladrón, su mujer y su amante - 1989Delicatessen - 1991Como agua para chocolate - 1992Comer, Beber y Amar - 1994El festín chino - 1995Beso francés - 1995La gran noche - 1996American Cuisine - 1998Seducción a la carta - 1999Chocolate - 2000Dinner Rush - 2000Mujeres arriba - 2000Hannibal - 2001Sopa de tortilla - 2001Vatel - 2000Bella Martha - 2002Corazón de melón - 2003Magic Kitchen - 2003Entre copas - 2004Charlie y la fábrica de chocolates - 2005Ratatouille - 2007Sin reservas - 2007Malos habitos - 2007Super Engordame - 2007Recetas de Amor  - 2008Sweeney Todd - 2008

Obviamente no están todas las que son, ni son todas las que están.

{ 10 comments }