<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>joax&#124;blog</title>
	<atom:link href="http://joax.me/feed/" rel="self" type="application/rss+xml" />
	<link>http://joax.me</link>
	<description>un inesperado mundo de tecnología</description>
	<lastBuildDate>Tue, 27 Dec 2011 22:43:38 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='joax.me' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>joax&#124;blog</title>
		<link>http://joax.me</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://joax.me/osd.xml" title="joax&#124;blog" />
	<atom:link rel='hub' href='http://joax.me/?pushpress=hub'/>
		<item>
		<title>Super Easy Template engine en Javascript</title>
		<link>http://joax.me/2011/07/21/super-easy-template-engine-en-javascript/</link>
		<comments>http://joax.me/2011/07/21/super-easy-template-engine-en-javascript/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 17:55:45 +0000</pubDate>
		<dc:creator>joax</dc:creator>
		
		<guid isPermaLink="false">http://joax.me/?p=217</guid>
		<description><![CDATA[En Kuapay hemos diseñado y desarrollado un nuevo sistema de templates basado en el omnipresente clásico Mustache, que te ayuda a hacer una página web multi lenguaje sin el engorro de tener que crear HTML para cada lenguaje o de pre-compilar las páginas antes de crearlas, como sucede con los templates de PHP o Ruby. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=217&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>En <a href="http://www.kuapay.com">Kuapay</a> hemos diseñado y desarrollado un nuevo <a href="http://en.wikipedia.org/wiki/Template_engine_(web)">sistema de templates</a> basado en el omnipresente clásico <a href="http://mustache.github.com/">Mustache</a>, que te ayuda a hacer una página web multi lenguaje sin el engorro de tener que crear HTML para cada lenguaje o de pre-compilar las páginas antes de crearlas, como sucede con los templates de PHP o Ruby.</p>
<p>Super Easy Template te ayuda a tener una página web en múltiples idiomas sin el tedioso paso de tener que compilar el código o usar ¨gettext()¨ en tu servidor, sino que es el cliente el que tiene la lógica de los templates en su navegador, y en consecuencia menos carga para tus servidores.</p>
<p>Super Easy Template te ayuda a crear templates en HTML donde en vez de colocar las palabras colocas <em>placeholders</em> a dichas palabras. Algo así:</p>
<pre style="border:1px dashed lightgray;background:#f5f5f5;margin:5px;padding:5px;">&lt;div class="basic"&gt;
  &lt;h1&gt;{{template_title}}&lt;/h1&gt;
  &lt;p&gt;{{template_text}}&lt;/p&gt;
&lt;/div&gt;
&lt;div class="flags"&gt;&lt;/div&gt;</pre>
<p>Tienes que tener un servidor web para poder poner en marcha el código.</p>
<p>Donde podemos ver los <em>placeholders</em> <strong>template_title</strong> y <strong>template_text</strong>. Para poner este template engine en marcha seguimos los siguientes pasos:</p>
<ol>
<li>Descargar el código del repositorio: https://github.com/kuapay/Super-Easy-Template-Engine</li>
<li>Copia el contenido del repositorio completo al directorio base donde el servidor web tiene las páginas (en entornos linux suele ser /srv/www o /var/www).</li>
<li>Reinicia el servidor web.</li>
</ol>
<p>Accede a la página web de tu servidor web (normalmente http://localhost/index.html) y verás la siguiente página en tu explorador.</p>
<p><a href="http://joax.files.wordpress.com/2011/07/screen-shot-2011-07-21-at-10-34-09-am.png"><img class="size-medium wp-image-223 alignnone" title="Screen shot 2011-07-21 at 10.34.09 AM" src="http://joax.files.wordpress.com/2011/07/screen-shot-2011-07-21-at-10-34-09-am.png?w=300&#038;h=136" alt="" width="300" height="136" /></a></p>
<p>Ahora ya tienes tu página web en marcha. Lo que tienes que hacer es empezar a cambiar los templates y rellenar los archivos que contienen los diccionarios de locales. Aquí vamos a ver el ejemplo para poner un template nuevo, con su diccionario y sus idiomas.</p>
<h3>Primer template</h3>
<p>El primer template que vamos a introducir lo vamos a llamar <strong>nuevo.mustache</strong>. El nombre del fichero debe acabar en .mustache por una sencilla razón, y es que SET es compatible con más template engines que queramos incorporarle. Por ahora hemos introducido nada más <a href="http://mustache.github.com/">Mustache</a>. Dentro del archivo, que lo vamos a introducir en:</p>
<p>$WWW_HOME/templates/nuevo.mustache</p>
<p>El contenido del archivo va a ser el siguiente:</p>
<pre style="border:1px dashed lightgray;background:#f5f5f5;margin:5px;padding:5px;">&lt;div class="basic"&gt;
  &lt;h1&gt;{{template_title}}&lt;/h1&gt;
  &lt;p&gt;{{template_text}}&lt;/p&gt;
  &lt;p&gt;{{template_another_text}}&lt;/p&gt;
  &lt;div class="flags"&gt;&lt;/div&gt;
&lt;/div&gt;</pre>
<p>Ahora vamos a añadir en el archivo de diccionario el contenido de este nuevo template. Abrimos <strong>locales/en_US.locale</strong> y añadimos el nuevo template:</p>
<pre style="border:1px dashed lightgray;background:#f5f5f5;margin:5px;padding:5px;">    "6":  "Saturday",
    "7":  "Sunday"
  },
  "basic.mustache": {
    "title":  "This is the title of the basic template",
    "text":   "Text that explains what is this template about"
  },
  "nuevo.mustache": {
    "title":  "Title of my new template",
    "text":   "My new template has this text that is beautiful.",
    "another_text":   "And this second paragraph explains how to make paragraphs."
  },
  "flags.mustache": {
    "change_language":  "Change the language:",
    "spanish":          "into spanish",
    "english":          "into english"
  }</pre>
<p>Puedes ver que hemos añadido una sección JSON nueva al objeto del diccionario. Lo mismo hay que hacer en el diccionario <strong>locales/es_ES.locale</strong> donde vamos a añadir la misma sección, pero con el lenguaje apropiado:</p>
<pre style="border:1px dashed lightgray;background:#f5f5f5;margin:5px;padding:5px;">    "6":  "Sabado",
    "7":  "Domingo"
  },
  "basic.mustache": {
    "title":  "Titulo del template basico",
    "text":   "Texto que compone el template basico"
  },
  "nuevo.mustache": {
    "title":  "Título de mi nuevo template",
    "text":   "Mi nuevo template tiene este texto tan molón.",
    "another_text":   "Y este segundo párrafo explica como hacer párrafos."
  },
  "flags.mustache": {
    "change_language":  "Cambia el idioma:",
    "spanish":          "a Castellano",
    "english":          "a Ingles"
  }</pre>
<p>Ya tenemos el template con sus idiomas listos. Ahora vamos a poner todo en su sitio para poder ver este template en un link en el template principal. Para ello modificamos <strong>templates/basic.mustache</strong>:</p>
<pre style="border:1px dashed lightgray;background:#f5f5f5;margin:5px;padding:5px;">&lt;div class="basic"&gt;
  &lt;h1&gt;{{template_title}}&lt;/h1&gt;
  &lt;p&gt;{{template_text}}&lt;/p&gt;
  &lt;a id="new_template_link" class="clickme"&gt;{{template_new_template_link}}&lt;/a&gt;
&lt;/div&gt;
&lt;div class="flags"&gt;&lt;/div&gt;</pre>
<p>Y en el diccionario añadimos bajo la sección de <strong>basic.mustache</strong> las entradas para <strong>new_template_link</strong>, que en nuestro caso será &#8220;Mi nuevo template&#8221; y en inglés &#8220;Mi new template&#8221;.</p>
<p>Ahora queda la parte más cercana al Javascript, que es el indicar que cuando hagla click en el link, se muestre el nuevo template en la pantalla. Para esto, en el fichero <strong>javascripts/views/basic_view.js</strong> vamos a añadir las siguientes lineas:</p>
<pre style="border:1px dashed lightgray;background:#f5f5f5;margin:5px;padding:5px;">BasicView.prototype.applyViewHandlers = function() {
  // Any action we want to make with this
  // template should be run here, as this
  // method is executed once the HTML code
  // is been injected in the page.

  // When clicking on the Link, the new template
  // will substitute this actual template (basic).
  var that = this;

  // Function.
  $('#new_template_link').click(function() {
    var mustache  = 'nuevo.mustache';
    var container = document.body;
    var content   = {};

    // Add the propper Locale from the locale file
    for(var i in app.locale[mustache]) {
      content['template_' + i] = app.locale[mustache][i];
    } 

    // let's clean the canvas to place
    // the new template.
    app.cleanCanvas();

    // Include the Template in the Web Page inside the
    // container we have specified.
    Templates.to_html(
      mustache,
      content,
      container,
      function() {
        that.applyViewHandlers();
      }
    );
  });

  app.views.flagsView = new FlagsView();
  app.views.flagsView.render();
};</pre>
<p>Ya tenemos listo el template, las funciones y el texto en los diferentes idiomas. Todo esto se realizará en cliente, por lo que no tenemos por qué tener complejos servidores en Ruby, PHP o Java. Simplemente un servidor web hace las veces de servicio para estos templates. En el explorador del cliente, se cargará el diccionario del lenguaje seleccionado por el usuario, y en consecuencia los templates se rellenan con los tags adecuados.</p>
<p>¡Ya estamos listos para ver el contenido del nuevo template en nuestro servidor!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/joax.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/joax.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/joax.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/joax.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/joax.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/joax.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/joax.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/joax.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/joax.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/joax.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/joax.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/joax.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/joax.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/joax.wordpress.com/217/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=217&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://joax.me/2011/07/21/super-easy-template-engine-en-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e402294dc743f4daca6188935803f08d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joax</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2011/07/screen-shot-2011-07-21-at-10-34-09-am.png?w=300" medium="image">
			<media:title type="html">Screen shot 2011-07-21 at 10.34.09 AM</media:title>
		</media:content>
	</item>
		<item>
		<title>¿Están nuestros datos seguros?</title>
		<link>http://joax.me/2011/05/20/%c2%bfestan-nuestros-datos-seguros/</link>
		<comments>http://joax.me/2011/05/20/%c2%bfestan-nuestros-datos-seguros/#comments</comments>
		<pubDate>Fri, 20 May 2011 23:36:46 +0000</pubDate>
		<dc:creator>joax</dc:creator>
				<category><![CDATA[privacidad]]></category>
		<category><![CDATA[seguridad]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[ataques]]></category>
		<category><![CDATA[datos]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[hackers]]></category>
		<category><![CDATA[host proof storage]]></category>
		<category><![CDATA[proteccion]]></category>
		<category><![CDATA[sony]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://joax.me/?p=209</guid>
		<description><![CDATA[A colación de mi post anterior, he estado investigando en el mercado a ver qué es lo que hay por ahí que realmente merezca la pena. Es decir, me he dedicado a buscar sitios web que realmente piensan en la seguridad y la privacidad de los datos. Os puedo adelantar qu e tampoco he visto [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=209&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-210" title="gold credit card and lock" src="http://joax.files.wordpress.com/2011/05/protecciondatos.jpg?w=300&#038;h=225" alt="" width="300" height="225" /></p>
<p>A colación de mi <a href="http://joax.me/2011/05/16/la-crisis-de-la-seguridad/">post anterior</a>, he estado investigando en el mercado a ver qué es lo que hay por ahí que realmente merezca la pena. Es decir, me he dedicado a buscar sitios web que realmente piensan en la seguridad y la privacidad de los datos.</p>
<p>Os puedo adelantar qu</p>
<p>e tampoco he visto mucho, y lo poco que he visto no tiene vistas a mejorar. Por lo pronto os puedo presentar la lista de empresas en las que ahora mismo tengo mi desconfianza depositada:</p>
<ul>
<li><a href="http://www.apple.com">Apple</a>, gracias a su <a href="http://abcnews.go.com/Technology/google-apple-track-users-location-information/story?id=13436330">magnífica estrategia de atención al cliente</a>.</li>
<li><a href="www.google.com">Google</a>, con su inmejorable <a href="http://online.wsj.com/article/SB10001424052748703983704576277101723453610.html">gran hermano a gran escala</a>.</li>
<li><a href="www.sony.com">Sony</a>, que tiene a los mejores hackers del mercado&#8230; <a href="http://www.ibtimes.com/articles/149389/20110520/sony-sony-hack-so-net-hacked-again-sony-hacked-again-sony-psn-psn-hack.htm">muy entretenidos</a>.</li>
</ul>
<p>Además, he de agregar más historias sobre problemas de seguridad. A la lista se suma nuestro querido host de blogs, WordPress, que ha sufrido un <a href="http://en.blog.wordpress.com/2011/04/13/security/">ataque en toda regla en sus servicios de Automattic</a>. NASA ha sufrido un ataque según un <a href="http://www.msnbc.msn.com/id/43110147/ns/technology_and_science-security/">hacker rumano confirma</a>. Y por último, que no último de los vulnerados, sino último de los que voy a mencionar, los servidores web de Stanford también han sido <a href="http://www.pcworld.com/businesscenter/article/227482/nasa_stanford_websites_hit_by_search_engine_scammers.html">fruto de un ataque</a>, pero esta vez de menos alcance. Sólo se han dedicado a insertar páginas web de software barato (pirata para los menos avezados).</p>
<p>Como podéis leer, el mundo de nuestros datos, Internet está siendo desmontado pieza por pieza. Y es que hay algunos que tienen la teoría de que esto es una señal <a href="http://www.ebiblefellowship.com/outreach/tracts/may21/">del final del mundo</a>, otros piensan que <a href="http://www.chinadaily.com.cn/china/2011-03/30/content_12251918.htm">hay alguna industria con beneficios</a> detrás de estos ataques. Pero al final solo podemos pensar en nuestro propio entorno y <strong>en nuestros datos.</strong></p>
<p>Los datos que ponemos en las páginas web para usarlas, como Google GMail, Microsoft Hotmail, Apple Store, etc. son los mismos datos que puede usar cualquier empresa para sacar un perfil socio-demográfico de tí y cancelarte un servicio por considerarte cliente de riesgo. O los mismos que usan los hackers para <a href="http://www.onguardonline.gov/topics/botnets-hackers-spam.aspx">usar tu ordenador como lanzadera de spam</a>.</p>
<p>Así que me he propuesto hacer una lista de aquellas empresas que están en Internet y que al menos en su filosofía se preocupan por la privacidad de los datos que les doy. Aquí tenéis la reducida lista:</p>
<ul>
<li>Mi Banco: Según su <a href="https://direct-certs.bankofamerica.com/direct/help/html/online_privacy_policy.html">política de privacidad</a>, y según las leyes, no van a vender ni usar mi información para otra cosa que no sea servirme como banco.</li>
<li>Mi Seguro médico: que su política de privacidad dice textualmente: ¨With <strong>your permission</strong>, Blue Shield may use the location information, such as GPS data, from your location-enabled product or service to provide you with information you have requested¨.</li>
<li>Mi Mujer: que dice textualmente ¨¿A quién le va a interesar que yo hable de tí o de tu vida?¨</li>
</ul>
<p>Es impresionante ver que por ejemplo te pidan permiso para usar tu información de geo-localización. ¡Eso no lo hace ni Apple!. Y que te garanticen que no van a usar tu información para hacerte campañas de marketing como hace mi banco.</p>
<p><a href="http://joax.files.wordpress.com/2011/05/rentabilidadvsprivacidad.jpg"><img class="alignright size-medium wp-image-211" title="RentabilidadvsPrivacidad" src="http://joax.files.wordpress.com/2011/05/rentabilidadvsprivacidad.jpg?w=300&#038;h=199" alt="" width="300" height="199" /></a>Como podéis ver, poco me queda por ahí en los que yo confíe para dar mis datos. Obviamente sigo usando servicios como GMail, o como Skype para comunicarme. Pero nunca daría un número de tarjeta de crédito por esos medios, ni menos mi dirección de casa. Imagínate la de anuncios locales que empezarían a aparecerme en mis páginas. O la cantidad de cosas que querrían venderme para curar mi obsesión por los coches. En fin, la conclusión de este post es la siguiente: <strong>ten cuidado donde metes tus datos, porque las consecuencias pueden ser peor que los beneficios.</strong></p>
<p>Hay algunas empresas que empiezan a promover un movimiento que se llama ¨Host Proof Storage¨, <a href="http://ajaxpatterns.org/Host-Proof_Hosting">conocido anteriormente</a> como ¨Host Proof Hosting¨ y que <a href="http://corte.si/posts/security/hostproof.html">algunos llaman</a> &#8220;Host Proof Application&#8221;. Del cual os hablaré más adelante cuando tenga tiempo para un post explicativo de esos con pasitos y con diagramas&#8230; Pero os dejo con la explicación básica.</p>
<p>Imaginar que se pudiera cifrar tus datos antes de ser enviados a Internet. De tal manera, que aquellos datos que quieres proteger, no pudieran ser abiertos por nadie más que tú y a quien le des permiso&#8230; interesante, ¿eh? Pues existe, y se hace ya. Algunas empresas ya están haciendo esto y además ganan dinero. Es decir, no ganan dinero por tener tus datos, como hacen todos los demás en Internet, sino que lo hacen por ofrecerte un servicio, sin tener la necesidad de tener tus datos en claro, es decir, analizables.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/joax.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/joax.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/joax.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/joax.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/joax.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/joax.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/joax.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/joax.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/joax.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/joax.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/joax.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/joax.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/joax.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/joax.wordpress.com/209/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=209&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://joax.me/2011/05/20/%c2%bfestan-nuestros-datos-seguros/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e402294dc743f4daca6188935803f08d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joax</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2011/05/protecciondatos.jpg?w=300" medium="image">
			<media:title type="html">gold credit card and lock</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2011/05/rentabilidadvsprivacidad.jpg?w=300" medium="image">
			<media:title type="html">RentabilidadvsPrivacidad</media:title>
		</media:content>
	</item>
		<item>
		<title>La crisis de la seguridad</title>
		<link>http://joax.me/2011/05/16/la-crisis-de-la-seguridad/</link>
		<comments>http://joax.me/2011/05/16/la-crisis-de-la-seguridad/#comments</comments>
		<pubDate>Mon, 16 May 2011 17:30:38 +0000</pubDate>
		<dc:creator>joax</dc:creator>
				<category><![CDATA[privacidad]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://joax.wordpress.com/?p=187</guid>
		<description><![CDATA[Últimamente hemos estado viendo cómo las grandes tecnológicas que operan por Internet o con Internet han tenido grandes fallos de seguridad de datos. Es decir, sus sistemas de seguridad han sido vulnerados. Por un lado tenemos a Sony, con su primer ataque reconocido, posteriormente, se descubre que no era su primer ataque, y finalmente, aquellos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=187&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Últimamente hemos<a href="http://joax.files.wordpress.com/2011/05/225845-iphone-spygate_original.jpg"><img class="alignleft size-full wp-image-189" title="225845-iphone-spygate_original" src="http://joax.files.wordpress.com/2011/05/225845-iphone-spygate_original.jpg?w=490" alt=""   /></a> estado viendo cómo las grandes tecnológicas que operan por Internet o con Internet han tenido grandes fallos de seguridad de datos. Es decir, sus sistemas de seguridad han sido vulnerados.</p>
<p>Por un lado tenemos a Sony, con su <a href="http://www.pcmag.com/article2/0,2817,2384353,00.asp" target="_blank">primer ataque reconocido</a>, posteriormente, se descubre que <a href="http://www.mobiledia.com/news/88925.html" target="_blank">no era su primer ataque</a>, y finalmente, aquellos que somos jugadores de Play Station, tenemos que empezar a cambiar nuestros datos y dar de baja nuestras tarjetas asociadas.</p>
<p>Luego empezamos a oir los problemas que tiene Apple con sus móviles y la geolocalización. <a href="http://techleash.com/2011/04/even-if-disabled-your-iphone-will-still-track-your-location/" target="_blank">Nos están siguiendo a todas partes</a>. Por lo que nos asustamos al saber que una gran corporación recopila tus datos geográficos incluso cuando no tienes tu móvil con geoposicionamiento activado. Apple por su parte, nos dice que esos datos no son para lo que pensamos, sino que lo hace <a href="http://www.pcworld.com/article/225845/why_apple_tracks_you_via_iphone_its_not_why_you_think.html" target="_blank">¨por nuestro bien¨</a>.</p>
<p>Así pasamos al siguiente capítulo de la historia de la privacidad de los datos, descubrimos que <a href="http://www.rsa.com/node.aspx?id=3872" target="_blank">RSA</a>, empresa dedicada precisamente a la seguridad de los datos, <a href="http://www.pcworld.com/businesscenter/article/222555/rsa_securid_hack_shows_danger_of_apts.html" target="_blank">ha recibido varios ataques de hackers</a>, algunos con éxito.</p>
<p>Si seguimos indagando en los diferentes ataques con éxito y errores de seguridad de datos, vamos a enseñar uno todavía peor,<a href="http://www.computerworld.com/s/article/9216302/Texas_comptroller_takes_blame_for_major_breach?taxonomyId=85" target="_blank"> la exposición de 3.5 millones de números de seguridad social </a>en Texas, USA. O por ejemplo, que en <a href="http://www.us-cert.gov/cas/bulletins/SB11-115.html" target="_blank">la lista oficial de vulnerabilidades de alto riesgo de software</a>, Microsoft sale más de 45 veces sobre el total de 60 listadas.</p>
<p>Y ahora es cuando nos pregutamos. ¿Qué está pasando?. Todos pensamos que Internet es aquella gran red donde nos podemos interconectar y todo es maravilloso. Donde <a href="http://www.readwriteweb.com/archives/facebooks_zuckerberg_says_the_age_of_privacy_is_ov.php" target="_blank">la era de la privacidad se ha acabado</a>, según nuestro amigo Mark, donde <a href="http://www.dawn.com/2011/05/12/google-to-appeal-in-swiss-street-view-privacy-battle.html" target="_blank">los gobiernos tienen que ser los que amenden los problemas de Google </a>y donde puedes acceder a tu lista de búsquedas, inclusive las que usas en tu correo electrónico, <a href="http://www.google.com/searchhistory/" target="_blank">aquí</a>. Pero no nos damos cuenta que Internet solo lleva 15 años con nosotros y como toda tecnología, tenemos que aprender a usarla.</p>
<p>Los gobiernos están empezando a darse cuenta, y en Estados Unidos han lanzado <a href="http://innovationlawblog.org/2011/03/us-privacy-bill-of-rights-proposal/" target="_blank">la nueva ley de protección de la privacidad del usuario</a>, que auna todas las preocupaciones que tenemos. Por ejemplo, va a poder forzar a las empresas a no seguir a los usuarios a través de sus servicios a menos que estos sean notificados por ello. También los usuarios pelean por su privacidad, como por ejemplo <a href="http://www.cleveland.com/nation/index.ssf/2009/02/facebook_dataretention_changes.html" target="_blank">en Facebook</a>.</p>
<p>El Estado de California en Estados Unidos ha <a href="http://info.sen.ca.gov/pub/11-12/bill/sen/sb_0201-0250/sb_242_bill_20110502_amended_sen_v98.html">lanzado una proposición de ley</a> que hará que todas las redes sociales fuercen las opciones de privacidad en el registro del usuario nuevo y además cierre al máximo las opciones de todos los usuarios ya registrados.</p>
<p>Es decir, de esa red abierta donde todos estábamos conectados y felices, estamos pasando a una <a href="http://www.businessweek.com/bwdaily/dnflash/jan2006/nf20060113_6735_db053.htm" target="_blank">red de control</a> y de limitaciones, donde de nuevo <a href="http://www.time.com/time/world/article/0,8599,1905125,00.html" target="_blank">los gobiernos vuelven a tener poder.</a></p>
<p>Debemos recapacitar para saber hacia dónde queremos ir con esta tecnología, como lo hicimos con la energía nuclear cuando la descubrimos en su día. Donde no conocíamos realmente sus consecuencias hasta que pasó Chernóvil, o Hiroshima. No queremos que haya un Chernóvil en Internet, puesto que no sabemos qué consecuencias puede acarrearnos. Así que debemos ser más conscientes del uso que hacemos de la red. Tenemos que ser responsables de cómo usamos nuestros datos, y de a quién se los damos. Porque habrá veces que nunca los podamos tener de vuelta. Y otras muchas veces donde las consecuencias de haberlos dado nos seguirán durante muchos años.</p>
<p><strong>Editado</strong></p>
<p>He añadido la proposición de ley del estado de California al texto.<strong><br />
</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/joax.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/joax.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/joax.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/joax.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/joax.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/joax.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/joax.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/joax.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/joax.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/joax.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/joax.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/joax.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/joax.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/joax.wordpress.com/187/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=187&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://joax.me/2011/05/16/la-crisis-de-la-seguridad/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e402294dc743f4daca6188935803f08d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joax</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2011/05/225845-iphone-spygate_original.jpg" medium="image">
			<media:title type="html">225845-iphone-spygate_original</media:title>
		</media:content>
	</item>
		<item>
		<title>Testear Internet Explorer 7 y 8 desde tu MacOS</title>
		<link>http://joax.me/2011/04/28/testear-internet-explorer-7-y-8-desde-tu-macos/</link>
		<comments>http://joax.me/2011/04/28/testear-internet-explorer-7-y-8-desde-tu-macos/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 19:18:13 +0000</pubDate>
		<dc:creator>joax</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[ie8]]></category>
		<category><![CDATA[macos]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[virtualbox]]></category>

		<guid isPermaLink="false">http://joax.wordpress.com/?p=172</guid>
		<description><![CDATA[A cuantos de nosotros nos ha surgido la necesidad de tener una maquina Windows al lado para poder mirar como queda nuestra pagina en Internet Explorer. Pues aqui os dejo con un tutorial que esta basado en esta pagina web. En primer lugar, necesitamos dos cosas básicas en nuestro Mac: VirtualBox: Gestor de maquinas virtuales, que lo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=172&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A cuantos de nosotros nos ha surgido la necesidad de tener una maquina Windows al lado para poder mirar como queda nuestra pagina en Internet Explorer. Pues aqui os dejo con un tutorial que esta basado en esta <a title="pagina web" href="http://stackoverflow.com/questions/55577/how-can-i-test-my-web-pages-in-microsoft-internet-explorer-on-a-mac" target="_blank">pagina web</a>.</p>
<p>En primer lugar, necesitamos dos cosas básicas en nuestro Mac:</p>
<ul>
<li>VirtualBox: Gestor de maquinas virtuales, que lo podeis instalar <a title="aqui" href="http://www.virtualbox.org/" target="_blank">aqui</a>.</li>
<li>Mac Ports: herramienta con la que podremos extraer el contenido que nos descarguemos de Microsoft, que os lo podeis instalar <a title="aqui" href="http://www.macports.org/" target="_blank">aqui</a>.</li>
</ul>
<p>Necesitamos VirtualBox dado que la manera oficial que nos provee Microsoft para probar las paginas en sus exploradores son imagenes completas de sus sistemas operativos, tanto Windows Vista como Windows XP.</p>
<p>Por otro lado, necesitamos Mac Ports para poder abrir los archivos donde residen estas imagenes de los sistemas operativos.</p>
<p>Una vez instalado Mac Ports, necesitamos ejecutar lo siguiente en una linea de comandos (terminal) en nuestro Mac:</p>
<pre>$ sudo port install cabextract</pre>
<p>Esto va a instalar el programa <strong>cabextract</strong> que necesitamos para extraer las imagenes de los EXE que nos vamos a descargar desde Microsoft.</p>
<p>Ahora vamos con los pasos necesarios para instalar las imagenes en nuestro Mac.</p>
<h2>1. Descargar la imagen desde Microsoft</h2>
<p>Aqui esta el link para descargar las imagenes que creamos convenientes:</p>
<p><a title="http://www.microsoft.com/downloads/details.aspx?FamilyId=21EABB90-958F-4B64-B5F1-73D0A413C8EF&amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=21EABB90-958F-4B64-B5F1-73D0A413C8EF&amp;displaylang=en" target="_blank">http://www.microsoft.com/downloads/details.aspx?FamilyId=21EABB90-958F-4B64-B5F1-73D0A413C8EF&amp;displaylang=en</a></p>
<p>No pasa nada porque sean EXE. Dado que tenemos <strong>cabextract</strong> para poder extraer lo necesario.</p>
<h2>2. Extraer la imagen del EXE</h2>
<p>Ejecuta lo siguiente:</p>
<pre>$ cabextract fichero.exe</pre>
<p>Donde <em>fichero.exe </em>es el fichero que nos hemos descargado.</p>
<p>Esto nos genera un fichero .vhd que es el que tenemos que transformar para que sea compatible con VirtualBox.</p>
<h2>3. Transformar imagen al formato VirtualBox</h2>
<p>Para hacerlo, tenemos que seguir ejecutando comandos en la consola, es decir, no cierres la consola todavia y ejecuta lo siguiente:</p>
<pre><code>$ /Applications/Q.app/Contents/MacOS/qemu-img convert -O raw -f vpc "input.vhd" temp.bin </code>
<code>$ VBoxManage convertdd temp.bin "output.vdi" </code>
<code>$ rm temp.bin </code>
<code>$ mv "output.vdi" ~/Library/VirtualBox/VDI/ </code>
<code>$ VBoxManage modifyvdi "output.vdi" compact</code></pre>
<p>Ahora ya tenemos la imagen preparada en VirtualBox para ser inicializada.</p>
<h2>4. Iniciar la imagen desde VirtualBox</h2>
<p>Abrimos VirtualBox desde Aplicaciones en nuestro Mac. Y vamos a crear una imagen nueva:</p>
<p><a href="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-07-20-pm.png"><img class="alignnone size-medium wp-image-173" title="Screen shot 2011-04-28 at 12.07.20 PM" src="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-07-20-pm.png?w=300&#038;h=203" alt="" width="300" height="203" /></a></p>
<p>Hacemos click en <strong>new</strong></p>
<p><strong><a href="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-07-38-pm.png"><img class="alignnone size-medium wp-image-174" title="Screen shot 2011-04-28 at 12.07.38 PM" src="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-07-38-pm.png?w=300&#038;h=181" alt="" width="300" height="181" /></a></strong></p>
<p>E iniciamos el proceso de creación de imagen</p>
<p><a href="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-07-43-pm.png"><img class="alignnone size-medium wp-image-175" title="Screen shot 2011-04-28 at 12.07.43 PM" src="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-07-43-pm.png?w=300&#038;h=181" alt="" width="300" height="181" /></a></p>
<p>Escogemos un nombre y el tipo de imagen. En nuestro caso hemos descargado la imagen de Windows XP con IE7 instalado.</p>
<p><a href="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-07-56-pm.png"><img class="alignnone size-medium wp-image-176" title="Screen shot 2011-04-28 at 12.07.56 PM" src="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-07-56-pm.png?w=300&#038;h=182" alt="" width="300" height="182" /></a></p>
<p>E incorporamos la RAM que queremos dedicar a la maquina. En este caso le vamos a dar 512MB de RAM. Suficiente para lo que queremos de la maquina.</p>
<p><a href="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-08-16-pm.png"><img class="alignnone size-medium wp-image-177" title="Screen shot 2011-04-28 at 12.08.16 PM" src="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-08-16-pm.png?w=300&#038;h=184" alt="" width="300" height="184" /></a></p>
<p>Incorporamos el disco virtual que hemos creado anteriormente en el paso 3 dentro de la imagen. Para ello, hacemos click en &#8220;Use Existing hard disk&#8221; y luego en el icono que aparece a la derecha de la selección.</p>
<p><a href="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-08-22-pm.png"><img class="alignnone size-medium wp-image-178" title="Screen shot 2011-04-28 at 12.08.22 PM" src="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-08-22-pm.png?w=300&#038;h=211" alt="" width="300" height="211" /></a></p>
<p>Y buscamos nuestra imagen dentro del directorio donde la hemos dejado (el fichero VDI que hemos generado).</p>
<p><a href="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-08-32-pm.png"><img class="alignnone size-medium wp-image-179" title="Screen shot 2011-04-28 at 12.08.32 PM" src="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-08-32-pm.png?w=300&#038;h=185" alt="" width="300" height="185" /></a></p>
<p>Ya tenemos la imagen preparada para ser iniciada y usada.</p>
<p><a href="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-08-42-pm.png"><img class="alignnone size-full wp-image-180" title="Screen shot 2011-04-28 at 12.08.42 PM" src="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-08-42-pm.png?w=490" alt=""   /></a></p>
<p>Tan solo tenemos que seleccionar la imagen de la lista de maquinas virtuales, y hacer click en <strong>start</strong> en el menu de VirtualBox. La maquina aparecera automaticamente como una ventana en nuestro escritorio.</p>
<p>De esta forma podremos probar nuestras paginas en Microsoft Internet Explorer 6, 7 y 8 de manera legal, dado que Microsoft provee estas imagenes precisamente para este proposito, y ademas de manera sencilla. Una vez que tienes una imagen, el resto es muy facil.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/joax.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/joax.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/joax.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/joax.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/joax.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/joax.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/joax.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/joax.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/joax.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/joax.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/joax.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/joax.wordpress.com/172/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/joax.wordpress.com/172/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/joax.wordpress.com/172/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=172&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://joax.me/2011/04/28/testear-internet-explorer-7-y-8-desde-tu-macos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e402294dc743f4daca6188935803f08d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joax</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-07-20-pm.png?w=300" medium="image">
			<media:title type="html">Screen shot 2011-04-28 at 12.07.20 PM</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-07-38-pm.png?w=300" medium="image">
			<media:title type="html">Screen shot 2011-04-28 at 12.07.38 PM</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-07-43-pm.png?w=300" medium="image">
			<media:title type="html">Screen shot 2011-04-28 at 12.07.43 PM</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-07-56-pm.png?w=300" medium="image">
			<media:title type="html">Screen shot 2011-04-28 at 12.07.56 PM</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-08-16-pm.png?w=300" medium="image">
			<media:title type="html">Screen shot 2011-04-28 at 12.08.16 PM</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-08-22-pm.png?w=300" medium="image">
			<media:title type="html">Screen shot 2011-04-28 at 12.08.22 PM</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-08-32-pm.png?w=300" medium="image">
			<media:title type="html">Screen shot 2011-04-28 at 12.08.32 PM</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2011/04/screen-shot-2011-04-28-at-12-08-42-pm.png" medium="image">
			<media:title type="html">Screen shot 2011-04-28 at 12.08.42 PM</media:title>
		</media:content>
	</item>
		<item>
		<title>Chrome OS revelado</title>
		<link>http://joax.me/2010/10/30/chrome-os-revelado/</link>
		<comments>http://joax.me/2010/10/30/chrome-os-revelado/#comments</comments>
		<pubDate>Sat, 30 Oct 2010 00:34:57 +0000</pubDate>
		<dc:creator>joax</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[global]]></category>
		<category><![CDATA[Google Chrome]]></category>

		<guid isPermaLink="false">http://joax.wordpress.com/?p=159</guid>
		<description><![CDATA[Por fin he conseguido poner las manos encima de un ChromeOS. Finalmente, despues de descargarme el codigo, compilarlo, y crear una imagen, he conseguido iniciar una maquina virtual con KVM. Pantallas a continuacion! Pantalla de entrada: &#160; Llegada al &#8220;inicio&#8221;: &#160; Opciones del sistema: &#160; Listado de archivos (ejemplo de /home/chronos): &#160; Si queremos acceder [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=159&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Por fin he conseguido poner las manos encima de un ChromeOS. Finalmente, despues de descargarme el codigo, compilarlo, y crear una imagen, he conseguido iniciar una maquina virtual con KVM. Pantallas a continuacion!</p>
<p>Pantalla de entrada:</p>
<p><a href="http://joax.files.wordpress.com/2010/10/chromeos-01.png"><img class="alignnone size-full wp-image-160" title="chromeos-01" src="http://joax.files.wordpress.com/2010/10/chromeos-01.png?w=490" alt=""   /></a></p>
<p>&nbsp;</p>
<p>Llegada al &#8220;inicio&#8221;:</p>
<p><a href="http://joax.files.wordpress.com/2010/10/chromeos-02.png"><img class="alignnone size-full wp-image-161" title="chromeos-02" src="http://joax.files.wordpress.com/2010/10/chromeos-02.png?w=490" alt=""   /></a></p>
<p>&nbsp;</p>
<p>Opciones del sistema:</p>
<p><a href="http://joax.files.wordpress.com/2010/10/chromeos-03.png"><img class="alignnone size-full wp-image-162" title="chromeos-03" src="http://joax.files.wordpress.com/2010/10/chromeos-03.png?w=490" alt=""   /></a></p>
<p>&nbsp;</p>
<p>Listado de archivos (ejemplo de /home/chronos):</p>
<p><a href="http://joax.files.wordpress.com/2010/10/chromeos-04.png"><img class="alignnone size-full wp-image-163" title="chromeos-04" src="http://joax.files.wordpress.com/2010/10/chromeos-04.png?w=490" alt=""   /></a></p>
<p>&nbsp;</p>
<p>Si queremos acceder a la consola de comandos propia (crosh) hay que pulsar Ctrl + Alt + T:</p>
<p><a href="http://joax.files.wordpress.com/2010/10/chromeos-05.png"><img class="alignnone size-full wp-image-164" title="chromeos-05" src="http://joax.files.wordpress.com/2010/10/chromeos-05.png?w=490" alt=""   /></a></p>
<p>&nbsp;</p>
<p>Si escribimos <strong>help</strong> obtenemos los comandos necesarios, entre ellos &#8220;shell&#8221;:</p>
<p><a href="http://joax.files.wordpress.com/2010/10/chromeos-06.png"><img class="alignnone size-full wp-image-165" title="chromeos-06" src="http://joax.files.wordpress.com/2010/10/chromeos-06.png?w=490" alt=""   /></a></p>
<p>&nbsp;</p>
<p>que nos lleva a la consola de Linux (finalmente!):</p>
<p><a href="http://joax.files.wordpress.com/2010/10/chromeos-08.png"><img class="alignnone size-full wp-image-167" title="chromeos-08" src="http://joax.files.wordpress.com/2010/10/chromeos-08.png?w=490" alt=""   /></a></p>
<p>&nbsp;</p>
<p>Y podemos ver que hay detras de ChromeOS:</p>
<p><a href="http://joax.files.wordpress.com/2010/10/chromeos-07.png"><img class="alignnone size-full wp-image-166" title="chromeos-07" src="http://joax.files.wordpress.com/2010/10/chromeos-07.png?w=490" alt=""   /></a></p>
<p>&nbsp;</p>
<p>Proximamente publicare un post sobre como compilar ChromeOS e iniciar una imagen con KVM.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/joax.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/joax.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/joax.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/joax.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/joax.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/joax.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/joax.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/joax.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/joax.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/joax.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/joax.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/joax.wordpress.com/159/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/joax.wordpress.com/159/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/joax.wordpress.com/159/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=159&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://joax.me/2010/10/30/chrome-os-revelado/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e402294dc743f4daca6188935803f08d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joax</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/10/chromeos-01.png" medium="image">
			<media:title type="html">chromeos-01</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/10/chromeos-02.png" medium="image">
			<media:title type="html">chromeos-02</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/10/chromeos-03.png" medium="image">
			<media:title type="html">chromeos-03</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/10/chromeos-04.png" medium="image">
			<media:title type="html">chromeos-04</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/10/chromeos-05.png" medium="image">
			<media:title type="html">chromeos-05</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/10/chromeos-06.png" medium="image">
			<media:title type="html">chromeos-06</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/10/chromeos-08.png" medium="image">
			<media:title type="html">chromeos-08</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/10/chromeos-07.png" medium="image">
			<media:title type="html">chromeos-07</media:title>
		</media:content>
	</item>
		<item>
		<title>Redmine Task Manager &#8211; renovado</title>
		<link>http://joax.me/2010/10/29/redmine-task-manager-renovado/</link>
		<comments>http://joax.me/2010/10/29/redmine-task-manager-renovado/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 01:18:18 +0000</pubDate>
		<dc:creator>joax</dc:creator>
		
		<guid isPermaLink="false">http://joax.wordpress.com/?p=152</guid>
		<description><![CDATA[En mi afan por mejorar el gestor de tareas de Redmine, he subido nuevo codigo al repositorio. Como vereis, las mejoras son mas bien esteticas, para que sea mas sencillo trabajar: &#160; &#160; &#160; &#160; Espero que os guste! &#160;<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=152&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>En mi afan por mejorar el gestor de tareas de Redmine, he subido nuevo codigo al <a href="http://github.com/joax/Redmine-Task-Manager">repositorio</a>. Como vereis, las mejoras son mas bien esteticas, para que sea mas sencillo trabajar:</p>
<p style="text-align:center;"><a href="http://joax.files.wordpress.com/2010/10/redmine-task-manager-104.png"><img class="size-full wp-image-156 aligncenter" title="redmine-task-manager-104" src="http://joax.files.wordpress.com/2010/10/redmine-task-manager-104.png?w=490" alt=""   /></a></p>
<p style="text-align:center;">&nbsp;</p>
<p style="text-align:center;"><a href="http://joax.files.wordpress.com/2010/10/redmine-task-manager-101.png"><img class="alignnone size-full wp-image-153" title="redmine-task-manager-101" src="http://joax.files.wordpress.com/2010/10/redmine-task-manager-101.png?w=490" alt=""   /></a></p>
<p style="text-align:center;">&nbsp;</p>
<p style="text-align:center;"><a href="http://joax.files.wordpress.com/2010/10/redmine-task-manager-102.png"><img class="alignnone size-full wp-image-154" title="redmine-task-manager-102" src="http://joax.files.wordpress.com/2010/10/redmine-task-manager-102.png?w=490" alt=""   /></a></p>
<p style="text-align:center;">&nbsp;</p>
<p style="text-align:center;"><a href="http://joax.files.wordpress.com/2010/10/redmine-task-manager-103.png"><img class="alignnone size-full wp-image-155" title="redmine-task-manager-103" src="http://joax.files.wordpress.com/2010/10/redmine-task-manager-103.png?w=490" alt=""   /></a></p>
<p style="text-align:center;">&nbsp;</p>
<p style="text-align:left;">Espero que os guste!</p>
<p style="text-align:center;">&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/joax.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/joax.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/joax.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/joax.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/joax.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/joax.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/joax.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/joax.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/joax.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/joax.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/joax.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/joax.wordpress.com/152/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/joax.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/joax.wordpress.com/152/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=152&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://joax.me/2010/10/29/redmine-task-manager-renovado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e402294dc743f4daca6188935803f08d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joax</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/10/redmine-task-manager-104.png" medium="image">
			<media:title type="html">redmine-task-manager-104</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/10/redmine-task-manager-101.png" medium="image">
			<media:title type="html">redmine-task-manager-101</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/10/redmine-task-manager-102.png" medium="image">
			<media:title type="html">redmine-task-manager-102</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/10/redmine-task-manager-103.png" medium="image">
			<media:title type="html">redmine-task-manager-103</media:title>
		</media:content>
	</item>
		<item>
		<title>&#8220;Anonymous Content&#8221; en Google Chrome</title>
		<link>http://joax.me/2010/09/30/anonymous-content-en-google-chrome/</link>
		<comments>http://joax.me/2010/09/30/anonymous-content-en-google-chrome/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 18:42:26 +0000</pubDate>
		<dc:creator>joax</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[programación]]></category>

		<guid isPermaLink="false">http://joax.wordpress.com/?p=146</guid>
		<description><![CDATA[Todos los que hemos creado alguna vez una extension para Firefox sabemos que existen varias formas de representar ventanas dentro del explorador. Una de ellas, la recomendada por el equipo de Mozilla es usando su protocolo XUL para representación de interfaces con el usuario. Por otro lado, existe también la posibilidad de insertar nodos dentro del DOM del [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=146&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Todos los que hemos creado alguna vez una extension para Firefox sabemos que existen varias formas de representar ventanas dentro del explorador. Una de ellas, la <a href="http://mdn.beonex.com/en/Introduction_to_XUL">recomendada por el equipo de Mozilla</a> es usando su <a href="https://developer.mozilla.org/En/XUL">protocolo XUL</a> para <span style="color:#0000ee;"><span style="color:#000000;"><a href="https://developer.mozilla.org/en/Building_an_Extension">representación</a></span></span><span style="color:#000000;"><a href="https://developer.mozilla.org/en/Building_an_Extension"> de interfaces con el usuario</a></span>. Por otro lado, existe también la posibilidad de insertar nodos dentro del DOM del documento por medio del <a href="https://developer.mozilla.org/en/XBL/XBL_1.0_Reference/Anonymous_Content#Introduction">&#8220;Anonymous Content&#8221;</a>. De esta forma, podemos representar HTML al usuario que la página no puede ver ni acceder a él.</p>
<p>Por otro lado, si quisiéramos hacer lo mismo en Google Chrome, nos encontraríamos con el problema de que este explorador <a href="http://groups.google.com/a/chromium.org/group/chromium-extensions/browse_thread/thread/4549f02110adb810">no cuenta ni con un API del estilo de XUL</a>, ni tampoco con la manera de introducir nodos en el árbol DOM sin que sean vistos por la página en la que los introducimos.</p>
<p>éxtasis ácido camión</p>
<p>Existe de todas formas, una manera de poder resolver este problema en Google Chrome. He escrito un articulo en el que explico la manera más sencilla de hacerlo, y cómo podemos proteger nuestro contenido de la pagina en la que lo introducimos. Por medio de IFRAMES. He aquí el articulo:</p>
<p><a href="http://www.borderstylo.com/posts/220-anonymous-content-injection-in-google-chrome">http://www.borderstylo.com/posts/220-anonymous-content-injection-in-google-chrome</a></p>
<p>Con esta explicación podrás introducir contenido protegido sin el temor de que la pagina pueda extraerlo o modificarlo.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/joax.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/joax.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/joax.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/joax.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/joax.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/joax.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/joax.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/joax.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/joax.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/joax.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/joax.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/joax.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/joax.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/joax.wordpress.com/146/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=146&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://joax.me/2010/09/30/anonymous-content-en-google-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e402294dc743f4daca6188935803f08d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joax</media:title>
		</media:content>
	</item>
		<item>
		<title>Conectarse a varios esclavos de MySQL con Ruby</title>
		<link>http://joax.me/2010/09/15/conectarse-a-varios-esclavos-de-mysql-con-ruby/</link>
		<comments>http://joax.me/2010/09/15/conectarse-a-varios-esclavos-de-mysql-con-ruby/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 19:22:59 +0000</pubDate>
		<dc:creator>joax</dc:creator>
				<category><![CDATA[escalabilidad]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[replicacion]]></category>

		<guid isPermaLink="false">http://joax.wordpress.com/?p=138</guid>
		<description><![CDATA[Vamos a ver como nos conectamos a varios esclavos de MySQL que replican de un maestro. Como comentamos en el capitulo anterior, la replicación  de MySQL nos permite aumentar la capacidad de lecturas de nuestra base de datos. Ahora vamos a estudiar la manera en la que podemos conectar nuestro programa de Ruby a todos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=138&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Vamos a ver como nos conectamos a varios esclavos de MySQL que replican de un maestro. Como comentamos en el <a href="http://joax.wordpress.com/2007/12/03/como-iniciar-una-replicacion-maestro-esclavo-en-mysql-50/" target="_blank">capitulo anterior</a>, la replicación  de MySQL nos permite aumentar la capacidad de lecturas de nuestra base de datos.</p>
<p>Ahora vamos a estudiar la manera en la que podemos conectar nuestro programa de Ruby a todos esos esclavos. La mayoría de las gemas que nos encontramos soportan múltiples esclavos. Pero la manera en la que se conectan es muy simple, y si nos encontramos en una situación de mucha carga, podemos llegar a tumbar toda la base de datos. Veamos el ejemplo de la gema <a href="http://sequel.rubyforge.org/">Sequel</a>.</p>
<p>Para configurar múltiples esclavos, tenemos que configurarla de la siguiente manera (codigo ejemplo de su <a href="http://sequel.rubyforge.org/rdoc/files/doc/sharding_rdoc.html">documentación</a>):</p>
<pre style="border:1px dashed lightgray;background:#f5f5f5;margin:5px;padding:5px;">DB=Sequel.connect('mysql://<strong>master_server</strong>/database', \
    :servers=&gt;{:read_only=&gt;proc{|db| {:host=&gt;db.get_slave_host}}})
  def DB.get_slave_host
    @current_host ||= -1
    "<strong>slave_server</strong>#{(@current_host+=1)%4}"
  end</pre>
<p>Siendo <strong>master_server</strong> nuestro servidor maestro y <strong>slave_server#{(@current_host+=1)%4} </strong>nuestros esclavos.</p>
<p>Vamos a hacerlo más aleatorio:</p>
<pre style="border:1px dashed lightgray;background:#f5f5f5;margin:5px;padding:5px;">DB=Sequel.connect('mysql://maestro/my_db', \
    :servers=&gt;{:read_only=&gt;proc{|db| {:host=&gt;db.get_slave_host}}})

  def DB.get_slave_host
    slaves = [
      "esclavo_1",
      "esclavo_2",
      "esclavo_3",
      "esclavo_4",
      "esclavo_5",
      "esclavo_6"
    ]
    return slaves[rand(slaves.length - 1)]
  end</pre>
<p>Ahora bien, viendo este código, podemos ver ya que la distribución de las conexiones va a ser equitativa, es decir, si tenemos 4 esclavos, cada uno de ellos va a recibir el mismo número de conexiones. Esto en un mundo ideal nos viene bien, pero no nos viene tan bien cuando tengamos alguno de los esclavos con más carga que los demás&#8230;</p>
<p>Vamos a darle una vuelta de tuerca. Vamos a tratar de comprobar el estado de los servidores antes de conectarnos, para saber si realmente queremos conectarnos a dicho servidor, o no&#8230;</p>
<pre style="border:1px dashed lightgray;background:#f5f5f5;margin:5px;padding:5px;">DB=Sequel.connect("mysql://maestro/#{db_name}", \
    :servers=&gt;{:read_only=&gt;proc{|db| {:host=&gt;db.get_slave_host}}})

  def DB.slaves_array
    slaves = [
      "esclavo_1",
      "esclavo_2",
      "esclavo_3",
      "esclavo_4",
      "esclavo_5",
      "esclavo_6"
    ]
    return slaves
  end

  def DB.get_slave_host
    tries = 0
    while tries &lt;= DB.slaves_array.length
      slave = DB.get_slaves_array[rand(DB.get_slaves_array.length - 1)]
      return slave if DB.get_slave_delay &lt;= 1
      tries += 1
    end
  end

  def DB.get_slave_delay(slave, db_name)
    begin
      DBSlave=Sequel.connect("mysql://#{slave}/#{db_name}")
      delay = DBSlave["SHOW SLAVE STATUS"]
      return delay[32].to_i
    rescue
      return 1000
    end
  end</pre>
<p>Parte por parte.</p>
<p>Lo que este código hace es simplemente  comprobar si el esclavo al que nos vamos a conectar esta sin retrasos con respecto al maestro y ademas si nos podemos conectar. Para ello, cuando Sequel llame a <strong>db.get_slave_host</strong> lo que vamos a hacer es lo siguiente:</p>
<pre style="border:1px dashed lightgray;background:#f5f5f5;margin:5px;padding:5px;">def DB.get_slave_host
    tries = 0
    while tries &lt;= DB.slaves_array.length
      slave = DB.get_slaves_array[rand(DB.get_slaves_array.length - 1)]
      return slave if DB.get_slave_delay &lt;= 1
      tries += 1
    end
  end</pre>
<p>Vamos a sacar un esclavo de la lista de manera aleatoria:</p>
<pre>slave = DB.get_slaves_array[rand(DB.get_slaves_array.length - 1)]</pre>
<p>Y posteriormente vamos a tratar de conectarnos al esclavo y mirar su estado:</p>
<pre style="border:1px dashed lightgray;background:#f5f5f5;margin:5px;padding:5px;">return slave if DB.get_slave_delay &lt;= 1</pre>
<p>﻿Esto llama a la función que hemos definido:</p>
<pre style="border:1px dashed lightgray;background:#f5f5f5;margin:5px;padding:5px;">def DB.get_slave_delay(slave, db_name)
    begin
      DBSlave=Sequel.connect("mysql://#{slave}/#{db_name}")
      delay = DBSlave["SHOW SLAVE STATUS"]
      return delay[32].to_i
    rescue
      return 1000
    end
  end</pre>
<p>Esta función va a comprobar el estado del servidor. Si el esclavo tuviera algún problema, devolvería un retraso elevado (cuando los esclavos tienen mucha carga, suelen retrasarse con respecto a su maestro) o si no podemos conectar, entonces devolverá 1000, dando así un retraso muy elevado indicando que el servidor no esta disponible.</p>
<p><strong>Nota:</strong> para que nuestro código pueda preguntar por el estado de los esclavos (&#8220;SHOW SLAVE STATUS&#8221;) necesitamos dar privilegios SUPER, REPLICATION CLIENT al usuario que hemos designado a nuestro programa para conectarse a los esclavos:</p>
<pre style="border:1px dashed lightgray;background:#f5f5f5;margin:5px;padding:5px;">mysql&gt; GRANT SUPER, REPLICATION CLIENT ON *.* TO 'user'@'domain' IDENTIFIED BY 'password'</pre>
<p>En conclusión, si queremos que nuestro código soporte varios servidores esclavos y que compruebe la carga antes de cada conexión, debemos complicar la lógica de conexión a la hora de conectarnos a la base de datos. Las gemas como <a href="http://sequel.rubyforge.org/">Sequel</a> nos pueden ayudar a ello con abstracciones de conexión. Es muy sencillo hacer esta comprobación cada vez que nos conectamos. Pero como en todo, este método de comprobación no es escalable a grandes sistemas dado que cada vez que vamos a realizar una lectura, primero hacemos una conexión al esclavo para mirar su estado. Esto hace que la cantidad de conexiones se multiplique por dos.<br />
Mi recomendación es que se trate de hacer un método híbrido donde en paralelo a este código, se compruebe el estado de los esclavos cada vez, y se modifiquen los pesos de cada esclavo dependiendo de dichas comprobaciones. Pero esto corresponde al siguiente post&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/joax.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/joax.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/joax.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/joax.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/joax.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/joax.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/joax.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/joax.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/joax.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/joax.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/joax.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/joax.wordpress.com/138/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/joax.wordpress.com/138/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/joax.wordpress.com/138/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=138&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://joax.me/2010/09/15/conectarse-a-varios-esclavos-de-mysql-con-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e402294dc743f4daca6188935803f08d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joax</media:title>
		</media:content>
	</item>
		<item>
		<title>Glass en Google Chrome</title>
		<link>http://joax.me/2010/09/15/glass-en-google-chrome/</link>
		<comments>http://joax.me/2010/09/15/glass-en-google-chrome/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 16:54:27 +0000</pubDate>
		<dc:creator>joax</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Google Chrome]]></category>

		<guid isPermaLink="false">http://joax.wordpress.com/?p=121</guid>
		<description><![CDATA[Por fin ha llegado la extensión de Glass para Google Chrome. Hemos tenido que esperar por una razón de seguridad. Google Chrome 5 no nos permitía proteger los datos del usuario a la hora de posicionar los &#8216;slides&#8217; en la pagina web. Pero la nueva versión lanzada, Google Chrome 6 (6.0.472 para ser más específicos) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=121&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Por fin ha llegado la extensión de Glass para Google Chrome.</p>
<p>Hemos tenido que esperar por una razón de seguridad. Google Chrome 5 no nos permitía proteger los datos del usuario a la hora de posicionar los &#8216;slides&#8217; en la pagina web. Pero la nueva versión lanzada, Google Chrome 6 (6.0.472 para ser más específicos) si que nos permite poner los &#8216;slides&#8217; en la pagina con la seguridad de que nadie ni nada puede acceder a ellas, tal y como la extensión de Firefox está diseñada.</p>
<p>Para instalarte la extensión en Google Chrome, tienes que seguir los siguientes pasos:</p>
<h2>1 Conseguir una cuenta de Glass</h2>
<p>Si no tienes una cuenta de Glass no te preocupes, simplemente entra en:</p>
<p>http://www.writeonglass.com</p>
<p>Y en el recuadro de los códigos,</p>
<p><a href="http://joax.files.wordpress.com/2010/09/blog-insert-code.png"><img class="size-full wp-image-122 alignnone" title="blog-insert-code" src="http://joax.files.wordpress.com/2010/09/blog-insert-code.png?w=490" alt=""   /></a></p>
<p>Escribe el código <strong>bamboo.</strong></p>
<p>Sigue el proceso de registro y ya tienes una cuenta.</p>
<h2>2 Entrar en Glass</h2>
<p>Si ya tenias una cuenta, entonces lo que tienes que hacer es entrar en Glass. Simplemente, en <a href="http://www.writeonglass.com">http://www.writeonglass.com</a> haz click en &#8220;Login&#8221;:</p>
<p><a href="http://joax.files.wordpress.com/2010/09/blog-insert-code1.png"><img class="alignnone size-full wp-image-123" title="blog-insert-code1" src="http://joax.files.wordpress.com/2010/09/blog-insert-code1.png?w=490" alt=""   /></a></p>
<p>Introduce tu correo y contraseña de Glass y haz click en &#8220;Login&#8221;.</p>
<p><a href="http://joax.files.wordpress.com/2010/09/blog-insert-code2.png"><img class="alignnone size-full wp-image-124" title="blog-insert-code2" src="http://joax.files.wordpress.com/2010/09/blog-insert-code2.png?w=490" alt=""   /></a></p>
<h2>3 Descargar la Extensión</h2>
<p>La extensión se encuentra en la sección de &#8220;Download&#8221; en el menú principal de arriba a la derecha:</p>
<p><a href="http://joax.files.wordpress.com/2010/09/blog-insert-code3.png"><img class="alignnone size-full wp-image-125" title="blog-insert-code3" src="http://joax.files.wordpress.com/2010/09/blog-insert-code3.png?w=490" alt=""   /></a></p>
<p>Cuando pulses en &#8220;Download&#8221; re aparerecerá abajo a la izquierda las instrucciones para que te instales Glass:</p>
<p><a href="http://joax.files.wordpress.com/2010/09/blog-insert-code4.png"><img class="alignnone size-full wp-image-126" title="blog-insert-code4" src="http://joax.files.wordpress.com/2010/09/blog-insert-code4.png?w=490" alt=""   /></a></p>
<p>Cuando hayas instalado Glass finalmente, te aparecerá un botón arriba a la derecha del navegador:</p>
<p><a href="http://joax.files.wordpress.com/2010/09/blog-insert-code5.png"><img class="alignnone size-full wp-image-127" title="blog-insert-code5" src="http://joax.files.wordpress.com/2010/09/blog-insert-code5.png?w=490" alt=""   /></a></p>
<h2>4 Disfrutar de Glass</h2>
<p>Ya es hora de que pruebes la extensión para Chrome.  Cuando estes en una página de Internet que te interese compartir con alguien, haz click en el botón de Glass de tu navegador (o pulsa dos veces seguidas la tecla Control). Te aparecerá el siguiente menú:</p>
<p><a href="http://joax.files.wordpress.com/2010/09/blog-insert-code6.png"><img class="alignnone size-full wp-image-132" title="blog-insert-code6" src="http://joax.files.wordpress.com/2010/09/blog-insert-code6.png?w=490" alt=""   /></a></p>
<p>Si hacemos click en &#8220;New Slide&#8221; (o pulsamos la tecla &#8216;N&#8217;) nos aparecerá en la página el Slide preparado para ser rellenado. Primero lo movemos a la parte de la página donde pensamos que tendrá más significado (puedes arrastrar el Slide a la posición que creas más conveniente).</p>
<p><a href="http://joax.files.wordpress.com/2010/09/dp-report-09.png"><img class="alignnone size-full wp-image-129" title="dp-report-09" src="http://joax.files.wordpress.com/2010/09/dp-report-09.png?w=490" alt=""   /></a></p>
<p>Lo único que tenemos que hacer es rellenar el Slide con las personas a las que queremos remitir nuestro comentario:</p>
<p><a href="http://joax.files.wordpress.com/2010/09/blog-insert-code7.png"><img class="alignnone size-full wp-image-133" title="blog-insert-code7" src="http://joax.files.wordpress.com/2010/09/blog-insert-code7.png?w=490" alt=""   /></a></p>
<p>Y a continuación, el mensaje que queremos enviar:</p>
<p><a href="http://joax.files.wordpress.com/2010/09/dp-report-10.png"><img class="alignnone size-full wp-image-130" title="dp-report-10" src="http://joax.files.wordpress.com/2010/09/dp-report-10.png?w=490" alt=""   /></a></p>
<p>Y pulsar <strong>Post</strong>.</p>
<p><a href="http://joax.files.wordpress.com/2010/09/dp-report-11.png"><img class="alignnone size-full wp-image-131" title="dp-report-11" src="http://joax.files.wordpress.com/2010/09/dp-report-11.png?w=490" alt=""   /></a></p>
<p>Y ya tenemos nuestro Slide compartido con <strong>Andrew. </strong>Recibirá una notificación en su propio Glass que le llevará a la página donde hemos situado nuestro Slide y se lo mostrará <strong>solamente </strong>a Andrew.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/joax.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/joax.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/joax.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/joax.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/joax.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/joax.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/joax.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/joax.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/joax.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/joax.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/joax.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/joax.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/joax.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/joax.wordpress.com/121/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=121&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://joax.me/2010/09/15/glass-en-google-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e402294dc743f4daca6188935803f08d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joax</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/09/blog-insert-code.png" medium="image">
			<media:title type="html">blog-insert-code</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/09/blog-insert-code1.png" medium="image">
			<media:title type="html">blog-insert-code1</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/09/blog-insert-code2.png" medium="image">
			<media:title type="html">blog-insert-code2</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/09/blog-insert-code3.png" medium="image">
			<media:title type="html">blog-insert-code3</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/09/blog-insert-code4.png" medium="image">
			<media:title type="html">blog-insert-code4</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/09/blog-insert-code5.png" medium="image">
			<media:title type="html">blog-insert-code5</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/09/blog-insert-code6.png" medium="image">
			<media:title type="html">blog-insert-code6</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/09/dp-report-09.png" medium="image">
			<media:title type="html">dp-report-09</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/09/blog-insert-code7.png" medium="image">
			<media:title type="html">blog-insert-code7</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/09/dp-report-10.png" medium="image">
			<media:title type="html">dp-report-10</media:title>
		</media:content>

		<media:content url="http://joax.files.wordpress.com/2010/09/dp-report-11.png" medium="image">
			<media:title type="html">dp-report-11</media:title>
		</media:content>
	</item>
		<item>
		<title>What is Glass?</title>
		<link>http://joax.me/2010/08/26/what-is-glass/</link>
		<comments>http://joax.me/2010/08/26/what-is-glass/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 22:33:42 +0000</pubDate>
		<dc:creator>joax</dc:creator>
		
		<guid isPermaLink="false">http://joax.wordpress.com/?p=111</guid>
		<description><![CDATA[For all of you that wanted to know what I am working on right now, here is a very explanatory video: And if you want to join, go to: www.writeonglass.com And insert the code bamboo<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=111&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For all of you that wanted to know what I am working on right now, here is a very explanatory video:</p>
<span style="text-align:center; display: block;"><a href="http://joax.me/2010/08/26/what-is-glass/"><img src="http://img.youtube.com/vi/-ekE_6_KWdE/2.jpg" alt="" /></a></span>
<p>And if you want to join, go to:</p>
<p><a href="http://www.writeonglass.com">www.writeonglass.com</a></p>
<p>And insert the code <strong>bamboo</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/joax.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/joax.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/joax.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/joax.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/joax.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/joax.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/joax.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/joax.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/joax.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/joax.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/joax.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/joax.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/joax.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/joax.wordpress.com/111/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=joax.me&amp;blog=2142633&amp;post=111&amp;subd=joax&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://joax.me/2010/08/26/what-is-glass/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e402294dc743f4daca6188935803f08d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joax</media:title>
		</media:content>
	</item>
	</channel>
</rss>
