<$BlogRSDURL$>

1.04.2006

Cerrado 

Pues eso, por motivos que explicaré personalmente a quien se muestre interesado, cierro el blog.
Un saludo a todos, estuvo bien mientras duró. Además he aprendido muchas cosas que pienso aplicar la próxima vez que habra un blog.

12.24.2005

Y tal y cual... 

Pues resulta que hay momentos en la vida en que soy especialmente consciente de que vivo momentos únicos. Son pocos, pero son los que más me gustan, porque sé que estoy viviendo algo que no se volverá a repetir nunca y lo vivo a tope. Lo cual es una gilipollez, porque aproximadamente el 99% de las cosas que vivimos son únicas y no se repiten nunca. Pero siempre hay esos momentos, como la cena al final de Sleepers, y no es porque vayan a matar a la mitad de la cuadrilla por ser unos balas perdidas, si no sencillamente por esa sensación, que es lo que lo hace único.
En fín, feliz navidad a todos.

12.16.2005

Some Day, Some Night 

Some live, some die, the way of the samurai.
Pues bueno, llevo una semana de total, absoluta y pura locura, caos y descontrol. Mi vida parece un jodido buffer circular de trabajo, en cuanto parece que voy a poder relajarme me sale algo nuevo y toca volver a currar. Lo cierto es que tengo gran parte de culpa, últimamente no llevo las cosas muy ordenadas, voy siguiendo una estrategia "first to come, first to be served" y claro, eso pasa factura.
Pero bueno, me he propuesto enmendarme y que no pase ni media más, a partir de ahora, planificación y trabajo duro y contínuo, que me lo juego todo (y digo todo) de aquí a Febrero.
Lo bueno, bueno, es que el otro día hablé con mi tutor de proyecto y por fín he desarrollado algo más el proyecto. Después de estar empantanado a lo largo de tres meses con el maldito Enhydra Shark y no conseguir hacerlo tirar ni a tiros (y que por cierto, los desarrolladores mienten más que hablan, análisis pormenorizado en subsiguientes posts), decidí cambiar el servidor por mis santos cojones. Dicho y hecho, ayer le vendí la moto (no hizo falta mucho, el programa era una escoria) y a partir de ahora tiraremos de OpenWFE, que a los 10 minutos estaba funcionando felizmente.
Así que los mecanismos vuelven a estar en marcha. A ver en qué queda todo ésto.

Escuchando: Como rasca el disco duro de Talika... cosa mala

12.13.2005

Ask No Quarter 

Si tuviera que escribir una biografía, creo que marcaría como fundamental un año concretamente. No sería el laureado año de mis triunfos o de mis glorias, tampoco sería el año en el que las penurias marcaron mi carácter y lo forjaron al rojo.
Sería el año, o más bien dicho, curso 2001/2002. No tuvo nada en especial, o al menos más especial que otros años (todos tienen su cosa, no?). Sin embargo, para bien o para mal, fue el año de la masa crítica, llevaba arrastrando muchas cosas, demasiadas, dando la cara y fue cuando me tuve que girar y mirar hacia dentro. Hacerles frente. A esas y a otras nuevas. Creo que fue el año en el que me ví obligado a aceptar cosas y a incorporarlas en mi persona. Me dí cuenta de que hasta ese momento había sido un privilegiado, simplemente por mantener la ilusión en ciertos hechos, una ilusión que me había durado mucho más que a otra gente. Pero que ya no podía pedir cuartel, porque nadie me lo iba a conceder. Ni siquiera yo estaba dispuesto a hacerlo por mí mismo. La sinceridad (igual que la caridad) empieza por uno mismo y ni yo hubiese dado un pavo por mí. Claro que tampoco lo hago hoy en día.
Viéndolo desde alguna distancia, externamente pueda parecer que no he cambiado mucho, pero sí que lo he hecho, yo lo sé y eso es lo que marca la diferencia, lo que yo veo sobre mí mismo.
Me guste o no, tuve que arrancar un pedazo del año de mí mismo, como cuando vomitas en mitad de la borrachera porque sabes que si lo dejas seguir será peor, pero no puedes evitar preguntarte si no hubieses podido seguir y que no hubiese pasado nada y no haber echado el mal rato.
Aún hoy no puedo evitar reflexionar a menudo sobre todo lo que aconteció, y sé que no ví venir las oportunidades... ni marcharse. No supe subirme al autobús y eso me marcó, para bien o para mal, todo lo que hice ese año dando palos de ciego (como siempre que miras hacia atrás, todo son palos de ciego) fue lo que me ha hecho como soy, lo que más me ha influido en mi forma de ver muchas cosas. Lo que ocurrió y mi forma de ver ahora lo que ocurrió.

Escuchando: Tool - No Quarter

12.04.2005

Obviedades 

Una de las cosas que más me joden de mi madre, es su puta manía de decir las mayores obviedades del mundo y creerse muy lista, por ejemplo, después de dar el golpe con el coche: "has visto como conducir no es tan fácil?".
Son cosas, que no sé si por una reacción condicionada a mi madre o por qué, pero me sacan de quicio, me matan y la respuesta es inmediata: "No me jodas..."
Últimamente, mi señora madre lleva así toda una semana, así que la situación casera se aproxima rápidamente a lo que se conoce como "guerra total".
Groucho Marx tenía una frase que era algo así como: "Más vale parecer estúpido y permanecer callado que abrir la boca y confirmar las sospechas", o lo que es lo mismo, que para decir gilipolleces mejor te quedas callado. Y eso que hablo, y hablo mucho, pero tanto como hablo me cuido en muchas ocasiones de decir muchas cosas, o según que otras. El saber callar es aún más virtud que el saber hablar, por lo visto.

Escuchando: Nine Inch Nails - Everyday is Exactly the Same

11.11.2005

Mañana 

Se suele decir que mañana será otro día.
Otro día con sus esperanzas, sus fraudes, sus sorpresas, sus decepciones.
Mañana veremos.

Escuchando Mozart - Concierto para piano y orquesta número 23

11.07.2005

Reactor Leak 

Pues lo he decidido, en el segundo cuatrimestre vuelvo al karate.
Después de año y pico en el Sato con miles de actividades a mi disposición y el turno completo, me he dado cuenta que no hago nada de nada. El exceso de libertad y de oferta es la perdición, si no tienes obligaciones, al final no terminas yendo a nada, si no tienes una hora fija, si puedes ir a cualquiera no vas porque puedes ir en otro momento, cuando sea.
Pero claro, así es con todo, ¿para qué vas a echar cuenta de lo cómodo que te resulta tu cuarto, tu vida si precisamente es una comodidad que tienes a diario y que no te cuesta nada? Digo yo que habría que apreciar las cosas un poco más, y eso en cierta manera enlaza con el karate, que aporta cierta estabilidad, distanciamiento y disciplina a mi vida como nada más hace.
Durante mucho tiempo acaricié la idea de dedicarme al karate y nada más, la verdad que me hubiese gustado bastante, dedicarme simplemente a pulir mi arte, continuamente, como hice un verano cuando iba a las dos clases seguidas y por la mañana entrenaba en la sala de máquinas del gimnasio. Pero seamos sinceros, ese tipo de cosas ya no son practicables, ya no se llevan y tienes que hacer algo, cualquier cosa, lo que sea para ganarte la vida de "forma útil a la sociedad" (que digo yo, ¿acaso hay algo más útil que quitarse del medio y no ser ni un motor ni un estorbo?). Así pues el asunto, me tendré que dedicar simplemente a ello en mi tiempo libre, con los ratos que tenga disponibles y poco más, eso sí aprovechándolos al máximo y tratando de no olvidar en el día a día cuanto me gusta y lo que significa para mí, que como al parecer, con todo, es la clave de las cosas.

Escuchando: Juno Reactor - Hotaka

10.14.2005

Only for Freaks 

Bueno, pues ésta es la evolución del informático medio en un programa simple que consiste en presentar por pantalla "Hello World". Ahí os va, eso sí, a algunos niveles es solo apto para gente muy freak.

Instituto (Basic)

10 PRINT "HELLO WORLD"
20 END

Primer Año de Universidad (Pseudocódigo)

program Hello(input, output)
begin
writeln('Hello World')
end.

Año Avanzado en la Universidad

(defun hello
(print
(cons 'Hello (list 'World))))

Nuevo Profesional

#include
void main(void)
{
char *message[] = {"Hello ", "World"};
int i;

for(i = 0; i < 2; ++i)
printf("%s", message[i]);
printf("\n");
}

Profesional Experimentado

#include
#include

class string
{
private:
int size;
char *ptr;

string() : size(0), ptr(new char[1]) { ptr[0] = 0; }

string(const string &s) : size(s.size)
{
ptr = new char[size + 1];
strcpy(ptr, s.ptr);
}

~string()
{
delete [] ptr;
}

friend ostream &operator <<(ostream &, const string &);
string &operator=(const char *);
};

ostream &operator<<(ostream &stream, const string &s)
{
return(stream << s.ptr);
}

string &string::operator=(const char *chrs)
{
if (this != &chrs)
{
delete [] ptr;
size = strlen(chrs);
ptr = new char[size + 1];
strcpy(ptr, chrs);
}
return(*this);
}

int main()
{
string str;

str = "Hello World";
cout << str << endl;

return(0);
}

Programador Maestro

[
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
]
library LHello
{
// bring in the master library
importlib("actimp.tlb");
importlib("actexp.tlb");

// bring in my interfaces
#include "pshlo.idl"

[
uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
]
cotype THello
{
interface IHello;
interface IPersistFile;
};
};

[
exe,
uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
]
module CHelloLib
{

// some code related header files
importheader();
importheader();
importheader();
importheader("pshlo.h");
importheader("shlo.hxx");
importheader("mycls.hxx");

// needed typelibs
importlib("actimp.tlb");
importlib("actexp.tlb");
importlib("thlo.tlb");

[
uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
aggregatable
]
coclass CHello
{
cotype THello;
};
};


#include "ipfix.hxx"

extern HANDLE hEvent;

class CHello : public CHelloBase
{
public:
IPFIX(CLSID_CHello);

CHello(IUnknown *pUnk);
~CHello();

HRESULT __stdcall PrintSz(LPWSTR pwszString);

private:
static int cObjRef;
};


#include
#include
#include
#include
#include "thlo.h"
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"

int CHello::cObjRef = 0;

CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{
cObjRef++;
return;
}

HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString)
{
printf("%ws
", pwszString);
return(ResultFromScode(S_OK));
}


CHello::~CHello(void)
{

// when the object count goes to zero, stop the server
cObjRef--;
if( cObjRef == 0 )
PulseEvent(hEvent);

return;
}

#include
#include
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"

HANDLE hEvent;

int _cdecl main(
int argc,
char * argv[]
) {
ULONG ulRef;
DWORD dwRegistration;
CHelloCF *pCF = new CHelloCF();

hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

// Initialize the OLE libraries
CoInitializeEx(NULL, COINIT_MULTITHREADED);

CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
REGCLS_MULTIPLEUSE, &dwRegistration);

// wait on an event to stop
WaitForSingleObject(hEvent, INFINITE);

// revoke and release the class object
CoRevokeClassObject(dwRegistration);
ulRef = pCF->Release();

// Tell OLE we are going away.
CoUninitialize();

return(0); }

extern CLSID CLSID_CHello;
extern UUID LIBID_CHelloLib;

CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
0x2573F891,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};

UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
0x2573F890,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};

#include
#include
#include
#include
#include
#include "pshlo.h"
#include "shlo.hxx"
#include "clsid.h"

int _cdecl main(
int argc,
char * argv[]
) {
HRESULT hRslt;
IHello *pHello;
ULONG ulCnt;
IMoniker * pmk;
WCHAR wcsT[_MAX_PATH];
WCHAR wcsPath[2 * _MAX_PATH];

// get object path
wcsPath[0] = '\0';
wcsT[0] = '\0';
if( argc > 1) {
mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
wcsupr(wcsPath);
}
else {
fprintf(stderr, "Object path must be specified\n");
return(1);
}

// get print string
if(argc > 2)
mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
else
wcscpy(wcsT, L"Hello World");

printf("Linking to object %ws\n", wcsPath);
printf("Text String %ws\n", wcsT);

// Initialize the OLE libraries
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);

if(SUCCEEDED(hRslt)) {


hRslt = CreateFileMoniker(wcsPath, &pmk);
if(SUCCEEDED(hRslt))
hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);

if(SUCCEEDED(hRslt)) {

// print a string out
pHello->PrintSz(wcsT);

Sleep(2000);
ulCnt = pHello->Release();
}
else
printf("Failure to connect, status: %lx", hRslt);

// Tell OLE we are going away.
CoUninitialize();
}

return(0);
}

Aprendiz de Hacker

#!/usr/local/bin/perl
$msg="Hello, world.\n";
if ($#ARGV >= 0) {
while(defined($arg=shift(@ARGV))) {
$outfilename = $arg;
open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n";
print (FILE $msg);
close(FILE) || die "Can't close $arg: $!\n";
}
} else {
print ($msg);
}
1;

Hacker Experimentado

#include
#define S "Hello, World\n"
main(){exit(printf(S) == strlen(S) ? 0 : 1);}

Hacker Curtido

% cc -o a.out ~/src/misc/hw/hw.c
% a.out

Gurú Hacker

% echo "Hello, world."

Nuevo Jefe

10 PRINT "HELLO WORLD"
20 END

Jefecillo

mail -s "Hello, world." bob@b12
Bob, could you please write me a program that prints "Hello, world."?
I need it by tomorrow.
^D

Gran Jefe

% zmail jim
I need a "Hello, world." program by this afternoon.

Jefe Ejecutivo

% letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout

Tomado de aquí.

EscuchandoJuno Reactor - Mars

9.22.2005

Five Years Later 

Hoy he hecho mi último exámen de primero. Muchos ya sabeis como me he currado la jodida FFI (Fundamentos Físicos de la Informática), para los que no, os diré que llevaba tres años matriculándome y todavía no me había presentado... precisamente porque me gusta la física y reniego de la forma de impartirla de ese departamento.
Sin embargo, dado que no tenía otra para Septiembre y que me he pegado posiblemente el mejor verano de mi vida (dejaremos para posteriores posts el análisis del mismo, y por supuesto la continuación de las Crónicas de BCN), me hubiese parecido de poca vergüenza no preparármela. Así pues empecé un día 1 de Agosto y terminé un 22 de Septiembre, después de haber utilizado 6 libros, unos apuntes de clase de 200 folios (400 carillas) y haberme currado mis propios "resúmenes" de 50 folios, haber hecho todos los ejercicios, todos los exámenes del 2003 para acá y hasta haber llegado a razonar el jodido pozo de potencial infinito y la teoría de bandas.
Vamos, creo poder decir, con justicia, que me lo he currado y si he tenido algo de suerte creo que me la merezco (al menos un poco por una vez).
Por cierto, entre todo el despotricamiento y la enumeración de apuntes y mierdas varias se me ha olvidado decir que creo que he aprobado. Me ha salido un exámen elegante, conciso y muy claro. Además de estar bien, claro :P
Sin embargo, al salir del exámen y mientras estaba contento porque por fín he acabado con primero y ya estoy más cerca de acabar (a tiro de 8 asignaturas más proyecto), pero en mitad de tanta felicidad, exaltación y dolor de cabeza, me ha asaltado un pensamiento.
La semana que viene hace 5 (cinco) años que entré en la universidad.
Y al más puro estilo Dune, giré sobre mí mismo y contemplé en perspectiva todos éstos últimos cinco años de mi vida, como si estuviera en la loma de una colina y mi pasado fuera un valle a mis pies.
He visto como todos los afluentes, jóvenes y revueltos se reunían para formar un único curso, que para bien o para mal es el que llevo ahora mejor o peor. En éstos cinco años he hecho muchas cosas, algunas mejores y otras peores, pero hay muy pocas de las que me avergüence, y éstas son siempre las mismas. Por ello, y aunque sé que quizás nunca leais ésto; perdón a todos, a todos los que hice daño y llevé por delante mientras buscaba mi lugar en toda ésta jodienda.
No tengo más que decir, excepto que quizás, como Martín escribió no hace mucho "el grunge ya no es lo que era".

Escuchando: Wagner - Die Walküre (Daniel Barenboim)

9.08.2005

Por fín, queridos amigos, por fín... 

Pues nada, tras dos meses de aprendizaje intensivo de php, ya tengo listo el código fuente del blog, solo queda depurarlo un poco (hacerlo más legible) y ponerlo bonito.
Espero tenerlo todo listo para un par de semanas y que podais ver la Beta.

Escuchando:Los Petersellers - Si es gratis

This page is powered by Blogger. Isn't yours?

Weblog Commenting and Trackback by HaloScan.com

Who Links Here