martes, 12 de junio de 2012

Ordenador vs computador

Llevo 14 años organizando archivos, para computar números saqué la calculadora solar durante ese periodo.

domingo, 10 de junio de 2012

Inforvudú: Win7 y caracteres no latinos

Ventana de lenguaje no Unicode
Jai chinai chinita
Supuestamente desde Windows Vista, por defecto ya viene instalado el soporte para caracteres no latinos (más bien asiáticos, porque el griego, árabe y el cirílico no suele dar muchos problemas). Con Vista la verdad es que no tuve ningún problema, faltaban caracteres de lenguajes y otros símbolos que nunca ví ni usé excepto en páginas especializadas en Unicode.

Podía ver los símbolos de la página de Wikipedia de la (¿ex?)mujer de Frank de la Jungla o ver el nombre de un archivo con caracteres chinos/japoneses en el disco duro (sobre todo música, otra cosa es que el Evil Player no me lo reprodujera por esa cuestión, aunque otros programas sí que lo hacían sin problema)

Sin embargo con Windows 7 Professional 64 bits, me sucede un caso de inforvudú singular: En las páginas web el Unicode funciona sin ningún problema, pero en cualquier otro programa o el explorador se me ven los dichoso cuadraditos (incluso también en la barra de título del navegador).

También la Informagia que hay que hacer para que se puedan ver se las trae... buscando por ahí en los foros de Micosoft he encontrado dos posibles soluciones. Agarraos a cada una más cutre y desesperante para clamar al cielo:
  1. Cambiar el lenguaje por defecto para los programas no Unicode a los distintos lenguajes que dan problemas:
    Se haría yendo a Panel de Control / Configuración regional y de idioma / Administrativo / Cambiar configuración regiona del sistema y en esa ventana seleccionar Chino por ejemplo y aceptar los cambios.

    De entrada cada vez que se cambia el idioma hay que reiniciar, y es un coñazo. Pero la informagia es que si tras reiniciar vuelves a ponerlo en español los caracteres siguen funcionando como si no ha pasado nada. Para rizar el rizo, de hecho se puede hacer el combo: Chino -> Tailándes -> ... -> Español y volverán a funcionar tanto los de tailandés como los chinos y otros que te hayas recorrido.

    Pero claro, no todo va a ser magia buena... Windows 7 se puede vengar de un momento a otro (tras actualizar el sistema o instalar algún programa) y te vuelve a mostrar los cuadraditos sin más. Aunque posiblemente te hayas enfadado más porque te ha jodido las asociaciones de las extensiones de archivos a programas "gratis legales"
  2. Tener en el escritorio un archivo o carpeta que contenga alguno de estos símbolos:
    Me cagüen todo, solo faltaba que se tuviera que introducir el código Konami.

Realmente creo que el problema debe estar con la caché de fuentes de texto... pero aún así cojines, sino se encuentra en la caché búscalo en el disco duro hostias...

Kanji de Cerdo (豕) + Kanji de Corona (宀) = 家 ... Casa

miércoles, 6 de junio de 2012

Utilidad de Chixpy: FTerraChat (Obsoleta)

Meh, como hace mucho que no escribo voy a poner el código fuente de una pequeña utilidad que acabo de descubrir que ha quedado obsoleta. Hacía más de 7 u 8 meses que no la usaba, así que no sé cuando dejo funcionar... Posiblemente si me animo suba pequeños códigos fuente de programitas triviales que he ido haciendo.

El código está escrito en Object Pascal con Lazarus y fue probado en Linux. En principio no debería ningún problema por compilarlo en Windows (u otro SO), pero por razones obvias que luego verás se hizo en Linux.

El programa: FTerraChat


Pues digamos que el programa lo único que hacía era dar formato a la conversación UDP (o TCP, I don't remember) generada entre el cliente de IRC de Terra y los servidores de IRCHispano. Nada más complicado, excepto para los que les ha sonado a chino la anterior oración XD.

Intentando explicarlo de forma más sencilla: Cuando alguien entra al chat de Terra, los textos enviados y recibidos tenían el siguiente formato:
:ALADIN!la641hm@BA5L1y.CWhlKX.virtual PRIVMSG PARDILLO:Me tengo que ir
:Marymar_5!la641hm@B6fxQ3.DRMh13.virtual JOIN :#mas_de_40
:JOVENXMADURA_MADRID!mDc@BU9aIM.AEIp50.virtual NICK :zorra50
:invitado-337326!6A0B@DbBIXG.D2wdID.virtual JOIN :#mas_de_40
:invitado-633896!d@CQzhbI.AgXaWl.virtual NICK :Antonio_
:luz38!ce7g@BA5L1y.AH03TI.virtual PRIVMSG #mas_de_40 :hola hola, alguien de castellon
:BecquerParis!s@BR7GQQ.CWhlKX.virtual PRIVMSG #mas_de_40 :alguien que le guste la poesia,romanticismo y paris?privados
PRIVMSG ALADIN :adios
:maria47!c7@Bzlt96.AH4dq0.virtual QUIT :Terra Chat

Ough, no proguntéis de cuando ni de quién lo he sacado... y el cómo... es tema aparte e interesante, porque obviamente no es mío ;-D. Entonces localizando esa conversación es un coñazo intentar seguirla si que me hice el programita para que limpiara un poquito y separara los canales abiertos (y privados >:-Q ) dejándolo:
#mas_de_40

         <luz38> hola hola, alguien de castellon
  <BecquerParis> alguien que le guste la poesia,romanticismo y paris?privados

----- -----

ALADIN

          <ALADIN> Me tengo que ir
        <PARDILLO> Adios

Que a pesar de posibles simbolillos para colores, puto analfabetismo en general y demás mariconadas, es más legible a gran escala. PARDILLO es el nombre para referirse a la persona que estaba a este lado del chat. El programa también tenía previsto poder manejar otros evento si es necesario como entradas, salidas, cambios de nick, etc; pero en verdad tan solo era reñadir morralla al asunto.

El código


program FChatTerraExe;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes, SysUtils, CustApp, strutils
  { you can add units after this };

const
  Espacio = 25;
  NPardillo = '<PARDILLO>';
type

  { TFChatTerra }

  TFChatTerra = class(TCustomApplication)
  private
    Canales: array of TStringList;

    function GetCanal(Nombre: UTF8String): TStringList;

  protected
    property Canal[Nombre:UTF8String]: TStringList read GetCanal;

    procedure DoRun; override;

  public
    procedure WriteHelp; virtual;

    procedure ProcesarLinea(aLinea: UTF8String);

    constructor Create(TheOwner: TComponent); override;
    destructor Destroy; override;
  end;

{ TFChatTerra }

function TFChatTerra.GetCanal(Nombre: UTF8String): TStringList;
var
  i: Integer;
  NCanales: Integer;
begin
  Result := nil;
  NCanales := Length(Canales);

  i := 0;
  while (i < NCanales) and (Result = nil) do
  begin
    if Canales[i] <> nil then
    begin
      if Canales[i][0] = Nombre then
        Result := Canales[i];
    end;
    Inc(i);
  end;

  if Result = nil then
  begin
    SetLength(Canales, NCanales + 1);
    Canales[NCanales]:= TStringList.Create;
    Canales[NCanales].Add(Nombre);
    Canales[NCanales].Add('');
    Result := Canales[NCanales];
  end;
end;

procedure TFChatTerra.DoRun;
var
  ErrorMsg: String;
  ChatFile: TStringList;
  i: Integer;
  Fecha: TDateTime;
begin
  // quick check parameters
  ErrorMsg:=CheckOptions('h','help');
  if ErrorMsg<>'' then begin
    ShowException(Exception.Create(ErrorMsg));
    Terminate;
    Exit;
  end;

  // parse parameters
  if (HasOption('h','help')) or (Params[1]= '') then begin
    WriteHelp;
    Terminate;
    Exit;
  end;

  if not FileExists(Params[1]) then
  begin
    WriteLn('No se ha encontrado el archivo: ' + Params[1]);
    Terminate;
    Exit;
  end;

  // TODO 2: ¿Cómo se envían las multilíneas?
  ChatFile := TStringList.Create;
  try
    ChatFile.LoadFromFile(Params[1]);
    i:=0;
    while i < ChatFile.Count do
    begin
      ProcesarLinea(ChatFile[i]);
      Inc(i);
    end;
  finally
    FreeAndNil(ChatFile);
  end;

  ChatFile := TStringList.Create;
  try
    i:=0;
    while i < Length(Canales) do
    begin
      ChatFile.AddStrings(Canales[i]);
      ChatFile.Add('');
      ChatFile.Add('----- -----');
      ChatFile.Add('');
      Inc(i);
    end;
  finally
    Fecha := FileDateToDateTime(FileAge(Params[1]));
    ChatFile.SaveToFile(ExtractFilePath(Params[1]) +
      FormatDateTime('yyyymmddhhnnss', Fecha) + ' - Terra.txt');
    FreeAndNil(ChatFile);
  end;

  // stop program loop
  Terminate;
end;

constructor TFChatTerra.Create(TheOwner: TComponent);
begin
  inherited Create(TheOwner);
  StopOnException:=True;
end;

destructor TFChatTerra.Destroy;
begin
  inherited Destroy;
end;

procedure TFChatTerra.WriteHelp;
begin
  { add your help code here }
  writeln('Usage: ',ExeName,' -h');
end;

procedure TFChatTerra.ProcesarLinea(aLinea: UTF8String);

  procedure DoPRIVMSG(aNick, aCanal, aMensaje: UTF8String);
  var
    CurCanal: TStringList;
  begin
    // ¿Es un mensaje privado al pardillo?
    // Si es así el canal es el nick que envía el mensaje
    if (aCanal[1] <> '#') and (aNick <> NPardillo) then
      aCanal := aNick;
    CurCanal := GetCanal(aCanal);
    CurCanal.Add(RightStr(DupeString(' ', Espacio) + '<' + aNick + '> ', Espacio)
      + aMensaje);
  end;

  procedure DoQUIT(aNick, aCanal, aMensaje: UTF8String);
  var
    i: Integer;
    CurCanal: TStringList;
    NCanales: Integer;
  begin
    // TODO 2: Añadir un parametro para añadir esta info
    Exit;
    {
    i := 0;
    NCanales := Length(Canales);
    while (i < NCanales) do
    begin
      CurCanal := Canales[i];
      if CurCanal <> nil then
        if CurCanal[0][1] = '#' then
          CurCanal.Add(DupeString(' ', Espacio) + '<== QUIT <== ' + aNick +
            ' (' + aMensaje + ')');
      Inc(i);
    end;
    }
  end;

  procedure DoPART(aNick, aCanal, aMensaje: UTF8String);
  var
    CurCanal: TStringList;
  begin
    // TODO 2: Añadir un parametro para añadir esta info
    Exit;
    {
    if aCanal[1] <> '#' then
      aCanal := '#' + aNick;
    CurCanal := GetCanal(aCanal);
    CurCanal.Add(DupeString(' ', Espacio) + '<-- PART ' + aNick + ' (' + aMensaje + ')');
    }
  end;

  procedure DoJOIN(aNick, aCanal, aMensaje: UTF8String);
  var
    CurCanal: TStringList;
  begin
    // TODO 2: Añadir un parametro para añadir esta info
    Exit;
    {
    // El JOIN no tiene canal, pero lo indica en el mensaje
    if aMensaje[1] <> '#' then
      aMensaje := '#' + aMensaje;
    CurCanal := GetCanal(aMensaje);
    CurCanal.Add(DupeString(' ', Espacio) + '==> JOIN ' + aNick + ' (' + aMensaje + ')');
    }
  end;

  procedure DoPING(aNick, aCanal, aMensaje: UTF8String);
  begin
    // Por el momento lo ignoramos
    Exit;
  end;

  procedure DoPONG(aNick, aCanal, aMensaje: UTF8String);
  begin
    // Por el momento lo ignoramos
    Exit;
  end;

  procedure DoMODE(aNick, aCanal, aMensaje: UTF8String);
  begin
    // Ignoramos los baneos y cambios de modo, no interesan por el momento
    Exit;
  end;

  procedure DoKICK(aNick, aCanal, aMensaje: UTF8String);
  begin
    // Ignoramos los kick, no interesan por el momento
    Exit;
  end;

  procedure DoNICK(aNick, aCanal, aMensaje: UTF8String);
  begin
    // También ignoramos los cambios de nick...

    Exit;
  end;

  procedure DoACTION(aNick, aAccion, aCanal, aMensaje: UTF8String);
  var
    i: Integer;
    CurCanal: TStringList;
    NCanales: Integer;
  begin
    if aCanal = '' then
    begin
      i := 0;
      NCanales := Length(Canales);

      while (i < NCanales) do
      begin
        CurCanal := Canales[i];
        if CurCanal <> nil then
          if CurCanal[0][1] = '#' then
            CurCanal.Add('[' + aAccion + '] ' + aNick + ' (' + aMensaje + ')');
        Inc(i);
      end;
    end
    else
    begin
      if aCanal[1] <> '#' then
        aCanal := '#' + aNick;
      CurCanal := GetCanal(aCanal);
      CurCanal.Add('[' + aAccion + '] ' + aNick + ' (' + aMensaje + ')');
    end;
  end;

var
  aPos: Integer;
  aNick: UTF8String;
  aAccion: UTF8String;
  aCanal: UTF8String;
  aMensaje: UTF8String;
begin
  // YEEEEP!!! Los mensajes a los canales se realizan con private message
  //   (PRIVMSG) peeeero los canales tienen # y los privados de verdad no.
  // Esto me hace la tarea algo más fácil...

  if aLinea[1] = ':' then
  begin // Es un mensaje normal...
    aLinea := Copy(aLinea, 2, MaxInt);

    // NICK
    // No creo que necesite el !blah@blah.blah
    //   Aunque... vendría perfecto para los cambios de nombre o
    //   cuando uno sale y entra on otro nick.
    aNick := Copy(aLinea, 1, Pos('!', aLinea) - 1);
    aLinea := Copy(aLinea, Pos(' ', aLinea) + 1, MaxInt);
  end;

  // ACCION
  aAccion := Copy(aLinea, 1, Pos(' ', aLinea) - 1);
  aLinea := Copy(aLinea, Pos(' ', aLinea) + 1, MaxInt);

  // CANAL
  if aLinea[1] = ':' then
  begin
    // Algunas acciones no tienen Canal -> ':nick!bla@bla QUIT :Terra Chat'
    aCanal := '';
    aLinea := Copy(aLinea, 2, MaxInt);
  end
  else
  begin
    // Algunas acciones no tienen mensaje: ':nick!bla@bla PART #canal'
    aPos := Pos(' :', aLinea);
    if aPos = 0 then
    begin
      aCanal := Copy(aLinea, 1, MaxInt);
      aLinea := ''
    end
    else
      aCanal := Copy(aLinea, 1, aPos - 1);
      aLinea := Copy(aLinea, aPos + 2, MaxInt);
  end;

  // MENSAJE
  // (Podía haberlo puesto dónde el canal pero así queda más ordenado)
  aMensaje := aLinea;

  if aNick = '' then
    aNick := NPardillo;

  if aAccion = 'PRIVMSG' then DoPRIVMSG(aNick, aCanal, aMensaje)
  else if aAccion = 'QUIT' then DoQUIT(aNick, aCanal, aMensaje)
  else if aAccion = 'PART' then DoPART(aNick, aCanal, aMensaje)
  else if aAccion = 'JOIN' then DoJOIN(aNick, aCanal, aMensaje)
  else if aAccion = 'PING' then DoPING(aNick, aCanal, aMensaje)
  else if aAccion = 'PONG' then DoPONG(aNick, aCanal, aMensaje)
  else if aAccion = 'MODE' then DoMODE(aNick, aCanal, aMensaje)
  else if aAccion = 'NICK' then DoNICK(aNick, aCanal, aMensaje)
  else if aAccion = 'KICK' then DoKICK(aNick, aCanal, aMensaje)
  else DoACTION(aNick, aAccion, aCanal, aMensaje);
end;

var
  Application: TFChatTerra;

{$IFDEF WINDOWS}{$R FChatTerraExe.rc}{$ENDIF}

begin
  Application:=TFChatTerra.Create(nil);
  Application.Title:='FChatTerra';
  Application.Run;
  Application.Free;
end.

Posibilidad de actualización


Puede que algún día me entretenga, analizando el nuevo formato y adapte el programa en consecuencia; ya que no es tan difícil de entender aunque esté algo ofuscado.

miércoles, 7 de diciembre de 2011

Vaya educación

... al responder al teléfono.

  • Hola, ¿está Sinforosa?
  • No, en estos momento no está.
  • ¿Es su marido?
  • ... no, pero... —intentando preguntar quién es.
  • ¿Pero es algún familiar suyo? —me interrumpe de forma rápida—
  • Eso ha usted no le interesa
  • Vaya educación —y cuelga.

Pues vale, eso le pasa por preguntar por mi regla1 sin que yo supiera quién es, supongo que ella haría lo mismo con la suya. Uhm..., valdría para trabajar como teleoperadora.

1 Mi regla de no dar datos que no interesan a desconocidos.

jueves, 17 de noviembre de 2011

Mi casa

...y porqué estoy de mala hostia.

Yo tengo una casa, no muy bonita... pero oye, es lo que hay, las hay peores y tampoco tengo envidia de las mejores. Tampoco es que la pueda cambiar así por así. Hace años, unos 10, comenzaron a salir grietas en la fachada. Eran pequeñitas no le daba mucha importancia, pero al cabo de un par de años aprovechando que vi a un albañil. Nada más verlo dijo sin dudar que era efecto de la dilatación y me recomendó una masilla, que la ponga durante un par de días seguidos y que aguantará un tiempo, y si vuelven a aparecer no cuesta nada taparlas en un momentín.

Buf, mano de santo, se mantenía arreglado un par de meses y si volvían a aparecer en un par de días lo arreglaba. A veces aparecían en otro lugar pero se arreglaban igualmente. Durante este tiempo aparecieron otras en los laterales de la casa, pero al no ser la fachada no estaba seguro de si servía.

Al cabo del tiempo, pues la masilla se me acabó y tuve que visitar a mi amigo el albañil otra vez. Le comente que me había salido en otros lugares de la fachada y que se arreglaban igual de fácil. También le comenté que en los laterales de la casa hay salido algo parecido y que no estaba seguro si también servía la misma masilla. Me dijo que sí y además me recomendó otro producto para las tejas el tejado (que le verdad llevaban mucho tiempo agrietándose pero eran insignificantes). Las de los laterales costó bastante más quitarlas... pero fueron apareciendo más y el tejado la verdad es que no mejoraba.

Tras otro tiempo, unos 5 o 6 años desde las primeras grietas, debido a otro problema tuve que visitar al albañil con cierta asiduidad, y para el problema de las grietas continuó indicándome que usara la masilla, probamos con otro producto para el tejado aunque al final lo dejamos como estaba puesto que no era importante.

Hace un 1 año, el albañil se fue, y al acabárseme la masilla fui a visitar al nuevo pero estaba el suplente. Ahora el gremio de albañiles estaba informatizado y al no encontrar referencias de lo que le indicaba, le tuve que contar toda la historia y al verlas lo primero que dijo fue: "¡Hostias!". Me indicó que él no creía que esas grietas fuera por dilatación, sino por hormigas mutantes alienígenas; de todas formas la misma masilla sirve para taparlas; aunque él usaba otro producto, si me había ido bien con el que tenía no había necesidad de cambiarlo. Sin embargo las grietas de los laterales, ya no es que costaran más sino que no terminaban de taparlas del todo... y la cosa iba en aumento, aumentado obviamente el tiempo empleado en tapar las grietas, la desidia por hacerlo, etc...

A la enésima vez que se me acaba la masilla, este verano acudo al nuevo albañil. Hecha un vistazo al la historia y le cuento la parte anterior no registrada, las diferencia de opiniones, etc. Mira las grietas, y me indica que cree que las de la fachada son por dilatación pero las de los laterales (y la del segundo piso, la parte de atrás y demás que fueron apareciendo) son por culpa de las hormigas. De pronto se pregunta por el tiempo que he de invertir en tapas grietas y me dice que hay que estar locos para creer que alguien puede estar todos los días buscando y tapando. Me indicó que debería llamar a un aparejador, pero mientras tanto podía probar otra cosa, así que optó por otra solución: un cubo de masilla con un petardo grande en su interior y ¡hacerlo explotar dentro de la casa!; y para la fachada más masilla normal por si acaso... y que en una semana le enseñara la casa.

La cita con el aparejador no es hasta después de un mes y medio, así que durante esa semana estuve haciendo la supuesta locura. ¡Joder!, al tercer día ya había conseguido lo que a mano conseguía en una semana. Me arregló hasta el tejado que llevaba años ignorando. Al volver a ver al albañil le digo que el aparejador no viene hasta después de una mes, y el resultado positivo de su locura, pero me indica que no es posible usarla todo el tiempo (puede romper la estructura de la casa) además de que si terminamos de arreglarla el aparejador puede que se enfade por hacerle venir para nada. Así que me dice que vaya reduciendo el tamaño del petardo durante la siguiente semana. Durante el siguiente mes, sin arreglar ni tapar nada obviamente volvieron a salir y llegó el día de visita del aparejador que tan ansioso esperaba...

Pero se me cortó la ansiedad tras saludarlo, tras resumirle lo que me habían dicho los anteriores albañiles me dice que es él quien sabe de grietas y que lo que tengo son fisuras sin importancia. Rehusa ver los registro anteriores y que le cuente toda la historia; de forma escueta se la cuento aunque sin que preste atención tan solo sabe reescribirla y por su texto, del que tengo una copia, sé que escuchó parte de ella y mal. Al mostrarle las soluciones anteriores, puso el grito en el cielo sobre todo con el experimento del último albañil. Indicando que se trataba de una burrada, y que no puedo hacer eso. Sobre todo insiste en preguntar si soy yo quién rasco las paredes, cuando no es así. Pregunta si barnizo la casa, que tampoco indicándome que debería hacerlo. Posteriormente se empeña en que no use ni siquiera la masilla que usaba, que él tiene otra para esas fisuras y que la esté dando durante un mes y que se lo enseñe. Le indico que el tiempo empleado para tapar agujeros a mano ya es considerable y después de conocido el método anterior... No me cree en que tarde tanto tiempo y que dentro de un mes no habrá tantas fisuras, así que le concedo este mes de sacrificio; la masa es distinta puede que sea más efectiva...

Joder, cuando voy a comprar la masa... la mitad de cantidad cuesta 5 veces más, ya puede ser buena, ya. La aplico durante todo el mes, excepto 3 días. Y esto no mejoraba..., sí, tapaba algo pero siguen siendo visibles y no llegaba a desaparecer, de hecho algunas se volvían más grandes y otras aparecían. Con las de la fachada no hay problema, pero las otras... además la nueva masa me vino justa para el mes.

Ayer vuelvo a ver al aparejador, y lo primero que me pregunta es que opino. Le digo que casi todas las fisuras (según él) siguen en su sitio aunque con mejor aspecto y que incluso me han salido más; que he seguido a rajatabla sus indicaciones (aunque no me creyera). De pronto me vuelve a indicar que si sigo rascándolas, y le corrijo que ni las he rascado ni tengo necesidad más allá de cuando las limpio. Se enfada porque le dije que las otras soluciones poniendo el esmero que he puesto esta vez posiblemente me lo hubieran tapado ya; pero que se supone que lo que quiero es no tener que taparlas más así que si he de seguir tapándolas prefiero dejar de hacerlo y que no necesito sus servicios. Me dice que yo solo quiero quitar las fisuras porque las veo y creo que son feas porque no presentan ningún problema; también que él quiere ser rubio pero eso es imposible, así que las opciones no son las que le he dicho (tapar o dejarlo) sino una masilla o la otra: una más lenta y segura, y otra más rápida y peligrosa que no debería darse de continuo porque quema las paredes (y que resulta que llevo usando ¡8 años!). Esta vez me dice que compre el doble de su masilla y que además de tapar fisuras todos los días a mano, barnice la casa por las mañanas (sorprendiéndose de que hubiera leído las instrucciones de la masilla y que no se debe mezclar con barniz) y que ya veremos dentro de dos meses.

Así que como según él estoy gastando tiempo y dinero para hacer más bella mi casa y no presentan ningún problema pues he tirado directamente la receta a la basura y dentro de dos meses que me cuente la puta dermatóloga el aparejador que le parece la opción que he elegido. Vaya resulta que las opciones que tenía son realmente las mías...

jueves, 30 de junio de 2011

Conexión a Internet

... toda esa cantidad de información.

Por aquí pasan 6Mbps + 4Mbps que usa Imagenio + las llamadas del teléfono

Como se entere la Hacker de la Pala...

martes, 10 de mayo de 2011

Esto no me gusta nada

... menos mal que he conseguido un internet rápido...

Y antes de que lo borren...

PD: Sí, son las 7 de la mañana

PD2: No se ve las imágenes en el Google Reader ni Buzz, así que entra al blog :P

PD3: Uff, ya lo han arreglado:

domingo, 20 de marzo de 2011

The King of Fighters: La película

... Internet yo te maldigo.

¿Porqué ha de pasarme esto a mí?, yo tan solo estaba merodeando por Wikipedia para entretenerme, das a "Página aleatoria", te aparece el artículo de Terry Bogard... y descubres esto:

¡NOOOOOOOO!, ¡que todavía no he superado lo de Bola de Dragón con la que literalmente me iba a una esquina a llorar!. Espero que no la traduzcan, por el dios en el que no creo.

Mira que incluso esta saga de videojuegos tiene una historia más o menos definida, aunque no pasan de ser más que torneos; incluso para hacer varias pelis... pero tiene una pinta de que se lo van a pasar todo por el forro...

Ojo, que puede ser como Resident Evil (que por cierto con la 4ª se les esta yendo de las manos...), pero pintan espadas (y que yo sepa nadie debería usarlas en la peli)

domingo, 13 de marzo de 2011

Chernobyl vs Fukushima I

... Round 1, ¡Fight!
Bueno, se me ocurrido hacer una sencilla comparación, aunque sean incomparables; para que se vean claras las diferencias.
No soy experto nuclear, ni nada; así que puede que meta la gamba hasta el fondo así que disculpas de antebraso.
\ Chernobyl Fukushima I
Fecha de los sucesos 24-26 de abril de 1986 11-¿? de marzo de 2011
Lugar Ucrania Japón
Características de la central · 1970-2000 (1977 el primer reactor)

· 4 reactores RBMK funcionando (+ 2 construyéndose en ese momento)
· 1966-¿? (1971 el primer reactor)

· 6 reactores BWR parados (+ 2 en proyecto)

· Segunda central con otros 4 reactores a 11 km.
Características de los reactores implicados · Reactor 4 (1983) RBMK de 2ª generación

· 1000 Mw

· Combustible: Uranio normal

· Sin edificio de contención externa
· Reactor 1 (1971) BWR3, Reactor 2 (1974) BWR4, Reactor 3 (1976) BWR4 y Reactor 4 (1978) BWR4

· 460 Mw (BWR3) y 784 Mw (BWR4)

· Combustible: Uranio 235 enriquecido

· El reactor 1 iba a ser cerrado a finales de marzo.
Circunstancias Experimento para comprobar si, en caso de que se corte el suministro eléctrico, la inercia de las turbinas es suficiente para arrancar las bombas de refrigeración y generadores auxiliares (que por cierto fue un éxito).

Para la simulación, SE DESCONECTARON todos los automatismos de seguridad que estorbaban. Y como melodía ambiental montones de alarmas.
Terremoto de 9,0 en la costa este de Japón (y más de 300 réplicas de 4-7). Pero los terremotos son lo de menos.

Recibió un hostión de una ola de 10 metros (aunque no sé hasta que punto los diques de protección cumplieron su función)

Produciendo un corte de suministro eléctrico a la central.
¿Que pasó? En resumen, fallos humanos continuados...

Se procede al experimento y para ello se debe reducir la potencia de funcionamiento poco a a poco y hasta un nivel "seguro".

Desde Kiev se les dice que vuelva a toda potencia que la necesitan así que lo posponen, pero estos meneos no le van bien a este tipo de reactor... y menos trabajar por debajo de su potencia. Así que posiblemente ya había comenzado el envenenamiento por Xenon.

Por la noche se les da permiso juguetear con la olla. Y entre las prisas por terminar le pegan otro meneo, que sumado a que se pasan introduciendo las barras de grafito y el Xenon el reactor pasa a producir un 5% (que es pararlo en la práctica).

Así que no se les ocurre otra cosa que ponerla a tope otra vez... pero se queda al 20%... ¡ouch! Bueno, pues aprovechan y realizan la prueba: funcionó.

Pero claro, estaban pisando a fondo, no habían vuelto a ponerla en automático, ni a conectar los sistemas de refrigeración principales, ni nada; así que súbitamente comienza a aumentar la potencia, tanto que se pasa por mucho. Finalmente se apreta el botón de parada... pero el calor alcanzado dobló las barras de grafito y por tanto se quedaron atascadas y no se pudieron reintroducir.

Todo esto en 40 segundos, en los 5 siguientes el calor siguió aumentando (llegando a dar una potencia de un 3000%), a más calor el agua tiene más presión... hasta que reventó la tubería. Y ya de paso las pildoritas negras seguramente ya eran un sabroso caldo (por "fusión del núcleo" se refieren al cambio de estado, no a la reacción; si la explosión hubiera sido de estas últimas...).

Tres segundos después, el reactor sin refrigerante y caliente como el infierno en verano; pues vino la explosión tocha (o dos) por el hidrógeno en contacto con el oxígeno (no me preguntéis de dónde salen estos elementos) reventando la vasija.

El resto ya es menos técnico: Montón de mierda solida radioactiva es expulsada al exterior, un elefante pisó al aire libre, no se evacúa Pripiat hasta un día después, se tiran todo tipo de materiales sobre el elefante (que según parece fue otra mala idea), se construye un sarcófago, se construye un tunel para refrigerar pero como tiraron toneladas de material mejor se rellena de hormigón no vaya a ser que ceda, se hacen visitas turísticas, y se hace otro sarcófago... y parece que se va a intertar desmantelar.
Serie de desgraciadas casualidades.

Se produce el terremoto y porque superó la magnitud para la que están diseñados se paran los reactores (además del riesgo de tsunami).

Mientras están parados, los reactores necesitan refrigeración continua y se tarda varios días en enfriarlo totalmente.

Se les corta el suministro de electricidad, según parece también debido al terremoto.

Saltan los generadores diesel auxiliares y continua "normalmente", pero después de una hora llega la ola y se los carga. Los edificios de

NOTA: Realmente no estoy seguro si el corte de electricidad fue producido por la ola o el terremoto; y en el primer caso los generadores dejaron de funcionar porque sí, o en el segundo la ola llegó una hora después cuando estaban funcionando ya.

Salta el sistema de seguridad del sistema de seguridad, unas baterías; en lo que llegan camiones generadores (y me parece haber leído por ahí que el enchufe no valía O_o ¿Es que no saben hacer empalmes?).

Bien, pues a todo esto hay que añadir que el sistema auxiliar de refrigeración del reactor 1 comienza a fallar (si he entendido bien, cuando entran los sistemas auxiliares de electricidad se usa también la refrigeración auxiliar).

Situación similar, pero condiciones muy distintas. Al no poder refrigerar correctamente, a más calor más presión.

Así que para que no reviente hay que purgar gas (sin materia sólida). Mientras se usan métodos alternativos de refrigeración.

Sin embargo, nuestro amigo el hidrógeno también ha aparecido y ha encontrado a su enemigo el oxígeno, liándola parda volando la parte superior del edificio exterior de contención. Esa parte hecha con paneles, no de hormigón como el resto, está preparada para eso mismo y que no reviente la estructura entera.

Bueno, pues una vez pasa esto y como tenían pensado dar de baja dicho reactor en 15 días, pues no merece la pena "salvarlo" así que lo están inundando todo directamente. Así que si se funde o no como que les debe dar ya igual. En lo que se para la reacción del todo, baja temperatura y lo que se evaporará el agua pues tardarán unos cuantos días.

Mientras sucedía esto a comenzado a fallar el sistema de refrigeración del reactor 3, y está por ver si correrá la misma mala suerte... y ya han dicho que tiene una fusión parcial...

Actualización 20110315 3:46 (UTC):
No solo le ha pasado exactamente lo mismo, sino que también el reactor 2 ha seguido el mismo camino... y esta vez parece que sí que ha agrietado algo. Ya se sabe, a la tercera tenía que ser la vencida...

Y no solo eso, el reactor 4 ha tenido un incendio dando una fuga de material radiactivo, ¡y éste sí que estaba parado, de hecho no debe tener ni las barras de Uranio! ¡¡PERO QUE COJONES!!

Bueno al menos algo bueno: Parece que ya están terminando con el 1 además de que les debe quedar poca energía remanente ya...

Actualización 20110317 19:57 (UTC):
Bueno, veamos:
  • Reactor 1: Parece estabilizado, con el edificio exterior todo jodido y el 70% de las barras afectadas. Se le continúa dando agua por todos los sitios pero no ha vuelto dar (más) problemas.
  • Reactor 2: Edificio ligeramente dañado, pero se cree que la contención principal sí que se ha estropeado, 30% de las barras afectadas. Se le está llenando el núcleo de agua, con posibilidad de inundar todo lo demás. Además ya se le ha conectado corriente eléctrica y pueden usar el sistema de refrigerado normal.
  • Reactor 3: Edificio hecho una mierda, además se cree que la contención principal también está dañada, la piscina de combustible usado evaporándose, ...; es decir lo de los demás pero todo junto. También ya tiene electricidad para poder usar la refrigeración normal y además este usaba como combustible MOX por tanto que si al final todo va al carajo; ya no sé que es peor: la radiación o la toxicidad del plutonio
  • Reactor 4: Ha sufrido no se cuantos incendios, porque lo que se ha calentado es la piscina del combustible y están a ver si la llenan antes de que llegue el verano. También ha reventado por el hidrógeno.


  • Y la historia va para largo así que mejor leer esta secuencia de acontecimientos de forma más precisa, de las cosas que han ido sucediendo después.

    De todas formas, creo que se ha dejado claro la diferencia entre ambos accidentes independientemente de las consecuencias.