<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>victor.eu.org</title><link href="https://victor.eu.org/" rel="alternate"></link><link href="https://victor.eu.org/atom.xml" rel="self"></link><id>https://victor.eu.org/</id><updated>2010-01-31T20:51:00+01:00</updated><subtitle>el diario de...</subtitle><entry><title>Llegar a la sabiduría</title><link href="https://victor.eu.org/2010/01/llegar-a-la-sabiduria" rel="alternate"></link><published>2010-01-31T20:51:00+01:00</published><updated>2010-01-31T20:51:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2010-01-31:/2010/01/llegar-a-la-sabiduria</id><content type="html">&lt;p&gt;Esta es la cita del mes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"Hay tres caminos que llevan a la sabiduría: La imitación, el más sencillo; la reflexión, el más noble; y la experiencia, el más amargo".&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Confucio.&lt;/p&gt;</content><category term="Política y paranoias"></category><category term="citas"></category></entry><entry><title>Integración con Twitter</title><link href="https://victor.eu.org/2009/12/integracion-con-twitter" rel="alternate"></link><published>2009-12-15T10:15:00+01:00</published><updated>2009-12-15T10:15:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-12-15:/2009/12/integracion-con-twitter</id><content type="html">&lt;p&gt;Me acabo de integrar con Twitter. No es nada espectacular... pero cada vez que escriba algo en el blog automáticamente aparecerá un twit en Twitter diciendo que escribí alguna chorrada.&lt;/p&gt;</content><category term="Este sitio"></category><category term="twitter"></category></entry><entry><title>Ley de Kerensky</title><link href="https://victor.eu.org/2009/12/ley-de-kerensky" rel="alternate"></link><published>2009-12-11T12:14:00+01:00</published><updated>2009-12-11T12:14:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-12-11:/2009/12/ley-de-kerensky</id><content type="html">&lt;p&gt;10+1ª Ley de Internet&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Al final todo invento tecnológico acaba sufriendo las modificaciones necesarias para ver tías en pelotas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://meneame.net/story/inventos-ingeniosos-telefono#c-7"&gt;Kerensky&lt;/a&gt; en 01-Ene-2009&lt;/p&gt;</content><category term="Internet"></category><category term="internet"></category><category term="ley"></category></entry><entry><title>Ley de la exclamación</title><link href="https://victor.eu.org/2009/12/ley-de-la-exclamacion" rel="alternate"></link><published>2009-12-10T12:09:00+01:00</published><updated>2009-12-10T12:09:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-12-10:/2009/12/ley-de-la-exclamacion</id><content type="html">&lt;p&gt;10ª Ley de Internet&lt;/p&gt;
&lt;p&gt;Cuantos más signos de exclamación contenga un correo electrónico (o cualquier otro mensaje en internet), más posibilidades hay de que sea todo mentira. Esto también se aplica para el exceso de letras mayúsculas&lt;/p&gt;
&lt;p&gt;&lt;a href="http://rationalwiki.com/wiki/Law_of_exclamation"&gt;Lori Robertson&lt;/a&gt; en &lt;a href="http://www.factcheck.org"&gt;FactCheck.org&lt;/a&gt;, 2008&lt;/p&gt;</content><category term="Internet"></category><category term="internet"></category><category term="ley"></category></entry><entry><title>Ley de Cohen</title><link href="https://victor.eu.org/2009/12/ley-de-cohen" rel="alternate"></link><published>2009-12-09T12:08:00+01:00</published><updated>2009-12-09T12:08:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-12-09:/2009/12/ley-de-cohen</id><content type="html">&lt;p&gt;9ª Ley de Internet&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Cualquiera que recurra al argumento de que "cualquiera que recurra al argumento de que... pierde el debate automáticamente", pierde el debate automáticamente&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Brian Cohen, 2007&lt;/p&gt;</content><category term="Internet"></category><category term="internet"></category><category term="ley"></category></entry><entry><title>Segunda Ley de DeMyer</title><link href="https://victor.eu.org/2009/12/segunda-ley-de-demyer" rel="alternate"></link><published>2009-12-08T12:05:00+01:00</published><updated>2009-12-08T12:05:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-12-08:/2009/12/segunda-ley-de-demyer</id><content type="html">&lt;p&gt;8ª Ley de Internet&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Cualquier persona cuyo argumento consista principalmente en citas enormes puede ser ignorado sin miedo, y se considera que perdió la discusión antes de haber empezado&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://rationalwiki.com/wiki/DeMyer's_Laws"&gt;Ken DeMyer&lt;/a&gt;&lt;/p&gt;</content><category term="Internet"></category><category term="internet"></category><category term="ley"></category></entry><entry><title>Ley de Pomme</title><link href="https://victor.eu.org/2009/12/ley-de-pomme" rel="alternate"></link><published>2009-12-07T12:03:00+01:00</published><updated>2009-12-07T12:03:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-12-07:/2009/12/ley-de-pomme</id><content type="html">&lt;p&gt;7ª Ley de Internet&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;La opinión de una persona puede cambiar tras leer información al respecto en internet. La naturaleza del cambio es tal que se pasa de no tener opinión a tener una opinión equivocada.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://rationalwiki.com/wiki/Pommer's_Law"&gt;Rob Pommer&lt;/a&gt; en 2007&lt;/p&gt;</content><category term="Internet"></category><category term="internet"></category><category term="ley"></category></entry><entry><title>Ley de Danth</title><link href="https://victor.eu.org/2009/12/ley-de-danth" rel="alternate"></link><published>2009-12-06T12:01:00+01:00</published><updated>2009-12-06T12:01:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-12-06:/2009/12/ley-de-danth</id><content type="html">&lt;p&gt;6ª Ley de Internet&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Si en una discusión de Internet tienes que insistir en que ganaste, es probable que hayas perdido de forma escandalosa&lt;/p&gt;
&lt;/blockquote&gt;</content><category term="Internet"></category><category term="internet"></category><category term="ley"></category></entry><entry><title>Ley de Scopie</title><link href="https://victor.eu.org/2009/12/ley-de-scopie" rel="alternate"></link><published>2009-12-05T11:57:00+01:00</published><updated>2009-12-05T11:57:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-12-05:/2009/12/ley-de-scopie</id><content type="html">&lt;p&gt;5ª Ley de Internet&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;En cualquier discusión sobre ciencia o medicina, citar a Whale.to como fuente fiable equivaldrá a perder la discusión automáticamente, y a ser expulsado con sorna por el resto de usuarios&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://www.badscience.net/forum/viewtopic.php?f=3&amp;amp;t=5240&amp;amp;p=90463#p90279"&gt;Rich Scopie&lt;/a&gt; 27-May-2008&lt;/p&gt;</content><category term="Internet"></category><category term="internet"></category><category term="ley"></category></entry><entry><title>Ley de Skitt</title><link href="https://victor.eu.org/2009/12/ley-de-skitt" rel="alternate"></link><published>2009-12-04T11:55:00+01:00</published><updated>2009-12-04T11:55:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-12-04:/2009/12/ley-de-skitt</id><content type="html">&lt;p&gt;4ª Ley de Internet&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Todo mensaje que corrija el mensaje de otro usuario contendrá a su vez al menos un error.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;G Bryan Lord en 1998, sobre un usuario de Usenet llamado Skitt&lt;/p&gt;</content><category term="Internet"></category><category term="internet"></category><category term="ley"></category></entry><entry><title>Regla 34</title><link href="https://victor.eu.org/2009/12/regla-34" rel="alternate"></link><published>2009-12-03T11:54:00+01:00</published><updated>2009-12-03T11:54:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-12-03:/2009/12/regla-34</id><content type="html">&lt;p&gt;3ª Ley de Internet&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Si existe, hay porno sobre ello&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Reglas de Internet de &lt;a href="http://www.4chan.org/"&gt;4chan&lt;/a&gt;&lt;/p&gt;</content><category term="Internet"></category><category term="internet"></category><category term="ley"></category></entry><entry><title>Ley de Poe</title><link href="https://victor.eu.org/2009/12/ley-de-poe" rel="alternate"></link><published>2009-12-02T11:51:00+01:00</published><updated>2009-12-02T11:51:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-12-02:/2009/12/ley-de-poe</id><content type="html">&lt;p&gt;2ª Ley de Internet&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Si no se utiliza un smiley, o alguna otra demostración obvia de la intención humorística del texto, es imposible crear una parodia del fundamentalismo que alguien no confunda con fundamentalismo de verdad.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://www.christianforums.com/t1962980-6/#post17606580"&gt;Nathan Poe&lt;/a&gt; 11-Ago-2005&lt;/p&gt;</content><category term="Internet"></category><category term="internet"></category><category term="ley"></category></entry><entry><title>Ley de Godwin</title><link href="https://victor.eu.org/2009/12/ley-de-godwin" rel="alternate"></link><published>2009-12-01T11:48:00+01:00</published><updated>2009-12-01T11:48:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-12-01:/2009/12/ley-de-godwin</id><content type="html">&lt;p&gt;1ª Ley de Internet&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A medida que una discusión en internet se alarga, la probabilidad de que aparezca una comparación en la que se mencione a Hitler o a los Nazis tiende a uno&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Mike Godwing 1990&lt;/p&gt;</content><category term="Internet"></category><category term="internet"></category><category term="ley"></category></entry><entry><title>Jóvenes</title><link href="https://victor.eu.org/2009/11/jovenes" rel="alternate"></link><published>2009-11-11T22:13:00+01:00</published><updated>2009-11-11T22:13:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-11-11:/2009/11/jovenes</id><summary type="html">&lt;p&gt;Todavía tengo memoria, todavía me acuerdo de las cosas que hice hace algunos años. Estas citas se las dedico a los que olvidaron esas cosas.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"Los jóvenes hoy en día son unos tiranos. Contradicen a sus padres, devoran su comida, y le faltan al respeto a sus maestros."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Falsamente atribuida …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Todavía tengo memoria, todavía me acuerdo de las cosas que hice hace algunos años. Estas citas se las dedico a los que olvidaron esas cosas.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"Los jóvenes hoy en día son unos tiranos. Contradicen a sus padres, devoran su comida, y le faltan al respeto a sus maestros."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Falsamente atribuida a &lt;a href="http://es.wikipedia.org/wiki/Sócrates"&gt;Sócrates&lt;/a&gt; (469 aC - 399 aC)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"Los jóvenes de hoy aman el lujo, tienen manías y desprecian la autoridad. Responden a sus padres, cruzan las piernas y tiranizan a sus maestros."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Falsamente atribuida a &lt;a href="http://es.wikipedia.org/wiki/Sócrates"&gt;Sócrates&lt;/a&gt; (469 aC - 399 aC)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"Los jóvenes de hoy no parecen tener respeto alguno por el pasado ni esperanza alguna para el porvenir."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://es.wikipedia.org/wiki/Hipócrates"&gt;Hipócrates&lt;/a&gt; (460 aC - 370 aC)&lt;/p&gt;
&lt;p&gt;Que rápido nos olvidamos de lo que no nos interesa.&lt;/p&gt;</content><category term="Política y paranoias"></category><category term="hipócrates"></category><category term="jovenes"></category><category term="sócrates"></category><category term="viejos"></category></entry><entry><title>Regla mnemotécnica</title><link href="https://victor.eu.org/2009/10/regla-mnemotecnica" rel="alternate"></link><published>2009-10-21T19:25:00+02:00</published><updated>2009-10-21T19:25:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-10-21:/2009/10/regla-mnemotecnica</id><summary type="html">&lt;p&gt;Si os digo:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Con 1 palo y 5 ladrillos se pueden hacer mil cosas&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Me diréis... "pues vale"... pero si os digo que con esa frase te puedes acordar de los 10 primeros decimales de Pi (3,1415926535)&lt;/p&gt;
&lt;p&gt;Para eso debes contar las letras y sustituir 1 y 5 por …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Si os digo:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Con 1 palo y 5 ladrillos se pueden hacer mil cosas&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Me diréis... "pues vale"... pero si os digo que con esa frase te puedes acordar de los 10 primeros decimales de Pi (3,1415926535)&lt;/p&gt;
&lt;p&gt;Para eso debes contar las letras y sustituir 1 y 5 por esos números... así de fácil.&lt;/p&gt;
&lt;p&gt;Lo vi en &lt;a href="http://www.consumer.es/web/es/educacion/otras_formaciones/2009/07/05/186432.php"&gt;Consumer&lt;/a&gt;&lt;/p&gt;</content><category term="Política y paranoias"></category><category term="pi"></category></entry><entry><title>Patrick Swayze y el Torrent</title><link href="https://victor.eu.org/2009/10/patrick-swayze-y-el-torrent" rel="alternate"></link><published>2009-10-06T23:48:00+02:00</published><updated>2009-10-06T23:48:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-10-06:/2009/10/patrick-swayze-y-el-torrent</id><summary type="html">&lt;p&gt;Llevo unos días siguiendo el problema que tiene "cierto servidor de internet muy coincido", y es que hoy me acaba de dejar alucinado.&lt;/p&gt;
&lt;p&gt;Alguien me puede explicar que significa "Nobody puts TBP in a Corner", tengo que reconocerlo, tal vez debería callarmelo, pero así, sin decirlo muy alto me gusta …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Llevo unos días siguiendo el problema que tiene "cierto servidor de internet muy coincido", y es que hoy me acaba de dejar alucinado.&lt;/p&gt;
&lt;p&gt;Alguien me puede explicar que significa "Nobody puts TBP in a Corner", tengo que reconocerlo, tal vez debería callarmelo, pero así, sin decirlo muy alto me gusta mucho Dirty Dancing... siempre me gustó ser como Patrick Swayze en la película, bailar como él lo hace y tener a todas las chicas "encandiladas"... posiblemente TBP también les guste... pero me da que no es el caso.&lt;/p&gt;
&lt;p&gt;¿Alguien sabe de que va esto de Patrick Swayze Torrent?&lt;/p&gt;
&lt;p&gt;Gracias a todos!&lt;/p&gt;</content><category term="Política y paranoias"></category><category term="bittorrent"></category><category term="cine"></category><category term="culturapop"></category><category term="torrent"></category></entry><entry><title>Actualización rápida de host en dyndns</title><link href="https://victor.eu.org/2009/09/actualizacion-dyndns" rel="alternate"></link><published>2009-09-21T18:00:00+02:00</published><updated>2009-09-21T18:00:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-09-21:/2009/09/actualizacion-dyndns</id><summary type="html">&lt;p&gt;Por si alguien todavía no lo conoce &lt;a href="http://www.dyndns.com/"&gt;dyndns&lt;/a&gt; es un sitio web que nos ofrece de forma gratuita un nombre de dns. No nos engañemos tienen muchos dominios y algunos son curiosos... pero lo mejor de todo es que se actualizan de una forma muy, pero que muy rápida, por …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Por si alguien todavía no lo conoce &lt;a href="http://www.dyndns.com/"&gt;dyndns&lt;/a&gt; es un sitio web que nos ofrece de forma gratuita un nombre de dns. No nos engañemos tienen muchos dominios y algunos son curiosos... pero lo mejor de todo es que se actualizan de una forma muy, pero que muy rápida, por lo que es ideal para usar si no tenemos una ip fija, ya que unos segundos después de indicarle a dyndns cual es nuestra ip el dominio resolverá correctamente. Además, si no nos gusta los nombres que tienen, siempre podemos pagar por uno más bonito, o simplemente usar un registro CNAME en el servidor de dns de nuestro dominio.&lt;/p&gt;
&lt;p&gt;Pues bien, hay varios programas para avisar a dyndns de que nuestra ip ya cambió, pero yo me decanto por hacer las cosas 100% a mano. Para eso la forma más sencilla es usar wget con una linea como la siguiente:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;wget http://usuario:password@members.dyndns.org/nic/update?hostname=mihost.dyndns.net&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Bueno a veces tendrás o podrás usar esta otra forma:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;wget --user=usuario --pasword=password http://members.dyndns.org/nic/update?hostname=mihost.dyndns.net&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Bueno, también puede que sea necesario que uses la siguiente forma. Ya sabes, todo depende del Linux/Unix que uses o más bien del wget que tengas instalado.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;wget -q -O - http://usuario:password@members.dyndns.org/nic/update?hostname=mihost.dyndns.net&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Así detectará automáticamente nuestra ip, pero si sabemos que no la puede detectar automáticamente deberemos incluir un&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;myip=192.168.0.1&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Con la que es nuestra ip.&lt;/p&gt;</content><category term="Internet, Linux"></category><category term="dyndns"></category><category term="linux"></category></entry><entry><title>Saber cuando cambia la IP en la fonera</title><link href="https://victor.eu.org/2009/08/cambia-ip-en-fonera" rel="alternate"></link><published>2009-08-21T17:34:00+02:00</published><updated>2009-08-21T17:34:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-08-21:/2009/08/cambia-ip-en-fonera</id><summary type="html">&lt;p&gt;Para saber cuando cambia la ip de nuestra fonera simplemente tenemos que modificar el fichero&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/usr/share/udhcpc/default.script
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;y en la variable ip tendremos nuestra nueva IP.&lt;/p&gt;
&lt;p&gt;La fonera usa como cliente de DHCP un programita que se llama udhcpc que cuando se cambia la ip ejecuta el …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Para saber cuando cambia la ip de nuestra fonera simplemente tenemos que modificar el fichero&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/usr/share/udhcpc/default.script
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;y en la variable ip tendremos nuestra nueva IP.&lt;/p&gt;
&lt;p&gt;La fonera usa como cliente de DHCP un programita que se llama udhcpc que cuando se cambia la ip ejecuta el fichero que escribí antes.&lt;/p&gt;
&lt;p&gt;Para cualquier duda, podéis dejar aquí una nota (ojo, que yo no soy ningún gurú del udhcpc) o en la ayuda de linux.&lt;/p&gt;</content><category term="Linux"></category><category term="dhcp"></category><category term="fon"></category><category term="fonera"></category><category term="ip"></category><category term="udhcpc"></category></entry><entry><title>Generar Generics con System.CodeDom</title><link href="https://victor.eu.org/2009/07/generar-generics-codedom" rel="alternate"></link><published>2009-07-21T17:27:00+02:00</published><updated>2009-07-21T17:27:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-07-21:/2009/07/generar-generics-codedom</id><summary type="html">&lt;p&gt;Para generar código en .NET yo uso el namespace CodeDom. Hay cosas que son fáciles de generar y otras un poco más complicadas, por ejemplo, para generar código que tenga Generics hay que hacer lo siguiente:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt; CodeTypeDeclaration newClass = new CodeTypeDeclaration(&amp;quot;MyCollectionClass&amp;quot;);
 newClass.BaseTypes.Add( new CodeTypeReference(&amp;quot;Collection&amp;quot;,
                                             new CodeTypeReference[] {
                                             new …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;Para generar código en .NET yo uso el namespace CodeDom. Hay cosas que son fáciles de generar y otras un poco más complicadas, por ejemplo, para generar código que tenga Generics hay que hacer lo siguiente:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt; CodeTypeDeclaration newClass = new CodeTypeDeclaration(&amp;quot;MyCollectionClass&amp;quot;);
 newClass.BaseTypes.Add( new CodeTypeReference(&amp;quot;Collection&amp;quot;,
                                             new CodeTypeReference[] {
                                             new
 CodeTypeReference(&amp;quot;MyBaseClass&amp;quot;)
                                             }));
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Y tendremos algo así:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt; public class MyCollectionClass : Collection&amp;lt;MyBaseClass&amp;gt;
 {
    //  Chachan!!!!
 }
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Hasta la próxima&lt;/p&gt;</content><category term=".NET"></category><category term="csharp"></category><category term="generics"></category><category term="net"></category><category term="programación"></category></entry><entry><title>ContentDigest en Apache</title><link href="https://victor.eu.org/2009/06/contentdigest-en-apache" rel="alternate"></link><published>2009-06-21T17:19:00+02:00</published><updated>2009-06-21T17:19:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-06-21:/2009/06/contentdigest-en-apache</id><summary type="html">&lt;p&gt;Si añadimos un&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ContentDigest On
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;A nuestro fichero htaccess cada una de las peticiones a nuestro servidor se les añadirá una firma de los datos que se envían. Así el ordenador que recibe nuestros fichero sabrá si los datos están bien, o están corruptos.&lt;/p&gt;
&lt;p&gt;El sistema es sencillo el servidor …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Si añadimos un&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ContentDigest On
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;A nuestro fichero htaccess cada una de las peticiones a nuestro servidor se les añadirá una firma de los datos que se envían. Así el ordenador que recibe nuestros fichero sabrá si los datos están bien, o están corruptos.&lt;/p&gt;
&lt;p&gt;El sistema es sencillo el servidor apache a cada petición de un fichero le añade una cabecera como:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA==
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;El problema es que el apache no guarda en ningún sitio ese valor, por lo que cada vez que se acceder a un fichero se pierde mucho procesador calculando una y otra vez ese mismo valor... por lo que es muy problable que tengas problemas de rendimiento.&lt;/p&gt;
&lt;p&gt;Así que, la idea es buena, la implementación es mala... por eso yo antes de usarlo, me da que me haría un modulito o algo similar que cachease los datos.&lt;/p&gt;</content><category term="Internet"></category><category term="apache"></category></entry><entry><title>Instalar TDT-USB Afatech af9015 en Ubuntu</title><link href="https://victor.eu.org/2009/05/instalar-tdt-usb-afatech-af9015-ubuntu" rel="alternate"></link><published>2009-05-11T07:45:00+02:00</published><updated>2009-05-11T07:45:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-05-11:/2009/05/instalar-tdt-usb-afatech-af9015-ubuntu</id><summary type="html">&lt;p&gt;Hace un tiempo escribí como configurar una sintonizadora de &lt;a href="http://loq.es/tdt/"&gt;TDT&lt;/a&gt; en Ubuntu (Ya sabéis, eso de la &lt;a href="http://loq.es/tdt/"&gt;TDT&lt;/a&gt; es como llamamos en España a ese invento que en el resto del mundo llaman DVB-T o simplemente DVB). En concreto el modelo que yo usaba era una de esas que venden …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hace un tiempo escribí como configurar una sintonizadora de &lt;a href="http://loq.es/tdt/"&gt;TDT&lt;/a&gt; en Ubuntu (Ya sabéis, eso de la &lt;a href="http://loq.es/tdt/"&gt;TDT&lt;/a&gt; es como llamamos en España a ese invento que en el resto del mundo llaman DVB-T o simplemente DVB). En concreto el modelo que yo usaba era una de esas que venden por 20€ en cualquier supermercado y que independientemente de la marca o el aspecto exterior suelen llevar un chip de Afatech (en mi caso era un AF90015). Si os interesa el articulo era este: &lt;a href="http://www.victor.eu.org/2007/12/instalar-llave-usb-tdt-af9015-en-linux/"&gt;Instalar llave USB TDT AF9015 en Linux&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pues bien, el artículo a día de hoy está obsoleto, y no es necesario. Estos son los nuevos pasos.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Instalar Ubuntu 9.04 (Jaunty Jackalope)&lt;/li&gt;
&lt;li&gt;Enchufar la el decodificador de &lt;a href="http://loq.es/tdt/"&gt;TDT&lt;/a&gt; USb al ordenador&lt;/li&gt;
&lt;li&gt;Instalar un programa para ver la televisión ( sudo aptitude install kaffeine )&lt;/li&gt;
&lt;li&gt;Ejecutar el kaffeine. Si todo está bien, aparecerá un recuadro que pone "Digital TV"&lt;/li&gt;
&lt;li&gt;Ir al menú DVB -&gt; Configure DVB -&gt; Misc -&gt; Pulsar el botón Download&lt;/li&gt;
&lt;li&gt;Ir al menú DVB -&gt; Configure DVB -&gt; DVB Device -&gt; Seleccionar tu zona geográfica en Source&lt;/li&gt;
&lt;li&gt;Ir al menú DVB -&gt; Configure Channels -&gt; Pulsar "Star Scan". Debería sintonizar todos los canales, los añades a la lista.&lt;/li&gt;
&lt;li&gt;Ya está todo listo. Ahora a ver la televisión.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Y nada más. Ahora ya no es necesario ponerse a compilar ni nada parecido. Ya viene todo hecho. Yo uso el kaffeine, porque va bastante bien, es fácil de configurar y también porque no conozco ninguno más ;)&lt;/p&gt;</content><category term="Linux"></category><category term="AF9015"></category><category term="Afatech"></category><category term="dvb"></category><category term="tdt"></category><category term="ubuntu"></category></entry><entry><title>Quitar la toolbar de las imágenes del Internet Explorer</title><link href="https://victor.eu.org/2009/04/quitar-imagetoolbar" rel="alternate"></link><published>2009-04-30T23:59:00+02:00</published><updated>2009-04-30T23:59:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-04-30:/2009/04/quitar-imagetoolbar</id><summary type="html">&lt;p&gt;Hay una utilidad del Internet Explorer que a mi personalmente me parece bastante incómoda, y es que cuando abres una imagen que está en Internet el automáticamente la ajusta al tamaño de tu pantalla. Está muy bien porque te permite ver toda la imagen pero si necesitas recurrir a la …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hay una utilidad del Internet Explorer que a mi personalmente me parece bastante incómoda, y es que cuando abres una imagen que está en Internet el automáticamente la ajusta al tamaño de tu pantalla. Está muy bien porque te permite ver toda la imagen pero si necesitas recurrir a la imagen completa para ver con detalle una parte, tienes que dejar el ratón quieto sobre la imagen y esperar unos segundos a que parezca un botón que te permite restaurar el tamaño completo de la imagen.&lt;/p&gt;
&lt;p&gt;Si quieres que las imágenes que se muestran en tu servidor web no tengan este comportamiento y tienes un servidor que use Apache puedes añadir lo siguiente en el .htaccess:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;FilesMatch&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;&amp;quot;.(html|htm)$&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;Header&lt;span class="w"&gt; &lt;/span&gt;set&lt;span class="w"&gt; &lt;/span&gt;imagetoolbar&lt;span class="w"&gt; &lt;/span&gt;&amp;quot;no&amp;quot;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/FilesMatch&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;En cambio si quieres puedes cambiarlo en la configuración del Internet Explorer. Para ello debes dirigirte al menú Herramientas -&gt; Opciones de Internet -&gt; Opciones avanzadas y deshabilitar la barra.&lt;/p&gt;</content><category term="Internet"></category><category term="apache"></category><category term="htaccess"></category><category term="ie"></category><category term="internet"></category><category term="internet explorer"></category></entry><entry><title>Usar un dominio eu.org en blogger</title><link href="https://victor.eu.org/2009/04/usar-un-dominio-euorg-en-blogger" rel="alternate"></link><published>2009-04-04T00:14:00+02:00</published><updated>2009-04-04T00:14:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-04-04:/2009/04/usar-un-dominio-euorg-en-blogger</id><content type="html">&lt;p&gt;Configuración -&gt; Publicación&lt;br&gt;
Dominio personalizado -&gt;&lt;br&gt;
Cambiar a opciones avanzadas&lt;/p&gt;
&lt;p&gt;En la casilla de "Tu dominio" escribes el dominio&lt;br&gt;
Guardas la configuración (solo deja guardarla cuando escribes bien la palabra esa rara)&lt;/p&gt;
&lt;p&gt;ghs.google.com&lt;/p&gt;</content><category term="Internet"></category></entry><entry><title>España es:</title><link href="https://victor.eu.org/2009/03/espana-es" rel="alternate"></link><published>2009-03-31T23:36:00+02:00</published><updated>2009-03-31T23:36:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-03-31:/2009/03/espana-es</id><content type="html">&lt;p&gt;Me parece muy original:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Yo, contra mi hermano; mi hermano y yo contra mi primo; mi primo, mi hermano y yo contra mi vecino; Mi vecino, mi primo, mi hermano y yo, contra el mundo.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dicho por Zup y visto en &lt;a href="http://meneame.net/story/vision-francesa-guerra-independencia/0008"&gt;menéame&lt;/a&gt;&lt;/p&gt;</content><category term="Política y paranoias"></category><category term="españa"></category></entry><entry><title>Chiste muy viejo, pero que muy viejo</title><link href="https://victor.eu.org/2009/02/chiste-muy-viejo" rel="alternate"></link><published>2009-02-02T01:31:00+01:00</published><updated>2009-02-02T01:31:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-02-02:/2009/02/chiste-muy-viejo</id><content type="html">&lt;p&gt;Desde que lo leí no paré&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Una femina quid un canis Mistetas nominae et el canis perdidum est.&lt;/p&gt;
&lt;p&gt;Femina un centurion questiona:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Ave centurion, Mistetas vidi habemus?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;No, quod vidi volio&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Leido en: &lt;a href="http://meneame.net/story/1.600-anos-de-chistes-viejos#comment-4"&gt;http://meneame.net/story/1.600-anos-de-chistes-viejos#comment-4&lt;/a&gt;&lt;/p&gt;</content><category term="Política y paranoias"></category><category term="chiste"></category></entry><entry><title>Historias desde la cripta</title><link href="https://victor.eu.org/2009/01/historias-desde-cripta" rel="alternate"></link><published>2009-01-31T23:58:00+01:00</published><updated>2009-01-31T23:58:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2009-01-31:/2009/01/historias-desde-cripta</id><content type="html">&lt;p&gt;Un clásico:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Soporte: Tu pasword es "a" Minúscula de andamio, "V" mayúscula de Víctor, el número 7.....&lt;/p&gt;
&lt;p&gt;Cliente: ¿7 en mayúscula o en minúscula?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sin palabras&lt;/p&gt;</content><category term="Informática"></category><category term="chiste"></category><category term="informática"></category></entry><entry><title>Palabras que se pueden escribir con el móvil facilmente</title><link href="https://victor.eu.org/2008/12/palabras-pueden-escribir-movil" rel="alternate"></link><published>2008-12-31T20:45:00+01:00</published><updated>2008-12-31T20:45:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2008-12-31:/2008/12/palabras-pueden-escribir-movil</id><summary type="html">&lt;p&gt;Para acabar el año, un comando que tenía por ahí guardado.&lt;/p&gt;
&lt;p&gt;Si ejecutas esto en un Ubuntu (Linux), te muestra todas las palabras de 6 letras que se pueden escribir con un móvil pulsando una sola vez las teclas.&lt;/p&gt;
&lt;p&gt;grep -i '\^[adgjmptw][adgjmptw][adgjmptw][adgjmptw][adgjmptw][adgjmptw]\$' /usr/share/dict …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Para acabar el año, un comando que tenía por ahí guardado.&lt;/p&gt;
&lt;p&gt;Si ejecutas esto en un Ubuntu (Linux), te muestra todas las palabras de 6 letras que se pueden escribir con un móvil pulsando una sola vez las teclas.&lt;/p&gt;
&lt;p&gt;grep -i '\^[adgjmptw][adgjmptw][adgjmptw][adgjmptw][adgjmptw][adgjmptw]\$' /usr/share/dict/words&lt;/p&gt;
&lt;p&gt;Utilidad poca, pero curioso.&lt;/p&gt;</content><category term="Linux"></category><category term="movil"></category></entry><entry><title>Saber versión paquetes Ubuntu</title><link href="https://victor.eu.org/2008/12/saber-version-paquetes-ubuntu" rel="alternate"></link><published>2008-12-27T13:19:00+01:00</published><updated>2008-12-27T13:19:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2008-12-27:/2008/12/saber-version-paquetes-ubuntu</id><content type="html">&lt;p&gt;Para obtener la versión de los paquetes que tenemos instalados en Ubuntu tenemos que hacer esto:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;dpkg -s &lt;code&gt;&amp;lt;nombre-paquete&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Muy útil para saber la versión de ese paquete o ese programa que estás impaciente porque no acaban de actualizar el paquete en ubuntu.&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="ubuntu"></category></entry><entry><title>Bajar ficheros aunque estén asociados a un programa</title><link href="https://victor.eu.org/2008/11/bajar-ficheros-asociados" rel="alternate"></link><published>2008-11-09T13:44:00+01:00</published><updated>2008-11-09T13:44:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2008-11-09:/2008/11/bajar-ficheros-asociados</id><summary type="html">&lt;p&gt;Hay muchos ficheros que bajamos de un servidor web y que no podemos guardar, automáticamente se abre su programa asociado. Pues bien, si añadimos lo siguiente en nuestro .htaccess de nuestro servidor Apache&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;AddType application/octet-stream .avi&lt;/p&gt;
&lt;p&gt;AddType application/octet-stream .mpg&lt;/p&gt;
&lt;p&gt;AddType application/octet-stream .mov&lt;/p&gt;
&lt;p&gt;AddType application/octet-stream .pdf&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Otra …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hay muchos ficheros que bajamos de un servidor web y que no podemos guardar, automáticamente se abre su programa asociado. Pues bien, si añadimos lo siguiente en nuestro .htaccess de nuestro servidor Apache&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;AddType application/octet-stream .avi&lt;/p&gt;
&lt;p&gt;AddType application/octet-stream .mpg&lt;/p&gt;
&lt;p&gt;AddType application/octet-stream .mov&lt;/p&gt;
&lt;p&gt;AddType application/octet-stream .pdf&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Otra solución sería la siguiente (para ASP/ASP.NET y IIS)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Response.AddHeader("content-disposition","attachment; filename=" &amp;amp; fi.Name)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Si añadimos esta cabecera a un fichero, el navegador que usemos antes de descargalo nos pregunta si deseamos abrirlo o guardarlo en disco.&lt;/p&gt;
&lt;p&gt;Si le damos a abrirlo, el navegador se lo baja, y desde un directorio temporal ejecuta el archivo. Esto es muy interesante si queremos que el fichero solo lo puedan bajar los usuarios autorizados de nuestra web... pero lo explico mejor...&lt;/p&gt;
&lt;p&gt;Hay ciertas extensiones que el navegador deja manejar a programas externos, es decir, cuando se baja algún fichero con cierta extensión, el navegador simplemente le dice al programa con que está asociada esa extensión que tiene que abrir una dirección web. El problema es si para acceder a esa dirección es necesario hacer login es probable que el programa no pueda descargarla correctamente.&lt;/p&gt;
&lt;p&gt;Para eso uso el siguiente truco. Gracias a él le estoy indicando al navegador que en vez de pasarle la URL al programa y que sea el programa el que se encargue de descargar el fichero, quiero que sea el navegador el que se descarga el fichero, y lo guarde en un temporal y después se lo pase al programa. Así no tendré ningún problema de usuarios y passwords porque el navegador entiende perfectamente el sistema para validar los usuarios que nos venga en gana.&lt;/p&gt;</content><category term="Internet"></category><category term="apache"></category><category term="iis"></category></entry><entry><title>HttpCompressionModule</title><link href="https://victor.eu.org/2008/10/httpcompressionmodule" rel="alternate"></link><published>2008-10-31T13:35:00+01:00</published><updated>2008-10-31T13:35:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2008-10-31:/2008/10/httpcompressionmodule</id><summary type="html">&lt;p&gt;Hace tiempo que tenía guardado por ahí un pequeño código que permite que nuestra aplicación ASP.NET envie el contenido conprimido al navegador, con lo que se ahorra en ancho de banda,&lt;br&gt;
y como las transferencias tardan menos, se ahorra en memoria del servidor.&lt;/p&gt;
&lt;p&gt;Ojito: Es un ejemplo, yo personalmente …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hace tiempo que tenía guardado por ahí un pequeño código que permite que nuestra aplicación ASP.NET envie el contenido conprimido al navegador, con lo que se ahorra en ancho de banda,&lt;br&gt;
y como las transferencias tardan menos, se ahorra en memoria del servidor.&lt;/p&gt;
&lt;p&gt;Ojito: Es un ejemplo, yo personalmente prefiero usar la compresión del IIS&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;namespace&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Comprime&lt;/span&gt;
{
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;using&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;System&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;using&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;System&lt;/span&gt;.&lt;span class="nv"&gt;IO&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;using&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;System&lt;/span&gt;.&lt;span class="nv"&gt;IO&lt;/span&gt;.&lt;span class="nv"&gt;Compression&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;using&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;System&lt;/span&gt;.&lt;span class="nv"&gt;Web&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;class&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;HttpCompressionModule&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;IHttpModule&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;{
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nv"&gt;private&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;void&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;context_BeginRequest&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;sender&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;EventArgs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;e&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;{
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nv"&gt;HttpApplication&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;myApp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;sender&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;HttpApplication&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;myApp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;null&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;{
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nv"&gt;string&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;myAcceptEncoding&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;myApp&lt;/span&gt;.&lt;span class="nv"&gt;Request&lt;/span&gt;.&lt;span class="nv"&gt;Headers&lt;/span&gt;.&lt;span class="nv"&gt;Get&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Accept-Encoding&amp;quot;&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nv"&gt;string&lt;/span&gt;.&lt;span class="nv"&gt;IsNullOrEmpty&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;myAcceptEncoding&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;{
&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="nv"&gt;myAcceptEncoding&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;myAcceptEncoding&lt;/span&gt;.&lt;span class="k"&gt;ToLower&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;myAcceptEncoding&lt;/span&gt;.&lt;span class="nv"&gt;Contains&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;gzip&amp;quot;&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;
&lt;span class="w"&gt;                    &lt;/span&gt;{
&lt;span class="w"&gt;                        &lt;/span&gt;&lt;span class="nv"&gt;myApp&lt;/span&gt;.&lt;span class="nv"&gt;Response&lt;/span&gt;.&lt;span class="nv"&gt;Filter&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;GZipStream&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;myApp&lt;/span&gt;.&lt;span class="nv"&gt;Response&lt;/span&gt;.&lt;span class="nv"&gt;Filter&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;CompressionMode&lt;/span&gt;.&lt;span class="nv"&gt;Compress&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;                        &lt;/span&gt;&lt;span class="nv"&gt;myApp&lt;/span&gt;.&lt;span class="nv"&gt;Response&lt;/span&gt;.&lt;span class="nv"&gt;AppendHeader&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Content-Encoding&amp;quot;&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;gzip&amp;quot;&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;                    &lt;/span&gt;}
&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;myAcceptEncoding&lt;/span&gt;.&lt;span class="nv"&gt;Contains&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;deflate&amp;quot;&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;
&lt;span class="w"&gt;                    &lt;/span&gt;{
&lt;span class="w"&gt;                        &lt;/span&gt;&lt;span class="nv"&gt;myApp&lt;/span&gt;.&lt;span class="nv"&gt;Response&lt;/span&gt;.&lt;span class="nv"&gt;Filter&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;DeflateStream&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;myApp&lt;/span&gt;.&lt;span class="nv"&gt;Response&lt;/span&gt;.&lt;span class="nv"&gt;Filter&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;CompressionMode&lt;/span&gt;.&lt;span class="nv"&gt;Compress&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;                        &lt;/span&gt;&lt;span class="nv"&gt;myApp&lt;/span&gt;.&lt;span class="nv"&gt;Response&lt;/span&gt;.&lt;span class="nv"&gt;AppendHeader&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Content-Encoding&amp;quot;&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;deflate&amp;quot;&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;                    &lt;/span&gt;}
&lt;span class="w"&gt;                &lt;/span&gt;}
&lt;span class="w"&gt;            &lt;/span&gt;}
&lt;span class="w"&gt;        &lt;/span&gt;}

&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nv"&gt;void&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;IHttpModule&lt;/span&gt;.&lt;span class="nv"&gt;Init&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;HttpApplication&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;context&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;{
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nv"&gt;context&lt;/span&gt;.&lt;span class="nv"&gt;BeginRequest&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;EventHandler&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;this&lt;/span&gt;.&lt;span class="nv"&gt;context_BeginRequest&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;}

&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nv"&gt;void&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;IHttpModule&lt;/span&gt;.&lt;span class="nv"&gt;Dispose&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;{
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Nothing&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;}

&lt;span class="w"&gt;    &lt;/span&gt;}
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term=".NET"></category><category term="asp"></category><category term="asp.net"></category><category term="charp"></category><category term="iis"></category><category term="net"></category><category term="programación"></category></entry><entry><title>Para mostrar programas en otra sesión de x-windows</title><link href="https://victor.eu.org/2008/09/mostrar-programas-sesion-de-x" rel="alternate"></link><published>2008-09-28T17:30:00+02:00</published><updated>2008-09-28T17:30:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2008-09-28:/2008/09/mostrar-programas-sesion-de-x</id><content type="html">&lt;p&gt;La cosa es secilla. Simplemente:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;DISPLAY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Y después ya puedes hacer cosas como&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;kdialog –sorry “Soy un virus malo, maloso. Te estoy borrando todo el porno.” –title “VIRUS”
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ales esto es todo.&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="x"></category><category term="x.org"></category></entry><entry><title>Cita mítica donde las haya</title><link href="https://victor.eu.org/2008/08/cita-mitica-donde-las-haya" rel="alternate"></link><published>2008-08-31T23:59:00+02:00</published><updated>2008-08-31T23:59:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2008-08-31:/2008/08/cita-mitica-donde-las-haya</id><content type="html">&lt;blockquote&gt;
&lt;p&gt;La estupidez real siempre vence a la inteligencia artificial&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;Terry Pratchett&lt;/em&gt; (Que no se quien es, pero yo lo leí en &lt;a href="http://meneame.net/story/paqui-y-el-castillo-de-arena/1#comment-66"&gt;Menéame&lt;/a&gt;&lt;/p&gt;</content><category term="Política y paranoias"></category><category term="citas"></category></entry><entry><title>Una cita para repetir</title><link href="https://victor.eu.org/2008/07/una-cita-para-repetir" rel="alternate"></link><published>2008-07-13T01:15:00+02:00</published><updated>2008-07-13T01:15:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2008-07-13:/2008/07/una-cita-para-repetir</id><content type="html">&lt;p&gt;Esto me lo apunto:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;La inteligencia es la habilidad de evitar hacer trabajo, y conseguir que el trabajo se haga.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Por Linus Benedict Torvalds&lt;/p&gt;</content><category term="Política y paranoias"></category><category term="citas"></category></entry><entry><title>12 de Junio de 1998</title><link href="https://victor.eu.org/2008/06/12-junio-1998" rel="alternate"></link><published>2008-06-12T17:04:00+02:00</published><updated>2008-06-12T17:04:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2008-06-12:/2008/06/12-junio-1998</id><content type="html">&lt;p&gt;Hoy hace 10 años que estoy por aquí. Conclusión: "It's change time".&lt;/p&gt;</content><category term="Estoy cansado de"></category><category term="trabajo"></category></entry><entry><title>40 de mayo</title><link href="https://victor.eu.org/2008/06/40-de-mayo" rel="alternate"></link><published>2008-06-10T22:05:00+02:00</published><updated>2008-06-10T22:05:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2008-06-10:/2008/06/40-de-mayo</id><content type="html">&lt;p&gt;Ayer fue 40 de mayo. Hoy día 41 es el día para quitarse el "sayo"... pero yo por más que miro en la calle la gente va más o menos vestida de la misma forma.&lt;/p&gt;</content><category term="Política y paranoias"></category></entry><entry><title>Crear un servidor de OpenID en mi propio dominio</title><link href="https://victor.eu.org/2008/05/crear-servidor-openid" rel="alternate"></link><published>2008-05-15T15:08:00+02:00</published><updated>2008-05-15T15:08:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2008-05-15:/2008/05/crear-servidor-openid</id><summary type="html">&lt;p&gt;Cada vez se habla más de &lt;a href="http://loq.es/openid/"&gt;OpenID&lt;/a&gt;, todavía hay pocos sitios que lo permiten usar para autentificarse pero van apareciendo. Lo bueno de la tecnología es que cualquiera puede crearse un servidor o puede hacer que se su sitio web use un servidor.&lt;/p&gt;
&lt;p&gt;Estos son los pasos que yo seguí …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Cada vez se habla más de &lt;a href="http://loq.es/openid/"&gt;OpenID&lt;/a&gt;, todavía hay pocos sitios que lo permiten usar para autentificarse pero van apareciendo. Lo bueno de la tecnología es que cualquiera puede crearse un servidor o puede hacer que se su sitio web use un servidor.&lt;/p&gt;
&lt;p&gt;Estos son los pasos que yo seguí para crearme un servidor de &lt;a href="http://loq.es/openid/"&gt;OpenID&lt;/a&gt; muy sencillitos y que son facilmente seguibles por cualquiera que tenga un dominio propio y una cuenta en &lt;a href="http://www.google.com/"&gt;Google&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;En &lt;a href="http://loq.es/openid/"&gt;OpenID&lt;/a&gt; es muy importante la URL que usas para autentificarse, casi tan importante como tu usuario y password, por eso no recomiendo a nadie que use el servidor de &lt;a href="http://loq.es/openid/"&gt;OpenID&lt;/a&gt; que haya creado un amigo siguiendo estos pasos.&lt;/p&gt;
&lt;p&gt;Pasos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Darte de alta en &lt;a href="http://www.blogger.com/"&gt;Blogger&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Crear un blog en &lt;a href="http://www.blogger.com/"&gt;Blogger&lt;/a&gt; (por ejemplo: openid.blogspot.com )&lt;/li&gt;
&lt;li&gt;Darle un contenido al nuevo blog. Algo así como "Este blog no tiene nada, llega y sobra" ;)&lt;/li&gt;
&lt;li&gt;Desactivar las cosas que no son necesarias. Tal como RSS/Atom comentarios, Archivo de entradas, etc, etc&lt;/li&gt;
&lt;li&gt;Modificar la plantilla para que quede más bonito ;)&lt;/li&gt;
&lt;li&gt;Modificar el DNS de tu servidor y añadir algo así como: ID.midominio.com CNAME ghs.google.com&lt;/li&gt;
&lt;li&gt;Modificar el nombre de dominio en blogger con "id.midominio.com"&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Listo, ahora cuando te encuentres con un sitio que acepte &lt;a href="http://loq.es/openid/"&gt;OpenID&lt;/a&gt; para autentificarse puedes escribir la URL id.midominio.com y después escribes tu usuario y password de &lt;a href="http://www.google.com/"&gt;Google&lt;/a&gt;/&lt;a href="http://www.blogger.com/"&gt;Blogger&lt;/a&gt;.&lt;/p&gt;</content><category term="Internet"></category><category term="openid"></category></entry><entry><title>Usar shtml</title><link href="https://victor.eu.org/2008/04/usar-shtml" rel="alternate"></link><published>2008-04-26T22:41:00+02:00</published><updated>2008-04-26T22:41:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2008-04-26:/2008/04/usar-shtml</id><summary type="html">&lt;p&gt;Hoy en día la verdad es que ya no se usa casi nada shtml pero para mostrar simplemente cosas como la fecha de creación de un fichero nos llega y sobra.&lt;/p&gt;
&lt;p&gt;El problema es que su extensión por defecto es shtml (que raro ¿no? ;) pero eso se puede cambiar facilmente …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hoy en día la verdad es que ya no se usa casi nada shtml pero para mostrar simplemente cosas como la fecha de creación de un fichero nos llega y sobra.&lt;/p&gt;
&lt;p&gt;El problema es que su extensión por defecto es shtml (que raro ¿no? ;) pero eso se puede cambiar facilmente con lo siguiente en nuestro htaccess&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;AddHandler server-parsed .html
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Si quisiesemos usar otra extensión tendríamos que hacer esto:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;AddType text/html .pepe
AddHandler server-parsed .pepe
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Por cierto, si lo que quieres hacer es cambiar la extensión de los ficheros php puedes usar algo así:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;AddType application/x-httpd-php .foo
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;O si usas cgis con extensión .pl o .cgi puedes usar:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;AddType application/x-httpd-cgi .foo
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Que bueno, puede dar un cierto toque a nuestro web, pero en el fondo es pura coquetería ;)&lt;/p&gt;</content><category term="Internet"></category><category term="apache"></category><category term="htaccess"></category><category term="shtml"></category></entry><entry><title>Curiosidades de csharp equals no siempre es lo mismo que ==</title><link href="https://victor.eu.org/2008/03/equals-no-siempre-es-lo-mismo" rel="alternate"></link><published>2008-03-21T19:44:00+01:00</published><updated>2008-03-21T19:44:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2008-03-21:/2008/03/equals-no-siempre-es-lo-mismo</id><summary type="html">&lt;p&gt;Fijaos y escribid esto en el Visual Studio&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;object o1 = 5;
object o2 = 5;

System.Diagnostics.Debug.WriteLine(o1 == o2);
System.Diagnostics.Debug.WriteLine(o1.Equals(o2));
System.Diagnostics.Debug.WriteLine(((Int32) o1).CompareTo(o2));
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;La respuesta es:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;False
True
0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;¿Por qué? Pues por que el tipo Int32 (recordemos …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Fijaos y escribid esto en el Visual Studio&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;object o1 = 5;
object o2 = 5;

System.Diagnostics.Debug.WriteLine(o1 == o2);
System.Diagnostics.Debug.WriteLine(o1.Equals(o2));
System.Diagnostics.Debug.WriteLine(((Int32) o1).CompareTo(o2));
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;La respuesta es:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;False
True
0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;¿Por qué? Pues por que el tipo Int32 (recordemos que esto se implemente usando struct lo que nos da un tipo por valor) sobreescribe el método Equals pero no el operador ==. Es decir == hace la comparación como una valirable por referencia, mientras que Equals lo hace como una variable por valor.&lt;/p&gt;
&lt;p&gt;Así que cuidadin cuando sobreescribáis cosas, yo cuando me pongo a sobreescribir prefiero sobreescribirlo todo, por lo que pueda pasar ;)&lt;/p&gt;</content><category term=".NET"></category><category term="csharp"></category><category term="visual studio"></category></entry><entry><title>Compartir ficheros en Visual Studio</title><link href="https://victor.eu.org/2008/02/compartir-ficheros-visual-studio" rel="alternate"></link><published>2008-02-24T21:17:00+01:00</published><updated>2008-02-24T21:17:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2008-02-24:/2008/02/compartir-ficheros-visual-studio</id><summary type="html">&lt;p&gt;Si deseas compartir ficheros en distintos proyectos de Visual Studio como clases comunes, claves para usar Strong Name, la cosa es muy sencilla.&lt;/p&gt;
&lt;p&gt;Tienes que añadir el fichero al proyecto como cualquier otro fichero, pero en el cuadro de dialogo fijate bien, en el botón Añadir hay una lista, si …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Si deseas compartir ficheros en distintos proyectos de Visual Studio como clases comunes, claves para usar Strong Name, la cosa es muy sencilla.&lt;/p&gt;
&lt;p&gt;Tienes que añadir el fichero al proyecto como cualquier otro fichero, pero en el cuadro de dialogo fijate bien, en el botón Añadir hay una lista, si la muestras aparecerá una opción que es "Añadir como un enlace" usala y listo ;)&lt;/p&gt;
&lt;p&gt;Hace tiempo que vi algunas soluciones que compartian fichero entre proyectos... y pasé un montón de tiempo buscando la opción para hacer esto... es más estaba convencido de que lo hacian modificando directamente el xml del proyecto, pero no... a final había una opción en el sitio que debería estar para hacer esto... y es que a veces me asusto de lo compliaco que puedo llegar a ser ;)&lt;/p&gt;</content><category term=".NET"></category><category term="net"></category><category term="visual studio"></category></entry><entry><title>Arrancar Outlook Minimizado</title><link href="https://victor.eu.org/2008/01/arrancar-outlook-minimizado" rel="alternate"></link><published>2008-01-26T10:58:00+01:00</published><updated>2008-01-26T10:58:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2008-01-26:/2008/01/arrancar-outlook-minimizado</id><summary type="html">&lt;p&gt;Uso mucho Outlook, es el primer programa que abro, y el ultimo en cerrar. Es más lo arranco nada más encender el ordenador, pero es una lata, siempre tengo que acordarme de minimizarlo yo manualmente. Pues bien, buscando encontré la forma de hacerlo automática. Estos son los pasos:&lt;/p&gt;
&lt;p&gt;Crear el …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Uso mucho Outlook, es el primer programa que abro, y el ultimo en cerrar. Es más lo arranco nada más encender el ordenador, pero es una lata, siempre tengo que acordarme de minimizarlo yo manualmente. Pues bien, buscando encontré la forma de hacerlo automática. Estos son los pasos:&lt;/p&gt;
&lt;p&gt;Crear el acceso directo, en el menú de inicio, y decirle que sea "Minimizado". Outlook arrancará minimizado si:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La ventana inicial no es Outlook para Hoy&lt;/li&gt;
&lt;li&gt;La última vez que se usó no fue cerrado con la ventana maximizada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para lo primero se puede desactivar Outlook para hoy, o decirle que habrá otra ventana, por ejemplo usando la linea de comandos outlook:inbox&lt;/p&gt;
&lt;p&gt;Para que arranque minimizado aunque la ultima vez se maximizase no hay solución sin "software de terceros".&lt;/p&gt;
&lt;p&gt;Yo me cree un acceso directo en el menú de inicio con lo siguiente&lt;/p&gt;
&lt;p&gt;"C:\Archivos de programa\Microsoft Office\OFFICE11\OUTLOOK.EXE" /nopollmail /select outlook:inbox&lt;/p&gt;
&lt;p&gt;Así me muestra la Bandeja de Entrada al arrancar, y no verifica en ese momento si hay correo, por lo que la carga es un poco más rápida.&lt;/p&gt;</content><category term="Internet, Windows"></category><category term="microsoft"></category><category term="outlook"></category><category term="windows"></category></entry><entry><title>Adios 2007</title><link href="https://victor.eu.org/2007/12/adios-2007" rel="alternate"></link><published>2007-12-31T19:52:00+01:00</published><updated>2007-12-31T19:52:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-12-31:/2007/12/adios-2007</id><summary type="html">&lt;p&gt;Hay algunos años que son más especiales que otros, y creo que este lo fue para mi. Empezó como cualquier otro año, pero es la primera vez que no me he sentido contento por cumplir un año más, por primera vez no estaba ansioso de cumplir uno más, por lo …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hay algunos años que son más especiales que otros, y creo que este lo fue para mi. Empezó como cualquier otro año, pero es la primera vez que no me he sentido contento por cumplir un año más, por primera vez no estaba ansioso de cumplir uno más, por lo que tuve que pensar.&lt;/p&gt;
&lt;p&gt;Pensar en las cosas que llevo hechas, y en las que me faltan por hacer. Pensar en las cosas que creía que tendría hechas a esta edad cuando era pequeño... y oye... que tampoco me puedo quejar :D&lt;/p&gt;
&lt;p&gt;Pero este año es de inflexión, el camino actual ya está recorrido, es hora de ir a otros lugares. No es hora de seguir los pasos de otros, es hora de que los demás sigan los mios.&lt;/p&gt;
&lt;p&gt;He dicho, y feliz año.&lt;/p&gt;</content><category term="Política y paranoias"></category><category term="otros"></category></entry><entry><title>Instalar llave USB TDT AF9015 en Linux</title><link href="https://victor.eu.org/2007/12/instalar-llave-usb-tdt-af9015-en-linux" rel="alternate"></link><published>2007-12-25T02:32:00+01:00</published><updated>2007-12-25T02:32:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-12-25:/2007/12/instalar-llave-usb-tdt-af9015-en-linux</id><summary type="html">&lt;p&gt;&lt;strong&gt;NOTA: Este artículo está un poco obsoleto. Escribí otro donde hablo de como &lt;a href="http://www.victor.eu.org/2009/05/instalar-tdt-usb-afatech-af9015-ubuntu/"&gt;Instalar la TDT en Ubuntu&lt;/a&gt; que no está anticuado.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Después de mucho tiempo esperándolo al fin se puede hacer... ya es posible configurar en Linux de una forma sencilla todas esa llaves USB que venden en todos …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;strong&gt;NOTA: Este artículo está un poco obsoleto. Escribí otro donde hablo de como &lt;a href="http://www.victor.eu.org/2009/05/instalar-tdt-usb-afatech-af9015-ubuntu/"&gt;Instalar la TDT en Ubuntu&lt;/a&gt; que no está anticuado.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Después de mucho tiempo esperándolo al fin se puede hacer... ya es posible configurar en Linux de una forma sencilla todas esa llaves USB que venden en todos los supermercados por poco dinero.&lt;/p&gt;
&lt;p&gt;La mayoría de los decodificadores &lt;a href="http://loq.es/tdt/"&gt;TDT&lt;/a&gt; baratos usan un chip fabricado por Afatech llamado AF9015 pues bien, estos son los pasos para ver la televisión con ellos.&lt;/p&gt;
&lt;p&gt;Hay que bajar driver de &lt;a href="http://af.zsolttech.com/"&gt;http://af.zsolttech.com/&lt;/a&gt; e instalarlo como root. Pongo los pasos que son necesarios actualmente, aunque lógicamente pueden cambiar, dependiendo de si tu Linux es 32 o 64 bits o si cambia el nombre del driver...&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    cd /tmp
    wget http://af.zsolttech.com/af901x-Taiwan.tar.gz
    tar xvzf af901x-Taiwan.tar.gz
    cd v4l-dvb-39c2d2041e6e/
    make
    make install
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Y listo... tarda un poco... y ni siquiera es necesario reiniciar el ordenador. Ahora para ver la televisión yo estoy usando Kaffeine pero podéis usar cualquier otro.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    sudo aptitude install kaffeine
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Para la configuración es sencilla y no creo que merezca ninguna explicación, lo único reseñable, es que el programa necesita que se le especifique las frecuencias en las que hay canales, hay varias ya definidas pero es probable que tengas que añadir la tuya propia en la carpeta \~/.kde/share/apps/kaffeine/dvb-t puedes buscar tu fichero con google o simplemente crear uno nuevo con las frecuencias de &lt;a href="http://www.tdt1.com/"&gt;http://www.tdt1.com/&lt;/a&gt; Si no encuentras el fichero, y no sabes/quieres hacer uno, no es obligatorio, pero la búsqueda de canales tardará un montón de tiempo.&lt;/p&gt;
&lt;p&gt;Y listo debería funcionar sin problemas... esto lo probé con Ubuntu 32 bits y funcionó perfectamente a la primera, además existen otros drivers para el chip AF9015 pero este es el más sencillo de instalar, y se rumorea que está creado por Afatech, pero si no os gusta podéis encontrar otros y más información en la página web que &lt;a href="http://www.linuxtv.org"&gt;Linux Tv&lt;/a&gt; dedica al chip &lt;a href="http://linuxtv.org/wiki/index.php/Afatech_AF9015"&gt;AF9015&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Otro día escribiré como preparar un sistema de grabación... os espero.&lt;/p&gt;</content><category term="Linux"></category><category term="AF9015"></category><category term="Afatech"></category><category term="driver"></category><category term="linux"></category><category term="tdt"></category><category term="ubuntu"></category></entry><entry><title>Cuales son los comandos de linux más usados</title><link href="https://victor.eu.org/2007/11/comandos-linux-mas-usados" rel="alternate"></link><published>2007-11-25T18:37:00+01:00</published><updated>2007-11-25T18:37:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-11-25:/2007/11/comandos-linux-mas-usados</id><content type="html">&lt;p&gt;Tenía pendiente una nota para guardar la siguiente línea de comandos:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;history&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="n"&gt;awk&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;{print $2}&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="n"&gt;awk&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;BEGIN {FS=&amp;quot;|&amp;quot;} {print $1}&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="n"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="n"&gt;uniq&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="n"&gt;sort&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;rn&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;No recuerdo de donde la saqué... pero vale para mostrar cuales son los comandos que más usas en tu linux.&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category></entry><entry><title>Google Https</title><link href="https://victor.eu.org/2007/11/google-https" rel="alternate"></link><published>2007-11-20T20:36:00+01:00</published><updated>2007-11-20T20:36:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-11-20:/2007/11/google-https</id><summary type="html">&lt;p&gt;Actualmente Google tiene una multitud de servicios. Para acceder a ellos a veces hay que usar http y otras https. Ultimamente soy un poco paranoico, y cuando envío datos más o menos delicados prefiero usar https.&lt;/p&gt;
&lt;p&gt;Pues bien, es una lata porque siempre te tienes que fijar si estas usando …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Actualmente Google tiene una multitud de servicios. Para acceder a ellos a veces hay que usar http y otras https. Ultimamente soy un poco paranoico, y cuando envío datos más o menos delicados prefiero usar https.&lt;/p&gt;
&lt;p&gt;Pues bien, es una lata porque siempre te tienes que fijar si estas usando http o https. Me acabo de crear un script para &lt;a href="http://www.greasespot.net/"&gt;Greasemonkey&lt;/a&gt; que comprueba las direcciones de los servicios de Google y cuando detecta una que funciona sobre https y se está usando http te reenvía a ella.&lt;/p&gt;
&lt;p&gt;Lo subí a &lt;a href="http://userscripts.org/"&gt;userscripts&lt;/a&gt; y le llamé &lt;a href="http://userscripts.org/scripts/show/14161"&gt;Google Https&lt;/a&gt; espero que sea útil.&lt;/p&gt;</content><category term="Internet"></category><category term="google"></category><category term="greasemonkey"></category><category term="https"></category><category term="scripts"></category></entry><entry><title>Adiós IRC-Hispano</title><link href="https://victor.eu.org/2007/10/adios-irchispano" rel="alternate"></link><published>2007-10-22T00:24:00+02:00</published><updated>2007-10-22T00:24:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-10-22:/2007/10/adios-irchispano</id><summary type="html">&lt;p&gt;Mi primer contacto con IRC fue casi al mismo tiempo que mi primer contacto con la Web, y con Internet en general. Casi toda mi vida en IRC la pasé en IRC-Hispano. Tenía una cuenta desde 1998, creada tan solo unas horas después de que IRC-Hispano.org naciese como un …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Mi primer contacto con IRC fue casi al mismo tiempo que mi primer contacto con la Web, y con Internet en general. Casi toda mi vida en IRC la pasé en IRC-Hispano. Tenía una cuenta desde 1998, creada tan solo unas horas después de que IRC-Hispano.org naciese como un split de una red antigua que se llamaba... IRC-Hispano.&lt;/p&gt;
&lt;p&gt;Pues bien... digo tenía.. porque hoy me acabo de dar cuenta de que hace 64 días que no la utilizo... mi querido nick lleva muerto 4 días. Descanse en paz.&lt;/p&gt;
&lt;p&gt;Hace tiempo que solo entraba para que no caducase, para seguir aferrándome a la única cuenta que guardaba desde aquellos días... pues bien... es definitivo... mi cuenta ha durado unos 9 años... fue un placer llevar ese nick tanto tiempo, pero no lo volveré a solicitar... para mi IRC es un protocolo muerto.&lt;/p&gt;
&lt;p&gt;Adiós viejo internet.&lt;/p&gt;</content><category term="Internet"></category><category term="internet"></category><category term="irc"></category></entry><entry><title>Resultados de los experimentos con el Spam</title><link href="https://victor.eu.org/2007/09/resultados-de-los-experimentos-con-el-spam" rel="alternate"></link><published>2007-09-01T19:47:00+02:00</published><updated>2007-09-01T19:47:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-09-01:/2007/09/resultados-de-los-experimentos-con-el-spam</id><summary type="html">&lt;p&gt;Hace unos días me decidí a hacer un experimento, me estaba llegando Spam con enlaces a google, escribo aquí como muestra algunas de las búsquedas que me estában llegando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.victor.eu.org/es/diario/2007/08/ereplicaexpess-one-thing-that-will-definitely-grab/"&gt;ereplicaexpess one thing that will definitely grab&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;webmortgate123 Illinois Mortgage Mortgage Illinois&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.victor.eu.org/es/diario/2007/08/ereplicaexpess-one-thing-that-will-definitely-grab/"&gt;ereplicaexpess.com one thing that will definitely grab&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;thelowratemortage …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;Hace unos días me decidí a hacer un experimento, me estaba llegando Spam con enlaces a google, escribo aquí como muestra algunas de las búsquedas que me estában llegando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.victor.eu.org/es/diario/2007/08/ereplicaexpess-one-thing-that-will-definitely-grab/"&gt;ereplicaexpess one thing that will definitely grab&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;webmortgate123 Illinois Mortgage Mortgage Illinois&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.victor.eu.org/es/diario/2007/08/ereplicaexpess-one-thing-that-will-definitely-grab/"&gt;ereplicaexpess.com one thing that will definitely grab&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;thelowratemortage alaska-real-estate Alaska homes for sale&lt;/li&gt;
&lt;li&gt;cash777win Welcome to the Vegas VIP Casino&lt;/li&gt;
&lt;li&gt;thelowratemortage california-real-estate California homes&lt;/li&gt;
&lt;li&gt;thelowratemortage.com alabama-real-estate real estate in Alabama&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pues milagrosamente Google decidió que mi página era más importante que la página del Spamer y me envió un montón de visitas, y puedo decir que estas visitas buscan desesperadamente nuevos enlaces.&lt;/p&gt;
&lt;p&gt;La verdad es que no me esperaba que tantas personas llegasen a mi web, y sobretodo no me esperaba que tantas personas hiciesen click en &lt;em&gt;todos&lt;/em&gt; los enlaces de mi pagina.&lt;/p&gt;</content><category term="Estoy cansado de"></category><category term="spam"></category></entry><entry><title>ereplicaexpess one thing that will definitely grab</title><link href="https://victor.eu.org/2007/08/ereplicaexpess-one-thing-that-will-definitely-grab" rel="alternate"></link><published>2007-08-31T12:26:00+02:00</published><updated>2007-08-31T12:26:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-08-31:/2007/08/ereplicaexpess-one-thing-that-will-definitely-grab</id><summary type="html">&lt;p&gt;El Spam avanza que es una barbaridad. Antes ponían un enlace a su web, después a dominios falsos que se redirigían a su web, después usando los servicios tipo tinyurl y similares... pero ahora usan directamente a google. ¿la técnica?&lt;/p&gt;
&lt;p&gt;Pues muy sencillo, te haces una búsqueda en Google que …&lt;/p&gt;</summary><content type="html">&lt;p&gt;El Spam avanza que es una barbaridad. Antes ponían un enlace a su web, después a dominios falsos que se redirigían a su web, después usando los servicios tipo tinyurl y similares... pero ahora usan directamente a google. ¿la técnica?&lt;/p&gt;
&lt;p&gt;Pues muy sencillo, te haces una búsqueda en Google que solo devuelva como resultado tu página web, y en los correos de spam le dices a los incautos que busquen esa palabra/texto o en el correo pones un enlace a Google con una búsqueda del tipo "Voy a tener suerte".&lt;/p&gt;
&lt;p&gt;¿El resultado? Pues que los filtros de Spam marcan tu correo como Spam... aunque lo has intentando.&lt;/p&gt;
&lt;p&gt;Por cierto... acabo de recibir un correo con la búsqueda:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ereplicaexpess one thing that will definitely grab&lt;/li&gt;
&lt;li&gt;ereplicaexpess.com one thing that will definitely grab&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso se me ocurrió escribir este mensaje.&lt;/p&gt;</content><category term="Estoy cansado de"></category><category term="spam"></category></entry><entry><title>Optimizar el acceso a disco en Windows con NTFS</title><link href="https://victor.eu.org/2007/08/optimizar-acceso-disco-windows-ntfs" rel="alternate"></link><published>2007-08-09T14:04:00+02:00</published><updated>2007-08-09T14:04:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-08-09:/2007/08/optimizar-acceso-disco-windows-ntfs</id><summary type="html">&lt;p&gt;Acabo de leer hace unas horas en el blog de &lt;a href="http://mnm.uib.es/gallir/"&gt;Ricardo Galli&lt;/a&gt; un pequeño truquito para &lt;a href="http://mnm.uib.es/gallir/posts/2007/08/09/1140/"&gt;mejorar el rendimiento del disco de nuestro Linux&lt;/a&gt;, de una forma muy sencilla. Pues bien, hace tiempo que tenía pendiente yo un artículo similar pero para Windows.&lt;/p&gt;
&lt;p&gt;La verdad es que a veces me …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Acabo de leer hace unas horas en el blog de &lt;a href="http://mnm.uib.es/gallir/"&gt;Ricardo Galli&lt;/a&gt; un pequeño truquito para &lt;a href="http://mnm.uib.es/gallir/posts/2007/08/09/1140/"&gt;mejorar el rendimiento del disco de nuestro Linux&lt;/a&gt;, de una forma muy sencilla. Pues bien, hace tiempo que tenía pendiente yo un artículo similar pero para Windows.&lt;/p&gt;
&lt;p&gt;La verdad es que a veces me sorprende que Linux y Windows tengan los mismos problemas de rendimiento y practicamente la misma solución... ¿Por qué será? ;)&lt;/p&gt;
&lt;p&gt;"Parafraseando a &lt;a href="http://mnm.uib.es/gallir/"&gt;Gallir&lt;/a&gt;": Para cada fichero se almacenan una serie de “metadatos”, entre ellos la fecha/hora del ultimo acceso a un fichero, eso significa que aunque se acceda a un fichero para sólo lectura se genera una escritura al disco para actualizar la hora de acceso, ya no solo de él, también de todos los directorios en que se encuentra. Pues bien, para desactivarlo hay que ejecutar lo siguiente en el CMD:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;fsutil behavior set disablelastaccess 1&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Además (y esto por suerte no pasa en Linux), cada vez que creamos un fichero/directorio se genera un nombre para ese fichero del tipo 8.3 (8 caracteres para su nombre, y 3 para su extensión). Como las aplicaciones actuales hace mucho tiempo que no necesitan eso para nada se puede desactivar con el siguiente comando:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;fsutil behavior set disable8dot3 1&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Cuidadín con esto... si tienes problemas con alguna aplicación (Por ejemplo antiguas aplicaciones de Windows 3.1) puedes volver a activarlo así:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;fsutil behavior set disable8dot3 0&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Y mañana más ;)&lt;/p&gt;</content><category term="Windows"></category><category term="linux"></category><category term="optimizar"></category><category term="windows"></category></entry><entry><title>Cómo conseguir un dominio eu.org</title><link href="https://victor.eu.org/2007/07/conseguir-dominio-euorg" rel="alternate"></link><published>2007-07-27T19:14:00+02:00</published><updated>2007-07-27T19:14:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-07-27:/2007/07/conseguir-dominio-euorg</id><summary type="html">&lt;p&gt;De vez en cuando recibo algún mensaje pidiéndome ayuda para dar de alta un dominio .eu.org antes solía responder, pero dejé de hacerlo, porque me puse a escribir un post indicando los pasos a seguir... pues bien... este es el famoso post.&lt;/p&gt;
&lt;p&gt;Los dominios eu.org no están pensados …&lt;/p&gt;</summary><content type="html">&lt;p&gt;De vez en cuando recibo algún mensaje pidiéndome ayuda para dar de alta un dominio .eu.org antes solía responder, pero dejé de hacerlo, porque me puse a escribir un post indicando los pasos a seguir... pues bien... este es el famoso post.&lt;/p&gt;
&lt;p&gt;Los dominios eu.org no están pensados para "el gran público" la página web para darlos de alta es bastante tosca, y por supuesto no ofrecen hosting ni servidores de dns.&lt;/p&gt;
&lt;h2&gt;¿Qué se necesita antes de empezar?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Máquina con un servidor Web. Vamos el hosting de toda la vida. Puede ser cualquiera, aunque debería ser europeo.&lt;/li&gt;
&lt;li&gt;Máquina con un servidor de DNS. Aquí ya se complican más las cosas. Es muy importante que el servidor esté funcionando antes de crear el dominio.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;¿Cómo empezamos?&lt;/h2&gt;
&lt;p&gt;Primero nos damos de alta en algún sitio para tener el servidor web (los hay gratis, de pago, buenos, malos, baratos, caros...)&lt;br&gt;
Después tenemos que dar de alta el dominio en el servidor de dns. El hosting de pago suele tener servidores de dns propios. Pero ojo, para poder usar el servidor es muy importante lo configures antes de que pedir el dominio eu.org. Si tu hosting de pago no permite esto, siempre puede darte de alta en &lt;a href="http://www.everydns.net"&gt;everydns&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;¿Cómo seguimos?&lt;/h2&gt;
&lt;p&gt;Pues bien, una vez configurado el servidor web, y el servidor de dns, ya podemos darnos de alta en eu.org en la siguiente página &lt;a href="http://www.eu.org/form_n.html"&gt;http://www.eu.org/form_n.html&lt;/a&gt; los datos tienen que reales. Cuando pulses el botón submit, harán una comprobación de que los datos son correctos, y miraran si has puesto bien los servidores de dns, y también comprobarán si realmente tu dominio ya está funcionando en ellos. Si pasas la validación, te enviarán un correo que tienes que responder.&lt;/p&gt;
&lt;h2&gt;¿Y ahora?&lt;/h2&gt;
&lt;p&gt;En ese momento, alguien revisará tu solicitud y procederá a aprobarla o denegarla. Pueden pasar varios meses hasta que esto pase (si has leído bien, pueden pasar literalmente varios meses), y cuando ocurra te enviarán un correo. (ten cuidado con tu filtro de spam).&lt;/p&gt;
&lt;p&gt;En ese momento deberías comprobar que el sevidor web, y el servidor de dns están correctamente configurados, por ejemplo si usas everydns es probable que tengas que volver a darte de alta, porque periódicamente revisan todos los dominios que tienen configurados, y si detectan que uno no está activo lo borran automáticamente.&lt;/p&gt;
&lt;p&gt;Estos son todos los pasos, realmente creo que no soy muy claro con las explicaciones... pero es que... tampoco hay mucho más que explicar... además creo que si necesitas leer este post para crear un dominio .eu.org no deberías crear uno, estos dominios no están pensados para ser populares, si quieres un dominio gratuito y fácil de configurar... te recomiendo los que ofrecen en &lt;a href="http://www.dyndns.com"&gt;dyndns.com&lt;/a&gt;&lt;/p&gt;</content><category term="Internet"></category><category term="dns"></category><category term="eu.org"></category><category term="hosting"></category></entry><entry><title>Sistemas operativos y principios</title><link href="https://victor.eu.org/2007/07/sistemas-operativos-y-principios" rel="alternate"></link><published>2007-07-25T05:43:00+02:00</published><updated>2007-07-25T05:43:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-07-25:/2007/07/sistemas-operativos-y-principios</id><summary type="html">&lt;p&gt;Les voy a contar una cosa... mi primer sistema operativo fue IBM PC-DOS 4.01 el supuestamente primer sistema operativo de Microsoft multitarea (no confundir con el MS-DOS 4.0) y el Windows 3.0, todo ello en una máquina IBM PS/1 que era un 386SX con 2 megas …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Les voy a contar una cosa... mi primer sistema operativo fue IBM PC-DOS 4.01 el supuestamente primer sistema operativo de Microsoft multitarea (no confundir con el MS-DOS 4.0) y el Windows 3.0, todo ello en una máquina IBM PS/1 que era un 386SX con 2 megas de ram.&lt;/p&gt;
&lt;p&gt;Al tiempo descubrí Linux pero nunca pude instalarlo porque para instalarlo en esa máquina tenía que usar 2 disquetes y por una extraña razón al insertar el segundo no lo reconocía.&lt;/p&gt;
&lt;p&gt;Con una nueva máquina ya pude instalar Linux y practicar con él, me gustaba mucho. Por cosas del trabajo, tuve que aprender mucho de Windows, y llegó un momento que tuve que borrar Linux de mi disco duro para hacerle espacio, y no volvió a aparecer hasta muchos años después con el aspecto de Ubuntu.&lt;/p&gt;
&lt;p&gt;Hoy en día, tengo varios ordenadores "operativos" y en todos ellos menos en el que uso a diario uso Ubuntu, pero me gustaría deshacerse de mi Windows XP... y pasar a un Vista pero no puedo, porque mi portátil no tiene drivers para él, o me gustaría pasar a Ubuntu, pero no existe versión de Microsoft Outlook para Linux ni tampoco existe versión de Microsoft Visual Studio 2005 para Linux.&lt;/p&gt;
&lt;p&gt;Sería un detalle que Microsoft migrase esos dos productos (que nadie me venga con imitaciones baratas de ellos, creo que a día de hoy, no hay ninguna herramienta que los iguale ni a años luz).&lt;/p&gt;
&lt;p&gt;Es curioso, como después de probar alguna vez todos los sistemas operativos de Microsoft (creo que me falta el Windows NT 3.5) y usar todos los posteriores al PC-DOS 4.01 (MS-DOS 5, 6, 6.2, 6.22 creo recordar) y probar todos los Windows y usar todos los posteriores al Windows 3.0 (3.0, 3.1, 3.11, 95, 98, Me, NT 4.0, 2000, 2003) hoy en día ya no tengo ganas de seguir probando nuevos sistemas operativos, creo que con Ubuntu ya me llega y sobra para mis necesidades.&lt;/p&gt;
&lt;p&gt;Quien me ha visto y quien me ve... antes estaba ansioso de probar cada sistema operativo de Microsoft... creo que estoy aprendiendo que la tecnología por la tecnología no tiene mucho sentido.&lt;/p&gt;</content><category term="Sistemas operativos"></category></entry><entry><title>La experiencia y los idiotas</title><link href="https://victor.eu.org/2007/07/la-experiencia-y-los-idiotas" rel="alternate"></link><published>2007-07-22T05:19:00+02:00</published><updated>2007-07-22T05:19:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-07-22:/2007/07/la-experiencia-y-los-idiotas</id><content type="html">&lt;p&gt;Una cita que me hizo mucha gracia cuando la leí&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Nunca discutas con un idiota. Al final te hacen rebajarte a su nivel y entonces te acaban ganando debido a su mayor experiencia.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Leído en &lt;a href="http://palabraharry.blogspot.com/2006/01/quotes.html"&gt;La Palabra Harry&lt;/a&gt;&lt;/p&gt;</content><category term="Política y paranoias"></category></entry><entry><title>Para que sirve la arroba en csharp</title><link href="https://victor.eu.org/2007/07/para-que-sirve-la-arroba-en-csharp" rel="alternate"></link><published>2007-07-07T05:48:00+02:00</published><updated>2007-07-07T05:48:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-07-07:/2007/07/para-que-sirve-la-arroba-en-csharp</id><summary type="html">&lt;p&gt;Una nota rápida y directa,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Pregunta: ¿Para que sirve la arroba en csharp?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Respuesta: Basicamente para nada&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En csharp se pueden definir métodos/variables/etc como "@nombre" en ese caso la arrobita no vale para nada. Si existe es para poder definir métodos/variables/etc usando algún nombre reservado. Por …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Una nota rápida y directa,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Pregunta: ¿Para que sirve la arroba en csharp?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Respuesta: Basicamente para nada&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En csharp se pueden definir métodos/variables/etc como "@nombre" en ese caso la arrobita no vale para nada. Si existe es para poder definir métodos/variables/etc usando algún nombre reservado. Por ejemplo podemos definir: "int \@if;" es decir... así creamos una variable que se llama "if".&lt;/p&gt;
&lt;p&gt;Vamos... lo dicho... la arroba en csharp no vale para nada.&lt;/p&gt;</content><category term=".NET"></category><category term="csharp"></category><category term="net"></category></entry><entry><title>Uso de FOR en MSDOS</title><link href="https://victor.eu.org/2007/06/uso-de-for-en-msdos" rel="alternate"></link><published>2007-06-02T23:55:00+02:00</published><updated>2007-06-02T23:55:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-06-02:/2007/06/uso-de-for-en-msdos</id><summary type="html">&lt;p&gt;Este es un comando para MS-DOS de los que se pueden calificar de "fiki" o "muy friki". Si alguna vez necesiaste llamar a un mismo comando pero pasando como parámetro distintos ficheros, seguro que tuviste que hacer algún programita o algo similar, pues bien... no era necesario, porque tambien se …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Este es un comando para MS-DOS de los que se pueden calificar de "fiki" o "muy friki". Si alguna vez necesiaste llamar a un mismo comando pero pasando como parámetro distintos ficheros, seguro que tuviste que hacer algún programita o algo similar, pues bien... no era necesario, porque tambien se pueden hacer bucles FOR en la linea de comandos.&lt;/p&gt;
&lt;p&gt;Ojo... esto no es un BASH pero si que permite algunas cosas.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;for %i in (*.avi) do mi-comando "%i"&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Eso ejecutaría "mi-comando fichero.avi" tantas veces como ficheros avis tuviese nuestro directorio.&lt;/p&gt;</content><category term="MS-DOS, Programación"></category><category term="msdos"></category></entry><entry><title>Reproducir vídeo en la consola</title><link href="https://victor.eu.org/2007/05/reproducir-video-en-la-consola" rel="alternate"></link><published>2007-05-20T16:58:00+02:00</published><updated>2007-05-20T16:58:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-05-20:/2007/05/reproducir-video-en-la-consola</id><summary type="html">&lt;p&gt;Bueno... antes de nada... decir que cuando hablo de consola no me estoy refiriendo a ese mueble, o a el cacharrito ese para jugar principalmente... me refiero a ese sitio negro y oscuro donde se teclean cosas... o también llamado linea de comandos.&lt;/p&gt;
&lt;p&gt;Pues bien... ultimamente uso bastante la consola …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Bueno... antes de nada... decir que cuando hablo de consola no me estoy refiriendo a ese mueble, o a el cacharrito ese para jugar principalmente... me refiero a ese sitio negro y oscuro donde se teclean cosas... o también llamado linea de comandos.&lt;/p&gt;
&lt;p&gt;Pues bien... ultimamente uso bastante la consola para hacer administración remota, y... el otro día quería comprobar si una película estaba bien... y me vi en la necesidad de intentar reproducirla, si, si, desde la misma consola y en modo texto. ¿cómo? pues usando mplayer (si no lo tienes ya sabréis "sudo aptitude install mplayer".&lt;/p&gt;
&lt;p&gt;La sintaxis que use fue esta:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;mplayer -vo aa fichero.avi&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;La verdad es que se ven cosas por pantalla... pero la película ver... lo que se dice ver... no se veía mucho. Tal vez con anime se vea mejor... pero no era el caso.&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="mplayer"></category><category term="videos"></category></entry><entry><title>Cambiar MTU para Yoigo</title><link href="https://victor.eu.org/2007/05/cambiar-mtu-para-yoigo" rel="alternate"></link><published>2007-05-01T20:19:00+02:00</published><updated>2007-05-01T20:19:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-05-01:/2007/05/cambiar-mtu-para-yoigo</id><summary type="html">&lt;p&gt;No se porque, pero para conectar a internet con Yoigo hay que cambiar el valor del MTU (no me preguntes lo que es... a mi también me sorprendió la primera vez que lo leí).&lt;/p&gt;
&lt;p&gt;La cosa es que para que la conexión a Internet de Yoigo vaya mejor, hay que …&lt;/p&gt;</summary><content type="html">&lt;p&gt;No se porque, pero para conectar a internet con Yoigo hay que cambiar el valor del MTU (no me preguntes lo que es... a mi también me sorprendió la primera vez que lo leí).&lt;/p&gt;
&lt;p&gt;La cosa es que para que la conexión a Internet de Yoigo vaya mejor, hay que reducir el tamaño del MTU porque es demasiado grande.&lt;/p&gt;
&lt;p&gt;El valor debe estar entre: 472 y 1400 (creo que es un valor sacado empíricamente... así que prueba lo que mejor te va). Pero si quieres puedes usar el programa &lt;a href="http://www.speedguide.net/downloads.php"&gt;TCP OPTIMIZER&lt;/a&gt; que tiene una opción para determinar cual es el mejor valor para tu conexión/PC.&lt;/p&gt;
&lt;p&gt;El &lt;a href="http://www.speedguide.net/downloads.php"&gt;TCP OPTIMIZER&lt;/a&gt; supuestamente nos permite establecer el valor adecuado automáticamente, pero en mi PC no me deja seleccionar la conexión de Yoigo, por lo que solo lo uso para determinar el valor más adecuado de MTU.&lt;/p&gt;
&lt;p&gt;Pues bien, para cambiarlo en Windows hay que seguir las indicaciones de &lt;a href="http://support.microsoft.com/kb/826159/es"&gt;Microsoft&lt;/a&gt; pero la verdad es que son un auténtico lío. Para eso me hice un pequeño archivito .reg que hace las deificaciones automáticamente.&lt;/p&gt;
&lt;p&gt;Así que copia y pega las siguientes 5 lineas en un fichero txt con la extensión .reg y ejecútalo.&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NdisWan\Parameters\Protocols\0]
&amp;quot;ProtocolType&amp;quot;=dword:00000800
&amp;quot;PPPProtocolType&amp;quot;=dword:00000021
&amp;quot;ProtocolMTU&amp;quot;=dword:00000200
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;/blockquote&gt;
&lt;p&gt;La última línea es tal vez la más importante es donde se le indica el tamaño del MTU, en este caso se pone 512 (lo que pasa es que tiene que estar en hexadecimal por eso ves 200). Pues bien, si deseas poner otro valor deberás cambiar y en vez de 200 habrá que poner el valor que desees (acuérdate de que tiene que estar en hexadecimal)&lt;/p&gt;
&lt;p&gt;Le pegas un reinicio al PC y la conexión de Yoigo irá igual de lenta pero te dejará conectar a sitios como gmail y similares ;)&lt;/p&gt;
&lt;p&gt;Antes de que se me olvide, en el blog "no oficial" de Yoigo hace un tiempo hablaban de esto. Pásate por ahí también &lt;a href="http://yoigo.blogspot.com/2007/01/mtu-problemas-mtu-gmail-msn-hotmail.html"&gt;http://yoigo.blogspot.com/2007/01/mtu-problemas-mtu-gmail-msn-hotmail.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hasta la próxima!&lt;/p&gt;</content><category term="Internet"></category><category term="conexion"></category><category term="internet"></category><category term="yoigo"></category></entry><entry><title>Clonar el disco duro con un Norton Ghost legal</title><link href="https://victor.eu.org/2007/04/clonar-el-disco-duro-con-un-norton-ghost" rel="alternate"></link><published>2007-04-28T21:54:00+02:00</published><updated>2007-04-28T21:54:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-04-28:/2007/04/clonar-el-disco-duro-con-un-norton-ghost</id><summary type="html">&lt;p&gt;No se si es casualidad, pero casi todos los informáticos que se dedican a cosas de sistemas tienen entre sus millones de discos uno con una copia de Norton Ghost que no se sabe muy bien de donde salió.&lt;/p&gt;
&lt;p&gt;Para los que no lo conozcan el Ghost es una herramienta …&lt;/p&gt;</summary><content type="html">&lt;p&gt;No se si es casualidad, pero casi todos los informáticos que se dedican a cosas de sistemas tienen entre sus millones de discos uno con una copia de Norton Ghost que no se sabe muy bien de donde salió.&lt;/p&gt;
&lt;p&gt;Para los que no lo conozcan el Ghost es una herramienta para MS-DOS que sirve para hacer una copia exacta de nuestro disco duro, o como se suele decir... sirve para clonar un disco duro.&lt;/p&gt;
&lt;p&gt;Realmente hoy en día no es una herramienta para MS-DOS, hoy en día es una aplicación para windows, que sirve para hacer copias de seguridad del disco... por lo que la versión que se sigue usando mayoritariamente es la versión esa que iba en un disquete y que era para MS-DOS. Así que hoy en día es imposible comprar la versión "clásica" de ese programa.&lt;/p&gt;
&lt;p&gt;El otro día estuve pensando como se puede hacer hoy en día todo lo que hacía el Norton Ghost y añadirle alguna que otra funcionalidad, como yo que se... poder hacer clonaciones de discos en red o usb... lo curioso es que ya conocía un programa que me permitia hacer todo eso. Es más... lo tenia instalado y todo... ese programa se llama Linux.&lt;/p&gt;
&lt;p&gt;Pues bien... para sustituir al Norton Ghost solo se necesita una distribución de linux de esas que se llaman "live" y listo. La arrancamos en el pc a clonar y ejecutamos:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;--&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;haciendo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;copia&lt;/span&gt;
&lt;span class="cp"&gt;#dd if=/dev/hda1 bs=2048 of=/dev/hda2 &lt;/span&gt;
&lt;span class="o"&gt;--&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;restaurando&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;copia&lt;/span&gt;
&lt;span class="cp"&gt;#dd if=/dev/hda2 bs=2048 of=/dev/hda1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Para hacer una copia en un fichero:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;--&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;haciendo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;copia&lt;/span&gt;
&lt;span class="cp"&gt;#dd if=/dev/hda1 bs=2048 of=archivo &lt;/span&gt;
&lt;span class="o"&gt;--&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;restaurando&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;copia&lt;/span&gt;
&lt;span class="cp"&gt;#dd if=archivo bs=2048 of=/dev/hda1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Yo prefiero generar un fichero comprimido por lo que suelo usar esta otra linea:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;#&lt;span class="nv"&gt;dd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="nv"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;hda1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2048&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;gzip&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;c&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;algun&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;destino&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;disco&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;clonado&lt;/span&gt;.&lt;span class="nv"&gt;gz&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Después si se desea guardar en un CD se puede partir el fichero por ejemplo:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;#split -b 700m disco-clonado.gz disco-clonado.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Para unir los ficheros resultantes nos llegará con usar algo así:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;#cat disco-clonado.* &amp;gt; disco-clonado.gz
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Por cierto... si vuestra distribución de linux no tiene el comando dd no os preocupeis podeis usar cat... por ejemplo:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;#cat /dev/hda1 | gzip -c &amp;gt; /algun/destino/disco-clonado.gz
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Y claro, para hacer la copia en red sencillo, solo hay que montar una unidad de red y listo. El principal problema que le veo a este sistema, es que el backup se hace de todos los sectores del disco duro, por lo que si tenemos un disco de 500gigas resultará un fichero de 500gigas aunque realmente solo tengamos ocupados un par de ellos. Para tener un fichero con solo los datos ocupados, en vez de cat o dd deberemos usar otros programas.&lt;/p&gt;</content><category term="Informática"></category><category term="ghost"></category><category term="linux"></category><category term="sistemas"></category></entry><entry><title>Frases que me hacen pensar</title><link href="https://victor.eu.org/2007/03/frases-que-me-hacen-pensar" rel="alternate"></link><published>2007-03-12T08:51:00+01:00</published><updated>2007-03-12T08:51:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-03-12:/2007/03/frases-que-me-hacen-pensar</id><content type="html">&lt;p&gt;Me hizo pensar esta frase:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Lista de cosas para hacer hoy:&lt;br&gt;
"Comprar mantequilla, disfrutar, ver mundo y ser feliz"&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Eva Ibáñez - 6 Años. Cita aparecida en &lt;a href="http://akas.imdb.com/title/tt0870872/"&gt;El Hormiguero&lt;/a&gt; programa dirigido y presentado por &lt;a href="http://akas.imdb.com/name/nm1890673/"&gt;Pablo Motos&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pues vale, yo voy a seguir la mismita lista... envidioso que soy ;)&lt;/p&gt;</content><category term="Política y paranoias"></category></entry><entry><title>A veces veo cosas sin sentido en los doubles de .NET</title><link href="https://victor.eu.org/2007/03/cosas-sin-sentido-en-los-doubles" rel="alternate"></link><published>2007-03-02T23:20:00+01:00</published><updated>2007-03-02T23:20:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-03-02:/2007/03/cosas-sin-sentido-en-los-doubles</id><summary type="html">&lt;p&gt;A veces veo cosas sin sentido en los doubles de .NET hace tiempo descubrí que &lt;a href="http://www.victor.eu.org/es/diario/2006/12/dividir_por_cero_con_visualbasic_seguro_que_no_adivinas_el_resultado.html"&gt;dividir un número por cero no generaba una excepción&lt;/a&gt;... para ser justos aquella vez estaba usando Integers... pero también era curioso.&lt;/p&gt;
&lt;p&gt;Pues hoy voy y me doy cuenta de que&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Double.Parse(Double.MaxValue.ToString …&lt;/p&gt;&lt;/blockquote&gt;</summary><content type="html">&lt;p&gt;A veces veo cosas sin sentido en los doubles de .NET hace tiempo descubrí que &lt;a href="http://www.victor.eu.org/es/diario/2006/12/dividir_por_cero_con_visualbasic_seguro_que_no_adivinas_el_resultado.html"&gt;dividir un número por cero no generaba una excepción&lt;/a&gt;... para ser justos aquella vez estaba usando Integers... pero también era curioso.&lt;/p&gt;
&lt;p&gt;Pues hoy voy y me doy cuenta de que&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Double.Parse(Double.MaxValue.ToString())&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Es curioso que no se pueda parsear el mayor double posible... algo así como que el mayor double posible no es un double... vamos 100% absurdo.&lt;/p&gt;
&lt;p&gt;Pues realmente no es absurdo de todo, tiene su sentido. Lo que pasa es que Double y Single son dos tipos de datos "imprecisos" digamos que hay unos bits que representan el número y pasa que al hacerle el ToString a esos bits el ordenador nos devuelve un número aproximado. En este caso el string que nos devuelve es tan aproximado que el parser no lo entiende.&lt;/p&gt;
&lt;p&gt;Si deseamos obtener un número que si se pueda parsear deberemos reescribir nuestro código así:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Double.Parse(Double.MaxValue.ToString("r"))&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Eso si, estaremos desperdiciando ciclos de nuestro procesador, porque es bastante más estricto calculando el número.&lt;/p&gt;
&lt;p&gt;Si nos encontramos con este problema, yo os recomendaría que en vez de usar un Double usaseis un tipo Decimal, ya que este es 100% preciso, y así os olvidáis de los gritos del cliente histérico de turno diciendo que le faltan dos céntimos de los miles de millones de facturación de este año.&lt;/p&gt;
&lt;p&gt;Por cierto, si se repite el ejemplo con un tipo Single no falla... y es que el single es tan simple y tiene tan poca precisión y no se entera de la mitad de las cosas de su hermano mayor double ;)&lt;/p&gt;</content><category term=".NET"></category><category term="csharp"></category><category term="net"></category><category term="visual basic"></category></entry><entry><title>GNU screen</title><link href="https://victor.eu.org/2007/02/gnu-screen" rel="alternate"></link><published>2007-02-28T11:42:00+01:00</published><updated>2007-02-28T11:42:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-02-28:/2007/02/gnu-screen</id><summary type="html">&lt;p&gt;GNU Screen es un programita de esos que marca un antes y un después; Suelo conectarme mucho usando ssh y antes era un lío cuando la conexión se caía, porque tenía que volver a abrir todos los programas... con screen ya no es necesario.&lt;/p&gt;
&lt;p&gt;Con screen puedes abrir una sesión …&lt;/p&gt;</summary><content type="html">&lt;p&gt;GNU Screen es un programita de esos que marca un antes y un después; Suelo conectarme mucho usando ssh y antes era un lío cuando la conexión se caía, porque tenía que volver a abrir todos los programas... con screen ya no es necesario.&lt;/p&gt;
&lt;p&gt;Con screen puedes abrir una sesión en las X, y pasarla a modo texto, o acceder a los programas que se ejecutan desde una sesión SSH. Además con screen puedes mantener abierto ese programa que usas para bajar pelis sin dejar la sesión abierta en tu ordenador.&lt;/p&gt;
&lt;p&gt;Para arrancar GNU Screen simplemente hay que ejecutar el comando screen y te aparece un mensaje, pulsas una tecla y vuelves a bash. Ya estás dentro, abre un editor. Conectate desde otra máquina usando ssh y ejecuta "screen -r" y "gualá" ahí está tu editor.&lt;/p&gt;
&lt;p&gt;Para cerrar screen la única forma es cerrando todas las sesiones que estás ejecutando dentro de él... vamos... tienes que escribir exit en todos tus bash ;)&lt;/p&gt;
&lt;p&gt;Si quieres cerrar tu sesión, pero dejar ejecutando tus programas en una sesión de screen tienes que pulsar Control-a+d y cerrar la sesión con el clásico exit... no te preocupes si vuelves a abir la sesión y escribes screen -r volverás a ver tus programas.&lt;/p&gt;
&lt;p&gt;Últimamente sigo añadiendo notas para archivar y no olvidarme al manejar un Ubuntu o un Linux en general ;) gracias a &lt;a href="http://blog.folksonomy.com"&gt;Juan Pablo Puerta alias EWS&lt;/a&gt; por su gran blog, porque si no fuese por él nunca habría conocido esta herramienta.&lt;/p&gt;
&lt;p&gt;Si alguien necesita más información ya sabe, "man screen" o también se puede pasar por este articulo escrito por EWS donde habla de screen &lt;a href="http://suburbia.sindominio.net/spip.php?article147"&gt;http://suburbia.sindominio.net/spip.php?article147&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Y para acabar... os dejo mi chuleta rápida con los comandos más "socorridos" de screen.&lt;/p&gt;
&lt;p&gt;Para iniciar screen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;screen - Iniciamos una nueva sesión de screen&lt;/li&gt;
&lt;li&gt;screen -r - Nos reconectamos a una sesión de screen ya existente&lt;/li&gt;
&lt;li&gt;screen -w - Nos reconectamos a una sesión de screen ya existente y que ya se está mostrando por un terminal.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Teclas de acceso rápido&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;control-a+" (comillas dobles) - Lista de las ventanas abiertas.&lt;/li&gt;
&lt;li&gt;control-a+n y control-a+p - Ventana Next, Ventana Previous.&lt;/li&gt;
&lt;li&gt;control-a+Número - Va a la ventana indicada&lt;/li&gt;
&lt;li&gt;control-a+w - Lista rápida de ventanas.&lt;/li&gt;
&lt;li&gt;control-a+d - deatached. Soltamos la conexión de screen.&lt;/li&gt;
&lt;li&gt;control-a+A - Pone nombre a la sesión screen&lt;/li&gt;
&lt;li&gt;control-a+_ - Monitoriza por silencio.&lt;/li&gt;
&lt;li&gt;control-a+M - Monitoriza por actividad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nos vemos pronto.&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="ubuntu"></category></entry><entry><title>Instalar skype en ubuntu</title><link href="https://victor.eu.org/2007/02/instalar-skype-en-ubuntu" rel="alternate"></link><published>2007-02-27T17:05:00+01:00</published><updated>2007-02-27T17:05:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-02-27:/2007/02/instalar-skype-en-ubuntu</id><summary type="html">&lt;p&gt;Últimamente estoy trasteando mucho con Linux... bueno... GNU/Linux... ok... Ubuntu... y estoy añadiéndole cositas que necesito... y me estoy dando cuenta que realmente no es tan sencillo como windows, pero es mucho más cómodo ;)&lt;/p&gt;
&lt;p&gt;Por ejemplo, ayer intenté instalar Skype... y claro... mi ubuntu no lo tenia en ningún …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Últimamente estoy trasteando mucho con Linux... bueno... GNU/Linux... ok... Ubuntu... y estoy añadiéndole cositas que necesito... y me estoy dando cuenta que realmente no es tan sencillo como windows, pero es mucho más cómodo ;)&lt;/p&gt;
&lt;p&gt;Por ejemplo, ayer intenté instalar Skype... y claro... mi ubuntu no lo tenia en ningún repositorio (ese sitio donde se encuentra organizado y categorizado todos los programas para ser instalados) por lo que me dirigí a la página de skype para descargarlo... y cual fue mi sorpresa, que la instalación era ligeramente más complicada que con windows... que si escoger el paquete, que si descomprimir... vamos... no era muy difícil... pero no era un "instalar, siguiente, siguiente"&lt;/p&gt;
&lt;p&gt;Así que tocó leer, y en 30 segundos ya lo tenia instalado. Estos son los pasos que seguí para instalarlo, y pongo por aquí para futuras referencias.&lt;/p&gt;
&lt;p&gt;Explico que hace cada cosa, y las escribo de tal forma que para ejecutarlas llegue con abrir una consola e ir copiando, pegando y ejecutando.&lt;/p&gt;
&lt;p&gt;Le decimos al sistema que queremos usar el repositorio de Skype&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;sudo bash -c "echo 'deb http://download.skype.com/linux/repos/debian/ stable non-free' &gt;&gt; /etc/apt/sources.list"&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Actualizamos nuestros repositorios&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;sudo apt-get update&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Instalamos Skype&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;sudo apt-get install skype&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Y listo, si te fijas en tu escritorio, en el sitio de Programas -&gt; Internet, aparece un nuevo icono que dice "Skype". A partir de ahora cada vez que tengamos una nueva versión de skype se actualizará como un paquete más.&lt;/p&gt;</content><category term="Linux"></category><category term="linux"></category><category term="skype"></category><category term="ubuntu"></category></entry><entry><title>Poner (y mantener) en hora tu fonera</title><link href="https://victor.eu.org/2007/02/poner-y-mantener-en-hora-tu-fonera" rel="alternate"></link><published>2007-02-26T17:25:00+01:00</published><updated>2007-02-26T17:25:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-02-26:/2007/02/poner-y-mantener-en-hora-tu-fonera</id><summary type="html">&lt;p&gt;Esta es una nota que se publicó originalmente en &lt;a href="http://fonera.q3.nu/Poner-en-hora-la-fonera.html"&gt;Poner en hora la fonera&lt;/a&gt; lo pongo aquí porque lo estoy usando y me gusta como referencia.&lt;/p&gt;
&lt;p&gt;Para poner en hora la fonera hay que ejecutar un comando que trae, cada vez que se reinicia. Estos son los pasos:&lt;/p&gt;
&lt;p&gt;Establecer la …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Esta es una nota que se publicó originalmente en &lt;a href="http://fonera.q3.nu/Poner-en-hora-la-fonera.html"&gt;Poner en hora la fonera&lt;/a&gt; lo pongo aquí porque lo estoy usando y me gusta como referencia.&lt;/p&gt;
&lt;p&gt;Para poner en hora la fonera hay que ejecutar un comando que trae, cada vez que se reinicia. Estos son los pasos:&lt;/p&gt;
&lt;p&gt;Establecer la zona horaria. (En mi caso ya estaba bien, pero por si acaso)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;echo &amp;quot;CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00&amp;quot; &amp;gt; /etc/TZ
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Crear un script para que se ejecute cada vez que se inicia la máquina (copia y pega esto en la consola via ssh)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;echo &amp;quot;#!/bin/sh&amp;quot; &amp;gt; /etc/init.d/S42rdate
echo &amp;quot;/usr/sbin/rdate -s 131.188.3.223&amp;quot; &amp;gt;&amp;gt; /etc/init.d/S42rdate
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Hacer que el fichero sea ejecutable&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;chmod a+x /etc/init.d/S42rdate
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Y lo ejecutamos por primera vez&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/etc/init.d/S42rdate
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Esto es todo, ahora el router siempre estará en hora.&lt;/p&gt;
&lt;p&gt;Actualización: Con los últimos firmwares para la fonera esto ya no es necesario.&lt;/p&gt;</content><category term="Linux"></category><category term="fon"></category><category term="fonera"></category></entry><entry><title>Chuleta rápida: Cómo usar generics con Visual Basic</title><link href="https://victor.eu.org/2007/01/como-usar-generics-con-vb" rel="alternate"></link><published>2007-01-20T01:52:00+01:00</published><updated>2007-01-20T01:52:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2007-01-20:/2007/01/como-usar-generics-con-vb</id><summary type="html">&lt;p&gt;Esta es una chuleta rápida para usar como referencia... y es que si no usaste nunca Generics con Visual Basic es un lío saber como se definen en los distintos sitios en donde se pueden usar.&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;Public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Class&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;myClas&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;T&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nv"&gt;Dim&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;myVal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;T&lt;/span&gt;
&lt;span class="k"&gt;End&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Class&lt;/span&gt;

&lt;span class="nv"&gt;Public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Structure&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;myStruct …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/blockquote&gt;</summary><content type="html">&lt;p&gt;Esta es una chuleta rápida para usar como referencia... y es que si no usaste nunca Generics con Visual Basic es un lío saber como se definen en los distintos sitios en donde se pueden usar.&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;Public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Class&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;myClas&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;T&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nv"&gt;Dim&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;myVal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;T&lt;/span&gt;
&lt;span class="k"&gt;End&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Class&lt;/span&gt;

&lt;span class="nv"&gt;Public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Structure&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;myStruct&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;T&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nv"&gt;Dim&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;myVal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;T&lt;/span&gt;
&lt;span class="k"&gt;End&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Structure&lt;/span&gt;

&lt;span class="nv"&gt;Public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Class&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Form1&lt;/span&gt;

&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nv"&gt;Public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Sub&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;callTestSub&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="err"&gt;&amp;#39;testSub(Of String)(&amp;quot;A String&amp;quot;)&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="err"&gt;&amp;#39;testSub(Of Integer)(5)&lt;/span&gt;

&lt;span class="err"&gt;        testSub(Of Byte, String)(33, &amp;quot;sss&amp;quot;)&lt;/span&gt;
&lt;span class="err"&gt;        testSub(33, &amp;quot;sss&amp;quot;)&lt;/span&gt;
&lt;span class="err"&gt;   End Sub&lt;/span&gt;

&lt;span class="err"&gt;   Public Sub testSub(Of T1, T2)(ByVal arg1 As T1, ByVal arg As T2)&lt;/span&gt;
&lt;span class="err"&gt;        Dim a As T1&lt;/span&gt;
&lt;span class="err"&gt;        a = arg&lt;/span&gt;
&lt;span class="err"&gt;        MessageBox.Show(a.ToString)&lt;/span&gt;
&lt;span class="err"&gt;   End Sub&lt;/span&gt;

&lt;span class="err"&gt;End Class&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;/blockquote&gt;</content><category term=".NET"></category><category term="chuleta"></category><category term="generics"></category><category term="net"></category><category term="visual basic"></category></entry><entry><title>Cambiar los servidores de dns en la Fonera de Fon</title><link href="https://victor.eu.org/2006/12/cambiar-servidores-dns-fonera-de-fon" rel="alternate"></link><published>2006-12-31T00:25:00+01:00</published><updated>2006-12-31T00:25:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-12-31:/2006/12/cambiar-servidores-dns-fonera-de-fon</id><summary type="html">&lt;p&gt;Tengo un router Linksys con el firmware de &lt;a href="http://es.fon.com"&gt;Fon&lt;/a&gt;... es algo parecido a la famosa Fonera, pero sin tanto glamour ;) la cosa es que hace un tiempo me di cuenta de que no estaba usando los servidores de dns que mi ISP me indicaba por DHCP, en cambio estaba usando …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Tengo un router Linksys con el firmware de &lt;a href="http://es.fon.com"&gt;Fon&lt;/a&gt;... es algo parecido a la famosa Fonera, pero sin tanto glamour ;) la cosa es que hace un tiempo me di cuenta de que no estaba usando los servidores de dns que mi ISP me indicaba por DHCP, en cambio estaba usando unos servidores de dns de FON... no es que e parezca mal o bien... pero es que esos servidores fallan... y mucho!!! por ejemplo no podía conectar a los subdominios de googlepages.com...&lt;/p&gt;
&lt;p&gt;La solución es sencilla, llega con conectar via SSH al router y modificar un poco el fichero /etc/resolv.conf para eso tecleamos lo siguiente y listo&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;rm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;resolv&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;ln&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;resolv&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;resolv&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Después con simplemente apagar el router y volver a encenderlo llega.&lt;/p&gt;
&lt;p&gt;Si por ejemplo tienes la mala suerte de tener un ISP que te ofrece servidores de DNS "adulterados" es decir, que devuelve datos érrones (como porejemplo ya.com) puedes usar otros servidores, vamos... ni usas los de tu ISP, ni los de FON... para eso llega como modificar el fichero /etc/resolv.conf.fon y añadir el siguiente contenido:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    nameserver 208.67.222.222
    nameserver 208.67.220.220
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Logicamente debes cambiar las IPS por las de los servidores que deseas usar. Esas IPs son las de los servidores de DNS de &lt;a href="http://www.opendns.com"&gt;OpenDNS&lt;/a&gt; que son unos servidores de acceso público y gratuito que tienen como gran ventaja (otros pueden decir como inconveniente) que cuando tecleas mal una dirección, ellos te redirigen a la que está correctamente tecleada).&lt;/p&gt;
&lt;p&gt;En fin... esto ha sido todo por este año, espero veros a todos el próximo.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;ACTUALIZACIÓN:&lt;/em&gt; Como es un coñazo repetir esto cada vez que se nos apaga el router, es mejor que creemos un script que se ejecute automáticamente cada vez que lo reiniciamos. (copia y pega lo siguiente en una consola de SSH)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;#!/bin/sh&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;init&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;S42nameserver&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;rm /etc/resolv.conf&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;init&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;S42nameserver&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;ln -s /var/resolv.conf /etc/resolv.conf&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;init&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;S42nameserver&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Para hacer el fichero ejecutable&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    chmod a+x /etc/init.d/S42nameserver
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Para ejecutarlo una vez y comprobar que todo funciona correctamente&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    /etc/init.d/S42nameserver
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Nos vemos en la próxima actualización.&lt;/p&gt;</content><category term="Linux"></category><category term="dns"></category><category term="fon"></category><category term="fonera"></category><category term="wifi"></category></entry><entry><title>La página que está abriendo contiene tanto elementos seguros como no seguros</title><link href="https://victor.eu.org/2006/12/pagina-abriendo-contiene-elementos-seguros-como-no-seguros" rel="alternate"></link><published>2006-12-27T18:50:00+01:00</published><updated>2006-12-27T18:50:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-12-27:/2006/12/pagina-abriendo-contiene-elementos-seguros-como-no-seguros</id><summary type="html">&lt;p&gt;Seguro que alguna vez visitando alguna página web segura con Internet Explorer os apareció un bonito y agradable mensaje que pone:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"La página que está abriendo contiene tanto elementos seguros como no seguros. ¿Desea mostrar los elementos no seguros?"&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Y respondas lo que respondas la página se carga de la …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Seguro que alguna vez visitando alguna página web segura con Internet Explorer os apareció un bonito y agradable mensaje que pone:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"La página que está abriendo contiene tanto elementos seguros como no seguros. ¿Desea mostrar los elementos no seguros?"&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Y respondas lo que respondas la página se carga de la misma forma, y todo parece ir bien.&lt;/p&gt;
&lt;p&gt;Pues bien... normalmente este mensaje aparece cuando nuestra web usa marcos con IFRAME o imágenes, o alguna que otra etiqueta HTML que necesita obligatoriamente una URL. Si no se especifica esa URL el Internet Explorer asume que se está intentando obtener la página web "about:blank" y esa página no es segura por eso aparece ese mensaje.&lt;/p&gt;
&lt;p&gt;Esquemáticamente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MAL: \&amp;lt;IFRAME&gt;\&amp;lt;/IFRAME&gt;&lt;/li&gt;
&lt;li&gt;MAL: \&amp;lt;IFRAME src="about:blank"&gt;\&amp;lt;/IFRAME&gt;&lt;/li&gt;
&lt;li&gt;MAL: \&amp;lt;IMG /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La solución típica es crear una página en blanco en nuestro web, y ponerla siempre, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BIEN: \&amp;lt;IFRAME src="blank.html"&gt;\&amp;lt;/IFRAME&gt;&lt;/li&gt;
&lt;li&gt;BIEN: \&amp;lt;IMG src="blank.html" /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta solución es correcta, pero tal vez no sea la más optima, porque ahora cada vez que se cargue esa página también se cargará la página "blank.html" que oye... está en blanco... pero... algo consume (yo es que soy un poco talibán).&lt;/p&gt;
&lt;p&gt;Yo suelo usar esta otra solución&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BIEN: \&amp;lt;IFRAME src="javascript:undefined"&gt;\&amp;lt;/IFRAME&gt;&lt;/li&gt;
&lt;li&gt;BIEN: \&amp;lt;IMG src="javascript:undefined" /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Que tiene la ventaja que no hace ningún tipo de petición adicional al servidor web, pero necesita javascript para funcionar.&lt;/p&gt;
&lt;p&gt;Como dicen algunos libros: Otros autores usan cosas como "javascript:''" "javascript: new String('')" o similares, pero eso es una lata si estás concatenado HTML en una cadena porque a puede que necesites escribir "javascript:\'\'" en cambio con "javascript:undefined" la cosa es más directa.&lt;/p&gt;
&lt;p&gt;Por cierto... FireFox no tiene este problema... pero esta solución no le afecta ni para mal, ni para bien.&lt;/p&gt;</content><category term="Internet, Programación"></category><category term="about:blank"></category><category term="firefox"></category><category term="internet explorer"></category><category term="javascript"></category><category term="mozilla"></category></entry><entry><title>Dividir por cero con VisualBasic seguro que no adivinas el resultado</title><link href="https://victor.eu.org/2006/12/dividir-por-cero-con-visualbasic-seguro-que-no-adivinas-el-resultado" rel="alternate"></link><published>2006-12-21T01:06:00+01:00</published><updated>2006-12-21T01:06:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-12-21:/2006/12/dividir-por-cero-con-visualbasic-seguro-que-no-adivinas-el-resultado</id><summary type="html">&lt;p&gt;Cuando salió Visual Basic .NET muchos se quejaron de que ya no era Visual Basic, que era otra cosa... parecida pero otra cosa. Yo desde mi modesta posición, quiero desde aquí confirmar de que Visual Basic .NET realmente sigue siendo Visual Basic. Para eso os remito al siguiente ejemplo.&lt;/p&gt;
&lt;p&gt;Tomemos …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Cuando salió Visual Basic .NET muchos se quejaron de que ya no era Visual Basic, que era otra cosa... parecida pero otra cosa. Yo desde mi modesta posición, quiero desde aquí confirmar de que Visual Basic .NET realmente sigue siendo Visual Basic. Para eso os remito al siguiente ejemplo.&lt;/p&gt;
&lt;p&gt;Tomemos dos pequeños programas, uno escrito en Visual Basic .NET y el otro en Csharp. Y probemos el resultado con un compilador y con el otro.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;Try&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nv"&gt;Dim&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Integer&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nv"&gt;Dim&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Integer&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nv"&gt;Dim&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;c&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Double&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;b&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;MessageBox&lt;/span&gt;.&lt;span class="k"&gt;Show&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;c&lt;/span&gt;.&lt;span class="nv"&gt;ToString&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;Catch&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ex&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;DivideByZeroException&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;MessageBox&lt;/span&gt;.&lt;span class="k"&gt;Show&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;DivideByZeroException&amp;quot;&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;Catch&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ex&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Exception&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;MessageBox&lt;/span&gt;.&lt;span class="k"&gt;Show&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Exception&amp;quot;&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;End&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Try&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Y por otro lado:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;try&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;{
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nv"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;b&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nv"&gt;decimal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;c&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;b&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;MessageBox&lt;/span&gt;.&lt;span class="k"&gt;Show&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;c&lt;/span&gt;.&lt;span class="nv"&gt;ToString&lt;/span&gt;&lt;span class="ss"&gt;())&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;}
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;catch&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;DivideByZeroException&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;{
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;MessageBox&lt;/span&gt;.&lt;span class="k"&gt;Show&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;DivideByZeroException&amp;quot;&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;}
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;catch&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;Exception&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;{
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;MessageBox&lt;/span&gt;.&lt;span class="k"&gt;Show&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Exception&amp;quot;&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Como se suele decir, cuando se divide algo entre 0 debería aparecer una excepción de DivideByZero... por lo menos así me lo enseñaron a mi, y así ocurre con csharp. Pero no. En Visual Basic obtenemos otro valor... (que siendo sinceros no está mal)... obtenemos: "Infinito".&lt;/p&gt;
&lt;p&gt;Ahora la explicación:&lt;/p&gt;
&lt;p&gt;Yo divido dos enteros entre si, y obtengo un Double, para eso estoy (o debería) usar el operador divide que tiene implementado el tipo Integer y obtener un Double. Por definición de este tipo/operador cuando se divide algo por Cero se obtiene la excepción DivideByZeroException.&lt;/p&gt;
&lt;p&gt;Si en vez de int/integer hubiese usado Double para guardar los números habría obtenido tanto en Visual Basic como en Csharp "Infinito". Y es que aquí viene lo curioso, el tipo Double además de números finitos puede guardar otros números:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Positive and negative zero.&lt;/li&gt;
&lt;li&gt;Positive and negative infinity.&lt;/li&gt;
&lt;li&gt;Not-a-Number value (NaN).&lt;/li&gt;
&lt;li&gt;The finite set of nonzero values.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por lo que si se dividen dos doubles en .NET se puede obtener de resultado un infinito. El problema es que Visual Basic cuando ve nuestra división él por su cuenta y riesgo convierte los Integers en Doubles, y claro con Doubles si que se puede obtener el resultado de Infinito y por eso no aparece ninguna excepción por ningún lado.&lt;/p&gt;
&lt;p&gt;Y es lo que digo yo, y por mucho que traten de convencernos, cuando se programa con Visual Basic el compilador asume que el programador no tiene ni idea y el compilador intenta "arreglar" el código; por desgracia la suele cagar. Por eso digo que VB .NET sigue siendo VB... a estas alturas sigue siendo un lenguaje para principiantes por mucho que nos pese o nos intenten decir lo contrario.&lt;/p&gt;
&lt;p&gt;Bueno, en el fondo creo que no queda claro, pero, otro día ya escribiré sobre otras lineas de código curiosas de nuestro amiguito.&lt;/p&gt;</content><category term=".NET"></category><category term="net"></category><category term="visual basic"></category></entry><entry><title>Preguntas sin respuesta</title><link href="https://victor.eu.org/2006/12/preguntas-sin-respuesta" rel="alternate"></link><published>2006-12-04T21:00:00+01:00</published><updated>2006-12-04T21:00:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-12-04:/2006/12/preguntas-sin-respuesta</id><summary type="html">&lt;p&gt;Típico post en foros y news&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Test, no leer&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Siempre me ha sorprendido este post, escrito una y mil veces practicamente de la misma forma en foros, news, y sitios similares. ¿Cómo pretende la gente que no lo leamos? Si para no leerlo antes debemos leerlo. ¿no?&lt;/p&gt;
&lt;p&gt;Entiendo cual es …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Típico post en foros y news&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Test, no leer&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Siempre me ha sorprendido este post, escrito una y mil veces practicamente de la misma forma en foros, news, y sitios similares. ¿Cómo pretende la gente que no lo leamos? Si para no leerlo antes debemos leerlo. ¿no?&lt;/p&gt;
&lt;p&gt;Entiendo cual es el sentido de este mensaje, simplemente es una prueba para ver si el susodicho sabe/puede enviar noticias/preguntas/lo-que-sea... pero... digo yo... si lo que quiere es no molestar... por qué no envía un mensaje que diga:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Hola, esto parece interesante, estaré por aquí más a menudo.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;O en respuesta a un mensaje:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Hola, tienes razón.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;No se... enviar algún mensaje semi-intrascendente que no moleste a nadie... ¿no?&lt;/p&gt;</content><category term="Política y paranoias"></category><category term="preguntas"></category><category term="respuestas"></category></entry><entry><title>Impedir que windows se reinicie</title><link href="https://victor.eu.org/2006/11/impedir-que-windows-se-reinicie" rel="alternate"></link><published>2006-11-30T21:47:00+01:00</published><updated>2006-11-30T21:47:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-11-30:/2006/11/impedir-que-windows-se-reinicie</id><summary type="html">&lt;p&gt;El .NET framework es bastante potentillo, alguna que otra vez es necesario recurrir al API de windows, pero normalmente ya hay un wrapper o una función en .NET mejor o peor que vale para lo mismo.&lt;/p&gt;
&lt;p&gt;Pues bien, estoy cansado de que cuando Microsoft me envía algún parche a mi …&lt;/p&gt;</summary><content type="html">&lt;p&gt;El .NET framework es bastante potentillo, alguna que otra vez es necesario recurrir al API de windows, pero normalmente ya hay un wrapper o una función en .NET mejor o peor que vale para lo mismo.&lt;/p&gt;
&lt;p&gt;Pues bien, estoy cansado de que cuando Microsoft me envía algún parche a mi ordenador, siempre quiera reiniciar mi máquina. Pues bien, es solo 5 minutos se puede capturar el "evento" del sistema de "Windows Shutdow" y hacer que no se reinicie.&lt;/p&gt;
&lt;p&gt;Aquí va esta pequeña aplicación Winforms Visual Basic .NET (por cierto, odio el VB ;)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;Sub&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PreventShutdown&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;AddHandler&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;SystemEvents&lt;/span&gt;.&lt;span class="nv"&gt;SessionEnding&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AddressOf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PreventShutdownHelper&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;AddHandler&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;SystemEvents&lt;/span&gt;.&lt;span class="nv"&gt;SessionEnding&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;AddressOf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PreventShutdownHelper&lt;/span&gt;
&lt;span class="k"&gt;End&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Sub&lt;/span&gt;

&lt;span class="nv"&gt;Sub&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;PreventShutdownHelper&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ByVal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;sender&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Object&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ByVal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;args&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;SessionEndingEventArgs&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;If&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;args&lt;/span&gt;.&lt;span class="nv"&gt;Reason&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;SessionEndReasons&lt;/span&gt;.&lt;span class="nv"&gt;SystemShutdown&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;Then&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nv"&gt;args&lt;/span&gt;.&lt;span class="nv"&gt;Cancel&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;True&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;End&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;If&lt;/span&gt;
&lt;span class="k"&gt;End&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Sub&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term=".NET"></category><category term="net"></category><category term="shutdown"></category><category term="visual basic"></category><category term="windows"></category></entry><entry><title>Registro facil de feeds en google reader con la google toolbar</title><link href="https://victor.eu.org/2006/10/registro-facil-de-feeds-en-google-reader" rel="alternate"></link><published>2006-10-21T04:33:00+02:00</published><updated>2006-10-21T04:33:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-10-21:/2006/10/registro-facil-de-feeds-en-google-reader</id><summary type="html">&lt;p&gt;Este es el post tonto del día... pero es que llevaba tiempo dándole vueltas. Yo suelo usar Firefox (ahora uso este, pero en cualquier momento puedo cambiar ;) y uso varios plugins, pero el principal de ellos es la Google Toolbar. Y creo que soy una de las pocas personas que …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Este es el post tonto del día... pero es que llevaba tiempo dándole vueltas. Yo suelo usar Firefox (ahora uso este, pero en cualquier momento puedo cambiar ;) y uso varios plugins, pero el principal de ellos es la Google Toolbar. Y creo que soy una de las pocas personas que usan para leer los feeds o los rss o los atom o como quieras llamarles, el Google Reader.&lt;/p&gt;
&lt;p&gt;Por desgracia hay muy poca gente que lo use, y hay menos webmasters que pongan un enlace en sus páginas para que sea muy sencillo añadir su feed a la cuenta de Google Reader... para eso la solución que usaba era el clásico copiar y pegar ;)&lt;/p&gt;
&lt;p&gt;Pero hace un tiempo la evolucioné un poco y empecé a usar un bookmarlet... pero... fallaba... (digamos que fallaba un pelín bastante grande).&lt;/p&gt;
&lt;p&gt;Lo curioso es que Google en su afán por hacer más, y más grande la Web Champión 2.0, en su google Toolbar añadió un botón para suscribir a los feeds, pero ohhh cosas se olvidó de añadir su Google Reader... por lo que si usaba ese botón me podía suscribir a Newsgator por ejemplo pero no a google Reader.&lt;/p&gt;
&lt;p&gt;En fin... pero el otro día estuve trasteando un poco y encontré una solución muy sencilla y rápida. Para eso, simplemente es necesario escribir en la barra de direcciones de Firefox la palabra mágica: "about:config" y cambiar el valor de la propiedad "google.toolbar.subscribe.aggregators.iGoogle.url" y ponerle el valor "http://fusion.google.com/add?feedurl=%feed%&amp;amp;hl=es"&lt;/p&gt;
&lt;p&gt;Y listo... a partir de ahora ese botón te permitirá añadir el feed que tu quieras a Google Reader o a Google Personalized Home.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Actualización:&lt;/strong&gt; Se me acaba de ocurrir una forma tal vez más sencilla, y que no requiere actualizar la configuración de nuestro navegador, ya que con simplemente pulsar el botón de "Subscribe" y modificar la url que nos aparece para que no tenga el "&amp;amp;client=firetools" y tenga un "&amp;amp;hl=en".&lt;/p&gt;
&lt;p&gt;El "hl=en" hace que google muestre la página en ingles, ya que actualmente la página en castellano se muestra siempre mal.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Actualización:&lt;/strong&gt; Con Firefox 2.0.0 y posteriores, actualmente no es necesario usar este truquillo, incluso Google a quitado la opción de suscribir a feeds de su toolbar, ahora se usa la del navegador.&lt;/p&gt;</content><category term="Internet"></category><category term="atom"></category><category term="feed"></category><category term="rss"></category></entry><entry><title>Un bookmarklet para descargar videos</title><link href="https://victor.eu.org/2006/10/un-bookmarklet-para-descargar-videos" rel="alternate"></link><published>2006-10-08T02:03:00+02:00</published><updated>2006-10-08T02:03:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-10-08:/2006/10/un-bookmarklet-para-descargar-videos</id><summary type="html">&lt;p&gt;Gracias a &lt;a href="http://www.youtube.com"&gt;youtube&lt;/a&gt; ahora estamos invadidos con páginas web que muestran vídeos de todos tipos. Si además de verlos queremos guardarlos para poder verlos una y otra vez, si eres un poco mañoso lo puedes hacer mirando el código HMTL de la página. Pero ya sabéis... a mi lo que …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Gracias a &lt;a href="http://www.youtube.com"&gt;youtube&lt;/a&gt; ahora estamos invadidos con páginas web que muestran vídeos de todos tipos. Si además de verlos queremos guardarlos para poder verlos una y otra vez, si eres un poco mañoso lo puedes hacer mirando el código HMTL de la página. Pero ya sabéis... a mi lo que me gusta es seguir la "ley del minimisiomo esfuerzo" ;)&lt;/p&gt;
&lt;p&gt;Si no lo conoces, te presento a &lt;a href="http://www.videodownloader.net"&gt;VideoDownloader&lt;/a&gt; una web de &lt;a href="http://www.javimoya.com"&gt;Javi Moya&lt;/a&gt; (ehhh que yo tampoco lo conocía hasta hace poco tiempo).&lt;/p&gt;
&lt;p&gt;Para usar la web en cuestión solo tienes que escribir la dirección de la página donde está el vídeo, y te da la dirección de la película que quieres descargar. Después para verla necesitas un reproductor que soporte el formato FLV... si no tienes ninguno... !!!a que esperas para descargarte el &lt;a href="http://www.videolan.org/vlc/"&gt;VideoLan&lt;/a&gt;!!! que es con diferencia el mejor reproductor que hay hoy en día... y por suerte es gratis (No solo eso, es Opensource y todo)&lt;/p&gt;
&lt;p&gt;En fin... para seguir con la ley del minimisimo esfuerzo... eso de tener copiar y pegar la dirección web del vídeo en esta página es un gran esfuerzo que no deseo ni a mi peor enemigo... y creo que Javi Moya también pensó lo mismo, por lo que hizo un plugin para Firefox que añade un botón a la barra de herramientas. Para descargar un vídeo cargas la página pulsas el botón y listo. Pero tiene un problema... tienes que instalar algo... o peor... si no usas Firefox no lo puedes usar. (ok, si no lo usas yo podría recomendarte que lo usases... pero no lo haré... porque posiblemente tengas alguna buena razón para no usarlo ;)&lt;/p&gt;
&lt;p&gt;Pues bien... Señoras y Señores... aquí les traigo un enlace que si guardan en sus favoritos o bookmarks hará todo el trabajo sucio por ustedes.&lt;/p&gt;
&lt;p&gt;&lt;a href="javascript:(function()%7Bvar%20a=window,b=document,c=encodeURIComponent,d=a.open(%22http://videodownloader.net/get/?url=%22+c(b.location),%22bkmk_popup%22,%22left=%22+((a.screenX%7C%7Ca.screenLeft)+10)+%22,top=%22+((a.screenY%7C%7Ca.screenTop)+10)+%22,height=300px,width=800px,resizable=1,alwaysRaised=1%22);a.setTimeout(function()%7Bd.focus()%7D,300)%7D)();"&gt;Bookmarklet para descargar vídeos&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Por si hay algún informático por ahí... este es el código...&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;javascript&lt;/span&gt;&lt;span class="p"&gt;:(&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;&lt;span class="k"&gt;var&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;window&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;document&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;encodeURIComponent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;videodownloader&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;net&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="err"&gt;?&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=%&lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="n"&gt;bkmk_popup&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="o"&gt;=%&lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;screenX&lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;screenLeft&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+%&lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;top&lt;/span&gt;&lt;span class="o"&gt;=%&lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;screenY&lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;screenTop&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+%&lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="n"&gt;px&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;width&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;800&lt;/span&gt;&lt;span class="n"&gt;px&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;resizable&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;alwaysRaised&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;focus&lt;/span&gt;&lt;span class="p"&gt;()},&lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;)})();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;En fin... esto es todo... espero que os sea de utilidad!!&lt;/p&gt;</content><category term="Internet"></category><category term="descargar"></category><category term="javascript"></category><category term="videos"></category><category term="youtube"></category></entry><entry><title>Ordenación natural de cadenas</title><link href="https://victor.eu.org/2006/09/ordenacion-natural-de-cadenas" rel="alternate"></link><published>2006-09-24T03:26:00+02:00</published><updated>2006-09-24T03:26:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-09-24:/2006/09/ordenacion-natural-de-cadenas</id><summary type="html">&lt;p&gt;Cuando una aplicación funciona, los usuarios se quejan por tonterías... la cosa es quejarse... pero aunque sean tonterías... pueden tener razón.&lt;/p&gt;
&lt;p&gt;Una vez se quejaron de que mi aplicación no ordenaba correctamente los números, que el número 10 aparecía antes que el 2... y &lt;em&gt;ales&lt;/em&gt;... a explicarles que se estaban …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Cuando una aplicación funciona, los usuarios se quejan por tonterías... la cosa es quejarse... pero aunque sean tonterías... pueden tener razón.&lt;/p&gt;
&lt;p&gt;Una vez se quejaron de que mi aplicación no ordenaba correctamente los números, que el número 10 aparecía antes que el 2... y &lt;em&gt;ales&lt;/em&gt;... a explicarles que se estaban ordenando como cadenas en vez de números...&lt;/p&gt;
&lt;p&gt;Pues bien... después de investigar un poquito, y ver desesperado de que entre las muchas funcionalidades a la hora de ordenar de .NET no había nada que solucionase mi problema, descubrí varios algoritmos de ordenación, que trataban los números correctamente cuando formaban parte de una cadena. En &lt;a href="http://sourcefrog.net/projects/natsort/"&gt;sourcefrog&lt;/a&gt; (ojo no confundir con sourceforge) tienen varias implementaciones para varios lenguajes aunque ninguna para .NET y sitios con implementaciones para .NET descubrí a &lt;a href="http://www.huddledmasses.org/jaykul/sorting-strings-naturally/"&gt;Sorting Strings Naturally&lt;/a&gt; y &lt;a href="http://www.codeproject.com/cs/algorithms/csnsort.asp"&gt;Numeric String Sort in C#&lt;/a&gt; (esta es parcial).&lt;/p&gt;
&lt;p&gt;Después descubrí que los Windows XP y 2003 (desconozco los 2000) tienen una función el en propio API para hacer este tipo de ordenación. A la hora de programar suelo seguir la ley del minimisimo esfuerzo, y cuantas menos lineas tenga una función mejor que mejor, por lo que me hice una clase de ordenación para .NET que use la función del api de Windows &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/shlwapi/string/strcmplogicalw.asp"&gt;StrCmpLogicalW&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Y es algo así...&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;class&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;NaturalComparer&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;IComparer&lt;/span&gt;
{
&lt;span class="w"&gt;    &lt;/span&gt;[&lt;span class="nv"&gt;System&lt;/span&gt;.&lt;span class="nv"&gt;Runtime&lt;/span&gt;.&lt;span class="nv"&gt;InteropServices&lt;/span&gt;.&lt;span class="nv"&gt;DllImport&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;shlwapi.dll&amp;quot;&lt;/span&gt;,
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nv"&gt;CharSet&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;System&lt;/span&gt;.&lt;span class="nv"&gt;Runtime&lt;/span&gt;.&lt;span class="nv"&gt;InteropServices&lt;/span&gt;.&lt;span class="nv"&gt;CharSet&lt;/span&gt;.&lt;span class="nv"&gt;Unicode&lt;/span&gt;,
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nv"&gt;ExactSpelling&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;true&lt;/span&gt;,
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nv"&gt;SetLastError&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;false&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;]
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;private&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;static&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;extern&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;StrCmpLogicalW&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;string&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;strA&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;string&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;strB&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;NaturalComparer&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;{&lt;span class="w"&gt; &lt;/span&gt;}

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Compare&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;x&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;y&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;{
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;((&lt;/span&gt;&lt;span class="nv"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;string&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;y&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;string&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;{
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;StrCmpLogicalW&lt;/span&gt;&lt;span class="ss"&gt;((&lt;/span&gt;&lt;span class="nv"&gt;string&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="nv"&gt;x&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;string&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="nv"&gt;y&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;}
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;}
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Espero que os sea útil!!!&lt;/p&gt;</content><category term=".NET"></category><category term="algoritmos"></category><category term="api"></category><category term="csharp"></category><category term="net"></category><category term="programación"></category></entry><entry><title>String.Format</title><link href="https://victor.eu.org/2006/08/string-format" rel="alternate"></link><published>2006-08-18T23:29:00+02:00</published><updated>2006-08-18T23:29:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-08-18:/2006/08/string-format</id><summary type="html">&lt;p&gt;Cuando empecé con esto del .NET encontré una función que desde entonces usé mucho, mucho, mucho y que echo en falta en Visual Basic 6...&lt;/p&gt;
&lt;p&gt;Pues bien... aquí teneis una implementación muy sencila (y por supuesto no tan potente como la de .NET) de la función String.Format&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;Public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Function …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;Cuando empecé con esto del .NET encontré una función que desde entonces usé mucho, mucho, mucho y que echo en falta en Visual Basic 6...&lt;/p&gt;
&lt;p&gt;Pues bien... aquí teneis una implementación muy sencila (y por supuesto no tan potente como la de .NET) de la función String.Format&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nv"&gt;Public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;StringFormat&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ByVal&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;format&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;String&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ParamArray&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;args&lt;/span&gt;&lt;span class="ss"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Variant&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nv"&gt;Dim&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;I&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;As&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Long&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;For&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;I&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;LBound&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;args&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;To&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;UBound&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;args&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nv"&gt;format&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Replace&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;format&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;{&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;I&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;}&amp;quot;&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;args&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;I&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;Next&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nv"&gt;StringFormat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;format&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;End&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;Function&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Y un pequeño ejemplo de uso&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    MsgBox StringFormat(&amp;quot;Hola {0} {1}&amp;quot;, &amp;quot;Paco&amp;quot;, &amp;quot;Lopez&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Esto es todo por hoy!&lt;/p&gt;</content><category term=".NET"></category><category term="net"></category><category term="programación"></category><category term="visual basic"></category></entry><entry><title>Proyectos temporales en Visual Studio 2005</title><link href="https://victor.eu.org/2006/07/proyectos-temporales-en-visual-studio-2005" rel="alternate"></link><published>2006-07-16T00:13:00+02:00</published><updated>2006-07-16T00:13:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-07-16:/2006/07/proyectos-temporales-en-visual-studio-2005</id><summary type="html">&lt;p&gt;Creo que es un poco triste que lo diga así, pero una de las cosas que más me gustaba de Visual Basic 6 era que si necesitabas hacer alguna prueba, simplemente abrias el entorno y te ponias a teclear, pulsabas F5 y veias el resultado, sin tener que grabar, rápido …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Creo que es un poco triste que lo diga así, pero una de las cosas que más me gustaba de Visual Basic 6 era que si necesitabas hacer alguna prueba, simplemente abrias el entorno y te ponias a teclear, pulsabas F5 y veias el resultado, sin tener que grabar, rápido y directo. Con la llegada de .NET y la compilación de proyectos las cosas se complicaron.&lt;/p&gt;
&lt;p&gt;Una de las nuevas características de Visual Studio 2005 es que se puede hacer lo mismo, no necesitamos grabar para ejecutar un proyecto, pero, ohhh desgracia no viene activado de serie. Para activarlo, hay que seguir estos sencillitos pasos.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Menú herramientas, seleccionamos Opciones.&lt;/li&gt;
&lt;li&gt;Expandimos el nodo "Proyectos y soluciones" y seleccionamos General.&lt;/li&gt;
&lt;li&gt;Confirmamos que la opción "Guardar proyectos cuando son creados" no está seleccionada. (Mi VS está en inglés, el texto puede variar un poquito ;).&lt;/li&gt;
&lt;li&gt;Pulsamos Aceptar y cerramos ventana.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ales ahora ya no necesitaremos grabar los proyectos para ejecutarlos.&lt;/p&gt;</content><category term=".NET"></category><category term="microsoft"></category><category term="net"></category><category term="programación"></category><category term="visual studio"></category></entry><entry><title>fajax</title><link href="https://victor.eu.org/2006/06/fajax" rel="alternate"></link><published>2006-06-25T00:49:00+02:00</published><updated>2006-06-25T00:49:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-06-25:/2006/06/fajax</id><summary type="html">&lt;p&gt;Mola eso de Ajax... alguna vez ya nombré algo por aquí casi de casualidad, pero de Ajax lo que no mola nada es programarlo sobretodo porque los fameworks que existen, como se suele decir, en mi modesta opinión aún le faltan un poco para ser buenos productos.&lt;/p&gt;
&lt;p&gt;En fin, si …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Mola eso de Ajax... alguna vez ya nombré algo por aquí casi de casualidad, pero de Ajax lo que no mola nada es programarlo sobretodo porque los fameworks que existen, como se suele decir, en mi modesta opinión aún le faltan un poco para ser buenos productos.&lt;/p&gt;
&lt;p&gt;En fin, si tienes una aplicación web y quieres que tenga un aspecto Ajax, es decir, que entre postback y postback la pantalla no se quede en blanco, hay una solución sencilla, sencilla, que puede ayudar... se llama FAJAX o FAKE-AJAX llega con añadir las siguientes etiquetas en el head de todas las páginas WEB.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nv"&gt;META&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;http&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;equiv&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Page-Enter&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;content&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;blendTrans(Duration=0.2)&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nv"&gt;META&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;http&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;equiv&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Page-Exit&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;content&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;blendTrans(Duration=0.2)&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;El invento anterior funciona tanto en IE como el el Firefox... hay otros autores que programan FAJAX con la siguiente linea pero solo funciona con el Microsoft Internet Explorer... y vamos... no mola tanto...&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nv"&gt;meta&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;http&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;equiv&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Page-Exit&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;content&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;progid:DXImageTransform.Microsoft.Fade(duration=.5)&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term=".NET"></category><category term="ajax"></category><category term="html"></category><category term="javascript"></category><category term="programación"></category><category term="web"></category></entry><entry><title>Varios dominios en una misma cuenta con mod_rewrite</title><link href="https://victor.eu.org/2006/05/varios-dominios-en-una-misma-cuenta-con-mod-rewrite" rel="alternate"></link><published>2006-05-28T18:57:00+02:00</published><updated>2006-05-28T18:57:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-05-28:/2006/05/varios-dominios-en-una-misma-cuenta-con-mod-rewrite</id><summary type="html">&lt;p&gt;Hace ya un tiempo puse por aquí varias lineas para configurar nuestro servidor, para hacerlo más "bonito" para nuestros visitantes tanto humanos como los robots de los buscadores.&lt;/p&gt;
&lt;p&gt;Pues bien... seguro que muchos de los que están leyendo esto tienen un servicio de Hosting que solamente les permite alojar un …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hace ya un tiempo puse por aquí varias lineas para configurar nuestro servidor, para hacerlo más "bonito" para nuestros visitantes tanto humanos como los robots de los buscadores.&lt;/p&gt;
&lt;p&gt;Pues bien... seguro que muchos de los que están leyendo esto tienen un servicio de Hosting que solamente les permite alojar un dominio en su cuenta. Seguro que hay muchos que les permiten alojar varios dominios en la misma cuenta, pero para su desgracia el contenido de todos ellos tiene que ser exactamente igual (normalmente a eso le suelen llamar hacer un alias).&lt;/p&gt;
&lt;p&gt;Pues bien, el truco de hoy nos sirve para hacer que todos los dominios que apuntan a nuestra web tengan un contenido totalmente independiente, casi como de costumbre todo esto por cortesía de Apache y de su estupendo módulo MOD_REWRITE.&lt;/p&gt;
&lt;p&gt;Pues bien, para que funcione hay que crear las siguientes urls en nuestro servidor&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;    http://dominio1/oo/dominio1/
    http://dominio2/oo/dominio2/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Es decir crearemos una carpeta que se llame "oo" donde vamos a poner una carpeta con el nombre de todos los dominios que vamos a tener en nuestro servidor. Cada vez que alguien nos visite se usará la carpeta de su dominio. Así de sencillo.&lt;/p&gt;
&lt;p&gt;Y para acabar hay que añadir en el fichero .httacces lo siguiente:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;RewriteCond&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="n"&gt;REQUEST_URI&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="err"&gt;!&lt;/span&gt;&lt;span class="o"&gt;^/&lt;/span&gt;&lt;span class="n"&gt;oo&lt;/span&gt;&lt;span class="cm"&gt;/*&lt;/span&gt;
&lt;span class="cm"&gt;    #RewriteCond /oo/%{HTTP_HOST}/%{REQUEST_URI} -s&lt;/span&gt;
&lt;span class="cm"&gt;    RewriteRule ^(.*)$ /oo/%{HTTP_HOST}/$1 [L]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Espero que os sea de mucha utilidad.&lt;/p&gt;</content><category term="Internet"></category></entry><entry><title>Chernobil</title><link href="https://victor.eu.org/2006/04/chernobil" rel="alternate"></link><published>2006-04-26T01:01:00+02:00</published><updated>2006-04-26T01:01:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-04-26:/2006/04/chernobil</id><summary type="html">&lt;p&gt;El 26 de Abril de 1986 entre otras muchas cosas, en una central nuclear de Chernobil (Ucrania) estaban haciendo una prueba de seguridad, desgraciadamente la prueba salió mal. El resultado: &lt;a href="http://es.wikipedia.org/wiki/Accidente_de_Chern%C3%B3bil"&gt;la mayor catástrofe nuclear de la historia&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Por desgracia &lt;a href="http://www.lastingnews.com/maps/nuclear_accidents.php"&gt;no fue la primera&lt;/a&gt; vez que pasaba algo así, y por …&lt;/p&gt;</summary><content type="html">&lt;p&gt;El 26 de Abril de 1986 entre otras muchas cosas, en una central nuclear de Chernobil (Ucrania) estaban haciendo una prueba de seguridad, desgraciadamente la prueba salió mal. El resultado: &lt;a href="http://es.wikipedia.org/wiki/Accidente_de_Chern%C3%B3bil"&gt;la mayor catástrofe nuclear de la historia&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Por desgracia &lt;a href="http://www.lastingnews.com/maps/nuclear_accidents.php"&gt;no fue la primera&lt;/a&gt; vez que pasaba algo así, y por desgracia tampoco la última. Lo que pasó no está claro, pero posiblemente fuese algo &lt;a href="http://curiosoperoinutil.com/2006/04/27/el-accidente-de-chernobyl/"&gt;así&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Esto me hace pensar en la energía nuclear, y sobre todo en las voces que se escuchan hoy en día de potenciar su uso en vez de usar otro tipo de energías alternativas. Yo tengo claro una cosa. Digan lo que digan, no es segura y yo no quiero estar cerca de ninguna.&lt;/p&gt;</content><category term="Política y paranoias"></category></entry><entry><title>XmlHttpRequest o lo que llaman ahora Ajax</title><link href="https://victor.eu.org/2006/04/xmlhttprequest-ahora-ajax" rel="alternate"></link><published>2006-04-23T18:42:00+02:00</published><updated>2006-04-23T18:42:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-04-23:/2006/04/xmlhttprequest-ahora-ajax</id><summary type="html">&lt;p&gt;Ultimamente tengo que pelearme bastante con aplicaciones Web que usan &lt;a href="http://www.w3.org/TR/XMLHttpRequest/"&gt;XmlHttpRequest&lt;/a&gt; o como se llama ahora, &lt;a href="http://www.adaptivepath.com/publications/essays/archives/000385.php"&gt;Ajax&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;La cosa está bien, pero es una pena que no lo estandaricen un poco para que sea más sencillo de usar.&lt;/p&gt;
&lt;p&gt;Acabo de encontrar un enlace donde dice que &lt;a href="http://www.w3.org/TR/XMLHttpRequest/"&gt;XmlHttpRequest&lt;/a&gt; ahora es un …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ultimamente tengo que pelearme bastante con aplicaciones Web que usan &lt;a href="http://www.w3.org/TR/XMLHttpRequest/"&gt;XmlHttpRequest&lt;/a&gt; o como se llama ahora, &lt;a href="http://www.adaptivepath.com/publications/essays/archives/000385.php"&gt;Ajax&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;La cosa está bien, pero es una pena que no lo estandaricen un poco para que sea más sencillo de usar.&lt;/p&gt;
&lt;p&gt;Acabo de encontrar un enlace donde dice que &lt;a href="http://www.w3.org/TR/XMLHttpRequest/"&gt;XmlHttpRequest&lt;/a&gt; ahora es un estándar del &lt;a href="http://w3c.org"&gt;W3C&lt;/a&gt; y por fin el IE7 soportará estas cosas nativamente, es decir sin tener que usar ActiveX.&lt;/p&gt;
&lt;p&gt;Ahora solo falta que se cree, bueno, estandarice una buena librería de alto nivel para diseño de interfaces que use todas esas cosas que agrupamos dentro de &lt;a href="http://www.uberbin.net/archivos/internet/ajax-un-nuevo-acercamiento-a-aplicaciones-web.php"&gt;Ajax&lt;/a&gt;... ¿no?&lt;/p&gt;</content><category term="Programación"></category></entry><entry><title>Windows Symbolic y Hard Links</title><link href="https://victor.eu.org/2006/04/windows-symbolic-y-hard-links" rel="alternate"></link><published>2006-04-16T00:27:00+02:00</published><updated>2006-04-16T00:27:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-04-16:/2006/04/windows-symbolic-y-hard-links</id><summary type="html">&lt;p&gt;Posiblemente la opción que más me gusta del sistema de archivos de Unix... ejem... Linux... ejem GNU/Linux es la opción para crear Hard Links y Symbolic Links.&lt;/p&gt;
&lt;p&gt;Tambien tengo oido muchas veces decir... es que el sistema de archivos de Windows es una mierda porque no tiene Hard/Symbolic …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Posiblemente la opción que más me gusta del sistema de archivos de Unix... ejem... Linux... ejem GNU/Linux es la opción para crear Hard Links y Symbolic Links.&lt;/p&gt;
&lt;p&gt;Tambien tengo oido muchas veces decir... es que el sistema de archivos de Windows es una mierda porque no tiene Hard/Symbolic links... yo siempre les digo... "señores actualicensen... con Windows NT 3.1 aparecieron los HardLinks, y con Windows 2000 los SymbolicLinks"...&lt;/p&gt;
&lt;p&gt;No se porque, pero los ingenieros se olvidaron de añadir algunos programas para manejar estas cosas, y la gente de marketing también se olvidó de explicar que windows SI que tenia esas cosas.&lt;/p&gt;
&lt;p&gt;Vamos, que curiosamente las funciones del api de windows para crear links llevan mucho tiempo ahí, las utilidades para manejarlos son mucho más recientes, por ejemplo, hasta que salió windows 2000 no se podían crear hardlinks con ninguna herramienta, y aún hoy (desconozco si Windows Vista trae alguna) no se pueden crear symbolic links usando alguna herramienta que venga "de serie" con el windows.&lt;/p&gt;
&lt;p&gt;En fin... si necesitas crear un Hard Link te recomiendo la utilidad fsutil que viene con todos los windows "actuales"... y si quieres hacer un Symbolic link te recomiendo que te bajes la utilidad de Microsoft (antes Sysinternals) llamada Junction.&lt;/p&gt;
&lt;p&gt;Bueno, no voy a explicar que es un Hard Link o un Sumbolic Link, porque son "viejos conocidos" pero os paso algunos enlaces para "ampliar la materia" si alguien está interesado en algo en concreto que me avise, e intentaré mejorar algo...&lt;/p&gt;
&lt;p&gt;Por cierto... en Windows los "hard links" se llaman "hard links" pero los "symbolic links" se llaman "junction" pero lo único que cambia es el nombre, su utilidad es la misma.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://shell-shocked.org/article.php?id=284"&gt;http://shell-shocked.org/article.php?id=284&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Symbolic_Link"&gt;http://en.wikipedia.org/wiki/Symbolic_Link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Hard_Link"&gt;http://en.wikipedia.org/wiki/Hard_Link&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/NTFS_junction_point"&gt;http://en.wikipedia.org/wiki/NTFS_junction_point&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.sysinternals.com/Utilities/Junction.html"&gt;http://www.sysinternals.com/Utilities/Junction.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="Windows"></category><category term="NTFS"></category><category term="windows"></category></entry><entry><title>Turbo C, alias el mata pollos</title><link href="https://victor.eu.org/2006/03/turbo-c-alias-el-mata-pollos" rel="alternate"></link><published>2006-03-25T22:50:00+01:00</published><updated>2006-03-25T22:50:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-03-25:/2006/03/turbo-c-alias-el-mata-pollos</id><summary type="html">&lt;p&gt;Una nota graciosa/curiosa recuperada de los principios de los tiempos. Ejemplo de uso de la función nosound de Turbo C++ 1.01 que era el no va más de Borland para programar, allá por 1990...&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Emits&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Hz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tone&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;seconds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;True&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;story&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Hz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;the …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;Una nota graciosa/curiosa recuperada de los principios de los tiempos. Ejemplo de uso de la función nosound de Turbo C++ 1.01 que era el no va más de Borland para programar, allá por 1990...&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Emits&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Hz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tone&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;seconds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;True&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;story&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Hz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;is&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;resonant&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;frequency&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;chicken&lt;/span&gt;&lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;skull&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cavity&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;This&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;was&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;determined&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;empirically&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;in&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;Australia&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;where&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;factory&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;generating&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Hz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tones&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;was&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;located&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;too&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;close&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;chicken&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ranch&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;When&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;the&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;factory&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;started&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;up&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;all&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;chickens&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;died&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;Your&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PC&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;may&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;not&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;be&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;able&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;emit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Hz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tone&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*/&lt;/span&gt;

&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;void&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;sound&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10000&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;nosound&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Lo que traducido, con mi mal ingles, viene siendo algo así...&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Genera&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;un&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tono&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Hz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;durante&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;segundos&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;Historia&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Real&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Los&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;huesos&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;la&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cabeza&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;un&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;pollo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;resuenan&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Hz&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;Esto&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;fue&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;determinado&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;empíricamente&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;en&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Australia&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;donde&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;una&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;fabrica&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;que&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;generaba&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tonos&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;hz&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;estaba&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;demasiado&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cerca&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;una&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;granja&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;avícola&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;cuando&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;la&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;fabrica&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;empezó&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;trabajar&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;todos&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;los&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;pollos&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;murieron&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;Tu&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;PC&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;no&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;puede&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;emitir&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tonos&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;hz&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Alguien tiene algún "aparato" que genere esa frecuencia para hacer una prueba empírica y comprobar que el comentario es correcto :P&lt;/p&gt;</content><category term="Programación"></category></entry><entry><title>htaccess para feedburner</title><link href="https://victor.eu.org/2006/03/htaccess-para-feedburner" rel="alternate"></link><published>2006-03-04T04:01:00+01:00</published><updated>2006-03-04T04:01:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-03-04:/2006/03/htaccess-para-feedburner</id><summary type="html">&lt;p&gt;Por si alguien no lo conoce feedburner es un servicio que nos permite quitar de nuestro servidor los ficheros rss, atom y xml, los famosos feed, y así nos ahorramos ese precioso ancho de banda. Por si fuera poco, además nos ofrece estadísticas, y le añade algunos servicios más casi …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Por si alguien no lo conoce feedburner es un servicio que nos permite quitar de nuestro servidor los ficheros rss, atom y xml, los famosos feed, y así nos ahorramos ese precioso ancho de banda. Por si fuera poco, además nos ofrece estadísticas, y le añade algunos servicios más casi todos ellos muy, muy interesantes.&lt;/p&gt;
&lt;p&gt;El problema es que la dirección de nuestro feed pasará (como fue en nuestro caso) de &lt;a href="http://www.victor.eu.org/es/diario/index.xml"&gt;http://www.victor.eu.org/es/diario/index.xml&lt;/a&gt; a &lt;a href="http://feeds.feedburner.com/victoreuorg"&gt;http://feeds.feedburner.com/victoreuorg&lt;/a&gt; esto no tiene mayor problema, pero lo interesante es que nadie tenga que volver a suscribirse, es decir, lo interesante es que la dirección cambie automáticamente en nuestro lector de feeds.&lt;/p&gt;
&lt;p&gt;Para eso la documentación de feedburner nos dice que sigamos unos pasos... básicamente nos indican que modifiquemos nuestras plantillas para añadir la nueva dirección, que redirijamos el tráfico a la nueva dirección, y que creemos un nuevo feed en nuestra máquina para que ellos puedan sacar los contenidos que publican... pero... no se porque... por mucho cuidado que se tenga, ese fichero, que en teoría nadie debería conocer, es accedido por otras "personas" que no son feedburner...&lt;/p&gt;
&lt;p&gt;Entonces para solucionarlo... hay que seguir estos pasos.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Crear la cuenta en feedburner y todo eso. Decirle que el origen será el mismo fichero que ya teníamos antes, por ejemplo en nuestro caso: &lt;a href="http://www.victor.eu.org/es/diario/index.xml"&gt;http://www.victor.eu.org/es/diario/index.xml&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Modificar las plantillas de nuestro programa indicando la nueva dirección en feedburner. En nuestro caso: &lt;a href="http://feeds.feedburner.com/victoreuorg"&gt;http://feeds.feedburner.com/victoreuorg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Añadir las siguientes lineas a nuestro fichero .htaccess&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;RewriteEngine on&lt;/p&gt;
&lt;p&gt;RewriteBase /&lt;/p&gt;
&lt;p&gt;RewriteCond %{HTTP_USER_AGENT} !FeedBurner&lt;/p&gt;
&lt;p&gt;RewriteRule \^es/diario/index\.xml\$ http://feeds.feedburner.com/victoreuorg [R=permanent,L]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Así cualquier solicitud de nuestro fichero antiguo que no sea desde FeedBurner será reenviada a la nueva dirección, con lo que no perderemos ninguna suscripción.&lt;/p&gt;
&lt;p&gt;Una característica muy interesante de FeedBurner es que puede enviar el formato que prefiere el lector que estamos usando, por lo que no es necesario que tengamos varios ficheros, si nuestro lector solo lee Atom 1.0 el recibirá Atom 1.0 si solo lee RSS 2.0 recibirá RSS 2.0, por lo que no es necesario que tengamos varios ficheros. Si deseamos redirigir todos nuestros antiguos ficheros a la nueva dirección, podemos añadir por cada uno de ellos (en el fichero .httaccess por supuesto otra vez) la siguiente linea&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Redirect permanent /es/diario/atom.xml http://feeds.feedburner.com/victoreuorg&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Y listo, todo configurado, y funcionando, rápidamente y con muy poco trabajo.&lt;/p&gt;</content><category term="Internet"></category></entry><entry><title>Movabletype el UTF8 y mySQL</title><link href="https://victor.eu.org/2006/02/movabletype-el-utf8-y-mysql" rel="alternate"></link><published>2006-02-19T06:17:00+01:00</published><updated>2006-02-19T06:17:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-02-19:/2006/02/movabletype-el-utf8-y-mysql</id><summary type="html">&lt;p&gt;Con esto de la informática nunca se sabe, crees que una cosa se hará en un minuto y te está dando la lata días...&lt;/p&gt;
&lt;p&gt;Me puese a migrar el servidor de mySQL, pero cuando voy a ver el Movable Type, todos los acentos me los había migrado mal... y ala …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Con esto de la informática nunca se sabe, crees que una cosa se hará en un minuto y te está dando la lata días...&lt;/p&gt;
&lt;p&gt;Me puese a migrar el servidor de mySQL, pero cuando voy a ver el Movable Type, todos los acentos me los había migrado mal... y ala... a reinstalar el mt y mira de aquí y mira de allá...&lt;/p&gt;
&lt;p&gt;Al final conseguí que todo funcionase más o menos bien... pero hago unas consultas con el phpMyAdmin y horror... en la base de datos estaban mal grabadas todas las tildes.&lt;/p&gt;
&lt;p&gt;Después de probar un rato llegué a la conclusión de que el error es de MovableType, y para que todo funcione correctamente (es decir, que las tildes se graben bien, y se muestren bien), hay que aplicarle un parche.&lt;/p&gt;
&lt;p&gt;El método está explicado en &lt;a href="http://blog.jtam.org/2006/01/unicode-support-of-movabletype-on-mysql-431/"&gt;este blog&lt;/a&gt; pero por si alguien no domina el idioma viene diciendo que hay que ir al fichero &lt;em&gt;lib/MT/ObjectDriver/DBI/mysql.pm&lt;/em&gt; y añadirle la linea &lt;em&gt;\$driver-&gt;{dbh}-&gt;do(”SET NAMES utf8″);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;¿En dónde? Pues en la linea 56 (por lo menos en mi MT), o mejor dicho... en la penúltima linea del método Init del fichero (también te puedes guiar por la imagen del blog de jtam).&lt;/p&gt;
&lt;p&gt;Y nada más... con eso, el MT y el MySQL se entienden en el mismo idioma!!!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Actualización&lt;/em&gt;: Con la versión 3.31 ya no es necesario modificar ningún fichero, el sistema ya detecta correctamente la codificación. Pero si aún así siguen apareciendo problemas con las tildes se puede usar la variable de configuración &lt;a href="http://www.sixapart.com/movabletype/docs/3.3/d_configuration_directives/sqlsetnames.html"&gt;SQLSetNames&lt;/a&gt;&lt;/p&gt;</content><category term="Este sitio"></category></entry><entry><title>mod_speling</title><link href="https://victor.eu.org/2006/01/mod-speling" rel="alternate"></link><published>2006-01-08T04:40:00+01:00</published><updated>2006-01-08T04:40:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-01-08:/2006/01/mod-speling</id><summary type="html">&lt;p&gt;A estas alturas, ya todos sabrán que hay páginas web que distinguen las mayúsculas, y hay páginas web que no las distinguen. También tenemos claro, que cuando alguien escribe a mano una dirección es probable que se equivoque al escribir la dirección. Y por ultimo, también sabemos que la página …&lt;/p&gt;</summary><content type="html">&lt;p&gt;A estas alturas, ya todos sabrán que hay páginas web que distinguen las mayúsculas, y hay páginas web que no las distinguen. También tenemos claro, que cuando alguien escribe a mano una dirección es probable que se equivoque al escribir la dirección. Y por ultimo, también sabemos que la página que se llamaba cosas_raras.html ahora se puede llamar cosas-raras.html&lt;/p&gt;
&lt;p&gt;Pues bien, para eso, en apache hay un módulo que nos permite corregir estos pequeños problemas, su nombre es mod_speling, y para usarlo solo hay que añadir la siguiente linea al fichero .htaccess de Apache.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt; CheckSpelling on
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;A partir de ese momento, si el servidor no encuentra una página, intentará buscar una que se le parezca teniendo en cuenta las mayúsculas (por ejemplo). Si encuentra solo una página que se le parezca, la dirección cambia automáticamente, y nadie verá ningún error. Si encuentra varias, pregunta cual es la página que deseamos ver.&lt;/p&gt;
&lt;p&gt;Pero tened cuidado con este módulo, porque si queréis borrar una página del servidor, y simplemente la renombráis, es muy probable que cuando se acceda a la antigua dirección (la que debería fallar, porque el fichero ahora se llama de otra forma, por ejemplo fichero2.html) el módulo cambie la dirección, y te devuelva la página, porque considera que está mal escrita.&lt;/p&gt;</content><category term="Internet"></category></entry><entry><title>Redirecciones para google</title><link href="https://victor.eu.org/2006/01/redirecciones-para-google" rel="alternate"></link><published>2006-01-07T04:13:00+01:00</published><updated>2006-01-07T04:13:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-01-07:/2006/01/redirecciones-para-google</id><summary type="html">&lt;p&gt;Se ha hablado mucho, sobre los &lt;a href="http://google.dirson.com/noticias.new/2105/"&gt;líos que tiene Google&lt;/a&gt; para saber si dos &lt;a href="http://google.dirson.com/noticias.new/1841/"&gt;páginas son iguales o son diferentes&lt;/a&gt;... o si dos dominios son &lt;a href="http://www.mattcutts.com/blog/seo-advice-url-canonicalization/"&gt;iguales&lt;/a&gt; o diferentes... bueno... en fin... &lt;a href="http://www.mattcutts.com/blog/seo-advice-discussing-302-redirects/"&gt;se lía&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;Se ha escrito mucho, pero creo que más o menos se puede resumir en que la gente …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Se ha hablado mucho, sobre los &lt;a href="http://google.dirson.com/noticias.new/2105/"&gt;líos que tiene Google&lt;/a&gt; para saber si dos &lt;a href="http://google.dirson.com/noticias.new/1841/"&gt;páginas son iguales o son diferentes&lt;/a&gt;... o si dos dominios son &lt;a href="http://www.mattcutts.com/blog/seo-advice-url-canonicalization/"&gt;iguales&lt;/a&gt; o diferentes... bueno... en fin... &lt;a href="http://www.mattcutts.com/blog/seo-advice-discussing-302-redirects/"&gt;se lía&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;Se ha escrito mucho, pero creo que más o menos se puede resumir en que la gente de Google hace lo que puede para arreglar sus problemas, pero, nosotros podemos ayudarle un poco, haciendo que nuestro sitio sea "googlefriendly".&lt;/p&gt;
&lt;p&gt;La solución, pues no tener páginas iguales con la misma dirección, y tener un único dominio para nuestro web, es decir, si tenemos http://midominio.com y http://www.midominio.com deberíamos redirigir todo el tráfico a uno de los dos sitios.&lt;/p&gt;
&lt;p&gt;Si tienes Apache, la solución es muy, pero que muy sencilla... llega con añadir lo siguiente al fichero .htacces (si no lo tienes, puedes crearlo en el raíz de tu web)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;RewriteEngine&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;on&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;RewriteBase&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;RewriteCond&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="n"&gt;HTTP_HOST&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;!&lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="n"&gt;www&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;midominio&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;NC&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;RewriteRule&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="p"&gt;(.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;www&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;midominio&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;R=permanent,L&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Con esto ya se arreglan la mitad de las URLs que indica &lt;a href="http://www.mattcutts.com/blog/seo-advice-url-canonicalization/"&gt;Matt Cutts&lt;/a&gt; en su Weblog, para arreglar la dirección www.example.com/index.html ya hablé hace unas semanas, y la dirección www.example.com/home.asp tiene la misma solución.&lt;/p&gt;
&lt;p&gt;Y bueno, listo... todo esto gracias a mod_rewrite del que ya hablé por aquí alguna vez, y de Apache...&lt;/p&gt;</content><category term="Internet"></category></entry><entry><title>Papanoeladas</title><link href="https://victor.eu.org/2006/01/papanoeladas" rel="alternate"></link><published>2006-01-06T23:55:00+01:00</published><updated>2006-01-06T23:55:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2006-01-06:/2006/01/papanoeladas</id><summary type="html">&lt;p&gt;Hace unos días se publicaba en el diario Qué!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ya falta menos... En unos días comenzarán a desaparecer todos esos colgajos rojiblancos con barba y cinturón que adornan ventanas y balcones. Siendo picajosos ya deberían haber desaparecido, pero ante la amenaza de que a cualquier iluminado se le diera por …&lt;/p&gt;&lt;/blockquote&gt;</summary><content type="html">&lt;p&gt;Hace unos días se publicaba en el diario Qué!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ya falta menos... En unos días comenzarán a desaparecer todos esos colgajos rojiblancos con barba y cinturón que adornan ventanas y balcones. Siendo picajosos ya deberían haber desaparecido, pero ante la amenaza de que a cualquier iluminado se le diera por colgar a toda la caravana real, mejor quedarnos con los papanoelillos, que ya estamos acostumbrados. Porque no me negaréis que se trata de na verdadera epidemia (..)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pues bueno, por desgracia se acabó la navidad, mala suerte... a partir de ahora ya se puede volver a ser un capullo. (Por si alguien no lo sabe, en España la navidad se acaba el día 6 de enero... el 7 lo dedicamos a las rebajas)&lt;/p&gt;</content><category term="Estoy cansado de"></category></entry><entry><title>Un nuevo año</title><link href="https://victor.eu.org/2005/12/un-nuevo-ano" rel="alternate"></link><published>2005-12-31T23:55:00+01:00</published><updated>2005-12-31T23:55:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-12-31:/2005/12/un-nuevo-ano</id><content type="html">&lt;p&gt;Aló foi... un ano máis... y como veis... con pequeños cambios...&lt;/p&gt;
&lt;p&gt;Por ahora son pocos, pero espero que sean más... a ver si tenemos suerte... ;)&lt;/p&gt;</content><category term="Este sitio"></category></entry><entry><title>Hiroshima</title><link href="https://victor.eu.org/2005/11/hiroshima" rel="alternate"></link><published>2005-11-06T19:47:00+01:00</published><updated>2005-11-06T19:47:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-11-06:/2005/11/hiroshima</id><summary type="html">&lt;p&gt;Tenía ganas de publicar esto... y no puedo esperar al 6 de agosto...  &lt;/p&gt;
&lt;p&gt;El 6 de agosto de 1945 a las 8.15 de la mañana (hora japonesa),&lt;br&gt;
la fuerza aérea estadounidense lanzó la primera bomba atómica contra objetivos civiles,&lt;br&gt;
en la ciudad de Hiroshima, al oeste de Japón. No …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Tenía ganas de publicar esto... y no puedo esperar al 6 de agosto...  &lt;/p&gt;
&lt;p&gt;El 6 de agosto de 1945 a las 8.15 de la mañana (hora japonesa),&lt;br&gt;
la fuerza aérea estadounidense lanzó la primera bomba atómica contra objetivos civiles,&lt;br&gt;
en la ciudad de Hiroshima, al oeste de Japón. No hubo tiempo para huir: 120.000 personas&lt;br&gt;
murieron en el acto y otras decenas de miles murieron antes de acabar el año. Gran parte&lt;br&gt;
de Hiroshima quedó &lt;a href="http://www.bbc.co.uk/spanish/specials/1456_hirosh_hersey/"&gt;borrada&lt;br&gt;
del mapa&lt;/a&gt;. Sesenta años después, las bombas atómicas continúan matando en silencio,&lt;br&gt;
pues continúan restos de radiación.&lt;br&gt;
Entre &lt;a href="http://news.google.es/?ncl=http://actualidad.terra.es/sociedad/articulo/superviviente_recuerda_horror_nuclear_desden_435703.htm&amp;amp;hl=es"&gt;muchos&lt;br&gt;
otros medios&lt;/a&gt;, la BBC ha preparado un &lt;a href="http://news.bbc.co.uk/hi/spanish/specials/2005/hiroshima/"&gt;especial&lt;/a&gt;,&lt;br&gt;
que incluye &lt;a href="http://www.bbc.co.uk/spanish/specials/1456_hirosh_hersey/"&gt;imágenes&lt;/a&gt;,&lt;br&gt;
&lt;a href="http://news.bbc.co.uk/hi/spanish/specials/newsid_4728000/4728007.stm"&gt;vídeos y grabaciones&lt;/a&gt;&lt;br&gt;
de audio de la época e incluso testimonios de supervivientes, que temen que aquello caiga&lt;br&gt;
en el olvido cuando los últimos &lt;a href="http://actualidad.terra.es/sociedad/articulo/superviviente_recuerda_horror_nuclear_desden_435703.htm"&gt;hibakusha&lt;/a&gt;&lt;br&gt;
desaparezcan y que la tragedia pueda volver a repetirse. Entre las grabaciones,&lt;br&gt;
el &lt;a href="http://www0.bbc.co.uk/spanish/audio/einstein/einsteinfinal1.rm"&gt;mensaje que Albert Einstein&lt;br&gt;
envió por televisión&lt;/a&gt; en 1950 a los estadounidenses&lt;br&gt;
(&lt;a href="http://www.elinconformistadigital.com/modules.php?op=modload&amp;amp;name=News&amp;amp;file=article&amp;amp;sid=1392&amp;amp;mode=&amp;amp;order=0"&gt;transcripción&lt;/a&gt;),&lt;br&gt;
cuestionando la idea de alcanzar la seguridad mediante el rearme y la amenaza nuclear.&lt;/p&gt;</content><category term="Política y paranoias"></category></entry><entry><title>mod_rewrite</title><link href="https://victor.eu.org/2005/10/mod-rewrite" rel="alternate"></link><published>2005-10-30T05:56:00+01:00</published><updated>2005-10-30T05:56:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-10-30:/2005/10/mod-rewrite</id><summary type="html">&lt;p&gt;Si hay algo que que me gusta de Apache es el módulo mod_rewrite, hoy me gustaría escribir unas pequeñitas lineas de código para añadir en el fichero .htaccess para controlar el nombre de nuestras urls...&lt;/p&gt;
&lt;p&gt;La primera regla quita el index.html (y similares) que aparece en algunas URLs y …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Si hay algo que que me gusta de Apache es el módulo mod_rewrite, hoy me gustaría escribir unas pequeñitas lineas de código para añadir en el fichero .htaccess para controlar el nombre de nuestras urls...&lt;/p&gt;
&lt;p&gt;La primera regla quita el index.html (y similares) que aparece en algunas URLs y que es innecesario. Lo que hace es redirigir la página a la dirección sin el texto. Usease, cambiamos de http://www.victor.eu.org/index.html a http://www.victor.eu.org/&lt;/p&gt;
&lt;p&gt;La segunda reemplaza las urls *.htm y *.shtml a *.html, que por decirlo así, es más "normal". Si se des comenta la linea RewirteCond solo se hará la sustitución si no existe el fichero .htm o .shtml. Usease cambia de http://www.victor.eu.org/es/datos.htm a http://www.victor.eu.org/es/datos.html&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;IfModule&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;mod_rewrite.c&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="w"&gt;   &lt;/span&gt;RewriteEngine&lt;span class="w"&gt; &lt;/span&gt;on
&lt;span class="w"&gt;   &lt;/span&gt;#RewriteBase&lt;span class="w"&gt; &lt;/span&gt;/kk

&lt;span class="w"&gt;   &lt;/span&gt;#&lt;span class="w"&gt; &lt;/span&gt;Cambia&lt;span class="w"&gt; &lt;/span&gt;URLs&lt;span class="w"&gt; &lt;/span&gt;del&lt;span class="w"&gt; &lt;/span&gt;tipo&lt;span class="w"&gt; &lt;/span&gt;http://localhost/index.html&lt;span class="w"&gt; &lt;/span&gt;a&lt;span class="w"&gt; &lt;/span&gt;http://localhost/
&lt;span class="w"&gt;   &lt;/span&gt;RewriteRule&lt;span class="w"&gt; &lt;/span&gt;^(.*)index\.(html|htm|shtml|php)&lt;span class="w"&gt; &lt;/span&gt;$1&lt;span class="w"&gt; &lt;/span&gt;[R=permanent,L]

&lt;span class="w"&gt;   &lt;/span&gt;#&lt;span class="w"&gt; &lt;/span&gt;Cambia&lt;span class="w"&gt; &lt;/span&gt;URLs&lt;span class="w"&gt; &lt;/span&gt;del&lt;span class="w"&gt; &lt;/span&gt;tipo&lt;span class="w"&gt; &lt;/span&gt;http://localhost/hola.htm&lt;span class="w"&gt; &lt;/span&gt;a&lt;span class="w"&gt; &lt;/span&gt;http://localhost/hola.html
&lt;span class="w"&gt;   &lt;/span&gt;#RewriteCond&lt;span class="w"&gt; &lt;/span&gt;%{REQUEST_FILENAME}&lt;span class="w"&gt; &lt;/span&gt;!-s
&lt;span class="w"&gt;   &lt;/span&gt;RewriteRule&lt;span class="w"&gt; &lt;/span&gt;^(.*)\.(htm|shtml)$&lt;span class="w"&gt; &lt;/span&gt;$1\.html&lt;span class="w"&gt; &lt;/span&gt;[R=permanent,L]

&lt;span class="nt"&gt;&amp;lt;/IfModule&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Bueno, a ver si dentro de poco añado alguna otra que tengo por ahí para hacer nuestro web más "google friendly" como se suele decir...&lt;/p&gt;</content><category term="Internet"></category></entry><entry><title>Nedstats</title><link href="https://victor.eu.org/2005/09/nedstats" rel="alternate"></link><published>2005-09-21T18:27:00+02:00</published><updated>2005-09-21T18:27:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-09-21:/2005/09/nedstats</id><summary type="html">&lt;p&gt;Había una vez un contador para páginas web, que era muy sencillo de usar, posiblemente los había "más mejores" pero mucha gente lo empezó a usar.&lt;/p&gt;
&lt;p&gt;Hace unos días enviaron un correo a todos sus usuarios diciendo que iba a cambiar, que iba a mejorar. El cambio fue meramente estético …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Había una vez un contador para páginas web, que era muy sencillo de usar, posiblemente los había "más mejores" pero mucha gente lo empezó a usar.&lt;/p&gt;
&lt;p&gt;Hace unos días enviaron un correo a todos sus usuarios diciendo que iba a cambiar, que iba a mejorar. El cambio fue meramente estético y de nombre (ahora se llama Webstas4u), aunque a mi me gustaba mucho más el antiguo.&lt;/p&gt;
&lt;p&gt;Pero según cuentan en sitios como en &lt;a href="http://www.microsiervos.com/archivo/internet/nokia-publicidad-inteligente.html"&gt;Microsiervos&lt;/a&gt; ahora usan el código en javascript que hay que colocar en las páginas que deseas contar, para enviar publicidad, y popups sin el consentimiento ni del dueño del web, ni de los visitantes.&lt;/p&gt;
&lt;p&gt;La solución, es sencilla, pasar de ellos a otro servicio, o usar programas como awstas que funcionan con la filosofía "Juan palomo" donde la limitación es que necesitas usar Perl o algún lenguaje de script.&lt;/p&gt;
&lt;p&gt;Hay otra solución, y es cambiar el código del script por lo siguiente:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;\&amp;lt;img&lt;br&gt;
src="http://m1.nedstatbasic.net/n?id=MI-ID" border="0" nosave width="18" height="18"&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pero a partir de ese momento no podrás saber de que página vienen tus visitantes.&lt;/p&gt;
&lt;p&gt;Por ultimo si deseas que el dichoso contador no muestre los infames popups puedes añadir con el notepad la siguiente linea en el fichero %systemroot%\system32\drivers\etc\hosts&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;127.0.0.1 m1.nedstatbasic.net&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;El problema es que en el lugar de los popups aparecerá un error de javascript. Si quieres que no aparezca necesitarás tener instalado un servidor web, y crear un fichero llamado basic.js con este contenido:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;function nedstatbasic()&lt;br&gt;
{ }&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Y ala, ni popups, ni aparecer en las visitas...&lt;/p&gt;</content><category term="Internet"></category></entry><entry><title>Csharp</title><link href="https://victor.eu.org/2005/09/csharp" rel="alternate"></link><published>2005-09-18T03:27:00+02:00</published><updated>2005-09-18T03:27:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-09-18:/2005/09/csharp</id><summary type="html">&lt;p&gt;Hay muchas y diversas teorias sobre el nombre del lenguaje C#, supuestamente esta es la história oficial del nombre.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Allá por la prehistória de la informática, crearon el primer&lt;br&gt;
lenguaje de programación, y como no tenían mucha imaginación le&lt;br&gt;
llamaron A, como suele pasar pronto quedó anticuado e inventaron&lt;br&gt;
otro …&lt;/p&gt;&lt;/blockquote&gt;</summary><content type="html">&lt;p&gt;Hay muchas y diversas teorias sobre el nombre del lenguaje C#, supuestamente esta es la história oficial del nombre.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Allá por la prehistória de la informática, crearon el primer&lt;br&gt;
lenguaje de programación, y como no tenían mucha imaginación le&lt;br&gt;
llamaron A, como suele pasar pronto quedó anticuado e inventaron&lt;br&gt;
otro que llamaron B, y poco después otro lo sucedió con el original&lt;br&gt;
nombre de C.&lt;/p&gt;
&lt;p&gt;Pero las cosas siguieron evolucionando, y el nombre del siguiente&lt;br&gt;
lenguaje se escribió en notación "informática", es decir, si antes&lt;br&gt;
teníamos A, B, C... es decir ibamos incrementando las letras, esta&lt;br&gt;
vez en vez de incrementar, usaron el simbolo de incremento: ++ y&lt;br&gt;
nació el C++&lt;/p&gt;
&lt;p&gt;Los de Microsoft que son más chulos, cuando crearon su lenguaje,&lt;br&gt;
cogieron el C++ y lo volvieron a mejorar, e incrementar. Y el&lt;br&gt;
nombre quedó como (C++)++ que abreviado queda como C# porque el&lt;br&gt;
simbolito este tiene 4 cruces.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Hasta aquí una anécdota más o menos bonita... pero como se lee esto... los anglosajones lo tienen fácil, saben que se lee "c-sharp"... pero y en castellano?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cé almohadilla&lt;/li&gt;
&lt;li&gt;cé cuadradillo&lt;/li&gt;
&lt;li&gt;cé sostenido&lt;/li&gt;
&lt;li&gt;cé numeral (usado en hispanoamérica)&lt;/li&gt;
&lt;li&gt;cé churrillo&lt;/li&gt;
&lt;li&gt;cé gurruño (el gurruño, ese carácter polimorfico ;)&lt;/li&gt;
&lt;li&gt;sí shaaaaaaarp (directo del inglés, pronunciando de forma exagerada la a de "sharp")&lt;/li&gt;
&lt;li&gt;cé sharp (para los que aprendimos inglés en Wall Street Institute)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero la mejor sin duda:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;c hash&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto es estrictamente real... sacado directamente del significado de hash de &lt;a href="http://en.wiktionary.org/wiki/Hash"&gt;wiktionary&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abbreviation for hashish, a drug derived from the cannabis plant.&lt;/li&gt;
&lt;li&gt;Food, especially meat and potatoes, chopped and mixed together.&lt;/li&gt;
&lt;li&gt;A confused mess.&lt;/li&gt;
&lt;li&gt;The # symbol (octothorpe).&lt;/li&gt;
&lt;li&gt;To make a quick, rough version; as in - hash up some plans = make some quick, rough plans.&lt;/li&gt;
&lt;li&gt;(computing): The key generated by a hash function.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Una traducción rápida&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Abreviatura de una droga&lt;/li&gt;
&lt;li&gt;Una comida. Picadillo.&lt;/li&gt;
&lt;li&gt;?&lt;/li&gt;
&lt;li&gt;El simbolo #&lt;/li&gt;
&lt;li&gt;Hacer mal, pifiar estropear&lt;/li&gt;
&lt;li&gt;El valor generando por una funcion de hash&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Es decir, que podríamos leerlo como &lt;em&gt;C-Estropeado&lt;/em&gt;... lo que da mucho juego para los amantes de Microsoft.&lt;/p&gt;
&lt;p&gt;Pero si tomanos como base que los desarrolladores de Sun como tomaban café le pusieron Java a su desarrollo (por si no lo sabes, java es una marca de café)... ¿qué era lo que tomaban los de Microsoft?&lt;/p&gt;
&lt;p&gt;Eso explica muchas cosas...&lt;/p&gt;
&lt;p&gt;(Nota &lt;a href="http://barrapunto.com/comments.pl?sid=56568&amp;amp;cid=597229"&gt;la idea ha sido sacada de aquí&lt;/a&gt;)&lt;/p&gt;</content><category term=".NET"></category></entry><entry><title>AJAX</title><link href="https://victor.eu.org/2005/08/ajax" rel="alternate"></link><published>2005-08-14T21:53:00+02:00</published><updated>2005-08-14T21:53:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-08-14:/2005/08/ajax</id><summary type="html">&lt;p&gt;Desde hace un tiempo se está hablando mucho de AJAX. Quien quiera saber de que va, pues que se pase por &lt;a href="http://en.wikipedia.org/wiki/AJAX"&gt;Wikipedia&lt;/a&gt; o vuelva por aquí... porque algún día escribieré largo y tendido sobre el tema.&lt;/p&gt;
&lt;p&gt;La cosa es que hoy por hoy esto parece que tiene mucho futuro. Pero …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Desde hace un tiempo se está hablando mucho de AJAX. Quien quiera saber de que va, pues que se pase por &lt;a href="http://en.wikipedia.org/wiki/AJAX"&gt;Wikipedia&lt;/a&gt; o vuelva por aquí... porque algún día escribieré largo y tendido sobre el tema.&lt;/p&gt;
&lt;p&gt;La cosa es que hoy por hoy esto parece que tiene mucho futuro. Pero si estás interesado en que tus aplicaciones web usen estas tecnologías, antes de nada, pasate por &lt;a href="http://weblogs.asp.net/mschwarz/"&gt;el blog de Michael Schwarz&lt;/a&gt; y bajate la libreria. Seguro que no te defraudará.&lt;/p&gt;
&lt;p&gt;Para mi es espectacular. Y además es Open Source.&lt;/p&gt;</content><category term=".NET"></category></entry><entry><title>Canon</title><link href="https://victor.eu.org/2005/07/canon" rel="alternate"></link><published>2005-07-31T01:08:00+02:00</published><updated>2005-07-31T01:08:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-07-31:/2005/07/canon</id><summary type="html">&lt;p&gt;Me gustaría formar una plataforma para solicitar que se empiece a aplicacar un canon de esos como los que se les aplica a las grabadoras de cd, a los cds, a las fotocopiadoras...&lt;/p&gt;
&lt;p&gt;Yo quiero que se aplique un canon a los folios de papel.&lt;/p&gt;
&lt;p&gt;No es justo que todo …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Me gustaría formar una plataforma para solicitar que se empiece a aplicacar un canon de esos como los que se les aplica a las grabadoras de cd, a los cds, a las fotocopiadoras...&lt;/p&gt;
&lt;p&gt;Yo quiero que se aplique un canon a los folios de papel.&lt;/p&gt;
&lt;p&gt;No es justo que todo el mundo pueda usar folios en blanco para dañar los intereses de los artistas, y estos no vean repercutido su esfuerzo de ninguna forma.&lt;/p&gt;</content><category term="Política y paranoias"></category></entry><entry><title>About:config Firefox</title><link href="https://victor.eu.org/2005/06/aboutconfig-firefox" rel="alternate"></link><published>2005-06-18T00:19:00+02:00</published><updated>2005-06-18T00:19:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-06-18:/2005/06/aboutconfig-firefox</id><summary type="html">&lt;p&gt;Lo siento mucho, pero tengo que decirlo, aunque muchos de mis amigos me digan lo contrario... pero... a mi me gusta el &lt;a href="http://www.mozilla.org"&gt;Firefox&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;Me gusta por cosas como la dirección especial que tiene, la dirección &lt;about:config&gt; si pones eso en el barra de direcciones del Firefox puedes configurar un montón de …&lt;/about:config&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Lo siento mucho, pero tengo que decirlo, aunque muchos de mis amigos me digan lo contrario... pero... a mi me gusta el &lt;a href="http://www.mozilla.org"&gt;Firefox&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;Me gusta por cosas como la dirección especial que tiene, la dirección &lt;about:config&gt; si pones eso en el barra de direcciones del Firefox puedes configurar un montón de cosas &lt;a href="http://kb.mozillazine.org/About:config_entries"&gt;(pasate por este wiki)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A mi la que mas me gusta es: &lt;em&gt;network.http.sendRefererHeader&lt;/em&gt; que permite los valores 0, 1, 2 (por defecto).&lt;/p&gt;
&lt;p&gt;Gracias a esta entrada, puedes hacer que el firefox no envie el refer... es decir... podrás ver imagenes que están enlazadas desde una web externa, y que solo se pueden ver desde la web original.&lt;/p&gt;
&lt;p&gt;La cosa es que si pones&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;0 . Nunca se envía la URL "refer"&lt;/li&gt;
&lt;li&gt;1 . Sólo se envía desde links&lt;/li&gt;
&lt;li&gt;2 . (por defecto): Se envía por enlaces e imágenes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://kb.mozillazine.org/About:config_entries"&gt;Si necesitas más información pasate por está web&lt;/a&gt;&lt;/p&gt;</content><category term="Internet"></category></entry><entry><title>Ban al spam</title><link href="https://victor.eu.org/2005/06/ban-al-spam" rel="alternate"></link><published>2005-06-05T18:44:00+02:00</published><updated>2005-06-05T18:44:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-06-05:/2005/06/ban-al-spam</id><summary type="html">&lt;p&gt;Hace un tiempo, comenté aquí mismo, una forma rápida y sencilla de &lt;a href="http://www.victor.eu.org/es/diario/archives/2004/11/ban_bruto_al_sp.html"&gt;parar de recibir comentarios sin sentido&lt;/a&gt; en un weblog...&lt;/p&gt;
&lt;p&gt;La solución sencilla... pero... ¿da resultados?&lt;/p&gt;
&lt;p&gt;Pues bien, después de todo este tiempo, además de añadir el script para bloquear a los spammers, de actualizar el MovableType, y de …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hace un tiempo, comenté aquí mismo, una forma rápida y sencilla de &lt;a href="http://www.victor.eu.org/es/diario/archives/2004/11/ban_bruto_al_sp.html"&gt;parar de recibir comentarios sin sentido&lt;/a&gt; en un weblog...&lt;/p&gt;
&lt;p&gt;La solución sencilla... pero... ¿da resultados?&lt;/p&gt;
&lt;p&gt;Pues bien, después de todo este tiempo, además de añadir el script para bloquear a los spammers, de actualizar el MovableType, y de obligar a hacer un preview antes de añadir un comentario... el resultado es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;132 IPs bloqueadas por intentar postear Spam a este Weblog.&lt;/li&gt;
&lt;li&gt;0 Comentarios con Spam al día...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso si... al principio hubo algunos posts interesantes, donde se reían de mi, diciéndome que era una forma como otra cualquiera de impedir el spam... pero que no funcionaba.&lt;/p&gt;
&lt;p&gt;Pero bueno... ahora cada día cae alguna IP nueva, a este paso acabaré bloqueando a medio internet... pero eso si... el spam se está acabando... y es una pena... ahora que ya tenía dinero para "enlarge your pennis" ;)&lt;/p&gt;</content><category term="Este sitio"></category></entry><entry><title>Prevenir antes que curar</title><link href="https://victor.eu.org/2005/06/prevenir-antes-que-curar" rel="alternate"></link><published>2005-06-01T18:33:00+02:00</published><updated>2005-06-01T18:33:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-06-01:/2005/06/prevenir-antes-que-curar</id><summary type="html">&lt;p&gt;La primera vez que me contaron que tenía compañeros que disfrutaban de un plus por peligrosidad, medio me eché a reír, medio me alucinó que alguien tuviese tanta cara/suerte por cobrar un plus que no necesitaba para nada...&lt;/p&gt;
&lt;p&gt;Pero si te lo explican, y te dicen que los informáticos …&lt;/p&gt;</summary><content type="html">&lt;p&gt;La primera vez que me contaron que tenía compañeros que disfrutaban de un plus por peligrosidad, medio me eché a reír, medio me alucinó que alguien tuviese tanta cara/suerte por cobrar un plus que no necesitaba para nada...&lt;/p&gt;
&lt;p&gt;Pero si te lo explican, y te dicen que los informáticos tienen muchas enfermedades profesionales, pues como que las cosas cambian. Tal vez de ellas la más conocida sea la del síndrome del túnel metacarpiano, ese dolor en el brazo, que los médicos difícilmente pueden solucionar aún con una operación...&lt;/p&gt;
&lt;p&gt;Por suerte es más sencillo prevenir que curar...&lt;/p&gt;
&lt;p&gt;Buscando, buscando encontré dos programas uno gratuito (el que uso) y otro de pago, que te marcan unos ejercicios para realizar cada cierto tiempo, con los que mitigar (bonita palabra) el cansancio, y a la larga esas enfermedades laborales...&lt;/p&gt;
&lt;p&gt;No lo llevo usando mucho tiempo, es un poco pesadito el programa, pero creo que funciona...&lt;/p&gt;
&lt;p&gt;Por cierto, que se me olvidaba, el programa gratuito que uso se llama &lt;a href="http://www.workrave.org/"&gt;workrave&lt;/a&gt; y el de pago &lt;a href="http://www.workpace.com/"&gt;Workpace&lt;/a&gt;, que lo sepas!&lt;/p&gt;</content><category term="Informática"></category></entry><entry><title>System.CodeDom Namespace</title><link href="https://victor.eu.org/2005/05/systemcodedom-namespace" rel="alternate"></link><published>2005-05-29T02:11:00+02:00</published><updated>2005-05-29T02:11:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-05-29:/2005/05/systemcodedom-namespace</id><summary type="html">&lt;p&gt;No se si muchos conocen las maravillas del namespace del .NET System.CodeDom...&lt;/p&gt;
&lt;p&gt;La verdad, después de haberlo usado intensivamente en un par de proyectos, puedo decir que como no tengas cuidado es un infierno... y si lo tienes... pues como que también... pero no me mal interpretéis... en el …&lt;/p&gt;</summary><content type="html">&lt;p&gt;No se si muchos conocen las maravillas del namespace del .NET System.CodeDom...&lt;/p&gt;
&lt;p&gt;La verdad, después de haberlo usado intensivamente en un par de proyectos, puedo decir que como no tengas cuidado es un infierno... y si lo tienes... pues como que también... pero no me mal interpretéis... en el próximo proyecto seré yo quien pida usarlo otra vez.&lt;/p&gt;
&lt;p&gt;Si alguien no conoce el namespace, pues, es el susodicho sirve para genera código fuente. Es decir... yo llamo a unas funciones, y voy creando los fuentes de clases, métodos, variables... vamos... lo que se hacía toda la vida concatenando cadenas, y que al final nadie se enteraba de lo que pasaba.&lt;/p&gt;
&lt;p&gt;La principal ventaja de este namespace, es que el código que generas de está forma, es multilenguaje... es decir... una vez que hago las llamadas a las funciones pertinentes, puedo generar las clases en Visual Basic o en C# sin modificar una sola línea de código.&lt;/p&gt;
&lt;p&gt;Y otra ventaja que también me gusta mucho... es que con él puedo generar código automáticamente en mis controles... por ejemplo... pongámonos en el hipotético caso de un control, al que siempre que se usa, hay que pasarle el nombre del control padre... aunque ya se que a priori que ese va a ser this.Page&lt;/p&gt;
&lt;p&gt;Pues bueno, con System.CodeDom se puede generar automáticamente ese código que siempre hay que escribir, y lo mejor de todo... se generará VisualBasic en un proyecto VisualBasic, Csharp en uno Csharp... o si usas otro lenguaje se generará ese otro lenguaje...&lt;/p&gt;
&lt;p&gt;Pero bueno... a hasta ahora, lo que me fastidiaba era que cuando quería generar un fichero completo de Visual Basic (asease cuando generaba una compileUnit en VB.NET), el código generado siempre era "Option Strict Off" y "Option Explicit Off" aunque yo dijese lo contrario en el proyecto.&lt;/p&gt;
&lt;p&gt;Pues bueno... aunque no está documentado, prácticamente en ningún sitio, con estas simples líneas, se puede generar código "Option Strict On" y "Option Explicit Off"&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;compileUnit.UserData.Add(&amp;quot;AllowLateBound&amp;quot;, false);                      // Option Strict On
compileUnit.UserData.Add(&amp;quot;RequireVariableDeclaration&amp;quot;, true);           // Option Explicit On
compileUnit.UserData.Add(&amp;quot;GenerateImports&amp;quot;, true);                      // Crea Imports NameSpace...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Por ahora ya queda presentado... otro día ya publicaré un pequeño control que use System.CodeDom.&lt;/p&gt;</content><category term=".NET"></category></entry><entry><title>Reflector</title><link href="https://victor.eu.org/2005/05/reflector" rel="alternate"></link><published>2005-05-26T19:25:00+02:00</published><updated>2005-05-26T19:25:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-05-26:/2005/05/reflector</id><summary type="html">&lt;p&gt;A estas alturas, si hablo del estupendo programa de &lt;a href="http://www.aisto.com/roeder/"&gt;Luz Roeder&lt;/a&gt; todo el mundo debería saber que estoy hablando del &lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;Reflector&lt;/a&gt;... un programa que de no existir habría que inventarlo...&lt;/p&gt;
&lt;p&gt;Yo lo suelo usar bastante a menudo, sobre todo para buscar aquella función o aquel método que no encuentro, o …&lt;/p&gt;</summary><content type="html">&lt;p&gt;A estas alturas, si hablo del estupendo programa de &lt;a href="http://www.aisto.com/roeder/"&gt;Luz Roeder&lt;/a&gt; todo el mundo debería saber que estoy hablando del &lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;Reflector&lt;/a&gt;... un programa que de no existir habría que inventarlo...&lt;/p&gt;
&lt;p&gt;Yo lo suelo usar bastante a menudo, sobre todo para buscar aquella función o aquel método que no encuentro, o que necesito consultar la ayuda, y es que la verdad, me es más sencillo consultar el &lt;a href="http://www.msdn.com"&gt;MSDN&lt;/a&gt; desde que lo conozco.&lt;/p&gt;
&lt;p&gt;Otra utilidad que le encuentro ultimamente es para poder completar la ayuda contextual de los controles que hago... si, por ejemplo todo control tiene las propiedades Width y Height y gracias a este programa suelo copiar la ayuda contextual de cualquier otro control... y así rápidamente tengo una ayuda con enlaces a tipos devueltos y todas esas cosas que tan bien tienen comentadas.&lt;/p&gt;
&lt;p&gt;Pero esto último a veces como que es un poco lio, porque el texto puede ser bastante grande... y el reflector lo único que hace es mostrar la parte del fichero Xml de documentación que a mi me interesa... y como soy un poco vago me puse a jugar un poco con su API...&lt;/p&gt;
&lt;p&gt;Y en un momento me hice un pequeño plugin que a partir de la ayuda contextual muestra como fue el comentario Xml que escribió el programador...&lt;/p&gt;
&lt;p&gt;Si alguien está interesado, puede dirigirse a este &lt;a href="/es/snippet"&gt;link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;No se si es muy util... pero a mi me vale...&lt;/p&gt;</content><category term=".NET"></category></entry><entry><title>Paypal</title><link href="https://victor.eu.org/2005/05/paypal" rel="alternate"></link><published>2005-05-16T21:01:00+02:00</published><updated>2005-05-16T21:01:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-05-16:/2005/05/paypal</id><summary type="html">&lt;p&gt;Al fin!!! al fin!!! al fin Paypal se ha establecido en España!!!&lt;/p&gt;
&lt;p&gt;Y claro... la principal diferencia, es que por fin está en castellano!!!&lt;/p&gt;
&lt;p&gt;Aunque la verdad, no he visto muchas más funcionalidades nuevas... a parte de la traducción, y que hay soporte teléfonico en castellano en España, las fechas …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al fin!!! al fin!!! al fin Paypal se ha establecido en España!!!&lt;/p&gt;
&lt;p&gt;Y claro... la principal diferencia, es que por fin está en castellano!!!&lt;/p&gt;
&lt;p&gt;Aunque la verdad, no he visto muchas más funcionalidades nuevas... a parte de la traducción, y que hay soporte teléfonico en castellano en España, las fechas están en hora local... eso si... de Madrid... mala suerte canarios...&lt;/p&gt;</content><category term="Internet"></category></entry><entry><title>FeedBurner</title><link href="https://victor.eu.org/2005/05/feedburner" rel="alternate"></link><published>2005-05-15T18:45:00+02:00</published><updated>2005-05-15T18:45:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-05-15:/2005/05/feedburner</id><summary type="html">&lt;p&gt;A estas alturas no creo que sea necesario explicar lo que es un fichero RSS o Atom o que es eso de la sindicación (por cierto, que mal suena en español... ¿seguro que lo acepta la RAE?&lt;/p&gt;
&lt;p&gt;La cuestión es que están muy bien, y que son muy cómodos... pero …&lt;/p&gt;</summary><content type="html">&lt;p&gt;A estas alturas no creo que sea necesario explicar lo que es un fichero RSS o Atom o que es eso de la sindicación (por cierto, que mal suena en español... ¿seguro que lo acepta la RAE?&lt;/p&gt;
&lt;p&gt;La cuestión es que están muy bien, y que son muy cómodos... pero es bastante dificil tener una estádisticas sobre los gustos de los visitantes... y sobre todo lo peor... hay visitantes, aunque a mi no me pasa, ponen sus lectores de RSS para que actualicen demasiadas veces al día... y eso claro... 'chupa' bastante ancho de banda...&lt;/p&gt;
&lt;p&gt;Pues la solición está en &lt;a href="http://www.feedburner.com/" title="FeedBurner"&gt;FeedBurner&lt;/a&gt;... lo único que hay que hacer es darte de alta, y crear un nuevo RSS o Atom que apunte a tu viejo fichero, y modificar las etiquetas meta de tu web... a partir de ese momento ellos se encargan de todo lo demás...&lt;/p&gt;
&lt;p&gt;Por ejemplo, ahora el fichero rss de está web &lt;a href="http://feeds.victor.eu.org/victoreuorg"&gt;está en esta dirección&lt;/a&gt; y funcionalmente es igual al que había antes, bueno, igual no... tiene algunas ventajas, como que muestra una pantalla para añadirlo a los servicios tipicos de lectura de este tipo de ficheros, y tiene unas estadísticas bastante bonitas, así como una pequeña "golosina"... incluso te indica cuantos lectores tienes...&lt;/p&gt;
&lt;p&gt;&lt;img alt="Los lectores de esta Web" src="http://feeds.feedburner.com/~fc/victoreuorg" title="Qué poquitos... no?... pero mola"&gt;&lt;/p&gt;
&lt;p&gt;La verdad, no está mal... nada mal...&lt;/p&gt;</content><category term="Este sitio"></category></entry><entry><title>Casablanca</title><link href="https://victor.eu.org/2005/03/casablanca" rel="alternate"></link><published>2005-03-06T21:39:00+01:00</published><updated>2005-03-06T21:39:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-03-06:/2005/03/casablanca</id><summary type="html">&lt;p&gt;Al fin tuve la oportunidad de ver &lt;a href="http://akas.imdb.com/title/tt0034583/"&gt;Casablanca (1942)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Solo puedo decir dos cosas sobre la pelicula, la primera es que ya no se ruedan peliculas así, y la segunda, que en la pelicula no se dice "Tócala otra vez Sam"... se dice "Tócala Sam, tócala Sam".&lt;/p&gt;
&lt;p&gt;Por lo menos …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Al fin tuve la oportunidad de ver &lt;a href="http://akas.imdb.com/title/tt0034583/"&gt;Casablanca (1942)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Solo puedo decir dos cosas sobre la pelicula, la primera es que ya no se ruedan peliculas así, y la segunda, que en la pelicula no se dice "Tócala otra vez Sam"... se dice "Tócala Sam, tócala Sam".&lt;/p&gt;
&lt;p&gt;Por lo menos en el doblaje español "democrático"... ese que se hizo después de que se muriese Franco, porque en su momento se consideró que Rick Blaine ( &lt;a href="http://akas.imdb.com/name/nm0000007/"&gt;Humphrey Bogart 1899-1957&lt;/a&gt; ) no era, como se dice ahora, "politicamente correcto". Eso de que fuese un combatiente republicano... o un idealista, una persona justa, por estar siempre del lado correcto... aunque pierda.&lt;/p&gt;
&lt;p&gt;Bueno, a ver si ahora tengo suerte y consigo los 2 doblajes restantes, porque la pelicula será una, pero hay tres doblajes&lt;br&gt;
&lt;a href="http://www.eldoblaje.com/datos/FichaPelicula.asp?id=6518"&gt;1946&lt;/a&gt;&lt;br&gt;
&lt;a href="http://www.eldoblaje.com/datos/FichaPelicula.asp?id=1342"&gt;1966&lt;/a&gt;&lt;br&gt;
&lt;a href="http://www.eldoblaje.com/datos/FichaPelicula.asp?id=534"&gt;1983&lt;/a&gt;&lt;/p&gt;</content><category term="Cine"></category></entry><entry><title>Presion</title><link href="https://victor.eu.org/2005/02/presion" rel="alternate"></link><published>2005-02-12T21:56:00+01:00</published><updated>2005-02-12T21:56:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2005-02-12:/2005/02/presion</id><summary type="html">&lt;p&gt;Hoy tuve la oportunidad de ver Colateral, o Collateral. No tenía ninguna gana de verla, pero la verdad, me gustó. Aunque lo mejor con diferencia de la pelicula es el principio, donde se muestra muy bien lo duro que es trabajar de noche en una gran ciudad, la soledad, y …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hoy tuve la oportunidad de ver Colateral, o Collateral. No tenía ninguna gana de verla, pero la verdad, me gustó. Aunque lo mejor con diferencia de la pelicula es el principio, donde se muestra muy bien lo duro que es trabajar de noche en una gran ciudad, la soledad, y lo que es el estres, lo que es para un taxista o para un fiscal, y la verdad, me quedo con una frase, bueno, una escena que habla muy bien de esto, y de lo que es la vida laboral de muchas personas, entre las que me incluyo.&lt;/p&gt;
&lt;p&gt;Collateral 2004 &lt;a href="http://akas.imdb.com/name/nm0000520/"&gt;Michael Mann&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;En un taxi, de noche, después de un duro, duro, y largo día.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Max, Taxista. &lt;a href="http://akas.imdb.com/name/nm0004937/"&gt;Jamie Foxx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Annie Farrell, Fiscal. &lt;a href="http://akas.imdb.com/name/nm0000586/"&gt;Jasa Pinkett Smith&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Al final de una carrera...&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Max: Le gusta lo que hace?.&lt;/li&gt;
&lt;li&gt;Annie: Si,&lt;/li&gt;
&lt;li&gt;M: Pero hoy no?&lt;/li&gt;
&lt;li&gt;A: No, lo cierto es que me apasiona, disfruto entrando en los trivinales y al mismo tiempo me entra, cierta angustia la noche anterior al primer día.&lt;/li&gt;
&lt;li&gt;M: Angustina, y eso?&lt;/li&gt;
&lt;li&gt;A: Creo que voy a perder, que el caso vá mal, que mis puebas son un caos que me falta preparación, y que todo el mundo descubrirá que voy a la deriba, y que todos estos años han sido una pura farsa. Que represento al departamento de justicia, y mi esposición inicial será ridicula en el punto más importante, y que el jurado se reirá de mi. Y entonces lloro. No bomito, porque muchos bomitan, tengo un estomago fuerte. Y a partir de ahí me rehago, escribo de nuevo toda mi exposición. Ordeno mis pruebas, y en eso ocupo el resto de la noche. Ya es una rutina. Y por la manaña me encentro prefectamente.&lt;/li&gt;
&lt;li&gt;M: Necesita unas vacaciones.&lt;/li&gt;
&lt;li&gt;A: Hoy he tenido un grato descanso en la autopista.&lt;/li&gt;
&lt;li&gt;M: No, en un taxi no, yo hablo de ordenar la cabeza, necesita unificar su yo, conseguir armonizarse... no se...&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;</content><category term="Cine"></category></entry><entry><title>Otra cita para acabar el año</title><link href="https://victor.eu.org/2004/12/otra-cita-para-acabar-el-ano" rel="alternate"></link><published>2004-12-27T22:59:00+01:00</published><updated>2004-12-27T22:59:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-12-27:/2004/12/otra-cita-para-acabar-el-ano</id><content type="html">&lt;p&gt;Esta cita creo que resume bastante bien lo que fue este año para mi...&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Me gustan mis errores,&lt;br&gt;
no quiero renunciar a la deliciosa libertad de equivocarme.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(&lt;a href="http://akas.imdb.com/name/nm0000122/" title="IMDB"&gt;Charles Chaplin. 16 Abril 1889 - 25 Diciembre 1977&lt;/a&gt;)&lt;/p&gt;</content><category term="Cine, Política y paranoias"></category></entry><entry><title>Ban bruto al spam</title><link href="https://victor.eu.org/2004/11/ban-bruto-al-spam" rel="alternate"></link><published>2004-11-28T02:31:00+01:00</published><updated>2004-11-28T02:31:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-11-28:/2004/11/ban-bruto-al-spam</id><summary type="html">&lt;p&gt;Si me pongo ha hacer una lista sobre las distintas formas que tiene el spam, seguro que se me olvidan o no se me ocurren muchas... y es que si hay quien se gasta mucho dinero en publicidad, hay quien no tiene escrúpulos en anunciarse aunque sea a costa de …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Si me pongo ha hacer una lista sobre las distintas formas que tiene el spam, seguro que se me olvidan o no se me ocurren muchas... y es que si hay quien se gasta mucho dinero en publicidad, hay quien no tiene escrúpulos en anunciarse aunque sea a costa de otras personas.&lt;/p&gt;
&lt;p&gt;Últimamente me estaba apareciendo demasiado spam en los comentarios, unos 50 a la semana... y la verdad hay que pararlo de alguna forma.&lt;/p&gt;
&lt;p&gt;Después de estudiarlo, llegué a la conclusión de que hay mucha gente que se dedica a recorrer weblogs, y envía comentarios de una forma totalmente automática. Y se me dió por crear un sistemilla para fastidiarles un poco.&lt;/p&gt;
&lt;p&gt;Lo primero que hice fue crearme un script muy sencillo en Perl que banea a cualquiera persona que se conecta al servidor. Le llamé antispam y lo guardé en mi cgi-bin.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h1&gt;!/usr/bin/perl&lt;/h1&gt;
&lt;p&gt;# Quien accede a esta página deja de acceder a esta web. Además requiere&lt;br&gt;
# que exista un fichero .htacces que acabe de la siguiente forma:&lt;br&gt;
#    .htaccess&lt;br&gt;
#    order deny,allow&lt;br&gt;
#    #&lt;/p&gt;
&lt;p&gt;open (bye, "&gt;&gt;.htaccess");&lt;br&gt;
print bye "deny from \$ENV{'REMOTE_ADDR'}\n";&lt;br&gt;
close (bye);&lt;/p&gt;
&lt;p&gt;print "Content-Type: text/html\n\n";&lt;br&gt;
print "bye";&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Después solo hay que añadir algo así en el fichero robots.txt para no banear al tráfico legitimo de los robots de los buscadores.&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;User-agent: *
Disallow: /cgi-bin/antispan
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;/blockquote&gt;
&lt;p&gt;Y por ultimo hay que esconder links por las páginas que apunten a mi dirección.&lt;/p&gt;
&lt;p&gt;Esta es una forma un poco burra de librarse del spam, sobre todo porque hay muchos spamers que usan proxys como los de AOL o Telefónica, y si baneas una sola IP estás baneando a mucha gente.&lt;/p&gt;
&lt;p&gt;Así que, acuérdate de borrar las IPs de vez en cuando...&lt;/p&gt;</content><category term="Perl"></category></entry><entry><title>A veces</title><link href="https://victor.eu.org/2004/11/a-veces" rel="alternate"></link><published>2004-11-14T02:00:00+01:00</published><updated>2004-11-14T02:00:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-11-14:/2004/11/a-veces</id><content type="html">&lt;blockquote&gt;
&lt;p&gt;A veces no hacemos cosas que queremos hacer&lt;br&gt;
para que los demás no sepan que queremos hacerlas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ivy Elizabeth Walker &lt;a href="http://akas.imdb.com/name/nm0397171/" title="Bryce Dallas Howard"&gt;(Bryce Dallas Howard)&lt;/a&gt;&lt;br&gt;
&lt;a href="http://thevillage.movies.go.com/" title="El Bosque"&gt;El Bosque&lt;/a&gt; 2004&lt;br&gt;
&lt;a href="http://www.mnight.com/%20Manoj%20Night%20Shyamalan"&gt;(Manoj Night Shyamalan)&lt;/a&gt;&lt;/p&gt;</content><category term="Cine, Política y paranoias"></category></entry><entry><title>http://www.víctor.eu.org</title><link href="https://victor.eu.org/2004/10/httpwwwvictoreuorg" rel="alternate"></link><published>2004-10-30T20:24:00+02:00</published><updated>2004-10-30T20:24:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-10-30:/2004/10/httpwwwvictoreuorg</id><summary type="html">&lt;p&gt;Hay cosas de internet que nunca acaban de asombrarme, lo que un día parece imposible, al otro es una realidad.&lt;/p&gt;
&lt;p&gt;Antes se decía que los nombres de dominio no podían, ni podrían, tener nunca tildes y caracteres especiales como Ñ y similares, y va un día e &lt;a href="http://www.ietf.org/"&gt;Internet Engineering Task …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hay cosas de internet que nunca acaban de asombrarme, lo que un día parece imposible, al otro es una realidad.&lt;/p&gt;
&lt;p&gt;Antes se decía que los nombres de dominio no podían, ni podrían, tener nunca tildes y caracteres especiales como Ñ y similares, y va un día e &lt;a href="http://www.ietf.org/"&gt;Internet Engineering Task Force&lt;/a&gt; lo hace posible. Pero vienen otros y lo hacen imposible...&lt;/p&gt;
&lt;p&gt;Pero todo es cosa de tiempo, y parece ser que poco a poco (mejor dicho muy poco a poco) esto de las tildes empieza a ser una posibilidad técnica.&lt;/p&gt;
&lt;p&gt;Y lo mejor de todo... es que a partir de hoy ya es posible acceder a esta web usando &lt;a href="http://www.víctor.eu.org"&gt;http://www.víctor.eu.org&lt;/a&gt; o &lt;a href="http://www.victor.eu.org"&gt;http://www.victor.eu.org&lt;/a&gt; o si eres muy friki &lt;a href="http://www.xn--vctor-zsa.eu.org/"&gt;http://www.xn--vctor-zsa.eu.org/&lt;/a&gt; eso si... para usar &lt;a href="http://www.víctor.eu.org"&gt;http://www.víctor.eu.org&lt;/a&gt; (con tilde) necesitas tener instalado &lt;a href="http://www.mozilla.org"&gt;Mozilla Firefox&lt;/a&gt; (muy recomendable) o el Internet Explorer 7, o si usas la versión 6 (o anteriores) el plugin de &lt;a href="http://idn.verisign-grs.com/"&gt;Verisign&lt;/a&gt; (no te recomiendo instalarlo).&lt;/p&gt;
&lt;p&gt;Lo que es la simple diferencia de una tilde.&lt;/p&gt;</content><category term="Este sitio"></category></entry><entry><title>Últimas invitaciones para gmail</title><link href="https://victor.eu.org/2004/09/ultimas-invitaciones-gmail" rel="alternate"></link><published>2004-09-12T03:01:00+02:00</published><updated>2004-09-12T03:01:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-09-12:/2004/09/ultimas-invitaciones-gmail</id><summary type="html">&lt;p&gt;Me estoy fijando que últimamente estoy escribiendo mucho sobre gmail... bueno... espero que esta sea una de la últimas... posiblemente no lo sea, pero creo que será la última en que ofrezco invitaciones para gmail. No porque no quiera regalar más invitaciones, sino porque no creo que Google vuelva a …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Me estoy fijando que últimamente estoy escribiendo mucho sobre gmail... bueno... espero que esta sea una de la últimas... posiblemente no lo sea, pero creo que será la última en que ofrezco invitaciones para gmail. No porque no quiera regalar más invitaciones, sino porque no creo que Google vuelva a regalar más invitaciones, digo yo que ya hará el sistema público... ¿no?&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-c0a061b540-808be437f2"&gt;Invitación 1&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-e9601e415f-c4532497e1"&gt;Invitación 2&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-8433e49f33-12593e98ea"&gt;Invitación 3&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-2987ac3b7d-d57c1aaff4"&gt;Invitación 4&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-8bb2347a2c-beb99f8abf"&gt;Invitación 5&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-a032e60d28-04a8749e6a"&gt;Invitación 6&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-60bc715160-89ee145227"&gt;Invitación 7&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-251ead2cb1-9ddd6cd9fd"&gt;Invitación 8&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-d44f94f4e1-e466924a59"&gt;Invitación 9&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-64d6c42eee-552044173b"&gt;Invitación 10&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-01237e95cd-5069b45c9b"&gt;Invitación 11&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-901ee28d59-382d838a11"&gt;Invitación 12&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-3f95abeca2-78dbf8f2b6"&gt;Invitación 13&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-97209f6e9a-aa951b555e"&gt;Invitación 14&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-fba2563255-013f47311d"&gt;Invitación 15&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-ed30ffc67d-ac5169ec4d"&gt;Invitación 16&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-e0231fd95e-c612f6770c"&gt;Invitación 17&lt;/a&gt; &lt;a href="https://gmail.google.com/gmail/a-335d72b2c48621d3-74b1332bd0-dca0abd7cf"&gt;Invitación 18&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PD:&lt;/strong&gt; Por favor, seguid las invitaciones por orden, y se agradece algún comentario. Gracias.&lt;br&gt;
&lt;strong&gt;PD:&lt;/strong&gt; Ya no quedan invitaciones en la lista. Por desgracia una invitación caducó.&lt;br&gt;
&lt;strong&gt;PD:&lt;/strong&gt; A partir de ahora todas mis invitaciones sobrantes las pondré en &lt;a href="http://isnoop.net/gmailomatic.php"&gt;gmailomatic&lt;/a&gt; visto el poco éxito que tienen aquí en la web.&lt;/p&gt;</content><category term="Informática"></category></entry><entry><title>Más gmail</title><link href="https://victor.eu.org/2004/07/mas-gmail" rel="alternate"></link><published>2004-07-04T23:48:00+02:00</published><updated>2004-07-04T23:48:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-07-04:/2004/07/mas-gmail</id><content type="html">&lt;p&gt;Bueno, aún tengo más invitaciones para Gmail, pero esta vez no va a ser tan sencillo conseguir una. (Esta vez espero que me den las gracias por lo menos).&lt;/p&gt;
&lt;p&gt;Así que, la invitación será para la persona que escriba algo en los comentarios y me guste más.&lt;/p&gt;
&lt;p&gt;Absténganse pelotas ;)&lt;/p&gt;</content><category term="Informática"></category></entry><entry><title>gmail</title><link href="https://victor.eu.org/2004/07/gmail" rel="alternate"></link><published>2004-07-01T21:50:00+02:00</published><updated>2004-07-01T21:50:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-07-01:/2004/07/gmail</id><summary type="html">&lt;p&gt;Increíble, si me lo cuentan hace una semanas no me lo creo... pero aunque parezca raro, en &lt;code&gt;&amp;lt;victor.eu.org&amp;gt;&lt;/code&gt; se han apuntado a la moda de regalar cuentas de Gmail...&lt;/p&gt;
&lt;p&gt;Bueno, pues a ver quien es el primero que se lleva la cuenta, y a ver cuanto tiempo pasa …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Increíble, si me lo cuentan hace una semanas no me lo creo... pero aunque parezca raro, en &lt;code&gt;&amp;lt;victor.eu.org&amp;gt;&lt;/code&gt; se han apuntado a la moda de regalar cuentas de Gmail...&lt;/p&gt;
&lt;p&gt;Bueno, pues a ver quien es el primero que se lleva la cuenta, y a ver cuanto tiempo pasa hasta que esto ocurra... espero que no sea el bot de &lt;a href="http://www.google.com/search?q=%22Thank+you+for+testing%22+site%3Agmail.google.com"&gt;google&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Bueno, pues la primera persona que se conecte a la siguiente URL tendrá una dirección gratis de Gmail.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://gmail.google.com/gmail/a-335d72b2c48621d3-2c2f97dc0"&gt;Invitación a Gmail&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;PD: A lo mejor hay más ;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ultima Hora&lt;/strong&gt;: Increíblemente sólo 4 horas después de ofrecer la cuenta ya hay un "ganador". Parece ser que tenemos más visitas de las que creíamos. Felicidades al agraciado, y por cierto, de nada!&lt;/p&gt;</content><category term="Informática"></category></entry><entry><title>SPF Una solución sencilla al Spam</title><link href="https://victor.eu.org/2004/06/spf-una-solucion-sencilla-al-spam" rel="alternate"></link><published>2004-06-25T23:29:00+02:00</published><updated>2004-06-25T23:29:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-06-25:/2004/06/spf-una-solucion-sencilla-al-spam</id><summary type="html">&lt;p&gt;Estoy cansado del spam, me sorprende mucho que algunas personas puedan hacer negocio con él, a veces creo que el negocio no está en que alguien pueda comprar lo anunciado, el negocio tiene que estar en otro lado, lo importante es hacer que si para mantener un servidor de correo …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Estoy cansado del spam, me sorprende mucho que algunas personas puedan hacer negocio con él, a veces creo que el negocio no está en que alguien pueda comprar lo anunciado, el negocio tiene que estar en otro lado, lo importante es hacer que si para mantener un servidor de correo al que solo llegan emails legítimos necesites 500 megas mensuales de ancho de banda, gracias al spam necesitas 500 gigas...&lt;/p&gt;
&lt;p&gt;Y claro, más ancho de banda, más negocio para los ISPs...&lt;/p&gt;
&lt;p&gt;La otra explicación es que el spam lo creen empresas especializadas en joder, y que su objetivo sea vender filtros para spam... bueno, vale... suena a "conspiración de ultra-malosos" pero... que alguien me niegue que no lo ha pensado ;)&lt;/p&gt;
&lt;p&gt;Lo peor de todo es que mi servidor tiene instalado un filtro de spam, y uso un cliente de correo que tiene otro filtro a mayores, y ni con esas, de vez en cuando se escapa algún correo... pero claro... ¿cual es la regla mágica que me dice que un correo es spam?&lt;/p&gt;
&lt;p&gt;Es difícil, al principio el spam que me llegaba era de un mismo dominio, por lo que simplemente bloquee todo el dominio y listo, pero se dieron cuenta, y ahora cambian cada poco tiempo de dominio, e incluso a veces envían correo desde direcciones de yahoo, hotmail o de otros servidores que se que no tienen ninguna culpa y no son ellos los que generan toda la basura...&lt;/p&gt;
&lt;p&gt;Buscando por ahí, bueno, buscando en &lt;a href="http://www.google.com/"&gt;google&lt;/a&gt; encontré que había varias alternativas para garantizar que mi dominio no se usa para hacer spam sin mi consentimiento, la más importante, la más usada, y la más sencilla de implementar es &lt;a href="http://spf.pobox.com/"&gt;SPF&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Con simplemente añadir un registro TXT en el servidor de DNS de tu dominio un registro como:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;victor.eu.org. IN TXT "v=spf1 mx a:smtp.servidor.com -all"&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yatà en teoría ya solo se pueden enviar correos de \@victor.eu.org usando las máquinas smtp.servidor.com y las que se usan para controlar el correo entrante. Todos los correos que no vengan de estos sitos pueden ser borrados, porque son Spam.&lt;/p&gt;
&lt;p&gt;Es sistema es muy potente, se puede indicar una IP o grupo de IPs, o por ejemplo se puede dar permiso solo a las máquinas que pertenecen a un dominio&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;victor.eu.org. IN TXT "v=spf1 ptr:terra.es -all"&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A una IP&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;victor.eu.org. IN TXT "v=spf1 ip4:10.10.10.2 -all"&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A mis servidores de correo entrante&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;victor.eu.org. IN TXT "v=spf1 mx -all"&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A las IPs de mi dominio&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;victor.eu.org. IN TXT "v=spf1 a -all"&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;O mezclas de todos ellos...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;victor.eu.org. IN TXT "v=spf1 a mx ptr a:smtp.servidor.com ip4:10.10.10.2 ptr:terra.es -all"&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Si no estamos seguros del sistema, o tenemos miedo de que nuestros correos legítimos se borren porque creamos la regla incorrectamente, podemos poner en vez de -all poner \~all y así los filtros de spam simplemente lo evaluarán pero lo tendrán en cuenta como otro factor más, o ?all para que no lo tengan en cuenta.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;victor.eu.org. IN TXT "v=spf1 a mx \~all"&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Solo aceptaríamos correos de nuestro servidor web, y de correo entrante, pero si hay correo de otras fuentes, no se borrará.&lt;/p&gt;
&lt;p&gt;El sistema está bien... pero... ¿funciona? ¿lo usa alguien? Bueno, si funciona o no, ya no lo se, hace un tiempo que mi dominio recibía correos rechazados, como si alguien intentase ponerme como origen de spam, pero actualmente ya no lo hace... usar, la verdad es que no lo usa mucha gente, &lt;a href="http://www.google.com/"&gt;Google&lt;/a&gt;, &lt;a href="http://www.aol.com/"&gt;AOL&lt;/a&gt;, &lt;a href="http://www.pobox.com/"&gt;Pobox&lt;/a&gt;, Altavista lo usan, aunque es cierto que sitios como &lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt;, &lt;a href="http://www.yahoo.com/"&gt;Yahoo&lt;/a&gt;, no lo usan.&lt;/p&gt;
&lt;p&gt;Y claro... ¿algún pero tiene que tener? ¿no? Pues la verdad es que si... el principal problema es que pocos servidores soportan este sistema, es más incluso el &lt;a href="http://www.spamassassin.org/"&gt;SpamAssassin&lt;/a&gt; (posiblemente el filtro de spam más usado) solo usa este sistema en su ultima versión, y lo peor de todo, si tienes una dirección de correo que reenvíe su contenido a otra dirección, es muy probable que el correo sea rechazado, para eso existe algo que se llama &lt;a href="http://spf.pobox.com/srs.html"&gt;SRS (Sender Rewriting Scheme)&lt;/a&gt; pero eso ya es otra historia...&lt;/p&gt;</content><category term="Estoy cansado de"></category></entry><entry><title>Base de datos migrada...</title><link href="https://victor.eu.org/2004/05/base-de-datos-migrada" rel="alternate"></link><published>2004-05-23T21:20:00+02:00</published><updated>2004-05-23T21:20:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-05-23:/2004/05/base-de-datos-migrada</id><summary type="html">&lt;p&gt;Pues si, objetivo conseguido, la base de datos de MovableType ya está migrada. Ya no tengo que aguantar los millones de ficheritos de DBFile, y ahora ya puedo hacer consultas de SQL normales como las de toda la vida... y en teoría es todo más rápido, aunque no noto la …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Pues si, objetivo conseguido, la base de datos de MovableType ya está migrada. Ya no tengo que aguantar los millones de ficheritos de DBFile, y ahora ya puedo hacer consultas de SQL normales como las de toda la vida... y en teoría es todo más rápido, aunque no noto la diferencia...&lt;/p&gt;
&lt;p&gt;A ver... cuanto tiempo aguanto sin migrar a MT3.0... por ahora paso... me da miedo...&lt;/p&gt;</content><category term="Este sitio"></category></entry><entry><title>XmlSerialization Code-Hack</title><link href="https://victor.eu.org/2004/05/xmlserialization-codehack" rel="alternate"></link><published>2004-05-01T20:20:00+02:00</published><updated>2004-05-01T20:20:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-05-01:/2004/05/xmlserialization-codehack</id><summary type="html">&lt;p&gt;Hay una cosa que no entiendo sobre la serialización en C#, mejor dicho sobre la&lt;br&gt;
serialización en Xml con csharp... y es... ¿porque no se puede serializar usando&lt;br&gt;
un simple CDATA?&lt;/p&gt;
&lt;p&gt;Esta es una aproximación (bastante mala por cierto... pero...). Se define la clase&lt;br&gt;
asi, y se pasa myXMLTag al …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hay una cosa que no entiendo sobre la serialización en C#, mejor dicho sobre la&lt;br&gt;
serialización en Xml con csharp... y es... ¿porque no se puede serializar usando&lt;br&gt;
un simple CDATA?&lt;/p&gt;
&lt;p&gt;Esta es una aproximación (bastante mala por cierto... pero...). Se define la clase&lt;br&gt;
asi, y se pasa myXMLTag al serializador.&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;MyXMLTag&lt;/span&gt;
&lt;span class="err"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;XmlAttribute&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="k"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;attribute1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;XmlAttribute&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="k"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nc"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;attribute2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="k"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;XmlCDataSection&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Message&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;El&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;valor&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;de&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;myXMLTag&lt;/span&gt;

&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="k"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SetCDATA&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;XmlDocument&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;doc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;XmlDocument&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="n"&gt;Message&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;doc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CreateCDataSection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;
&lt;span class="err"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;/blockquote&gt;
&lt;p&gt;El próximo día, pongo como crear un atributo XmlCDATASerializeAttribute o algo así&lt;br&gt;
para que la cosa sea más sencilla.&lt;/p&gt;</content><category term=".NET"></category></entry><entry><title>XML .NET Code Snipt</title><link href="https://victor.eu.org/2004/05/xml-net-code-snipt" rel="alternate"></link><published>2004-05-01T20:12:00+02:00</published><updated>2004-05-01T20:12:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-05-01:/2004/05/xml-net-code-snipt</id><summary type="html">&lt;p&gt;Hoy voy a empezar con algo sencillo, aunque muy útil si tienes que enviar datos usando XML.&lt;/p&gt;
&lt;p&gt;Simplemente para que te puedas hacer una idea, aunque no estoy muy convencido de la forma de quitar la codificación en la cabecera.&lt;/p&gt;
&lt;p&gt;virtual public string Serialize()&lt;br&gt;
{&lt;br&gt;
   StringWriter sw = new StringWriter();&lt;br&gt;
   XmlSerializer serializer …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hoy voy a empezar con algo sencillo, aunque muy útil si tienes que enviar datos usando XML.&lt;/p&gt;
&lt;p&gt;Simplemente para que te puedas hacer una idea, aunque no estoy muy convencido de la forma de quitar la codificación en la cabecera.&lt;/p&gt;
&lt;p&gt;virtual public string Serialize()&lt;br&gt;
{&lt;br&gt;
   StringWriter sw = new StringWriter();&lt;br&gt;
   XmlSerializer serializer = new XmlSerializer( this.GetType() );&lt;br&gt;
   XmlTextWriter w = new XmlTextWriter( sw );&lt;br&gt;
   w.Formatting = Formatting.Indented;&lt;/p&gt;
&lt;p&gt;serializer.Serialize(w, this );&lt;br&gt;
   w.Flush();&lt;br&gt;
   w.Close();&lt;br&gt;
&lt;br&gt;
   string str = sw.ToString();&lt;br&gt;
&lt;br&gt;
   // Quitamos la codificación&lt;br&gt;
   str = str.Replace( "encoding=\"utf-16\"", "" );&lt;br&gt;
   return str;&lt;br&gt;
}&lt;/p&gt;</content><category term=".NET, Programación"></category></entry><entry><title>Veñen novos tempos</title><link href="https://victor.eu.org/2004/05/venen-novos-tempos" rel="alternate"></link><published>2004-05-01T01:23:00+02:00</published><updated>2004-05-01T01:23:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-05-01:/2004/05/venen-novos-tempos</id><summary type="html">&lt;p&gt;Dentro de poco voy a volver al origen. Posiblemente no llegue a tantas personas, pero sigo pensando en la reorientación de esta página, y creo que voy a cambiar algo más que el diseño.&lt;/p&gt;
&lt;p&gt;Posiblemente pierda visitas, total para cuatro visitas que tengo, y 2 son robots...&lt;/p&gt;
&lt;p&gt;Pero no puede …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Dentro de poco voy a volver al origen. Posiblemente no llegue a tantas personas, pero sigo pensando en la reorientación de esta página, y creo que voy a cambiar algo más que el diseño.&lt;/p&gt;
&lt;p&gt;Posiblemente pierda visitas, total para cuatro visitas que tengo, y 2 son robots...&lt;/p&gt;
&lt;p&gt;Pero no puede ser que existan menos de 150!!!&lt;/p&gt;</content><category term="Este sitio"></category></entry><entry><title>Spam</title><link href="https://victor.eu.org/2004/04/spam" rel="alternate"></link><published>2004-04-29T23:21:00+02:00</published><updated>2004-04-29T23:21:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-04-29:/2004/04/spam</id><summary type="html">&lt;p&gt;Es una pena, pero para alguien que escribe un comentario va y es spam de un paisano que quiere vender medicamentos...&lt;/p&gt;
&lt;p&gt;¿Pero alguien comprará esas cosas? Debe ser que si...&lt;/p&gt;
&lt;p&gt;Estoy cansado del Span, mi correo está lleno de filtros que no funcionan, y ahora, acabo de añadir la primera …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Es una pena, pero para alguien que escribe un comentario va y es spam de un paisano que quiere vender medicamentos...&lt;/p&gt;
&lt;p&gt;¿Pero alguien comprará esas cosas? Debe ser que si...&lt;/p&gt;
&lt;p&gt;Estoy cansado del Span, mi correo está lleno de filtros que no funcionan, y ahora, acabo de añadir la primera IP bloqueada.&lt;/p&gt;
&lt;p&gt;Y la verdad no creo que solucione nada, por muchos filtros que ponga en el correo, o muchas IPs....&lt;/p&gt;
&lt;p&gt;Siempre puedo bloquear todas las direcciones que contengan @ y todas las IPs del rango 0.0.0.0 al 255.255.255.255&lt;/p&gt;
&lt;p&gt;No es por nada... pero casi dudo que así se solucione.&lt;/p&gt;</content><category term="Este sitio"></category></entry><entry><title>Programación y Puto NET</title><link href="https://victor.eu.org/2004/04/programacion-y-puto-net" rel="alternate"></link><published>2004-04-25T00:11:00+02:00</published><updated>2004-04-25T00:11:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-04-25:/2004/04/programacion-y-puto-net</id><summary type="html">&lt;p&gt;Llevo mucho tiempo programando en Visual Basic, y nunca me gustó. Me parecia un lenguaje de programación de juguete, que le faltaban muchas cosas, y le sobraban muchas facilidades para hacer un código estremadamente ineficiente y dificil de manejar.&lt;/p&gt;
&lt;p&gt;Ahora con .NET las cosas han cambiado, me gusta mucho, pero …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Llevo mucho tiempo programando en Visual Basic, y nunca me gustó. Me parecia un lenguaje de programación de juguete, que le faltaban muchas cosas, y le sobraban muchas facilidades para hacer un código estremadamente ineficiente y dificil de manejar.&lt;/p&gt;
&lt;p&gt;Ahora con .NET las cosas han cambiado, me gusta mucho, pero ya no tiene nada que ver con las cosas antiguas con el COM, y el ActiveX de antes... esto es otro mundo.&lt;/p&gt;
&lt;p&gt;Llevo mucho tiempo recopilando información, cosas interesantes, y la verdad, al final mis favoritos son demasiado grandes como para poder usarlos. Por eso he decidido ir recopilando algunos contenidos interesantes en esta Web, para poder consultarlos, ya no solo yo, sino cualquiera persona que pase por aquí...&lt;/p&gt;
&lt;p&gt;Aunque la verdad, no creo que tenga muchos visitantes, me acabo de dar cuenta, y para Google esta página tiene un PageRank de 1... vamos... raspado, raspado.&lt;/p&gt;
&lt;p&gt;Ala, a ver si hay suerte, y escribo algunas cosas...&lt;/p&gt;</content><category term=".NET, Programación"></category></entry><entry><title>No aprendo</title><link href="https://victor.eu.org/2004/04/no-aprendo" rel="alternate"></link><published>2004-04-24T20:25:00+02:00</published><updated>2004-04-24T20:25:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-04-24:/2004/04/no-aprendo</id><summary type="html">&lt;p&gt;Pues maldita la hora que se me dió por actualizar el MovableType. Antes le faltarian algunas cosas... pero es que ahora no funciona nada de nada...!!!!!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ULTIMA HORA:&lt;/strong&gt; Bueno, ya conseguí que aparezca algo. Según parece tenía dos fallos, el primero era que estaba tratando mal los tipos MIME de …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Pues maldita la hora que se me dió por actualizar el MovableType. Antes le faltarian algunas cosas... pero es que ahora no funciona nada de nada...!!!!!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ULTIMA HORA:&lt;/strong&gt; Bueno, ya conseguí que aparezca algo. Según parece tenía dos fallos, el primero era que estaba tratando mal los tipos MIME de las páginas de la Web, y la segunda, que el MovableType no actualiza las plantillas automáticamente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MÁS HORA:&lt;/strong&gt; Ya está, el MovableType ya está domesticado, ahora incluso puse unas plantillas muy bonitas gracias a Neil.&lt;/p&gt;</content><category term="Este sitio"></category></entry><entry><title>Terrible</title><link href="https://victor.eu.org/2004/03/terrible" rel="alternate"></link><published>2004-03-12T00:13:00+01:00</published><updated>2004-03-12T00:13:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-03-12:/2004/03/terrible</id><content type="html">&lt;p&gt;Terrible :(&lt;/p&gt;
&lt;p&gt;11M&lt;/p&gt;</content><category term="Política y paranoias"></category></entry><entry><title>¥€$</title><link href="https://victor.eu.org/2004/02/yes" rel="alternate"></link><published>2004-02-14T22:19:00+01:00</published><updated>2004-02-14T22:19:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2004-02-14:/2004/02/yes</id><content type="html">&lt;p&gt;Si la verdad es cierto, al final lo que importa es el &lt;em&gt;dinero&lt;/em&gt;...&lt;/p&gt;</content><category term="Política y paranoias"></category></entry><entry><title>Un año después</title><link href="https://victor.eu.org/2003/11/un-ano-despues" rel="alternate"></link><published>2003-11-13T21:13:00+01:00</published><updated>2003-11-13T21:13:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-11-13:/2003/11/un-ano-despues</id><content type="html">&lt;p&gt;No se... ya hace un año... y aún creo que hay cosas que están como antes...&lt;/p&gt;
&lt;p&gt;Desgraciadamente, no todos se han dado cuenta... dificilmente nos enteramos de lo que pasó... para más llegar a saber como está ahora...&lt;/p&gt;
&lt;p&gt;NUNCA MÁIS&lt;/p&gt;</content><category term="Política y paranoias"></category></entry><entry><title>syncit</title><link href="https://victor.eu.org/2003/09/syncit" rel="alternate"></link><published>2003-09-29T23:24:00+02:00</published><updated>2003-09-29T23:24:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-09-29:/2003/09/syncit</id><summary type="html">&lt;p&gt;No se si es buena o mala noticia, pero me acabo de enterar de que &lt;a href="http://www.syncit.com"&gt;Syncit&lt;/a&gt; ha cerrado.&lt;/p&gt;
&lt;p&gt;Si hay algo en lo que ningún navegador resalta sobre los demas, es por la deficiente gestión de los favoritos que tienen todos ellos. Ya no digo que sea dificil buscar los …&lt;/p&gt;</summary><content type="html">&lt;p&gt;No se si es buena o mala noticia, pero me acabo de enterar de que &lt;a href="http://www.syncit.com"&gt;Syncit&lt;/a&gt; ha cerrado.&lt;/p&gt;
&lt;p&gt;Si hay algo en lo que ningún navegador resalta sobre los demas, es por la deficiente gestión de los favoritos que tienen todos ellos. Ya no digo que sea dificil buscar los enlaces duplicados, o los enlaces de un mismo sitio... lo que es realmente dificil es mantener una lista de favoritos en varios ordenadores.&lt;/p&gt;
&lt;p&gt;Y es que estoy cansado de enviarme los bookmarks por correo. Antes usaba una aplicación muy bonita que se llamaba iHarvest que enviaba los favoritos a un servidor, y desde ahí se podían consultar en una página Web o se actualizaban automáticamente en el equipo que quisieses.&lt;/p&gt;
&lt;p&gt;Por desgracia la empresa cerró, y el producto desapareció.&lt;/p&gt;
&lt;p&gt;Después conocí syncit el cliente era distinto, mucho más sencillo, y todo totalmente silencioso, tu simplemente te dabas cuenta de que los favoritos eran siempre los mismos estuvieses donde estuvieses. Aunque eso si, la página Web aunque no estaba mal, no era tan buena como la de iHarvest.&lt;/p&gt;
&lt;p&gt;Lo dejé de usar, aún no se porque... pero me acabo de enterar, que la "empresa" mejor dicho "el grupo de amigos" han dejado de ofrecer este servicio.&lt;/p&gt;
&lt;p&gt;Pero a diferencia de iHarvest, los de &lt;a href="http://www.syncit.com"&gt;syncit&lt;/a&gt; han publicado su código bajo licencia GPL... una autentica maravilla... no lo puedo creer...&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.syncit.com"&gt;http://www.syncit.com&lt;/a&gt;&lt;/p&gt;</content><category term="Informática"></category></entry><entry><title>Stress, Estres, Stres</title><link href="https://victor.eu.org/2003/09/stress-estres-stres" rel="alternate"></link><published>2003-09-11T21:44:00+02:00</published><updated>2003-09-11T21:44:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-09-11:/2003/09/stress-estres-stres</id><summary type="html">&lt;p&gt;Estoy cansado, no puedo, no lo aguanto más, necesito unas vacaciones, o que por lo menos funcione algo!!!!&lt;/p&gt;
&lt;p&gt;Y es que ultimamente las verdades teológicas de la informática ya no son tales, y lo peor de todo, no le puedo echar la culpa a Microsoft!!!!&lt;/p&gt;
&lt;p&gt;Mierda!!! a este paso 1Mega …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Estoy cansado, no puedo, no lo aguanto más, necesito unas vacaciones, o que por lo menos funcione algo!!!!&lt;/p&gt;
&lt;p&gt;Y es que ultimamente las verdades teológicas de la informática ya no son tales, y lo peor de todo, no le puedo echar la culpa a Microsoft!!!!&lt;/p&gt;
&lt;p&gt;Mierda!!! a este paso 1Mega ya no serán 1024Ks... bueno... nooo.... los discos duros hace tiempo que miden los gigas por 1000Megas...&lt;/p&gt;
&lt;p&gt;No puede ser...&lt;/p&gt;</content><category term="Estoy cansado de"></category></entry><entry><title>Bittorrent una curiosidad con un gran potencial</title><link href="https://victor.eu.org/2003/08/bittorrent-una-curiosidad" rel="alternate"></link><published>2003-08-07T21:42:00+02:00</published><updated>2003-08-07T21:42:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-08-07:/2003/08/bittorrent-una-curiosidad</id><summary type="html">&lt;p&gt;Para un seguidor de "Torrente el brazo tonto de la ley" esto del Bitorrent suena a broma, a programilla de chiste, algo de jokeware ;)&lt;/p&gt;
&lt;p&gt;Pero si lo pruebas compruebas que detrás de ese nombre no hay ningún tipo de broma, encuentras un programa que funciona.&lt;/p&gt;
&lt;p&gt;La idea es sencilla, tienes …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Para un seguidor de "Torrente el brazo tonto de la ley" esto del Bitorrent suena a broma, a programilla de chiste, algo de jokeware ;)&lt;/p&gt;
&lt;p&gt;Pero si lo pruebas compruebas que detrás de ese nombre no hay ningún tipo de broma, encuentras un programa que funciona.&lt;/p&gt;
&lt;p&gt;La idea es sencilla, tienes un fichero interesante y grande, y tienes mucha gente interesada en obtenerlo. Bittorrent lo que hace es obligar a todos los que están descargando el fichero a funcionar como un servidor.&lt;/p&gt;
&lt;p&gt;Suena mucho a P2P (Peer to peer) aunque no se, a mi me gusta llamarlo S2P+P (Server to Peer plus Peers)...&lt;/p&gt;
&lt;p&gt;A diferencia de por ejemplo eDonkey, o eMule la descarga empieza desde el primer segundo, y cuantos más clientes intenten bajar el fichero la descarga irá mucho más rápida.&lt;/p&gt;
&lt;p&gt;Si te interesa pasate por:&lt;br&gt;
&lt;a href="http://www.ayudabittorrent.com"&gt;AyudaBittorrent&lt;/a&gt;&lt;br&gt;
&lt;a href="http://bitconjurer.org/BitTorrent/"&gt;BitTorrent&lt;/a&gt;&lt;/p&gt;</content><category term="Informática"></category></entry><entry><title>Esto de los weblogs es una historia...</title><link href="https://victor.eu.org/2003/07/esto-de-los-weblogs-es-una-historia" rel="alternate"></link><published>2003-07-29T00:10:00+02:00</published><updated>2003-07-29T00:10:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-07-29:/2003/07/esto-de-los-weblogs-es-una-historia</id><summary type="html">&lt;p&gt;Cuando empecé a conectarme a Internet, un amigo, que llevaba ya mucho tiempo conectado a la red, me dijo que esto de Internet molaba, que encontrabas gente muy pirada... que cuando a ti se te ocurria algo, o tenias algún problema por lo menos ya había un pabo que había …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Cuando empecé a conectarme a Internet, un amigo, que llevaba ya mucho tiempo conectado a la red, me dijo que esto de Internet molaba, que encontrabas gente muy pirada... que cuando a ti se te ocurria algo, o tenias algún problema por lo menos ya había un pabo que había tenido el mismo problema, lo había solucionado, lo había publicado, y otro ya había tenido tiempo de mejorarlo...&lt;/p&gt;
&lt;p&gt;Es triste... pero eso ya me lo decía cuando &lt;a href="http://www.altavista.com"&gt;altavista&lt;/a&gt; ni siquiera era &lt;a href="http://www.altavista.com"&gt;altavista.com&lt;/a&gt; era &lt;a href="http://altavista.digital.com"&gt;altavista.digital.com&lt;/a&gt; , &lt;a href="http://www.deja.com"&gt;deja&lt;/a&gt; era &lt;a href="http://www.dejanews.com"&gt;dejanews.com&lt;/a&gt; y por supuesto no existía por ningún lado &lt;a href="http://www.google.com"&gt;google&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;Hoy en día esto es todo mucho más sencillo, que tienes un problema programando, pues nada... vete a &lt;a href="http://groups.google.com"&gt;http://groups.google.com&lt;/a&gt; y listo... que estás buscando un programilla para hacer cualquier tontería... pues usas &lt;a href="http://www.tucows.com"&gt;tucows.com&lt;/a&gt; y listo...&lt;/p&gt;
&lt;p&gt;Las cosas mejoran, pero por desgracia otras empeoran... hay quien habla de que el Internet de los nosequantos millones de españolitos ya no es el mismo que el que conocí al poco de liberalizarse en España la conexión a Internet... cuando &lt;a href="http://www.arrakis.es"&gt;Arrakis&lt;/a&gt;, &lt;a href="http://www.lander.es"&gt;Lander&lt;/a&gt;, &lt;a href="http://www.jet.es"&gt;Jet&lt;/a&gt;, &lt;a href="http://www.ctv.es"&gt;CTV&lt;/a&gt;, eran los amos... cuando todavía existía &lt;a href="http://www.fido.org"&gt;Fido&lt;/a&gt;, y se prefería enviar cosas a la cuenta de Fido...&lt;/p&gt;
&lt;p&gt;Joder! ya parezco el abuelete...&lt;/p&gt;</content><category term="Informática"></category></entry><entry><title>Hackers, crackers y demás basura, (II)</title><link href="https://victor.eu.org/2003/07/hackers-crackers-y-demas-basura-ii" rel="alternate"></link><published>2003-07-27T18:00:00+02:00</published><updated>2003-07-27T18:00:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-07-27:/2003/07/hackers-crackers-y-demas-basura-ii</id><summary type="html">&lt;p&gt;El otro día una persona en una lista de correo me hizo ver la luz, y me explicó claramente lo que es un hacker y todo ello en menos de 2 palabras... 
yo no escribo tan bien, por eso necesito usar más palabras...&lt;/p&gt;
&lt;p&gt;La palabra hacker viene de &lt;strong&gt;HACK&lt;/strong&gt; o …&lt;/p&gt;</summary><content type="html">&lt;p&gt;El otro día una persona en una lista de correo me hizo ver la luz, y me explicó claramente lo que es un hacker y todo ello en menos de 2 palabras... 
yo no escribo tan bien, por eso necesito usar más palabras...&lt;/p&gt;
&lt;p&gt;La palabra hacker viene de &lt;strong&gt;HACK&lt;/strong&gt; o hacha en inglés, a la que se le suma -ER que es el sufijo que indica "el que hace" o "el que es" o "el que usa"... 
en este caso la traducción literal, correcta y perfecta de &lt;strong&gt;&lt;strong&gt;"HACKER"&lt;/strong&gt;&lt;/strong&gt; es
&lt;strong&gt;&lt;strong&gt;"UN HACHA"&lt;/strong&gt;&lt;/strong&gt;, es decir "EL QUE ES UN HACHA"...&lt;/p&gt;
&lt;p&gt;Tantas vueltas para al final enterarme de que la palabra hacker era totalmente traducible al castellano sin perder nada de su significado... y lo mejor de todo... 
esto no tiene nada que ver con hacker=bueno cracker=malo realmente para poder ser un cracker hay que ser un hacha en programación...&lt;/p&gt;
&lt;p&gt;Qué cosas!!!!&lt;/p&gt;</content><category term="Informática"></category></entry><entry><title>ANSI SQL92</title><link href="https://victor.eu.org/2003/07/ansi-sql92" rel="alternate"></link><published>2003-07-25T23:10:00+02:00</published><updated>2003-07-25T23:10:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-07-25:/2003/07/ansi-sql92</id><summary type="html">&lt;p&gt;Estoy cancado de defender que hacer una consulta ANSI SQL-92 no implica que esa consulta funciona en todas las bases de datos que&lt;br&gt;
llevan el sello de ANSI SQL-92 sin realizar ningún tipo de modificación...&lt;/p&gt;
&lt;p&gt;Había estabo buscando el estandar, pero nunca lo había conseguido, pero ahora ya lo tengo …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Estoy cancado de defender que hacer una consulta ANSI SQL-92 no implica que esa consulta funciona en todas las bases de datos que&lt;br&gt;
llevan el sello de ANSI SQL-92 sin realizar ningún tipo de modificación...&lt;/p&gt;
&lt;p&gt;Había estabo buscando el estandar, pero nunca lo había conseguido, pero ahora ya lo tengo!!!...&lt;/p&gt;
&lt;p&gt;&lt;a href="magnet:?xt=urn:bitprint:MMKIIGXRGNK2V4L7WZQ3BYWCG2ZMBQY2.VPMBADKNPUVZ7I2EI44OABIPXR5A4UIBPV2AHQI&amp;amp;dn=sql92_july_92_draft.txt.gz"&gt;Enlace magnet para bajar desde algún programa&lt;br&gt;
P2P que no sea el eMule ;)&lt;/a&gt;&lt;/p&gt;</content><category term="Estoy cansado de, Programación"></category></entry><entry><title>Adios viejo internet</title><link href="https://victor.eu.org/2003/07/adios-viejo-internet" rel="alternate"></link><published>2003-07-24T22:54:00+02:00</published><updated>2003-07-24T22:54:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-07-24:/2003/07/adios-viejo-internet</id><summary type="html">&lt;p&gt;Hace unos días que se viene hablando de la compra de &lt;a href="http://www.altavista.com/"&gt;Altavista&lt;/a&gt; por &lt;a href="http://www.fastsearch.com/"&gt;Fast Search&lt;/a&gt;, esta por &lt;a href="http://www.overture.com/"&gt;Overture&lt;/a&gt;, y esta por &lt;a href="http://docs.yahoo.com/info/"&gt;Yahoo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Acabamos de perder de un plumazo el primer buscador que usamos todos... ya casi nadie se acuerda de &lt;a href="http://Altavista.digital.com"&gt;Altavista.digital.com&lt;/a&gt; o &lt;a href="http://Altavista.Telia.com"&gt;Altavista.Telia.com&lt;/a&gt; que tiempos aquellos …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Hace unos días que se viene hablando de la compra de &lt;a href="http://www.altavista.com/"&gt;Altavista&lt;/a&gt; por &lt;a href="http://www.fastsearch.com/"&gt;Fast Search&lt;/a&gt;, esta por &lt;a href="http://www.overture.com/"&gt;Overture&lt;/a&gt;, y esta por &lt;a href="http://docs.yahoo.com/info/"&gt;Yahoo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Acabamos de perder de un plumazo el primer buscador que usamos todos... ya casi nadie se acuerda de &lt;a href="http://Altavista.digital.com"&gt;Altavista.digital.com&lt;/a&gt; o &lt;a href="http://Altavista.Telia.com"&gt;Altavista.Telia.com&lt;/a&gt; que tiempos aquellos donde una página que movia nosecuantos millones de visitas ni siquiera tenía dominio propio ;)&lt;/p&gt;
&lt;p&gt;Tambien se habla de &lt;a href="http://www.netscape.com"&gt;Netscape&lt;/a&gt;, &lt;a href="http://www.aoltimewarner.com"&gt;AOL-TimeWarner&lt;/a&gt; ya se cansó de ella, ya no le interesa, primero se deshizo de la división de servidores... no le interesaba... aunque fuese la mejor... después medio se deshizo del navegador... quitó el código que no le interesaba y lo publicó siguiendo una liciencia tipo GPL... pero &lt;a href="http://www.aol.com"&gt;AOL&lt;/a&gt; ya no quiere nada de &lt;a href="http://www.netscape.com"&gt;Netscape&lt;/a&gt;, y lo ha convertido en una &lt;a href="http://www.mozilla.org"&gt;fundación&lt;/a&gt;... espero que sea del tipo de &lt;a href="http://www.apache.com"&gt;Apache&lt;/a&gt;, pero estas cosas nunca se saben a priori, y tendremos que esperar para ver si pueden recuperar la cuota de mercado que tenían en su momento, o podrán llegar otra vez al 60% que &lt;a href="http://www.apache.org"&gt;Apache&lt;/a&gt; mantiene desde hace tanto tiempo contra viento y marea...&lt;/p&gt;
&lt;p&gt;Seamos realistas... Altavista, Excite, Netscape ya nunca volverán...&lt;/p&gt;</content><category term="Internet"></category></entry><entry><title>Yogures naturales</title><link href="https://victor.eu.org/2003/07/yogures-naturales" rel="alternate"></link><published>2003-07-12T23:53:00+02:00</published><updated>2003-07-12T23:53:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-07-12:/2003/07/yogures-naturales</id><summary type="html">&lt;p&gt;De quien sería la idea de hacer el yogurt natural azucarado... bueno... mejor dicho, porque antes el yogurt natural era el único al que había que echar azúcar... si total el 99.9% de la gente se lo echaba antes de comerlo...&lt;/p&gt;
&lt;p&gt;No se... a veces la solución más sencilla …&lt;/p&gt;</summary><content type="html">&lt;p&gt;De quien sería la idea de hacer el yogurt natural azucarado... bueno... mejor dicho, porque antes el yogurt natural era el único al que había que echar azúcar... si total el 99.9% de la gente se lo echaba antes de comerlo...&lt;/p&gt;
&lt;p&gt;No se... a veces la solución más sencilla es la que más cuesta encontrar...&lt;/p&gt;</content><category term="Política y paranoias"></category></entry><entry><title>Adios Access, hola SQLLite</title><link href="https://victor.eu.org/2003/06/adios-access-hola-sqllite" rel="alternate"></link><published>2003-06-30T23:05:00+02:00</published><updated>2003-06-30T23:05:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-06-30:/2003/06/adios-access-hola-sqllite</id><summary type="html">&lt;p&gt;Cuantas veces me habrán preguntado que base de datos empotrada debemos usar en una pequeña aplicación que lleva la gestión de no_se_que_cosa...&lt;/p&gt;
&lt;p&gt;Hasta ahora lo tenía muy claro... usa Access, que es sencillo de usar desde VB y .NET y además es bastante estable dentro de lo que cabe...&lt;/p&gt;
&lt;p&gt;Pero …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Cuantas veces me habrán preguntado que base de datos empotrada debemos usar en una pequeña aplicación que lleva la gestión de no_se_que_cosa...&lt;/p&gt;
&lt;p&gt;Hasta ahora lo tenía muy claro... usa Access, que es sencillo de usar desde VB y .NET y además es bastante estable dentro de lo que cabe...&lt;/p&gt;
&lt;p&gt;Pero ahora acabo de conocer &lt;a href="http://www.sqlite.org"&gt;SQLLite&lt;/a&gt; como mySQL pero aún más ligero... y todo en una DLL... con un pequeño wrapper para usarlo tanto desde &lt;a href="http://groups.yahoo.com/group/sqlite/files/"&gt;VB v6&lt;/a&gt; como para usarlo desde &lt;a href="http://www.redloop.com/larsde/software/sqlitenet.php"&gt;.NET&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Por eso... que cosas más bonitas nos regala &lt;a href="http://groups.yahoo.com/group/sqlite/message/1517"&gt;internet&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;Por si a alguien le interesa todo esto puede consultar los siguientes enlaces:&lt;br&gt;
&lt;em&gt;Noticia via &lt;a href="http://www.circle.ch/blog/p836.html"&gt;circle.ch weblog&lt;/a&gt;&lt;/em&gt;&lt;br&gt;
&lt;a href="http://www.ag-software.com/sqlite/"&gt;VB DLL wrapper for SQLite&lt;/a&gt;&lt;br&gt;
&lt;a href="http://cvs.hwaci.com:2080/sqlite/wiki?p=SqliteWrappers"&gt;sqlite - Sqlite Wrappers&lt;/a&gt;&lt;br&gt;
&lt;a href="http://www.go-mono.com/sqlite.html"&gt;SQL Lite Data Provider&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[&lt;strong&gt;&lt;em&gt;Actualización:&lt;/em&gt;&lt;/strong&gt;]{.underline} Qué cosas tiene google... por cierto, me acabo de enterar de que es SQLite y no SQLLite (con 2 L)&lt;/p&gt;</content><category term="Programación"></category></entry><entry><title>Cocacola vs Pepsicola</title><link href="https://victor.eu.org/2003/06/cocacola-vs-pepsicola" rel="alternate"></link><published>2003-06-22T23:12:00+02:00</published><updated>2003-06-22T23:12:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-06-22:/2003/06/cocacola-vs-pepsicola</id><summary type="html">&lt;p&gt;Y es que si me lo cuentan no me lo creo... según parece acaban de echar a un empleado de Cocacola por beber una Pepsi mientras estaba trabajando...&lt;/p&gt;
&lt;p&gt;Si no fuese porque lo acabo de leer en la &lt;a href="http://cnnenespanol.com/2003/econ/06/13/coca.cola/"&gt;CNN&lt;/a&gt; y en &lt;a href="http://iblnews.com/news/noticia.php3?id=79244"&gt;IBLNews&lt;/a&gt; no me lo creia...&lt;/p&gt;
&lt;p&gt;La cuestión es que …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Y es que si me lo cuentan no me lo creo... según parece acaban de echar a un empleado de Cocacola por beber una Pepsi mientras estaba trabajando...&lt;/p&gt;
&lt;p&gt;Si no fuese porque lo acabo de leer en la &lt;a href="http://cnnenespanol.com/2003/econ/06/13/coca.cola/"&gt;CNN&lt;/a&gt; y en &lt;a href="http://iblnews.com/news/noticia.php3?id=79244"&gt;IBLNews&lt;/a&gt; no me lo creia...&lt;/p&gt;
&lt;p&gt;La cuestión es que no lo echaron por perder el tiempo mientras trabajaba, o por realizar mal su trabajo... la cuestión es que lo echaron por beber un producto de la competencia...&lt;/p&gt;
&lt;p&gt;No se... menos mal que no trabajo en Cocacola... y es que menudo problema, porque como bebas agua a la hora de comer, bebas vino por la tarde, cuando sales bebas güisqui o cuando quieras hablar con los amigos bebas cerveza... seguro, seguro, seguro que te echan...&lt;/p&gt;
&lt;p&gt;Aunque no se porque me estraña... seguro que los de Microsoft echarian a un empleado si este usase Mozilla, y no me quiero ni imagiar a los de Sun si alguien usa el Word... seguro seguro que lo encierran en una sala y tiran la llave ;)&lt;/p&gt;
&lt;p&gt;Están locos estos americanos...&lt;/p&gt;</content><category term="Política y paranoias"></category></entry><entry><title>Estoy senil</title><link href="https://victor.eu.org/2003/06/estoy-senil" rel="alternate"></link><published>2003-06-22T21:12:00+02:00</published><updated>2003-06-22T21:12:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-06-22:/2003/06/estoy-senil</id><content type="html">&lt;p&gt;Se que tenía algo de que hablar, pero ahora no me acuerdo...&lt;/p&gt;
&lt;p&gt;Mala suerte (o buena dependiendo para quien), pero hoy no escribiré nada de nada...&lt;/p&gt;</content><category term="Política y paranoias"></category></entry><entry><title>Nadie hablará de nosotros cuando hayamos muerto...</title><link href="https://victor.eu.org/2003/06/nadie-hablara-de-nosotros" rel="alternate"></link><published>2003-06-11T23:39:00+02:00</published><updated>2003-06-11T23:39:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-06-11:/2003/06/nadie-hablara-de-nosotros</id><summary type="html">&lt;p&gt;Estoy cansado de encontrarme bases de datos donde los datos estan repetidos hasta la saciedad, o con tablas que dependiendo del valor del registro 69 de la base de datos Esto_Es_Un_Lio guarda un valor o otro...&lt;/p&gt;
&lt;p&gt;Cuando, en 1970, Edgar (Ted) Codd propuso el modelo relacional, no podía pensar que …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Estoy cansado de encontrarme bases de datos donde los datos estan repetidos hasta la saciedad, o con tablas que dependiendo del valor del registro 69 de la base de datos Esto_Es_Un_Lio guarda un valor o otro...&lt;/p&gt;
&lt;p&gt;Cuando, en 1970, Edgar (Ted) Codd propuso el modelo relacional, no podía pensar que lo que se consideraba más bien una elegante teoría matemática sin posibilidad de implementación eficiente en productos comerciales iba a convertirse, en posiblemente la teoría a la que más debemos los informáticos en la actualidad.&lt;/p&gt;
&lt;p&gt;Tanto le debemos, pero el &lt;a href="http://www.research.ibm.com/resources/news/20030423_edgarpassaway.shtml"&gt;18 de Abril de 2003&lt;/a&gt; murió practicamente sin pena ni gloria... pero es lo que tiene esto de dedicarse a la informática, puedes ser el creador del mejor programa del mundo, de la teoria más eficiente, pero al final tu trabajo pertenece a tu empresa, y nadie hablará de ti cuando hayas muerto...&lt;/p&gt;
&lt;p&gt;Mañana me pongo a aprender a pintar... por lo menos aunque me muera de hambre mis cuadros se venderan por &lt;a href="http://dmoz.org/Arts/Art_History/Artists/G/Gogh,_Vincent_van/"&gt;millones&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;Pensandolo mejor... que me paguen bien ahora que estoy vivo, que después no lo necesito...&lt;/p&gt;</content><category term="Estoy cansado de"></category></entry><entry><title>Hoy no estoy cansado de</title><link href="https://victor.eu.org/2003/06/hoy-no-estoy-cansado-de" rel="alternate"></link><published>2003-06-10T01:01:00+02:00</published><updated>2003-06-10T01:01:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-06-10:/2003/06/hoy-no-estoy-cansado-de</id><summary type="html">&lt;p&gt;Si no lo veo no lo creo, y es que en &lt;a href="http://barrapunto.com"&gt;barrapunto.com&lt;/a&gt; han puesto un link a &lt;a href="http://www.victor.eu.org"&gt;victor.eu.org&lt;/a&gt; en la página pincipal.&lt;/p&gt;
&lt;p&gt;Parece que alguien más tambien está cansado de los que estan cansados...&lt;/p&gt;
&lt;p&gt;No se... veo muchos quemados por aqui ;)&lt;/p&gt;
&lt;p&gt;Pues eso... si quieres puedes leerlo …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Si no lo veo no lo creo, y es que en &lt;a href="http://barrapunto.com"&gt;barrapunto.com&lt;/a&gt; han puesto un link a &lt;a href="http://www.victor.eu.org"&gt;victor.eu.org&lt;/a&gt; en la página pincipal.&lt;/p&gt;
&lt;p&gt;Parece que alguien más tambien está cansado de los que estan cansados...&lt;/p&gt;
&lt;p&gt;No se... veo muchos quemados por aqui ;)&lt;/p&gt;
&lt;p&gt;Pues eso... si quieres puedes leerlo en: &lt;a href="http://www.victor.eu.org/info/diario/archives/000010.html"&gt;Un Windows inseguro para gobernarlos a todos...&lt;/a&gt; o en &lt;a href="http://barrapunto.com/articles/03/06/09/1059247.shtml"&gt;barrapunto&lt;/a&gt; para seguir los comentarios... y es que aquí todavía nadie comenta nada :(&lt;/p&gt;</content><category term="Estoy cansado de"></category></entry><entry><title>Un Windows inseguro para gobernarlos a todos...</title><link href="https://victor.eu.org/2003/06/un-windows-inseguro" rel="alternate"></link><published>2003-06-08T22:25:00+02:00</published><updated>2003-06-08T22:25:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-06-08:/2003/06/un-windows-inseguro</id><summary type="html">&lt;p&gt;Estoy cansado de que siempre digan que Windows es un sistema mucho más inseguro... que unix... que mac... que linux...&lt;/p&gt;
&lt;p&gt;¿Por qué? Según &lt;a href="http://www.netcraft.com"&gt;netcraft&lt;/a&gt; Windows es usado por el 25% de los servidores conectados a Internet... ¿son los responsables de estos equipos unos iresponsables? ¿unos osados?&lt;/p&gt;
&lt;p&gt;Por qué cuando &lt;a href="http://www.apache.org"&gt;Apache …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Estoy cansado de que siempre digan que Windows es un sistema mucho más inseguro... que unix... que mac... que linux...&lt;/p&gt;
&lt;p&gt;¿Por qué? Según &lt;a href="http://www.netcraft.com"&gt;netcraft&lt;/a&gt; Windows es usado por el 25% de los servidores conectados a Internet... ¿son los responsables de estos equipos unos iresponsables? ¿unos osados?&lt;/p&gt;
&lt;p&gt;Por qué cuando &lt;a href="http://www.apache.org"&gt;Apache&lt;/a&gt; saca una versión cada quince días, decimos que es un gran servidor, muy bueno, que actualiza sus problemas de seguridad al instante... y cuando pasa eso con el IIS decimos que es una mierda... que los de Microsoft nos engañan... que su producto es muy malo...&lt;/p&gt;
&lt;p&gt;O la mejor de todas, y esta es para enmarcar: Es que Microsoft está copiando la forma de funcionar de Apache, y ahora no espera a juntar varias soluciones a problemas en un único service pack y lo hace poco a poco... como Apache...&lt;/p&gt;
&lt;p&gt;O lo mejor de todo con diferencia, porque cuando Microsoft saca un parche nadie se atreve a instalar... aún despues de varios meses, practicamente nadie instala sus parches, y después pasan cosas como SQL Slammer en cambio cuando estamos hablando de Linux, por ejemplo, no tenemos ningún problema de instalar un parche no oficial que se ofrece en un grupo de noticias para parchear los fuentes y recompilar el kernel... me estoy imaginando si pasase esto con Windows: "Estos de Microsoft nos están tomando el pelo, ahora no sacan parches, y hay que buscarlos por las news"... o "quien se creen estos que soy... que voy a modificar los fuentes... mejor espero un año a que esté bien probado"&lt;/p&gt;
&lt;p&gt;Pues yo la verdad es que si... no volveré a instalar nunca más un parche de Microsoft, siempre me quejaré de la fiabilidad de Windows, alabaré la seguridad de Linux, santificaré la licencia GPL -aunque no sepa C-, sólo programaré en C y Java... enviaré mi curriculum a Redhat, Sun, Oracle...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Y eso si... NUNCA, NUNCA, NUNCA reconoceré que en mi casa no tengo instalado Linux, y que si nos infectamos con el ultimo virus fue culpa mia por no instalar todos los parches...&lt;/strong&gt;&lt;/p&gt;</content><category term="Estoy cansado de, Windows"></category></entry><entry><title>Hackers, crackers y demás basura, (I)</title><link href="https://victor.eu.org/2003/06/hackers-crackers-y-demas-basura" rel="alternate"></link><published>2003-06-03T01:49:00+02:00</published><updated>2003-06-03T01:49:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-06-03:/2003/06/hackers-crackers-y-demas-basura</id><summary type="html">&lt;p&gt;No entiendo porque hay quien asocia hacker a persona buena, y cracker a malo malvado... tan malo o peor que el malo de los dibujos animados, o el que siempre tenía el peor caballo en las peliculas de vaqueros.&lt;/p&gt;
&lt;p&gt;Claro tambien me gusta la gente que cree que los hackers …&lt;/p&gt;</summary><content type="html">&lt;p&gt;No entiendo porque hay quien asocia hacker a persona buena, y cracker a malo malvado... tan malo o peor que el malo de los dibujos animados, o el que siempre tenía el peor caballo en las peliculas de vaqueros.&lt;/p&gt;
&lt;p&gt;Claro tambien me gusta la gente que cree que los hackers son unos individuos que usan gafas, delgados, risa estúpida, camisa blanca de manga corta y lapices y calculadora en un bolsillo. Viven en la oscuridad, y solo necesitán café y bits, muchos bits para poder sobrevivir, y claro, como esto del hacking es muy productivo pueden ganar el suficiente dinero para poder pagar... pensemos... dos o tres PCs, y posiblemente un mac, porque claro necesitamos como hackers que somos, un Windows noseque, un Windows server nosecuantos, y por supuesto que no falte uno o dos Linux, después necesitamos un hub, un rooter, y como mínimo ya puedes ir teniendo una ADSL de 2 megas y 2 o tres modems conectados a la toma general de tu edificio...&lt;/p&gt;
&lt;p&gt;No pueden asociar a que la gente tiene que trabajar en algo... en lo que más les gusta o lo que mejor hacen... digo yo que será administrar o programar...&lt;br&gt;
http://www.noticiasdot.com/publicaciones/2003/0503/2005/noticias200503/noticias200503-2.htm&lt;/p&gt;
&lt;p&gt;Hay otros que aún son más graciosos, piensan que los hackers son unos estudiosos de esto de la informática, y cuando se metan en un sitio, uff... creo que no estoy usando la terminología adecuada, empiezo de nuevo en otro parrafo...&lt;/p&gt;
&lt;p&gt;Hay otros que considera que cuando pueden hackear un sitio (y es que eso de hackear, es como googlear o pitufar ;) ya pueden optar a un buen trabajo en una gran empresa tipo Microsoft o IBM o en algún banco... o mejor aún como funcionario siendo asesor para el ministerio de nose cuantos, o viviendo de cominola en cominola dando conferencias... a ver dejenme pensar:&lt;br&gt;
http://www.ayco-data.net/e-gallaecia/ponente2.asp?id=8&lt;br&gt;
http://www.ayco-data.net/e-gallaecia/ponente2.asp?id=4&lt;/p&gt;
&lt;p&gt;También están los que se consideran unos autenticos hackers (desconfiad de ellos)... estoy pensando en una persona en concreto... quien será... pero me imagino a la gente del laboratorio de Panda Software o Kaspersky Labs... 50.000 virus y no nos están recordando cada viernes 13 lo que hicieron hace 15 años...&lt;br&gt;
http://www.ayco-data.net/e-gallaecia/ponente2.asp?id=51&lt;/p&gt;
&lt;p&gt;Mañana cuando siga viendo más conferencias de http://www.e-gallaecia.com/ y viendo hackers de todos los prototipos (que no tipos) ya os seguiré contando lo que pienso...&lt;/p&gt;
&lt;p&gt;Pero... ¿que creeis que es un hacker?&lt;/p&gt;</content><category term="Informática"></category></entry><entry><title>Donde están los comentarios</title><link href="https://victor.eu.org/2003/06/donde-estan-los-comentarios" rel="alternate"></link><published>2003-06-02T01:16:00+02:00</published><updated>2003-06-02T01:16:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-06-02:/2003/06/donde-estan-los-comentarios</id><summary type="html">&lt;p&gt;Suelo visitar casi a diario sitios como http://www.codeproject.com que es como un Weblog colaborativo donde mucha gente incluye sus pequeños programas y ejemplos de código. Son nosecuantos miles de usuarios, nosecuantos miles de comentarios, y nosecuantos miles de articulos con código...&lt;/p&gt;
&lt;p&gt;Pero claro... me imagino que llegar …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Suelo visitar casi a diario sitios como http://www.codeproject.com que es como un Weblog colaborativo donde mucha gente incluye sus pequeños programas y ejemplos de código. Son nosecuantos miles de usuarios, nosecuantos miles de comentarios, y nosecuantos miles de articulos con código...&lt;/p&gt;
&lt;p&gt;Pero claro... me imagino que llegar a eso no fué muy facil, ¿como se hace para que mucha gente comparta sus conocimientos?, es más... ¿como se hace para que mucha gente con MUCHOS conocimientos comparta mucha información?... porque claro... no es lo mismo hacer un http://sourceforge.net que hacer un http://www.planetsourcecode.com que es parecido pero la calidad de los proyectos no es la misma ni de casualidad...&lt;/p&gt;
&lt;p&gt;Y claro... yo tan optimista como siempre, ni llego al tercer comentario... ya no quiero ni ver cuantas visitas tengo, porque puedo asegurar y aseguro que el 99% de ellas son mias ;) ya pasé la epoca de script-kid cuando me importaba que en mi antigua página web se conectase mucha gente... ahora lo que me gusta es escribir simplemente para poder matar el gusanillo...&lt;/p&gt;
&lt;p&gt;MUERE CABRÓN, MUERE DE UNA VEZ....&lt;/p&gt;
&lt;p&gt;jejejej&lt;/p&gt;</content><category term="Informática"></category></entry><entry><title>50 años con basura en el Everest</title><link href="https://victor.eu.org/2003/05/50-anos-con-basura-en-el-everest" rel="alternate"></link><published>2003-05-29T22:46:00+02:00</published><updated>2003-05-29T22:46:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-05-29:/2003/05/50-anos-con-basura-en-el-everest</id><summary type="html">&lt;p&gt;Yo la verdad es que no lo sabía, pero segun dicen hoy, hace 50 años que alguien subió al Everest, puso la banderita y bajo otra vez...&lt;/p&gt;
&lt;p&gt;Realmente lo que han pasado es 50 años desde que tenemos basura en todos los sitios del planeta...&lt;/p&gt;
&lt;p&gt;Pero está bien esto de …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Yo la verdad es que no lo sabía, pero segun dicen hoy, hace 50 años que alguien subió al Everest, puso la banderita y bajo otra vez...&lt;/p&gt;
&lt;p&gt;Realmente lo que han pasado es 50 años desde que tenemos basura en todos los sitios del planeta...&lt;/p&gt;
&lt;p&gt;Pero está bien esto de las celebraciones, ahora estoy pensando en que por ejemplo antes Edmund Hillary había sido el primero en coronar en solitario el Everest, años después pasó a estar acompañado de un xerpa, hoy en día ya tiene nombre, y Tenzig Norgay aparece en los libros de historia, eso si, despues de Edmund.&lt;/p&gt;
&lt;p&gt;Ahora sólo falta en que se pongan de acuerdo, y se den cuenta de que el Everest año a año crece, y claro, como es un poco viejo ya tiene 8.850, porque claro, nunca nos damos cuenta de que por ejemplo Colón recorrió un medio kilometro menos, en su viaje a las américas, o que ellos recorrieron unos metros de menos...&lt;/p&gt;
&lt;p&gt;y claro... solo tenemos que pensar en todas las cosas que no acabamos por los pelos... ¿que habría pasado si tuvisen que recorrer un poco más?...&lt;/p&gt;</content><category term="Estoy cansado de"></category></entry><entry><title>Eto é para ezcribiz un ebook por lo menos</title><link href="https://victor.eu.org/2003/05/eto-e-para-ezcribiz-un-ebook" rel="alternate"></link><published>2003-05-07T01:06:00+02:00</published><updated>2003-05-07T01:06:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-05-07:/2003/05/eto-e-para-ezcribiz-un-ebook</id><summary type="html">&lt;p&gt;Ales, pues al final ni víctor.org ni víctorsánchez.com funcionan, y según parece van a estar un largo tiempo sin funcionar... así que... emigrando...&lt;/p&gt;
&lt;p&gt;Acabo de registrar el dominio &lt;a href="http://www.victor.eu.org"&gt;http://www.victor.eu.org&lt;/a&gt; no es tan bonito como los otros dos con tilde, pero... tambien es potito...&lt;/p&gt;
&lt;p&gt;Un …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ales, pues al final ni víctor.org ni víctorsánchez.com funcionan, y según parece van a estar un largo tiempo sin funcionar... así que... emigrando...&lt;/p&gt;
&lt;p&gt;Acabo de registrar el dominio &lt;a href="http://www.victor.eu.org"&gt;http://www.victor.eu.org&lt;/a&gt; no es tan bonito como los otros dos con tilde, pero... tambien es potito...&lt;/p&gt;
&lt;p&gt;Un día de estos a ver si escribo como configurar un servidor de dns, y como controlar que en todos los sitios del mundo funcione bien. Bueno, no es que yo lo sepa... pero después de estar peleando, me enteré de un par de cosillas... y a lo mejor a algunas personas les vale para que no se peleen... porque claro... tu te compras el dominio, pero después tienes que pagar el hosting... cuando ya lo tienes... ales... te das cuenta de que no funciona...&lt;/p&gt;
&lt;p&gt;Asi que a pagar por un servidor de DNS y configurandolo... y como cuando haces una modificación tienes que esperar un mínimo de 4 horas para que se puedan ir propagando algunos cambios... impaciente...&lt;/p&gt;
&lt;p&gt;Menos mal que esto no tiene que funcionar 24 horas, me imagino a los de yahoo o microsoft cambiando de servidor de dns, y a las 3 horas todo el sistema caido, y que le digan los de Verisign/Network-solutions: "no, todo va bien, hay que esperar todavía un par de horas"...&lt;/p&gt;
&lt;p&gt;Para que después no digan que el tiempo lo cura todo...&lt;/p&gt;</content><category term="Este sitio"></category></entry><entry><title>Paso a paso...</title><link href="https://victor.eu.org/2003/05/paso-a-paso" rel="alternate"></link><published>2003-05-01T01:20:00+02:00</published><updated>2003-05-01T01:20:00+02:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-05-01:/2003/05/paso-a-paso</id><summary type="html">&lt;p&gt;Ale... hasta hace un poco creia que aún había sido ayer cuando instalé el MT 2.5 y se me fastidió la base de datos de mySQL... pero NO!!! ya van meses...&lt;/p&gt;
&lt;p&gt;Bueno... otro paso más... después de mucho tiempo acabé de modificar la página principal... y en unos días …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Ale... hasta hace un poco creia que aún había sido ayer cuando instalé el MT 2.5 y se me fastidió la base de datos de mySQL... pero NO!!! ya van meses...&lt;/p&gt;
&lt;p&gt;Bueno... otro paso más... después de mucho tiempo acabé de modificar la página principal... y en unos días a ver si algo de los estilos...&lt;/p&gt;
&lt;p&gt;Nos vemos...&lt;/p&gt;</content><category term="Este sitio"></category></entry><entry><title>Curioso curioso</title><link href="https://victor.eu.org/2003/01/curioso-curioso" rel="alternate"></link><published>2003-01-31T00:58:00+01:00</published><updated>2003-01-31T00:58:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-01-31:/2003/01/curioso-curioso</id><summary type="html">&lt;p&gt;El MovableType este es curioso curioso... poco a poco vamos descubriendo cosillas...&lt;/p&gt;
&lt;p&gt;Acabo de cambiarle el estilo, y ahora me gusta un poco más la página... pero no se... todavía no me convence... veo un poco raro esto del calendario... no se... pero a mi no me acaba de convencer …&lt;/p&gt;</summary><content type="html">&lt;p&gt;El MovableType este es curioso curioso... poco a poco vamos descubriendo cosillas...&lt;/p&gt;
&lt;p&gt;Acabo de cambiarle el estilo, y ahora me gusta un poco más la página... pero no se... todavía no me convence... veo un poco raro esto del calendario... no se... pero a mi no me acaba de convencer...&lt;/p&gt;
&lt;p&gt;A ver si mañana le cambio alguna otra cosa... y por fin encuentro la forma de añadir links en la lista (de links por supuesto) de forma automática sin tener que modificar una plantilla... y lo más importante... !!!! donde tengo que cambiar para que los links a los comentarios sean del tipo pagina.html#ID_COMENTARIO y no como ahora usando el script del MovableType y de la base de datos...&lt;/p&gt;
&lt;p&gt;En fins... mañana veremos...&lt;/p&gt;</content><category term="Este sitio"></category></entry><entry><title>Is here!</title><link href="https://victor.eu.org/2003/01/is-here" rel="alternate"></link><published>2003-01-28T01:32:00+01:00</published><updated>2003-01-28T01:32:00+01:00</updated><author><name>victor</name></author><id>tag:victor.eu.org,2003-01-28:/2003/01/is-here</id><content type="html">&lt;p&gt;Now this is here!!!&lt;/p&gt;</content><category term="Este sitio"></category></entry></feed>